[
  {
    "path": ".classpath",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" path=\"src/bsh\"/>\n\t<classpathentry kind=\"src\" path=\"src/java\"/>\n\t<classpathentry kind=\"src\" path=\"src_test/java\"/>\n\t<classpathentry kind=\"con\" path=\"org.eclipse.jdt.launching.JRE_CONTAINER\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/bsh-2.0b4.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/colt.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/jai_codec.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/trove-2.1.0.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/primitive-lib.jar\" sourcepath=\"lib/primitive-lib.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/velocity-1.6.4-dep.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/commons-math-2.1.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/junit-4.9b1.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/core.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/gluegen-rt.jar\"/>\n\t<classpathentry kind=\"lib\" path=\"lib/jogl-all.jar\"/>\n\t<classpathentry kind=\"output\" path=\"bin\"/>\n</classpath>\n"
  },
  {
    "path": ".gitignore",
    "content": "*.class\n\n# Package Files #\n*.jar\n*.war\n*.ear\n/bin/\n\n# Mac system files\n*.DS_Store\n"
  },
  {
    "path": ".project",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<projectDescription>\r\n\t<name>javaplex</name>\r\n\t<comment></comment>\r\n\t<projects>\r\n\t</projects>\r\n\t<buildSpec>\r\n\t\t<buildCommand>\r\n\t\t\t<name>org.eclipse.jdt.core.javabuilder</name>\r\n\t\t\t<arguments>\r\n\t\t\t</arguments>\r\n\t\t</buildCommand>\r\n\t\t<buildCommand>\r\n\t\t\t<name>net.sourceforge.metrics.builder</name>\r\n\t\t\t<arguments>\r\n\t\t\t</arguments>\r\n\t\t</buildCommand>\r\n\t</buildSpec>\r\n\t<natures>\r\n\t\t<nature>org.eclipse.jdt.core.javanature</nature>\r\n\t\t<nature>net.sourceforge.metrics.nature</nature>\r\n\t</natures>\r\n</projectDescription>\r\n"
  },
  {
    "path": ".settings/org.eclipse.jdt.core.prefs",
    "content": "#Tue Jul 06 16:52:58 PDT 2010\r\neclipse.preferences.version=1\r\norg.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled\r\norg.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r\norg.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve\r\norg.eclipse.jdt.core.compiler.compliance=1.5\r\norg.eclipse.jdt.core.compiler.debug.lineNumber=generate\r\norg.eclipse.jdt.core.compiler.debug.localVariable=generate\r\norg.eclipse.jdt.core.compiler.debug.sourceFile=generate\r\norg.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r\norg.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r\norg.eclipse.jdt.core.compiler.source=1.5\r\norg.eclipse.jdt.core.formatter.align_type_members_on_columns=false\r\norg.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16\r\norg.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16\r\norg.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16\r\norg.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16\r\norg.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16\r\norg.eclipse.jdt.core.formatter.alignment_for_assignment=0\r\norg.eclipse.jdt.core.formatter.alignment_for_binary_expression=16\r\norg.eclipse.jdt.core.formatter.alignment_for_compact_if=16\r\norg.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80\r\norg.eclipse.jdt.core.formatter.alignment_for_enum_constants=0\r\norg.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16\r\norg.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16\r\norg.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16\r\norg.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16\r\norg.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16\r\norg.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16\r\norg.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16\r\norg.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16\r\norg.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16\r\norg.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16\r\norg.eclipse.jdt.core.formatter.blank_lines_after_imports=1\r\norg.eclipse.jdt.core.formatter.blank_lines_after_package=1\r\norg.eclipse.jdt.core.formatter.blank_lines_before_field=0\r\norg.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0\r\norg.eclipse.jdt.core.formatter.blank_lines_before_imports=1\r\norg.eclipse.jdt.core.formatter.blank_lines_before_member_type=1\r\norg.eclipse.jdt.core.formatter.blank_lines_before_method=1\r\norg.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1\r\norg.eclipse.jdt.core.formatter.blank_lines_before_package=0\r\norg.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1\r\norg.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1\r\norg.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line\r\norg.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line\r\norg.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false\r\norg.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false\r\norg.eclipse.jdt.core.formatter.comment.format_block_comments=true\r\norg.eclipse.jdt.core.formatter.comment.format_header=false\r\norg.eclipse.jdt.core.formatter.comment.format_html=true\r\norg.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true\r\norg.eclipse.jdt.core.formatter.comment.format_line_comments=true\r\norg.eclipse.jdt.core.formatter.comment.format_source_code=true\r\norg.eclipse.jdt.core.formatter.comment.indent_parameter_description=true\r\norg.eclipse.jdt.core.formatter.comment.indent_root_tags=true\r\norg.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert\r\norg.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert\r\norg.eclipse.jdt.core.formatter.comment.line_length=80\r\norg.eclipse.jdt.core.formatter.compact_else_if=true\r\norg.eclipse.jdt.core.formatter.continuation_indentation=2\r\norg.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2\r\norg.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false\r\norg.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true\r\norg.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true\r\norg.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true\r\norg.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true\r\norg.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true\r\norg.eclipse.jdt.core.formatter.indent_empty_lines=false\r\norg.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true\r\norg.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true\r\norg.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true\r\norg.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false\r\norg.eclipse.jdt.core.formatter.indentation.size=4\r\norg.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert\r\norg.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert\r\norg.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert\r\norg.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert\r\norg.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false\r\norg.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false\r\norg.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false\r\norg.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false\r\norg.eclipse.jdt.core.formatter.lineSplit=160\r\norg.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false\r\norg.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false\r\norg.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0\r\norg.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1\r\norg.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true\r\norg.eclipse.jdt.core.formatter.tabulation.char=tab\r\norg.eclipse.jdt.core.formatter.tabulation.size=4\r\norg.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false\r\norg.eclipse.jdt.core.formatter.wrap_before_binary_operator=true\r\n"
  },
  {
    "path": ".settings/org.eclipse.jdt.ui.prefs",
    "content": "#Tue Jul 06 16:52:58 PDT 2010\r\neclipse.preferences.version=1\r\nformatter_profile=_Andrew\r\nformatter_settings_version=11\r\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: java\n"
  },
  {
    "path": "LICENSE.md",
    "content": "Copyright (c) 2014, Henry Adams, Mikael Vejdemo-Johansson, Andrew Tausz\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the {organization} nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "README.md",
    "content": "# JavaPlex\n\n## Persistent Homology and Topological Data Analysis Library \n\n\nThe `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.\n\n`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.\n\nFor 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.\n\n## How to get started?\n\n* Take a look at the [documentation overview](https://github.com/appliedtopology/javaplex/wiki/Overview)  \n* 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).\n* From the [latest release](https://github.com/appliedtopology/javaplex/releases/), you can download and start playing with the latest matlab examples.\n\n## For more information\n\n* Read the [wiki page documentation](https://github.com/appliedtopology/javaplex/wiki/Overview)\n* Look at the [javadoc documentation](http://appliedtopology.github.io/javaplex/doc/)\n\n## Wiki links\n\n* [Architecture Notes](https://github.com/appliedtopology/javaplex/wiki/Architecture-Notes)\n* [Citation Information](https://github.com/appliedtopology/javaplex/wiki/Citation-Information)\n* [Cohomology](https://github.com/appliedtopology/javaplex/wiki/)\n* [Home](https://github.com/appliedtopology/javaplex/wiki/Home)\n* [Interoperability](https://github.com/appliedtopology/javaplex/wiki/Interoperability)\n* [Overview](https://github.com/appliedtopology/javaplex/wiki/Overview)\n* [Troubleshooting](https://github.com/appliedtopology/javaplex/wiki/Troubleshooting)\n* [Tutorial](https://github.com/appliedtopology/javaplex/wiki/Tutorial)\n\n\n## Citing JavaPlex\n\nTo cite `JavaPlex`, please consult the [Citation Information](https://github.com/appliedtopology/javaplex/wiki/Citation-Information) page.\n\n## Old Site\n\n`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.\n\n## Updates\n\n* July, 2018: [Version 4.3.4](https://github.com/appliedtopology/javaplex/releases/) is released.\n* July, 2018: Version 4.3.3 is released.\n* June, 2017: Version 4.3.1 is released.\n* May, 2017: Version 4.3.0 is released. Installation in Matlab 2016 should now work again!\n* March, 2016: Version 4.2.5 is released\n* Jan, 2016: Version 4.2.4 released\n* July, 2015: Version 4.2.3 released\n* March, 2015: Version 4.2.2 released\n* July, 2014: Version 4.2.1 released\n* April, 2014: Google Code hosting abandoned\n* May, 2012: Version 4.1.0 released\n* For frequently asked questions regarding `JavaPlex` and troubleshooting information, consult the [troubleshooting](https://github.com/appliedtopology/javaplex/wiki/Troubleshooting) page.\n"
  },
  {
    "path": "build/processing/javaplex/library.properties",
    "content": "name=javaPlex\nauthorList=Andrew Tausz and Mikael Vejdemo-Johansson and Henry Adams\nurl=http://code.google.com/p/javaplex\ncategory=Geometry, Math\nsentence=Framework for computational topology\nparagraph=\nversion=101\nprettyVersion=4.3.4\n\n"
  },
  {
    "path": "build.number",
    "content": "#Build Number for ANT. Do not edit!\n#Sun Jul 15 19:57:53 MDT 2018\nbuild.number=102\n"
  },
  {
    "path": "build.xml",
    "content": "<?xml version=\"1.0\" ?>\n\n<project name=\"javaplex\" default=\"default\" basedir=\".\">\n\t<property name=\"version.num\" value=\"4.3.4\" />\n\t<property name=\"build.dir\" value=\"build\" />\n\t<property name=\"bin.dir\" value=\"${build.dir}/bin\" />\n\t<property name=\"temp.dir\" value=\"temp\" />\n\t<property name=\"src_test.dir\" value=\"src_test\" />\n\t<property name=\"src.dir\" value=\"src\" />\n\t<property name=\"lib.dir\" value=\"lib\" />\n\t<property name=\"doc.dir\" value=\"doc\" />\n\t<property name=\"dist.dir\" value=\"dist\" />\n\t<property name=\"matlab.lib.dir\" value=\"src/matlab/for_distribution/lib\" />\n\t<property name=\"test.dir\" value=\"${build.dir}/test\" />\n\t<property name=\"project.name\" value=\"javaplex\" />\n\t<property name=\"runnable.jar\" value=\"${dist.dir}/${project.name}-${version.num}.jar\" />\n\t<property name=\"basic.jar\" value=\"${temp.dir}/${project.name}.jar\" />\n\t<property name=\"tests.jar\" value=\"${temp.dir}/tests.jar\" />\n\t<property name=\"source.tarball\" value=\"${dist.dir}/${project.name}-src-${version.num}.tar.gz\" />\n\t<property name=\"source.zipball\" value=\"${dist.dir}/${project.name}-src-${version.num}.zip\" />\n\t<property name=\"doc.tarball\" value=\"${dist.dir}/${project.name}-doc-${version.num}.tar.gz\" />\n\t<property name=\"doc.zipball\" value=\"${dist.dir}/${project.name}-doc-${version.num}.zip\" />\n\t<property name=\"matlab.tarball\" value=\"${dist.dir}/matlab-examples-${version.num}.tar.gz\" />\n\t<property name=\"matlab.zipball\" value=\"${dist.dir}/matlab-examples-${version.num}.zip\" />\n\t<property name=\"processing.src.dir\" value=\"src/processing/javaplex\" />\n\t<property name=\"processing.demo.src.dir\" value=\"src/processing/javaplexDemo\" />\n\t<property name=\"processing.build.dir\" value=\"build/processing/javaplex\" />\n\t<property name=\"processing.dist.dir\" value=\"dist/processing\" />\n\t<property name=\"processing.jar\" value=\"${processing.build.dir}/library/javaplex.jar\" />\n\t<property name=\"processing.zipball\" value=\"${dist.dir}/${project.name}-processing-lib-${version.num}.zip\" />\n\t<property name=\"processing.demo.zipball\" value=\"${dist.dir}/${project.name}-processing-demo-${version.num}.zip\" />\n\t<property name=\"ant.build.javac.source\" value=\"1.6\" />\n\t<property name=\"ant.build.javac.target\" value=\"1.6\" />\n\n\t<buildnumber />\n\n\t<path id=\"classpath\">\n\t\t<fileset dir=\"${lib.dir}\">\n\t\t\t<include name=\"*.jar\" />\n\t\t</fileset>\n\t</path>\n\n\t<property name=\"debug.flag\" value=\"off\" />\n\n\t<!--Default target-->\n\t<target name=\"default\" depends=\"clean,dist\" />\n\n\t<!--All targets-->\n\t<target name=\"all\" depends=\"clean,dist,test\" />\n\n\t<!--Clean targets-->\n\t<target name=\"clean\">\n\t\t<delete dir=\"${build.dir}\" />\n\t\t<delete dir=\"${temp.dir}\" />\n\t\t<delete>\n\t\t\t<fileset dir=\".\" includes=\"TEST*.txt\" />\n\t\t</delete>\n\t</target>\n\n\t<target name=\"clean_dist\" depends=\"clean\">\n\t\t<delete dir=\"${dist.dir}\" />\n\t</target>\n\n\t<target name=\"clean_all\" depends=\"clean,clean_dist\" />\n\n\t<!--Initialization targets-->\n\t<target name=\"init\">\n\t\t<mkdir dir=\"${build.dir}\" />\n\t\t<mkdir dir=\"${bin.dir}\" />\n\t\t<mkdir dir=\"${dist.dir}\" />\n\t\t<mkdir dir=\"${test.dir}\" />\n\t\t<mkdir dir=\"${temp.dir}\" />\n\t</target>\n\n\t<!--Documentation targets-->\n\t<target name=\"doc\" depends=\"javadoc\" />\n\n\t<target name=\"javadoc\">\n\t\t<javadoc destdir=\"${doc.dir}\" classpathref=\"classpath\" Overview=\"doc_includes/overview.htm\" sourcepath=\"${src.dir}\">\n\t\t\t<package name=\"edu.stanford.math.plex4\" />\n\t\t\t<fileset dir=\"${src.dir}\" />\n\t\t</javadoc>\n\t\t<copy file=\"doc_includes/update_mime_types.sh\" tofile=\"${doc.dir}/update_mime_types.sh\" />\n\t</target>\n\n\t<!--Bin targets-->\n\t<target name=\"classes\" depends=\"init\">\n\t\t<javac destdir=\"${bin.dir}\" classpathref=\"classpath\" debug=\"${debug.flag}\" includeAntRuntime=\"false\" source=\"1.6\" target=\"1.6\">\n\t\t\t<compilerarg value=\"-Xlint\" />\n\t\t\t<src>\n\t\t\t\t<pathelement path=\"${src.dir}\" />\n\t\t\t</src>\n\t\t</javac>\n\t</target>\n\n\t<!--Distribution targets-->\n\t<target name=\"dist\" depends=\"clean_dist,runnable_jar,doc_tar,source_dist,matlab_dist,processing_dist\" />\n\n\t<target name=\"doc_tar\">\n\t\t<tar destfile=\"${doc.tarball}\" compression=\"gzip\">\n\t\t\t<tarfileset dir=\"doc\" prefix=\"javadoc\">\n\t\t\t\t<include name=\"bshmanual.pdf\" />\n\t\t\t\t<include name=\"stylesheet.css\" />\n\t\t\t\t<include name=\"*.html\" />\n\t\t\t\t<include name=\"**/*.html\" />\n\t\t\t</tarfileset>\n\t\t</tar>\n\t\t<zip destfile=\"${doc.zipball}\">\n\t\t\t<zipfileset dir=\"doc\" prefix=\"javadoc\">\n\t\t\t\t<include name=\"bshmanual.pdf\" />\n\t\t\t\t<include name=\"stylesheet.css\" />\n\t\t\t\t<include name=\"*.html\" />\n\t\t\t\t<include name=\"**/*.html\" />\n\t\t\t</zipfileset>\n\t\t</zip>\n\t</target>\n\n\t<target name=\"source_dist\">\n\t\t<tar destfile=\"${source.tarball}\" compression=\"gzip\">\n\t\t\t<tarfileset dir=\"${src.dir}/java\" prefix=\"src/java\">\n\t\t\t\t<include name=\"**\" />\n\t\t\t\t<exclude name=\"**.svn/**\" />\n\t\t\t</tarfileset>\n\t\t</tar>\n\t\t<zip destfile=\"${source.zipball}\">\n\t\t\t<zipfileset dir=\"${src.dir}/java\" prefix=\"src/java\">\n\t\t\t\t<include name=\"**\" />\n\t\t\t\t<exclude name=\"**.svn/**\" />\n\t\t\t</zipfileset>\n\t\t</zip>\n\t</target>\n\n\t<!--Runnable jar file-->\n\t<target name=\"runnable_jar\" depends=\"classes\">\n\n\t\t<jar destfile=\"${runnable.jar}\" filesetmanifest=\"mergewithoutmain\">\n\t\t\t<manifest>\n\t\t\t\t<attribute name=\"Main-Class\" value=\"edu.stanford.math.plex4.api.Plex4\" />\n\t\t\t\t<attribute name=\"Class-Path\" value=\".\" />\n\t\t\t</manifest>\n\t\t\t<fileset dir=\"${bin.dir}\" />\n\t\t\t<zipfileset excludes=\"META-INF/*.SF\" src=\"${lib.dir}/bsh-2.0b4.jar\" />\n\t\t\t<zipfileset excludes=\"META-INF/*.SF\" src=\"${lib.dir}/colt.jar\" />\n\t\t\t<zipfileset excludes=\"META-INF/*.SF\" src=\"${lib.dir}/jai_codec.jar\" />\n\t\t\t<zipfileset excludes=\"META-INF/*.SF\" src=\"${lib.dir}/trove-2.1.0.jar\" />\n\t\t\t<zipfileset excludes=\"META-INF/*.SF\" src=\"${lib.dir}/primitive-lib.jar\" />\n\t\t\t<zipfileset excludes=\"META-INF/*.SF\" src=\"${lib.dir}/velocity-1.6.4-dep.jar\" />\n\t\t\t<zipfileset excludes=\"META-INF/*.SF\" src=\"${lib.dir}/commons-math-2.1.jar\" />\n\t\t\t<zipfileset excludes=\"META-INF/*.SF\" src=\"${lib.dir}/junit-4.9b1.jar\" />\n\t\t</jar>\n\n\t</target>\n\n\t<target name=\"matlab_dist\" depends=\"runnable_jar\">\n\t\t<copy file=\"${runnable.jar}\" tofile=\"${matlab.lib.dir}/javaplex.jar\" />\n\t\t<tar destfile=\"${matlab.tarball}\" compression=\"gzip\">\n\t\t\t<tarfileset dir=\"src/matlab/for_distribution\" prefix=\"matlab_examples\" preserveLeadingSlashes=\"true\">\n\t\t\t\t<include name=\"**\" />\n\t\t\t</tarfileset>\n\t\t</tar>\n\t\t<zip destfile=\"${matlab.zipball}\">\n\t\t\t<zipfileset dir=\"src/matlab/for_distribution\" prefix=\"matlab_examples\">\n\t\t\t\t<include name=\"**\" />\n\t\t\t</zipfileset>\n\t\t</zip>\n\t</target>\n\n\t<target name=\"processing_dist\" depends=\"runnable_jar\">\n\t\t<mkdir dir=\"${processing.build.dir}\" />\n\t\t<copy file=\"${runnable.jar}\" tofile=\"${processing.jar}\" />\n\t\t<copy todir=\"${processing.build.dir}\">\n\t\t\t<fileset dir=\"${processing.src.dir}\" />\n\t\t\t<filterset>\n\t\t\t\t<filter token=\"VERSION\" value=\"${build.number}\" />\n\t\t\t\t<filter token=\"PRETTYVERSION\" value=\"${version.num}\" />\n\t\t\t</filterset>\n\t\t</copy>\n\t\t<zip destfile=\"${processing.zipball}\">\n\t\t\t<zipfileset dir=\"${processing.build.dir}\" prefix=\"javaplex\">\n\t\t\t\t<include name=\"**\" />\n\t\t\t</zipfileset>\n\t\t</zip>\n\t\t<zip destfile=\"${processing.demo.zipball}\">\n\t\t\t<zipfileset dir=\"${processing.demo.src.dir}\" prefix=\"javaplexDemo\">\n\t\t\t\t<include name=\"**\" />\n\t\t\t</zipfileset>\n\t\t</zip>\n\t</target>\n\n\t<!--Basic Jar file-->\n\t<target name=\"basic_jar\" depends=\"classes\">\n\t\t<jar destfile=\"${basic.jar}\" basedir=\"${bin.dir}\">\n\t\t</jar>\n\t</target>\n\n\t<!--Test targets-->\n\t<target name=\"test.jar\" depends=\"basic_jar\">\n\t\t<javac destdir=\"${test.dir}\" srcdir=\"${src_test.dir}\" debug=\"${debug.flag}\" includeantruntime=\"false\">\n\t\t\t<classpath>\n\t\t\t\t<fileset dir=\"${lib.dir}\">\n\t\t\t\t\t<include name=\"*.jar\" />\n\t\t\t\t</fileset>\n\t\t\t\t<pathelement location=\"${basic.jar}\" />\n\t\t\t</classpath>\n\t\t\t<compilerarg value=\"-Xlint\" />\n\t\t</javac>\n\t\t<jar destfile=\"${tests.jar}\" basedir=\"${test.dir}\" />\n\t</target>\n\n\t<target name=\"test\" depends=\"test.jar\">\n\t\t<delete>\n\t\t\t<fileset dir=\".\" includes=\"TEST*.txt\" />\n\t\t</delete>\n\t\t<junit fork=\"yes\" timeout=\"1200000\" tempdir=\"${temp.dir}\">\n\t\t\t<classpath>\n\t\t\t\t<fileset dir=\"${lib.dir}\">\n\t\t\t\t\t<include name=\"*.jar\" />\n\t\t\t\t</fileset>\n\t\t\t\t<pathelement location=\"${tests.jar}\" />\n\t\t\t\t<pathelement location=\"${basic.jar}\" />\n\t\t\t</classpath>\n\n\t\t\t<formatter type=\"brief\" />\n\n\t\t\t<batchtest todir=\"${temp.dir}\">\n\t\t\t\t<fileset dir=\"${test.dir}\">\n\t\t\t\t\t<include name=\"**/*Test.class\" />\n\t\t\t\t</fileset>\n\t\t\t</batchtest>\n\t\t</junit>\n\t</target>\n\n\n\n\t<!-- Build visualization apps (uses Processing) -->\n\t<target name=\"homviz_build\" depends=\"runnable_jar\" description=\"Builds a jar for the Homologty Visualizer applet\">\n\t\t<property name=\"app.dir\" value=\"${src.dir}/homviz\" />\n\t\t<property name=\"app.lib.dir\" value=\"${app.dir}/lib\" />\n\t\t<delete dir=\"${app.dir}\" />\n\t\t<mkdir dir=\"${app.dir}\" />\n\t\t<mkdir dir=\"${app.lib.dir}\" />\n\t\t<copy file=\"${lib.dir}/core.jar\" todir=\"${app.lib.dir}\" />\n\t\t<copy file=\"${runnable.jar}\" tofile=\"${app.lib.dir}/javaplex.jar\" />\n\t\t<jar destfile=\"${app.dir}/homviz.jar\">\n\t\t\t<fileset dir=\"bin/edu/stanford/math/plex4/visualization\">\n\t\t\t\t<include name=\"**/*.class\" />\n\t\t\t</fileset>\n\t\t\t<manifest>\n\t\t\t\t<attribute name=\"Main-Class\" value=\"edu.stanford.math.plex4.visualization.HomologyVisualizer\" />\n\t\t\t\t<attribute name=\"Class-Path\" value=\"lib/core.jar lib/javaplex.jar\" />\n\t\t\t</manifest>\n\t\t</jar>\n\t\t<jar destfile=\"${app.dir}/homgenviz.jar\">\n\t\t\t<fileset dir=\"bin/edu/stanford/math/plex4/visualization\">\n\t\t\t\t<include name=\"**/*.class\" />\n\t\t\t</fileset>\n\t\t\t<manifest>\n\t\t\t\t<attribute name=\"Main-Class\" value=\"edu.stanford.math.plex4.visualization.HomologyGeneratorVisualizer\" />\n\t\t\t\t<attribute name=\"Class-Path\" value=\"lib/core.jar lib/javaplex.jar\" />\n\t\t\t</manifest>\n\t\t</jar>\n\t</target>\n\n\n\n</project>\n"
  },
  {
    "path": "data/natural_images/readme_natural_images.txt",
    "content": "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.\n\nThe paper \"On the local behavior of spaces of natural images\" is available at the following website:\nhttp://www.springerlink.com/content/pm1718435n685294/\nThese 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\nhttp://pages.pomona.edu/~vds04747/public/papers/witness.pdf\nThe 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\nhttp://www.informatik.uni-trier.de/~ley/db/journals/ijcv/ijcv54.html\nThe patches are taken from van Hateren's natural image database, which is available at\nhttp://www.kyb.mpg.de/bethge/vanhateren/index.php\nSee 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\nhttp://www.ncbi.nlm.nih.gov/pmc/articles/PMC1688904/\n\nThe 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\".\nThe Matlab file nk300c30Dct.mat contains a version of the core subset X(300,30).\nThe Matlab file nk15c30Dct.mat contains a version of the core subset X(15,30)."
  },
  {
    "path": "data/point_clouds/circle.txt",
    "content": "0,1,1\n0.125333233564304,0.992114701314478,1\n0.248689887164855,0.968583161128631,1\n0.368124552684678,0.929776485888251,1\n0.481753674101715,0.876306680043864,1\n0.587785252292473,0.809016994374947,1\n0.684547105928689,0.728968627421412,1\n0.770513242775789,0.63742398974869,1\n0.844327925502015,0.535826794978997,1\n0.90482705246602,0.425779291565073,1\n0.951056516295154,0.309016994374947,1\n0.982287250728689,0.187381314585725,1\n0.998026728428272,0.0627905195293133,1\n0.998026728428272,-0.0627905195293134,1\n0.982287250728689,-0.187381314585725,1\n0.951056516295154,-0.309016994374948,1\n0.904827052466019,-0.425779291565073,1\n0.844327925502015,-0.535826794978997,1\n0.770513242775789,-0.63742398974869,1\n0.684547105928689,-0.728968627421412,1\n0.587785252292473,-0.809016994374947,1\n0.481753674101715,-0.876306680043864,1\n0.368124552684678,-0.929776485888251,1\n0.248689887164855,-0.968583161128631,1\n0.125333233564304,-0.992114701314478,1\n-3.21624529935327e-16,-1,1\n-0.125333233564304,-0.992114701314478,1\n-0.248689887164855,-0.968583161128631,1\n-0.368124552684678,-0.929776485888251,1\n-0.481753674101715,-0.876306680043863,1\n-0.587785252292473,-0.809016994374947,1\n-0.684547105928689,-0.728968627421412,1\n-0.770513242775789,-0.63742398974869,1\n-0.844327925502015,-0.535826794978996,1\n-0.90482705246602,-0.425779291565072,1\n-0.951056516295154,-0.309016994374948,1\n-0.982287250728689,-0.187381314585725,1\n-0.998026728428272,-0.0627905195293132,1\n-0.998026728428272,0.0627905195293137,1\n-0.982287250728689,0.187381314585725,1\n-0.951056516295154,0.309016994374947,1\n-0.90482705246602,0.425779291565073,1\n-0.844327925502015,0.535826794978997,1\n-0.770513242775789,0.63742398974869,1\n-0.684547105928688,0.728968627421412,1\n-0.587785252292473,0.809016994374948,1\n-0.481753674101715,0.876306680043864,1\n-0.368124552684678,0.929776485888251,1\n-0.248689887164854,0.968583161128631,1\n-0.125333233564304,0.992114701314478,1\n-2.44929359829471e-16,1,1\n"
  },
  {
    "path": "data/point_clouds/cube.txt",
    "content": "0,0,0\n0,0,1\n0,1,0\n0,1,1\n1,0,0\n1,0,1\n1,1,0\n1,1,1\n"
  },
  {
    "path": "data/point_clouds/cylinder.txt",
    "content": "1.98155906437293,1.01389735228371,9.91560618858784\n9.08504984057864,7.88311772218694,7.3735861806199\n9.18819705140907,7.73111798693655,9.24848021706566\n0.297367590525015,6.69860190196393,4.00469116866589\n8.37947995174046,1.31501489069708,0.380953245330602\n3.8633849243986,9.86909705899519,6.67675641831011\n0.342358399089671,3.18165605083376,1.17942726472393\n4.30273571776188,9.95114355686794,2.67158857081085\n6.74175707022841,0.313179936427116,4.56938061863184\n7.55717192220169,0.703388339597898,1.44128279294819\n0.298787263452959,6.70252718208194,9.62811290519312\n2.81609087584908,9.49783736227205,1.20725980959833\n9.89843268972806,3.99732498574888,1.66349642444402\n4.57169509699127,0.0183782851305656,3.90655303606763\n8.32049682214699,8.73822161650587,7.36547205829993\n2.11196347038048,9.08157383904582,2.40806992864236\n0.723575182144563,7.59078960497183,8.76940758666024\n3.64775712796965,0.186327886629262,4.48188315611333\n0.295002987566648,6.69204110854117,1.70002741506323\n3.72061581509227,0.166453051080605,0.779146109707654\n2.94226994104994,0.443055079936409,5.65943384310231\n2.9928126057908,9.57943214433053,0.416400467511266\n8.00157963108108,8.99881478919432,1.78701147902757\n0.0492417001941963,5.69999446919525,5.71796077070758\n0.0381298317631824,4.38368479366356,4.94143709540367\n0.0395865408689104,4.37206822466837,9.67417690902948\n4.6533743259249,0.0120294064547668,1.32679875940084\n1.20949259809144,8.26068300147015,4.1339967190288\n9.90782881098922,5.95562354618549,8.07800238952041\n2.36826753557501,9.25135087186315,8.4695887262933\n9.54637444113232,7.08098040380461,1.49970934260637\n9.67481897887884,3.22628426327268,2.78491820208728\n2.96700892507886,0.431964613831131,5.33804455772042\n4.34009512180831,0.0437387526746731,8.58999602030963\n6.00137583948972,0.101301557751666,2.3132145148702\n9.90972770278314,4.05418083941814,2.06402251496911\n5.44400291400843,9.98024712362268,1.98890739586204\n9.59057436323983,6.98157185475702,6.89322384539992\n7.84754576701277,9.10992495123301,8.41165363555774\n7.164404508691,0.492744391233387,7.64313261024654\n3.88506360668586,0.125893226563081,8.46851739101112\n0.128510562079963,3.87368270179601,6.30169098032638\n7.36716245099221,0.595849465491384,7.36188026145101\n9.82149805532027,3.67593183614177,3.59787971712649\n9.54058412077095,2.90641555169067,3.14378441078588\n8.51243925866423,8.55847867131367,3.29378595110029\n0.504254282057865,2.81178830100811,4.53104746062309\n4.31058221154647,0.0477577691550826,7.6893353369087\n4.44022622877714,0.0314334738225615,6.42619221936911\n5.51202487101679,0.026286042456781,1.98695020982996\n6.91850634597638,9.61728636760255,9.52424436109141\n8.57367153285729,1.50301962040886,1.11773680662736\n7.06377463761604,9.55421060614601,5.61686536064371\n1.45763662549831,8.52869121955846,4.57374772056937\n5.34549062116696e-05,5.02312025529035,3.46125789452344\n9.18165524978191,7.74112374255002,3.52681379998103\n1.50237930022121,8.57304484165521,2.64214387862012\n8.74651811324678,1.68886695720124,7.53608060535043\n0.304140179967696,3.28276368818785,3.77550700912252\n6.61454727189493,9.73214931155143,4.6098384144716\n6.62134412142694,0.270175136443813,7.24471779307351\n6.66905677488787,0.286800504731323,7.6736927847378\n0.131508947982554,6.13920800402124,3.47244966076687\n8.88076174473684,1.84727288199771,6.02516253245994\n0.361630584248668,6.86695719367709,4.94784859241918\n5.96265594037259,0.0935457262433017,5.71045571472496\n9.9560162768063,4.33825785684225,5.45636160532013\n9.9573609904291,5.65159190493117,2.77153667761013\n2.96900480902746,0.431076873677297,8.53253790875897\n4.896563871275,0.00107001776636384,6.02567227790132\n1.04601851227502,1.93960290244417,3.44587875995785\n7.64943704318637,9.24034000455056,4.57919821608812\n9.82579430831009,3.69167691532942,6.64985702373087\n4.65956717673615,0.0116029134756515,3.58294414822012\n8.20532708024432,8.83743121223722,1.39708176488057\n0.679309311050914,7.51627342918624,0.758123067207634\n1.20983834758344,1.73891511172264,3.32052253186703\n0.0174048897430064,5.41682846261153,2.3171843169257\n9.35953292930975,7.44836121482595,0.220230356790125\n0.678031617011214,2.4859217799668,3.94748639315367\n0.40947673679646,6.98169023058275,4.95670055504888\n9.90936123484882,5.94771950795773,2.017673375085\n2.80443119025604,0.507842656175155,8.49194075679407\n6.76944458349702,0.323562695177765,7.71667758235708\n0.417938416671372,2.99882243501884,7.97898060409352\n8.85557120973321,8.18348404215828,7.41256185341626\n9.02507837855998,7.96626769635664,7.03079507453367\n9.01146507363252,2.01534793266846,9.31785981170833\n9.71203141911599,3.32764839065951,6.89677640330046\n6.23440415042444,0.15477075945679,2.1531616942957\n9.81450986991083,3.65074290347198,5.20865012425929\n3.15839515312481,0.351506524908762,2.47535083908588\n1.02210657444931,8.02925137533362,0.0028396095149219\n2.8655124614774,9.5215000771748,1.97060911217704\n9.73985120015462,6.59179477332752,5.76980191282928\n8.60365380572443,8.46607548222594,9.40057422267273\n4.72120415416559,0.00777876328127114,0.89916825061664\n0.899924479196999,7.86170940588174,5.53220674628392\n1.78718510583734,8.83116437337875,8.13203247031197\n8.23375757596786,8.81350389273048,4.17472541332245\n0.223151649264339,3.52293539949195,3.16485654795542\n0.20603480730742,3.57947272773382,9.34758721385151\n1.95315192042294,8.96443145734387,3.81980929058045\n7.6799847349971,9.2210995984675,1.22901774710044\n6.70593803006527,0.300023889680181,6.8852007901296\n9.71234118671397,6.67147854906942,2.17834393959492\n4.5033794367826,0.0247243276186557,2.84860792104155\n4.29557929266267,9.95013044950074,0.973909748718143\n9.08474926888194,7.88354355097482,4.5472671976313\n0.0756294101361199,4.133643091051,2.16106416191906\n0.66029823910638,2.51665777096736,5.86965558119118\n2.56379732914619,0.633660967523851,6.13497688435018\n1.29355873995238,1.64406597415614,2.76353855151683\n0.100264969631659,4.00370856062026,1.6551045444794\n0.0905365454550813,4.05281016238144,1.9357799529098\n9.41458412196148,2.6523528735933,3.23120343266055\n9.46029119992751,7.25960226850859,6.20557196438313\n1.61506228912421,1.32002762327066,6.18751841131598\n0.0615541899069596,5.78214639344211,5.3097306843847\n4.36602958205772,0.0403546992578088,9.47704016463831\n9.28853641872373,2.42930838386238,6.77681132918224\n7.29096071266088,0.555734142398282,4.42116612801328\n2.8995296617017,9.53740282076972,6.03302712086588\n5.18252738328036,9.99666726472284,0.272806147113442\n0.0812942143642257,4.10203931358152,4.87914178986102\n9.59263037869132,6.97680201454815,3.04588038474321\n9.53213977320231,2.88819767114493,9.17776150628924\n1.11359480684662,8.14576774009628,2.92854892322794\n0.57266752870386,7.32351612617748,3.42329949373379\n0.123492621766849,3.89561067098706,2.08388806320727\n7.5532231969333,0.701040671669285,7.07083959365264\n1.8301583673687,8.86679505844793,9.08233890077099\n2.65272526031104,0.585217865350758,7.49294742010534\n0.480061584317667,2.8622075127742,9.37890768051147\n9.98746371020676,4.64615576962362,2.79900332447141\n5.39592662006372,9.9842995607733,2.07014475949109\n6.8791634102023,9.63343769546509,2.42754332954064\n6.70233834549015,0.298718881254401,1.0642899828963\n1.38480943690339,1.54595929489862,4.33233608491719\n8.93245725811804,8.08800581493539,1.35092819808051\n5.11438308285688,0.00130852018689254,8.17405810346827\n3.47924777426578,9.76312005600577,3.06138352956623\n4.70833518708136,0.00851408527429243,2.78952522436157\n4.08397549056137,0.0846262504151607,4.85826239455491\n3.60879424338526,0.197443749130884,9.06072210287675\n0.0322454008361284,4.43306592756635,2.71818210370839\n1.09090611985281,8.11752867447852,6.32752685574815\n5.09333742675109,0.000871263433248615,6.50233844295144\n6.33350995633833,0.181104774292499,9.4024747540243\n2.08190559071877,0.939861453284923,1.3198665715754\n2.05594904172314,0.958643302668137,3.38051763828844\n6.0414075995122,9.89034459027973,9.85981727950275\n5.22285688177885,9.99503101194015,6.03791355388239\n0.0176749515967556,4.57995582130732,3.37604096159339\n9.1891974905524,2.27041681109561,4.76685512810946\n7.33089157305953,9.42345390782362,3.62371941795573\n0.401100363810035,3.03782719001312,3.62792111700401\n9.90928481240586,4.05188469547149,2.63047105167061\n7.63908110475117,0.7532069837882,4.10442095715553\n0.00584500624436934,4.7583061888552,0.556122455745935\n9.3893139232069,2.60543881190268,1.18974984623492\n0.308771317844974,6.72984781172391,7.39169531268999\n1.50041095538624,1.42888301524308,6.16055381018668\n1.44985822326693,1.4791345715727,8.42528459150344\n1.9663435101077,8.97453497925661,5.69394054589793\n9.70801663358923,6.6836209127494,7.34111036639661\n9.86819284805888,6.14048165005334,2.07985062152147\n6.70213184423397,0.298644112083764,5.26059908326715\n9.99899326361258,5.10033120330202,7.0604231627658\n9.83218963145211,3.71549878719919,3.94992934772745\n5.29275990707442,0.00857819486173117,3.65242982748896\n7.8135694518341,0.866741365495507,3.01494718529284\n7.28754939818023,0.553977311024462,3.82129128323868\n9.11516695982113,7.83996494569854,3.63564348546788\n9.95623323506021,4.33988476787413,9.04378048609942\n6.79233689211751,0.332288733741714,9.17223730357364\n3.02409338956007,9.59301568327605,7.14646412059665\n0.00373529836814956,4.80676689924448,2.17261475976557\n1.5237361105334,1.40617343618385,4.23061681212857\n9.91172574526283,4.0646122711291,1.04487017029896\n7.10552712589608,9.53505849158705,9.13629327202216\n9.07447258569787,2.10195356345063,0.326851403806359\n6.61734159922323,0.268804997527362,8.26476547168568\n9.75448745899293,6.54752996813599,2.11933527840301\n7.10915631422652,9.53337177409469,5.79990849364549\n3.60294321736878,0.199142540534648,1.79527902510017\n0.461883856380353,2.90107125727939,5.06749103777111\n9.48133891958354,2.78243343102719,1.5495343809016\n0.128599499224101,6.12670189537442,9.20397030189633\n9.55952274803403,7.05201177144776,7.23849420901388\n7.60100964154843,9.27021648685077,3.47964082611725\n9.48121046769353,7.21782613029831,5.48018676694483\n0.801384067738752,7.71507352632705,6.97265869006515\n6.98594465253593,9.5886843252793,8.42755313031375\n1.27182210138196,1.66823026662166,7.97182436101139\n8.83270528300063,8.2109765202597,6.33284526178613\n9.77700250818251,6.47656596087613,4.75078266346827\n4.10015709451374,9.91836179489127,1.75769717432559\n1.73909612204247,8.79031738759718,3.37743477663025\n4.46582905896621,9.97138425448638,2.02819433761761\n9.02185523813349,2.02936362987689,7.62582640862092\n3.84255841252106,9.864188418593,2.29280170984566\n9.23162335209545,2.33666303183385,5.36567959934473\n7.59081743812425,9.27640795555233,5.30307809123769\n1.70507399221928,8.76077952069119,3.94775351276621\n0.301857866059078,6.71098231705913,9.08147040521726\n2.31102089399296,9.21537559031904,3.97971724392846\n0.0512976542006864,5.71438441519981,8.4747231239453\n3.67911899677535,9.82237217304101,6.04592529824004\n0.986884083053025,7.98243200042295,9.35327148996294\n5.91524045728745,9.9155198001172,3.78175632795319\n2.79461010012671,0.512656087445839,5.60211172094569\n9.06185300867545,7.91570748462774,4.54928757390007\n6.52946102764516,0.239669237866488,0.387833029963076\n2.29406247021851,9.20450973181417,7.54382866900414\n8.81527055549965,1.76832696760062,9.16855052346364\n1.05230312243559,1.93150047044681,6.20655971812084\n6.21751928698223,0.150500357168147,9.49014480458573\n3.78610936012266,9.85040921102727,1.79473456460983\n9.60649794414076,6.94426764891743,6.41646301373839\n2.87827870141682,9.52750469145406,9.15629823459312\n9.76028474404372,6.52960424804086,6.7956636310555\n9.87534546053863,3.89049261363191,5.04896315280348\n0.0694697057005307,5.83058474401785,6.69082100503147\n8.82926641744952,1.78492321954929,3.08234069263563\n0.845023136006945,7.78139663832443,8.43683670507744\n0.016456919826922,5.4053373509301,8.67310285801068\n4.86529529675359,0.00181486508119644,5.1640859246254\n4.09412095513166,9.91725361925419,5.92254223302007\n0.00838414782403252,5.28943252116096,5.42263799812645\n0.0178606136099395,4.57775938781203,0.55065440479666\n6.17884663172438,9.85904523737659,8.80351451458409\n0.0150361264960361,5.38747281176923,1.02662118384615\n6.82236424778894,0.343929924455535,0.623037782497704\n1.71470574012454,1.23080358351686,2.38549605244771\n9.58305239491907,6.99890738790635,5.27510567335412\n9.71599232914936,6.66114910571097,7.29834318859503\n6.54838749825494,0.245791742545577,9.16486918693408\n5.11003450606912,9.99878909411811,0.18240817822516\n6.7025172234739,0.29878365699102,2.72441705921665\n8.38409744164324,8.68074510194114,1.83652173727751\n8.44119969625645,8.6274156986048,2.89334535598755\n5.41130006656171,0.0169454894365915,4.95241242926568\n9.99839806690896,5.12655735743424,1.58623022958636\n9.31303881281368,2.47063324146877,1.83140772860497\n9.97362091466604,5.51292786743997,1.7711855773814\n8.2988153185487,8.75736842671948,9.44953825557604\n4.06546126785453,0.0881126480628724,3.17615486681461\n9.96114535524651,5.62212278861649,7.87899327464402\n0.0011078722302047,4.89475032104005,4.31469856528565\n4.60345975649391,9.98425077973411,1.28046716097742\n9.99961687967116,4.93810447102393,8.68892352329567\n9.03554294886662,2.04798490724507,9.95024823583663\n8.7429491272178,8.31516693864118,6.81781406514347\n9.83169419770674,6.28636354886439,7.83420689869672\n0.200214641514924,3.59926429599575,8.23520988924429\n1.43669505035426,1.49245700869823,7.75759101845324\n0.915350840145051,2.11631464252837,7.58571529295295\n0.186175256047624,3.64830057538229,5.35677018808201\n4.76929718950738,9.99467478553217,3.9169091056101\n9.96643658926347,4.42163367592413,0.540897287428379\n8.93635051970137,8.08304145058848,7.34755479265004\n9.44053860769713,2.70182314136809,0.313386302441359\n9.95779008930344,5.64831892645869,7.83697160426527\n3.51569422375172,0.225396732439859,7.96462544705719\n1.47869602251653,1.45029320955109,5.66345289582387\n0.380551690833607,3.0867051144845,7.90581358363852\n9.99819643827878,5.13428463939453,2.23552356939763\n2.76449059214744,0.527584803777416,2.68832035595551\n5.73145541633151,0.0537920611928069,0.257770600728691\n9.50163487782857,2.82392936081631,8.87621809961274\n6.59493400676524,0.261204212665017,8.63767869537696\n9.12041618367591,2.16765636383901,6.41633699648082\n6.78748092938431,9.66957299194342,2.52336235018447\n9.98390097273247,5.40091282593151,4.60909839021042\n7.10976163342921,0.466909900508252,7.93389781145379\n8.59416406063008,8.47591494505764,7.51317153917626\n3.48861600992168,0.233899032276495,4.83257923740894\n3.43398434355497,0.25156921038444,5.60504770837724\n3.95893266265484,0.109582962659211,6.8331754556857\n0.0339784843754085,5.58191950160966,3.78945562290028\n3.65964270106071,0.183004846257351,7.75675956625491\n5.86253446261432,0.0749584467943194,9.36295783845708\n0.153413258814298,6.22906344838782,5.56927622994408\n8.51490261616401,1.44395449988567,9.91321716923267\n8.22225126834924,1.17676880588922,5.80611820332706\n0.00051130347827133,4.92849634029316,2.10909283952788\n6.97201981746402,9.59468582598737,4.06207467662171\n6.01042399850371e-07,4.99754838346427,2.39015682134777\n8.47744759981314,8.59268119801268,0.857308986596763\n4.00714277196487,9.90043207531115,4.51878539286554\n6.79260203907294,9.66760944483486,2.86496453918517\n4.81973277722636,0.00325068385520488,5.91482213931158\n1.87876791099432,1.09386249005987,4.42236144095659\n2.33936984805355,9.23332578412687,0.881540116388351\n7.00149302532964,0.41807620430492,1.51210515294224\n5.70519236019427,9.95002057926264,2.99622032558545\n4.1361107617674,0.0751959039911148,8.80903256591409\n8.67861417431949,8.38641370132117,3.63712762948126\n2.90312859333565,0.460932881757151,5.92682712711394\n"
  },
  {
    "path": "data/point_clouds/octahedron.txt",
    "content": "0,0,1\n0,0,-1\n0,1,0\n0,-1,0\n1,0,0\n-1,0,0\n"
  },
  {
    "path": "data/point_clouds/sphere_rnd.txt",
    "content": "0.0773054454995878,0.836334266051908,0.542741986143994\n-0.374781006964731,-0.880579478663034,0.29003271983699\n0.50978558146903,0.424200162233223,-0.748446980946273\n-0.0528428774695098,-0.615719249834132,-0.786191729595546\n-0.367308929628173,0.000389375987204433,0.930098918718728\n0.652516428941516,-0.668637302231417,0.356576034004116\n0.0149030302359853,0.0112939871690741,0.999825157486853\n0.823022164605666,0.0710393566695145,-0.563549400116604\n0.684126185054392,0.068103436067191,-0.72617717185186\n-0.324481141146087,0.231780181172957,-0.917055034693101\n-0.338509732916114,-0.214630629991015,-0.91615765749718\n-0.00118381141382112,0.00937485776903048,-0.999955354319555\n0.729104853184126,0.158523576536518,0.665790048547907\n0.0211118341898496,0.718788101134769,0.694908595517579\n-0.30806472626895,0.560002818706148,-0.769085799810402\n-0.644943375782511,0.164810327877268,-0.74624767862905\n-0.623589297300199,0.541391018195545,0.563943395838479\n0.525375237353793,-0.100072884209631,0.84496525243433\n0.60862244684568,-0.422637064685626,-0.671533043676554\n-0.244930120010996,0.476438302197522,0.844402617541266\n-0.72106356958232,-0.627730047134878,-0.293295612898058\n-0.650652226042903,-0.294085077275247,0.700118310051542\n-0.0248561877734911,0.26785334061156,-0.963139012735232\n0.000718413489679035,-0.0289201833466252,-0.999581465853212\n0.327261372609863,-0.930358921992411,-0.16532474184655\n0.180570006689022,0.161564083033019,0.97020179331829\n-0.762804638158049,0.188161799664615,-0.618647089342172\n-0.0575350601444459,0.983868191621906,-0.169390372715851\n0.599956158420826,-0.740027845873894,0.303992426392777\n0.929425944398791,-0.368029182124441,-0.0268688478210385\n-0.877107159051745,0.184651699664105,-0.443381079153513\n0.854404307607442,-0.481021094629829,0.196499327385539\n-0.56695042330303,-0.33707461551726,0.751630175744964\n-0.126349401535378,0.0465854522909329,0.990891328232567\n-0.183201230257471,0.548734530428078,0.815676237454559\n-0.85144959293011,-0.110768878194278,-0.512604961274013\n0.604081636514428,-0.403803804660679,-0.687042839834322\n0.741799527896245,-0.649536789300367,-0.166839502990987\n-0.839102405226826,0.369063236864269,-0.399624174366146\n-0.329801539160309,-0.125969756216375,0.935608125919329\n0.960358583097858,0.273000370356808,0.0564109001463399\n0.24588518939368,0.385730790257908,0.889242504092019\n0.0422772999912147,-0.382918179658079,0.922814335385399\n-0.456825376110263,-0.0973021756562058,-0.884218786474414\n-0.0917685997699636,-0.172338746935993,0.980753730760578\n0.72403813246436,-0.0978825971963726,0.682779451875651\n0.0269048253674394,0.92218857263681,-0.385803534029991\n0.0787372103661066,0.111486104098655,-0.99064186278224\n-0.845451465373086,0.520019711402262,0.121619568538988\n0.728711360020418,-0.322857421891818,-0.60393943314422\n-0.423290015741426,0.857785834188432,0.291597368368232\n-0.261237798855839,0.0765516436102646,0.962234201382139\n-0.907077266383511,0.409815115020244,-0.0962413856465126\n0.374857363549564,-0.751777127553699,0.542506320221046\n0.165385020869652,-0.838324906268616,0.519479688151193\n0.758834971668538,-0.348479265852135,-0.550210584271119\n-0.44497758480629,0.286706273607222,-0.848407014170806\n0.913475119800637,0.0655559625862071,-0.401578910395712\n0.259046495244195,0.424829785070677,0.867418334495243\n0.997523240628835,0.0701016772023688,0.0057566708054242\n-0.0093922330874305,0.742840239365826,-0.669402841894591\n0.104895318893012,-0.413440110401736,0.904469041584804\n0.637869559781783,0.359218103525119,0.681237681579352\n-0.178064968133249,0.0405526164071191,-0.98318276654254\n0.25249809948801,0.0611888988587843,0.965660721170429\n0.0645721288707562,0.0178824894761964,-0.997752803425394\n-0.875510432589323,0.237776222180498,-0.420647061790318\n0.209535100840485,0.156719049083866,0.96516018420261\n-0.0923660199487699,0.546070586682739,0.832631630866131\n0.740281617880264,-0.637935872072206,-0.212181406706742\n-0.51335002404794,-0.839944420803601,-0.175969096067698\n-0.0167661356795372,-0.101565436372541,-0.994687568449928\n-0.899709919293064,-0.382048812135736,0.211094211837612\n0.00809383456803171,-0.296167923331757,-0.955101591994977\n0.323823198840434,0.131913959808919,0.936876322200684\n0.0859534183395871,-0.034309211997662,0.995708234297497\n0.904457784893985,-0.0024685259488967,0.426556000689599\n0.912338424948354,-0.296801985506795,0.282041095874307\n0.556959569941936,0.0482825152569048,0.829134992730713\n0.960806432034758,-0.27634353230344,0.0220284433107471\n0.268776098747987,-0.665876601711771,0.695965343989624\n-0.123750210078179,0.985388100135887,-0.117030669553731\n-0.375935062819358,0.853344800562228,-0.361213897706631\n0.76408305665407,0.461093653193351,0.451187018340491\n-0.489899172384632,-0.712327795439265,-0.502581249890492\n0.304130846139273,-0.927911729538335,-0.215602065416325\n0.189324928446894,0.670239682863866,0.717589603452505\n-0.429665430548303,0.808688284073863,0.401759725449693\n-0.928046177378992,0.0755724835749542,0.364717825693446\n0.0812822685108709,-0.333925075062947,-0.93908851396976\n0.568557363276401,-0.464700859979105,-0.67881929509912\n0.0258286084462135,0.0744231655904743,-0.996892208520673\n-0.560530115801812,-0.768600450596889,-0.308316941833346\n0.0268255219719648,0.0308043978051151,-0.999165391938089\n0.456685496464383,-0.129315597500649,0.88017943259436\n-0.299456560151077,0.872506442136801,0.386080661277234\n-0.616090413457421,0.556277618127233,-0.557662813908688\n-0.734542245897416,-0.27950972021229,-0.618321926910915\n0.0261293431973975,0.0506935037862847,-0.998372388489356\n0.360093378080232,0.213290900907335,0.908206887582837\n-0.489724227916716,-0.43590880870435,-0.755085221074635\n-0.0411238511746045,0.760872833793025,0.647596602570104\n0.672180804506389,0.720489767871045,0.170491819294272\n0.705145063448448,0.0649966525983608,-0.706077810616714\n0.114842362167261,0.0272273430580039,-0.993010525443636\n-0.794917418826794,0.606609639705738,0.0114473692096881\n-0.729469920569626,-0.364092553151464,0.579059796328317\n-0.133377571158276,0.053057692284941,-0.989644029336466\n0.588039595939279,0.252658035466094,-0.768357566971253\n0.410370449689182,0.831699934440869,-0.373993734002259\n0.858227562854035,-0.326346690125003,-0.396160684826344\n0.0637498626295064,-0.558954260472549,0.826744271050187\n0.337428103793781,0.00545446142346483,0.941335500032116\n0.121127049501086,-0.816445181320226,-0.564575507596764\n0.276733401469516,0.309348999768436,0.909792185531059\n0.211981526146488,0.0450425590189518,0.976235115353689\n0.824176750775385,-0.505049071827148,-0.256238401743112\n0.594505003726877,0.790985015573261,-0.144590821569954\n-0.722340155372445,0.686039535464281,-0.0870313490442687\n0.0947244160312465,0.387562881941893,-0.916963629348751\n-0.0115357160144928,0.0242785918222118,0.999638673339104\n0.984677062708126,-0.173208112180659,-0.0202492481664996\n-0.833031477012519,0.547147640160647,-0.0817803043096287\n-0.187527155304188,0.980938689082309,0.0509200774253142\n0.455901909993559,-0.209976195940247,-0.864906610913969\n-0.36157730019341,0.909067168606555,-0.207023522688865\n0.719868757480189,0.671224838073219,-0.1767659151463\n-0.347736389057685,0.129493849146236,0.928606884940239\n-0.0187493710151655,-0.0350775051281273,0.999208701783827\n0.493705931956134,0.0722788097753222,-0.866620001158979\n0.66269554206557,0.399607400509584,-0.633362884912269\n0.726722523527084,0.442345070489977,-0.525552292747014\n-0.204758276914423,0.57927712222022,0.788994336929801\n0.00689261327542409,0.126579963082989,0.991932459811728\n-0.356726368706308,-0.827180438448998,0.434187540259892\n-0.47359266295775,-0.28482709074729,0.833416773270746\n-0.521214825022451,0.685391036010302,0.508501950766701\n-0.275855843401269,-0.0631930114627542,0.959119490451342\n0.09398986677579,0.119564015843863,0.988367518213118\n0.466346836168125,0.370962215725855,0.803061431585246\n0.0623189234324981,-0.641370973136701,0.764695773886515\n0.0172692025366454,-0.0225997322201761,-0.999595431535841\n-0.386933061653629,0.623545150392436,0.67931896132923\n-0.163137075059956,0.566970664668863,0.807422169714103\n0.0993292176042032,-0.644534864831166,-0.758095320225107\n0.286665593978943,0.120044482544749,-0.950479962671104\n0.0707596335626779,0.13411262820202,0.988436582292876\n-0.463827375613848,0.885831714476767,-0.012897257783015\n0.852829222228861,0.311921866898828,-0.41879239088463\n-0.859500133373641,-0.251585593716346,0.444931691122454\n-0.965394515080914,0.24812164325619,-0.0803061666345376\n0.151857805775526,0.630726138963868,0.761001803186283\n0.73582574350235,-0.258595602508218,0.62585045303381\n-0.0198348660853234,0.0545180036677111,0.998315764356882\n0.28461083581548,-0.153264079557224,0.946312207494911\n-0.581675520525213,-0.73439685910559,-0.349735388769232\n-0.991445037847008,0.0299177290721477,-0.127049857991695\n-0.0492695614178428,-0.679885526000934,-0.731661248018594\n0.444640211649834,-0.0784567456025451,-0.892266564011814\n0.0127324000254656,-0.0173965272959882,-0.999767596408101\n-0.0171984195057919,-0.384731945410837,0.922868107882646\n-0.156676767551138,-0.814928782479156,-0.557981603636506\n-0.399694839057765,0.888201338748911,-0.226588652573842\n0.0406560169703534,0.247690687788596,0.967985749619755\n-0.108993364569416,0.122635126853424,-0.986448717441248\n0.565993057030192,0.101426480232535,-0.818147009101211\n-0.489285054208162,-0.835365744407816,-0.250527860323942\n0.133417312387217,0.000166388475130276,0.99105993414639\n0.0137288164076101,0.2270000275996,0.973797980625256\n0.0963708742778746,0.403648151820948,0.909824611737037\n0.165049694853754,-0.0736080456290133,0.983534673434221\n0.267448700115878,0.769884765003406,-0.579438211910448\n0.284337195687501,-0.839133932395426,0.46368804454197\n-0.428582501162862,0.168981757375846,-0.887559691159505\n0.909817978299262,-0.256972045206276,0.325878220115963\n-0.492082441172851,0.314163347681507,-0.811884389591841\n0.422939528190122,-0.0717565420247207,-0.903312323712552\n0.196288814413039,0.973547107241556,-0.116947557981867\n0.705618932943305,-0.0345885370958603,-0.7077468153044\n0.697653813407257,-0.102701598651704,-0.709035639635059\n0.16149199568471,0.300177934157391,-0.940113579933175\n0.000653363814039677,-0.00437947432374878,-0.999990196612134\n-0.0553386082981052,0.349974439503299,-0.935123270016301\n0.316035545319811,0.268485093417435,0.909965542593257\n0.0357714998129129,0.0165234330034925,-0.999223386417128\n0.0297740276570812,0.0455151261820939,-0.998519844853222\n0.224210497763138,0.585639747188857,0.778945273562513\n0.553555317897683,-0.554569900826654,-0.621312107659516\n0.347883758003143,0.0137055723317884,0.937437490291843\n0.0580957172665848,0.107042235956098,0.992555714988736\n-0.215173190949024,-0.808064260224208,-0.548390963861658\n0.154407026347864,0.68717174951883,0.709896793116887\n-0.13255934473603,-0.989894844149766,0.0503608741868646\n-0.480709384674798,-0.503120848312002,0.71818375049801\n-0.322505544411402,0.42520902950717,-0.845687563494625\n0.643078379214888,-0.157058729690832,0.749521683218208\n-0.164434109235155,0.259522634237396,0.951635132831131\n-0.142049555354451,0.826970572200564,-0.544005143852403\n0.262737193627013,-0.171903692465716,-0.949430506989139\n-0.454668385266488,-0.792797548798993,-0.40589248090778\n"
  },
  {
    "path": "data/point_clouds/torus.txt",
    "content": "-0.714320398612351,-1.90692591611384,-0.267078203651368\n0.880281797557814,3.78434362937461,-0.464874124438126\n1.04102781021494,1.86999004591599,0.510688226707155\n-3.24849890512506,-1.29990313390197,0.866643756410793\n1.20992268630091,-1.954033976581,-0.712467990069739\n3.85471276354862,-0.858165157455817,0.31502559578928\n-2.67730603769453,1.10180477038619,-0.994488919152426\n2.67286217475414,2.93308084520864,0.249911934206736\n-2.01475714569943,0.394298758383513,0.321168120775367\n-1.08819618488046,-2.61058272892002,0.985150276181151\n-3.33083144897963,0.00459587748771458,0.943688748702064\n-3.15990590148776,0.754342600836267,-0.968581102947494\n2.92673516232045,0.0152003315773583,0.997315419428396\n1.27616426228537,1.65219842213103,-0.409449735620048\n3.45502673855084,1.7700666717259,0.47114771228712\n1.86236975240961,0.867113512748675,0.325152963864206\n-1.97122483344051,1.32473119871762,-0.780627293773532\n1.18824629054217,1.61374920710909,0.0896302160825027\n-0.264002411550957,2.30415430226382,0.732496544879508\n3.42808039501758,-0.187293979213987,-0.9013011804742\n1.96153469538247,2.66867799232569,0.950076321565843\n-0.680797403710056,-3.60113300125575,-0.746913927757322\n-3.62703428193388,-1.1491813820858,0.59363650991433\n-3.94012908379452,0.383180113413902,0.284360276666664\n-2.46614583531858,1.61141049408438,0.998537289999598\n-0.792090973889088,-2.99832297158664,-0.994867621545582\n-3.26366255097835,-1.64421088315301,-0.756115007819308\n-1.99935002274715,3.44366126967676,0.188959592802154\n-2.3962546726188,0.363604578397617,0.817227027241778\n-3.45305318598172,-1.21952747352425,0.749433935645939\n-2.36494872141656,0.412230046099487,-0.800455217507419\n1.87165737305526,-1.32032323914616,-0.704697638834131\n3.25531101005859,0.18860434515836,0.965400940979923\n-2.53991912233213,3.08465429722359,0.0917406231940381\n-1.38625133386808,-1.45917902118853,0.158766398101815\n2.86361966032945,-0.208849156649635,-0.991673894374812\n0.358034695792271,3.04143737536772,-0.998048807314788\n-1.50896152735125,-1.36567139912116,0.262970492698508\n-1.87247964584181,1.26186486518363,-0.670380018907\n3.39007730529755,-2.0715802862839,0.231154983343338\n-1.91159762453643,1.45295955543435,0.800826270447936\n3.49599228865333,-1.40833934677047,0.639245458740745\n1.39565396553202,-3.1002518260968,-0.916552913467507\n0.0407307687801072,-2.07693908085762,-0.385610713125368\n2.06514644404813,2.39210100571433,-0.987081673688259\n-2.42108335739267,-0.844729060326557,0.900052045343072\n2.89533739724166,2.7483572966331,-0.125860854439473\n1.34495023606444,-2.85844551970074,0.987270400928544\n-1.54295806449251,-1.48501221868802,-0.512797391312907\n3.51106593510202,-0.811834738080467,-0.797210958785934\n1.74862922359101,1.54515559110973,-0.745502676291502\n-3.80048462218566,-1.16476608090907,-0.222349203914141\n-2.73035117221928,-0.376914406922954,-0.969836636477701\n-1.60503665801494,-1.54737186357483,0.637394481994473\n2.78859471401276,0.31843579386906,0.981143101841957\n-1.24219387776124,-3.15464688253358,0.920643436280065\n-1.58460888857816,1.50006761073291,-0.575239128363173\n1.39404548258418,2.7093363442083,-0.998897534314805\n-2.24467362137241,-1.98850123835174,0.999999258919497\n0.881128171823169,-3.49560189594454,-0.796268205063082\n1.22114919384482,-2.27973558030131,-0.910365111710077\n-0.172734833492129,-2.84148637291075,0.988184633074685\n-0.674693389446431,-2.79690278184223,-0.992422759399541\n3.61306244787288,1.020354967382,-0.656441751536718\n2.54267998344273,1.43675190698195,-0.99683701321487\n-3.0732696571858,2.51846814911985,0.229240215837385\n0.704956003592614,-2.59748523688157,-0.951207487687372\n2.90257970882872,-0.825283090354516,-0.999844666149284\n1.61457282423149,-2.72311540890554,0.986161701121139\n-0.783180108092612,1.84288427675276,-0.0691964707506992\n2.37235608137066,-1.10773579645894,-0.924259224397928\n1.53495324755595,-2.47366866015383,0.996049976944091\n3.07643280241098,2.0500786112494,-0.717143145962894\n2.76076016588706,-1.60199953998713,0.981415292623509\n0.344978867858927,3.42946941385406,0.894645414112342\n-0.604362662079682,2.184188849032,0.679430541731333\n2.09177633913309,-1.52508794465896,0.911504721915111\n-2.02927909771946,1.33963193673831,-0.822739403632273\n-1.98567527200199,1.27545021592236,0.768388944203625\n1.87343061856586,1.77566488380986,-0.908090525043219\n-1.92861390568702,0.722788606043347,0.340085655584743\n0.845911258179781,-3.90650540470946,-0.0768495760629745\n-1.85066140524136,2.11269687601331,0.98151912288529\n1.91101044451922,1.91882647050695,0.956451679481434\n-2.02431231266686,-0.989625614258562,-0.665120685211147\n0.510012371186223,3.95242674540308,0.171429838134267\n1.8114187550926,0.89339560989046,-0.197766693542283\n-1.9903122826019,-0.329778818747259,-0.185988894025097\n-0.976365214738251,-2.74562180892795,-0.996300054855345\n-0.238561516135115,2.53182856194817,0.889488762034343\n-1.60815952744041,1.24536032918154,0.258490088989698\n1.72130442385166,-1.5109894843131,-0.704614849085318\n-0.678960686465728,-3.43048125798604,0.867735776833309\n1.77223868898645,2.73506955582841,0.965862738005154\n-0.898693150047734,-3.62395764806304,0.679444238213082\n-1.97562680300527,-0.375053417846205,0.147324688728172\n-3.80272108859137,-0.932323709155714,0.402673777440839\n1.49586134650516,1.33089960863945,-0.066633766729041\n-2.20194852434455,0.5207535003085,0.675553469148375\n2.12913285906629,-1.65777681886152,-0.953438544032544\n-2.95372541937467,-1.78536538861461,0.892331865640778\n-1.36993262703229,-3.04461525213824,-0.940922463630955\n2.6119067431494,-3.02693591114326,-0.0624314398026808\n1.27536768308289,1.5618365787268,-0.180400499284649\n-3.21422483499413,1.40840843620268,0.860616946048814\n-1.57586782065372,1.25869517837285,-0.182786005983407\n3.92765587106748,-0.74716576131132,-0.0617490058091814\n3.1386913387238,1.55735573782153,0.86380986050381\n2.17317917185308,-2.85978694062725,-0.806078516287854\n1.60868111568867,-3.62371726599287,0.263196188528958\n-2.26173830408535,1.12557694011027,0.880706701256264\n2.70974355237617,-1.88326253488702,-0.95396836325622\n3.77159848686435,1.33181491950522,0.0181231422761683\n2.15217194080115,2.94781944210051,0.760053287593567\n0.907886028757331,1.80097339748782,-0.182905014451699\n-2.98596497631699,2.48098938616024,-0.470918720977207\n3.3653456048496,-1.21623621703938,0.815769640912101\n2.92027296311028,-1.43882152392057,-0.966812249566666\n-1.80455339673991,-1.81342659069716,-0.897165704829048\n3.81184732768971,-0.234803000248755,-0.57369044336767\n-0.574516005623622,-3.51114713033319,-0.829948763798555\n0.882669297981541,3.67292748275419,0.628883734651986\n1.97057037626744,0.492326008475811,0.247611872237042\n1.94041241687864,0.490681673049848,-0.0545993439733837\n3.62815895805101,0.521520124423926,0.746442796827643\n1.19141490156013,-3.64642918107281,-0.548526989053247\n-2.27486722684705,0.0582627299010015,-0.689393767739755\n-0.870975864260891,2.45711565553284,0.919502998113626\n3.22048509527688,2.30660440520993,0.275481522609446\n3.2480483989014,0.290545234873657,0.96533407725901\n3.2077919780123,1.75565041782766,-0.754058688522266\n-0.880654639478437,-1.79676204768549,-0.0441791246983483\n3.98343925985975,-0.347798067631448,-0.0530147017109721\n2.28738776588423,-0.416904291575919,0.737882052400129\n2.21307914464716,1.34559469817523,-0.912106728949382\n-3.22018854221282,-0.663834917791889,0.957660265491301\n1.61654960255117,2.69819258778267,0.989374478420674\n1.11691159407222,3.42625601198929,0.797204431267907\n0.138982236996826,-2.71750967153386,-0.960308924364697\n-0.15281203903204,-2.05034787381869,0.330044180870546\n-2.5880488784223,2.7396968831178,-0.639476126769505\n-0.994773995117528,1.94499075218273,-0.578926052809871\n1.00091490386897,2.11833450719408,-0.753801801091053\n-1.979942235672,-0.416815669394681,0.214793190821556\n-1.51995641074011,-1.93921204579373,-0.844155466799302\n-1.56643929258676,1.90806727465411,0.847180334382917\n3.94524842347091,-0.641029659771889,-0.0775703161356899\n-2.05045765971493,0.296409467723431,-0.372009372222866\n1.91973163138648,0.713565160509433,0.306280782318074\n3.34342688871568,-2.14009448410198,0.244303976844247\n-2.8116837003415,0.114480657247195,0.982552268625157\n2.03498377192774,1.44809881445098,-0.864651998213382\n3.65744234206195,1.57484953246211,-0.188415823174873\n3.34794527696835,1.2036157129037,0.83002379671184\n1.51877358954659,-2.33374517023824,0.976487965904838\n0.888647841517423,1.81225076047209,0.190960561650766\n0.294158363243207,2.14404466483541,0.548926748034314\n0.158785440356444,-2.05854941606409,0.3537612995639\n-0.340162712092064,-1.97121929907986,-0.0266065760418155\n-2.06663926075979,0.044441462735491,-0.360179666649703\n-1.23803617999514,1.79412301024198,0.572104151036735\n-1.98916538940685,-0.351371167218055,-0.198803134160616\n2.74028022503697,0.53527221297064,0.97814360104035\n1.83806377891691,1.04049584603987,0.460102138018499\n-2.54939351674912,-0.118947069004261,0.894117153111335\n2.30262642501755,-2.77329013841926,-0.796520245484253\n2.15079516941331,-0.706472676833139,-0.676820027868247\n3.15683362475018,0.140123465520194,0.987126421997771\n-1.65163153688707,-1.48529537758651,0.627344877253573\n-0.810886446118408,3.70446650449979,-0.610290976414269\n2.64964602622044,2.32993073202612,0.849031289392961\n-3.90463091308345,-0.620109375899632,-0.301186502510516\n1.78674991016748,3.20441160034856,-0.743364449639186\n-0.763871453153186,1.87154022972919,0.205894667876839\n-3.42954834972779,0.177619781136491,0.900843089612039\n-1.22126745102243,-1.61994203696612,0.237940968474628\n-3.05134414038971,-1.53419267434623,-0.909672872314237\n-1.73371866866574,1.12323389147044,0.356689597781806\n0.716890930507223,1.95500332206228,-0.397272604771448\n-0.673141082397904,2.08221869339899,0.584105284316401\n-0.882406559420473,2.3890642425343,0.89141675256761\n-1.19628528904322,3.65345390075763,-0.535833619789951\n-1.46040623423508,3.43135965826631,-0.684288800753094\n1.47681757717276,2.12533843664316,-0.911210890653397\n3.27441962472972,-0.100070543522959,-0.961172447787327\n1.41615956414078,-2.05072858485597,-0.861467280220919\n1.80662271957664,1.12433686966506,0.489353084570643\n2.99219785952063,-2.30571642472757,0.628871481171234\n1.60387273506073,3.04596997093306,-0.896801858433794\n2.54587923032708,1.87946967738563,-0.986381112455289\n-2.26646292474878,2.4552508306654,-0.939909576284463\n1.48620551792787,-1.37221867327829,-0.212401746771662\n-0.378971598963202,2.00451240918219,0.280075174684415\n2.62244661666601,3.01665327927031,-0.0750879915907508\n-1.19247944703426,-3.11404331001422,0.942375378869094\n-2.0083818072434,-0.416082178074434,0.315364744352137\n-1.9004205664066,-1.13710765120878,-0.619034102311288\n0.121489655611034,2.21525186304812,-0.624006377259046\n2.07074228968162,-0.781655519445505,-0.617410935722934\n1.86326783912881,0.839296946552966,0.291968195688999\n-0.125159400819068,2.73971558078145,0.966297733376121\n1.28616058229845,2.55241279913221,0.989888132003229\n2.85186878413326,-1.97875748876273,0.882071996614857\n-2.1840717588845,1.67894402150144,-0.969477080806596\n0.526790969659728,-3.96375675082422,-0.0527207084811376\n-0.752122926842743,2.46384783522958,-0.905703897001504\n3.22707705441682,1.58776409576928,-0.802591492525115\n-0.886521436850406,2.19182304782198,-0.771952585794445\n-0.850916062216981,2.24608164609563,-0.80139309506497\n1.9599600981033,-0.436349089360323,0.125806862104109\n0.143432952029717,-1.99799607142996,-0.0791573576947982\n-1.95984073562466,-3.47602466214732,-0.137843626105098\n2.03981168644652,0.503487665115967,0.438012394519451\n-2.65426974933155,0.0722691824937081,-0.938695795881477\n-2.2414793646226,0.437827786913691,-0.697935637659006\n1.24117163497356,3.69451598478674,-0.441158243776929\n-2.11395941897502,0.602255627196146,-0.597425500224166\n-3.88773153456955,0.22981059148896,0.447032203564223\n-1.73315822471499,-1.00352061714323,-0.0737185553420282\n1.46838349116033,-2.28633053252358,-0.959194171787188\n2.98263745691891,-2.01383053038907,-0.800869699321626\n2.89557478511477,-0.58843816515525,-0.99897619421275\n1.06657734872892,1.91739722028324,0.592028267612026\n1.9915612675626,-1.8601574569007,0.961490239582856\n-1.39240243888057,-3.50180422099219,0.639877656780817\n3.59628122174913,0.324476332737725,0.791715812804296\n-3.53879553792849,1.01226995756173,0.732535550555928\n0.575886735738642,-2.2855391862704,-0.765845854898395\n-0.24271459661309,3.48538868139012,0.869558748072862\n0.402059796109522,-2.89240232300575,0.996811926014314\n0.452665298920687,2.04923631056222,0.433063406427209\n-2.93926411681073,2.16504944962124,-0.759440271012922\n1.66928570082294,-2.42900826023443,-0.998610555912656\n0.873862888983233,1.91642894819756,0.448587745813449\n-3.10137749594587,0.713264912114097,0.98323549981779\n1.39158354130691,3.12284361399327,-0.908047229780306\n2.96702894505444,-2.39144744484205,-0.585307845932848\n-0.849996861066033,2.39441267781502,-0.888337192657974\n2.5656897206668,-2.40327610338469,-0.856910153887797\n3.98387009727179,0.290859271736434,0.104986084594907\n1.94022583659458,-0.529937890748119,-0.149879427053502\n-0.652002424931243,-3.0431564731331,-0.993683473922688\n3.97450106976585,-0.363876801944451,-0.132945977053829\n-2.40016481561417,-1.06771410337883,0.927806514179979\n2.12400024740336,-0.213700641983631,-0.501295141883824\n1.61720893587035,-2.26873685106966,0.976862573653806\n1.43855171506103,2.04110176117294,0.864346817991303\n-0.347882668065436,-2.30474664523809,-0.743130787018475\n3.03312786606892,-0.43888978623968,-0.997903672375956\n1.55318425845068,-1.73091353393152,-0.738371624615\n-1.64487091538682,-1.15506232605014,-0.14048882675474\n-0.295197600637849,3.41168159143174,0.90546129499725\n0.613151449298925,-3.6726329741562,0.690361615394036\n1.24303628788496,1.70949098456505,0.463007842379536\n-1.92734113686103,0.603416911106011,0.19698245000706\n-2.3635972695005,0.532921490707156,-0.816695794701051\n-2.60056039616045,-1.11213812823468,0.98516421338084\n-1.15746403096981,1.98465662841937,0.711700641427774\n-2.29131806227349,0.394871478957436,-0.737903682266451\n1.5753101943983,1.25510954642691,0.167778669397398\n1.32848419125813,-3.45968781883132,-0.708228771967407\n2.23656011798061,0.823448791024589,0.787222948011727\n3.25831086262739,-0.528608201886878,-0.953652089420914\n-0.839375316949776,2.88600509376057,-0.999984371107339\n-1.98320474944697,3.14373320810026,-0.697063403648011\n-1.70681623926324,3.39898208154652,-0.595359999973826\n-1.67023185260635,-1.49754426235285,0.653741213483541\n-1.11285997746734,-1.81494807405188,0.491221735824854\n0.342337763515438,-2.50466022184833,0.881570375402595\n-0.18049662538014,3.99515277811023,-0.039285684170402\n0.178352130393365,-3.62462167902644,-0.777399636777745\n-3.86927750198048,1.01254321652087,0.0293568137386468\n-1.43895986930885,-3.07199770207164,0.919832544383111\n0.218640143910198,2.99563209972733,0.999993518642863\n1.08747055715401,-1.68793475994643,-0.125554975674212\n-3.92374615907164,-0.621540172932211,0.232197589649773\n2.46018516051129,3.05631223033271,0.383689461927854\n2.39784947233894,1.66830700343181,0.996883959911963\n1.6882260110855,-1.51799968340075,-0.683806924183867\n-1.7152258021874,-1.30521463210046,-0.535337677026695\n-3.02629399990599,-2.52056759770178,-0.345301960621233\n-0.703555435283641,-3.93746419107644,-0.0186105043511363\n-2.64334795948186,-0.35521342215911,0.942964955427318\n2.49784698105039,-0.158945543782804,0.867692664790819\n0.204866910748694,2.02331394263177,0.257265364312437\n-0.36958886111734,1.9664040790799,0.0408585151438834\n0.115684088576823,2.11508260996212,0.471705623095396\n-0.731627650689339,3.88111999341168,0.313835532658015\n-2.39027247160738,-3.17175288177496,0.236726350208319\n2.66644145182402,-1.30303365352127,-0.999481282045336\n-1.88627201520659,2.68352394121846,0.959958958133407\n-1.08341676445684,-2.93146757937041,-0.992123061604357\n1.98536493005221,-0.259697195800157,-0.0674572952138999\n-2.17606181909418,-0.0588929951722134,-0.567836471771887\n-1.44266085758462,1.83389553675679,0.745355752020073\n2.00703121845621,1.1535987213864,-0.72849012497236\n-0.714372468650034,1.92393404704374,-0.319100980978719\n1.07056505676095,2.08758911502946,-0.756572264156863\n-2.45996592433974,0.721536339862404,0.899752962678021\n1.92728187981412,-0.914473029807523,0.498710596731235\n"
  },
  {
    "path": "doc_includes/overview.htm",
    "content": "<html>\n<head>\n<title>Plex in Java</title>\n</head>\n<body>\n\n\n\n\n</body></html>\n"
  },
  {
    "path": "doc_includes/overview_plex3.htm",
    "content": "<html>\n<head>\n<title>Plex in Java</title>\n</head>\n<body>\n\n<!--  \n$Id: overview.htm,v 1.5 2008/09/25 02:30:23 hsexton Exp $\n-->\n\n<!-- TOC BODY START -->\n<a href=\"#_1._\">1. Introduction</a><br>\n<a href=\"#_2._\">2. Installing Plex in Matlab</a><br>\n<a href=\"#_3._\">3. Installing Plex in R</a><br>\n<a href=\"#_4._\">4. Running Plex standalone</a><br>\n<a href=\"#_5._\">5. Using Plex</a><br>\n<a href=\"#_6._\">6. Extending Plex</a><br>\n<a href=\"#_7._\">7. Plex Design considerations</a><br>\n&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#_7.1_\">7.1 Basic Data Types</a><br>\n&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#_7.2_\">7.2 Design Considerations</a><br>\n&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#_7.3_\">7.3 Design Choices</a><br>\n&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#_7.4_\">7.4 Algorithms</a><br>\n<!-- TOC BODY END -->\n\n<a name=\"_1._\"></a>\n<h1>1. Introduction</h1>\n\nPlex is a set of library routines for computing persistent homology on\nfinite simplicial complexes generated from metric space data. The original\nversion of Plex was a collection of matlab scripts. The current version,\nversion 3, is a rewrite in Java improve performance and portability. It is\nless than .5 M, is as portable as Java itself, includes a simple\nself-contained GUI (provided by\nadapting <a href=\"http://www.beanshell.org\">Beanshell</a>), and can easily\nbe \"installed\" to work with Matlab.\n\n<p>\n\nIt is important to note that this Java code was written using features from\nJava 5.0 (also known as 1.5, I guess to confuse people), so you should have a\nJava runtime that is of sufficiently recent vintage.  You can find out if there\nis a Java launcher (or Java interpreter, if you prefer) readily available on a\nLinux box by invoking <pre>% which java</pre> at the command shell. And if you\nknow where your Java launcher is, you can check on the version of Java that is\navailable from the command line by invoking\n\n<pre>\n% java -version\nJava version \"1.5.0_08\"\nJava(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)\nJava HotSpot(TM) 64-Bit Server VM (build 1.5.0_08-b03, mixed mode)\n</pre>\nYou can check the Java VM being used by matlab by executing, in the matlab\ncommand window,\n<pre>\n>> version -java\n\nans =\n\nJava 1.5.0_04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode\n</pre>\nAnything with a version number greater than <code>1.5</code> should be fine.\n\n<p>\n\nAt the moment most people use the library in matlab, but we are working on\na port to the <a href=\"http://www.r-project.org\">R environment</a>, and\nthat will be documented here when done. It is also possible to execute Plex\ndirectly with the Java launcher (formerly known as the Java interpreter),\nand we will explain how to do that below, too. \n\n<a name=\"_2._\"></a>\n<h1>2. Installing Plex in Matlab</h1>\n\n<p>\n\nTo install Plex in matlab, you make sure that the <code>plex.jar</code> you\ndownloaded is in a convenient place, and then add it to the Java class path\nin matlab. You should also <code>import</code> the package to save yourself some\ntyping. Specifically, suppose that the path to your home directory name is\n<code>/my/path/mydir</code> (if your login is <code>bob</code>, then your\nhome directory path might be something like <code>/home/bob</code>). The\nprecise installation steps are to download <code>plex.jar</code> to the \ndirector <code>/my/path/mydir</code>, and add the following lines to your\nmatlab <code>startup.m</code> file: \n<pre>\njavaaddpath('/my/path/mydir/plex.jar');\nimport edu.stanford.math.plex.*;\n</pre>\n\n<p>\n\n<b>NOTE:</b> \nYou may need to increase the maximum Java heap size at some point, and if you\ndo, you should create a file named <code>java.opts</code> and in your MATLAB\nstartup directory -- that is, the same directory that contains the\n<code>startup.m</code> file. In this file, include a line specifying a value\nfor the <code>-Xmx</code> which sets the maximum heap size allowed for the Java\nVM. (It doesn't force the heap to grow this large, it simply sets the limit on\nhow large the heap is allowed to grow.) For example, to increase the JVM memory\nallocation limit to 128 megabytes, put the line\n<pre>\n-Xmx128m\n</pre> \nin your <code>java.opts</code> file.\n\n<p>\n\nThe matlab documentation discourages you from setting the the <code>-Xmx</code>\noption to more than <code>66%</code> of the physical RAM on your machine, but\nif the reason that you are running matlab is to run plex, then you should set\nthe max memory size as large as you need it to be. Using a <code>64-bit</code>\nJava 1.5 VM, I can grow the heap to at least 5 gigabytes, and what I have in my\n<code>java.opt</code> file in that case is <code>-Xmx16000m</code>, and on\na version 1.6 Java VM with <code>-d64</code>, the heap size can be huge;\nfor this VM I use the settings <code> -d64 -Xmx200000M -Xms4000M</code>,\nsince I have 16G of memory on my machine. Setting the max heap size to be\neither absurdly large, or larger than it will actually grow on in practice,\nmeans that I know that it if I run out of memory, it's because I really\ncan't get any more.\n\n<p>\n\nThe, after restarting matlab, you should be able to do execute the following in\nthe matlab command window:\n<pre>\n>> Simplex.makePoint(1, 2)\n \nans =\n \n<(2) 1>\n\n</pre>\n\nAt that point, you are ready to use the code. Until we get a more formal system\nin place, I will keep the latest stable version of <code>plex.jar</code> on my\nhome directory.\n\n<p>\n\nNOTE: At the moment I'm not sure\nwhether or not there is anything special that you need to do to get the Java VM\nin matlab to use the JIT (Just In Time compiler) on the Plex code. Having the\nbytecodes processed by the JIT will make a significant difference in the\nperformance of the routines.\n\n<a name=\"_3._\"></a>\n<h1>3. Installing Plex in R</h1>\n\nNot yet supported.\n\n<a name=\"_4._\"></a>\n<h1>4. Running Plex standalone</h1>\n\nNaturally you must have a Java VM (aka JVM) installed in order to run\nit. However, since JVM's exist for most hardware platforms, and are commonly\nused by web browsers, it is very unlikely that you don't have one installed\nalready. If you don't, though you can get the latest Sun release\n<a href=\"http://java.sun.com/javase/downloads/index.jsp\">here</a>.\n\n<p>\n\nWe provide a simple \"top-level-loop\" for standalone use. You can execute\nthis by running <code>java -cp plex.jar JPlex</code> in a command window,\nshell, etc. (Your Java VM installation will have to include the Swing classes, but this\nis standard, so there should be no problem.) \nThere are a number keyword arguments to <code>Java</code> that you may want to\nemploy, and if you are planning run larger examples you should read the\n<a href=\"http://java.sun.com/j2se/1.5.0/docs/tooldocs/index.html#basic\">documentation</a>\nfor the Java interpreter on <code>-Xmx</code>, <code>-Xms</code>,\n<code>-d64</code> and <code>-Xbatch</code>. Again, recall that Plex only\nworks in <code>Java 5.0</code> or later.\n\n<p>\n\nYou can put the <code>plex.jar</code> file anywhere, but making a copy in\nyour home directory or in some subdirectory thereof, seems prudent, and the\nfile is small enough that this should be no problem. At the same time, you\nshould make a subdirectory of your home directory named <code>plex</code>,\nand create an empty file in your home directory named <code>.bshrc</code>.\n\n<p>\n\nThe GUI window that comes up is a slightly modified version\nof <a href=\"http://www.beanshell.org\">Beanshell</a>. The most visible difference\nbetween the Matlab and standalone interpreters is that Beanshell wraps \"<>\"\naround the results that it prints, so that the number <code>187</code>\nwould print as <code><187></code> in standalone Plex.\n\n<p>\n\nWhen starting up, Beanshell loads the file <code>.bshrc</code> from your\nhome directory, if there is such a file. You can put various\ninitializations in that file, such as commands to change the default\nactions for input logging, which is the only non-trivial change we made to\nBeanshell. (The trivial changes, which the author, Pat Niemeyer, kindly\nallowed us to make, were to put the Beanshell jar contents in with the plex\nlibrary, and to change some banners and menu options.)\n\n<p>\n\nThe initial window contains a single \"workspace\", with an interpreter that you\ncan type to; the prompt is <code>plex></code>. If you wish Plex to record the\ninput you type to a given workspace, you can enable input logging for that\nworkspace by left-clicking the <b>File</b> menu for the workspace and selecting\n<b>Enable logging</b>. You can also arrange for input logging to be on by\ndefault by adding the line <code>setLogging(true);</code> to your\n<code>.bshrc</code> file.\n\n<p>\n\nYou can also turn logging on or off within a workspace by\ntyping <code>log(true);</code> or <code>log(false);</code> to the\nwindow. The log files are, by default, written to the\nsubdirectory <code>plex</code> of your home directory, but you can change\nthat. However, logging will fail if you don't have a <code>plex</code>\nsubdirectory in your home directory and you left the defaults as is.  You\ncan arrange for input logging to go to a different directory,\nsay <code>/Users/myhome/whereIwantlogfiles</code> by default by adding the\nline <code>setLogging(\"/Users/myhome/whereIwantlogfiles\");</code> to\nyour <code>.bshrc</code> file. Resetting the default log directory doesn't\naffect the default flag setting, so if you also want logging on by default,\nyou have to set that, too. Finally, you can change the path of a logfile\nfor a specific workspace by invoking the\ncommand <code>log(\"/my/current/log\");</code> in the workspace window. \n\n<p>\n\nThe default name of a logfile is the first unused name of the\nform <code>log_xy.txt</code>, where <code>x</code> and <code>y</code> are\ndecimal digits. In other words, the first logfile that gets created\nis <code>log_00.txt</code>. If you leave more than 100 logfiles in your log\ndirectory, the names get created using a Java library routine for making\ntemporary files, and the names become more complicated, but still begin\nwith <code>log</code> and end with <code>.txt</code>.\n\n<p>\n\nFinally, you can determine the current status of input logging by selecting the\n<b>Logging status</b> item in the <b>File</b> menu, or by by invoking the\ncommand <code>log();</code> in the workspace window. In either case a message\nis printed describing the status for both input logging in the current\nworkspace and the default values for all workspaces. (Specifically,\n<code>log();</code> returns a status string, and since return values are\nprinted by default, this String gets printed, unless you disable printing of\nreturn values. The <b>Logging status</b> menu item actually inserts the string\nin the Workspace window, so this works even when return value printing is\ndisabled.)\n\n<p>\n\n<a name=\"_5._\"></a>\n<h1>5. Using Plex</h1>\n\nCurrently Plex supports building simplicial streams, which is the name given\nto simplicial complexes sorted by filtration index and dimension. All such\nstreams are subclasses of the abstract class <code>SimplexStream</code>.  Plex\nalso provides a class called <code>Persistence</code> which has methods for\ncomputing the persistence intervals for a <code>SimplexStream</code>. Because\nthe matlab command window doesn't allow the use of the Java <code>new</code>\noperator, there are static methods in the <code>Plex</code> class for the\ncreation of most of the higher level Plex classes.  Here is a the result of a\ntoy session in matlab using the Plex code:\n\n<pre>\n>> p = Plex.Persistence()\n \np = \n\nedu.stanford.math.plex.Persistence@11eea7f0\n \n>> tor = Plex.Torus(20, 2)\n \ntor =\n \nedu.stanford.math.plex.Torus@1ae2b9e5\n \n>> rc = Plex.RipsStream(0.053096, 0.530956, 3, tor)\n \nrc =\n \nedu.stanford.math.plex.RipsStream@675ee9e3\n \n>> rc.size()\n\nans =\n\n       4000\n\n>> res = Plex.FilterInfinite(p.computeIntervals(rc))\n \nres =\n \nBN{1, 2, 1}\n</pre>\n\nAt least the results are correct, but more exposition here wouldn't hurt.\n\n\n<a name=\"_6._\"></a>\n<h1>6. Extending Plex</h1>\n\nThe obvious way to extend Plex is to write some more Java code and add that\ncode to the classpath. You should look at the Matlab or Beanshell\ndocumentation to see how to do this.  It can be done either at startup or\ndynamically, and is quite easy in either case.\n\n<p>\n\n<a name=\"_7._\"></a>\n<h1>7. Plex Design considerations</h1>\n\nPlex is a library designed to compute persistent homology over finite fields\nfor finite metric spaces. The code centers around a clever, but fairly obscure,\nalgorithm for computing what are called \"persistence intervals\". The algorithm\n(in this section an unspecified \"algorithm\" means this particular one) is\nintimately connected with the structure of finitely generated modules over a\nprincipal ideal domain (aka PID) and something called Smith normal form for\nmatrices over PID's. The persistence algorithm (as it is called) is complex and\nsubtle enough that it couldn't be readily replaced, and since it is\nsurprisingly efficient both in space and time, it seems very unlikely to be\nsupplanted. (The algorithm and the associated mathematics is described in some\ndetail in: A. Zomorodian and G. Carlsson, \"Computing persistent homology,\"\n<i>Discrete and Computational Geometry</i>, 33 (2), pp. 247-274.\n\n<p>\n\nRather than repeat the information in the paper above, the contents of the\npaper will be assumed, and the persistent algorithm will be presented as\ndescribed. That is, no attempt will be made here to prove that the algorithm\nworks, although we will give a few alternative descriptions of elements of the\nalgorithm to provide some intuition. While it might not be obvious that this is\nthe case, the computation of the persistent homology over a finite field is\nequivalent to reducing the various boundary matrices to Smith normal form, and\nin turn, because of the specific structure of the boundary matrices, it is\nenough to use column operations on these matrices to reduce them to column\nechelon form, provided we have properly ordered the rows and columns of the\nmatrix before starting -- specifically, to have the rows and columns of the\nmatrix be in increasing persistence order (e.g., to have all simplices of a\ngiven degree appear in an order so that the filtration indices are\nnon-decreasing.\n\n<p>\nAnother critical point in the matrix reduction, and one which allows for a very\nefficient representation of the columns of the matrix, is that the polynomials\nin the boundary matrix are, in fact, monomials, and the degree of the ij-th\nentry is the difference between filtration_index(simplex(j)) and\nfiltration_index(simplex(i)), and this property is preserved by the row and\ncolumn operations used in reducing to Smith normal form (and hence by the\nsubset of operations used to reduce to column echelon form). This means that\ncolumns in the matrix may be stored as an array of field elements, and in fact,\nby an array of type <code>char</code> if we desired (as long as the base field\nis <code>Zp</code> for some <code>p</code> smaller than <code>256</code>. The\nlast important \"theoretical optimization\" used in the algorithm is that it is\npossible to ignore all of the rows in the boundary matrix of dimension\n<code>d</code> that correspond to pivot columns in dimension\n<code>d-1</code>. (This last point is <code>Lemma 4.2</code> in the paper\nreferred to above.\n<p> \nIt is critical in making a scalable version of this algorithm is the\nrealization that the boundary matrix is quite sparse, which means that we\ncertainly want to represent the columns of the boundary matrix from dimension\n<code>d</code> to <code>d-1</code> as something other than an array whose\nlength is equal to number of simplices of dimension <code>d-1</code>.\n<a name=\"_7.1_\"></a>\n<h2>7.1 Basic Data Types</h2>\nThe most basic of the data types is the <code>Simplex</code>. In Plex these are\na (smallish) subset of some set of points (aka <b>vertices</b>), and for\nconvenience we always take these points to be integers in the range from\n<code>1</code> to <code>N</code>, inclusive (for <code>N</code> the cardinality\nof the finite set -- for small finite metric spaces, the indices can range over\nall the points, for larger sets, they range over a particular subset known as\n<b>landmarks</b>.). In addition to being able to get the vertices for a\nsimplex, we must also be able to compute its boundary. This immediately leads\nus to a basic design question: Do we want to have simplices be unique, or will\nwe allow multiple instances of Simplex with the same vertex set to be\nequivalent? There is an additional attribute for simplices, which is the <b>\nfiltration index</b> or <code>findex</code>. Intuitively this index corresponds\nto an index into an array of increasing \"times of creation\", but the only\nessential point is that the <code>findex</code> of a simplex is at least as\nlarge as the <code>findex</code> of each of its faces. There is an obvious\nordering on simplices, given by ordering first on the dimension, next on the\n<code>findex</code>, and finally lexicographically on the indices. This\nordering is something that will be used fairly often, so it should be fast.\n<p>\nAnother type we require in the <code>Chain</code>. As we mentioned above, all\nof the column operations on the boundary matrices can be computed in terms of\nsimplicial chains, and the sparsity of the boundary matrix suggests that these\nchains should be implemented as an association between simplices and\ncoefficients, rather than as an array where the <code>i</code>-th entry is the\ncoefficient of the <code>i</code>-th simplex (for some enumeration of\nsimplices). Since we expect to have lots of simplices and for most chains to\nhave comparatively few non-zero entries, having a pair of arrays of equal\nlength , one for coefficients and and one for simplices, seems to be about as\nsimple as is possible. If we arrange the entries in the chain so that the\nsimplex vector is sorted, then chain operations become linear in the size of\nthe chains, which is as fast as they can be.\n<p>\nThe final basic data structure we call a <code>SimplexStream</code>. There is\nsome flexibility in the order in which the persistence algorithm needs to\nprocess the elements of a given simplicial complex. Any ordering must process\nall of the faces of a simplex before the simplex itself, and within a given\ndimension, the order must be non-decreasing for <code>findex</code> values. The\norder that we choose in our implementation is to sort simplices first by\n<code>findex</code>, and then by dimension. (It might seem odd that a matrix\ncolumn reduction can process all of the dimensions at once, but the reason this\nis possible is that ONLY column operations are done, no simplex is ever\nprocessed until all of its faces have been processed, and the algorithm only\ndoes reductions using columns of a given dimension. In other words, we could\nsort the simplices lexicographically first by dimension and then by\n<code>findex</code> and the algorithm would do the same calculations in an\nequivalent order.)\n<p>\nAny instance of <code>SimplexStream</code> must return the simplices in some\norder compatible with this requirement. For each of the general mechanisms I\ncame up with, I was able to prove that it was not possible to make a mechanism\nto generate the simplices in a suitable order without generating at least all\nof the elements of a given dimension. (The proofs were pretty simple, but I\ndon't recall any details, since once I failed a few times I just expunged the\nentire idea.)  So any Plex implementation of <code>SimplexStream</code>\ngenerates all of the simplices of the complex and stores them. There also turn\nout to be other reasons why having all of the simplices present during the\npersistence calculation is necessary, so there is probably no real benefit to\nbeing able to generate them one at a time, even if it were possible.\n<a name=\"_3._\"></a>\n<a name=\"_7.2_\"></a>\n<h2>7.2 Design Considerations</h2>\nFor the types of simplicial complexes that we study with Plex, the number of\nsimplices grows geometrically with <code>N</code>. Therefore, even for large\nmetric spaces, we can't construct simplicial complexes where the index set is\nlarge. This offers one opportunity for compression -- restrict <code>N</code>\nto a size that limits the number of bits required to represent it, and for\nlarge metric spaces, use a \"landmark array\" of size <code>N</code> of indices\nto make the smaller, contiguous \"vertex indices\" into points in the metric\nspace. \n<p>\nThe <code>boundary</code> operation on simplices is the first set in the basic\nalgorithm, and deciding how to handle this is probably the key design decision\nfor the implementation. The options are whether the boundary value is\n<b>built-in</b> (or at least cached), or not. By built-in we mean that there is\na slot in the simplex that points to a chain or array of faces (or something\nanalogous). The advantage of this is that the boundary operation is fast, and\nthe disadvantage is that construction of simplices is more complicated, and the\nsimplices themselves are larger and more intertwined (the latter makes it much\nmore difficult for the garbage collector to reclaim storage, and the former\nmeans that it is even more critical that this happen). The key question here\nseems to be whether or not it is better to have a unique simplex for a given\nvertex set (aka \"interned\" simplices), or whether simplices should be given \"by\nvalue\" (that is, two distinct instances of Simplex are interchangeable if they\nwere created using the same vertex set). The best answer is matter of code\nsimplicity and performance. Since it will surely be simpler to use by-value\nsimplices, if it is much faster to construct the simplicial complex this way,\nand this doesn't hurt the performance of the persistence algorithm, then we\nshould use them.\n<p>\nAffiliated issue are the matters of the <code>findex</code>, and what is called\nin the paper the \"mark\" and entries in <code>T[]</code>. If simplices are\nby-value, then having a slot holding the filtration index seems less\nproblematic, at least if complex (i.e., SimplexStream) construction is very\nfast. The reason is that we can simply dispose of the entire stream and start\nover again (the GC will have little trouble reclaiming the space --\naccidentally holding on to a Simplex instance prevents reclaiming only a few\nbytes).\n<p>\nSince <code>T[]</code> is indexed by the simplices, what this really implies is\na mapping between simplices and the chains that are their reduced columns in\nthe boundary matrix. If the simplices in the chain returned by the \"remove\npivot rows\" subroutine are actually the same instances as will be found in the\nnon-empty boundary chains after the removal of unmarked terms in subsequent\ncalls to removePivotRows(), then we can simply store the <code>T[]</code> chain\nfor the simplex in the simplex itself. This means that having interned\nsimplices, at least for the duration of the algorithm, can speed up access to\nthe chains in <code>T[]</code>. However, since not all simplices have\n<code>T[]</code> entries, this can consume more space. For data sets that I've\nlooked at, which may be far from representative, it appears that having\n<code>T[]</code> be separate from the simplices doesn't save large percentage\nof the space.\n<p> \nFinally, if the simplices are by-value, it seems impossible to avoid having\n(for instance) a separate hashtable in which to store the values of marked\nsimplices, since there are no \"details\" about the faces of a simplex stored\nwith the simplex. If the simplices are interned, however, it seems most\nefficient to have a flag in the object to indicate whether or not it is marked.\n(If we have a separate <code>T[]</code>, the flag can be in the entries for\nthat.)\n<p>\n<a name=\"_7.3_\"></a>\n<h2>7.3 Design Choices</h2>\nIn the end the choice was made to have simplices be by-value. Since we aren't\ninterested in very large dimensional cases, we have specific implementations\nfor Simplex for dimensions <code>0-7</code>. (If we need still higher\ndimensions implementing them in the same manner is trivial.) All concrete\nimplementations of Simplex pack integer values in one or more long integer\nslots. At one time we used <code>16</code>-bit values, but we discovered enough\ncases where we needed on the order of a million points, and most of the large\ncalculations use very low dimensional homology, so it seemed best and simplest\nto increase the size of spaces to the limit of positive <code>int</code> in\nJava, which is <code>16</code> bits. Since the values are stored in\nincreasing order, the patterns are unique, so equality testing, comparison, and\ncomputing the dimension and vertex set are all very fast. (We make the base\nclass, <code>Simplex</code>, be abstract, and the all of the implementation\nclasses are <code>final</code> subclasses of this base class, which speeds up\nmethod invocations on code written against instances of the base class.) The\nbase class includes slots for <code>findex</code> and the <code>T[]</code>\nchain values (we'll explain below why this works). Because the dimensions are\nsmall and have fixed limits, we also have open-coded versions of the\n<code>boundary()</code> method, where this method returns an array\n<code>[face0,face1,...]</code>, rather than the usual chain.\n<p>\nAlso, the implementations that we provide for <code>SimplexStream</code> all\nstore the simplices in an array of stacks indexed by dimension and filtration\nindex, which means that the construction methods that are implemented take a\nthe maximum dimension argument, and must somehow determine a bound on the\npossible values of <code>findex</code>. These choices allow things to scale\nenough that constructing Rips stream objects with tens of millions of simplices\nis quite fast (e.g, 36M simplices, took 13.17 seconds on my machine).\n<a name=\"_7.4_\"></a>\n<h2>7.4 Algorithms</h2>\nThe reason that we can have simplices by by-value when being constructed, but\nbe unique during critical parts of the algorithm is that we use a specially\ndesigned hashtable, an instance of <code>SimplexTable</code>, to store\nsimplices that are \"marked\" by the algorithm. The average number of probes to\ninsert or find a simplex is less than <code>1.5</code> (reprobes just go to the\nnext index in the array), and the hashing algorithm only uses the values of the\n<code>long</code> slots that encode the vertices, so this step is quite\nfast. Since we store a simplex in the table to mark it, and we have check every\nentry in the <code>boundary()</code> array and delete those that are unmarked,\nwhat we actually do is this:\n\n<code> \n    Simplex[] b = sigma.boundary();\n\n    if (b == null)\n      return null;\n\n    for (int i = 0; i < b.length; i++)\n      // If the entry isn't marked, we clear it, and if the entry is\n      // marked, we replace it with the Simplex that came from the\n      // stream, which has the findex properly set. This means that\n      // we don't have to recompute or find the filtration indices\n      // for the faces, and all of the simplices created by the\n      // boundary() method die immediately.\n      b[i] = marked.get(b[i]);\n\n    Chain d = Chain.fromBoundaryChain.fromBoundary(b,p);\n</code>\n\n<p>\nAs the comment points out, we get to have our cake and eat it, too.  The step\nof running the simplices through the <code>marked</code> table allows them to\nbe interned for purposes of the algorithm, so we automatically get to retain\nany state that was stored in them earlier, and can use the simplices as\nrepositories for any per-simplex state needed by the algorithm. Notice also\nthat all of the new objects allocated during the <code>removePivotRows()</code>\ncall are dead almost immediately, which allows for very efficient reclamation\nof that memory. In fact, the only objects that don't survive the call to\n<code>removePivotRows()</code> are the chains that \"get stored in\n<code>T[]</code>\", and which live for the duration of the algorithm.\n<p>\n\n\n<!--  \n LocalWords:  Plex Plex plex hsexton PID PID's Zomorodian Carlsson simplices xy\n LocalWords:  ij th Zp  vertices SimplexStream simplicial GC removePivotRows\n LocalWords:  hashtable SimplexTable nbsp runtime login startup Makefile findex\n LocalWords:  HotSpot VM plex matlab cp hsexton Javaaddpath makePoint JIT JVM\n LocalWords:  bytecodes JVM's args classpath Xmx Xbatch TmpStream SortedSet CVS\n LocalWords:  PersistenceInterval ComputeIntervals assertEquals javaaddpath src\n LocalWords:  Plex LocalWords java cdt PLEXHOME JUnit edu stanford javadoc rc\n LocalWords:  phom computeIntervals simplicial Microsystems mydir SimplexStream\n LocalWords:  BN Makefiles subdirectory rJava Beanshell Xms JPlex bshrc myhome\n LocalWords:   setLogging whereIwantlogfiles logfile txt logfiles Niemeyer\n LocalWords:   workspaces\n LocalWords:  \n LocalWords:  \n LocalWords:  \n LocalWords:  \n-->\n\n</body></html>\n"
  },
  {
    "path": "doc_includes/update_mime_types.sh",
    "content": "#!/bin/sh\n\nsvn propset svn:mime-type text/html -R *.html\nsvn propset svn:mime-type text/html -R */*.html\nsvn propset svn:mime-type text/html -R */*/*.html\nsvn propset svn:mime-type text/html -R */*/*/*.html\nsvn propset svn:mime-type text/html -R */*/*/*/*.html\nsvn propset svn:mime-type text/html -R */*/*/*/*/*.html\nsvn propset svn:mime-type text/html -R */*/*/*/*/*/*.html\nsvn propset svn:mime-type text/html -R */*/*/*/*/*/*/*.html\nsvn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*.html\nsvn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*/*.html\nsvn propset svn:mime-type text/html -R */*/*/*/*/*/*/*/*/*/*.html\n\n"
  },
  {
    "path": "reports/javaplex_tutorial/cleanup.sh",
    "content": "#!/bin/bash\n\nrm javaplex_tutorial.aux\nrm javaplex_tutorial.blg\nrm javaplex_tutorial.log\nrm javaplex_tutorial.out\nrm javaplex_tutorial.bbl\nrm javaplex_tutorial.toc\nrm javaplex_tutorial.pdf\n"
  },
  {
    "path": "reports/javaplex_tutorial/javaplex_tutorial.aux",
    "content": "\\relax \n\\providecommand\\hyper@newdestlabel[2]{}\n\\providecommand\\HyperFirstAtBeginDocument{\\AtBeginDocument}\n\\HyperFirstAtBeginDocument{\\ifx\\hyper@anchor\\@undefined\n\\global\\let\\oldcontentsline\\contentsline\n\\gdef\\contentsline#1#2#3#4{\\oldcontentsline{#1}{#2}{#3}}\n\\global\\let\\oldnewlabel\\newlabel\n\\gdef\\newlabel#1#2{\\newlabelxx{#1}#2}\n\\gdef\\newlabelxx#1#2#3#4#5#6{\\oldnewlabel{#1}{{#2}{#3}}}\n\\AtEndDocument{\\ifx\\hyper@anchor\\@undefined\n\\let\\contentsline\\oldcontentsline\n\\let\\newlabel\\oldnewlabel\n\\fi}\n\\fi}\n\\global\\let\\hyper@last\\relax \n\\gdef\\HyperFirstAtBeginDocument#1{#1}\n\\providecommand\\HyField@AuxAddToFields[1]{}\n\\providecommand\\HyField@AuxAddToCoFields[2]{}\n\\citation{Javaplex}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {}{1}{Introduction}}{2}{section.1}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{1.1}{Javaplex}}{2}{subsection.1.1}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{1.2}{License}}{2}{subsection.1.2}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{1.3}{Installation for Matlab}}{2}{subsection.1.3}}\n\\citation{Armstrong}\n\\citation{ComputationalTopology}\n\\citation{TopologicalPersistence}\n\\citation{Hatcher}\n\\citation{ComputingPersistent}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{1.4}{Accompanying files}}{3}{subsection.1.4}}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {}{2}{Math review}}{3}{section.2}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{2.1}{Simplicial complexes}}{3}{subsection.2.1}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{2.2}{Homology}}{3}{subsection.2.2}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{2.3}{Filtered simplicial complexes}}{3}{subsection.2.3}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{2.4}{Persistent homology}}{3}{subsection.2.4}}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {}{3}{Explicit simplex streams}}{4}{section.3}}\n\\newlabel{S:explicitStream}{{3}{4}{Explicit simplex streams}{section.3}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{3.1}{Computing homology}}{4}{subsection.3.1}}\n\\citation{Hatcher}\n\\newlabel{S:computingPersistentHomology}{{3.2}{6}{Computing persistent homology}{subsection.3.2}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{3.2}{Computing persistent homology}}{6}{subsection.3.2}}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {}{4}{Point cloud data}}{10}{section.4}}\n\\newlabel{SS:euclidean-metric}{{4.1}{10}{Euclidean metric spaces}{subsection.4.1}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{4.1}{Euclidean metric spaces}}{10}{subsection.4.1}}\n\\@writefile{lof}{\\contentsline {figure}{\\numberline {1}{\\ignorespaces The house point cloud}}{10}{figure.1}}\n\\newlabel{fig:housePointCloud}{{1}{10}{The house point cloud}{figure.1}{}}\n\\newlabel{SS:explicit-metric}{{4.2}{11}{Explicit metric spaces}{subsection.4.2}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{4.2}{Explicit metric spaces}}{11}{subsection.4.2}}\n\\newlabel{Ex:flatTorus}{{5}{12}{}{exercise.5}{}}\n\\newlabel{Ex:flatKlein}{{6}{12}{}{exercise.6}{}}\n\\newlabel{Ex:quotProjPlane}{{7}{12}{}{exercise.7}{}}\n\\citation{WitnessComplexes}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {}{5}{Streams from point cloud data}}{13}{section.5}}\n\\newlabel{S:sfpc}{{5}{13}{Streams from point cloud data}{section.5}{}}\n\\newlabel{SS:VietorisRips}{{5.1}{13}{Vietoris--Rips streams}{subsection.5.1}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{5.1}{Vietoris--Rips streams}}{13}{subsection.5.1}}\n\\citation{Range}\n\\citation{KleinBottle}\n\\newlabel{SS:landmarks}{{5.2}{17}{Landmark selection}{subsection.5.2}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{5.2}{Landmark selection}}{17}{subsection.5.2}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{5.3}{Witness streams}}{19}{subsection.5.3}}\n\\newlabel{Ex:witnessHouse}{{17}{20}{}{exercise.17}{}}\n\\citation{WitnessComplexes}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{5.4}{Lazy witness streams}}{21}{subsection.5.4}}\n\\citation{Range}\n\\citation{Mumford}\n\\citation{Range}\n\\citation{Range}\n\\newlabel{Ex:flatTorusLazy}{{21}{23}{}{exercise.21}{}}\n\\newlabel{Ex:flatKleinLazy}{{22}{23}{}{exercise.22}{}}\n\\newlabel{Ex:quotProjPlaneLazy}{{23}{23}{}{exercise.23}{}}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {}{6}{Examples with real data}}{23}{section.6}}\n\\newlabel{S:real}{{6}{23}{Examples with real data}{section.6}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{6.1}{Range image patches}}{23}{subsection.6.1}}\n\\citation{Range,Mumford}\n\\@writefile{lof}{\\contentsline {figure}{\\numberline {2}{\\ignorespaces Betti intervals for the lazy witness complex built from $X^5(300,30)$}}{25}{figure.2}}\n\\newlabel{fig:rangeBetti}{{2}{25}{Betti intervals for the lazy witness complex built from $X^5(300,30)$}{figure.2}{}}\n\\citation{adams2015nudged}\n\\citation{VanHaterenVanDerSchaaf}\n\\citation{Mumford}\n\\citation{KleinBottle}\n\\citation{KleinBottle}\n\\citation{KleinBottle}\n\\citation{KleinBottle}\n\\@writefile{lof}{\\contentsline {subfigure}{\\numberline{(a)}{\\ignorespaces {Projection of $X^5(300,30)$}}}{26}{subfigure.3.2}}\n\\@writefile{lof}{\\contentsline {subfigure}{\\numberline{(b)}{\\ignorespaces {Range primary circle}}}{26}{subfigure.3.2}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{6.2}{Optical image patches}}{26}{subsection.6.2}}\n\\@writefile{lof}{\\contentsline {figure}{\\numberline {3}{\\ignorespaces Betti intervals for the lazy witness complex built from $X(300,30)$}}{28}{figure.3}}\n\\newlabel{fig:rangeBetti}{{3}{28}{Betti intervals for the lazy witness complex built from $X(300,30)$}{figure.3}{}}\n\\@writefile{lof}{\\contentsline {subfigure}{\\numberline{(a)}{\\ignorespaces {Projection of $X(300,30)$}}}{29}{subfigure.4.2}}\n\\@writefile{lof}{\\contentsline {subfigure}{\\numberline{(b)}{\\ignorespaces {Optical primary circle}}}{29}{subfigure.4.2}}\n\\@writefile{lof}{\\contentsline {figure}{\\numberline {4}{\\ignorespaces Betti intervals for the lazy witness complex built from $X(15,30)$}}{30}{figure.4}}\n\\newlabel{fig:rangeBetti}{{4}{30}{Betti intervals for the lazy witness complex built from $X(15,30)$}{figure.4}{}}\n\\citation{brown2008algorithmic}\n\\citation{martin2010topology}\n\\citation{martin2011non}\n\\citation{martin2011non}\n\\citation{zomorodian2012advances}\n\\@writefile{lof}{\\contentsline {subfigure}{\\numberline{(a)}{\\ignorespaces {Projection of $X(15,30)$}}}{31}{subfigure.5.2}}\n\\@writefile{lof}{\\contentsline {subfigure}{\\numberline{(b)}{\\ignorespaces {Three circle model}}}{31}{subfigure.5.2}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{6.3}{Cyclo-octane molecule conformations}}{31}{subsection.6.3}}\n\\@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}}\n\\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}{}}\n\\@writefile{lof}{\\contentsline {figure}{\\numberline {6}{\\ignorespaces Betti intervals for the lazy witness complex built from $X(300,30)$}}{33}{figure.6}}\n\\newlabel{fig:rangeBetti}{{6}{33}{Betti intervals for the lazy witness complex built from $X(300,30)$}{figure.6}{}}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {}{7}{Remarks}}{33}{section.7}}\n\\newlabel{SS:java-heap-size}{{7.1}{33}{Java heap size}{subsection.7.1}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{7.1}{Java heap size}}{33}{subsection.7.1}}\n\\citation{brown2008algorithmic}\n\\citation{martin2010topology}\n\\citation{martin2011non}\n\\newlabel{SS:matlabFunctions}{{7.2}{34}{Matlab functions with Javaplex commands}{subsection.7.2}{}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{7.2}{Matlab functions with Javaplex commands}}{34}{subsection.7.2}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{7.3}{Displaying the simplices in a stream}}{34}{subsection.7.3}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{7.4}{Displaying the boundary matrix of a homology computation}}{34}{subsection.7.4}}\n\\@writefile{toc}{\\contentsline {subsection}{\\tocsubsection {}{7.5}{Computing the bottleneck distance}}{34}{subsection.7.5}}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {}{8}{Acknowledgements}}{34}{section.8}}\n\\@writefile{toc}{\\contentsline {section}{Appendices}{34}{section*.2}}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {Appendix}{A}{Dense core subsets}}{34}{appendix.A}}\n\\newlabel{A:core}{{A}{34}{Dense core subsets}{appendix.A}{}}\n\\citation{KleinBottle}\n\\citation{WitnessComplexes}\n\\citation{Hatcher}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {Appendix}{B}{Exercise solutions}}{36}{appendix.B}}\n\\newlabel{A:solutions}{{B}{36}{Exercise solutions}{appendix.B}{}}\n\\citation{ChazalDeSilvaOudot2013}\n\\citation{Adamaszek2013,AAFPP-J,AA-VRS1,AAM}\n\\bibstyle{abbrvnat}\n\\bibdata{javaplex_tutorial}\n\\bibcite{Adamaszek2013}{{1}{2013}{{Adamaszek}}{{}}}\n\\bibcite{AA-VRS1}{{2}{2017}{{Adamaszek and Adams}}{{}}}\n\\bibcite{AAFPP-J}{{3}{2016}{{Adamaszek et~al.}}{{Adamaszek, Adams, Frick, Peterson, and Previte-Johnson}}}\n\\bibcite{AAM}{{4}{2017}{{Adamaszek et~al.}}{{Adamaszek, Adams, and Motta}}}\n\\bibcite{Range}{{5}{2009}{{Adams and Carlsson}}{{}}}\n\\bibcite{adams2015nudged}{{6}{2015}{{Adams et~al.}}{{Adams, Atanasov, and Carlsson}}}\n\\bibcite{Armstrong}{{7}{1983}{{Armstrong}}{{}}}\n\\bibcite{brown2008algorithmic}{{8}{2008}{{Brown et~al.}}{{Brown, Martin, Pollock, Coutsias, and Watson}}}\n\\bibcite{KleinBottle}{{9}{2008}{{Carlsson et~al.}}{{Carlsson, Ishkhanov, de~Silva, and Zomorodian}}}\n\\bibcite{ChazalDeSilvaOudot2013}{{10}{2013}{{Chazal et~al.}}{{Chazal, de~Silva, and Oudot}}}\n\\bibcite{WitnessComplexes}{{11}{2004}{{de~Silva and Carlsson}}{{}}}\n\\bibcite{ComputationalTopology}{{12}{2010}{{Edelsbrunner and Harer}}{{}}}\n\\bibcite{TopologicalPersistence}{{13}{2002}{{Edelsbrunner et~al.}}{{Edelsbrunner, Letscher, and Zomorodian}}}\n\\bibcite{Hatcher}{{14}{2002}{{Hatcher}}{{}}}\n\\bibcite{Mumford}{{15}{2003}{{Lee et~al.}}{{Lee, Pedersen, and Mumford}}}\n\\bibcite{martin2011non}{{16}{2011}{{Martin and Watson}}{{}}}\n\\bibcite{martin2010topology}{{17}{2010}{{Martin et~al.}}{{Martin, Thompson, Coutsias, and Watson}}}\n\\bibcite{Javaplex}{{18}{2014}{{Tausz et~al.}}{{Tausz, Vejdemo-Johansson, and Adams}}}\n\\bibcite{VanHaterenVanDerSchaaf}{{19}{1998}{{van Hateren and van~der Schaaf}}{{}}}\n\\bibcite{zomorodian2012advances}{{20}{2012}{{Zomorodian}}{{}}}\n\\bibcite{ComputingPersistent}{{21}{2005}{{Zomorodian and Carlsson}}{{}}}\n\\newlabel{tocindent-1}{0pt}\n\\newlabel{tocindent0}{58.61125pt}\n\\newlabel{tocindent1}{66.11127pt}\n\\newlabel{tocindent2}{29.38873pt}\n\\newlabel{tocindent3}{0pt}\n\\@writefile{toc}{\\contentsline {section}{\\tocsection {Appendix}{}{References}}{41}{section*.3}}\n"
  },
  {
    "path": "reports/javaplex_tutorial/javaplex_tutorial.bbl",
    "content": "\\begin{thebibliography}{21}\n\\providecommand{\\natexlab}[1]{#1}\n\\providecommand{\\url}[1]{\\texttt{#1}}\n\\expandafter\\ifx\\csname urlstyle\\endcsname\\relax\n  \\providecommand{\\doi}[1]{doi: #1}\\else\n  \\providecommand{\\doi}{doi: \\begingroup \\urlstyle{rm}\\Url}\\fi\n\n\\bibitem[Adamaszek(2013)]{Adamaszek2013}\nM.~Adamaszek.\n\\newblock Clique complexes and graph powers.\n\\newblock \\emph{Israel Journal of Mathematics}, 196\\penalty0 (1):\\penalty0\n  295--319, 2013.\n\n\\bibitem[Adamaszek and Adams(2017)]{AA-VRS1}\nM.~Adamaszek and H.~Adams.\n\\newblock The {V}ietoris--{R}ips complexes of a circle.\n\\newblock \\emph{Pacific Journal of Mathematics}, 290\\penalty0 (1):\\penalty0\n  1--40, 2017.\n\n\\bibitem[Adamaszek et~al.(2016)Adamaszek, Adams, Frick, Peterson, and\n  Previte-Johnson]{AAFPP-J}\nM.~Adamaszek, H.~Adams, F.~Frick, C.~Peterson, and C.~Previte-Johnson.\n\\newblock Nerve complexes of circular arcs.\n\\newblock \\emph{Discrete \\& Computational Geometry}, 56:\\penalty0 251--273,\n  2016.\n\n\\bibitem[Adamaszek et~al.(2017)Adamaszek, Adams, and Motta]{AAM}\nM.~Adamaszek, H.~Adams, and F.~Motta.\n\\newblock Random cyclic dynamical systems.\n\\newblock \\emph{Advances in Applied Mathematics}, 83:\\penalty0 1--23, 2017.\n\n\\bibitem[Adams and Carlsson(2009)]{Range}\nH.~Adams and G.~Carlsson.\n\\newblock On the nonlinear statistics of range image patches.\n\\newblock \\emph{SIAM J.\\ Imag.\\ Sci.}, 2:\\penalty0 110--117, 2009.\n\n\\bibitem[Adams et~al.(2015)Adams, Atanasov, and Carlsson]{adams2015nudged}\nH.~Adams, A.~Atanasov, and G.~Carlsson.\n\\newblock Nudged elastic band in topological data analysis.\n\\newblock \\emph{Topological methods in nonlinear analysis}, 45\\penalty0\n  (1):\\penalty0 247--272, 2015.\n\n\\bibitem[Armstrong(1983)]{Armstrong}\nM.~A. Armstrong.\n\\newblock \\emph{Basic Topology}.\n\\newblock Springer, New York, Berlin, 1983.\n\n\\bibitem[Brown et~al.(2008)Brown, Martin, Pollock, Coutsias, and\n  Watson]{brown2008algorithmic}\nM.~W. Brown, S.~Martin, S.~N. Pollock, E.~A. Coutsias, and J.~P. Watson.\n\\newblock Algorithmic dimensionality reduction for molecular structure\n  analysis.\n\\newblock \\emph{Journal of Chemical Physics}, 129:\\penalty0 064118, 2008.\n\n\\bibitem[Carlsson et~al.(2008)Carlsson, Ishkhanov, de~Silva, and\n  Zomorodian]{KleinBottle}\nG.~Carlsson, T.~Ishkhanov, V.~de~Silva, and A.~Zomorodian.\n\\newblock On the local behavior of spaces of natural images.\n\\newblock \\emph{Int.\\ J.\\ Comput.\\ Vision}, 76:\\penalty0 1--12, 2008.\n\n\\bibitem[Chazal et~al.(2013)Chazal, de~Silva, and\n  Oudot]{ChazalDeSilvaOudot2013}\nF.~Chazal, V.~de~Silva, and S.~Oudot.\n\\newblock Persistence stability for geometric complexes.\n\\newblock \\emph{Geometriae Dedicata}, pages 1--22, 2013.\n\n\\bibitem[de~Silva and Carlsson(2004)]{WitnessComplexes}\nV.~de~Silva and G.~Carlsson.\n\\newblock Topological estimation using witness complexes.\n\\newblock In \\emph{Eurographics Symposium on Point-Based Graphics}, June 2004.\n\n\\bibitem[Edelsbrunner and Harer(2010)]{ComputationalTopology}\nH.~Edelsbrunner and J.~Harer.\n\\newblock \\emph{Computational Topology: An Introduction}.\n\\newblock American Mathematical Society, Providence, 2010.\n\n\\bibitem[Edelsbrunner et~al.(2002)Edelsbrunner, Letscher, and\n  Zomorodian]{TopologicalPersistence}\nH.~Edelsbrunner, D.~Letscher, and A.~Zomorodian.\n\\newblock Topological persistence and simplification.\n\\newblock \\emph{Discrete Comput.\\ Geom.}, 28:\\penalty0 511--533, 2002.\n\n\\bibitem[Hatcher(2002)]{Hatcher}\nA.~Hatcher.\n\\newblock \\emph{Algebraic Topology}.\n\\newblock Cambridge University Press, Cambridge, 2002.\n\n\\bibitem[Lee et~al.(2003)Lee, Pedersen, and Mumford]{Mumford}\nA.~B. Lee, K.~S. Pedersen, and D.~Mumford.\n\\newblock The nonlinear statistics of high-contrast patches in natural images.\n\\newblock \\emph{Int.\\ J.\\ Comput.\\ Vision}, 54:\\penalty0 83--103, 2003.\n\n\\bibitem[Martin and Watson(2011)]{martin2011non}\nS.~Martin and J.~P. Watson.\n\\newblock Non-manifold surface reconstruction from high-dimensional point cloud\n  data.\n\\newblock \\emph{Computational Geometry}, 44:\\penalty0 427--441, 2011.\n\n\\bibitem[Martin et~al.(2010)Martin, Thompson, Coutsias, and\n  Watson]{martin2010topology}\nS.~Martin, A.~Thompson, E.~A. Coutsias, and J.~P. Watson.\n\\newblock Topology of cyclo-octane energy landscape.\n\\newblock \\emph{Journal of Chemical Physics}, 132:\\penalty0 234115, 2010.\n\n\\bibitem[Tausz et~al.(2014)Tausz, Vejdemo-Johansson, and Adams]{Javaplex}\nA.~Tausz, M.~Vejdemo-Johansson, and H.~Adams.\n\\newblock Java{P}lex: {A} research software package for persistent\n  (co)homology.\n\\newblock In H.~Hong and C.~Yap, editors, \\emph{Proceedings of ICMS 2014},\n  Lecture Notes in Computer Science 8592, pages 129--136, 2014.\n\\newblock Software available at\n  \\url{http://appliedtopology.github.io/javaplex/}.\n\n\\bibitem[van Hateren and van~der Schaaf(1998)]{VanHaterenVanDerSchaaf}\nJ.~H. van Hateren and A.~van~der Schaaf.\n\\newblock Independent component filters of natural images compared with simple\n  cells in primary visual cortex.\n\\newblock \\emph{Proc.\\ R.\\ Soc.\\ Lond.\\ B}, 265:\\penalty0 359--366, 1998.\n\n\\bibitem[Zomorodian(2012)]{zomorodian2012advances}\nA.~Zomorodian.\n\\newblock \\emph{Advances in Applied and Computational Topology}.\n\\newblock American Mathematical Society, 2012.\n\n\\bibitem[Zomorodian and Carlsson(2005)]{ComputingPersistent}\nA.~Zomorodian and G.~Carlsson.\n\\newblock Computing persistent homology.\n\\newblock \\emph{Discrete Comput.\\ Geom.}, 33:\\penalty0 249--274, 2005.\n\n\\end{thebibliography}\n"
  },
  {
    "path": "reports/javaplex_tutorial/javaplex_tutorial.bib",
    "content": "@article{Adamaszek2013,\n  title={Clique complexes and graph powers},\n  author={Adamaszek, Micha{\\l}},\n  journal={Israel Journal of Mathematics},\n  volume={196},\n  number={1},\n  pages={295--319},\n  year={2013}\n}\n\n@article{AAFPP-J,\n  title={Nerve complexes of circular arcs},\n  author={Adamaszek, Micha{\\l} and Adams, Henry and Frick, Florian and Peterson, Chris and Previte-Johnson, Corrine},\n  journal={Discrete \\& Computational Geometry},\n  volume={56},\n  pages={251--273},\n  year={2016}\n}\n\n@article{AA-VRS1,\n  title={The {V}ietoris--{R}ips complexes of a circle},\n  author={Adamaszek, Micha{\\l} and Adams, Henry},\n  journal={Pacific Journal of Mathematics},\n  volume={290},\n  number={1},\n  pages={1--40},\n  year={2017}\n}\n\n@article{AAM,\n  title={Random cyclic dynamical systems},\n  author={Adamaszek, Micha{\\l} and Adams, Henry and Motta, Francis},\n  journal={Advances in Applied Mathematics},\n  volume={83},\n  pages={1--23},\n  year={2017}\n}\n\n@article{adams2015nudged,\n  title={Nudged elastic band in topological data analysis},\n  author={Adams, Henry and Atanasov, Atanas and Carlsson, Gunnar},\n  journal={Topological methods in nonlinear analysis},\n  volume={45},\n  number={1},\n  pages={247--272},\n  year={2015}\n}\n\n@article{Range,\n\tauthor\t= \"H.~Adams and G.~Carlsson\",\n\ttitle\t\t= \"On the nonlinear statistics of range image patches\",\n\tjournal\t= \"SIAM J.\\ Imag.\\ Sci.\",\n\tvolume\t= \"2\",\n\tyear\t\t= \"2009\",\n\tpages\t= \"110--117\",\n}\n\n@book{Armstrong,\n    \tauthor\t= \"M.~A.~Armstrong\",\n    \ttitle\t\t= \"Basic Topology\",\n    \tpublisher\t= \"Springer\",\n    \taddress  \t= \"New York, Berlin\",\n    \tyear\t\t= \"1983\",\n}\n\n@article{KleinBottle,\n\tauthor\t= \"G.~Carlsson and T.~Ishkhanov and V.~de Silva and A.~Zomorodian\",\n\ttitle\t\t= \"On the local behavior of spaces of natural images\",\n\tjournal\t= \"Int.\\ J.\\ Comput.\\ Vision\",\n\tvolume\t= \"76\",\n\tyear\t\t= \"2008\",\n\tpages\t= \"1--12\",\n}\n\n@article{ChazalDeSilvaOudot2013,\n  title={Persistence stability for geometric complexes},\n  author={Chazal, Fr{\\'e}d{\\'e}ric and de~Silva, Vin and Oudot, Steve},\n  journal={Geometriae Dedicata},\n  pages={1--22},\n  year={2013}\n}\n\n@inproceedings{WitnessComplexes,\n\tauthor\t= \"V.~de Silva and G.~Carlsson\",\n\ttitle\t\t= \"Topological estimation using witness complexes\",\n\tbooktitle \t= \"Eurographics Symposium on Point-Based Graphics\",\n\tmonth \t= \"June\",\n\tyear \t\t= \"2004\",\n}\n\n@book{ComputationalTopology,\n    \tauthor\t= \"H.~Edelsbrunner and J.~Harer\",\n    \ttitle\t\t= \"Computational Topology: An Introduction\",\n    \tpublisher\t= \"American Mathematical Society\",\n    \taddress  \t= \"Providence\",\n    \tyear\t\t= \"2010\",\n}\n\n@article{TopologicalPersistence,\n\tauthor\t= \"H.~Edelsbrunner and D.~Letscher and A.~Zomorodian\",\n\ttitle\t\t= \"Topological persistence and simplification\",\n\tjournal\t= \"Discrete Comput.\\ Geom.\",\n\tvolume\t= \"28\",\n\tyear\t\t= \"2002\",\n\tpages\t= \"511--533\",\n}\n\n@book{Hatcher,\n    \tauthor\t= \"A.~Hatcher\",\n    \ttitle\t\t= \"Algebraic Topology\",\n    \tpublisher\t= \"Cambridge University Press\",\n    \taddress  \t= \"Cambridge\",\n    \tyear\t\t= \"2002\",\n}\n\n@article{Mumford,\n\tauthor\t= \"A.~B.~Lee and K.~S.~Pedersen and D.~Mumford\",\n\ttitle\t\t= \"The nonlinear statistics of high-contrast patches in natural images\",\n\tjournal\t= \"Int.\\ J.\\ Comput.\\ Vision\",\n\tvolume\t= \"54\",\n\tyear\t\t= \"2003\",\n\tpages\t= \"83--103\",\n}\n\n@inproceedings{Javaplex,\n\tauthor\t= \"A.~Tausz and M.~Vejdemo-Johansson and H.~Adams\",\n\ttitle \t\t= \"Java{P}lex: {A} research software package for persistent (co)homology\",\n\tbooktitle \t= \"Proceedings of ICMS 2014\",\n\teditor\t= \"H.~Hong and C.~Yap\",\n\tseries\t= \"Lecture Notes in Computer Science 8592\", \n\tyear \t\t= \"2014\",\n\tpages\t= \"129-136\",\n\tnote \t\t= \"Software available at \\url{http://appliedtopology.github.io/javaplex/}\"\n}\n\n@article{VanHaterenVanDerSchaaf,\n\tauthor\t=\"J.~H.~van Hateren and A.~van der Schaaf\",\n\ttitle\t\t=\"Independent component filters of natural images compared with simple cells in primary visual cortex\",\n\tjournal\t=\"Proc.\\ R.\\ Soc.\\ Lond.\\ B\",\n\tvolume\t=\"265\",\n\tpages\t=\"359--366\",\n\tyear\t\t=\"1998\",\n}\n\n@article{ComputingPersistent,\n\tauthor\t= \"A.~Zomorodian and G.~Carlsson\",\n\ttitle\t\t= \"Computing persistent homology\",\n\tjournal\t= \"Discrete Comput.\\ Geom.\",\n\tvolume\t= \"33\",\n\tyear\t\t= \"2005\",\n\tpages\t= \"249--274\",\n}\n\n@article{martin2010topology,\n  title={Topology of cyclo-octane energy landscape},\n  author={S.~Martin and A.~Thompson and E.~A.~Coutsias and J.~P.~Watson},\n  journal={Journal of Chemical Physics},\n  volume={132},\n  pages={234115},\n  year={2010}\n}\n\n@article{martin2011non,\n  title={Non-manifold surface reconstruction from high-dimensional point cloud data},\n  author={S.~Martin and J.~P.~Watson},\n  journal={Computational Geometry},\n  volume={44},\n  pages={427--441},\n  year={2011}\n}\n\n@article{brown2008algorithmic,\n  title={Algorithmic dimensionality reduction for molecular structure analysis},\n  author={M.~W.~Brown and S.~Martin and S.~N.~Pollock and E.~A.~Coutsias and J.~P.~Watson},\n  journal={Journal of Chemical Physics},\n  volume={129},\n  pages={064118},\n  year={2008}\n}\n\n@book{zomorodian2012advances,\n  title={Advances in Applied and Computational Topology},\n  author={A.~Zomorodian},\n  year={2012},\n  publisher={American Mathematical Society}\n}"
  },
  {
    "path": "reports/javaplex_tutorial/javaplex_tutorial.blg",
    "content": "This is BibTeX, Version 0.99d (TeX Live 2017)\nCapacity: max_strings=100000, hash_size=100000, hash_prime=85009\nThe top-level auxiliary file: javaplex_tutorial.aux\nThe style file: abbrvnat.bst\nDatabase file #1: javaplex_tutorial.bib\nYou've used 21 entries,\n            2773 wiz_defined-function locations,\n            738 strings with 7740 characters,\nand the built_in function-call counts, 9700 in all, are:\n= -- 861\n> -- 549\n< -- 13\n+ -- 185\n- -- 164\n* -- 779\n:= -- 1500\nadd.period$ -- 64\ncall.type$ -- 21\nchange.case$ -- 113\nchr.to.int$ -- 21\ncite$ -- 42\nduplicate$ -- 450\nempty$ -- 810\nformat.name$ -- 199\nif$ -- 2023\nint.to.chr$ -- 1\nint.to.str$ -- 1\nmissing$ -- 25\nnewline$ -- 114\nnum.names$ -- 86\npop$ -- 223\npreamble$ -- 1\npurify$ -- 96\nquote$ -- 0\nskip$ -- 337\nstack$ -- 0\nsubstring$ -- 395\nswap$ -- 38\ntext.length$ -- 2\ntext.prefix$ -- 0\ntop$ -- 0\ntype$ -- 211\nwarning$ -- 0\nwhile$ -- 95\nwidth$ -- 0\nwrite$ -- 281\n"
  },
  {
    "path": "reports/javaplex_tutorial/javaplex_tutorial.log",
    "content": "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\nentering extended mode\n restricted \\write18 enabled.\n file:line:error style messages enabled.\n %&-line parsing enabled.\n**javaplex_tutorial.tex\n(./javaplex_tutorial.tex\nLaTeX2e <2017-04-15>\nBabel <3.10> and hyphenation patterns for 84 language(s) loaded.\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amscls/amsart.cls\nDocument Class: amsart 2015/03/04 v2.20.2\n\\linespacing=\\dimen102\n\\normalparindent=\\dimen103\n\\normaltopskip=\\skip41\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsmath.sty\nPackage: amsmath 2016/11/05 v2.16a AMS math features\n\\@mathmargin=\\skip42\n\nFor additional information on amsmath, use the `?' option.\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amstext.sty\nPackage: amstext 2000/06/29 v2.01 AMS text\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsgen.sty\nFile: amsgen.sty 1999/11/30 v2.0 generic functions\n\\@emptytoks=\\toks14\n\\ex@=\\dimen104\n))\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsbsy.sty\nPackage: amsbsy 1999/11/29 v1.2d Bold Symbols\n\\pmbraise@=\\dimen105\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsmath/amsopn.sty\nPackage: amsopn 2016/03/08 v2.02 operator names\n)\n\\inf@bad=\\count79\nLaTeX Info: Redefining \\frac on input line 213.\n\\uproot@=\\count80\n\\leftroot@=\\count81\nLaTeX Info: Redefining \\overline on input line 375.\n\\classnum@=\\count82\n\\DOTSCASE@=\\count83\nLaTeX Info: Redefining \\ldots on input line 472.\nLaTeX Info: Redefining \\dots on input line 475.\nLaTeX Info: Redefining \\cdots on input line 596.\n\\Mathstrutbox@=\\box26\n\\strutbox@=\\box27\n\\big@size=\\dimen106\nLaTeX Font Info:    Redeclaring font encoding OML on input line 712.\nLaTeX Font Info:    Redeclaring font encoding OMS on input line 713.\n\\macc@depth=\\count84\n\\c@MaxMatrixCols=\\count85\n\\dotsspace@=\\muskip10\n\\c@parentequation=\\count86\n\\dspbrk@lvl=\\count87\n\\tag@help=\\toks15\n\\row@=\\count88\n\\column@=\\count89\n\\maxfields@=\\count90\n\\andhelp@=\\toks16\n\\eqnshift@=\\dimen107\n\\alignsep@=\\dimen108\n\\tagshift@=\\dimen109\n\\tagwidth@=\\dimen110\n\\totwidth@=\\dimen111\n\\lineht@=\\dimen112\n\\@envbody=\\toks17\n\\multlinegap=\\skip43\n\\multlinetaggap=\\skip44\n\\mathdisplay@stack=\\toks18\nLaTeX Info: Redefining \\[ on input line 2817.\nLaTeX Info: Redefining \\] on input line 2818.\n)\nLaTeX Font Info:    Try loading font information for U+msa on input line 388.\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsa.fd\nFile: umsa.fd 2013/01/14 v3.01 AMS symbols A\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/amsfonts.sty\nPackage: amsfonts 2013/01/14 v3.01 Basic AMSFonts support\n\\symAMSa=\\mathgroup4\n\\symAMSb=\\mathgroup5\nLaTeX Font Info:    Overwriting math alphabet `\\mathfrak' in version `bold'\n(Font)                  U/euf/m/n --> U/euf/b/n on input line 106.\n)\n\\copyins=\\insert199\n\\abstractbox=\\box28\n\\listisep=\\skip45\n\\c@part=\\count91\n\\c@section=\\count92\n\\c@subsection=\\count93\n\\c@subsubsection=\\count94\n\\c@paragraph=\\count95\n\\c@subparagraph=\\count96\n\\c@figure=\\count97\n\\c@table=\\count98\n\\abovecaptionskip=\\skip46\n\\belowcaptionskip=\\skip47\n\\captionindent=\\dimen113\n\\thm@style=\\toks19\n\\thm@bodyfont=\\toks20\n\\thm@headfont=\\toks21\n\\thm@notefont=\\toks22\n\\thm@headpunct=\\toks23\n\\thm@preskip=\\skip48\n\\thm@postskip=\\skip49\n\\thm@headsep=\\skip50\n\\dth@everypar=\\toks24\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/preprint/fullpage.sty\nPackage: fullpage 1999/02/23 1.1 (PWD)\n\\FP@margin=\\skip51\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/amssymb.sty\nPackage: amssymb 2013/01/14 v3.01 AMS font symbols\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/base/latexsym.sty\nPackage: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)\n\\symlasy=\\mathgroup6\nLaTeX Font Info:    Overwriting symbol font `lasy' in version `bold'\n(Font)                  U/lasy/m/n --> U/lasy/b/n on input line 52.\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/pb-diagram/pb-diagram.sty\n\\dgARROWLENGTH=\\skip52\n\\dgTEXTARROWLENGTH=\\skip53\n\\dgHORIZPAD=\\skip54\n\\dgVERTPAD=\\skip55\n\\dgLABELOFFSET=\\skip56\n\\dgARROWPARTS=\\count99\n\\dgDOTSPACING=\\skip57\n\\dgDOTSIZE=\\skip58\n\\dgMAXSQUARE=\\count100\n\\dgMINDBLSQ=\\count101\n\\dgCOLUMNWIDTH=\\skip59\n\\dg@HORIZ=\\count102\n\\dg@VERT=\\count103\n\\dg@XLPAD=\\count104\n\\dg@YBPAD=\\count105\n\\dg@XRPAD=\\count106\n\\dg@YTPAD=\\count107\n\\dg@X=\\count108\n\\dg@Y=\\count109\n\\dg@XGRID=\\count110\n\\dg@YGRID=\\count111\n\\dg@SIZE=\\count112\n\\dg@USERSIZE=\\count113\n\\dg@DX=\\count114\n\\dg@DY=\\count115\n\\dg@XLBL=\\count116\n\\dg@YLBL=\\count117\n\\dg@XOFFSET=\\count118\n\\dg@YOFFSET=\\count119\n\\dg@LBLOFF=\\count120\n\\dg@XLBLOFF=\\count121\n\\dg@YLBLOFF=\\count122\n\\dg@LBLPOS=\\count123\n\\dg@XTEMP=\\count124\n\\dg@YTEMP=\\count125\n\\dg@ZTEMP=\\count126\n\\dg@XNODE=\\count127\n\\dg@YNODE=\\count128\n\\dg@XEND=\\count129\n\\dg@YEND=\\count130\n\\dg@WEND=\\count131\n\\dg@HEND=\\count132\n\\dg@COUNT=\\count133\n\\dg@NODEBOX=\\box29\n\\dg@LABONEBOX=\\box30\n\\dg@LABTWOBOX=\\box31\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/euscript.sty\nPackage: euscript 2009/06/22 v3.00 Euler Script fonts\nLaTeX Font Info:    Overwriting math alphabet `\\EuScript' in version `bold'\n(Font)                  U/eus/m/n --> U/eus/b/n on input line 33.\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/graphicx.sty\nPackage: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/keyval.sty\nPackage: keyval 2014/10/28 v1.15 key=value parser (DPC)\n\\KV@toks@=\\toks25\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/graphics.sty\nPackage: graphics 2017/04/14 v1.1b Standard LaTeX Graphics (DPC,SPQR)\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics/trig.sty\nPackage: trig 2016/01/03 v1.10 sin cos tan (DPC)\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics-cfg/graphics.cfg\nFile: graphics.cfg 2016/06/04 v1.11 sample graphics configuration\n)\nPackage graphics Info: Driver file: pdftex.def on input line 99.\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/graphics-def/pdftex.def\nFile: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX\n\n(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/infwarerr.sty\nPackage: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)\n)\n(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/ltxcmds.sty\nPackage: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)\n)\n\\Gread@gobject=\\count134\n))\n\\Gin@req@height=\\dimen114\n\\Gin@req@width=\\dimen115\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/subfigure/subfigure.sty\nPackage: subfigure 2002/03/15 v2.1.5 subfigure package\n\\subfigtopskip=\\skip60\n\\subfigcapskip=\\skip61\n\\subfigcaptopadj=\\dimen116\n\\subfigbottomskip=\\skip62\n\\subfigcapmargin=\\dimen117\n\\subfiglabelskip=\\skip63\n\\c@subfigure=\\count135\n\\c@lofdepth=\\count136\n\\c@subtable=\\count137\n\\c@lotdepth=\\count138\n\n****************************************\n* Local config file subfigure.cfg used *\n****************************************\n(/usr/local/texlive/2017/texmf-dist/tex/latex/subfigure/subfigure.cfg)\n\\subfig@top=\\skip64\n\\subfig@bottom=\\skip65\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/placeins/placeins.sty\nPackage: placeins 2005/04/18  v 2.2\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/wrapfig/wrapfig.sty\n\\wrapoverhang=\\dimen118\n\\WF@size=\\dimen119\n\\c@WF@wrappedlines=\\count139\n\\WF@box=\\box32\n\\WF@everypar=\\toks26\nPackage: wrapfig 2003/01/31  v 3.6\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/hyperref.sty\nPackage: hyperref 2017/03/14 v6.85a Hypertext links for LaTeX\n\n(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty\nPackage: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)\n\n\n(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty\nPackage: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)\nPackage: hobsub 2016/05/16 v1.14 Construct package bundles (HO)\nPackage hobsub Info: Skipping package `infwarerr' (already loaded).\nPackage hobsub Info: Skipping package `ltxcmds' (already loaded).\nPackage: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)\nPackage ifluatex Info: LuaTeX not detected.\nPackage: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)\nPackage ifvtex Info: VTeX not detected.\nPackage: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)\nPackage: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch\nPackage: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)\nPackage etexcmds Info: Could not find \\expanded.\n(etexcmds)             That can mean that you are not using pdfTeX 1.50 or\n(etexcmds)             that some package has redefined \\expanded.\n(etexcmds)             In the latter case, load this package earlier.\nPackage: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)\nPackage: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)\nPackage: pdftexcmds 2017/03/19 v0.25 Utility functions of pdfTeX for LuaTeX (HO\n)\nPackage pdftexcmds Info: LuaTeX not detected.\nPackage pdftexcmds Info: \\pdf@primitive is available.\nPackage pdftexcmds Info: \\pdf@ifprimitive is available.\nPackage pdftexcmds Info: \\pdfdraftmode found.\nPackage: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)\nPackage: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO\n)\nPackage: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)\nPackage: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)\n)\nPackage hobsub Info: Skipping package `hobsub' (already loaded).\nPackage: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)\nPackage: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)\nPackage: xcolor-patch 2016/05/16 xcolor patch\nPackage: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)\nPackage atveryend Info: \\enddocument detected (standard20110627).\nPackage: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)\nPackage: refcount 2016/05/16 v3.5 Data extraction from label references (HO)\nPackage: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)\n)\n(/usr/local/texlive/2017/texmf-dist/tex/generic/ifxetex/ifxetex.sty\nPackage: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/auxhook.sty\nPackage: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/kvoptions.sty\nPackage: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)\n)\n\\@linkdim=\\dimen120\n\\Hy@linkcounter=\\count140\n\\Hy@pagecounter=\\count141\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/pd1enc.def\nFile: pd1enc.def 2017/03/14 v6.85a Hyperref: PDFDocEncoding definition (HO)\n)\n\\Hy@SavedSpaceFactor=\\count142\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/latexconfig/hyperref.cfg\nFile: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive\n)\nPackage hyperref Info: Hyper figures OFF on input line 4498.\nPackage hyperref Info: Link nesting OFF on input line 4503.\nPackage hyperref Info: Hyper index ON on input line 4506.\nPackage hyperref Info: Plain pages OFF on input line 4513.\nPackage hyperref Info: Backreferencing OFF on input line 4518.\nPackage hyperref Info: Implicit mode ON; LaTeX internals redefined.\nPackage hyperref Info: Bookmarks ON on input line 4751.\n\\c@Hy@tempcnt=\\count143\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/url/url.sty\n\\Urlmuskip=\\muskip11\nPackage: url 2013/09/16  ver 3.4  Verb mode for urls, etc.\n)\nLaTeX Info: Redefining \\url on input line 5104.\n\\XeTeXLinkMargin=\\dimen121\n\\Fld@menulength=\\count144\n\\Field@Width=\\dimen122\n\\Fld@charsize=\\dimen123\nPackage hyperref Info: Hyper figures OFF on input line 6358.\nPackage hyperref Info: Link nesting OFF on input line 6363.\nPackage hyperref Info: Hyper index ON on input line 6366.\nPackage hyperref Info: backreferencing OFF on input line 6373.\nPackage hyperref Info: Link coloring OFF on input line 6378.\nPackage hyperref Info: Link coloring with OCG OFF on input line 6383.\nPackage hyperref Info: PDF/A mode OFF on input line 6388.\nLaTeX Info: Redefining \\ref on input line 6428.\nLaTeX Info: Redefining \\pageref on input line 6432.\n\\Hy@abspage=\\count145\n\\c@Item=\\count146\n\\c@Hfootnote=\\count147\n)\n\nPackage hyperref Message: Driver (autodetected): hpdftex.\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/hpdftex.def\nFile: hpdftex.def 2017/03/14 v6.85a Hyperref driver for pdfTeX\n\\Fld@listcount=\\count148\n\\c@bookmark@seq@number=\\count149\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty\nPackage: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)\nPackage uniquecounter Info: New unique counter `rerunfilecheck' on input line 2\n82.\n)\n\\Hy@SectionHShift=\\skip66\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/appendix/appendix.sty\nPackage: appendix 2009/09/02 v1.2b extra appendix facilities\n\\c@@pps=\\count150\n\\c@@ppsavesec=\\count151\n\\c@@ppsaveapp=\\count152\n)\n(/usr/local/texlive/2017/texmf-dist/tex/latex/natbib/natbib.sty\nPackage: natbib 2010/09/13 8.31b (PWD, AO)\n\\bibhang=\\skip67\n\\bibsep=\\skip68\nLaTeX Info: Redefining \\cite on input line 694.\n\\c@NAT@ctr=\\count153\n)\n\\c@exercise=\\count154\n\\c@exerciseSol=\\count155\n\n\nLaTeX Warning: Unused global option(s):\n    [amscd,amssymb,verbatim].\n\n(./javaplex_tutorial.aux\n\nLaTeX Warning: Label `fig:rangeBetti' multiply defined.\n\n\nLaTeX Warning: Label `fig:rangeBetti' multiply defined.\n\n\nLaTeX Warning: Label `fig:rangeBetti' multiply defined.\n\n)\n\\openout1 = `javaplex_tutorial.aux'.\n\nLaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 33.\nLaTeX Font Info:    ... okay on input line 33.\nLaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 33.\nLaTeX Font Info:    ... okay on input line 33.\nLaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 33.\nLaTeX Font Info:    ... okay on input line 33.\nLaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 33.\nLaTeX Font Info:    ... okay on input line 33.\nLaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 33.\nLaTeX Font Info:    ... okay on input line 33.\nLaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 33.\nLaTeX Font Info:    ... okay on input line 33.\nLaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 33.\nLaTeX Font Info:    ... okay on input line 33.\nLaTeX Font Info:    Try loading font information for U+msa on input line 33.\n (/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsa.fd\nFile: umsa.fd 2013/01/14 v3.01 AMS symbols A\n)\nLaTeX Font Info:    Try loading font information for U+msb on input line 33.\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/umsb.fd\nFile: umsb.fd 2013/01/14 v3.01 AMS symbols B\n)\nLaTeX Font Info:    Try loading font information for U+lasy on input line 33.\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/base/ulasy.fd\nFile: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions\n)\n(/usr/local/texlive/2017/texmf-dist/tex/context/base/mkii/supp-pdf.mkii\n[Loading MPS to PDF converter (version 2006.09.02).]\n\\scratchcounter=\\count156\n\\scratchdimen=\\dimen124\n\\scratchbox=\\box33\n\\nofMPsegments=\\count157\n\\nofMParguments=\\count158\n\\everyMPshowfont=\\toks27\n\\MPscratchCnt=\\count159\n\\MPscratchDim=\\dimen125\n\\MPnumerator=\\count160\n\\makeMPintoPDFobject=\\count161\n\\everyMPtoPDFconversion=\\toks28\n) (/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty\nPackage: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/oberdiek/grfext.sty\nPackage: grfext 2016/05/16 v1.2 Manage graphics extensions (HO)\n)\nPackage epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4\n38.\nPackage grfext Info: Graphics extension search list:\n(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE\nG,.JBIG2,.JB2,.eps]\n(grfext)             \\AppendGraphicsExtensions on input line 456.\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg\nFile: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv\ne\n))\n\\AtBeginShipoutBox=\\box34\nPackage hyperref Info: Link coloring OFF on input line 33.\n\n(/usr/local/texlive/2017/texmf-dist/tex/latex/hyperref/nameref.sty\nPackage: nameref 2016/05/21 v2.44 Cross-referencing by name of section\n\n(/usr/local/texlive/2017/texmf-dist/tex/generic/oberdiek/gettitlestring.sty\nPackage: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)\n)\n\\c@section@level=\\count162\n)\nLaTeX Info: Redefining \\ref on input line 33.\nLaTeX Info: Redefining \\pageref on input line 33.\nLaTeX Info: Redefining \\nameref on input line 33.\n\n(./javaplex_tutorial.out) (./javaplex_tutorial.out)\n\\@outlinefile=\\write3\n\\openout3 = `javaplex_tutorial.out'.\n\n (./javaplex_tutorial.toc)\n\\tf@toc=\\write4\n\\openout4 = `javaplex_tutorial.toc'.\n\n\nUnderfull \\vbox (badness 1502) has occurred while \\output is active []\n\n [1{/usr/local/texlive/2017/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]\nOverfull \\hbox (6.01897pt too wide) in paragraph at lines 116--116\n []\\OT1/cmtt/m/n/10 ans = Java 1.5.0_13 with Apple Inc.   Java Hotspot(TM) Clie\nnt VM mixed mode, sharing[] \n []\n\n\nOverfull \\hbox (2.38226pt too wide) in paragraph at lines 120--121\n[]\\OT1/cmr/m/n/10 To in-stall Javaplex for Mat-lab, go to the lat-est re-lease \nat []$\\OT1/cmtt/m/n/10 https : / / github . com / appliedtopology / javaplex /\n []\n\n\nOverfull \\hbox (8.64397pt too wide) in paragraph at lines 120--121\n\\OT1/cmr/m/n/10 like \\OT1/cmtt/m/n/10 matlab-examples-4.2.3.zip\\OT1/cmr/m/n/10 \n. Ex-tract the zip file. The re-sult-ing folder should be called \\OT1/cmtt/m/n/\n10 matlab[]examples\\OT1/cmr/m/n/10 ;\n []\n\n[2] [3] <s1.pdf, id=257, 371.85866pt x 410.0921pt>\nFile: s1.pdf Graphic file (type pdf)\n <use s1.pdf>\nPackage pdftex.def Info: s1.pdf used on input line 207.\n(pdftex.def)             Requested size: 72.26999pt x 79.70169pt.\n [4 <./s1.pdf>]\n[5] <smallSimplicialComplex.png, id=277, 527.9725pt x 296.10625pt>\nFile: smallSimplicialComplex.png Graphic file (type png)\n\n<use smallSimplicialComplex.png>\nPackage pdftex.def Info: smallSimplicialComplex.png used on input line 326.\n(pdftex.def)             Requested size: 144.54pt x 81.06123pt.\n\n<houseFig.pdf, id=282, 52.43018pt x 76.4957pt>\nFile: houseFig.pdf Graphic file (type pdf)\n <use houseFig.pdf>\nPackage pdftex.def Info: houseFig.pdf used on input line 352.\n(pdftex.def)             Requested size: 72.26999pt x 105.44159pt.\n [6 <./smallSimplicialComplex.png> <./houseFig.pdf>]\nOverfull \\hbox (47.59558pt too wide) in paragraph at lines 378--378\n []\\OT1/cmtt/m/n/10 >> persistence = api.Plex4.getModularSimplicialAlgorithm(3,\n 2);[] \n []\n\n[7] <house.png, id=366, 578.16pt x 433.62pt>\nFile: house.png Graphic file (type png)\n <use house.png>\nPackage pdftex.def Info: house.png used on input line 469.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n [8] [9 <./house.png (PNG copy)>] <houseCoord.pdf, id=377, 602.25pt x 521.95pt>\nFile: houseCoord.pdf Graphic file (type pdf)\n\n<use houseCoord.pdf>\nPackage pdftex.def Info: houseCoord.pdf used on input line 516.\n(pdftex.def)             Requested size: 112.0187pt x 97.0769pt.\n [10 <./houseCoord.pdf>]\nOverfull \\hbox (16.51888pt too wide) in paragraph at lines 604--604\n []\\OT1/cmtt/m/n/10 >> point_cloud = examples.PointCloudExamples.getRandomSpher\neProductPoints(1000, 1, 2);[] \n []\n\n[11] [12] [13] <ripsHouse.png, id=422, 578.16pt x 433.62pt>\nFile: ripsHouse.png Graphic file (type png)\n\n<use ripsHouse.png>\nPackage pdftex.def Info: ripsHouse.png used on input line 748.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n [14]\nOverfull \\hbox (38.27599pt too wide) in paragraph at lines 780--781\n[]\\OT1/cmr/m/n/10 Make sure you are in the di-rec-tory \\OT1/cmtt/m/n/10 tutoria\nl[]examples \\OT1/cmr/m/n/10 (you may need to en-ter the com-mand \\OT1/cmtt/m/n/\n10 cd tutorial[]examples\\OT1/cmr/m/n/10 ),\n []\n\n[15 <./ripsHouse.png (PNG copy)>] <ripsTorus.png, id=432, 578.16pt x 433.62pt>\nFile: ripsTorus.png Graphic file (type png)\n\n<use ripsTorus.png>\nPackage pdftex.def Info: ripsTorus.png used on input line 807.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n [16 <./ripsTorus.png (PNG copy)>] [17]\nOverfull \\hbox (16.51888pt too wide) in paragraph at lines 895--895\n []\\OT1/cmtt/m/n/10 >> random_selector = api.Plex4.createRandomSelector(point_c\nloud, num_landmark_points);[] \n []\n\n\nOverfull \\hbox (16.51888pt too wide) in paragraph at lines 895--895\n []\\OT1/cmtt/m/n/10 >> maxmin_selector = api.Plex4.createMaxMinSelector(point_c\nloud, num_landmark_points);[] \n []\n\n<fig8lands.png, id=456, 449.68pt x 337.26pt>\nFile: fig8lands.png Graphic file (type png)\n <use fig8lands.png>\nPackage pdftex.def Info: fig8lands.png used on input line 917.\n(pdftex.def)             Requested size: 361.34999pt x 271.02286pt.\n [18] [19 <./fig8lands.png (PNG copy)>]\nOverfull \\hbox (32.26874pt too wide) in paragraph at lines 966--966\n []\\OT1/cmtt/m/n/10 >> point_cloud = examples.PointCloudExamples.getRandomSpher\neProductPoints(num_points, ...[] \n []\n\n\nOverfull \\hbox (27.01878pt too wide) in paragraph at lines 966--966\n []\\OT1/cmtt/m/n/10 >> landmark_selector = api.Plex4.createMaxMinSelector(point\n_cloud, num_landmark_points);[] \n []\n\n<witnessTorus.png, id=477, 578.16pt x 433.62pt>\nFile: witnessTorus.png Graphic file (type png)\n <use witnessTorus.png>\nPackage pdftex.def Info: witnessTorus.png used on input line 1001.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n [20]\n[21 <./witnessTorus.png (PNG copy)>]\nOverfull \\hbox (27.01878pt too wide) in paragraph at lines 1048--1048\n []\\OT1/cmtt/m/n/10 >> landmark_selector = api.Plex4.createMaxMinSelector(point\n_cloud, num_landmark_points);[] \n []\n\n\nOverfull \\hbox (48.0186pt too wide) in paragraph at lines 1069--1069\n []\\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto\nr.getUnderlyingMetricSpace(), ...[] \n []\n\n<lazySphere.png, id=493, 578.16pt x 433.62pt>\nFile: lazySphere.png Graphic file (type png)\n <use lazySphere.png>\nPackage pdftex.def Info: lazySphere.png used on input line 1075.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n [22]\n[23 <./lazySphere.png (PNG copy)>]\nOverfull \\hbox (38.27599pt too wide) in paragraph at lines 1110--1111\n[]\\OT1/cmr/m/n/10 Make sure you are in the di-rec-tory \\OT1/cmtt/m/n/10 tutoria\nl[]examples \\OT1/cmr/m/n/10 (you may need to en-ter the com-mand \\OT1/cmtt/m/n/\n10 cd tutorial[]examples\\OT1/cmr/m/n/10 ),\n []\n\n\nOverfull \\hbox (27.01878pt too wide) in paragraph at lines 1145--1145\n []\\OT1/cmtt/m/n/10 >> landmark_selector = api.Plex4.createMaxMinSelector(point\nsRange, num_landmark_points);[] \n []\n\n\nOverfull \\hbox (48.0186pt too wide) in paragraph at lines 1145--1145\n []\\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto\nr.getUnderlyingMetricSpace(), ...[] \n []\n\n<lazyRange.png, id=522, 578.16pt x 433.62pt>\nFile: lazyRange.png Graphic file (type png)\n <use lazyRange.png>\nPackage pdftex.def Info: lazyRange.png used on input line 1151.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n [24]\n<linearGrad.png, id=534, 867.24pt x 281.05pt>\nFile: linearGrad.png Graphic file (type png)\n <use linearGrad.png>\nPackage pdftex.def Info: linearGrad.png used on input line 1173.\n(pdftex.def)             Requested size: 144.54pt x 46.83868pt.\n\n<r5k300c30.png, id=535, 300.12125pt x 291.0875pt>\nFile: r5k300c30.png Graphic file (type png)\n <use r5k300c30.png>\nPackage pdftex.def Info: r5k300c30.png used on input line 1188.\n(pdftex.def)             Requested size: 216.81pt x 210.28905pt.\n\n<primaryCircle.png, id=536, 337.26pt x 329.23pt>\nFile: primaryCircle.png Graphic file (type png)\n <use primaryCircle.png>\nPackage pdftex.def Info: primaryCircle.png used on input line 1190.\n(pdftex.def)             Requested size: 209.58255pt x 204.59773pt.\n\n[25 <./lazyRange.png (PNG copy)> <./linearGrad.png (PNG copy)>]\nOverfull \\hbox (38.27599pt too wide) in paragraph at lines 1206--1207\n[]\\OT1/cmr/m/n/10 Make sure you are in the di-rec-tory \\OT1/cmtt/m/n/10 tutoria\nl[]examples \\OT1/cmr/m/n/10 (you may need to en-ter the com-mand \\OT1/cmtt/m/n/\n10 cd tutorial[]examples\\OT1/cmr/m/n/10 ),\n []\n\n[26 <./r5k300c30.png (PNG copy)> <./primaryCircle.png (PNG copy)>]\nOverfull \\hbox (48.0186pt too wide) in paragraph at lines 1242--1242\n []\\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto\nr.getUnderlyingMetricSpace(), ...[] \n []\n\n<lazyOpticalDct-k300.png, id=576, 578.16pt x 433.62pt>\nFile: lazyOpticalDct-k300.png Graphic file (type png)\n\n<use lazyOpticalDct-k300.png>\nPackage pdftex.def Info: lazyOpticalDct-k300.png used on input line 1248.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n [27]\n<nk300c30.png, id=581, 376.40625pt x 368.37625pt>\nFile: nk300c30.png Graphic file (type png)\n <use nk300c30.png>\nPackage pdftex.def Info: nk300c30.png used on input line 1267.\n(pdftex.def)             Requested size: 216.81pt x 212.19128pt.\nFile: primaryCircle.png Graphic file (type png)\n\n<use primaryCircle.png>\nPackage pdftex.def Info: primaryCircle.png used on input line 1269.\n(pdftex.def)             Requested size: 209.58255pt x 204.59773pt.\n [28 <./lazyOpticalDct-k300.png (PNG copy)>]\nOverfull \\hbox (57.21542pt too wide) in paragraph at lines 1276--1277\n[]\\OT1/cmr/m/n/10 We next an-a-lyze the core sub-set $\\OML/cmm/m/it/10 X\\OT1/cm\nr/m/n/10 (15\\OML/cmm/m/it/10 ; \\OT1/cmr/m/n/10 30)$. Load the file []\\OT1/cmtt/\nm/n/10 pointsOpticalDct[]k15.mat[]\\OT1/cmr/m/n/10 . The ma-trix \\OT1/cmtt/m/n/1\n0 pointsOpticalDct[]k15\n []\n\n\nOverfull \\hbox (48.0186pt too wide) in paragraph at lines 1312--1312\n []\\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto\nr.getUnderlyingMetricSpace(), ...[] \n []\n\n[29 <./nk300c30.png>] <lazyOpticalDct-k15.png, id=595, 578.16pt x 433.62pt>\nFile: lazyOpticalDct-k15.png Graphic file (type png)\n\n<use lazyOpticalDct-k15.png>\nPackage pdftex.def Info: lazyOpticalDct-k15.png used on input line 1318.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n <nk15c30.png, id=596, 377.41pt x 372.39125pt>\nFile: nk15c30.png Graphic file (type png)\n\n<use nk15c30.png>\nPackage pdftex.def Info: nk15c30.png used on input line 1337.\n(pdftex.def)             Requested size: 216.81pt x 213.92442pt.\n <threeCircle.png, id=597, 804.606pt x 805.5696pt>\nFile: threeCircle.png Graphic file (type png)\n\n<use threeCircle.png>\nPackage pdftex.def Info: threeCircle.png used on input line 1339.\n(pdftex.def)             Requested size: 209.58255pt x 209.8242pt.\n [30 <./lazyOpticalDct-k15.png (PNG copy)>]\nOverfull \\hbox (11.05464pt too wide) in paragraph at lines 1349--1350\n \\OT1/cmr/m/n/10 6.3.\\OT1/cmr/bx/n/10 Cyclo-octane mol-e-cule con-for-ma-tions.\n[][] \\OT1/cmr/m/n/10 The cor-re-spond-ing Mat-lab script is []\\OT1/cmtt/m/n/10 \ncyclo[]octane[]example.m[]\\OT1/cmr/m/n/10 ,\n []\n\n<Cyclooctane-boat-chair-3D-balls.png, id=614, 1457.445pt x 1505.625pt>\nFile: Cyclooctane-boat-chair-3D-balls.png Graphic file (type png)\n\n<use Cyclooctane-boat-chair-3D-balls.png>\nPackage pdftex.def Info: Cyclooctane-boat-chair-3D-balls.png used on input line\n 1355.\n(pdftex.def)             Requested size: 144.54pt x 149.30775pt.\n\nOverfull \\hbox (38.27599pt too wide) in paragraph at lines 1363--1364\n[]\\OT1/cmr/m/n/10 Make sure you are in the di-rec-tory \\OT1/cmtt/m/n/10 tutoria\nl[]examples \\OT1/cmr/m/n/10 (you may need to en-ter the com-mand \\OT1/cmtt/m/n/\n10 cd tutorial[]examples\\OT1/cmr/m/n/10 ),\n []\n\n[31 <./nk15c30.png> <./threeCircle.png>]\nOverfull \\hbox (48.0186pt too wide) in paragraph at lines 1399--1399\n []\\OT1/cmtt/m/n/10 >> stream = streams.impl.LazyWitnessStream(landmark_selecto\nr.getUnderlyingMetricSpace(), ...[] \n []\n\n<lazyCycloOctane.png, id=633, 578.16pt x 433.62pt>\nFile: lazyCycloOctane.png Graphic file (type png)\n <use lazyCycloOctane.png>\nPackage pdftex.def Info: lazyCycloOctane.png used on input line 1405.\n(pdftex.def)             Requested size: 433.62pt x 325.2142pt.\n\n[32 <./Cyclooctane-boat-chair-3D-balls.png>]\nOverfull \\hbox (10.02187pt too wide) in paragraph at lines 1430--1431\n\\OT1/cmr/m/n/10 in-clude Javaplex com-mands in an m-file func-tion, in-clude th\ne com-mand \\OT1/cmtt/m/n/10 import edu.stanford.math.plex4.*;\n []\n\n[33 <./lazyCycloOctane.png (PNG copy)>]\nOverfull \\hbox (11.26892pt too wide) in paragraph at lines 1454--1454\n []\\OT1/cmtt/m/n/10 The Euler characteristic is 2 = 8 - 28 + 56 - 70 + 56 - 28 \n+ 8, using the alternating[] \n []\n\n\nOverfull \\hbox (6.01897pt too wide) in paragraph at lines 1454--1454\n []\\OT1/cmtt/m/n/10 The Euler characteristic is 2 = 1 - 0 + 0 - 0 + 0 - 0 + 1, \nusing the alternating sum[] \n []\n\n[34] [35]\nOverfull \\hbox (26.71925pt too wide) in paragraph at lines 1590--1591\n[]\\OT1/cmr/m/n/10 Several ex-er-cise so-lu-tions are ac-com-pa-nied by Mat-lab \nscripts, which are avail-able in the folder []\\OT1/cmtt/m/n/10 tutorial[]soluti\nons[]\\OT1/cmr/m/n/10 . \n []\n\nFile: smallSimplicialComplex.png Graphic file (type png)\n<use smallSimplicialComplex.png>\nPackage pdftex.def Info: smallSimplicialComplex.png used on input line 1595.\n(pdftex.def)             Requested size: 144.54pt x 81.06123pt.\n <torus.png, id=689, 456.2646pt x 472.164pt>\nFile: torus.png Graphic file (type png)\n\n<use torus.png>\nPackage pdftex.def Info: torus.png used on input line 1614.\n(pdftex.def)             Requested size: 180.67499pt x 186.97464pt.\n [36] <klein.png, id=698, 456.2646pt x 472.164pt>\nFile: klein.png Graphic file (type png)\n\n<use klein.png>\nPackage pdftex.def Info: klein.png used on input line 1629.\n(pdftex.def)             Requested size: 180.67499pt x 186.97464pt.\n <projPlane.png, id=700, 521.7894pt x 439.4016pt>\nFile: projPlane.png Graphic file (type png)\n\n<use projPlane.png>\nPackage pdftex.def Info: projPlane.png used on input line 1644.\n(pdftex.def)             Requested size: 180.67499pt x 152.1435pt.\n [37 <./torus.png (PNG copy)> <./klein.png (PNG copy)>]\n[38 <./projPlane.png (PNG copy)>] [39] (./javaplex_tutorial.bbl [40])\nPackage atveryend Info: Empty hook `BeforeClearDocument' on input line 1834.\n [41]\nPackage atveryend Info: Empty hook `AfterLastShipout' on input line 1834.\n\n(./javaplex_tutorial.aux)\nPackage atveryend Info: Executing hook `AtVeryEndDocument' on input line 1834.\nPackage atveryend Info: Executing hook `AtEndAfterFileList' on input line 1834.\n\nPackage rerunfilecheck Info: File `javaplex_tutorial.out' has not changed.\n(rerunfilecheck)             Checksum: 4E641A8A9A783CD703486AEBBEBCB5C9;2543.\n\n\nLaTeX Warning: There were multiply-defined labels.\n\nPackage atveryend Info: Empty hook `AtVeryVeryEnd' on input line 1834.\n ) \nHere is how much of TeX's memory you used:\n 7696 strings out of 492995\n 108553 string characters out of 6132704\n 200021 words of memory out of 5000000\n 10801 multiletter control sequences out of 15000+600000\n 11554 words of font info for 49 fonts, out of 8000000 for 9000\n 1302 hyphenation exceptions out of 8191\n 33i,8n,32p,1460b,520s stack positions out of 5000i,500n,10000p,200000b,80000s\n</usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb\n></usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb>\n</usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc10.pfb>\n</usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb><\n/usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></\nusr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></us\nr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/\nlocal/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/lo\ncal/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/loca\nl/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/local/t\nexlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/local/texl\nive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/local/texlive\n/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/\n2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb></usr/local/texlive/20\n17/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/local/texlive/201\n7/texmf-dist/fonts/type1/public/amsfonts/cm/cmti8.pfb></usr/local/texlive/2017/\ntexmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/local/texlive/2017/t\nexmf-dist/fonts/type1/public/amsfonts/cm/cmtt8.pfb></usr/local/texlive/2017/tex\nmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb>\nOutput written on javaplex_tutorial.pdf (41 pages, 1529932 bytes).\nPDF statistics:\n 879 PDF objects out of 1000 (max. 8388607)\n 771 compressed objects within 8 object streams\n 160 named destinations out of 1000 (max. 500000)\n 409 words of extra memory for PDF output out of 10000 (max. 10000000)\n\n"
  },
  {
    "path": "reports/javaplex_tutorial/javaplex_tutorial.out",
    "content": "\\BOOKMARK [1][-]{section.1}{1. Introduction}{}% 1\n\\BOOKMARK [2][-]{subsection.1.1}{1.1. Javaplex}{section.1}% 2\n\\BOOKMARK [2][-]{subsection.1.2}{1.2. License}{section.1}% 3\n\\BOOKMARK [2][-]{subsection.1.3}{1.3. Installation for Matlab}{section.1}% 4\n\\BOOKMARK [2][-]{subsection.1.4}{1.4. Accompanying files}{section.1}% 5\n\\BOOKMARK [1][-]{section.2}{2. Math review}{}% 6\n\\BOOKMARK [2][-]{subsection.2.1}{2.1. Simplicial complexes}{section.2}% 7\n\\BOOKMARK [2][-]{subsection.2.2}{2.2. Homology}{section.2}% 8\n\\BOOKMARK [2][-]{subsection.2.3}{2.3. Filtered simplicial complexes}{section.2}% 9\n\\BOOKMARK [2][-]{subsection.2.4}{2.4. Persistent homology}{section.2}% 10\n\\BOOKMARK [1][-]{section.3}{3. Explicit simplex streams}{}% 11\n\\BOOKMARK [2][-]{subsection.3.1}{3.1. Computing homology}{section.3}% 12\n\\BOOKMARK [2][-]{subsection.3.2}{3.2. Computing persistent homology}{section.3}% 13\n\\BOOKMARK [1][-]{section.4}{4. Point cloud data}{}% 14\n\\BOOKMARK [2][-]{subsection.4.1}{4.1. Euclidean metric spaces}{section.4}% 15\n\\BOOKMARK [2][-]{subsection.4.2}{4.2. Explicit metric spaces}{section.4}% 16\n\\BOOKMARK [1][-]{section.5}{5. Streams from point cloud data}{}% 17\n\\BOOKMARK [2][-]{subsection.5.1}{5.1. Vietoris\\205Rips streams}{section.5}% 18\n\\BOOKMARK [2][-]{subsection.5.2}{5.2. Landmark selection}{section.5}% 19\n\\BOOKMARK [2][-]{subsection.5.3}{5.3. Witness streams}{section.5}% 20\n\\BOOKMARK [2][-]{subsection.5.4}{5.4. Lazy witness streams}{section.5}% 21\n\\BOOKMARK [1][-]{section.6}{6. Examples with real data}{}% 22\n\\BOOKMARK [2][-]{subsection.6.1}{6.1. Range image patches}{section.6}% 23\n\\BOOKMARK [2][-]{subsection.6.2}{6.2. Optical image patches}{section.6}% 24\n\\BOOKMARK [2][-]{subsection.6.3}{6.3. Cyclo-octane molecule conformations}{section.6}% 25\n\\BOOKMARK [1][-]{section.7}{7. Remarks}{}% 26\n\\BOOKMARK [2][-]{subsection.7.1}{7.1. Java heap size}{section.7}% 27\n\\BOOKMARK [2][-]{subsection.7.2}{7.2. Matlab functions with Javaplex commands}{section.7}% 28\n\\BOOKMARK [2][-]{subsection.7.3}{7.3. Displaying the simplices in a stream}{section.7}% 29\n\\BOOKMARK [2][-]{subsection.7.4}{7.4. Displaying the boundary matrix of a homology computation}{section.7}% 30\n\\BOOKMARK [2][-]{subsection.7.5}{7.5. Computing the bottleneck distance}{section.7}% 31\n\\BOOKMARK [1][-]{section.8}{8. Acknowledgements}{}% 32\n\\BOOKMARK [1][-]{section*.2}{Appendices}{}% 33\n\\BOOKMARK [1][-]{appendix.A}{Appendix A. Dense core subsets}{}% 34\n\\BOOKMARK [1][-]{appendix.B}{Appendix B. Exercise solutions}{}% 35\n\\BOOKMARK [1][-]{section*.3}{References}{}% 36\n"
  },
  {
    "path": "reports/javaplex_tutorial/javaplex_tutorial.tex",
    "content": "\\documentclass[amscd, amssymb, verbatim]{amsart}[12pt]\n\n\\usepackage{fullpage}\n\\usepackage{amssymb}\n\\usepackage{latexsym}\n\\usepackage{pb-diagram}\n\\usepackage[mathscr]{euscript}\n\\usepackage{graphicx}\n\\usepackage{subfigure}\n\\usepackage{placeins}\n\\usepackage{wrapfig}\n\\usepackage{hyperref}\n\\usepackage{appendix}\n%\\usepackage{multind}\n\\usepackage{natbib}\n\\bibpunct{[}{]}{;}{a}{}{,~}\n\n\\theoremstyle{remark}\n\\newtheorem{exercise}{Exercise}\n\\theoremstyle{remark}\n\\newtheorem{exerciseSol}{Exercise}\n\\theoremstyle{remark}\n\\newtheorem*{solution}{Solution}\n\n\\DeclareMathOperator{\\VR}{VR}\n\\DeclareMathOperator{\\W}{W}\n\\DeclareMathOperator{\\LW}{LW}\n\\newcommand{\\N}{\\mathbb{N}}\n\\newcommand{\\R}{\\mathbb{R}}\n\\newcommand{\\Z}{\\mathbb{Z}}\n\\newcommand{\\cyclo}{\\mathrm{C}_8\\mathrm{H}_{16}}\n\n\\begin{document}\n\n\\title{Javaplex Tutorial}\n\n\\author{Henry Adams}\n\\email[Henry~Adams]{henry.adams@colostate.edu}\n\n\\author{Andrew Tausz}\n\\email[Andrew~Tausz]{andrew.tausz@gmail.com}\n\n\\date{\\today}\n\n\\maketitle\n\n\\tableofcontents\n\\setlength{\\parindent}{0pt}\n\\setlength{\\parskip}{8pt}\n\n% TODO: test tutorial after making changes to include examples finding representative cycles (For example, getDefaultSimplicialAlgorithm changed everywhere to getModularSimplicialAlgorithm).\n\n% TODO: Add more figures with data points in blue and landmarks in red, such as the one in exercise_19, to this tutorial.\n\n% TODO: the figures for the random trials in this tutorial don't currently match the numbers (number of simplices, etc).\n%UPDATE: They do for witness_example.m and lazy_witness_example.m\n\n% \"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).\n\n% 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.\n\n% TODO: add example which is FLAT double torus. That is, select points at random from an octagon. Then, create explicit metric by identifying sides.\n% UPDATE: added example for double torus embedded in R^3.\n\n% TODO: is \"ensureAllFaces\" working as I expect? See representatives_example_HA and try changing dimensions.\n% UPDATE: See Javaplex Issue 20 created by Andrew.\n\n% TODO: Add zigzag examples to tutorial. See:\n% http://code.google.com/p/javaplex/source/browse/#svn%2Ftrunk%2Fsrc%2Fmatlab%2Fexperimental%2Fvietoris_rips_bootstrap\n% http://code.google.com/p/javaplex/source/browse/#svn%2Ftrunk%2Fsrc%2Fmatlab%2Fexperimental%2Fwitness_bootstrap\n% http://arxiv.org/abs/1108.3545\n% Also, see email from Anthony Bak 10-21-11\n\n% TODO: ask Andrew: Move lazy witness to API so that the syntax is more similar to Vietoris-Rips and witness filtrations?\n\n\n\n\n\\section{Introduction}\n\n\n\\subsection{Javaplex}\n\nJavaplex 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/}.\n\nThis 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}.\n\nIf you are interested in Javaplex, then there are many other software packages that you may also be interested in.\nSee \\url{https://www.math.colostate.edu/~adams/advising/#software} for one list of applied topology software packages.\n\n% Below link currently broken:\n%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}.\n\nPlease email Henry at \\texttt{henry.adams@colostate.edu} or Andrew at \\texttt{andrew.tausz@gmail.com} if you have questions about this tutorial.\n\n\n\\subsection{License}\n\nJavaplex is an open source software package under the Open BSD License. The source code can be found at \\url{https://github.com/appliedtopology/javaplex}.\n\n\n\\subsection{Installation for Matlab}\nOpen Matlab and check which version of Java is being used. In this tutorial, the symbol \\texttt{>>} precedes commands to enter into your Matlab window.\n\n\\begin{quote} \\begin{verbatim} \n>> version -java\nans = Java 1.5.0_13 with Apple Inc.   Java Hotspot(TM) Client VM mixed mode, sharing\n\\end{verbatim} \\end{quote}\n\nJavaplex requires version number \\texttt{1.5} or higher. \n\nTo 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.\n\nIn 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. \n\n\\begin{quote} \\begin{verbatim} \n>> load_javaplex\n\\end{verbatim} \\end{quote}\n\nAlso in the Matlab command window, type the following command.\n\n\\begin{quote} \\begin{verbatim} \n>> import edu.stanford.math.plex4.*;\n\\end{verbatim} \\end{quote}\n\nInstallation is complete. Confirm that Javaplex is working properly with the following command.\n\n\\begin{quote} \\begin{verbatim}\n>> api.Plex4.createExplicitSimplexStream()\nans = edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream@513fd4\n\\end{verbatim} \\end{quote}\n\nYour 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}.\n\n\n\\subsection{Accompanying files}\n\nThe folder \\href{https://github.com/appliedtopology/javaplex/tree/master/src/matlab/for_distribution/tutorial_examples}{\\texttt{tutorial\\_examples}} contains Matlab scripts, such as \\\\ %Space\n\\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.\n\n\n\n\n\\section{Math review}\n\nBelow is a brief math review. For more details, see~\\citet{Armstrong},~\\citet{ComputationalTopology},~\\citet{TopologicalPersistence},~\\citet{Hatcher}, and~\\citet{ComputingPersistent}. \n\n\n\\subsection{Simplicial complexes}\nAn abstract simplicial complex is given by the following data.\n\\begin{itemize}\n\\item A set $Z$ of vertices or 0-simplices.\n\\item For each $k\\geq 1$, a set of $k$-simplices $\\sigma = [z_0,z_1,\\ldots,z_k]$, where $z_i\\in Z$.\n\\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.\n\\end{itemize}\nWe think of 0-simplices as vertices, 1-simplices as edges, 2-simplices as triangular faces, and 3-simplices as tetrahedrons. \n\n\n\\subsection{Homology}\nBetti 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$. \n\n\n\\subsection{Filtered simplicial complexes}\nA 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. \n% Introduce filtered chain complexes?\n\n\n\\subsection{Persistent homology}\nBetti 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. \n\nPersistent 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. \n\n\n\n\n\\section{Explicit simplex streams}\\label{S:explicitStream}\n\nIn 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. \n\n\n\\subsection{Computing homology}\n\nYou 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.\n\n\\begin{quote} \\begin{verbatim} \n>> cd tutorial_examples\n\\end{verbatim} \\end{quote}\n\nThe 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.\n\n\\begin{quote} \\begin{verbatim} \n>> explicit_simplex_example\n\\end{verbatim} \\end{quote}\n\n{\\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].\n\n\\begin{figure}[htp]\n  \t\\begin{center}\n    \t\\includegraphics[width=1in]{s1.pdf}\n   \t\\end{center}\n\\end{figure}\n\\FloatBarrier\n\nTo 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.\n\n\\begin{quote} \\begin{verbatim} \n>> stream = api.Plex4.createExplicitSimplexStream();\n\\end{verbatim} \\end{quote}\n\nNext 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.\n\n\\begin{quote} \\begin{verbatim}\n>> stream.addVertex(0);\n>> stream.addVertex(1);\n>> stream.addVertex(2);\n>> stream.addElement([0, 1]);\n>> stream.addElement([0, 2]);\n>> stream.addElement([1, 2]);\n>> stream.finalizeStream();\n\\end{verbatim} \\end{quote}\n\nAfter we are done building the complex, calling the method \\texttt{finalizeStream} is necessary before working with this complex!\n\nWe print the total number of simplices in the complex.\n\n\\begin{quote} \\begin{verbatim}\n>> num_simplices = stream.getSize()\nnum_simplices = 6\n\\end{verbatim} \\end{quote}\n\nWe 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.\n\n\\begin{quote} \\begin{verbatim}\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\\end{verbatim} \\end{quote}\n\nWe compute and print the intervals.\n\n\\begin{quote} \\begin{verbatim}\n>> intervals = persistence.computeIntervals(stream)\nintervals =\n\nDimension: 1\n[0.0, infinity)\nDimension: 0\n[0.0, infinity)\n\\end{verbatim} \\end{quote}\n\nThis gives us the expected Betti numbers $Betti_0=1$ and $Betti_1=1$.\n\nThe 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.\n\n\\begin{quote} \\begin{verbatim}\n>> intervals = persistence.computeAnnotatedIntervals(stream)\nintervals =\n\nDimension: 1\n[0.0, infinity): [1,2] + [0,2] + [0,1]\nDimension: 0\n[0.0, infinity): [0]\n\\end{verbatim} \\end{quote}\n\nA 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].\n\n{\\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.\n\n\\begin{quote} \\begin{verbatim}\n>> dimension = 9;\n>> stream = api.Plex4.createExplicitSimplexStream();\n>> stream.addElement(0:(dimension + 1));\n>> stream.ensureAllFaces();\n>> stream.removeElementIfPresent(0:(dimension + 1));\n>> stream.finalizeStream();\n\\end{verbatim} \\end{quote}\n\nIn 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. \n\nWe print the total number of simplices in the complex.\n\n\\begin{quote} \\begin{verbatim}\n>> num_simplices = stream.getSize()\nnum_simplices = 2046\n\\end{verbatim} \\end{quote}\n\nWe get the persistence algorithm\n\n\\begin{quote} \\begin{verbatim}\npersistence = api.Plex4.getModularSimplicialAlgorithm(dimension + 1, 2);\n\\end{verbatim} \\end{quote}\n\nand compute and print the intervals.\n\n\\begin{quote} \\begin{verbatim}\n>> intervals = persistence.computeIntervals(stream)\nintervals =\n\nDimension: 9\n[0.0, infinity)\nDimension: 0\n[0.0, infinity)\n\\end{verbatim} \\end{quote}\n\nThis gives us the expected Betti numbers $Betti_0=1$ and $Betti_9=1$.\n\nTry computing a representative cycle for each barcode.\n\n\\begin{quote} \\begin{verbatim}\n>> intervals = persistence.computeAnnotatedIntervals(stream)\n\\end{verbatim} \\end{quote}\n\nWe 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.\n\nSee Appendix~\\ref{A:solutions} for exercise solutions. \n\n\\begin{exercise}\nBuild the following simplicial complex in Javaplex.\n\\begin{center}\n\\includegraphics[width=2in]{smallSimplicialComplex.png}\n\\end{center}\nCompute its Betti numbers (i.e.\\ the ranks of its homology groups, or the number of holes it has in each dimension).\n\\end{exercise}\n\n\\begin{exercise}\nBuild 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.} \n\\end{exercise}\n\n\\begin{exercise}\nBuild 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. \n\\end{exercise}\n\n\\begin{exercise}\nBuild a simplicial complex homeomorphic to the projective plane. Find its Betti numbers over $\\Z/2\\Z$ and $\\Z/3\\Z$ coefficients. \n\\end{exercise}\n\n\n\\subsection{Computing persistent homology}\\label{S:computingPersistentHomology}\n\nLet'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.\n\n{\\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}}.\n\n\\begin{wrapfigure}{r}{1in}\n\t\\begin{center}\n   \t\\includegraphics[width=1in]{houseFig.pdf}\n  \t\\end{center}\n\\end{wrapfigure}\n\nWe 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.\n\n\\begin{quote} \\begin{verbatim}\n>> stream = api.Plex4.createExplicitSimplexStream();\n>> stream.addVertex(1, 0);\n>> stream.addVertex(2, 0);\n>> stream.addVertex(3, 0);\n>> stream.addVertex(4, 0);\n>> stream.addVertex(5, 1);\n>> stream.addElement([1, 2], 0);\n>> stream.addElement([2, 3], 0);\n>> stream.addElement([3, 4], 0);\n>> stream.addElement([4, 1], 0);\n>> stream.addElement([3, 5], 2);\n>> stream.addElement([4, 5], 3);\n>> stream.addElement([3, 4, 5], 7);\n>> stream.finalizeStream();\n\\end{verbatim} \\end{quote}\n\nWe get the persistence algorithm with $\\Z/2\\Z$ coefficients\n\\begin{quote} \\begin{verbatim}\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\\end{verbatim} \\end{quote}\n\nand compute the intervals.\n\n\\begin{quote} \\begin{verbatim}\n>> intervals = persistence.computeIntervals(stream)\nintervals =\n\nDimension: 1\n[3.0, 7.0)\n[0.0, infinity)\nDimension: 0\n[1.0, 2.0)\n[0.0, infinity)\n\\end{verbatim} \\end{quote}\n\nThere 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.\n\nWe can also store the intervals as Matlab matrices.\n\n\\begin{quote} \\begin{verbatim}\n>> intervals_dim0 = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility...\n.getEndpoints(intervals, 0, 0)\nintervals_dim0 =\n\n    0    Inf\n    1    2\n    \n>> intervals_dim1 = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility...\n.getEndpoints(intervals, 1, 0)\nintervals_dim1 =\n\n    0    Inf\n    3    7\n\\end{verbatim} \\end{quote}\n\nThe 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.\n\nWe compute a representative cycle for each barcode.\n\n\\begin{quote} \\begin{verbatim}\n>> intervals = persistence.computeAnnotatedIntervals(stream)\nintervals =\n\nDimension: 1\n[3.0, 7.0): [4,5] + [3,4] + -[3,5]\n[0.0, infinity): [1,4] + [2,3] + [1,2] + [3,4]\nDimension: 0\n[1.0, 2.0): -[3] + [5]\n[0.0, infinity): [1]\n\\end{verbatim} \\end{quote}\n\nOne $Betti_0$ interval and one $Betti_1$ interval are semi-infinite. \n\\begin{quote} \\begin{verbatim}\n>> infinite_barcodes = intervals.getInfiniteIntervals()\ninfinite_barcodes = \n\nDimension: 1\n[0.0, infinity): [1,4] + [2,3] + [1,2] + [3,4]\nDimension: 0\n[0.0, infinity): [1]\n\\end{verbatim} \\end{quote}\n\nWe can print the Betti numbers at the largest filtration value (7 in this case) as an array\n\n\\begin{quote} \\begin{verbatim}\n>> betti_numbers_array = infinite_barcodes.getBettiSequence()\nbetti_numbers_array =\n\n    1\n    1\n\\end{verbatim} \\end{quote}\n\nor as a list with entries of the form $k: Betti_k$.\n\n\\begin{quote} \\begin{verbatim}\n>> betti_numbers_string = infinite_barcodes.getBettiNumbers()\nbetti_numbers_string = {0: 1, 1: 1} \n\\end{verbatim} \\end{quote}\n\nThe 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.\n\\begin{quote} \\begin{verbatim}\n>> options.filename = 'house';\n>> options.max_filtration_value = 8;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nThe file \\texttt{house.png} is saved to your current directory.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{house.png}\n   \t\\end{center}\n\\end{figure}\n\\FloatBarrier\n\nThe 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. \n\n{\\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. \n\n\\begin{quote} \\begin{verbatim}\n>> stream.validateVerbose()\nans = 1\n>> stream.addElement([1, 4, 5], 0);\n>> stream.validateVerbose()\nFiltration index of face [4,5] exceeds that of element [1,4,5] (3 > 0)\nStream does not contain face [1,5] of element [1,4,5]\nans = 0\n\\end{verbatim} \\end{quote}\n\n{\\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.\n\n\\begin{quote} \\begin{verbatim}\n>> stream = api.Plex4.createExplicitSimplexStream(100);\n>> stream.addVertex(1, 17.23);\n>> stream.finalizeStream();\n\\end{verbatim} \\end{quote}\n\n{\\em Remark.} You should avoid negative filtration values with Javaplex (simply by adding some large constant until all filtration values are nonnegative).\n\n%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}. \n\n% Henry: At the moment there is no ``make Explicit'' function.\n\n\n\n\n\\section{Point cloud data}\n\nA 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. \n\n\n\\subsection{Euclidean metric spaces}\\label{SS:euclidean-metric}\nThe 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}}. \n\n{\\em House example.} Let's give Euclidean coordinates to the points of our house.\n\n\\vspace{-3mm}\n\\begin{figure}[htb]\n\t\\centering\n\t\\includegraphics[width=1.55in]{houseCoord.pdf}\n\t\\vspace{-3mm}\n\t\\caption{The house point cloud}\n\t\\label{fig:housePointCloud}\n\\end{figure}\n\\FloatBarrier\n\nYou can enter these coordinates manually as a Matlab matrix.\n\n\\begin{quote} \\begin{verbatim}\n>> point_cloud = [-1,0; 1,0; 1,2; -1,2; 0,3]\npoint_cloud =\n\n   -1    0\n    1    0\n    1    2\n   -1    2\n    0    3\n\\end{verbatim} \\end{quote}\n\n%Or alternatively, these coordinates are stored as a Javaplex example.\n\n%\\begin{quote} \\begin{verbatim}\n%>> point_cloud = examples.PointCloudExamples.getHouseExample();\n%\\end{verbatim} \\end{quote}\n\nWe 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.\n\n\\begin{quote} \\begin{verbatim}\n>> m_space = metric.impl.EuclideanMetricSpace(point_cloud); \n\\end{verbatim} \\end{quote}\n\nWe can return the coordinates of a specific point. Note the points are indexed starting at 0.\n\n\\begin{quote} \\begin{verbatim}\n>> m_space.getPoint(0)\nans = \n\n   -1\n    0\n   \n>> m_space.getPoint(2)\nans = \n\n    1\n    2\n\\end{verbatim} \\end{quote}\n\nA metric space can return the distance between any two points.\n\n\\begin{quote} \\begin{verbatim}\n>> m_space.distance(m_space.getPoint(0), m_space.getPoint(2))\nans = 2.8284\n\\end{verbatim} \\end{quote}\n\n{\\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)$.\n\n\\begin{quote} \\begin{verbatim}\n>> point_cloud = examples.PointCloudExamples.getRandomFigure8Points(1000);\n\\end{verbatim} \\end{quote}\n\nWe plot the points.\n\n\\begin{quote} \\begin{verbatim}\n>> figure\n>> scatter(point_cloud(:,1), point_cloud(:,2), '.')\n>> axis equal\n\\end{verbatim} \\end{quote}\n\n{\\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\n\n\\begin{quote} \\begin{verbatim}\n>> point_cloud = examples.PointCloudExamples.getRandomTorusPoints(2000, 1, 2);\n\\end{verbatim} \\end{quote}\n\nWe plot the points.\n\n\\begin{quote} \\begin{verbatim}\n>> figure\n>> scatter3(point_cloud(:,1), point_cloud(:,2), point_cloud(:,3), '.')\n>> axis equal\n>> view(60,40)\n\\end{verbatim} \\end{quote}\n\n{\\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.\n\n\\begin{quote} \\begin{verbatim}\n>> point_cloud = examples.PointCloudExamples.getRandomSphereProductPoints(1000, 1, 2);\n\\end{verbatim} \\end{quote}\n\nPlotting the third and fourth coordinates of each point shows a circle $S^1$.\n\n\\begin{quote} \\begin{verbatim}\n>> figure\n>> scatter(point_cloud(:,3), point_cloud(:,4), '.')\n>> axis equal\n\\end{verbatim} \\end{quote}\n\n\n\\subsection{Explicit metric spaces}\\label{SS:explicit-metric}\nWe 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. \n\nThe 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}}. \n\n{\\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$. \n\n\\begin{quote} \\begin{verbatim}\n>> distances = [0,2,sqrt(8),2,sqrt(10);\n2,0,2,sqrt(8),sqrt(10);\nsqrt(8),2,0,2,sqrt(2);\n2,sqrt(8),2,0,sqrt(2);\nsqrt(10),sqrt(10),sqrt(2),sqrt(2),0]\n\ndistances =\n\n    0         2.0000    2.8284    2.0000    3.1623\n    2.0000    0         2.0000    2.8284    3.1623\n    2.8284    2.0000    0         2.0000    1.4142\n    2.0000    2.8482    2.0000    0         1.4142\n    3.1623    3.1623    1.4142    1.4142    0\n\\end{verbatim} \\end{quote}\n\nWe create a metric space from this distance matrix.\n\n\\begin{quote} \\begin{verbatim}\n>> m_space = metric.impl.ExplicitMetricSpace(distances);\n\\end{verbatim} \\end{quote}\n\nWe return the distance between points 0 and 2.\n\n\\begin{quote} \\begin{verbatim}\n>> m_space.distance(0, 2)\nans = 2.8284 \n\\end{verbatim} \\end{quote}\n\n{\\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.\n\n\\begin{exercise}\\label{Ex:flatTorus}\nOne 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\n$$([0, 1] \\times [0, 1]) / \\sim,$$\nwhere $(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})$.\n\nWrite 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. \n\nThis exercise is continued by Exercise~\\ref{Ex:flatTorusLazy}. \n\n% 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.\n\\end{exercise}\n\n\\begin{exercise}\\label{Ex:flatKlein}\nOne 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 \n$$([0, 1] \\times [0, 1]) / \\sim,$$\nwhere $(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})$.\n\nWrite 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. \n\nThis exercise is continued by Exercise~\\ref{Ex:flatKleinLazy}. \n\\end{exercise}\n\n\\begin{exercise}\\label{Ex:quotProjPlane}\nOne 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 \n$$S^2 / (x \\sim -x).$$\nThe Euclidean metric on $S^2$ induces a metric on the projective plane.\n\nWrite 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. \n\nThis exercise is continued by Exercise~\\ref{Ex:quotProjPlaneLazy}. \n\\end{exercise}\n\n\n\n\n\\section{Streams from point cloud data}\\label{S:sfpc}\n\nIn 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. \n\nThe 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\n$$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\\}.$$\nThe 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.\n\n{\\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}.\n\n%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. \n\n\n\\subsection{Vietoris--Rips streams}\\label{SS:VietorisRips}\nLet  $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: \n\\begin{itemize}\n\\item{the vertex set is $Z$.}\n\\item{for vertices $a$ and $b$, edge $[ab]$ is included in $\\VR(Z,t)$ if $d(a,b) \\leq t$.}\n\\item{a higher dimensional simplex is included in $\\VR(Z,t)$ if all of its edges are.}\n\\end{itemize}\nNote 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}. \n\nThe 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}}. \n\n{\\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}.\n\n\\begin{quote} \\begin{verbatim}\n>> max_dimension = 3;\n>> max_filtration_value = 4;\n>> num_divisions = 1000;\n\n>> point_cloud = examples.PointCloudExamples.getHouseExample();\n>> stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, ...\nmax_filtration_value, num_divisions);\n\\end{verbatim} \\end{quote}\n\nThe ellipses in the command above should be omitted; they are included only to indicate that this command continues onto the next line. \n\nThe 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. \n\nSince $d_{max} = 3$ we can compute up to second dimensional persistent homology.\n\n\\begin{quote} \\begin{verbatim}\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n>> intervals = persistence.computeIntervals(stream);\n\\end{verbatim} \\end{quote}\n\nWe 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$.\n\n\\begin{quote} \\begin{verbatim}\n>> options.filename = 'ripsHouse';\n>> options.max_filtration_value = max_filtration_value;\n>> options.max_dimension = max_dimension - 1;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nThe file \\texttt{ripsHouse.png} is saved to your current directory.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{ripsHouse.png}\n   \t\\end{center}\n\\end{figure}\n\\FloatBarrier\n\nCheck 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}$. \n\n%\\begin{exercise}\n%Change \\texttt{ripsHouse} into an explicit stream\n%\n%\\begin{quote} \\begin{verbatim}\n%>> ripsExpl = Plex.makeExplicit(ripsHouse);\n%\\end{verbatim} \\end{quote} \n%\n%Check that you can display and edit stream \\texttt{ripsExpl} using the methods of Section~\\ref{S:explicitStream}. \n%\\end{exercise}\n\n% Is the above exercise no longer necessary, or no longer possible?\n% Answer: At the moment it isn't possible. Do you think it is meaningful?\n\n% Is there a way to print the simplices in a stream (and perhaps their filtration values?\n\n{\\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.\n% 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.\nWe build the Vietoris--Rips stream.\n\n\\begin{quote} \\begin{verbatim}\n>> max_dimension = 3;\n>> max_filtration_value = 0.9;\n>> num_divisions = 1000;\n\\end{verbatim} \\end{quote}\n\nMake 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.\n\n\\begin{quote} \\begin{verbatim}\n>> load pointsTorusGrid.mat\n>> point_cloud = pointsTorusGrid;\n>> size(point_cloud)\nans = 400    4                         % 400 points in dimension 4\n\n>> stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, ...\nmax_filtration_value, num_divisions); \n>> num_simplices = stream.getSize()\nnum_simplices = 82479\n\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n>> intervals = persistence.computeIntervals(stream);\n\n>> options.filename = 'ripsTorus';\n>> options.max_filtration_value = max_filtration_value;\n>> options.max_dimension = max_dimension - 1;\n>> options.side_by_side = true;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nSetting 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.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{ripsTorus.png}\n   \t\\end{center}\n\\end{figure}\n\\FloatBarrier\n\nThe 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.\n\n\\begin{quote} \\begin{verbatim}\n>> infinite_barcodes = intervals.getInfiniteIntervals();\n>> betti_numbers_array = infinite_barcodes.getBettiSequence()\nbetti_numbers_array =\n\n    1\n    2\n    1\n\\end{verbatim} \\end{quote}\n\nThis 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}$. \n\n{\\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.\n\n\\begin{quote} \\begin{verbatim}\n>> stream = api.Plex4.createVietorisRipsStream(m_space, max_dimension, ...\nmax_filtration_value, num_divisions);  \n\\end{verbatim} \\end{quote}\n\n\\begin{exercise}\nCompute 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).\n\nPerturb the points with a small amount of noise. Do the barcodes change a lot or only a little?\n\\end{exercise}\n\n\\begin{exercise}\nCompute 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:\n\n\\begin{verbatim}\n>> point_cloud = examples.PointCloudExamples.getRandomFigure8Points(75);\n\\end{verbatim}\n\nWe 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?\n\\end{exercise}\n\n\\begin{exercise}\nIn 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. \n\\end{exercise}\n\n\\begin{exercise}\nWrite 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.\n\nDo you ever get homology in dimension above 1?\n\\end{exercise}\n\n\\begin{exercise}\nFind 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. \n\\end{exercise}\n\n\\begin{exercise}\nFind 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$. \n\\end{exercise}\n\n\\begin{exercise}\nLet $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).\n\nDo you get ever homology above dimension 2?\n\\end{exercise}\n\n\n\\subsection{Landmark selection}\\label{SS:landmarks}\nFor 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. \n\nThere 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}$. \n\nLandmarks 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}. \n\nThe 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}}.\n\n{\\em Figure~8 example.} We create a point cloud of 1,000 points from a figure eight.\n\n\\begin{quote} \\begin{verbatim}\n>> point_cloud = examples.PointCloudExamples.getRandomFigure8Points(1000);\n\\end{verbatim} \\end{quote}\n\nWe create both a random landmark selector and a sequential maxmin landmark selector. These selectors will pick 100 landmarks each.\n\n\\begin{quote} \\begin{verbatim}\n>> num_landmark_points = 100;\n>> random_selector = api.Plex4.createRandomSelector(point_cloud, num_landmark_points);\n>> maxmin_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\n\\end{verbatim} \\end{quote}\n\nWe 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.\n\n\\begin{quote} \\begin{verbatim}\n>> random_points = point_cloud(random_selector.getLandmarkPoints() + 1, :);\n>> maxmin_points = point_cloud(maxmin_selector.getLandmarkPoints() + 1, :);\n\\end{verbatim} \\end{quote}\n\nWe plot the two sets of landmark points to see the difference between random and sequential maxmin landmark selection.\n\n\\begin{quote} \\begin{verbatim}\n>> subplot(1, 2, 1);\n>> scatter(random_points(:,1), random_points(:, 2));\n>> title('Random landmark selection');\n>> subplot(1, 2, 2);\n>> scatter(maxmin_points(:,1), maxmin_points(:, 2));\n>> title('Maxmin landmark selection');\n\\end{verbatim} \\end{quote}\n\n\\begin{figure}[htp]\n  \t\\begin{center}\n    \t\\includegraphics[width=5in]{fig8lands}\n   \t\\end{center}\n\\end{figure}\n\\FloatBarrier\n\nSequential maxmin seems to do a better job of choosing landmarks that cover the figure eight and that are spread apart. \n\n{\\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.\n\n\\begin{quote} \\begin{verbatim}\n>> maxmin_selector = api.Plex4.createMaxMinSelector(m_space, num_landmark_points); \n\\end{verbatim} \\end{quote}\n\nGiven 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. \n\n\\begin{exercise}\nLet $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$. \n\\end{exercise}\n\n\\begin{exercise}\nLet $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}$. \n\\end{exercise}\n\n\n\\subsection{Witness streams}\nSuppose 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.\n\\begin{itemize}\n\\item{the vertex set is $L$.}\n\\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).$$ }\n\\end{itemize}\nNote 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. \n\n\\begin{exercise}\\label{Ex:witnessHouse}\nLet $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)]$? \n\\end{exercise}\n\nThe 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}}.\n\n{\\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.\n\n\\begin{quote} \\begin{verbatim}\n>> num_points = 10000;\n>> num_landmark_points = 50;\n>> max_dimension = 3;\n>> num_divisions = 1000;\n\n>> point_cloud = examples.PointCloudExamples.getRandomSphereProductPoints(num_points, ...\n1, 2);\n>> landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\n\\end{verbatim} \\end{quote}\n\nThe 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}.\n\n\\begin{quote} \\begin{verbatim}\n>> R = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nR = 0.7033                         % Generally close to 0.7\n>> max_filtration_value = R / 8; \n\\end{verbatim} \\end{quote}\n\nWe create the witness stream.\n\n\\begin{quote} \\begin{verbatim}\n>> stream = api.Plex4.createWitnessStream(landmark_selector, max_dimension, ...\nmax_filtration_value, num_divisions); \n>> num_simplices = stream.getSize()\nnum_simplices = 1164                         % Generally close to 1200\n\\end{verbatim} \\end{quote}\n\nWe plot the Betti intervals.\n\n\\begin{quote} \\begin{verbatim}\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n>> intervals = persistence.computeIntervals(stream);\n\n>> options.filename = 'witnessTorus';\n>> options.max_filtration_value = max_filtration_value;\n>> options.max_dimension = max_dimension - 1;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nThe file \\texttt{witnessTorus.png} is saved to your current directory.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{witnessTorus.png}\n   \t\\end{center}\n\\end{figure}\n\\FloatBarrier\n\nThe 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.\n\nThe 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. \n\n\n\\subsection{Lazy witness streams}\nA 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. \n\nSuppose 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.\n\\begin{itemize}\n\\item{the vertex set is $L$.}\n\\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).$$}\n\\item{a higher dimensional simplex is in $\\LW_\\nu(Z,L,t)$ if all of its edges are.} \n\\end{itemize}\nNote 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. \n\n\\begin{exercise}\nLet $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)]$? \n\\end{exercise}\n\n\\begin{exercise}\nRepeat the above exercise with $\\nu = 0$ and with $\\nu = 2$. \n\\end{exercise}\n\n\\begin{exercise}\nCheck 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)$. \n\\end{exercise}\n\n{\\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}}.\n\nWe use parameter $\\nu = 1$.\n\n\\begin{quote} \\begin{verbatim}\n>> max_dimension = 3;\n>> num_points = 1000;\n>> num_landmark_points = 50;\n>> nu = 1;\n>> num_divisions = 1000;\n\n>> point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, ...\nmax_dimension - 1);\n>> landmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points); \n\\end{verbatim} \\end{quote}\n\nOften $t_{max}$ is chosen in proportion to \\texttt{R}. \n\n% Is LazyWitnessStream constructer being added to class api?\n\\begin{quote} \\begin{verbatim} \n>> R = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nR = 0.3841                         % Generally close to 0.38\n>> max_filtration_value = 2 * R;\n>> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ...\nlandmark_selector, max_dimension, max_filtration_value, nu, num_divisions); \n>> stream.finalizeStream()\n>> num_simplices = stream.getSize()\nnum_simplices = 56518                         % Generally close to 50000\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n>> intervals = persistence.computeIntervals(stream);\n\n>> options.filename = 'lazySphere';\n>> options.max_filtration_value = max_filtration_value;\n>> options.max_dimension = max_dimension - 1;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nThe file \\texttt{lazySphere.png} is saved to your current directory.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{lazySphere.png}\n   \t\\end{center}\n\\end{figure}\n\\FloatBarrier\n\n\\begin{exercise}\\label{Ex:flatTorusLazy}\nIn 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. \n\\end{exercise}\n\n\\begin{exercise}\\label{Ex:flatKleinLazy}\nIn 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. \n\\end{exercise}\n\n\\begin{exercise}\\label{Ex:quotProjPlaneLazy}\nIn 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. \n\\end{exercise}\n% This exercise was first done by David Eisenbud and Agnes Beadry at MRC.\n\n\\begin{exercise}\nSample 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.\n\\end{exercise}\n\n\n\n\\section{Examples with real data}\\label{S:real}\n\nWe now do two examples with real datasets: a data set of range image patches, and a data set of optical image patches\n\n\n\\subsection{Range image patches}\n\nThe 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}}. \n\nIn {\\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. \n\nMake 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.\n\n\\begin{quote} \\begin{verbatim}\n>> load pointsRange.mat\n>> size(pointsRange) \nans = 15000    25                         % 15000 points in dimension 25\n\\end{verbatim} \\end{quote}\n\nMatrix \\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! \n\nWe pick 50 sequential maxmin landmark points, we find the value of \\texttt{R}, and we build the lazy witness stream with parameter $\\nu = 1$. \n\n\\begin{quote} \\begin{verbatim}\n>> max_dimension = 3;\n>> num_landmark_points = 50;\n>> nu = 1;\n>> num_divisions = 1000;\n\n>> landmark_selector = api.Plex4.createMaxMinSelector(pointsRange, num_landmark_points);\n>> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() \nR = 0.7759                         % Generally close to 0.75\n>> max_filtration_value = R / 3;\n>> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ...\nlandmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\n>> stream.finalizeStream()\n>> num_simplices = stream.getSize()\nnum_simplices = 12036                         % Generally between 10000 and 25000\n\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n>> intervals = persistence.computeIntervals(stream);\n\n>> options.filename = 'lazyRange';\n>> options.max_filtration_value = max_filtration_value;\n>> options.max_dimension = max_dimension - 1;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nThe file \\texttt{lazyRange.png} is saved to your current directory.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{lazyRange.png}\n   \t\\end{center}\n\t\\caption{Betti intervals for the lazy witness complex built from $X^5(300,30)$}\n  \t\\label{fig:rangeBetti}\n\\end{figure}\n\\FloatBarrier\n\nThe 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. \n\nOur $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.\n\n%>> size(pointsRangeDct)\n%ans = 15000\\quad 24 \\hspace{30mm} \\% 15000 points in DCT basis (representation)\n\\begin{quote} \\begin{verbatim} \n>> pointsRangeDct = pointsRange * dct(5);\n\\end{verbatim} \\end{quote}\n\nTwo of the DCT basis vectors are horizontal and linear gradients.\n\n\\vspace{-3mm}\n\\begin{figure}[htb]\n\t\\centering\n\t\\includegraphics[width=2in]{linearGrad}\n\\end{figure}\n\\vspace{-3mm}\n\\FloatBarrier\n\nWe plot the projection of \\texttt{pointsRangeDct} onto the linear gradient DCT basis vectors.\n\n\\begin{quote} \\begin{verbatim}\n>> figure\n>> scatter(pointsRangeDct(:,1), pointsRangeDct(:,5), '.')\n>> axis square\n\\end{verbatim} \\end{quote}\n\n\\begin{figure}[htp]\n  \\begin{center}\n    \\subfigure[Projection of $X^5(300,30)$]{\\includegraphics[width=3.0in]{r5k300c30}}\n    \\quad\n    \\subfigure[Range primary circle]{\\includegraphics[width=2.9in]{primaryCircle}}\n   \\end{center}\n\\end{figure}\n\\FloatBarrier\n\nThe 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).\n\nThis dataset is also analyzed using the Nudged Elastic Band (NEB) method and Morse theory in~\\citet{adams2015nudged}.\n\n\n\\subsection{Optical image patches}\n\nThe 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}}.\n\nThe 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.\n\nMake 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.\n\n\\begin{quote} \\begin{verbatim}\n>> load pointsOpticalDct_k300.mat\n>> size(pointsOpticalDct_k300) \nans = 15000    8                         % 15000 points in dimension 8\n\\end{verbatim} \\end{quote}\n\nMatrix \\texttt{pointsOpticalDct\\_k300} is in fact $X(300,30)$: each of its rows is a vector in $\\R^8$.\n\nWe pick 50 sequential maxmin landmark points, we find the value of \\texttt{R}, and we build the lazy witness stream with parameter $\\nu = 1$. \n\n\\begin{quote} \\begin{verbatim}\n>> max_dimension = 3;\n>> num_landmark_points = 50;\n>> nu = 1;\n>> num_divisions = 1000;\n\n>> landmark_selector = api.Plex4.createMaxMinSelector(pointsOpticalDct_k300, ...\nnum_landmark_points);\n>> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() \nR = 0.5919                         \n>> max_filtration_value = R / 4;\n>> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ...\nlandmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\n>> stream.finalizeStream()\n>> num_simplices = stream.getSize()\nnum_simplices = 2351                         \n\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n>> intervals = persistence.computeIntervals(stream);\n\n>> options.filename = 'lazyOpticalDct-k300';\n>> options.max_filtration_value = max_filtration_value;\n>> options.max_dimension = max_dimension - 1;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nThe file \\texttt{lazyOpticalDct-k300.png} is saved to your current directory.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{lazyOpticalDct-k300.png}\n   \t\\end{center}\n\t\\caption{Betti intervals for the lazy witness complex built from $X(300,30)$}\n  \t\\label{fig:rangeBetti}\n\\end{figure}\n\\FloatBarrier\n\nThe 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. \n\nWe plot the projection of \\texttt{pointsOpticalDct\\_k300} onto the linear gradient DCT basis vectors.\n\n\\begin{quote} \\begin{verbatim}\n>> figure\n>> scatter(pointsOpticalDct_k300(:,1), pointsOpticalDct_k300(:,2), '.')\n>> axis square\n\\end{verbatim} \\end{quote}\n\n\\begin{figure}[htp]\n  \\begin{center}\n    \\subfigure[Projection of $X(300,30)$]{\\includegraphics[width=3.0in]{nk300c30}}\n    \\quad\n    \\subfigure[Optical primary circle]{\\includegraphics[width=2.9in]{primaryCircle}}\n   \\end{center}\n\\end{figure}\n\\FloatBarrier\n\nThe 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).\n\nWe 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.\n\n\\begin{quote} \\begin{verbatim}\n>> load pointsOpticalDct_k15.mat\n>> size(pointsOpticalDct_k15) \nans = 15000    8                         % 15000 points in dimension 8\n\\end{verbatim} \\end{quote}\n\nMatrix \\texttt{pointsOpticalDct\\_k15} is in fact $X(15,30)$: each of its rows is a vector in $\\R^8$.\n\nWe pick 50 sequential maxmin landmark points, we find the value of \\texttt{R}, and we build the lazy witness stream with parameter $\\nu = 1$. \n\n\\begin{quote} \\begin{verbatim}\n>> max_dimension = 3;\n>> num_landmark_points = 50;\n>> nu = 1;\n>> num_divisions = 1000;\n\n>> landmark_selector = api.Plex4.createMaxMinSelector(pointsOpticalDct_k15, ...\nnum_landmark_points);\n>> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() \nR = 0.6554                         \n>> max_filtration_value = R / 4;\n>> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ...\nlandmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\n>> stream.finalizeStream()\n>> num_simplices = stream.getSize()\nnum_simplices = 1570                         \n\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n>> intervals = persistence.computeIntervals(stream);\n\n>> options.filename = 'lazyOpticalDct-k15';\n>> options.max_filtration_value = max_filtration_value;\n>> options.max_dimension = max_dimension - 1;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nThe file \\texttt{lazyOpticalDct-k15.png} is saved to your current directory.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{lazyOpticalDct-k15.png}\n   \t\\end{center}\n\t\\caption{Betti intervals for the lazy witness complex built from $X(15,30)$}\n  \t\\label{fig:rangeBetti}\n\\end{figure}\n\\FloatBarrier\n\nThe 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. \n\nWe plot the projection of \\texttt{pointsOpticalDct\\_k300} onto the linear gradient DCT basis vectors.\n\n\\begin{quote} \\begin{verbatim}\n>> figure\n>> scatter(pointsOpticalDct_k15(:,1), pointsOpticalDct_k15(:,2), '.')\n>> axis square\n\\end{verbatim} \\end{quote}\n\n\\begin{figure}[htp]\n  \\begin{center}\n    \\subfigure[Projection of $X(15,30)$]{\\includegraphics[width=3.0in]{nk15c30}}\n    \\quad\n    \\subfigure[Three circle model]{\\includegraphics[width=2.9in]{threeCircle}}\n   \\end{center}\n\\end{figure}\n\\FloatBarrier\n\nFigure~(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.\n\n\n\\subsection{Cyclo-octane molecule conformations}\n\nThe 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}}.\n\nThe 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.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=2in]{Cyclooctane-boat-chair-3D-balls.png}\n   \t\\end{center}\n\t\\caption{The cyclo-octane molecule consists of a ring of 8 carbon atoms (black), each bonded to a pair of hydrogen atoms (white).}\n  \t\\label{fig:cyclo}\n\\end{figure}\n\n\\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.\n\nMake 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.\n\n\\begin{quote} \\begin{verbatim}\n>> load pointsCycloOctane.mat\n>> size(pointsCycloOctane)\nans = 6040    24                         % 6040 points in dimension 24\n\\end{verbatim} \\end{quote}\n\nMatrix \\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}$.\n\nWe pick 100 sequential maxmin landmark points, and we build the lazy witness stream with parameter $\\nu = 1$. \n\n\\begin{quote} \\begin{verbatim}\n>> max_dimension = 3;\n>> num_landmark_points = 100;\n>> max_filtration_value = 0.5;\n>> nu = 1;\n>> num_divisions = 1000;\n\n>> landmark_selector = api.Plex4.createMaxMinSelector(pointsCycloOctane, ...\nnum_landmark_points);\n>> R = landmark_selector.getMaxDistanceFromPointsToLandmarks() \nR = 0.8046\n>> stream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), ...\nlandmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\n>> stream.finalizeStream()\n>> num_simplices = stream.getSize()\nnum_simplices = 8025                         \n\n>> persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n>> intervals = persistence.computeIntervals(stream);\n\n>> options.filename = 'lazyCycloOctane';\n>> options.max_filtration_value = max_filtration_value;\n>> options.max_dimension = max_dimension - 1;\n>> plot_barcodes(intervals, options);\n\\end{verbatim} \\end{quote}\n\nThe file \\texttt{lazyCycloOctane.png} is saved to your current directory.\n\n\\begin{figure}[htp]\n\t\\begin{center}\n    \t\\includegraphics[width=6in]{lazyCycloOctane.png}\n   \t\\end{center}\n\t\\caption{Betti intervals for the lazy witness complex built from $X(300,30)$}\n  \t\\label{fig:rangeBetti}\n\\end{figure}\n\\FloatBarrier\n\nThe 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.\n\n\n\n\\section{Remarks} \n\n\n\\subsection{Java heap size}\\label{SS:java-heap-size}\nDepending 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.\n\nThe following command returns your maximum heap size in bytes.\n\\begin{quote} \\texttt{>> java.lang.Runtime.getRuntime.maxMemory\\\\\nans = 130875392\n} \\end{quote}\nMy 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/}.\n\n\n\\subsection{Matlab functions with Javaplex commands}\\label{SS:matlabFunctions}\nWriting 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.\n\n{\\em Euler characteristic example.}\nThe 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}}. \n\nFirst we create a 6-dimensional sphere. \n\n\\begin{quote} \\begin{verbatim}\n>> dimension = 6;\n>> stream = api.Plex4.createExplicitSimplexStream();\n>> stream.addElement(0:(dimension + 1));\n>> stream.ensureAllFaces();\n>> stream.removeElementIfPresent(0:(dimension + 1));\n>> stream.finalizeStream();\n\\end{verbatim} \\end{quote}\n\nThe 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.\n\n\\begin{quote} \\begin{verbatim}\n>> eulerCharacteristic(stream, dimension)\nThe Euler characteristic is 2 = 8 - 28 + 56 - 70 + 56 - 28 + 8, using the alternating \nsum of cells.\nThe Euler characteristic is 2 = 1 - 0 + 0 - 0 + 0 - 0 + 1, using the alternating sum \nof Betti numbers.\n\\end{verbatim} \\end{quote}\n\n\n\\subsection{Displaying the simplices in a stream}\n\nIt 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}}.\n\n\n\\subsection{Displaying the boundary matrix of a homology computation}\n\nIt 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}}.\n\n\n\\subsection{Computing the bottleneck distance}\n\nIt 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}}.\n\n\n\\subsection{Computing sublevelset persistence}\n\nIt 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}}.\n\n\n%\\subsection{Java heap size}\n%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. \n\n%The following command returns your maximum heap size in bytes.\n%\\begin{quote} \\begin{verbatim} \n%>> java.lang.Runtime.getRuntime.maxMemory\n%ans = 130875392\n%\\end{verbatim} \\end{quote}\n%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.\n\n\n%\\subsection{From Java variables to Matlab variables}\n%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} \n% no\n%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.\n\n%\\begin{quote} \\begin{verbatim} intervalMatrix = interval2mat(intervals);\n%>> bettiVect = betti2vect(Plex.FilterInfinite(intervals)); \n%\\end{verbatim} \\end{quote}\n\n\n\n\\section{Acknowledgements}\n\nWe 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.\n\n\n\n\n\\appendix\n\\appendixpage\n\\addappheadtotoc\n\n\n\n\n\\section{Dense core subsets}\\label{A:core}\n\nA 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. \n\nReal 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. \n\nSee~\\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. \n\nOne 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. \n\nFor 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.\n\n\\begin{quote} \\begin{verbatim}\n>> densities = kDensitySlow(points, k); \n\\end{verbatim} \\end{quote}\n\nInput \\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. \n\nM-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.\n\n\\begin{quote} \\begin{verbatim}\n>> core = coreSubset(points, densities, numPoints); \n\\end{verbatim} \\end{quote}\n\nInputs \\texttt{points} and \\texttt{densities} are as above. Output \\texttt{core} is a $\\texttt{numPoints}\\times n$ matrix representing the \\texttt{numPoints} densest points. \n\n{\\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}}.\n\nThe 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$.\n\\begin{quote} \\begin{verbatim} \n>> p = primes(3571)';\n>> length(p)\nans = 500\n>> densities1 = kDensitySlow(p, 1);\n>> core1 = coreSubset(p, densities1, 10)\ncore1 =\n\n    2\n    3\n    5\n    7\n    11\n    13\n    17\n    19\n    29\n    31\n\\end{verbatim} \\end{quote}\n\nWe get a bunch of twin primes, which makes sense since $k = 1$. Let's repeat with $k = 50$.\n\n\\begin{quote} \\begin{verbatim}\n>> densities50 = kDensitySlow(p, 50);\n>> core50 = coreSubset(p, densities50, 10)\ncore50 =\n\n    113\n    127\n    109\n    131\n    107\n    137\n    139\n    157\n    149\n    151\n\\end{verbatim} \\end{quote}\n \nWith $k = 50$, we expect the densest points to be slightly larger than the 25-th prime, which is 97. \n\n{\\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}. \n\n% What are the differences in timings between fast and slow versions?\n% It seems that k=300 is surprisingly slow with kDensity.m: 1108 seconds. Slower than kDensitySlow.m. Double check?\n\n%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\n\n\n\n\n\\section{Exercise solutions}\\label{A:solutions}\n\nSeveral 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}}.\n\n\\begin{exerciseSol}\nBuild the following simplicial complex in Javaplex.\n\\begin{center}\n\\includegraphics[width=2in]{smallSimplicialComplex.png}\n\\end{center}\nCompute its Betti numbers (i.e.\\ the ranks of its homology groups, or the number of holes it has in each dimension).\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nBuild 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.}\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{figure}[htp]\n  \\begin{center}\n    \\includegraphics[width=2.5in]{torus}\n   \\end{center}\n\\end{figure}\n\\FloatBarrier\n\n\\begin{exerciseSol}\nBuild 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.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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. \n\\end{solution}\n\n\\begin{figure}[htp]\n  \\begin{center}\n    \\includegraphics[width=2.5in]{klein}\n   \\end{center}\n\\end{figure}\n\\FloatBarrier\n\n\\begin{exerciseSol}\nBuild a simplicial complex homeomorphic to the projective plane. Find its Betti numbers over $\\Z/2\\Z$ and $\\Z/3\\Z$ coefficients.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{figure}[htp]\n  \\begin{center}\n    \\includegraphics[width=2.5in]{projPlane}\n   \\end{center}\n\\end{figure}\n\\FloatBarrier\n\n\\begin{exerciseSol}\nWrite 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.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nWrite 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.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nWrite 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. \n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nCompute 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).\n\nPerturb the points with a small amount of noise. Do the barcodes change a lot or only a little?\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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}.\n\\end{solution}\n\n\\begin{exerciseSol}\nCompute 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:\n\n\\begin{verbatim}\n>> point_cloud = examples.PointCloudExamples.getRandomFigure8Points(75);\n\\end{verbatim}\n\nWe 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?\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nIn 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.\n\\end{exerciseSol}\n\n\\begin{solution}\nNo solution included. \n\\end{solution}\n\n\\begin{exerciseSol}\nWrite 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.\n\nDo you ever get homology in dimension above 1?\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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}.\n\\end{solution}\n\n\\begin{exerciseSol}\nFind 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.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nFind 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$.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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. \n\\end{solution}\n\n\\begin{exerciseSol}\nLet $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).\n\nDo you get ever homology above dimension 2?\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nLet $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$.\n\\end{exerciseSol}\n\n\\begin{solution}\n$L$ is the set $\\{(1, 0), (0, 3), (-1, 0)\\}$. \n\\end{solution}\n\n\\begin{exerciseSol}\nLet $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}$.\n\\end{exerciseSol}\n\n\\begin{solution}\nWithout 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. \n\nWe 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\n$$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}).$$\nThis 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}$. \n\\end{solution}\n\n\\begin{exerciseSol}\nLet $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)]$?\n\\end{exerciseSol}\n\n\\begin{solution}\nSince $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.\n\nSince $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.\n\\end{solution}\n\n\\begin{exerciseSol}\nLet $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)]$?\n\\end{exerciseSol}\n\n\\begin{solution}\nThe 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. \n\\end{solution}\n\n\\begin{exerciseSol}\nRepeat the above exercise with $\\nu = 0$ and with $\\nu = 2$.\n\\end{exerciseSol}\n\n\\begin{solution}\nFirst 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. \n\nNext 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. \n\\end{solution}\n\n\\begin{exerciseSol}\nCheck 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)$.\n\\end{exerciseSol}\n\n\\begin{solution}\nThis follows from the definition of the witness stream and the definition of the lazy witness stream for $\\nu = 2$. \n\\end{solution}\n\n\\begin{exerciseSol}\nIn 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. \n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nIn 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.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nIn 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.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\\begin{exerciseSol}\nSample 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.\n\\end{exerciseSol}\n\n\\begin{solution}\nSee 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.\n\\end{solution}\n\n\n\n\\bibliographystyle{abbrvnat}\n\\bibliography{javaplex_tutorial}\n\n\\end{document}\n"
  },
  {
    "path": "reports/javaplex_tutorial/javaplex_tutorial.toc",
    "content": "\\contentsline {section}{\\tocsection {}{1}{Introduction}}{2}{section.1}\n\\contentsline {subsection}{\\tocsubsection {}{1.1}{Javaplex}}{2}{subsection.1.1}\n\\contentsline {subsection}{\\tocsubsection {}{1.2}{License}}{2}{subsection.1.2}\n\\contentsline {subsection}{\\tocsubsection {}{1.3}{Installation for Matlab}}{2}{subsection.1.3}\n\\contentsline {subsection}{\\tocsubsection {}{1.4}{Accompanying files}}{3}{subsection.1.4}\n\\contentsline {section}{\\tocsection {}{2}{Math review}}{3}{section.2}\n\\contentsline {subsection}{\\tocsubsection {}{2.1}{Simplicial complexes}}{3}{subsection.2.1}\n\\contentsline {subsection}{\\tocsubsection {}{2.2}{Homology}}{3}{subsection.2.2}\n\\contentsline {subsection}{\\tocsubsection {}{2.3}{Filtered simplicial complexes}}{3}{subsection.2.3}\n\\contentsline {subsection}{\\tocsubsection {}{2.4}{Persistent homology}}{3}{subsection.2.4}\n\\contentsline {section}{\\tocsection {}{3}{Explicit simplex streams}}{4}{section.3}\n\\contentsline {subsection}{\\tocsubsection {}{3.1}{Computing homology}}{4}{subsection.3.1}\n\\contentsline {subsection}{\\tocsubsection {}{3.2}{Computing persistent homology}}{6}{subsection.3.2}\n\\contentsline {section}{\\tocsection {}{4}{Point cloud data}}{10}{section.4}\n\\contentsline {subsection}{\\tocsubsection {}{4.1}{Euclidean metric spaces}}{10}{subsection.4.1}\n\\contentsline {subsection}{\\tocsubsection {}{4.2}{Explicit metric spaces}}{11}{subsection.4.2}\n\\contentsline {section}{\\tocsection {}{5}{Streams from point cloud data}}{13}{section.5}\n\\contentsline {subsection}{\\tocsubsection {}{5.1}{Vietoris--Rips streams}}{13}{subsection.5.1}\n\\contentsline {subsection}{\\tocsubsection {}{5.2}{Landmark selection}}{17}{subsection.5.2}\n\\contentsline {subsection}{\\tocsubsection {}{5.3}{Witness streams}}{19}{subsection.5.3}\n\\contentsline {subsection}{\\tocsubsection {}{5.4}{Lazy witness streams}}{21}{subsection.5.4}\n\\contentsline {section}{\\tocsection {}{6}{Examples with real data}}{23}{section.6}\n\\contentsline {subsection}{\\tocsubsection {}{6.1}{Range image patches}}{23}{subsection.6.1}\n\\contentsline {subsection}{\\tocsubsection {}{6.2}{Optical image patches}}{26}{subsection.6.2}\n\\contentsline {subsection}{\\tocsubsection {}{6.3}{Cyclo-octane molecule conformations}}{31}{subsection.6.3}\n\\contentsline {section}{\\tocsection {}{7}{Remarks}}{33}{section.7}\n\\contentsline {subsection}{\\tocsubsection {}{7.1}{Java heap size}}{33}{subsection.7.1}\n\\contentsline {subsection}{\\tocsubsection {}{7.2}{Matlab functions with Javaplex commands}}{34}{subsection.7.2}\n\\contentsline {subsection}{\\tocsubsection {}{7.3}{Displaying the simplices in a stream}}{34}{subsection.7.3}\n\\contentsline {subsection}{\\tocsubsection {}{7.4}{Displaying the boundary matrix of a homology computation}}{34}{subsection.7.4}\n\\contentsline {subsection}{\\tocsubsection {}{7.5}{Computing the bottleneck distance}}{34}{subsection.7.5}\n\\contentsline {section}{\\tocsection {}{8}{Acknowledgements}}{34}{section.8}\n\\contentsline {section}{Appendices}{34}{section*.2}\n\\contentsline {section}{\\tocsection {Appendix}{A}{Dense core subsets}}{34}{appendix.A}\n\\contentsline {section}{\\tocsection {Appendix}{B}{Exercise solutions}}{36}{appendix.B}\n\\contentsline {section}{\\tocsection {Appendix}{}{References}}{41}{section*.3}\n"
  },
  {
    "path": "src/bsh/desktop.bsh",
    "content": "/**\n * Start the BeanShell GUI desktop in a JFrame.  A starter workspace is created\n * and added to the desktop. \n *\n * @method void desktop()\n *\n * @author Pat Niemeyer\n * @author Daniel Leuck\n * @author Harlan Sexton (Plex revision)\n */\n \nimport javax.swing.*;\nimport javax.swing.border.*;\nimport bsh.util.JConsole;\nimport bsh.util.Util;\nimport bsh.Interpreter;\nimport java.awt.Component;\nimport bsh.Capabilities;\n\ndesktop() \n{\n\t\t\n\t// need a way to set things to void again\n\tif ( bsh.system.desktop != void ) {\n\t\tprint(\"There is\talready\ta desktop running...\");\n\t\treturn;\n\t} else\n\t\tbsh.system.desktop = this;   // race condition (hah!)\n\n\tbsh.system.icons=object();\n\t\n\tbsh.system.icons.bean= new ImageIcon();\n  // new ImageIcon(getResource(\"/bsh/util/lib/icon.gif\"));\n\tbsh.system.icons.workspace=\n\t\tnew ImageIcon(getResource(\"/bsh/util/lib/workspace.gif\"));\t\n\tbsh.system.icons.script=\n\t\tnew ImageIcon(getResource(\"/bsh/util/lib/script.gif\"));\n\tbsh.system.icons.eye= new ImageIcon();\n  // new ImageIcon(getResource(\"/bsh/util/lib/eye.jpg\"));\t\t\n\n\t// Disallowed by applet security \n\ttry {\n\t\tbsh.system.fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().\n\t\t\tgetAvailableFontFamilyNames();\n\t} catch ( SecurityException se ) { }\n\n\tJPanel stage=new JPanel(new BorderLayout());\n\tJPanel taskBar=new JPanel(new FlowLayout(FlowLayout.LEFT, 1, 1));\n\n\t// For some insane reason, access to the JPanel background color object \n\t// is protected on the Mac\n\tborderColor = taskBar.background;\n\ttry {\n\t\tborderColor = taskBar.background.darker();\n\t} catch ( SecurityException e ) { }\n\ttaskBar.setBorder( new MatteBorder(1,0,0,0, borderColor) );\n\n\tButtonGroup taskBarButtonGroup = new ButtonGroup();\n\t\n\t// Ignore unhandled method invocations from listeners.\n\tinvoke( method, args ) { }\n\n\tmakeInternalFrame( String name ) \n\t{\n\t\t// Closable by default\n\t\tthis.frame = new JInternalFrame( name, true, true, true, true );\n\t\tframe.frameIcon=bsh.system.icons.bean;\n\t\tframe.visible=true;\n\t\treturn frame;\n\t}\n\n\tthis.frameMap=new Hashtable();\n\ttaskBarButtonListener() {\n\t\tactionPerformed(ae) {\n\t\t\tthis.iframe=frameMap.get(ae.source);\n\t\t\tif(iframe.icon)\n\t\t\t\tiframe.icon=false;\n\t\t\tif(iframe!=null && !iframe.selected)\n\t\t\t\tiframe.selected=true;\n\t\t}\n\t\t\n\t\treturn this;\n\t}\n\tthis.taskBarButtonListener=taskBarButtonListener();\n\t\n\taddInternalFrame( frame ) \n\t{\n\t\tiframeListener=new InternalFrameListener() {\n\t\t\t\n\t\t\tinternalFrameClosing(ife) {\n\t\t\t\tfor(e:new Hashtable(frameMap).entrySet()) {\n\t\t\t\t\tif(e.value.equals(ife.source)) {\n\t\t\t\t\t\ttaskBar.remove(e.key);\n\t\t\t\t\t\ttaskBarButtonGroup.remove(e.key);\n\t\t\t\t\t\tframeMap.remove(e.key);\n\t\t\t\t\t\ttaskBar.validate();\n\t\t\t\t\t\ttaskBar.repaint();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tinternalFrameActivated(ife) {\n\t\t\t\tfor(e:frameMap.entrySet()) if(e.value.equals(ife.source)) {\n\t\t\t\t\tif(!e.key.selected) e.key.selected=true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tinternalFrameDeactivated(ife) {}\n\t\t\tinternalFrameClosed(ife) {}\n\t\t\tinternalFrameOpened(ife) {}\n\t\t\tinternalFrameIconified(ife) {}\n\t\t\tinternalFrameDeiconified(ife) {}\n\t\t};\n\t\t\n\t\tbsh.system.desktop.pane.add( frame\t);\n\t\tframe.addInternalFrameListener(iframeListener);\n\t\tJToggleButton button = new JToggleButton(frame.title, frame.frameIcon);\n\t\ttaskBarButtonGroup.add(button);\n\n\t\t// For some insane reason access to some of the color objects is \n\t\t// protected on the Mac\n\t\ttry {\n\t\tbutton.border=\n\t\t\tnew CompoundBorder((Border)thinBorder(), new EmptyBorder(2,2,2,3));\n\t\t} catch ( SecurityException e ) { }\n\n\t\tbutton.addActionListener(taskBarButtonListener);\n\t\ttaskBar.add(button);\n\t\ttaskBar.validate();\n\t\t\n\t\tframeMap.put(button,frame);\n\t}\n\n\tthis.windowCount=0;\n\n\tmousePressed( e\t) {\n\t\tpopup.show( pane, e.getX(), e.getY() );\n\t}\n\n\tshutdown() {\n\t\t/*\n\t\tret = JOptionPane.showInternalConfirmDialog( pane,\n\t\t\t\"This workspace\thas not\tbeen saved. Do you really want to exit?\" );\n\t\tif ( ret == JOptionPane.YES_OPTION )\n\t\t\t\texit();\n\t\t*/\n\t\tframe.dispose();\n\t\texit();\n\t}\n\n\tactionPerformed( e ) \n\t{\n\t\tthis.com = e.getActionCommand();\n\t\tif ( com.equals(\"New Plex Workspace\") )\n\t\t\tmakeWorkspace( \"\"+ super.windowCount++);\n\t\tif ( com.equals(\"New Class Browser\") )\n\t\t\tclassBrowser();\n\t\telse if\t( com.equals(\"Save Workspace\") )\n\t\t\tJOptionPane.showInternalMessageDialog( pane, \"Unimplemented\" );\n\t\telse if\t( com.equals(\"Exit\") )\n\t\t\tshutdown();\n\t}\n\n\tthis.pane=new JDesktopPane();\n\n\tthis.popup=new JPopupMenu(\"Root Menu\");\n\tthis.mi=new JMenuItem(\"New Plex Workspace\");\n\tmi.addActionListener(this);\n\tpopup.add( mi );\n\tmi=new JMenuItem(\"New Class Browser\");\n\tmi.addActionListener(this);\n\tpopup.add( mi );\n\tmi=new JMenuItem(\"Save Workspace\");\n\tmi.addActionListener(this);\n\tpopup.add( mi );\n\tmi=new JMenuItem(\"Exit\");\n\tmi.addActionListener(this);\n\tpopup.add( mi );\n\n\tpane.addMouseListener( this );\n\n\tthis.frame=new JFrame(\"Plex Top Level\");\n\t\n\tstage.add(pane);\n\tstage.add(taskBar, BorderLayout.SOUTH);\n\t\n\tframe.getContentPane().add(stage);\n\n\twindowClosing( e ) {\n\t\tbsh.system.desktop = null;\n\t\tshutdown();\n\t}\n\n\tframe.iconImage=bsh.system.icons.bean.image;\n\tframe.addWindowListener( this );\n\n\t/*\n\t\tIf available, add a listener for classpath mapping\n\t\tI'm planning to implement a GUI progress indicator here\n\n\tif ( Capabilities.canGenerateInterfaces() ) \n\t{\n\t\timport bsh.classpath.BshClassPath;\n\t\tclassFeedbackListener = new BshClassPath.MappingFeedback() \n\t\t{\n\t\t\tstartClassMapping() { }\n\t\t\tclassMapping( msg ) { }\n\t\t\terrorWhileMapping( msg ) { }\n\t\t\tendClassMapping() { }\n\t\t};\n\t\tBshClassPath.addMappingFeedback( classFeedbackListener );\n\t}\n\t*/\n\n\t// start one terminal\n\tworkSpace=makeWorkspace( \"\"+windowCount++\t);\n\n\tframe.setSize(800,600);\n\tframe.show();\n\t\n  // Util.endSplashScreen();\n\t\n\tframe.toFront();\n\tworkSpace.frame.selected=true;\n}\n"
  },
  {
    "path": "src/bsh/getBshPrompt.bsh",
    "content": "/**\n\tGet the value to display for the bsh interactive prompt.\n\tThis command checks for the variable bsh.prompt and uses it if set.\n\telse returns \"plex> \"\n\t<p/>\n\tRemember that you can override bsh commands simply by defining the method\n\tin your namespace. e.g. the following method displays the current working\n\tdirectory in your prompt:\n\t<p/>\n\t<pre>\n\tString getBshPrompt() {\n\t\treturn bsh.cwd + \" % \";\n\t}\n\t</pre>\n  @author Harlan Sexton (Plex Revision)\n*/\n\nString getBshPrompt() \n{\n\tif ( bsh != void && bsh.prompt != void )\n\t\treturn bsh.prompt;\n\telse\n\t\treturn \"plex> \";\n}\n\n"
  },
  {
    "path": "src/bsh/makeListener.bsh",
    "content": "/**\n * Creates an interpreter loop and returns it.\n *\n * @return this (the workspace scripted object for allowing access to the \n *          frame, interpreter, etc.)\n *\n * @author Pat Niemeyer\n * @author Daniel Leuck (bug fixes)\n * @author Harlan Sexton (modified for Plex use)\n */\n\nimport bsh.Interpreter;\nimport bsh.PlexInterpreter;\nimport bsh.BshClassManager;\nimport bsh.ClassPathException;\nimport bsh.util.JConsole;\nimport bsh.util.NameCompletionTable;\n\nmakeListener( String name ) \n{\n\tthis.console = null;\n\tthis.name=\"Plex Listener: \"+name;\n\n\tbsh.PlexInterpreter interp = new bsh.PlexInterpreter( name );\n\n  this.interpreter = interp;\n\n\t// provide name completion for console, name source is global namespace\n\t// move this into JConsole?\n\n\t// Access to read classpath is protected \n\ttry {\n    this.nct = new NameCompletionTable();\n    nct.add( interpreter.getNameSpace() );\n    try {\n      this.bcm = this.caller.namespace.getClassManager();\n      if ( bcm != null ) {\n        classNamesSource = bcm.getClassPath();\n        nct.add( classNamesSource );\n      }\n    } catch ( ClassPathException e ) {\n      error(\"classpath exception in name compl:\"+e);\n    }\n    // end setup name completion\n\t} catch ( SecurityException e ) { }\n\n  // turn on printing by default -- Plex change\n  interpreter.setShowResults(true);\n  // import plex commands -- Plex change\n  interpreter.eval(\"import edu.stanford.math.plex.*;\");\n\n\tthis.thread = new Thread( interpreter );\n\tthread.start();\n\n\tthis.haveSysIO=false;\n\tthis.sysIn = System.in;\n\tthis.sysOut = System.out;\n\tthis.sysErr = System.err;\n\n\treturn this;\n}\n\n"
  },
  {
    "path": "src/bsh/makeWorkspace.bsh",
    "content": "/**\n * Creates a JConsole in a JInternalFrame and adds it to the desktop \n *\n * @return this (the workspace scripted object for allowing access to the \n *          frame, interpreter, etc.)\n *\n * @author Pat Niemeyer\n * @author Daniel Leuck (bug fixes)\n * @author Harlan Sexton (modified for Plex use)\n */\n\nimport javax.swing.*;\nimport bsh.Interpreter;\nimport bsh.PlexInterpreter;\nimport bsh.BshClassManager;\nimport bsh.ClassPathException;\nimport bsh.util.JConsole;\nimport bsh.util.NameCompletionTable;\n\nmakeWorkspace( String name ) \n{\n\tif ( bsh.system.desktop == void ) {\n\t\tprint(\"No desktop...\");\n\t\treturn;\n\t}\n\n\tthis.console = new JConsole();\n\tthis.name=\"Plex Workspace: \"+name;\n\n\tbsh.PlexInterpreter interp = new bsh.PlexInterpreter( console , name );\n\n  this.interpreter = interp;\n\n\t// provide name completion for console, name source is global namespace\n\t// move this into JConsole?\n\n\t// Access to read classpath is protected \n\ttry {\n    this.nct = new NameCompletionTable();\n    nct.add( interpreter.getNameSpace() );\n    try {\n      this.bcm = this.caller.namespace.getClassManager();\n      if ( bcm != null ) {\n        classNamesSource = bcm.getClassPath();\n        nct.add( classNamesSource );\n      }\n    } catch ( ClassPathException e ) {\n      error(\"classpath exception in name compl:\"+e);\n    }\n    console.setNameCompletion( nct );\n    // end setup name completion\n\t} catch ( SecurityException e ) { }\n\n\t// for convenience and backwards compatability\n\tinterpreter.set( \"bsh.desktop\",  bsh.system.desktop );\n\n  // turn on printing by default -- Plex change\n  interpreter.setShowResults(true);\n  // import plex commands -- Plex change\n  interpreter.eval(\"import edu.stanford.math.plex.*;\");\n\n\tthis.frame = bsh.system.desktop.makeInternalFrame( name );\n\tframe.frameIcon=bsh.system.icons.workspace;\n\t\n\t/*\n\t\tNotes: Careful not to print anything before returning sys io...\n\t\tconsole is now gone.\n\t*/\n\tinternalFrameClosing( e ) {\n\n\t}\n\tinternalFrameActivated(ife) {}\n\tinternalFrameDeactivated(ife) {}\n\tinternalFrameClosed(ife) {}\n\tinternalFrameOpened(ife) {}\n\tinternalFrameIconified(ife) {}\n\tinternalFrameDeiconified(ife) {}\t\n\t\n\tframe.addInternalFrameListener(this);\n\n\tactionPerformed( e ) \n\t{\n\t\tthis.com = e.getActionCommand();\n\t\tif ( com.equals(\"Workspace Editor\") )\n\t\t\tworkspaceEditor( interpreter, name );\n\t\telse if ( com.equals(\"Enable logging\") )\n\t\t\tenableLogging();\n\t\telse if ( com.equals(\"Disable logging\") )\n\t\t\tdisableLogging();\n\t\telse if ( com.equals(\"Logging status\") )\n\t\t\tlogStatus();\n\t\telse if\t( com.equals(\"Close\") )\t{\n\t\t\tframe.setClosed(true);\n\t\t}\n\t}\n\n\tthis.menubar = new JMenuBar();\n\tthis.menu=new JMenu(\"File\");\n\tthis.mi=new JMenuItem(\"Workspace Editor\");\n\tmi.addActionListener(this);\n\tmenu.add(mi);\n  // Plex changes -- add menu items for input logging\n\tmi=new JMenuItem(\"Enable logging\");\n\tmi.addActionListener(this);\n\tmenu.add(mi);\n\tmi=new JMenuItem(\"Disable logging\");\n\tmi.addActionListener(this);\n\tmenu.add(mi);\n\tmi=new JMenuItem(\"Logging status\");\n\tmi.addActionListener(this);\n\tmenu.add(mi);\n\tmi=new JMenuItem(\"Close\");\n\tmi.addActionListener(this);\n\tmenu.add(mi);\n\tmenubar.add(menu);\n\n\tmenu = fontMenu(console);\n\tmenubar.add(menu);\n\n\tframe.setMenuBar(menubar);\n\n\tframe.getContentPane().add(\"Center\", console);\n\t//frame.pack();\n\tthis.thread = new Thread( interpreter );\n\tthread.start();\n\n\tframe.setBounds(5,5,600,300);\n\t// cascade windows?\n\t//off=bsh.system.desktop.windowCount*10;\n\t//frame.setLocation( off, off );\n\t//frame.validate();\n\tbsh.system.desktop.addInternalFrame( frame\t);\n\tframe.toFront();\n\tframe.setSelected(true);\n\n\tthis.haveSysIO=false;\n\tthis.sysIn = System.in;\n\tthis.sysOut = System.out;\n\tthis.sysErr = System.err;\n\n  // Plex changes -- add menu items for input logging\n  enableLogging() {\n    interpreter.enableLogging();\n\t}\n\n  // Plex changes -- add menu items for input logging\n  disableLogging() {\n    interpreter.disableLogging();\n\t}\n\n  // Plex changes -- add menu items for input logging\n  logStatus() {\n    interpreter.print(\"\\n\" + interpreter.logStatus() + \"\\n\" + getBshPrompt());\n\t}\n\n\treturn this;\n}\n\n"
  },
  {
    "path": "src/bsh/printBanner.bsh",
    "content": "/**\n\tPrint the BeanShell banner (version and author line) - GUI or non GUI.\n\n\t@author Daniel Leuck\n\t@author Harlan Sexton (Plex revision)\n*/\n\nimport javax.swing.ImageIcon;\nimport java.awt.*;\nimport bsh.Interpreter;\nimport bsh.Capabilities;\nimport bsh.util.JConsole;\n\n/*\n\tNote: any errors thrown in here will be caught by interpreter and\n\tignored... printing the default message.\n*/\nprintBanner() \n{\n\tif ((bsh.console != void) && \n      Capabilities.haveSwing() && \n      (bsh.console instanceof JConsole)) {\n\n    this.jconsole = bsh.console;\n\n    jconsole.println(new ImageIcon());\n    jconsole.print( \" Plex 3.0 (comptop.stanford.edu) \\n \",\n                    new Font(\"SansSerif\", Font.BOLD, 12), \n                    new Color(100,100,100) );\n    jconsole.println();\n\t} else\n\t\tprint( \" Plex 3.0 (comptop.stanford.edu) \\n \");\n\n  // turn on printing by default -- Plex change\n  this.interpreter.setShowResults(true);\n}\n"
  },
  {
    "path": "src/cpp/Makefile",
    "content": "build:\n\tR CMD build --configure-args='--with-jplex=/afs/ir.stanford.edu/users/c/h/chakj/plex3/jplex.jar' PLEX3\ncheck:\n\tR CMD check PLEX3\ninstall:\n\tR CMD INSTALL -l ~/Rbin/ --configure-args='--with-jplex=/afs/ir.stanford.edu/users/c/h/chakj/plex3/jplex.jar' PLEX3\n"
  },
  {
    "path": "src/cpp/PLEX3/DESCRIPTION",
    "content": "Package: PLEX3\nType: Package\nTitle: R Interface for the PLEX3 Library\nVersion: 2.4.0 \nDate: 2008-02-05\nAuthor: John Chakerian\nMaintainer: John Chakerian <chakj@stanford.edu>\nDescription: Provides an interface to the PLEX3 Java library. \nLicense: BSD \nURL: http://math.stanford.edu/\n"
  },
  {
    "path": "src/cpp/PLEX3/R/plex.R",
    "content": "\n`as.internal.distance.matrix` <- function(dmatrix)\n{\n\tpdata.handle = .Call(\"make_internal_distance_array\", as.matrix(dmatrix), as.integer(length(as.matrix(dmatrix))))\n\tattr(pdata.handle, 'class') <- 'pointdata'\n\n\tpdata.handle\n}\n\n`random.euclidean.array.data` <- function(count, dim)\n{\n\tpdata.handle = .Call(\"random_euclidean_array_data\", as.integer(count), as.integer(dim))\n\tattr(pdata.handle, 'class') <- 'pointdata'\n\n\tpdata.handle\n}\n\n`ensure.square` <- function(mat)\n{\n\tif(\t(is.null(mat) == FALSE) \n\t   && (is.null(dim(mat)) == FALSE) \n\t   && (dim(mat)[1] == dim(mat)[2]))\n\t\tTRUE\n\telse\n\t\tFALSE\n}\n\n`open.explicit.stream` <- function(ex.stream) \n{\n\t.Call(\"open_ex_stream\", ex.stream)\n\teval(eval(substitute(expression(attr(ex.stream,'is.open') <<- TRUE))))\n\n\tinvisible()\n}\n\n`close.explicit.stream` <- function(ex.stream)\n{\n\tif(is.null(.Call(\"close_ex_stream\", ex.stream)) == FALSE)\n\t\tstop(\"Stream not in a valid state to be closed.\")\n\t\n\teval(eval(substitute(expression(attr(ex.stream,'is.open') <<- FALSE))))\n\n\tinvisible()\n}\n\n`add.simplex` <- function(ex.stream, vertices, parameter)\n{\n\tif(attr(ex.stream, 'is.open') == FALSE)\n\t\tstop(\"You must open the stream before adding or removing simplices.\")\n\n\t.Call(\"add_simplex\", ex.stream, as.integer(vertices), as.double(parameter))\n\n\tinvisible()\n}\n\n`remove.simplex` <- function(ex.stream, vertices)\n{\n\tif(attr(ex.stream, 'is.open') == FALSE)\n\t\tstop(\"You must open the stream before adding or removing simplices.\")\n\n\t.Call(\"remove_simplex\", ex.stream, as.integer(vertices))\n\n\tinvisible()\n}\n\n`explicit.stream` <- function(x, ...) UseMethod(\"explicit.stream\")\n\n`explicit.stream.pointdata` <- function(dmatrix)\n{\n\tstop(\"Simplicies must be added explicitly to an explicit stream.\")\n}\n\n`explicit.stream.default` <- function()\n{\n\texstream = .Call(\"create_explicit_stream\")\n\tattr(exstream, 'class') <- 'explicit.stream'\n\tattr(exstream, 'is.open') <- FALSE\n\n\texstream\n}\n\n\n`rips.stream` <- function(x, ...) UseMethod(\"rips.stream\")\n\n`rips.stream.pointdata` <- function(pdata.handle, delta, max.edge, max.dim)\n{\n\trstream = .Call(\"create_rips_stream\", pdata.handle, as.double(delta), as.double(max.edge), as.integer(max.dim))\n\tattr(rstream, 'class') <- 'rips.stream'\n\n\trstream\n}\n\n`rips.stream.default` <- function(dmatrix, delta, max.edge, max.dim)\n{\n\t# ensure the matrix is square and has values\n\tif(ensure.square(dmatrix))\n\t{\n\t\ti <- as.internal.distance.matrix(dmatrix)\n\t\trips.stream(i, delta, max.edge, max.dim)\n\t}\n\telse\n\t{\n\t\tstop(\"This function cannot operate on non-square or null matrices.\")\n\t}\n}\n\n`make.random.landmarks` <- function(x, ...) UseMethod(\"make.random.landmarks\")\n\n`make.random.landmarks.pointdata` <- function(pdata.handle, count)\n{\n\t.Call(\"make_random_landmarks\", pdata.handle, as.integer(count))\n}\n\n`make.random.landmarks.default` <- function(dmatrix, count)\n{\n\t# ensure the matrix is square and has values\n\tif(ensure.square(dmatrix))\n\t{\n\t\ti <- as.internal.distance.matrix(dmatrix)\n\t\tmake.random.landmarks(i,count)\n\t}\n\telse\n\t{\n\t\tstop(\"This function cannot operate on non-square or null matrices.\")\n\t}\n}\n\n`estimate.rmax` <- function(x, ...) UseMethod(\"estimate.rmax\")\n\n`estimate.rmax.pointdata` <- function(pdata.handle, landmarks)\n{\n\t.Call(\"estimate_r_max\", pdata.handle, as.integer(landmarks))\n}\n\n`estimate.rmax.default` <- function(dmatrix, landmarks)\n{\n\t# ensure the matrix is square and has values\n\tif(ensure.square(dmatrix))\n\t{\n\t\ti <- as.internal.distance.matrix(dmatrix)\n\t\testimate.rmax(i,landmarks)\n\t}\n\telse\n\t{\n\t\tstop(\"This function cannot operate on non-square or null matrices.\")\n\t}\n}\n\n`lazy.witness.stream` <- function(x, ...) UseMethod(\"lazy.witness.stream\")\n\n`lazy.witness.stream.pointdata` <- function(pdata.handle, granularity, max.dim, rmax, nu, landmarks)\n{\n\tlwstream = .Call(\"create_lw_stream_from_handle\", pdata.handle, \n\t\t\tas.double(granularity), as.integer(max.dim), as.double(rmax), \n\t\t\tas.integer(nu), as.vector(landmarks))\n\tattr(lwstream, 'class') <- 'lazy.witness.stream'\n\n\tlwstream\n}\n\n`lazy.witness.stream.default` <- function(dmatrix, granularity, max.dim, rmax, nu, landmarks)\n{\n\t# ensure the matrix is square and has values\n\tif(ensure.square(dmatrix))\n\t{\n\t\ti <- as.internal.distance.matrix(dmatrix)\n\t\tlazy.witness.stream(i,granularity, max.dim, rmax, nu, landmarks)\n\t}\n\telse\n\t{\n\t\tstop(\"This function cannot operate on non-square or null matrices.\")\n\t}\n}\n\n`persistence.intervals` <- function(x, ...) UseMethod(\"persistence.intervals\")\n\n`persistence.intervals.explicit.stream` <- function(exstream)\n{\n\tclose(exstream)\n\tpersistence.intervals.from.stream(exstream)\n}\n\n`persistence.intervals.rips.stream` <- function(exstream)\n{\n\tpersistence.intervals.from.stream(exstream)\n}\n\n`persistence.intervals.lazy.witness.stream` <- function(exstream)\n{\n\tpersistence.intervals.from.stream(exstream)\n}\n\n`length.persistence.intervals` <- function(intervals)\n{\n\tlength(as.vector(intervals)) / 3\n}\n\n# this function should not be called directly\n`persistence.intervals.from.stream` <- function(exstream)\n{\n\tintervals = .Call(\"get_intervals_from_stream\", exstream)\n\tattr(intervals, 'dim') <- c(3,length(intervals)/3)\n\tattr(intervals, 'class') <- 'persistence.intervals'\n\tintervals = t(intervals)\n\t\n\tintervals\n}\n\n`filter.infinite` <- function(intervals)\n{\n\t.Call(\"filter_infinite\", as.double(t(intervals)), as.integer(length(intervals)))\n}\n"
  },
  {
    "path": "src/cpp/PLEX3/R/zzz.R",
    "content": "`.First.lib` <-\nfunction(libname,pkgname)\n{\n\tlibrary.dynam(\"PLEX3\", pkgname, libname)\n\t.Call(\"init_java\", jplex.path)\n}\n\n"
  },
  {
    "path": "src/cpp/PLEX3/autom4te.cache/output.0",
    "content": "@%:@! /bin/sh\n@%:@ Guess values for system-dependent variables and create Makefiles.\n@%:@ Generated by GNU Autoconf 2.61.\n@%:@ \n@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,\n@%:@ 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.\n@%:@ This configure script is free software; the Free Software Foundation\n@%:@ gives unlimited permission to copy, distribute and modify it.\n## --------------------- ##\n## M4sh Initialization.  ##\n## --------------------- ##\n\n# Be more Bourne compatible\nDUALCASE=1; export DUALCASE # for MKS sh\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\n  setopt NO_GLOB_SUBST\nelse\n  case `(set -o) 2>/dev/null` in\n  *posix*) set -o posix ;;\nesac\n\nfi\n\n\n\n\n# PATH needs CR\n# Avoid depending upon Character Ranges.\nas_cr_letters='abcdefghijklmnopqrstuvwxyz'\nas_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nas_cr_Letters=$as_cr_letters$as_cr_LETTERS\nas_cr_digits='0123456789'\nas_cr_alnum=$as_cr_Letters$as_cr_digits\n\n# The user is always right.\nif test \"${PATH_SEPARATOR+set}\" != set; then\n  echo \"#! /bin/sh\" >conf$$.sh\n  echo  \"exit 0\"   >>conf$$.sh\n  chmod +x conf$$.sh\n  if (PATH=\"/nonexistent;.\"; conf$$.sh) >/dev/null 2>&1; then\n    PATH_SEPARATOR=';'\n  else\n    PATH_SEPARATOR=:\n  fi\n  rm -f conf$$.sh\nfi\n\n# Support unset when possible.\nif ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then\n  as_unset=unset\nelse\n  as_unset=false\nfi\n\n\n# IFS\n# We need space, tab and new line, in precisely that order.  Quoting is\n# there to prevent editors from complaining about space-tab.\n# (If _AS_PATH_WALK were called with IFS unset, it would disable word\n# splitting by setting IFS to empty value.)\nas_nl='\n'\nIFS=\" \"\"\t$as_nl\"\n\n# Find who we are.  Look in the path if we contain no directory separator.\ncase $0 in\n  *[\\\\/]* ) as_myself=$0 ;;\n  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  test -r \"$as_dir/$0\" && as_myself=$as_dir/$0 && break\ndone\nIFS=$as_save_IFS\n\n     ;;\nesac\n# We did not find ourselves, most probably we were run as `sh COMMAND'\n# in which case we are not to be found in the path.\nif test \"x$as_myself\" = x; then\n  as_myself=$0\nfi\nif test ! -f \"$as_myself\"; then\n  echo \"$as_myself: error: cannot find myself; rerun with an absolute file name\" >&2\n  { (exit 1); exit 1; }\nfi\n\n# Work around bugs in pre-3.0 UWIN ksh.\nfor as_var in ENV MAIL MAILPATH\ndo ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\ndone\nPS1='$ '\nPS2='> '\nPS4='+ '\n\n# NLS nuisances.\nfor as_var in \\\n  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \\\n  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \\\n  LC_TELEPHONE LC_TIME\ndo\n  if (set +x; test -z \"`(eval $as_var=C; export $as_var) 2>&1`\"); then\n    eval $as_var=C; export $as_var\n  else\n    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\n  fi\ndone\n\n# Required to use basename.\nif expr a : '\\(a\\)' >/dev/null 2>&1 &&\n   test \"X`expr 00001 : '.*\\(...\\)'`\" = X001; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nif (basename -- /) >/dev/null 2>&1 && test \"X`basename -- / 2>&1`\" = \"X/\"; then\n  as_basename=basename\nelse\n  as_basename=false\nfi\n\n\n# Name of the executable.\nas_me=`$as_basename -- \"$0\" ||\n$as_expr X/\"$0\" : '.*/\\([^/][^/]*\\)/*$' \\| \\\n\t X\"$0\" : 'X\\(//\\)$' \\| \\\n\t X\"$0\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X/\"$0\" |\n    sed '/^.*\\/\\([^/][^/]*\\)\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\/\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\/\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n\n# CDPATH.\n$as_unset CDPATH\n\n\nif test \"x$CONFIG_SHELL\" = x; then\n  if (eval \":\") 2>/dev/null; then\n  as_have_required=yes\nelse\n  as_have_required=no\nfi\n\n  if test $as_have_required = yes && \t (eval \":\n(as_func_return () {\n  (exit \\$1)\n}\nas_func_success () {\n  as_func_return 0\n}\nas_func_failure () {\n  as_func_return 1\n}\nas_func_ret_success () {\n  return 0\n}\nas_func_ret_failure () {\n  return 1\n}\n\nexitcode=0\nif as_func_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_success failed.\nfi\n\nif as_func_failure; then\n  exitcode=1\n  echo as_func_failure succeeded.\nfi\n\nif as_func_ret_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_ret_success failed.\nfi\n\nif as_func_ret_failure; then\n  exitcode=1\n  echo as_func_ret_failure succeeded.\nfi\n\nif ( set x; as_func_ret_success y && test x = \\\"\\$1\\\" ); then\n  :\nelse\n  exitcode=1\n  echo positional parameters were not saved.\nfi\n\ntest \\$exitcode = 0) || { (exit 1); exit 1; }\n\n(\n  as_lineno_1=\\$LINENO\n  as_lineno_2=\\$LINENO\n  test \\\"x\\$as_lineno_1\\\" != \\\"x\\$as_lineno_2\\\" &&\n  test \\\"x\\`expr \\$as_lineno_1 + 1\\`\\\" = \\\"x\\$as_lineno_2\\\") || { (exit 1); exit 1; }\n\") 2> /dev/null; then\n  :\nelse\n  as_candidate_shells=\n    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  case $as_dir in\n\t /*)\n\t   for as_base in sh bash ksh sh5; do\n\t     as_candidate_shells=\"$as_candidate_shells $as_dir/$as_base\"\n\t   done;;\n       esac\ndone\nIFS=$as_save_IFS\n\n\n      for as_shell in $as_candidate_shells $SHELL; do\n\t # Try only shells that exist, to save several forks.\n\t if { test -f \"$as_shell\" || test -f \"$as_shell.exe\"; } &&\n\t\t{ (\"$as_shell\") 2> /dev/null <<\\_ASEOF\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\n  setopt NO_GLOB_SUBST\nelse\n  case `(set -o) 2>/dev/null` in\n  *posix*) set -o posix ;;\nesac\n\nfi\n\n\n:\n_ASEOF\n}; then\n  CONFIG_SHELL=$as_shell\n\t       as_have_required=yes\n\t       if { \"$as_shell\" 2> /dev/null <<\\_ASEOF\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\n  setopt NO_GLOB_SUBST\nelse\n  case `(set -o) 2>/dev/null` in\n  *posix*) set -o posix ;;\nesac\n\nfi\n\n\n:\n(as_func_return () {\n  (exit $1)\n}\nas_func_success () {\n  as_func_return 0\n}\nas_func_failure () {\n  as_func_return 1\n}\nas_func_ret_success () {\n  return 0\n}\nas_func_ret_failure () {\n  return 1\n}\n\nexitcode=0\nif as_func_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_success failed.\nfi\n\nif as_func_failure; then\n  exitcode=1\n  echo as_func_failure succeeded.\nfi\n\nif as_func_ret_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_ret_success failed.\nfi\n\nif as_func_ret_failure; then\n  exitcode=1\n  echo as_func_ret_failure succeeded.\nfi\n\nif ( set x; as_func_ret_success y && test x = \"$1\" ); then\n  :\nelse\n  exitcode=1\n  echo positional parameters were not saved.\nfi\n\ntest $exitcode = 0) || { (exit 1); exit 1; }\n\n(\n  as_lineno_1=$LINENO\n  as_lineno_2=$LINENO\n  test \"x$as_lineno_1\" != \"x$as_lineno_2\" &&\n  test \"x`expr $as_lineno_1 + 1`\" = \"x$as_lineno_2\") || { (exit 1); exit 1; }\n\n_ASEOF\n}; then\n  break\nfi\n\nfi\n\n      done\n\n      if test \"x$CONFIG_SHELL\" != x; then\n  for as_var in BASH_ENV ENV\n        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\n        done\n        export CONFIG_SHELL\n        exec \"$CONFIG_SHELL\" \"$as_myself\" ${1+\"$@\"}\nfi\n\n\n    if test $as_have_required = no; then\n  echo This script requires a shell more modern than all the\n      echo shells that I found on your system.  Please install a\n      echo modern shell, or manually run the script under such a\n      echo shell if you do have one.\n      { (exit 1); exit 1; }\nfi\n\n    \nfi\n\nfi\n\n\n\n(eval \"as_func_return () {\n  (exit \\$1)\n}\nas_func_success () {\n  as_func_return 0\n}\nas_func_failure () {\n  as_func_return 1\n}\nas_func_ret_success () {\n  return 0\n}\nas_func_ret_failure () {\n  return 1\n}\n\nexitcode=0\nif as_func_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_success failed.\nfi\n\nif as_func_failure; then\n  exitcode=1\n  echo as_func_failure succeeded.\nfi\n\nif as_func_ret_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_ret_success failed.\nfi\n\nif as_func_ret_failure; then\n  exitcode=1\n  echo as_func_ret_failure succeeded.\nfi\n\nif ( set x; as_func_ret_success y && test x = \\\"\\$1\\\" ); then\n  :\nelse\n  exitcode=1\n  echo positional parameters were not saved.\nfi\n\ntest \\$exitcode = 0\") || {\n  echo No shell found that supports shell functions.\n  echo Please tell autoconf@gnu.org about your system,\n  echo including any error possibly output before this\n  echo message\n}\n\n\n\n  as_lineno_1=$LINENO\n  as_lineno_2=$LINENO\n  test \"x$as_lineno_1\" != \"x$as_lineno_2\" &&\n  test \"x`expr $as_lineno_1 + 1`\" = \"x$as_lineno_2\" || {\n\n  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO\n  # uniformly replaced by the line number.  The first 'sed' inserts a\n  # line-number line after each line using $LINENO; the second 'sed'\n  # does the real work.  The second script uses 'N' to pair each\n  # line-number line with the line containing $LINENO, and appends\n  # trailing '-' during substitution so that $LINENO is not a special\n  # case at line end.\n  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the\n  # scripts with optimization help from Paolo Bonzini.  Blame Lee\n  # E. McMahon (1931-1989) for sed's syntax.  :-)\n  sed -n '\n    p\n    /[$]LINENO/=\n  ' <$as_myself |\n    sed '\n      s/[$]LINENO.*/&-/\n      t lineno\n      b\n      :lineno\n      N\n      :loop\n      s/[$]LINENO\\([^'$as_cr_alnum'_].*\\n\\)\\(.*\\)/\\2\\1\\2/\n      t loop\n      s/-\\n.*//\n    ' >$as_me.lineno &&\n  chmod +x \"$as_me.lineno\" ||\n    { echo \"$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell\" >&2\n   { (exit 1); exit 1; }; }\n\n  # Don't try to exec as it changes $[0], causing all sort of problems\n  # (the dirname of $[0] is not the place where we might find the\n  # original and so on.  Autoconf is especially sensitive to this).\n  . \"./$as_me.lineno\"\n  # Exit status is that of the last command.\n  exit\n}\n\n\nif (as_dir=`dirname -- /` && test \"X$as_dir\" = X/) >/dev/null 2>&1; then\n  as_dirname=dirname\nelse\n  as_dirname=false\nfi\n\nECHO_C= ECHO_N= ECHO_T=\ncase `echo -n x` in\n-n*)\n  case `echo 'x\\c'` in\n  *c*) ECHO_T='\t';;\t# ECHO_T is single tab character.\n  *)   ECHO_C='\\c';;\n  esac;;\n*)\n  ECHO_N='-n';;\nesac\n\nif expr a : '\\(a\\)' >/dev/null 2>&1 &&\n   test \"X`expr 00001 : '.*\\(...\\)'`\" = X001; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nrm -f conf$$ conf$$.exe conf$$.file\nif test -d conf$$.dir; then\n  rm -f conf$$.dir/conf$$.file\nelse\n  rm -f conf$$.dir\n  mkdir conf$$.dir\nfi\necho >conf$$.file\nif ln -s conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s='ln -s'\n  # ... but there are two gotchas:\n  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.\n  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.\n  # In both cases, we have to default to `cp -p'.\n  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||\n    as_ln_s='cp -p'\nelif ln conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s=ln\nelse\n  as_ln_s='cp -p'\nfi\nrm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file\nrmdir conf$$.dir 2>/dev/null\n\nif mkdir -p . 2>/dev/null; then\n  as_mkdir_p=:\nelse\n  test -d ./-p && rmdir ./-p\n  as_mkdir_p=false\nfi\n\nif test -x / >/dev/null 2>&1; then\n  as_test_x='test -x'\nelse\n  if ls -dL / >/dev/null 2>&1; then\n    as_ls_L_option=L\n  else\n    as_ls_L_option=\n  fi\n  as_test_x='\n    eval sh -c '\\''\n      if test -d \"$1\"; then\n        test -d \"$1/.\";\n      else\n\tcase $1 in\n        -*)set \"./$1\";;\n\tesac;\n\tcase `ls -ld'$as_ls_L_option' \"$1\" 2>/dev/null` in\n\t???[sx]*):;;*)false;;esac;fi\n    '\\'' sh\n  '\nfi\nas_executable_p=$as_test_x\n\n# Sed expression to map a string onto a valid CPP name.\nas_tr_cpp=\"eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'\"\n\n# Sed expression to map a string onto a valid variable name.\nas_tr_sh=\"eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'\"\n\n\n\nexec 7<&0 </dev/null 6>&1\n\n# Name of the host.\n# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,\n# so uname gets run too.\nac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`\n\n#\n# Initializations.\n#\nac_default_prefix=/usr/local\nac_clean_files=\nac_config_libobj_dir=.\nLIB@&t@OBJS=\ncross_compiling=no\nsubdirs=\nMFLAGS=\nMAKEFLAGS=\nSHELL=${CONFIG_SHELL-/bin/sh}\n\n# Identity of this package.\nPACKAGE_NAME=\nPACKAGE_TARNAME=\nPACKAGE_VERSION=\nPACKAGE_STRING=\nPACKAGE_BUGREPORT=\n\nac_unique_file=\"src/rbind_jni.cpp\"\n# Factoring default headers for most tests.\nac_includes_default=\"\\\n#include <stdio.h>\n#ifdef HAVE_SYS_TYPES_H\n# include <sys/types.h>\n#endif\n#ifdef HAVE_SYS_STAT_H\n# include <sys/stat.h>\n#endif\n#ifdef STDC_HEADERS\n# include <stdlib.h>\n# include <stddef.h>\n#else\n# ifdef HAVE_STDLIB_H\n#  include <stdlib.h>\n# endif\n#endif\n#ifdef HAVE_STRING_H\n# if !defined STDC_HEADERS && defined HAVE_MEMORY_H\n#  include <memory.h>\n# endif\n# include <string.h>\n#endif\n#ifdef HAVE_STRINGS_H\n# include <strings.h>\n#endif\n#ifdef HAVE_INTTYPES_H\n# include <inttypes.h>\n#endif\n#ifdef HAVE_STDINT_H\n# include <stdint.h>\n#endif\n#ifdef HAVE_UNISTD_H\n# include <unistd.h>\n#endif\"\n\nac_subst_vars='SHELL\nPATH_SEPARATOR\nPACKAGE_NAME\nPACKAGE_TARNAME\nPACKAGE_VERSION\nPACKAGE_STRING\nPACKAGE_BUGREPORT\nexec_prefix\nprefix\nprogram_transform_name\nbindir\nsbindir\nlibexecdir\ndatarootdir\ndatadir\nsysconfdir\nsharedstatedir\nlocalstatedir\nincludedir\noldincludedir\ndocdir\ninfodir\nhtmldir\ndvidir\npdfdir\npsdir\nlibdir\nlocaledir\nmandir\nDEFS\nECHO_C\nECHO_N\nECHO_T\nLIBS\nbuild_alias\nhost_alias\ntarget_alias\nCC\nCFLAGS\nLDFLAGS\nCPPFLAGS\nac_ct_CC\nEXEEXT\nOBJEXT\nCXX\nCXXFLAGS\nac_ct_CXX\nINSTALL_PROGRAM\nINSTALL_SCRIPT\nINSTALL_DATA\nCPP\nGREP\nEGREP\nLIB@&t@OBJS\nPOW_LIB\nbuild\nbuild_cpu\nbuild_vendor\nbuild_os\nhost\nhost_cpu\nhost_vendor\nhost_os\nLTLIBOBJS'\nac_subst_files=''\n      ac_precious_vars='build_alias\nhost_alias\ntarget_alias\nCC\nCFLAGS\nLDFLAGS\nLIBS\nCPPFLAGS\nCXX\nCXXFLAGS\nCCC\nCPP'\n\n\n# Initialize some variables set by options.\nac_init_help=\nac_init_version=false\n# The variables have the same names as the options, with\n# dashes changed to underlines.\ncache_file=/dev/null\nexec_prefix=NONE\nno_create=\nno_recursion=\nprefix=NONE\nprogram_prefix=NONE\nprogram_suffix=NONE\nprogram_transform_name=s,x,x,\nsilent=\nsite=\nsrcdir=\nverbose=\nx_includes=NONE\nx_libraries=NONE\n\n# Installation directory options.\n# These are left unexpanded so users can \"make install exec_prefix=/foo\"\n# and all the variables that are supposed to be based on exec_prefix\n# by default will actually change.\n# Use braces instead of parens because sh, perl, etc. also accept them.\n# (The list follows the same order as the GNU Coding Standards.)\nbindir='${exec_prefix}/bin'\nsbindir='${exec_prefix}/sbin'\nlibexecdir='${exec_prefix}/libexec'\ndatarootdir='${prefix}/share'\ndatadir='${datarootdir}'\nsysconfdir='${prefix}/etc'\nsharedstatedir='${prefix}/com'\nlocalstatedir='${prefix}/var'\nincludedir='${prefix}/include'\noldincludedir='/usr/include'\ndocdir='${datarootdir}/doc/${PACKAGE}'\ninfodir='${datarootdir}/info'\nhtmldir='${docdir}'\ndvidir='${docdir}'\npdfdir='${docdir}'\npsdir='${docdir}'\nlibdir='${exec_prefix}/lib'\nlocaledir='${datarootdir}/locale'\nmandir='${datarootdir}/man'\n\nac_prev=\nac_dashdash=\nfor ac_option\ndo\n  # If the previous option needs an argument, assign it.\n  if test -n \"$ac_prev\"; then\n    eval $ac_prev=\\$ac_option\n    ac_prev=\n    continue\n  fi\n\n  case $ac_option in\n  *=*)\tac_optarg=`expr \"X$ac_option\" : '[^=]*=\\(.*\\)'` ;;\n  *)\tac_optarg=yes ;;\n  esac\n\n  # Accept the important Cygnus configure options, so we can diagnose typos.\n\n  case $ac_dashdash$ac_option in\n  --)\n    ac_dashdash=yes ;;\n\n  -bindir | --bindir | --bindi | --bind | --bin | --bi)\n    ac_prev=bindir ;;\n  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)\n    bindir=$ac_optarg ;;\n\n  -build | --build | --buil | --bui | --bu)\n    ac_prev=build_alias ;;\n  -build=* | --build=* | --buil=* | --bui=* | --bu=*)\n    build_alias=$ac_optarg ;;\n\n  -cache-file | --cache-file | --cache-fil | --cache-fi \\\n  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)\n    ac_prev=cache_file ;;\n  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \\\n  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)\n    cache_file=$ac_optarg ;;\n\n  --config-cache | -C)\n    cache_file=config.cache ;;\n\n  -datadir | --datadir | --datadi | --datad)\n    ac_prev=datadir ;;\n  -datadir=* | --datadir=* | --datadi=* | --datad=*)\n    datadir=$ac_optarg ;;\n\n  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \\\n  | --dataroo | --dataro | --datar)\n    ac_prev=datarootdir ;;\n  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \\\n  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)\n    datarootdir=$ac_optarg ;;\n\n  -disable-* | --disable-*)\n    ac_feature=`expr \"x$ac_option\" : 'x-*disable-\\(.*\\)'`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_feature\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid feature name: $ac_feature\" >&2\n   { (exit 1); exit 1; }; }\n    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`\n    eval enable_$ac_feature=no ;;\n\n  -docdir | --docdir | --docdi | --doc | --do)\n    ac_prev=docdir ;;\n  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)\n    docdir=$ac_optarg ;;\n\n  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)\n    ac_prev=dvidir ;;\n  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)\n    dvidir=$ac_optarg ;;\n\n  -enable-* | --enable-*)\n    ac_feature=`expr \"x$ac_option\" : 'x-*enable-\\([^=]*\\)'`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_feature\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid feature name: $ac_feature\" >&2\n   { (exit 1); exit 1; }; }\n    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`\n    eval enable_$ac_feature=\\$ac_optarg ;;\n\n  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \\\n  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \\\n  | --exec | --exe | --ex)\n    ac_prev=exec_prefix ;;\n  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \\\n  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \\\n  | --exec=* | --exe=* | --ex=*)\n    exec_prefix=$ac_optarg ;;\n\n  -gas | --gas | --ga | --g)\n    # Obsolete; use --with-gas.\n    with_gas=yes ;;\n\n  -help | --help | --hel | --he | -h)\n    ac_init_help=long ;;\n  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)\n    ac_init_help=recursive ;;\n  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)\n    ac_init_help=short ;;\n\n  -host | --host | --hos | --ho)\n    ac_prev=host_alias ;;\n  -host=* | --host=* | --hos=* | --ho=*)\n    host_alias=$ac_optarg ;;\n\n  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)\n    ac_prev=htmldir ;;\n  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \\\n  | --ht=*)\n    htmldir=$ac_optarg ;;\n\n  -includedir | --includedir | --includedi | --included | --include \\\n  | --includ | --inclu | --incl | --inc)\n    ac_prev=includedir ;;\n  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \\\n  | --includ=* | --inclu=* | --incl=* | --inc=*)\n    includedir=$ac_optarg ;;\n\n  -infodir | --infodir | --infodi | --infod | --info | --inf)\n    ac_prev=infodir ;;\n  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)\n    infodir=$ac_optarg ;;\n\n  -libdir | --libdir | --libdi | --libd)\n    ac_prev=libdir ;;\n  -libdir=* | --libdir=* | --libdi=* | --libd=*)\n    libdir=$ac_optarg ;;\n\n  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \\\n  | --libexe | --libex | --libe)\n    ac_prev=libexecdir ;;\n  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \\\n  | --libexe=* | --libex=* | --libe=*)\n    libexecdir=$ac_optarg ;;\n\n  -localedir | --localedir | --localedi | --localed | --locale)\n    ac_prev=localedir ;;\n  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)\n    localedir=$ac_optarg ;;\n\n  -localstatedir | --localstatedir | --localstatedi | --localstated \\\n  | --localstate | --localstat | --localsta | --localst | --locals)\n    ac_prev=localstatedir ;;\n  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \\\n  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)\n    localstatedir=$ac_optarg ;;\n\n  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)\n    ac_prev=mandir ;;\n  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)\n    mandir=$ac_optarg ;;\n\n  -nfp | --nfp | --nf)\n    # Obsolete; use --without-fp.\n    with_fp=no ;;\n\n  -no-create | --no-create | --no-creat | --no-crea | --no-cre \\\n  | --no-cr | --no-c | -n)\n    no_create=yes ;;\n\n  -no-recursion | --no-recursion | --no-recursio | --no-recursi \\\n  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)\n    no_recursion=yes ;;\n\n  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \\\n  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \\\n  | --oldin | --oldi | --old | --ol | --o)\n    ac_prev=oldincludedir ;;\n  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \\\n  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \\\n  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)\n    oldincludedir=$ac_optarg ;;\n\n  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)\n    ac_prev=prefix ;;\n  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)\n    prefix=$ac_optarg ;;\n\n  -program-prefix | --program-prefix | --program-prefi | --program-pref \\\n  | --program-pre | --program-pr | --program-p)\n    ac_prev=program_prefix ;;\n  -program-prefix=* | --program-prefix=* | --program-prefi=* \\\n  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)\n    program_prefix=$ac_optarg ;;\n\n  -program-suffix | --program-suffix | --program-suffi | --program-suff \\\n  | --program-suf | --program-su | --program-s)\n    ac_prev=program_suffix ;;\n  -program-suffix=* | --program-suffix=* | --program-suffi=* \\\n  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)\n    program_suffix=$ac_optarg ;;\n\n  -program-transform-name | --program-transform-name \\\n  | --program-transform-nam | --program-transform-na \\\n  | --program-transform-n | --program-transform- \\\n  | --program-transform | --program-transfor \\\n  | --program-transfo | --program-transf \\\n  | --program-trans | --program-tran \\\n  | --progr-tra | --program-tr | --program-t)\n    ac_prev=program_transform_name ;;\n  -program-transform-name=* | --program-transform-name=* \\\n  | --program-transform-nam=* | --program-transform-na=* \\\n  | --program-transform-n=* | --program-transform-=* \\\n  | --program-transform=* | --program-transfor=* \\\n  | --program-transfo=* | --program-transf=* \\\n  | --program-trans=* | --program-tran=* \\\n  | --progr-tra=* | --program-tr=* | --program-t=*)\n    program_transform_name=$ac_optarg ;;\n\n  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)\n    ac_prev=pdfdir ;;\n  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)\n    pdfdir=$ac_optarg ;;\n\n  -psdir | --psdir | --psdi | --psd | --ps)\n    ac_prev=psdir ;;\n  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)\n    psdir=$ac_optarg ;;\n\n  -q | -quiet | --quiet | --quie | --qui | --qu | --q \\\n  | -silent | --silent | --silen | --sile | --sil)\n    silent=yes ;;\n\n  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)\n    ac_prev=sbindir ;;\n  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \\\n  | --sbi=* | --sb=*)\n    sbindir=$ac_optarg ;;\n\n  -sharedstatedir | --sharedstatedir | --sharedstatedi \\\n  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \\\n  | --sharedst | --shareds | --shared | --share | --shar \\\n  | --sha | --sh)\n    ac_prev=sharedstatedir ;;\n  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \\\n  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \\\n  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \\\n  | --sha=* | --sh=*)\n    sharedstatedir=$ac_optarg ;;\n\n  -site | --site | --sit)\n    ac_prev=site ;;\n  -site=* | --site=* | --sit=*)\n    site=$ac_optarg ;;\n\n  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)\n    ac_prev=srcdir ;;\n  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)\n    srcdir=$ac_optarg ;;\n\n  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \\\n  | --syscon | --sysco | --sysc | --sys | --sy)\n    ac_prev=sysconfdir ;;\n  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \\\n  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)\n    sysconfdir=$ac_optarg ;;\n\n  -target | --target | --targe | --targ | --tar | --ta | --t)\n    ac_prev=target_alias ;;\n  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)\n    target_alias=$ac_optarg ;;\n\n  -v | -verbose | --verbose | --verbos | --verbo | --verb)\n    verbose=yes ;;\n\n  -version | --version | --versio | --versi | --vers | -V)\n    ac_init_version=: ;;\n\n  -with-* | --with-*)\n    ac_package=`expr \"x$ac_option\" : 'x-*with-\\([^=]*\\)'`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_package\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid package name: $ac_package\" >&2\n   { (exit 1); exit 1; }; }\n    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`\n    eval with_$ac_package=\\$ac_optarg ;;\n\n  -without-* | --without-*)\n    ac_package=`expr \"x$ac_option\" : 'x-*without-\\(.*\\)'`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_package\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid package name: $ac_package\" >&2\n   { (exit 1); exit 1; }; }\n    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`\n    eval with_$ac_package=no ;;\n\n  --x)\n    # Obsolete; use --with-x.\n    with_x=yes ;;\n\n  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \\\n  | --x-incl | --x-inc | --x-in | --x-i)\n    ac_prev=x_includes ;;\n  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \\\n  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)\n    x_includes=$ac_optarg ;;\n\n  -x-libraries | --x-libraries | --x-librarie | --x-librari \\\n  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)\n    ac_prev=x_libraries ;;\n  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \\\n  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)\n    x_libraries=$ac_optarg ;;\n\n  -*) { echo \"$as_me: error: unrecognized option: $ac_option\nTry \\`$0 --help' for more information.\" >&2\n   { (exit 1); exit 1; }; }\n    ;;\n\n  *=*)\n    ac_envvar=`expr \"x$ac_option\" : 'x\\([^=]*\\)='`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_envvar\" : \".*[^_$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid variable name: $ac_envvar\" >&2\n   { (exit 1); exit 1; }; }\n    eval $ac_envvar=\\$ac_optarg\n    export $ac_envvar ;;\n\n  *)\n    # FIXME: should be removed in autoconf 3.0.\n    echo \"$as_me: WARNING: you should use --build, --host, --target\" >&2\n    expr \"x$ac_option\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      echo \"$as_me: WARNING: invalid host type: $ac_option\" >&2\n    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}\n    ;;\n\n  esac\ndone\n\nif test -n \"$ac_prev\"; then\n  ac_option=--`echo $ac_prev | sed 's/_/-/g'`\n  { echo \"$as_me: error: missing argument to $ac_option\" >&2\n   { (exit 1); exit 1; }; }\nfi\n\n# Be sure to have absolute directory names.\nfor ac_var in\texec_prefix prefix bindir sbindir libexecdir datarootdir \\\n\t\tdatadir sysconfdir sharedstatedir localstatedir includedir \\\n\t\toldincludedir docdir infodir htmldir dvidir pdfdir psdir \\\n\t\tlibdir localedir mandir\ndo\n  eval ac_val=\\$$ac_var\n  case $ac_val in\n    [\\\\/$]* | ?:[\\\\/]* )  continue;;\n    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;\n  esac\n  { echo \"$as_me: error: expected an absolute directory name for --$ac_var: $ac_val\" >&2\n   { (exit 1); exit 1; }; }\ndone\n\n# There might be people who depend on the old broken behavior: `$host'\n# used to hold the argument of --host etc.\n# FIXME: To remove some day.\nbuild=$build_alias\nhost=$host_alias\ntarget=$target_alias\n\n# FIXME: To remove some day.\nif test \"x$host_alias\" != x; then\n  if test \"x$build_alias\" = x; then\n    cross_compiling=maybe\n    echo \"$as_me: WARNING: If you wanted to set the --build type, don't use --host.\n    If a cross compiler is detected then cross compile mode will be used.\" >&2\n  elif test \"x$build_alias\" != \"x$host_alias\"; then\n    cross_compiling=yes\n  fi\nfi\n\nac_tool_prefix=\ntest -n \"$host_alias\" && ac_tool_prefix=$host_alias-\n\ntest \"$silent\" = yes && exec 6>/dev/null\n\n\nac_pwd=`pwd` && test -n \"$ac_pwd\" &&\nac_ls_di=`ls -di .` &&\nac_pwd_ls_di=`cd \"$ac_pwd\" && ls -di .` ||\n  { echo \"$as_me: error: Working directory cannot be determined\" >&2\n   { (exit 1); exit 1; }; }\ntest \"X$ac_ls_di\" = \"X$ac_pwd_ls_di\" ||\n  { echo \"$as_me: error: pwd does not report name of working directory\" >&2\n   { (exit 1); exit 1; }; }\n\n\n# Find the source files, if location was not specified.\nif test -z \"$srcdir\"; then\n  ac_srcdir_defaulted=yes\n  # Try the directory containing this script, then the parent directory.\n  ac_confdir=`$as_dirname -- \"$0\" ||\n$as_expr X\"$0\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t X\"$0\" : 'X\\(//\\)[^/]' \\| \\\n\t X\"$0\" : 'X\\(//\\)$' \\| \\\n\t X\"$0\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X\"$0\" |\n    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)[^/].*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n  srcdir=$ac_confdir\n  if test ! -r \"$srcdir/$ac_unique_file\"; then\n    srcdir=..\n  fi\nelse\n  ac_srcdir_defaulted=no\nfi\nif test ! -r \"$srcdir/$ac_unique_file\"; then\n  test \"$ac_srcdir_defaulted\" = yes && srcdir=\"$ac_confdir or ..\"\n  { echo \"$as_me: error: cannot find sources ($ac_unique_file) in $srcdir\" >&2\n   { (exit 1); exit 1; }; }\nfi\nac_msg=\"sources are in $srcdir, but \\`cd $srcdir' does not work\"\nac_abs_confdir=`(\n\tcd \"$srcdir\" && test -r \"./$ac_unique_file\" || { echo \"$as_me: error: $ac_msg\" >&2\n   { (exit 1); exit 1; }; }\n\tpwd)`\n# When building in place, set srcdir=.\nif test \"$ac_abs_confdir\" = \"$ac_pwd\"; then\n  srcdir=.\nfi\n# Remove unnecessary trailing slashes from srcdir.\n# Double slashes in file names in object file debugging info\n# mess up M-x gdb in Emacs.\ncase $srcdir in\n*/) srcdir=`expr \"X$srcdir\" : 'X\\(.*[^/]\\)' \\| \"X$srcdir\" : 'X\\(.*\\)'`;;\nesac\nfor ac_var in $ac_precious_vars; do\n  eval ac_env_${ac_var}_set=\\${${ac_var}+set}\n  eval ac_env_${ac_var}_value=\\$${ac_var}\n  eval ac_cv_env_${ac_var}_set=\\${${ac_var}+set}\n  eval ac_cv_env_${ac_var}_value=\\$${ac_var}\ndone\n\n#\n# Report the --help message.\n#\nif test \"$ac_init_help\" = \"long\"; then\n  # Omit some internal or obsolete options to make the list less imposing.\n  # This message is too long to be a string in the A/UX 3.1 sh.\n  cat <<_ACEOF\n\\`configure' configures this package to adapt to many kinds of systems.\n\nUsage: $0 [OPTION]... [VAR=VALUE]...\n\nTo assign environment variables (e.g., CC, CFLAGS...), specify them as\nVAR=VALUE.  See below for descriptions of some of the useful variables.\n\nDefaults for the options are specified in brackets.\n\nConfiguration:\n  -h, --help              display this help and exit\n      --help=short        display options specific to this package\n      --help=recursive    display the short help of all the included packages\n  -V, --version           display version information and exit\n  -q, --quiet, --silent   do not print \\`checking...' messages\n      --cache-file=FILE   cache test results in FILE [disabled]\n  -C, --config-cache      alias for \\`--cache-file=config.cache'\n  -n, --no-create         do not create output files\n      --srcdir=DIR        find the sources in DIR [configure dir or \\`..']\n\nInstallation directories:\n  --prefix=PREFIX         install architecture-independent files in PREFIX\n\t\t\t  [$ac_default_prefix]\n  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX\n\t\t\t  [PREFIX]\n\nBy default, \\`make install' will install all the files in\n\\`$ac_default_prefix/bin', \\`$ac_default_prefix/lib' etc.  You can specify\nan installation prefix other than \\`$ac_default_prefix' using \\`--prefix',\nfor instance \\`--prefix=\\$HOME'.\n\nFor better control, use the options below.\n\nFine tuning of the installation directories:\n  --bindir=DIR           user executables [EPREFIX/bin]\n  --sbindir=DIR          system admin executables [EPREFIX/sbin]\n  --libexecdir=DIR       program executables [EPREFIX/libexec]\n  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]\n  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]\n  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]\n  --libdir=DIR           object code libraries [EPREFIX/lib]\n  --includedir=DIR       C header files [PREFIX/include]\n  --oldincludedir=DIR    C header files for non-gcc [/usr/include]\n  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]\n  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]\n  --infodir=DIR          info documentation [DATAROOTDIR/info]\n  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]\n  --mandir=DIR           man documentation [DATAROOTDIR/man]\n  --docdir=DIR           documentation root @<:@DATAROOTDIR/doc/PACKAGE@:>@\n  --htmldir=DIR          html documentation [DOCDIR]\n  --dvidir=DIR           dvi documentation [DOCDIR]\n  --pdfdir=DIR           pdf documentation [DOCDIR]\n  --psdir=DIR            ps documentation [DOCDIR]\n_ACEOF\n\n  cat <<\\_ACEOF\n\nSystem types:\n  --build=BUILD     configure for building on BUILD [guessed]\n  --host=HOST       cross-compile to build programs to run on HOST [BUILD]\n_ACEOF\nfi\n\nif test -n \"$ac_init_help\"; then\n\n  cat <<\\_ACEOF\n\nOptional Packages:\n  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]\n  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)\n  --with-jplex=JPLEX_PATH path to the jplex.jar file\n\nSome influential environment variables:\n  CC          C compiler command\n  CFLAGS      C compiler flags\n  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a\n              nonstandard directory <lib dir>\n  LIBS        libraries to pass to the linker, e.g. -l<library>\n  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if\n              you have headers in a nonstandard directory <include dir>\n  CXX         C++ compiler command\n  CXXFLAGS    C++ compiler flags\n  CPP         C preprocessor\n\nUse these variables to override the choices made by `configure' or to help\nit to find libraries and programs with nonstandard names/locations.\n\n_ACEOF\nac_status=$?\nfi\n\nif test \"$ac_init_help\" = \"recursive\"; then\n  # If there are subdirs, report their specific --help.\n  for ac_dir in : $ac_subdirs_all; do test \"x$ac_dir\" = x: && continue\n    test -d \"$ac_dir\" || continue\n    ac_builddir=.\n\ncase \"$ac_dir\" in\n.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;\n*)\n  ac_dir_suffix=/`echo \"$ac_dir\" | sed 's,^\\.[\\\\/],,'`\n  # A \"..\" for each directory in $ac_dir_suffix.\n  ac_top_builddir_sub=`echo \"$ac_dir_suffix\" | sed 's,/[^\\\\/]*,/..,g;s,/,,'`\n  case $ac_top_builddir_sub in\n  \"\") ac_top_builddir_sub=. ac_top_build_prefix= ;;\n  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;\n  esac ;;\nesac\nac_abs_top_builddir=$ac_pwd\nac_abs_builddir=$ac_pwd$ac_dir_suffix\n# for backward compatibility:\nac_top_builddir=$ac_top_build_prefix\n\ncase $srcdir in\n  .)  # We are building in place.\n    ac_srcdir=.\n    ac_top_srcdir=$ac_top_builddir_sub\n    ac_abs_top_srcdir=$ac_pwd ;;\n  [\\\\/]* | ?:[\\\\/]* )  # Absolute name.\n    ac_srcdir=$srcdir$ac_dir_suffix;\n    ac_top_srcdir=$srcdir\n    ac_abs_top_srcdir=$srcdir ;;\n  *) # Relative name.\n    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix\n    ac_top_srcdir=$ac_top_build_prefix$srcdir\n    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;\nesac\nac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix\n\n    cd \"$ac_dir\" || { ac_status=$?; continue; }\n    # Check for guested configure.\n    if test -f \"$ac_srcdir/configure.gnu\"; then\n      echo &&\n      $SHELL \"$ac_srcdir/configure.gnu\" --help=recursive\n    elif test -f \"$ac_srcdir/configure\"; then\n      echo &&\n      $SHELL \"$ac_srcdir/configure\" --help=recursive\n    else\n      echo \"$as_me: WARNING: no configuration information is in $ac_dir\" >&2\n    fi || ac_status=$?\n    cd \"$ac_pwd\" || { ac_status=$?; break; }\n  done\nfi\n\ntest -n \"$ac_init_help\" && exit $ac_status\nif $ac_init_version; then\n  cat <<\\_ACEOF\nconfigure\ngenerated by GNU Autoconf 2.61\n\nCopyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,\n2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.\nThis configure script is free software; the Free Software Foundation\ngives unlimited permission to copy, distribute and modify it.\n_ACEOF\n  exit\nfi\ncat >config.log <<_ACEOF\nThis file contains any messages produced by compilers while\nrunning configure, to aid debugging if configure makes a mistake.\n\nIt was created by $as_me, which was\ngenerated by GNU Autoconf 2.61.  Invocation command line was\n\n  $ $0 $@\n\n_ACEOF\nexec 5>>config.log\n{\ncat <<_ASUNAME\n@%:@@%:@ --------- @%:@@%:@\n@%:@@%:@ Platform. @%:@@%:@\n@%:@@%:@ --------- @%:@@%:@\n\nhostname = `(hostname || uname -n) 2>/dev/null | sed 1q`\nuname -m = `(uname -m) 2>/dev/null || echo unknown`\nuname -r = `(uname -r) 2>/dev/null || echo unknown`\nuname -s = `(uname -s) 2>/dev/null || echo unknown`\nuname -v = `(uname -v) 2>/dev/null || echo unknown`\n\n/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`\n/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`\n\n/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`\n/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`\n/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`\n/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`\n/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`\n/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`\n/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`\n\n_ASUNAME\n\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  echo \"PATH: $as_dir\"\ndone\nIFS=$as_save_IFS\n\n} >&5\n\ncat >&5 <<_ACEOF\n\n\n@%:@@%:@ ----------- @%:@@%:@\n@%:@@%:@ Core tests. @%:@@%:@\n@%:@@%:@ ----------- @%:@@%:@\n\n_ACEOF\n\n\n# Keep a trace of the command line.\n# Strip out --no-create and --no-recursion so they do not pile up.\n# Strip out --silent because we don't want to record it for future runs.\n# Also quote any args containing shell meta-characters.\n# Make two passes to allow for proper duplicate-argument suppression.\nac_configure_args=\nac_configure_args0=\nac_configure_args1=\nac_must_keep_next=false\nfor ac_pass in 1 2\ndo\n  for ac_arg\n  do\n    case $ac_arg in\n    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;\n    -q | -quiet | --quiet | --quie | --qui | --qu | --q \\\n    | -silent | --silent | --silen | --sile | --sil)\n      continue ;;\n    *\\'*)\n      ac_arg=`echo \"$ac_arg\" | sed \"s/'/'\\\\\\\\\\\\\\\\''/g\"` ;;\n    esac\n    case $ac_pass in\n    1) ac_configure_args0=\"$ac_configure_args0 '$ac_arg'\" ;;\n    2)\n      ac_configure_args1=\"$ac_configure_args1 '$ac_arg'\"\n      if test $ac_must_keep_next = true; then\n\tac_must_keep_next=false # Got value, back to normal.\n      else\n\tcase $ac_arg in\n\t  *=* | --config-cache | -C | -disable-* | --disable-* \\\n\t  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \\\n\t  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \\\n\t  | -with-* | --with-* | -without-* | --without-* | --x)\n\t    case \"$ac_configure_args0 \" in\n\t      \"$ac_configure_args1\"*\" '$ac_arg' \"* ) continue ;;\n\t    esac\n\t    ;;\n\t  -* ) ac_must_keep_next=true ;;\n\tesac\n      fi\n      ac_configure_args=\"$ac_configure_args '$ac_arg'\"\n      ;;\n    esac\n  done\ndone\n$as_unset ac_configure_args0 || test \"${ac_configure_args0+set}\" != set || { ac_configure_args0=; export ac_configure_args0; }\n$as_unset ac_configure_args1 || test \"${ac_configure_args1+set}\" != set || { ac_configure_args1=; export ac_configure_args1; }\n\n# When interrupted or exit'd, cleanup temporary files, and complete\n# config.log.  We remove comments because anyway the quotes in there\n# would cause problems or look ugly.\n# WARNING: Use '\\'' to represent an apostrophe within the trap.\n# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.\ntrap 'exit_status=$?\n  # Save into config.log some information that might help in debugging.\n  {\n    echo\n\n    cat <<\\_ASBOX\n@%:@@%:@ ---------------- @%:@@%:@\n@%:@@%:@ Cache variables. @%:@@%:@\n@%:@@%:@ ---------------- @%:@@%:@\n_ASBOX\n    echo\n    # The following way of writing the cache mishandles newlines in values,\n(\n  for ac_var in `(set) 2>&1 | sed -n '\\''s/^\\([a-zA-Z_][a-zA-Z0-9_]*\\)=.*/\\1/p'\\''`; do\n    eval ac_val=\\$$ac_var\n    case $ac_val in #(\n    *${as_nl}*)\n      case $ac_var in #(\n      *_cv_*) { echo \"$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline.\" >&5\necho \"$as_me: WARNING: Cache variable $ac_var contains a newline.\" >&2;} ;;\n      esac\n      case $ac_var in #(\n      _ | IFS | as_nl) ;; #(\n      *) $as_unset $ac_var ;;\n      esac ;;\n    esac\n  done\n  (set) 2>&1 |\n    case $as_nl`(ac_space='\\'' '\\''; set) 2>&1` in #(\n    *${as_nl}ac_space=\\ *)\n      sed -n \\\n\t\"s/'\\''/'\\''\\\\\\\\'\\'''\\''/g;\n\t  s/^\\\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\\\)=\\\\(.*\\\\)/\\\\1='\\''\\\\2'\\''/p\"\n      ;; #(\n    *)\n      sed -n \"/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p\"\n      ;;\n    esac |\n    sort\n)\n    echo\n\n    cat <<\\_ASBOX\n@%:@@%:@ ----------------- @%:@@%:@\n@%:@@%:@ Output variables. @%:@@%:@\n@%:@@%:@ ----------------- @%:@@%:@\n_ASBOX\n    echo\n    for ac_var in $ac_subst_vars\n    do\n      eval ac_val=\\$$ac_var\n      case $ac_val in\n      *\\'\\''*) ac_val=`echo \"$ac_val\" | sed \"s/'\\''/'\\''\\\\\\\\\\\\\\\\'\\'''\\''/g\"`;;\n      esac\n      echo \"$ac_var='\\''$ac_val'\\''\"\n    done | sort\n    echo\n\n    if test -n \"$ac_subst_files\"; then\n      cat <<\\_ASBOX\n@%:@@%:@ ------------------- @%:@@%:@\n@%:@@%:@ File substitutions. @%:@@%:@\n@%:@@%:@ ------------------- @%:@@%:@\n_ASBOX\n      echo\n      for ac_var in $ac_subst_files\n      do\n\teval ac_val=\\$$ac_var\n\tcase $ac_val in\n\t*\\'\\''*) ac_val=`echo \"$ac_val\" | sed \"s/'\\''/'\\''\\\\\\\\\\\\\\\\'\\'''\\''/g\"`;;\n\tesac\n\techo \"$ac_var='\\''$ac_val'\\''\"\n      done | sort\n      echo\n    fi\n\n    if test -s confdefs.h; then\n      cat <<\\_ASBOX\n@%:@@%:@ ----------- @%:@@%:@\n@%:@@%:@ confdefs.h. @%:@@%:@\n@%:@@%:@ ----------- @%:@@%:@\n_ASBOX\n      echo\n      cat confdefs.h\n      echo\n    fi\n    test \"$ac_signal\" != 0 &&\n      echo \"$as_me: caught signal $ac_signal\"\n    echo \"$as_me: exit $exit_status\"\n  } >&5\n  rm -f core *.core core.conftest.* &&\n    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&\n    exit $exit_status\n' 0\nfor ac_signal in 1 2 13 15; do\n  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal\ndone\nac_signal=0\n\n# confdefs.h avoids OS command line length limits that DEFS can exceed.\nrm -f -r conftest* confdefs.h\n\n# Predefined preprocessor variables.\n\ncat >>confdefs.h <<_ACEOF\n@%:@define PACKAGE_NAME \"$PACKAGE_NAME\"\n_ACEOF\n\n\ncat >>confdefs.h <<_ACEOF\n@%:@define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"\n_ACEOF\n\n\ncat >>confdefs.h <<_ACEOF\n@%:@define PACKAGE_VERSION \"$PACKAGE_VERSION\"\n_ACEOF\n\n\ncat >>confdefs.h <<_ACEOF\n@%:@define PACKAGE_STRING \"$PACKAGE_STRING\"\n_ACEOF\n\n\ncat >>confdefs.h <<_ACEOF\n@%:@define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"\n_ACEOF\n\n\n# Let the site file select an alternate cache file if it wants to.\n# Prefer explicitly selected file to automatically selected ones.\nif test -n \"$CONFIG_SITE\"; then\n  set x \"$CONFIG_SITE\"\nelif test \"x$prefix\" != xNONE; then\n  set x \"$prefix/share/config.site\" \"$prefix/etc/config.site\"\nelse\n  set x \"$ac_default_prefix/share/config.site\" \\\n\t\"$ac_default_prefix/etc/config.site\"\nfi\nshift\nfor ac_site_file\ndo\n  if test -r \"$ac_site_file\"; then\n    { echo \"$as_me:$LINENO: loading site script $ac_site_file\" >&5\necho \"$as_me: loading site script $ac_site_file\" >&6;}\n    sed 's/^/| /' \"$ac_site_file\" >&5\n    . \"$ac_site_file\"\n  fi\ndone\n\nif test -r \"$cache_file\"; then\n  # Some versions of bash will fail to source /dev/null (special\n  # files actually), so we avoid doing that.\n  if test -f \"$cache_file\"; then\n    { echo \"$as_me:$LINENO: loading cache $cache_file\" >&5\necho \"$as_me: loading cache $cache_file\" >&6;}\n    case $cache_file in\n      [\\\\/]* | ?:[\\\\/]* ) . \"$cache_file\";;\n      *)                      . \"./$cache_file\";;\n    esac\n  fi\nelse\n  { echo \"$as_me:$LINENO: creating cache $cache_file\" >&5\necho \"$as_me: creating cache $cache_file\" >&6;}\n  >$cache_file\nfi\n\n# Check that the precious variables saved in the cache have kept the same\n# value.\nac_cache_corrupted=false\nfor ac_var in $ac_precious_vars; do\n  eval ac_old_set=\\$ac_cv_env_${ac_var}_set\n  eval ac_new_set=\\$ac_env_${ac_var}_set\n  eval ac_old_val=\\$ac_cv_env_${ac_var}_value\n  eval ac_new_val=\\$ac_env_${ac_var}_value\n  case $ac_old_set,$ac_new_set in\n    set,)\n      { echo \"$as_me:$LINENO: error: \\`$ac_var' was set to \\`$ac_old_val' in the previous run\" >&5\necho \"$as_me: error: \\`$ac_var' was set to \\`$ac_old_val' in the previous run\" >&2;}\n      ac_cache_corrupted=: ;;\n    ,set)\n      { echo \"$as_me:$LINENO: error: \\`$ac_var' was not set in the previous run\" >&5\necho \"$as_me: error: \\`$ac_var' was not set in the previous run\" >&2;}\n      ac_cache_corrupted=: ;;\n    ,);;\n    *)\n      if test \"x$ac_old_val\" != \"x$ac_new_val\"; then\n\t{ echo \"$as_me:$LINENO: error: \\`$ac_var' has changed since the previous run:\" >&5\necho \"$as_me: error: \\`$ac_var' has changed since the previous run:\" >&2;}\n\t{ echo \"$as_me:$LINENO:   former value:  $ac_old_val\" >&5\necho \"$as_me:   former value:  $ac_old_val\" >&2;}\n\t{ echo \"$as_me:$LINENO:   current value: $ac_new_val\" >&5\necho \"$as_me:   current value: $ac_new_val\" >&2;}\n\tac_cache_corrupted=:\n      fi;;\n  esac\n  # Pass precious variables to config.status.\n  if test \"$ac_new_set\" = set; then\n    case $ac_new_val in\n    *\\'*) ac_arg=$ac_var=`echo \"$ac_new_val\" | sed \"s/'/'\\\\\\\\\\\\\\\\''/g\"` ;;\n    *) ac_arg=$ac_var=$ac_new_val ;;\n    esac\n    case \" $ac_configure_args \" in\n      *\" '$ac_arg' \"*) ;; # Avoid dups.  Use of quotes ensures accuracy.\n      *) ac_configure_args=\"$ac_configure_args '$ac_arg'\" ;;\n    esac\n  fi\ndone\nif $ac_cache_corrupted; then\n  { echo \"$as_me:$LINENO: error: changes in the environment can compromise the build\" >&5\necho \"$as_me: error: changes in the environment can compromise the build\" >&2;}\n  { { echo \"$as_me:$LINENO: error: run \\`make distclean' and/or \\`rm $cache_file' and start over\" >&5\necho \"$as_me: error: run \\`make distclean' and/or \\`rm $cache_file' and start over\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n\n\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\nif test -n \"$ac_tool_prefix\"; then\n  # Extract the first word of \"${ac_tool_prefix}gcc\", so it can be a program name with args.\nset dummy ${ac_tool_prefix}gcc; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CC\"; then\n  ac_cv_prog_CC=\"$CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_CC=\"${ac_tool_prefix}gcc\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nCC=$ac_cv_prog_CC\nif test -n \"$CC\"; then\n  { echo \"$as_me:$LINENO: result: $CC\" >&5\necho \"${ECHO_T}$CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\nfi\nif test -z \"$ac_cv_prog_CC\"; then\n  ac_ct_CC=$CC\n  # Extract the first word of \"gcc\", so it can be a program name with args.\nset dummy gcc; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_ac_ct_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$ac_ct_CC\"; then\n  ac_cv_prog_ac_ct_CC=\"$ac_ct_CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_ac_ct_CC=\"gcc\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nac_ct_CC=$ac_cv_prog_ac_ct_CC\nif test -n \"$ac_ct_CC\"; then\n  { echo \"$as_me:$LINENO: result: $ac_ct_CC\" >&5\necho \"${ECHO_T}$ac_ct_CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n  if test \"x$ac_ct_CC\" = x; then\n    CC=\"\"\n  else\n    case $cross_compiling:$ac_tool_warned in\nyes:)\n{ echo \"$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&5\necho \"$as_me: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&2;}\nac_tool_warned=yes ;;\nesac\n    CC=$ac_ct_CC\n  fi\nelse\n  CC=\"$ac_cv_prog_CC\"\nfi\n\nif test -z \"$CC\"; then\n          if test -n \"$ac_tool_prefix\"; then\n    # Extract the first word of \"${ac_tool_prefix}cc\", so it can be a program name with args.\nset dummy ${ac_tool_prefix}cc; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CC\"; then\n  ac_cv_prog_CC=\"$CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_CC=\"${ac_tool_prefix}cc\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nCC=$ac_cv_prog_CC\nif test -n \"$CC\"; then\n  { echo \"$as_me:$LINENO: result: $CC\" >&5\necho \"${ECHO_T}$CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n  fi\nfi\nif test -z \"$CC\"; then\n  # Extract the first word of \"cc\", so it can be a program name with args.\nset dummy cc; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CC\"; then\n  ac_cv_prog_CC=\"$CC\" # Let the user override the test.\nelse\n  ac_prog_rejected=no\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    if test \"$as_dir/$ac_word$ac_exec_ext\" = \"/usr/ucb/cc\"; then\n       ac_prog_rejected=yes\n       continue\n     fi\n    ac_cv_prog_CC=\"cc\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nif test $ac_prog_rejected = yes; then\n  # We found a bogon in the path, so make sure we never use it.\n  set dummy $ac_cv_prog_CC\n  shift\n  if test $@%:@ != 0; then\n    # We chose a different compiler from the bogus one.\n    # However, it has the same basename, so the bogon will be chosen\n    # first if we set CC to just the basename; use the full file name.\n    shift\n    ac_cv_prog_CC=\"$as_dir/$ac_word${1+' '}$@\"\n  fi\nfi\nfi\nfi\nCC=$ac_cv_prog_CC\nif test -n \"$CC\"; then\n  { echo \"$as_me:$LINENO: result: $CC\" >&5\necho \"${ECHO_T}$CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\nfi\nif test -z \"$CC\"; then\n  if test -n \"$ac_tool_prefix\"; then\n  for ac_prog in cl.exe\n  do\n    # Extract the first word of \"$ac_tool_prefix$ac_prog\", so it can be a program name with args.\nset dummy $ac_tool_prefix$ac_prog; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CC\"; then\n  ac_cv_prog_CC=\"$CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_CC=\"$ac_tool_prefix$ac_prog\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nCC=$ac_cv_prog_CC\nif test -n \"$CC\"; then\n  { echo \"$as_me:$LINENO: result: $CC\" >&5\necho \"${ECHO_T}$CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n    test -n \"$CC\" && break\n  done\nfi\nif test -z \"$CC\"; then\n  ac_ct_CC=$CC\n  for ac_prog in cl.exe\ndo\n  # Extract the first word of \"$ac_prog\", so it can be a program name with args.\nset dummy $ac_prog; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_ac_ct_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$ac_ct_CC\"; then\n  ac_cv_prog_ac_ct_CC=\"$ac_ct_CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_ac_ct_CC=\"$ac_prog\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nac_ct_CC=$ac_cv_prog_ac_ct_CC\nif test -n \"$ac_ct_CC\"; then\n  { echo \"$as_me:$LINENO: result: $ac_ct_CC\" >&5\necho \"${ECHO_T}$ac_ct_CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n  test -n \"$ac_ct_CC\" && break\ndone\n\n  if test \"x$ac_ct_CC\" = x; then\n    CC=\"\"\n  else\n    case $cross_compiling:$ac_tool_warned in\nyes:)\n{ echo \"$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&5\necho \"$as_me: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&2;}\nac_tool_warned=yes ;;\nesac\n    CC=$ac_ct_CC\n  fi\nfi\n\nfi\n\n\ntest -z \"$CC\" && { { echo \"$as_me:$LINENO: error: no acceptable C compiler found in \\$PATH\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: no acceptable C compiler found in \\$PATH\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\n\n# Provide some information about the compiler.\necho \"$as_me:$LINENO: checking for C compiler version\" >&5\nac_compiler=`set X $ac_compile; echo $2`\n{ (ac_try=\"$ac_compiler --version >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler --version >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n{ (ac_try=\"$ac_compiler -v >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler -v >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n{ (ac_try=\"$ac_compiler -V >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler -V >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nac_clean_files_save=$ac_clean_files\nac_clean_files=\"$ac_clean_files a.out a.exe b.out\"\n# Try to create an executable without -o first, disregard a.out.\n# It will help us diagnose broken compilers, and finding out an intuition\n# of exeext.\n{ echo \"$as_me:$LINENO: checking for C compiler default output file name\" >&5\necho $ECHO_N \"checking for C compiler default output file name... $ECHO_C\" >&6; }\nac_link_default=`echo \"$ac_link\" | sed 's/ -o *conftest[^ ]*//'`\n#\n# List of possible output files, starting from the most likely.\n# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)\n# only as a last resort.  b.out is created by i960 compilers.\nac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'\n#\n# The IRIX 6 linker writes into existing files which may not be\n# executable, retaining their permissions.  Remove them first so a\n# subsequent execution test works.\nac_rmfiles=\nfor ac_file in $ac_files\ndo\n  case $ac_file in\n    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;\n    * ) ac_rmfiles=\"$ac_rmfiles $ac_file\";;\n  esac\ndone\nrm -f $ac_rmfiles\n\nif { (ac_try=\"$ac_link_default\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link_default\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; then\n  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.\n# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'\n# in a Makefile.  We should not override ac_cv_exeext if it was cached,\n# so that the user can short-circuit this test for compilers unknown to\n# Autoconf.\nfor ac_file in $ac_files ''\ndo\n  test -f \"$ac_file\" || continue\n  case $ac_file in\n    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )\n\t;;\n    [ab].out )\n\t# We found the default executable, but exeext='' is most\n\t# certainly right.\n\tbreak;;\n    *.* )\n        if test \"${ac_cv_exeext+set}\" = set && test \"$ac_cv_exeext\" != no;\n\tthen :; else\n\t   ac_cv_exeext=`expr \"$ac_file\" : '[^.]*\\(\\..*\\)'`\n\tfi\n\t# We set ac_cv_exeext here because the later test for it is not\n\t# safe: cross compilers may not add the suffix if given an `-o'\n\t# argument, so we may need to know it at that point already.\n\t# Even if this section looks crufty: it has the advantage of\n\t# actually working.\n\tbreak;;\n    * )\n\tbreak;;\n  esac\ndone\ntest \"$ac_cv_exeext\" = no && ac_cv_exeext=\n\nelse\n  ac_file=''\nfi\n\n{ echo \"$as_me:$LINENO: result: $ac_file\" >&5\necho \"${ECHO_T}$ac_file\" >&6; }\nif test -z \"$ac_file\"; then\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n{ { echo \"$as_me:$LINENO: error: C compiler cannot create executables\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: C compiler cannot create executables\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 77); exit 77; }; }\nfi\n\nac_exeext=$ac_cv_exeext\n\n# Check that the compiler produces executables we can run.  If not, either\n# the compiler is broken, or we cross compile.\n{ echo \"$as_me:$LINENO: checking whether the C compiler works\" >&5\necho $ECHO_N \"checking whether the C compiler works... $ECHO_C\" >&6; }\n# FIXME: These cross compiler hacks should be removed for Autoconf 3.0\n# If not cross compiling, check that we can run a simple program.\nif test \"$cross_compiling\" != yes; then\n  if { ac_try='./$ac_file'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n    cross_compiling=no\n  else\n    if test \"$cross_compiling\" = maybe; then\n\tcross_compiling=yes\n    else\n\t{ { echo \"$as_me:$LINENO: error: cannot run C compiled programs.\nIf you meant to cross compile, use \\`--host'.\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: cannot run C compiled programs.\nIf you meant to cross compile, use \\`--host'.\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\n    fi\n  fi\nfi\n{ echo \"$as_me:$LINENO: result: yes\" >&5\necho \"${ECHO_T}yes\" >&6; }\n\nrm -f a.out a.exe conftest$ac_cv_exeext b.out\nac_clean_files=$ac_clean_files_save\n# Check that the compiler produces executables we can run.  If not, either\n# the compiler is broken, or we cross compile.\n{ echo \"$as_me:$LINENO: checking whether we are cross compiling\" >&5\necho $ECHO_N \"checking whether we are cross compiling... $ECHO_C\" >&6; }\n{ echo \"$as_me:$LINENO: result: $cross_compiling\" >&5\necho \"${ECHO_T}$cross_compiling\" >&6; }\n\n{ echo \"$as_me:$LINENO: checking for suffix of executables\" >&5\necho $ECHO_N \"checking for suffix of executables... $ECHO_C\" >&6; }\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; then\n  # If both `conftest.exe' and `conftest' are `present' (well, observable)\n# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will\n# work properly (i.e., refer to `conftest.exe'), while it won't with\n# `rm'.\nfor ac_file in conftest.exe conftest conftest.*; do\n  test -f \"$ac_file\" || continue\n  case $ac_file in\n    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;\n    *.* ) ac_cv_exeext=`expr \"$ac_file\" : '[^.]*\\(\\..*\\)'`\n\t  break;;\n    * ) break;;\n  esac\ndone\nelse\n  { { echo \"$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: cannot compute suffix of executables: cannot compile and link\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nrm -f conftest$ac_cv_exeext\n{ echo \"$as_me:$LINENO: result: $ac_cv_exeext\" >&5\necho \"${ECHO_T}$ac_cv_exeext\" >&6; }\n\nrm -f conftest.$ac_ext\nEXEEXT=$ac_cv_exeext\nac_exeext=$EXEEXT\n{ echo \"$as_me:$LINENO: checking for suffix of object files\" >&5\necho $ECHO_N \"checking for suffix of object files... $ECHO_C\" >&6; }\nif test \"${ac_cv_objext+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.o conftest.obj\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; then\n  for ac_file in conftest.o conftest.obj conftest.*; do\n  test -f \"$ac_file\" || continue;\n  case $ac_file in\n    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;\n    *) ac_cv_objext=`expr \"$ac_file\" : '.*\\.\\(.*\\)'`\n       break;;\n  esac\ndone\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n{ { echo \"$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: cannot compute suffix of object files: cannot compile\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nrm -f conftest.$ac_cv_objext conftest.$ac_ext\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_objext\" >&5\necho \"${ECHO_T}$ac_cv_objext\" >&6; }\nOBJEXT=$ac_cv_objext\nac_objext=$OBJEXT\n{ echo \"$as_me:$LINENO: checking whether we are using the GNU C compiler\" >&5\necho $ECHO_N \"checking whether we are using the GNU C compiler... $ECHO_C\" >&6; }\nif test \"${ac_cv_c_compiler_gnu+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n#ifndef __GNUC__\n       choke me\n#endif\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_compiler_gnu=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_compiler_gnu=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nac_cv_c_compiler_gnu=$ac_compiler_gnu\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_c_compiler_gnu\" >&5\necho \"${ECHO_T}$ac_cv_c_compiler_gnu\" >&6; }\nGCC=`test $ac_compiler_gnu = yes && echo yes`\nac_test_CFLAGS=${CFLAGS+set}\nac_save_CFLAGS=$CFLAGS\n{ echo \"$as_me:$LINENO: checking whether $CC accepts -g\" >&5\necho $ECHO_N \"checking whether $CC accepts -g... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_cc_g+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_save_c_werror_flag=$ac_c_werror_flag\n   ac_c_werror_flag=yes\n   ac_cv_prog_cc_g=no\n   CFLAGS=\"-g\"\n   cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cc_g=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tCFLAGS=\"\"\n      cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  :\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_c_werror_flag=$ac_save_c_werror_flag\n\t CFLAGS=\"-g\"\n\t cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cc_g=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\t\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n   ac_c_werror_flag=$ac_save_c_werror_flag\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_prog_cc_g\" >&5\necho \"${ECHO_T}$ac_cv_prog_cc_g\" >&6; }\nif test \"$ac_test_CFLAGS\" = set; then\n  CFLAGS=$ac_save_CFLAGS\nelif test $ac_cv_prog_cc_g = yes; then\n  if test \"$GCC\" = yes; then\n    CFLAGS=\"-g -O2\"\n  else\n    CFLAGS=\"-g\"\n  fi\nelse\n  if test \"$GCC\" = yes; then\n    CFLAGS=\"-O2\"\n  else\n    CFLAGS=\n  fi\nfi\n{ echo \"$as_me:$LINENO: checking for $CC option to accept ISO C89\" >&5\necho $ECHO_N \"checking for $CC option to accept ISO C89... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_cc_c89+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_cv_prog_cc_c89=no\nac_save_CC=$CC\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <stdarg.h>\n#include <stdio.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */\nstruct buf { int x; };\nFILE * (*rcsopen) (struct buf *, struct stat *, int);\nstatic char *e (p, i)\n     char **p;\n     int i;\n{\n  return p[i];\n}\nstatic char *f (char * (*g) (char **, int), char **p, ...)\n{\n  char *s;\n  va_list v;\n  va_start (v,p);\n  s = g (p, va_arg (v,int));\n  va_end (v);\n  return s;\n}\n\n/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has\n   function prototypes and stuff, but not '\\xHH' hex character constants.\n   These don't provoke an error unfortunately, instead are silently treated\n   as 'x'.  The following induces an error, until -std is added to get\n   proper ANSI mode.  Curiously '\\x00'!='x' always comes out true, for an\n   array size at least.  It's necessary to write '\\x00'==0 to get something\n   that's true only with -std.  */\nint osf4_cc_array ['\\x00' == 0 ? 1 : -1];\n\n/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters\n   inside strings and character constants.  */\n#define FOO(x) 'x'\nint xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];\n\nint test (int i, double x);\nstruct s1 {int (*f) (int a);};\nstruct s2 {int (*f) (double a);};\nint pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);\nint argc;\nchar **argv;\nint\nmain ()\n{\nreturn f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];\n  ;\n  return 0;\n}\n_ACEOF\nfor ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \\\n\t-Ae \"-Aa -D_HPUX_SOURCE\" \"-Xc -D__EXTENSIONS__\"\ndo\n  CC=\"$ac_save_CC $ac_arg\"\n  rm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cc_c89=$ac_arg\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\t\nfi\n\nrm -f core conftest.err conftest.$ac_objext \n  test \"x$ac_cv_prog_cc_c89\" != \"xno\" && break\ndone\nrm -f conftest.$ac_ext\nCC=$ac_save_CC\n\nfi\n# AC_CACHE_VAL\ncase \"x$ac_cv_prog_cc_c89\" in\n  x)\n    { echo \"$as_me:$LINENO: result: none needed\" >&5\necho \"${ECHO_T}none needed\" >&6; } ;;\n  xno)\n    { echo \"$as_me:$LINENO: result: unsupported\" >&5\necho \"${ECHO_T}unsupported\" >&6; } ;;\n  *)\n    CC=\"$CC $ac_cv_prog_cc_c89\"\n    { echo \"$as_me:$LINENO: result: $ac_cv_prog_cc_c89\" >&5\necho \"${ECHO_T}$ac_cv_prog_cc_c89\" >&6; } ;;\nesac\n\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n\nac_ext=cpp\nac_cpp='$CXXCPP $CPPFLAGS'\nac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_cxx_compiler_gnu\nif test -z \"$CXX\"; then\n  if test -n \"$CCC\"; then\n    CXX=$CCC\n  else\n    if test -n \"$ac_tool_prefix\"; then\n  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC\n  do\n    # Extract the first word of \"$ac_tool_prefix$ac_prog\", so it can be a program name with args.\nset dummy $ac_tool_prefix$ac_prog; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CXX+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CXX\"; then\n  ac_cv_prog_CXX=\"$CXX\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_CXX=\"$ac_tool_prefix$ac_prog\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nCXX=$ac_cv_prog_CXX\nif test -n \"$CXX\"; then\n  { echo \"$as_me:$LINENO: result: $CXX\" >&5\necho \"${ECHO_T}$CXX\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n    test -n \"$CXX\" && break\n  done\nfi\nif test -z \"$CXX\"; then\n  ac_ct_CXX=$CXX\n  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC\ndo\n  # Extract the first word of \"$ac_prog\", so it can be a program name with args.\nset dummy $ac_prog; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_ac_ct_CXX+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$ac_ct_CXX\"; then\n  ac_cv_prog_ac_ct_CXX=\"$ac_ct_CXX\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_ac_ct_CXX=\"$ac_prog\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nac_ct_CXX=$ac_cv_prog_ac_ct_CXX\nif test -n \"$ac_ct_CXX\"; then\n  { echo \"$as_me:$LINENO: result: $ac_ct_CXX\" >&5\necho \"${ECHO_T}$ac_ct_CXX\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n  test -n \"$ac_ct_CXX\" && break\ndone\n\n  if test \"x$ac_ct_CXX\" = x; then\n    CXX=\"g++\"\n  else\n    case $cross_compiling:$ac_tool_warned in\nyes:)\n{ echo \"$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&5\necho \"$as_me: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&2;}\nac_tool_warned=yes ;;\nesac\n    CXX=$ac_ct_CXX\n  fi\nfi\n\n  fi\nfi\n# Provide some information about the compiler.\necho \"$as_me:$LINENO: checking for C++ compiler version\" >&5\nac_compiler=`set X $ac_compile; echo $2`\n{ (ac_try=\"$ac_compiler --version >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler --version >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n{ (ac_try=\"$ac_compiler -v >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler -v >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n{ (ac_try=\"$ac_compiler -V >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler -V >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n\n{ echo \"$as_me:$LINENO: checking whether we are using the GNU C++ compiler\" >&5\necho $ECHO_N \"checking whether we are using the GNU C++ compiler... $ECHO_C\" >&6; }\nif test \"${ac_cv_cxx_compiler_gnu+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n#ifndef __GNUC__\n       choke me\n#endif\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_cxx_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_compiler_gnu=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_compiler_gnu=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nac_cv_cxx_compiler_gnu=$ac_compiler_gnu\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu\" >&5\necho \"${ECHO_T}$ac_cv_cxx_compiler_gnu\" >&6; }\nGXX=`test $ac_compiler_gnu = yes && echo yes`\nac_test_CXXFLAGS=${CXXFLAGS+set}\nac_save_CXXFLAGS=$CXXFLAGS\n{ echo \"$as_me:$LINENO: checking whether $CXX accepts -g\" >&5\necho $ECHO_N \"checking whether $CXX accepts -g... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_cxx_g+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_save_cxx_werror_flag=$ac_cxx_werror_flag\n   ac_cxx_werror_flag=yes\n   ac_cv_prog_cxx_g=no\n   CXXFLAGS=\"-g\"\n   cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_cxx_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cxx_g=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tCXXFLAGS=\"\"\n      cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_cxx_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  :\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cxx_werror_flag=$ac_save_cxx_werror_flag\n\t CXXFLAGS=\"-g\"\n\t cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_cxx_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cxx_g=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\t\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n   ac_cxx_werror_flag=$ac_save_cxx_werror_flag\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_prog_cxx_g\" >&5\necho \"${ECHO_T}$ac_cv_prog_cxx_g\" >&6; }\nif test \"$ac_test_CXXFLAGS\" = set; then\n  CXXFLAGS=$ac_save_CXXFLAGS\nelif test $ac_cv_prog_cxx_g = yes; then\n  if test \"$GXX\" = yes; then\n    CXXFLAGS=\"-g -O2\"\n  else\n    CXXFLAGS=\"-g\"\n  fi\nelse\n  if test \"$GXX\" = yes; then\n    CXXFLAGS=\"-O2\"\n  else\n    CXXFLAGS=\n  fi\nfi\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n\n\nac_aux_dir=\nfor ac_dir in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"; do\n  if test -f \"$ac_dir/install-sh\"; then\n    ac_aux_dir=$ac_dir\n    ac_install_sh=\"$ac_aux_dir/install-sh -c\"\n    break\n  elif test -f \"$ac_dir/install.sh\"; then\n    ac_aux_dir=$ac_dir\n    ac_install_sh=\"$ac_aux_dir/install.sh -c\"\n    break\n  elif test -f \"$ac_dir/shtool\"; then\n    ac_aux_dir=$ac_dir\n    ac_install_sh=\"$ac_aux_dir/shtool install -c\"\n    break\n  fi\ndone\nif test -z \"$ac_aux_dir\"; then\n  { { echo \"$as_me:$LINENO: error: cannot find install-sh or install.sh in \\\"$srcdir\\\" \\\"$srcdir/..\\\" \\\"$srcdir/../..\\\"\" >&5\necho \"$as_me: error: cannot find install-sh or install.sh in \\\"$srcdir\\\" \\\"$srcdir/..\\\" \\\"$srcdir/../..\\\"\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\n# These three variables are undocumented and unsupported,\n# and are intended to be withdrawn in a future Autoconf release.\n# They can cause serious problems if a builder's source tree is in a directory\n# whose full name contains unusual characters.\nac_config_guess=\"$SHELL $ac_aux_dir/config.guess\"  # Please don't use this var.\nac_config_sub=\"$SHELL $ac_aux_dir/config.sub\"  # Please don't use this var.\nac_configure=\"$SHELL $ac_aux_dir/configure\"  # Please don't use this var.\n\n\n# Find a good install program.  We prefer a C program (faster),\n# so one script is as good as another.  But avoid the broken or\n# incompatible versions:\n# SysV /etc/install, /usr/sbin/install\n# SunOS /usr/etc/install\n# IRIX /sbin/install\n# AIX /bin/install\n# AmigaOS /C/install, which installs bootblocks on floppy discs\n# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag\n# AFS /usr/afsws/bin/install, which mishandles nonexistent args\n# SVR4 /usr/ucb/install, which tries to use the nonexistent group \"staff\"\n# OS/2's system install, which has a completely different semantic\n# ./install, which can be erroneously created by make from ./install.sh.\n{ echo \"$as_me:$LINENO: checking for a BSD-compatible install\" >&5\necho $ECHO_N \"checking for a BSD-compatible install... $ECHO_C\" >&6; }\nif test -z \"$INSTALL\"; then\nif test \"${ac_cv_path_install+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  # Account for people who put trailing slashes in PATH elements.\ncase $as_dir/ in\n  ./ | .// | /cC/* | \\\n  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \\\n  ?:\\\\/os2\\\\/install\\\\/* | ?:\\\\/OS2\\\\/INSTALL\\\\/* | \\\n  /usr/ucb/* ) ;;\n  *)\n    # OSF1 and SCO ODT 3.0 have their own names for install.\n    # Don't use installbsd from OSF since it installs stuff as root\n    # by default.\n    for ac_prog in ginstall scoinst install; do\n      for ac_exec_ext in '' $ac_executable_extensions; do\n\tif { test -f \"$as_dir/$ac_prog$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_prog$ac_exec_ext\"; }; then\n\t  if test $ac_prog = install &&\n\t    grep dspmsg \"$as_dir/$ac_prog$ac_exec_ext\" >/dev/null 2>&1; then\n\t    # AIX install.  It has an incompatible calling convention.\n\t    :\n\t  elif test $ac_prog = install &&\n\t    grep pwplus \"$as_dir/$ac_prog$ac_exec_ext\" >/dev/null 2>&1; then\n\t    # program-specific install script used by HP pwplus--don't use.\n\t    :\n\t  else\n\t    ac_cv_path_install=\"$as_dir/$ac_prog$ac_exec_ext -c\"\n\t    break 3\n\t  fi\n\tfi\n      done\n    done\n    ;;\nesac\ndone\nIFS=$as_save_IFS\n\n\nfi\n  if test \"${ac_cv_path_install+set}\" = set; then\n    INSTALL=$ac_cv_path_install\n  else\n    # As a last resort, use the slow shell script.  Don't cache a\n    # value for INSTALL within a source directory, because that will\n    # break other packages using the cache if that directory is\n    # removed, or if the value is a relative name.\n    INSTALL=$ac_install_sh\n  fi\nfi\n{ echo \"$as_me:$LINENO: result: $INSTALL\" >&5\necho \"${ECHO_T}$INSTALL\" >&6; }\n\n# Use test -z because SunOS4 sh mishandles braces in ${var-val}.\n# It thinks the first close brace ends the variable substitution.\ntest -z \"$INSTALL_PROGRAM\" && INSTALL_PROGRAM='${INSTALL}'\n\ntest -z \"$INSTALL_SCRIPT\" && INSTALL_SCRIPT='${INSTALL}'\n\ntest -z \"$INSTALL_DATA\" && INSTALL_DATA='${INSTALL} -m 644'\n\n\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n{ echo \"$as_me:$LINENO: checking how to run the C preprocessor\" >&5\necho $ECHO_N \"checking how to run the C preprocessor... $ECHO_C\" >&6; }\n# On Suns, sometimes $CPP names a directory.\nif test -n \"$CPP\" && test -d \"$CPP\"; then\n  CPP=\nfi\nif test -z \"$CPP\"; then\n  if test \"${ac_cv_prog_CPP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n      # Double quotes because CPP needs to be expanded\n    for CPP in \"$CC -E\" \"$CC -E -traditional-cpp\" \"/lib/cpp\"\n    do\n      ac_preproc_ok=false\nfor ac_c_preproc_warn_flag in '' yes\ndo\n  # Use a header file that comes with gcc, so configuring glibc\n  # with a fresh cross-compiler works.\n  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n  # <limits.h> exists even on freestanding compilers.\n  # On the NeXT, cc -E runs the code through the compiler's parser,\n  # not just through cpp. \"Syntax error\" is here to catch this case.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n@%:@ifdef __STDC__\n@%:@ include <limits.h>\n@%:@else\n@%:@ include <assert.h>\n@%:@endif\n\t\t     Syntax error\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  :\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  # Broken: fails on valid input.\ncontinue\nfi\n\nrm -f conftest.err conftest.$ac_ext\n\n  # OK, works on sane cases.  Now check whether nonexistent headers\n  # can be detected and how.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n@%:@include <ac_nonexistent.h>\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  # Broken: success on invalid input.\ncontinue\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  # Passes both tests.\nac_preproc_ok=:\nbreak\nfi\n\nrm -f conftest.err conftest.$ac_ext\n\ndone\n# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.\nrm -f conftest.err conftest.$ac_ext\nif $ac_preproc_ok; then\n  break\nfi\n\n    done\n    ac_cv_prog_CPP=$CPP\n  \nfi\n  CPP=$ac_cv_prog_CPP\nelse\n  ac_cv_prog_CPP=$CPP\nfi\n{ echo \"$as_me:$LINENO: result: $CPP\" >&5\necho \"${ECHO_T}$CPP\" >&6; }\nac_preproc_ok=false\nfor ac_c_preproc_warn_flag in '' yes\ndo\n  # Use a header file that comes with gcc, so configuring glibc\n  # with a fresh cross-compiler works.\n  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n  # <limits.h> exists even on freestanding compilers.\n  # On the NeXT, cc -E runs the code through the compiler's parser,\n  # not just through cpp. \"Syntax error\" is here to catch this case.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n@%:@ifdef __STDC__\n@%:@ include <limits.h>\n@%:@else\n@%:@ include <assert.h>\n@%:@endif\n\t\t     Syntax error\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  :\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  # Broken: fails on valid input.\ncontinue\nfi\n\nrm -f conftest.err conftest.$ac_ext\n\n  # OK, works on sane cases.  Now check whether nonexistent headers\n  # can be detected and how.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n@%:@include <ac_nonexistent.h>\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  # Broken: success on invalid input.\ncontinue\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  # Passes both tests.\nac_preproc_ok=:\nbreak\nfi\n\nrm -f conftest.err conftest.$ac_ext\n\ndone\n# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.\nrm -f conftest.err conftest.$ac_ext\nif $ac_preproc_ok; then\n  :\nelse\n  { { echo \"$as_me:$LINENO: error: C preprocessor \\\"$CPP\\\" fails sanity check\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: C preprocessor \\\"$CPP\\\" fails sanity check\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n\n\n{ echo \"$as_me:$LINENO: checking for grep that handles long lines and -e\" >&5\necho $ECHO_N \"checking for grep that handles long lines and -e... $ECHO_C\" >&6; }\nif test \"${ac_cv_path_GREP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  # Extract the first word of \"grep ggrep\" to use in msg output\nif test -z \"$GREP\"; then\nset dummy grep ggrep; ac_prog_name=$2\nif test \"${ac_cv_path_GREP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_path_GREP_found=false\n# Loop through the user's path and test for each of PROGNAME-LIST\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_prog in grep ggrep; do\n  for ac_exec_ext in '' $ac_executable_extensions; do\n    ac_path_GREP=\"$as_dir/$ac_prog$ac_exec_ext\"\n    { test -f \"$ac_path_GREP\" && $as_test_x \"$ac_path_GREP\"; } || continue\n    # Check for GNU ac_path_GREP and select it if it is found.\n  # Check for GNU $ac_path_GREP\ncase `\"$ac_path_GREP\" --version 2>&1` in\n*GNU*)\n  ac_cv_path_GREP=\"$ac_path_GREP\" ac_path_GREP_found=:;;\n*)\n  ac_count=0\n  echo $ECHO_N \"0123456789$ECHO_C\" >\"conftest.in\"\n  while :\n  do\n    cat \"conftest.in\" \"conftest.in\" >\"conftest.tmp\"\n    mv \"conftest.tmp\" \"conftest.in\"\n    cp \"conftest.in\" \"conftest.nl\"\n    echo 'GREP' >> \"conftest.nl\"\n    \"$ac_path_GREP\" -e 'GREP$' -e '-(cannot match)-' < \"conftest.nl\" >\"conftest.out\" 2>/dev/null || break\n    diff \"conftest.out\" \"conftest.nl\" >/dev/null 2>&1 || break\n    ac_count=`expr $ac_count + 1`\n    if test $ac_count -gt ${ac_path_GREP_max-0}; then\n      # Best one so far, save it but keep looking for a better one\n      ac_cv_path_GREP=\"$ac_path_GREP\"\n      ac_path_GREP_max=$ac_count\n    fi\n    # 10*(2^10) chars as input seems more than enough\n    test $ac_count -gt 10 && break\n  done\n  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;\nesac\n\n\n    $ac_path_GREP_found && break 3\n  done\ndone\n\ndone\nIFS=$as_save_IFS\n\n\nfi\n\nGREP=\"$ac_cv_path_GREP\"\nif test -z \"$GREP\"; then\n  { { echo \"$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin\" >&5\necho \"$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nelse\n  ac_cv_path_GREP=$GREP\nfi\n\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_path_GREP\" >&5\necho \"${ECHO_T}$ac_cv_path_GREP\" >&6; }\n GREP=\"$ac_cv_path_GREP\"\n \n\n{ echo \"$as_me:$LINENO: checking for egrep\" >&5\necho $ECHO_N \"checking for egrep... $ECHO_C\" >&6; }\nif test \"${ac_cv_path_EGREP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1\n   then ac_cv_path_EGREP=\"$GREP -E\"\n   else\n     # Extract the first word of \"egrep\" to use in msg output\nif test -z \"$EGREP\"; then\nset dummy egrep; ac_prog_name=$2\nif test \"${ac_cv_path_EGREP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_path_EGREP_found=false\n# Loop through the user's path and test for each of PROGNAME-LIST\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_prog in egrep; do\n  for ac_exec_ext in '' $ac_executable_extensions; do\n    ac_path_EGREP=\"$as_dir/$ac_prog$ac_exec_ext\"\n    { test -f \"$ac_path_EGREP\" && $as_test_x \"$ac_path_EGREP\"; } || continue\n    # Check for GNU ac_path_EGREP and select it if it is found.\n  # Check for GNU $ac_path_EGREP\ncase `\"$ac_path_EGREP\" --version 2>&1` in\n*GNU*)\n  ac_cv_path_EGREP=\"$ac_path_EGREP\" ac_path_EGREP_found=:;;\n*)\n  ac_count=0\n  echo $ECHO_N \"0123456789$ECHO_C\" >\"conftest.in\"\n  while :\n  do\n    cat \"conftest.in\" \"conftest.in\" >\"conftest.tmp\"\n    mv \"conftest.tmp\" \"conftest.in\"\n    cp \"conftest.in\" \"conftest.nl\"\n    echo 'EGREP' >> \"conftest.nl\"\n    \"$ac_path_EGREP\" 'EGREP$' < \"conftest.nl\" >\"conftest.out\" 2>/dev/null || break\n    diff \"conftest.out\" \"conftest.nl\" >/dev/null 2>&1 || break\n    ac_count=`expr $ac_count + 1`\n    if test $ac_count -gt ${ac_path_EGREP_max-0}; then\n      # Best one so far, save it but keep looking for a better one\n      ac_cv_path_EGREP=\"$ac_path_EGREP\"\n      ac_path_EGREP_max=$ac_count\n    fi\n    # 10*(2^10) chars as input seems more than enough\n    test $ac_count -gt 10 && break\n  done\n  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;\nesac\n\n\n    $ac_path_EGREP_found && break 3\n  done\ndone\n\ndone\nIFS=$as_save_IFS\n\n\nfi\n\nEGREP=\"$ac_cv_path_EGREP\"\nif test -z \"$EGREP\"; then\n  { { echo \"$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin\" >&5\necho \"$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nelse\n  ac_cv_path_EGREP=$EGREP\nfi\n\n\n   fi\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_path_EGREP\" >&5\necho \"${ECHO_T}$ac_cv_path_EGREP\" >&6; }\n EGREP=\"$ac_cv_path_EGREP\"\n \n\nif test $ac_cv_c_compiler_gnu = yes; then\n    { echo \"$as_me:$LINENO: checking whether $CC needs -traditional\" >&5\necho $ECHO_N \"checking whether $CC needs -traditional... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_gcc_traditional+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n    ac_pattern=\"Autoconf.*'x'\"\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <sgtty.h>\nAutoconf TIOCGETP\n_ACEOF\nif (eval \"$ac_cpp conftest.$ac_ext\") 2>&5 |\n  $EGREP \"$ac_pattern\" >/dev/null 2>&1; then\n  ac_cv_prog_gcc_traditional=yes\nelse\n  ac_cv_prog_gcc_traditional=no\nfi\nrm -f conftest*\n\n\n  if test $ac_cv_prog_gcc_traditional = no; then\n    cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <termio.h>\nAutoconf TCGETA\n_ACEOF\nif (eval \"$ac_cpp conftest.$ac_ext\") 2>&5 |\n  $EGREP \"$ac_pattern\" >/dev/null 2>&1; then\n  ac_cv_prog_gcc_traditional=yes\nfi\nrm -f conftest*\n\n  fi\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional\" >&5\necho \"${ECHO_T}$ac_cv_prog_gcc_traditional\" >&6; }\n  if test $ac_cv_prog_gcc_traditional = yes; then\n    CC=\"$CC -traditional\"\n  fi\nfi\n\n{ echo \"$as_me:$LINENO: checking for ANSI C header files\" >&5\necho $ECHO_N \"checking for ANSI C header files... $ECHO_C\" >&6; }\nif test \"${ac_cv_header_stdc+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <stdlib.h>\n#include <stdarg.h>\n#include <string.h>\n#include <float.h>\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_header_stdc=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_header_stdc=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n\nif test $ac_cv_header_stdc = yes; then\n  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <string.h>\n\n_ACEOF\nif (eval \"$ac_cpp conftest.$ac_ext\") 2>&5 |\n  $EGREP \"memchr\" >/dev/null 2>&1; then\n  :\nelse\n  ac_cv_header_stdc=no\nfi\nrm -f conftest*\n\nfi\n\nif test $ac_cv_header_stdc = yes; then\n  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <stdlib.h>\n\n_ACEOF\nif (eval \"$ac_cpp conftest.$ac_ext\") 2>&5 |\n  $EGREP \"free\" >/dev/null 2>&1; then\n  :\nelse\n  ac_cv_header_stdc=no\nfi\nrm -f conftest*\n\nfi\n\nif test $ac_cv_header_stdc = yes; then\n  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.\n  if test \"$cross_compiling\" = yes; then\n  :\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <ctype.h>\n#include <stdlib.h>\n#if ((' ' & 0x0FF) == 0x020)\n# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')\n# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))\n#else\n# define ISLOWER(c) \\\n\t\t   (('a' <= (c) && (c) <= 'i') \\\n\t\t     || ('j' <= (c) && (c) <= 'r') \\\n\t\t     || ('s' <= (c) && (c) <= 'z'))\n# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))\n#endif\n\n#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))\nint\nmain ()\n{\n  int i;\n  for (i = 0; i < 256; i++)\n    if (XOR (islower (i), ISLOWER (i))\n\t|| toupper (i) != TOUPPER (i))\n      return 2;\n  return 0;\n}\n_ACEOF\nrm -f conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n  :\nelse\n  echo \"$as_me: program exited with status $ac_status\" >&5\necho \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n( exit $ac_status )\nac_cv_header_stdc=no\nfi\nrm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext\nfi\n\n\nfi\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_header_stdc\" >&5\necho \"${ECHO_T}$ac_cv_header_stdc\" >&6; }\nif test $ac_cv_header_stdc = yes; then\n  \ncat >>confdefs.h <<\\_ACEOF\n@%:@define STDC_HEADERS 1\n_ACEOF\n\nfi\n\n# On IRIX 5.3, sys/types and inttypes.h are conflicting.\n\n\n\n\n\n\n\n\n\nfor ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \\\n\t\t  inttypes.h stdint.h unistd.h\ndo\nas_ac_Header=`echo \"ac_cv_header_$ac_header\" | $as_tr_sh`\n{ echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n$ac_includes_default\n\n@%:@include <$ac_header>\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  eval \"$as_ac_Header=yes\"\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\teval \"$as_ac_Header=no\"\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\nif test `eval echo '${'$as_ac_Header'}'` = yes; then\n  cat >>confdefs.h <<_ACEOF\n@%:@define `echo \"HAVE_$ac_header\" | $as_tr_cpp` 1\n_ACEOF\n \nfi\n\ndone\n\n\n{ echo \"$as_me:$LINENO: checking for working memcmp\" >&5\necho $ECHO_N \"checking for working memcmp... $ECHO_C\" >&6; }\nif test \"${ac_cv_func_memcmp_working+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test \"$cross_compiling\" = yes; then\n  ac_cv_func_memcmp_working=no\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n$ac_includes_default\nint\nmain ()\n{\n\n  /* Some versions of memcmp are not 8-bit clean.  */\n  char c0 = '\\100', c1 = '\\200', c2 = '\\201';\n  if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)\n    return 1;\n\n  /* The Next x86 OpenStep bug shows up only when comparing 16 bytes\n     or more and with at least one buffer not starting on a 4-byte boundary.\n     William Lewis provided this test program.   */\n  {\n    char foo[21];\n    char bar[21];\n    int i;\n    for (i = 0; i < 4; i++)\n      {\n\tchar *a = foo + i;\n\tchar *b = bar + i;\n\tstrcpy (a, \"--------01111111\");\n\tstrcpy (b, \"--------10000000\");\n\tif (memcmp (a, b, 16) >= 0)\n\t  return 1;\n      }\n    return 0;\n  }\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n  ac_cv_func_memcmp_working=yes\nelse\n  echo \"$as_me: program exited with status $ac_status\" >&5\necho \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n( exit $ac_status )\nac_cv_func_memcmp_working=no\nfi\nrm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext\nfi\n\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func_memcmp_working\" >&5\necho \"${ECHO_T}$ac_cv_func_memcmp_working\" >&6; }\ntest $ac_cv_func_memcmp_working = no && case \" $LIB@&t@OBJS \" in\n  *\" memcmp.$ac_objext \"* ) ;;\n  *) LIB@&t@OBJS=\"$LIB@&t@OBJS memcmp.$ac_objext\"\n ;;\nesac\n\n\n\nfor ac_header in stdlib.h\ndo\nas_ac_Header=`echo \"ac_cv_header_$ac_header\" | $as_tr_sh`\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  { echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\nelse\n  # Is the header compilable?\n{ echo \"$as_me:$LINENO: checking $ac_header usability\" >&5\necho $ECHO_N \"checking $ac_header usability... $ECHO_C\" >&6; }\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n$ac_includes_default\n@%:@include <$ac_header>\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_header_compiler=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_header_compiler=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n{ echo \"$as_me:$LINENO: result: $ac_header_compiler\" >&5\necho \"${ECHO_T}$ac_header_compiler\" >&6; }\n\n# Is the header present?\n{ echo \"$as_me:$LINENO: checking $ac_header presence\" >&5\necho $ECHO_N \"checking $ac_header presence... $ECHO_C\" >&6; }\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n@%:@include <$ac_header>\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  ac_header_preproc=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  ac_header_preproc=no\nfi\n\nrm -f conftest.err conftest.$ac_ext\n{ echo \"$as_me:$LINENO: result: $ac_header_preproc\" >&5\necho \"${ECHO_T}$ac_header_preproc\" >&6; }\n\n# So?  What about this header?\ncase $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in\n  yes:no: )\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!\" >&5\necho \"$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result\" >&5\necho \"$as_me: WARNING: $ac_header: proceeding with the compiler's result\" >&2;}\n    ac_header_preproc=yes\n    ;;\n  no:yes:* )\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled\" >&5\necho \"$as_me: WARNING: $ac_header: present but cannot be compiled\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?\" >&5\necho \"$as_me: WARNING: $ac_header:     check for missing prerequisite headers?\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation\" >&5\necho \"$as_me: WARNING: $ac_header: see the Autoconf documentation\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header:     section \\\"Present But Cannot Be Compiled\\\"\" >&5\necho \"$as_me: WARNING: $ac_header:     section \\\"Present But Cannot Be Compiled\\\"\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result\" >&5\necho \"$as_me: WARNING: $ac_header: proceeding with the preprocessor's result\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence\" >&5\necho \"$as_me: WARNING: $ac_header: in the future, the compiler will take precedence\" >&2;}\n    \n    ;;\nesac\n{ echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  eval \"$as_ac_Header=\\$ac_header_preproc\"\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\n\nfi\nif test `eval echo '${'$as_ac_Header'}'` = yes; then\n  cat >>confdefs.h <<_ACEOF\n@%:@define `echo \"HAVE_$ac_header\" | $as_tr_cpp` 1\n_ACEOF\n \nfi\n\ndone\n\n{ echo \"$as_me:$LINENO: checking for GNU libc compatible malloc\" >&5\necho $ECHO_N \"checking for GNU libc compatible malloc... $ECHO_C\" >&6; }\nif test \"${ac_cv_func_malloc_0_nonnull+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test \"$cross_compiling\" = yes; then\n  ac_cv_func_malloc_0_nonnull=no\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#if defined STDC_HEADERS || defined HAVE_STDLIB_H\n# include <stdlib.h>\n#else\nchar *malloc ();\n#endif\n\nint\nmain ()\n{\nreturn ! malloc (0);\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n  ac_cv_func_malloc_0_nonnull=yes\nelse\n  echo \"$as_me: program exited with status $ac_status\" >&5\necho \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n( exit $ac_status )\nac_cv_func_malloc_0_nonnull=no\nfi\nrm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext\nfi\n\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull\" >&5\necho \"${ECHO_T}$ac_cv_func_malloc_0_nonnull\" >&6; }\nif test $ac_cv_func_malloc_0_nonnull = yes; then\n  \ncat >>confdefs.h <<\\_ACEOF\n@%:@define HAVE_MALLOC 1\n_ACEOF\n\nelse\n  cat >>confdefs.h <<\\_ACEOF\n@%:@define HAVE_MALLOC 0\n_ACEOF\n\n   case \" $LIB@&t@OBJS \" in\n  *\" malloc.$ac_objext \"* ) ;;\n  *) LIB@&t@OBJS=\"$LIB@&t@OBJS malloc.$ac_objext\"\n ;;\nesac\n\n   \ncat >>confdefs.h <<\\_ACEOF\n@%:@define malloc rpl_malloc\n_ACEOF\n\nfi\n\n\n\n{ echo \"$as_me:$LINENO: checking for working strtod\" >&5\necho $ECHO_N \"checking for working strtod... $ECHO_C\" >&6; }\nif test \"${ac_cv_func_strtod+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test \"$cross_compiling\" = yes; then\n  ac_cv_func_strtod=no\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\n$ac_includes_default\n#ifndef strtod\ndouble strtod ();\n#endif\nint\nmain()\n{\n  {\n    /* Some versions of Linux strtod mis-parse strings with leading '+'.  */\n    char *string = \" +69\";\n    char *term;\n    double value;\n    value = strtod (string, &term);\n    if (value != 69 || term != (string + 4))\n      return 1;\n  }\n\n  {\n    /* Under Solaris 2.4, strtod returns the wrong value for the\n       terminating character under some conditions.  */\n    char *string = \"NaN\";\n    char *term;\n    strtod (string, &term);\n    if (term != string && *(term - 1) == 0)\n      return 1;\n  }\n  return 0;\n}\n\n_ACEOF\nrm -f conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n  ac_cv_func_strtod=yes\nelse\n  echo \"$as_me: program exited with status $ac_status\" >&5\necho \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n( exit $ac_status )\nac_cv_func_strtod=no\nfi\nrm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext\nfi\n\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func_strtod\" >&5\necho \"${ECHO_T}$ac_cv_func_strtod\" >&6; }\nif test $ac_cv_func_strtod = no; then\n  case \" $LIB@&t@OBJS \" in\n  *\" strtod.$ac_objext \"* ) ;;\n  *) LIB@&t@OBJS=\"$LIB@&t@OBJS strtod.$ac_objext\"\n ;;\nesac\n\n{ echo \"$as_me:$LINENO: checking for pow\" >&5\necho $ECHO_N \"checking for pow... $ECHO_C\" >&6; }\nif test \"${ac_cv_func_pow+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n/* Define pow to an innocuous variant, in case <limits.h> declares pow.\n   For example, HP-UX 11i <limits.h> declares gettimeofday.  */\n#define pow innocuous_pow\n\n/* System header to define __stub macros and hopefully few prototypes,\n    which can conflict with char pow (); below.\n    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n    <limits.h> exists even on freestanding compilers.  */\n\n#ifdef __STDC__\n# include <limits.h>\n#else\n# include <assert.h>\n#endif\n\n#undef pow\n\n/* Override any GCC internal prototype to avoid an error.\n   Use char because int might match the return type of a GCC\n   builtin and then its argument prototype would still apply.  */\n#ifdef __cplusplus\nextern \"C\"\n#endif\nchar pow ();\n/* The GNU C library defines this for functions which it implements\n    to always fail with ENOSYS.  Some functions are actually named\n    something starting with __ and the normal name is an alias.  */\n#if defined __stub_pow || defined __stub___pow\nchoke me\n#endif\n\nint\nmain ()\n{\nreturn pow ();\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest$ac_exeext &&\n       $as_test_x conftest$ac_exeext; then\n  ac_cv_func_pow=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_func_pow=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \\\n      conftest$ac_exeext conftest.$ac_ext\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func_pow\" >&5\necho \"${ECHO_T}$ac_cv_func_pow\" >&6; }\n\nif test $ac_cv_func_pow = no; then\n  { echo \"$as_me:$LINENO: checking for pow in -lm\" >&5\necho $ECHO_N \"checking for pow in -lm... $ECHO_C\" >&6; }\nif test \"${ac_cv_lib_m_pow+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_check_lib_save_LIBS=$LIBS\nLIBS=\"-lm  $LIBS\"\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\n/* Override any GCC internal prototype to avoid an error.\n   Use char because int might match the return type of a GCC\n   builtin and then its argument prototype would still apply.  */\n#ifdef __cplusplus\nextern \"C\"\n#endif\nchar pow ();\nint\nmain ()\n{\nreturn pow ();\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest$ac_exeext &&\n       $as_test_x conftest$ac_exeext; then\n  ac_cv_lib_m_pow=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_lib_m_pow=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \\\n      conftest$ac_exeext conftest.$ac_ext\nLIBS=$ac_check_lib_save_LIBS\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_lib_m_pow\" >&5\necho \"${ECHO_T}$ac_cv_lib_m_pow\" >&6; }\nif test $ac_cv_lib_m_pow = yes; then\n  POW_LIB=-lm\nelse\n  { echo \"$as_me:$LINENO: WARNING: cannot find library containing definition of pow\" >&5\necho \"$as_me: WARNING: cannot find library containing definition of pow\" >&2;}\nfi\n\nfi\n\nfi\n\n{ echo \"$as_me:$LINENO: checking return type of signal handlers\" >&5\necho $ECHO_N \"checking return type of signal handlers... $ECHO_C\" >&6; }\nif test \"${ac_cv_type_signal+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <sys/types.h>\n#include <signal.h>\n\nint\nmain ()\n{\nreturn *(signal (0, 0)) (0) == 1;\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_type_signal=int\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_type_signal=void\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_type_signal\" >&5\necho \"${ECHO_T}$ac_cv_type_signal\" >&6; }\n\ncat >>confdefs.h <<_ACEOF\n@%:@define RETSIGTYPE $ac_cv_type_signal\n_ACEOF\n\n\n\nfor ac_func in vprintf\ndo\nas_ac_var=`echo \"ac_cv_func_$ac_func\" | $as_tr_sh`\n{ echo \"$as_me:$LINENO: checking for $ac_func\" >&5\necho $ECHO_N \"checking for $ac_func... $ECHO_C\" >&6; }\nif { as_var=$as_ac_var; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.\n   For example, HP-UX 11i <limits.h> declares gettimeofday.  */\n#define $ac_func innocuous_$ac_func\n\n/* System header to define __stub macros and hopefully few prototypes,\n    which can conflict with char $ac_func (); below.\n    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n    <limits.h> exists even on freestanding compilers.  */\n\n#ifdef __STDC__\n# include <limits.h>\n#else\n# include <assert.h>\n#endif\n\n#undef $ac_func\n\n/* Override any GCC internal prototype to avoid an error.\n   Use char because int might match the return type of a GCC\n   builtin and then its argument prototype would still apply.  */\n#ifdef __cplusplus\nextern \"C\"\n#endif\nchar $ac_func ();\n/* The GNU C library defines this for functions which it implements\n    to always fail with ENOSYS.  Some functions are actually named\n    something starting with __ and the normal name is an alias.  */\n#if defined __stub_$ac_func || defined __stub___$ac_func\nchoke me\n#endif\n\nint\nmain ()\n{\nreturn $ac_func ();\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest$ac_exeext &&\n       $as_test_x conftest$ac_exeext; then\n  eval \"$as_ac_var=yes\"\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\teval \"$as_ac_var=no\"\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \\\n      conftest$ac_exeext conftest.$ac_ext\nfi\nac_res=`eval echo '${'$as_ac_var'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\nif test `eval echo '${'$as_ac_var'}'` = yes; then\n  cat >>confdefs.h <<_ACEOF\n@%:@define `echo \"HAVE_$ac_func\" | $as_tr_cpp` 1\n_ACEOF\n \n{ echo \"$as_me:$LINENO: checking for _doprnt\" >&5\necho $ECHO_N \"checking for _doprnt... $ECHO_C\" >&6; }\nif test \"${ac_cv_func__doprnt+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n/* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt.\n   For example, HP-UX 11i <limits.h> declares gettimeofday.  */\n#define _doprnt innocuous__doprnt\n\n/* System header to define __stub macros and hopefully few prototypes,\n    which can conflict with char _doprnt (); below.\n    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n    <limits.h> exists even on freestanding compilers.  */\n\n#ifdef __STDC__\n# include <limits.h>\n#else\n# include <assert.h>\n#endif\n\n#undef _doprnt\n\n/* Override any GCC internal prototype to avoid an error.\n   Use char because int might match the return type of a GCC\n   builtin and then its argument prototype would still apply.  */\n#ifdef __cplusplus\nextern \"C\"\n#endif\nchar _doprnt ();\n/* The GNU C library defines this for functions which it implements\n    to always fail with ENOSYS.  Some functions are actually named\n    something starting with __ and the normal name is an alias.  */\n#if defined __stub__doprnt || defined __stub____doprnt\nchoke me\n#endif\n\nint\nmain ()\n{\nreturn _doprnt ();\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest$ac_exeext &&\n       $as_test_x conftest$ac_exeext; then\n  ac_cv_func__doprnt=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_func__doprnt=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \\\n      conftest$ac_exeext conftest.$ac_ext\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func__doprnt\" >&5\necho \"${ECHO_T}$ac_cv_func__doprnt\" >&6; }\nif test $ac_cv_func__doprnt = yes; then\n  \ncat >>confdefs.h <<\\_ACEOF\n@%:@define HAVE_DOPRNT 1\n_ACEOF\n\nfi\n\nfi\ndone\n\n\n\n# Make sure we can run config.sub.\n$SHELL \"$ac_aux_dir/config.sub\" sun4 >/dev/null 2>&1 ||\n  { { echo \"$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub\" >&5\necho \"$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub\" >&2;}\n   { (exit 1); exit 1; }; }\n\n{ echo \"$as_me:$LINENO: checking build system type\" >&5\necho $ECHO_N \"checking build system type... $ECHO_C\" >&6; }\nif test \"${ac_cv_build+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_build_alias=$build_alias\ntest \"x$ac_build_alias\" = x &&\n  ac_build_alias=`$SHELL \"$ac_aux_dir/config.guess\"`\ntest \"x$ac_build_alias\" = x &&\n  { { echo \"$as_me:$LINENO: error: cannot guess build type; you must specify one\" >&5\necho \"$as_me: error: cannot guess build type; you must specify one\" >&2;}\n   { (exit 1); exit 1; }; }\nac_cv_build=`$SHELL \"$ac_aux_dir/config.sub\" $ac_build_alias` ||\n  { { echo \"$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed\" >&5\necho \"$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed\" >&2;}\n   { (exit 1); exit 1; }; }\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_build\" >&5\necho \"${ECHO_T}$ac_cv_build\" >&6; }\ncase $ac_cv_build in\n*-*-*) ;;\n*) { { echo \"$as_me:$LINENO: error: invalid value of canonical build\" >&5\necho \"$as_me: error: invalid value of canonical build\" >&2;}\n   { (exit 1); exit 1; }; };;\nesac\nbuild=$ac_cv_build\nac_save_IFS=$IFS; IFS='-'\nset x $ac_cv_build\nshift\nbuild_cpu=$1\nbuild_vendor=$2\nshift; shift\n# Remember, the first character of IFS is used to create $*,\n# except with old shells:\nbuild_os=$*\nIFS=$ac_save_IFS\ncase $build_os in *\\ *) build_os=`echo \"$build_os\" | sed 's/ /-/g'`;; esac\n\n\n{ echo \"$as_me:$LINENO: checking host system type\" >&5\necho $ECHO_N \"checking host system type... $ECHO_C\" >&6; }\nif test \"${ac_cv_host+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test \"x$host_alias\" = x; then\n  ac_cv_host=$ac_cv_build\nelse\n  ac_cv_host=`$SHELL \"$ac_aux_dir/config.sub\" $host_alias` ||\n    { { echo \"$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed\" >&5\necho \"$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_host\" >&5\necho \"${ECHO_T}$ac_cv_host\" >&6; }\ncase $ac_cv_host in\n*-*-*) ;;\n*) { { echo \"$as_me:$LINENO: error: invalid value of canonical host\" >&5\necho \"$as_me: error: invalid value of canonical host\" >&2;}\n   { (exit 1); exit 1; }; };;\nesac\nhost=$ac_cv_host\nac_save_IFS=$IFS; IFS='-'\nset x $ac_cv_host\nshift\nhost_cpu=$1\nhost_vendor=$2\nshift; shift\n# Remember, the first character of IFS is used to create $*,\n# except with old shells:\nhost_os=$*\nIFS=$ac_save_IFS\ncase $host_os in *\\ *) host_os=`echo \"$host_os\" | sed 's/ /-/g'`;; esac\n\n\n\n\n# Check whether --with-jplex was given.\nif test \"${with_jplex+set}\" = set; then\n  withval=$with_jplex; jplex_path=$withval\nfi\n\nif test  -n \"$jplex_path\"  ; then\nJPLEX_PATH=\"${jplex_path}\"\nelse\nJPLEX_PATH=\"${HOME}/plex3/jplex.jar\"\nfi\n\n\necho \"\\`jplex.path\\` <- \\\"${JPLEX_PATH}\\\";\" > R/config.R\n\n: ${R_HOME=`R RHOME`}\nif test -z \"${R_HOME}\"; then\necho \"could not determine R_HOME\"\nexit 1\nfi\n\nCC=`\"${R_HOME}/bin/R\" CMD config CC`\nCFLAGS=`\"${R_HOME}/bin/R\" CMD config CFLAGS`\nJAVA_HOME=`\"${R_HOME}/bin/R\" CMD config JAVA_HOME`\nJAVA_LIBS=`\"${R_HOME}/bin/R\" CMD config JAVA_LIBS`\nJAVA_CPPFLAGS=`\"${R_HOME}/bin/R\" CMD config JAVA_CPPFLAGS`\n\n\nJAVA_LD_LIBRARY_PATH=`grep -e \"^JAVA_LD_LIBRARY_PATH = \" ${R_HOME}/etc/Makeconf | awk '{print $3}'`\n\nCPPFLAGS=\"${JAVA_CPPFLAGS} ${CPPFLAGS}\"\n\nLIBS=\"${JAVA_LIBS} -Wl,-rpath,${JAVA_LD_LIBRARY_PATH} ${LIBS}\"\n\n\n\n\n\n\n\nfor ac_header in jni.h\ndo\nas_ac_Header=`echo \"ac_cv_header_$ac_header\" | $as_tr_sh`\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  { echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\nelse\n  # Is the header compilable?\n{ echo \"$as_me:$LINENO: checking $ac_header usability\" >&5\necho $ECHO_N \"checking $ac_header usability... $ECHO_C\" >&6; }\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n$ac_includes_default\n@%:@include <$ac_header>\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_header_compiler=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_header_compiler=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n{ echo \"$as_me:$LINENO: result: $ac_header_compiler\" >&5\necho \"${ECHO_T}$ac_header_compiler\" >&6; }\n\n# Is the header present?\n{ echo \"$as_me:$LINENO: checking $ac_header presence\" >&5\necho $ECHO_N \"checking $ac_header presence... $ECHO_C\" >&6; }\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n@%:@include <$ac_header>\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  ac_header_preproc=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  ac_header_preproc=no\nfi\n\nrm -f conftest.err conftest.$ac_ext\n{ echo \"$as_me:$LINENO: result: $ac_header_preproc\" >&5\necho \"${ECHO_T}$ac_header_preproc\" >&6; }\n\n# So?  What about this header?\ncase $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in\n  yes:no: )\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!\" >&5\necho \"$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result\" >&5\necho \"$as_me: WARNING: $ac_header: proceeding with the compiler's result\" >&2;}\n    ac_header_preproc=yes\n    ;;\n  no:yes:* )\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled\" >&5\necho \"$as_me: WARNING: $ac_header: present but cannot be compiled\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?\" >&5\necho \"$as_me: WARNING: $ac_header:     check for missing prerequisite headers?\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation\" >&5\necho \"$as_me: WARNING: $ac_header: see the Autoconf documentation\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header:     section \\\"Present But Cannot Be Compiled\\\"\" >&5\necho \"$as_me: WARNING: $ac_header:     section \\\"Present But Cannot Be Compiled\\\"\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result\" >&5\necho \"$as_me: WARNING: $ac_header: proceeding with the preprocessor's result\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence\" >&5\necho \"$as_me: WARNING: $ac_header: in the future, the compiler will take precedence\" >&2;}\n    \n    ;;\nesac\n{ echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  eval \"$as_ac_Header=\\$ac_header_preproc\"\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\n\nfi\nif test `eval echo '${'$as_ac_Header'}'` = yes; then\n  cat >>confdefs.h <<_ACEOF\n@%:@define `echo \"HAVE_$ac_header\" | $as_tr_cpp` 1\n_ACEOF\n \nfi\n\ndone\n\n\tif test \"${ac_cv_header_jni_h}\" = no ; then \n\t{ { echo \"$as_me:$LINENO: error: \\\"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \\\"\" >&5\necho \"$as_me: error: \\\"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \\\"\" >&2;}\n   { (exit 1); exit 1; }; }\n\tfi\n\nac_config_files=\"$ac_config_files src/Makevars\"\n\ncat >confcache <<\\_ACEOF\n# This file is a shell script that caches the results of configure\n# tests run on this system so they can be shared between configure\n# scripts and configure runs, see configure's option --config-cache.\n# It is not useful on other systems.  If it contains results you don't\n# want to keep, you may remove or edit it.\n#\n# config.status only pays attention to the cache file if you give it\n# the --recheck option to rerun configure.\n#\n# `ac_cv_env_foo' variables (set or unset) will be overridden when\n# loading this file, other *unset* `ac_cv_foo' will be assigned the\n# following values.\n\n_ACEOF\n\n# The following way of writing the cache mishandles newlines in values,\n# but we know of no workaround that is simple, portable, and efficient.\n# So, we kill variables containing newlines.\n# Ultrix sh set writes to stderr and can't be redirected directly,\n# and sets the high bit in the cache file unless we assign to the vars.\n(\n  for ac_var in `(set) 2>&1 | sed -n 's/^\\([a-zA-Z_][a-zA-Z0-9_]*\\)=.*/\\1/p'`; do\n    eval ac_val=\\$$ac_var\n    case $ac_val in #(\n    *${as_nl}*)\n      case $ac_var in #(\n      *_cv_*) { echo \"$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline.\" >&5\necho \"$as_me: WARNING: Cache variable $ac_var contains a newline.\" >&2;} ;;\n      esac\n      case $ac_var in #(\n      _ | IFS | as_nl) ;; #(\n      *) $as_unset $ac_var ;;\n      esac ;;\n    esac\n  done\n\n  (set) 2>&1 |\n    case $as_nl`(ac_space=' '; set) 2>&1` in #(\n    *${as_nl}ac_space=\\ *)\n      # `set' does not quote correctly, so add quotes (double-quote\n      # substitution turns \\\\\\\\ into \\\\, and sed turns \\\\ into \\).\n      sed -n \\\n\t\"s/'/'\\\\\\\\''/g;\n\t  s/^\\\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\\\)=\\\\(.*\\\\)/\\\\1='\\\\2'/p\"\n      ;; #(\n    *)\n      # `set' quotes correctly as required by POSIX, so do not add quotes.\n      sed -n \"/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p\"\n      ;;\n    esac |\n    sort\n) |\n  sed '\n     /^ac_cv_env_/b end\n     t clear\n     :clear\n     s/^\\([^=]*\\)=\\(.*[{}].*\\)$/test \"${\\1+set}\" = set || &/\n     t end\n     s/^\\([^=]*\\)=\\(.*\\)$/\\1=${\\1=\\2}/\n     :end' >>confcache\nif diff \"$cache_file\" confcache >/dev/null 2>&1; then :; else\n  if test -w \"$cache_file\"; then\n    test \"x$cache_file\" != \"x/dev/null\" &&\n      { echo \"$as_me:$LINENO: updating cache $cache_file\" >&5\necho \"$as_me: updating cache $cache_file\" >&6;}\n    cat confcache >$cache_file\n  else\n    { echo \"$as_me:$LINENO: not updating unwritable cache $cache_file\" >&5\necho \"$as_me: not updating unwritable cache $cache_file\" >&6;}\n  fi\nfi\nrm -f confcache\n\ntest \"x$prefix\" = xNONE && prefix=$ac_default_prefix\n# Let make expand exec_prefix.\ntest \"x$exec_prefix\" = xNONE && exec_prefix='${prefix}'\n\n# Transform confdefs.h into DEFS.\n# Protect against shell expansion while executing Makefile rules.\n# Protect against Makefile macro expansion.\n#\n# If the first sed substitution is executed (which looks for macros that\n# take arguments), then branch to the quote section.  Otherwise,\n# look for a macro that doesn't take arguments.\nac_script='\nt clear\n:clear\ns/^[\t ]*#[\t ]*define[\t ][\t ]*\\([^\t (][^\t (]*([^)]*)\\)[\t ]*\\(.*\\)/-D\\1=\\2/g\nt quote\ns/^[\t ]*#[\t ]*define[\t ][\t ]*\\([^\t ][^\t ]*\\)[\t ]*\\(.*\\)/-D\\1=\\2/g\nt quote\nb any\n:quote\ns/[\t `~#$^&*(){}\\\\|;'\\''\"<>?]/\\\\&/g\ns/\\[/\\\\&/g\ns/\\]/\\\\&/g\ns/\\$/$$/g\nH\n:any\n${\n\tg\n\ts/^\\n//\n\ts/\\n/ /g\n\tp\n}\n'\nDEFS=`sed -n \"$ac_script\" confdefs.h`\n\n\nac_libobjs=\nac_ltlibobjs=\nfor ac_i in : $LIB@&t@OBJS; do test \"x$ac_i\" = x: && continue\n  # 1. Remove the extension, and $U if already installed.\n  ac_script='s/\\$U\\././;s/\\.o$//;s/\\.obj$//'\n  ac_i=`echo \"$ac_i\" | sed \"$ac_script\"`\n  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR\n  #    will be set to the directory where LIBOBJS objects are built.\n  ac_libobjs=\"$ac_libobjs \\${LIBOBJDIR}$ac_i\\$U.$ac_objext\"\n  ac_ltlibobjs=\"$ac_ltlibobjs \\${LIBOBJDIR}$ac_i\"'$U.lo'\ndone\nLIB@&t@OBJS=$ac_libobjs\n\nLTLIBOBJS=$ac_ltlibobjs\n\n\n\n: ${CONFIG_STATUS=./config.status}\nac_clean_files_save=$ac_clean_files\nac_clean_files=\"$ac_clean_files $CONFIG_STATUS\"\n{ echo \"$as_me:$LINENO: creating $CONFIG_STATUS\" >&5\necho \"$as_me: creating $CONFIG_STATUS\" >&6;}\ncat >$CONFIG_STATUS <<_ACEOF\n#! $SHELL\n# Generated by $as_me.\n# Run this file to recreate the current configuration.\n# Compiler output produced by configure, useful for debugging\n# configure, is in config.log if it exists.\n\ndebug=false\nac_cs_recheck=false\nac_cs_silent=false\nSHELL=\\${CONFIG_SHELL-$SHELL}\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\n## --------------------- ##\n## M4sh Initialization.  ##\n## --------------------- ##\n\n# Be more Bourne compatible\nDUALCASE=1; export DUALCASE # for MKS sh\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\n  setopt NO_GLOB_SUBST\nelse\n  case `(set -o) 2>/dev/null` in\n  *posix*) set -o posix ;;\nesac\n\nfi\n\n\n\n\n# PATH needs CR\n# Avoid depending upon Character Ranges.\nas_cr_letters='abcdefghijklmnopqrstuvwxyz'\nas_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nas_cr_Letters=$as_cr_letters$as_cr_LETTERS\nas_cr_digits='0123456789'\nas_cr_alnum=$as_cr_Letters$as_cr_digits\n\n# The user is always right.\nif test \"${PATH_SEPARATOR+set}\" != set; then\n  echo \"#! /bin/sh\" >conf$$.sh\n  echo  \"exit 0\"   >>conf$$.sh\n  chmod +x conf$$.sh\n  if (PATH=\"/nonexistent;.\"; conf$$.sh) >/dev/null 2>&1; then\n    PATH_SEPARATOR=';'\n  else\n    PATH_SEPARATOR=:\n  fi\n  rm -f conf$$.sh\nfi\n\n# Support unset when possible.\nif ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then\n  as_unset=unset\nelse\n  as_unset=false\nfi\n\n\n# IFS\n# We need space, tab and new line, in precisely that order.  Quoting is\n# there to prevent editors from complaining about space-tab.\n# (If _AS_PATH_WALK were called with IFS unset, it would disable word\n# splitting by setting IFS to empty value.)\nas_nl='\n'\nIFS=\" \"\"\t$as_nl\"\n\n# Find who we are.  Look in the path if we contain no directory separator.\ncase $0 in\n  *[\\\\/]* ) as_myself=$0 ;;\n  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  test -r \"$as_dir/$0\" && as_myself=$as_dir/$0 && break\ndone\nIFS=$as_save_IFS\n\n     ;;\nesac\n# We did not find ourselves, most probably we were run as `sh COMMAND'\n# in which case we are not to be found in the path.\nif test \"x$as_myself\" = x; then\n  as_myself=$0\nfi\nif test ! -f \"$as_myself\"; then\n  echo \"$as_myself: error: cannot find myself; rerun with an absolute file name\" >&2\n  { (exit 1); exit 1; }\nfi\n\n# Work around bugs in pre-3.0 UWIN ksh.\nfor as_var in ENV MAIL MAILPATH\ndo ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\ndone\nPS1='$ '\nPS2='> '\nPS4='+ '\n\n# NLS nuisances.\nfor as_var in \\\n  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \\\n  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \\\n  LC_TELEPHONE LC_TIME\ndo\n  if (set +x; test -z \"`(eval $as_var=C; export $as_var) 2>&1`\"); then\n    eval $as_var=C; export $as_var\n  else\n    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\n  fi\ndone\n\n# Required to use basename.\nif expr a : '\\(a\\)' >/dev/null 2>&1 &&\n   test \"X`expr 00001 : '.*\\(...\\)'`\" = X001; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nif (basename -- /) >/dev/null 2>&1 && test \"X`basename -- / 2>&1`\" = \"X/\"; then\n  as_basename=basename\nelse\n  as_basename=false\nfi\n\n\n# Name of the executable.\nas_me=`$as_basename -- \"$0\" ||\n$as_expr X/\"$0\" : '.*/\\([^/][^/]*\\)/*$' \\| \\\n\t X\"$0\" : 'X\\(//\\)$' \\| \\\n\t X\"$0\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X/\"$0\" |\n    sed '/^.*\\/\\([^/][^/]*\\)\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\/\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\/\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n\n# CDPATH.\n$as_unset CDPATH\n\n\n\n  as_lineno_1=$LINENO\n  as_lineno_2=$LINENO\n  test \"x$as_lineno_1\" != \"x$as_lineno_2\" &&\n  test \"x`expr $as_lineno_1 + 1`\" = \"x$as_lineno_2\" || {\n\n  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO\n  # uniformly replaced by the line number.  The first 'sed' inserts a\n  # line-number line after each line using $LINENO; the second 'sed'\n  # does the real work.  The second script uses 'N' to pair each\n  # line-number line with the line containing $LINENO, and appends\n  # trailing '-' during substitution so that $LINENO is not a special\n  # case at line end.\n  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the\n  # scripts with optimization help from Paolo Bonzini.  Blame Lee\n  # E. McMahon (1931-1989) for sed's syntax.  :-)\n  sed -n '\n    p\n    /[$]LINENO/=\n  ' <$as_myself |\n    sed '\n      s/[$]LINENO.*/&-/\n      t lineno\n      b\n      :lineno\n      N\n      :loop\n      s/[$]LINENO\\([^'$as_cr_alnum'_].*\\n\\)\\(.*\\)/\\2\\1\\2/\n      t loop\n      s/-\\n.*//\n    ' >$as_me.lineno &&\n  chmod +x \"$as_me.lineno\" ||\n    { echo \"$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell\" >&2\n   { (exit 1); exit 1; }; }\n\n  # Don't try to exec as it changes $[0], causing all sort of problems\n  # (the dirname of $[0] is not the place where we might find the\n  # original and so on.  Autoconf is especially sensitive to this).\n  . \"./$as_me.lineno\"\n  # Exit status is that of the last command.\n  exit\n}\n\n\nif (as_dir=`dirname -- /` && test \"X$as_dir\" = X/) >/dev/null 2>&1; then\n  as_dirname=dirname\nelse\n  as_dirname=false\nfi\n\nECHO_C= ECHO_N= ECHO_T=\ncase `echo -n x` in\n-n*)\n  case `echo 'x\\c'` in\n  *c*) ECHO_T='\t';;\t# ECHO_T is single tab character.\n  *)   ECHO_C='\\c';;\n  esac;;\n*)\n  ECHO_N='-n';;\nesac\n\nif expr a : '\\(a\\)' >/dev/null 2>&1 &&\n   test \"X`expr 00001 : '.*\\(...\\)'`\" = X001; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nrm -f conf$$ conf$$.exe conf$$.file\nif test -d conf$$.dir; then\n  rm -f conf$$.dir/conf$$.file\nelse\n  rm -f conf$$.dir\n  mkdir conf$$.dir\nfi\necho >conf$$.file\nif ln -s conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s='ln -s'\n  # ... but there are two gotchas:\n  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.\n  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.\n  # In both cases, we have to default to `cp -p'.\n  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||\n    as_ln_s='cp -p'\nelif ln conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s=ln\nelse\n  as_ln_s='cp -p'\nfi\nrm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file\nrmdir conf$$.dir 2>/dev/null\n\nif mkdir -p . 2>/dev/null; then\n  as_mkdir_p=:\nelse\n  test -d ./-p && rmdir ./-p\n  as_mkdir_p=false\nfi\n\nif test -x / >/dev/null 2>&1; then\n  as_test_x='test -x'\nelse\n  if ls -dL / >/dev/null 2>&1; then\n    as_ls_L_option=L\n  else\n    as_ls_L_option=\n  fi\n  as_test_x='\n    eval sh -c '\\''\n      if test -d \"$1\"; then\n        test -d \"$1/.\";\n      else\n\tcase $1 in\n        -*)set \"./$1\";;\n\tesac;\n\tcase `ls -ld'$as_ls_L_option' \"$1\" 2>/dev/null` in\n\t???[sx]*):;;*)false;;esac;fi\n    '\\'' sh\n  '\nfi\nas_executable_p=$as_test_x\n\n# Sed expression to map a string onto a valid CPP name.\nas_tr_cpp=\"eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'\"\n\n# Sed expression to map a string onto a valid variable name.\nas_tr_sh=\"eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'\"\n\n\nexec 6>&1\n\n# Save the log message, to keep $[0] and so on meaningful, and to\n# report actual input values of CONFIG_FILES etc. instead of their\n# values after options handling.\nac_log=\"\nThis file was extended by $as_me, which was\ngenerated by GNU Autoconf 2.61.  Invocation command line was\n\n  CONFIG_FILES    = $CONFIG_FILES\n  CONFIG_HEADERS  = $CONFIG_HEADERS\n  CONFIG_LINKS    = $CONFIG_LINKS\n  CONFIG_COMMANDS = $CONFIG_COMMANDS\n  $ $0 $@\n\non `(hostname || uname -n) 2>/dev/null | sed 1q`\n\"\n\n_ACEOF\n\ncat >>$CONFIG_STATUS <<_ACEOF\n# Files that config.status was made for.\nconfig_files=\"$ac_config_files\"\n\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\nac_cs_usage=\"\\\n\\`$as_me' instantiates files from templates according to the\ncurrent configuration.\n\nUsage: $0 [OPTIONS] [FILE]...\n\n  -h, --help       print this help, then exit\n  -V, --version    print version number and configuration settings, then exit\n  -q, --quiet      do not print progress messages\n  -d, --debug      don't remove temporary files\n      --recheck    update $as_me by reconfiguring in the same conditions\n  --file=FILE[:TEMPLATE]\n\t\t   instantiate the configuration file FILE\n\nConfiguration files:\n$config_files\n\nReport bugs to <bug-autoconf@gnu.org>.\"\n\n_ACEOF\ncat >>$CONFIG_STATUS <<_ACEOF\nac_cs_version=\"\\\\\nconfig.status\nconfigured by $0, generated by GNU Autoconf 2.61,\n  with options \\\\\"`echo \"$ac_configure_args\" | sed 's/^ //; s/[\\\\\"\"\\`\\$]/\\\\\\\\&/g'`\\\\\"\n\nCopyright (C) 2006 Free Software Foundation, Inc.\nThis config.status script is free software; the Free Software Foundation\ngives unlimited permission to copy, distribute and modify it.\"\n\nac_pwd='$ac_pwd'\nsrcdir='$srcdir'\nINSTALL='$INSTALL'\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\n# If no file are specified by the user, then we need to provide default\n# value.  By we need to know if files were specified by the user.\nac_need_defaults=:\nwhile test $# != 0\ndo\n  case $1 in\n  --*=*)\n    ac_option=`expr \"X$1\" : 'X\\([^=]*\\)='`\n    ac_optarg=`expr \"X$1\" : 'X[^=]*=\\(.*\\)'`\n    ac_shift=:\n    ;;\n  *)\n    ac_option=$1\n    ac_optarg=$2\n    ac_shift=shift\n    ;;\n  esac\n\n  case $ac_option in\n  # Handling of the options.\n  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)\n    ac_cs_recheck=: ;;\n  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )\n    echo \"$ac_cs_version\"; exit ;;\n  --debug | --debu | --deb | --de | --d | -d )\n    debug=: ;;\n  --file | --fil | --fi | --f )\n    $ac_shift\n    CONFIG_FILES=\"$CONFIG_FILES $ac_optarg\"\n    ac_need_defaults=false;;\n  --he | --h |  --help | --hel | -h )\n    echo \"$ac_cs_usage\"; exit ;;\n  -q | -quiet | --quiet | --quie | --qui | --qu | --q \\\n  | -silent | --silent | --silen | --sile | --sil | --si | --s)\n    ac_cs_silent=: ;;\n\n  # This is an error.\n  -*) { echo \"$as_me: error: unrecognized option: $1\nTry \\`$0 --help' for more information.\" >&2\n   { (exit 1); exit 1; }; } ;;\n\n  *) ac_config_targets=\"$ac_config_targets $1\"\n     ac_need_defaults=false ;;\n\n  esac\n  shift\ndone\n\nac_configure_extra_args=\n\nif $ac_cs_silent; then\n  exec 6>/dev/null\n  ac_configure_extra_args=\"$ac_configure_extra_args --silent\"\nfi\n\n_ACEOF\ncat >>$CONFIG_STATUS <<_ACEOF\nif \\$ac_cs_recheck; then\n  echo \"running CONFIG_SHELL=$SHELL $SHELL $0 \"$ac_configure_args \\$ac_configure_extra_args \" --no-create --no-recursion\" >&6\n  CONFIG_SHELL=$SHELL\n  export CONFIG_SHELL\n  exec $SHELL \"$0\"$ac_configure_args \\$ac_configure_extra_args --no-create --no-recursion\nfi\n\n_ACEOF\ncat >>$CONFIG_STATUS <<\\_ACEOF\nexec 5>>config.log\n{\n  echo\n  sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX\n@%:@@%:@ Running $as_me. @%:@@%:@\n_ASBOX\n  echo \"$ac_log\"\n} >&5\n\n_ACEOF\ncat >>$CONFIG_STATUS <<_ACEOF\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\n\n# Handling of arguments.\nfor ac_config_target in $ac_config_targets\ndo\n  case $ac_config_target in\n    \"src/Makevars\") CONFIG_FILES=\"$CONFIG_FILES src/Makevars\" ;;\n\n  *) { { echo \"$as_me:$LINENO: error: invalid argument: $ac_config_target\" >&5\necho \"$as_me: error: invalid argument: $ac_config_target\" >&2;}\n   { (exit 1); exit 1; }; };;\n  esac\ndone\n\n\n# If the user did not use the arguments to specify the items to instantiate,\n# then the envvar interface is used.  Set only those that are not.\n# We use the long form for the default assignment because of an extremely\n# bizarre bug on SunOS 4.1.3.\nif $ac_need_defaults; then\n  test \"${CONFIG_FILES+set}\" = set || CONFIG_FILES=$config_files\nfi\n\n# Have a temporary directory for convenience.  Make it in the build tree\n# simply because there is no reason against having it here, and in addition,\n# creating and moving files from /tmp can sometimes cause problems.\n# Hook for its removal unless debugging.\n# Note that there is a small window in which the directory will not be cleaned:\n# after its creation but before its name has been assigned to `$tmp'.\n$debug ||\n{\n  tmp=\n  trap 'exit_status=$?\n  { test -z \"$tmp\" || test ! -d \"$tmp\" || rm -fr \"$tmp\"; } && exit $exit_status\n' 0\n  trap '{ (exit 1); exit 1; }' 1 2 13 15\n}\n# Create a (secure) tmp directory for tmp files.\n\n{\n  tmp=`(umask 077 && mktemp -d \"./confXXXXXX\") 2>/dev/null` &&\n  test -n \"$tmp\" && test -d \"$tmp\"\n}  ||\n{\n  tmp=./conf$$-$RANDOM\n  (umask 077 && mkdir \"$tmp\")\n} ||\n{\n   echo \"$me: cannot create a temporary directory in .\" >&2\n   { (exit 1); exit 1; }\n}\n\n#\n# Set up the sed scripts for CONFIG_FILES section.\n#\n\n# No need to generate the scripts if there are no CONFIG_FILES.\n# This happens for instance when ./config.status config.h\nif test -n \"$CONFIG_FILES\"; then\n\n_ACEOF\n\n\n\nac_delim='%!_!# '\nfor ac_last_try in false false false false false :; do\n  cat >conf$$subs.sed <<_ACEOF\nSHELL!$SHELL$ac_delim\nPATH_SEPARATOR!$PATH_SEPARATOR$ac_delim\nPACKAGE_NAME!$PACKAGE_NAME$ac_delim\nPACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim\nPACKAGE_VERSION!$PACKAGE_VERSION$ac_delim\nPACKAGE_STRING!$PACKAGE_STRING$ac_delim\nPACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim\nexec_prefix!$exec_prefix$ac_delim\nprefix!$prefix$ac_delim\nprogram_transform_name!$program_transform_name$ac_delim\nbindir!$bindir$ac_delim\nsbindir!$sbindir$ac_delim\nlibexecdir!$libexecdir$ac_delim\ndatarootdir!$datarootdir$ac_delim\ndatadir!$datadir$ac_delim\nsysconfdir!$sysconfdir$ac_delim\nsharedstatedir!$sharedstatedir$ac_delim\nlocalstatedir!$localstatedir$ac_delim\nincludedir!$includedir$ac_delim\noldincludedir!$oldincludedir$ac_delim\ndocdir!$docdir$ac_delim\ninfodir!$infodir$ac_delim\nhtmldir!$htmldir$ac_delim\ndvidir!$dvidir$ac_delim\npdfdir!$pdfdir$ac_delim\npsdir!$psdir$ac_delim\nlibdir!$libdir$ac_delim\nlocaledir!$localedir$ac_delim\nmandir!$mandir$ac_delim\nDEFS!$DEFS$ac_delim\nECHO_C!$ECHO_C$ac_delim\nECHO_N!$ECHO_N$ac_delim\nECHO_T!$ECHO_T$ac_delim\nLIBS!$LIBS$ac_delim\nbuild_alias!$build_alias$ac_delim\nhost_alias!$host_alias$ac_delim\ntarget_alias!$target_alias$ac_delim\nCC!$CC$ac_delim\nCFLAGS!$CFLAGS$ac_delim\nLDFLAGS!$LDFLAGS$ac_delim\nCPPFLAGS!$CPPFLAGS$ac_delim\nac_ct_CC!$ac_ct_CC$ac_delim\nEXEEXT!$EXEEXT$ac_delim\nOBJEXT!$OBJEXT$ac_delim\nCXX!$CXX$ac_delim\nCXXFLAGS!$CXXFLAGS$ac_delim\nac_ct_CXX!$ac_ct_CXX$ac_delim\nINSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim\nINSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim\nINSTALL_DATA!$INSTALL_DATA$ac_delim\nCPP!$CPP$ac_delim\nGREP!$GREP$ac_delim\nEGREP!$EGREP$ac_delim\nLIB@&t@OBJS!$LIB@&t@OBJS$ac_delim\nPOW_LIB!$POW_LIB$ac_delim\nbuild!$build$ac_delim\nbuild_cpu!$build_cpu$ac_delim\nbuild_vendor!$build_vendor$ac_delim\nbuild_os!$build_os$ac_delim\nhost!$host$ac_delim\nhost_cpu!$host_cpu$ac_delim\nhost_vendor!$host_vendor$ac_delim\nhost_os!$host_os$ac_delim\nLTLIBOBJS!$LTLIBOBJS$ac_delim\n_ACEOF\n\n  if test `sed -n \"s/.*$ac_delim\\$/X/p\" conf$$subs.sed | grep -c X` = 64; then\n    break\n  elif $ac_last_try; then\n    { { echo \"$as_me:$LINENO: error: could not make $CONFIG_STATUS\" >&5\necho \"$as_me: error: could not make $CONFIG_STATUS\" >&2;}\n   { (exit 1); exit 1; }; }\n  else\n    ac_delim=\"$ac_delim!$ac_delim _$ac_delim!! \"\n  fi\ndone\n\nac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`\nif test -n \"$ac_eof\"; then\n  ac_eof=`echo \"$ac_eof\" | sort -nru | sed 1q`\n  ac_eof=`expr $ac_eof + 1`\nfi\n\ncat >>$CONFIG_STATUS <<_ACEOF\ncat >\"\\$tmp/subs-1.sed\" <<\\CEOF$ac_eof\n/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end\n_ACEOF\nsed '\ns/[,\\\\&]/\\\\&/g; s/@/@|#_!!_#|/g\ns/^/s,@/; s/!/@,|#_!!_#|/\n:n\nt n\ns/'\"$ac_delim\"'$/,g/; t\ns/$/\\\\/; p\nN; s/^.*\\n//; s/[,\\\\&]/\\\\&/g; s/@/@|#_!!_#|/g; b n\n' >>$CONFIG_STATUS <conf$$subs.sed\nrm -f conf$$subs.sed\ncat >>$CONFIG_STATUS <<_ACEOF\n:end\ns/|#_!!_#|//g\nCEOF$ac_eof\n_ACEOF\n\n\n# VPATH may cause trouble with some makes, so we remove $(srcdir),\n# ${srcdir} and @srcdir@ from VPATH if srcdir is \".\", strip leading and\n# trailing colons and then remove the whole line if VPATH becomes empty\n# (actually we leave an empty line to preserve line numbers).\nif test \"x$srcdir\" = x.; then\n  ac_vpsub='/^[\t ]*VPATH[\t ]*=/{\ns/:*\\$(srcdir):*/:/\ns/:*\\${srcdir}:*/:/\ns/:*@srcdir@:*/:/\ns/^\\([^=]*=[\t ]*\\):*/\\1/\ns/:*$//\ns/^[^=]*=[\t ]*$//\n}'\nfi\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\nfi # test -n \"$CONFIG_FILES\"\n\n\nfor ac_tag in  :F $CONFIG_FILES      \ndo\n  case $ac_tag in\n  :[FHLC]) ac_mode=$ac_tag; continue;;\n  esac\n  case $ac_mode$ac_tag in\n  :[FHL]*:*);;\n  :L* | :C*:*) { { echo \"$as_me:$LINENO: error: Invalid tag $ac_tag.\" >&5\necho \"$as_me: error: Invalid tag $ac_tag.\" >&2;}\n   { (exit 1); exit 1; }; };;\n  :[FH]-) ac_tag=-:-;;\n  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;\n  esac\n  ac_save_IFS=$IFS\n  IFS=:\n  set x $ac_tag\n  IFS=$ac_save_IFS\n  shift\n  ac_file=$1\n  shift\n\n  case $ac_mode in\n  :L) ac_source=$1;;\n  :[FH])\n    ac_file_inputs=\n    for ac_f\n    do\n      case $ac_f in\n      -) ac_f=\"$tmp/stdin\";;\n      *) # Look for the file first in the build tree, then in the source tree\n\t # (if the path is not absolute).  The absolute path cannot be DOS-style,\n\t # because $ac_f cannot contain `:'.\n\t test -f \"$ac_f\" ||\n\t   case $ac_f in\n\t   [\\\\/$]*) false;;\n\t   *) test -f \"$srcdir/$ac_f\" && ac_f=\"$srcdir/$ac_f\";;\n\t   esac ||\n\t   { { echo \"$as_me:$LINENO: error: cannot find input file: $ac_f\" >&5\necho \"$as_me: error: cannot find input file: $ac_f\" >&2;}\n   { (exit 1); exit 1; }; };;\n      esac\n      ac_file_inputs=\"$ac_file_inputs $ac_f\"\n    done\n\n    # Let's still pretend it is `configure' which instantiates (i.e., don't\n    # use $as_me), people would be surprised to read:\n    #    /* config.h.  Generated by config.status.  */\n    configure_input=\"Generated from \"`IFS=:\n\t  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`\" by configure.\"\n    if test x\"$ac_file\" != x-; then\n      configure_input=\"$ac_file.  $configure_input\"\n      { echo \"$as_me:$LINENO: creating $ac_file\" >&5\necho \"$as_me: creating $ac_file\" >&6;}\n    fi\n\n    case $ac_tag in\n    *:-:* | *:-) cat >\"$tmp/stdin\";;\n    esac\n    ;;\n  esac\n\n  ac_dir=`$as_dirname -- \"$ac_file\" ||\n$as_expr X\"$ac_file\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t X\"$ac_file\" : 'X\\(//\\)[^/]' \\| \\\n\t X\"$ac_file\" : 'X\\(//\\)$' \\| \\\n\t X\"$ac_file\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X\"$ac_file\" |\n    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)[^/].*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n  { as_dir=\"$ac_dir\"\n  case $as_dir in #(\n  -*) as_dir=./$as_dir;;\n  esac\n  test -d \"$as_dir\" || { $as_mkdir_p && mkdir -p \"$as_dir\"; } || {\n    as_dirs=\n    while :; do\n      case $as_dir in #(\n      *\\'*) as_qdir=`echo \"$as_dir\" | sed \"s/'/'\\\\\\\\\\\\\\\\''/g\"`;; #(\n      *) as_qdir=$as_dir;;\n      esac\n      as_dirs=\"'$as_qdir' $as_dirs\"\n      as_dir=`$as_dirname -- \"$as_dir\" ||\n$as_expr X\"$as_dir\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t X\"$as_dir\" : 'X\\(//\\)[^/]' \\| \\\n\t X\"$as_dir\" : 'X\\(//\\)$' \\| \\\n\t X\"$as_dir\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X\"$as_dir\" |\n    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)[^/].*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n      test -d \"$as_dir\" && break\n    done\n    test -z \"$as_dirs\" || eval \"mkdir $as_dirs\"\n  } || test -d \"$as_dir\" || { { echo \"$as_me:$LINENO: error: cannot create directory $as_dir\" >&5\necho \"$as_me: error: cannot create directory $as_dir\" >&2;}\n   { (exit 1); exit 1; }; }; }\n  ac_builddir=.\n\ncase \"$ac_dir\" in\n.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;\n*)\n  ac_dir_suffix=/`echo \"$ac_dir\" | sed 's,^\\.[\\\\/],,'`\n  # A \"..\" for each directory in $ac_dir_suffix.\n  ac_top_builddir_sub=`echo \"$ac_dir_suffix\" | sed 's,/[^\\\\/]*,/..,g;s,/,,'`\n  case $ac_top_builddir_sub in\n  \"\") ac_top_builddir_sub=. ac_top_build_prefix= ;;\n  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;\n  esac ;;\nesac\nac_abs_top_builddir=$ac_pwd\nac_abs_builddir=$ac_pwd$ac_dir_suffix\n# for backward compatibility:\nac_top_builddir=$ac_top_build_prefix\n\ncase $srcdir in\n  .)  # We are building in place.\n    ac_srcdir=.\n    ac_top_srcdir=$ac_top_builddir_sub\n    ac_abs_top_srcdir=$ac_pwd ;;\n  [\\\\/]* | ?:[\\\\/]* )  # Absolute name.\n    ac_srcdir=$srcdir$ac_dir_suffix;\n    ac_top_srcdir=$srcdir\n    ac_abs_top_srcdir=$srcdir ;;\n  *) # Relative name.\n    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix\n    ac_top_srcdir=$ac_top_build_prefix$srcdir\n    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;\nesac\nac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix\n\n\n  case $ac_mode in\n  :F)\n  #\n  # CONFIG_FILE\n  #\n\n  case $INSTALL in\n  [\\\\/$]* | ?:[\\\\/]* ) ac_INSTALL=$INSTALL ;;\n  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;\n  esac\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\n# If the template does not know about datarootdir, expand it.\n# FIXME: This hack should be removed a few years after 2.60.\nac_datarootdir_hack=; ac_datarootdir_seen=\n\ncase `sed -n '/datarootdir/ {\n  p\n  q\n}\n/@datadir@/p\n/@docdir@/p\n/@infodir@/p\n/@localedir@/p\n/@mandir@/p\n' $ac_file_inputs` in\n*datarootdir*) ac_datarootdir_seen=yes;;\n*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)\n  { echo \"$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting\" >&5\necho \"$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting\" >&2;}\n_ACEOF\ncat >>$CONFIG_STATUS <<_ACEOF\n  ac_datarootdir_hack='\n  s&@datadir@&$datadir&g\n  s&@docdir@&$docdir&g\n  s&@infodir@&$infodir&g\n  s&@localedir@&$localedir&g\n  s&@mandir@&$mandir&g\n    s&\\\\\\${datarootdir}&$datarootdir&g' ;;\nesac\n_ACEOF\n\n# Neutralize VPATH when `$srcdir' = `.'.\n# Shell code in configure.ac might set extrasub.\n# FIXME: do we really want to maintain this feature?\ncat >>$CONFIG_STATUS <<_ACEOF\n  sed \"$ac_vpsub\n$extrasub\n_ACEOF\ncat >>$CONFIG_STATUS <<\\_ACEOF\n:t\n/@[a-zA-Z_][a-zA-Z_0-9]*@/!b\ns&@configure_input@&$configure_input&;t t\ns&@top_builddir@&$ac_top_builddir_sub&;t t\ns&@srcdir@&$ac_srcdir&;t t\ns&@abs_srcdir@&$ac_abs_srcdir&;t t\ns&@top_srcdir@&$ac_top_srcdir&;t t\ns&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t\ns&@builddir@&$ac_builddir&;t t\ns&@abs_builddir@&$ac_abs_builddir&;t t\ns&@abs_top_builddir@&$ac_abs_top_builddir&;t t\ns&@INSTALL@&$ac_INSTALL&;t t\n$ac_datarootdir_hack\n\" $ac_file_inputs | sed -f \"$tmp/subs-1.sed\" >$tmp/out\n\ntest -z \"$ac_datarootdir_hack$ac_datarootdir_seen\" &&\n  { ac_out=`sed -n '/\\${datarootdir}/p' \"$tmp/out\"`; test -n \"$ac_out\"; } &&\n  { ac_out=`sed -n '/^[\t ]*datarootdir[\t ]*:*=/p' \"$tmp/out\"`; test -z \"$ac_out\"; } &&\n  { echo \"$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \\`datarootdir'\nwhich seems to be undefined.  Please make sure it is defined.\" >&5\necho \"$as_me: WARNING: $ac_file contains a reference to the variable \\`datarootdir'\nwhich seems to be undefined.  Please make sure it is defined.\" >&2;}\n\n  rm -f \"$tmp/stdin\"\n  case $ac_file in\n  -) cat \"$tmp/out\"; rm -f \"$tmp/out\";;\n  *) rm -f \"$ac_file\"; mv \"$tmp/out\" $ac_file;;\n  esac\n ;;\n  \n  \n  \n  esac\n\ndone # for ac_tag\n\n\n{ (exit 0); exit 0; }\n_ACEOF\nchmod +x $CONFIG_STATUS\nac_clean_files=$ac_clean_files_save\n\n\n# configure is writing to config.log, and then calls config.status.\n# config.status does its own redirection, appending to config.log.\n# Unfortunately, on DOS this fails, as config.log is still kept open\n# by configure, so config.status won't be able to write to it; its\n# output is simply discarded.  So we exec the FD to /dev/null,\n# effectively closing config.log, so it can be properly (re)opened and\n# appended to by config.status.  When coming back to configure, we\n# need to make the FD available again.\nif test \"$no_create\" != yes; then\n  ac_cs_success=:\n  ac_config_status_args=\n  test \"$silent\" = yes &&\n    ac_config_status_args=\"$ac_config_status_args --quiet\"\n  exec 5>/dev/null\n  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false\n  exec 5>>config.log\n  # Use ||, not &&, to avoid exiting from the if with $? = 1, which\n  # would make configure fail if this is the last instruction.\n  $ac_cs_success || { (exit 1); exit 1; }\nfi\n\n\n"
  },
  {
    "path": "src/cpp/PLEX3/autom4te.cache/requests",
    "content": "# This file was generated by Autom4te Wed Mar 19 22:03:23 PDT 2008.\n# It contains the lists of macros which have been traced.\n# It can be safely removed.\n\n@request = (\n             bless( [\n                      '0',\n                      1,\n                      [\n                        '/usr/share/autoconf'\n                      ],\n                      [\n                        '/usr/share/autoconf/autoconf/autoconf.m4f',\n                        'configure.ac'\n                      ],\n                      {\n                        '_LT_AC_TAGCONFIG' => 1,\n                        'AM_PROG_F77_C_O' => 1,\n                        'AC_INIT' => 1,\n                        'm4_pattern_forbid' => 1,\n                        'AC_CANONICAL_TARGET' => 1,\n                        'AC_SUBST' => 1,\n                        'AC_CONFIG_LIBOBJ_DIR' => 1,\n                        'AC_FC_SRCEXT' => 1,\n                        'AC_CANONICAL_HOST' => 1,\n                        'AC_PROG_LIBTOOL' => 1,\n                        'AM_INIT_AUTOMAKE' => 1,\n                        'AC_CONFIG_SUBDIRS' => 1,\n                        'AM_AUTOMAKE_VERSION' => 1,\n                        'LT_CONFIG_LTDL_DIR' => 1,\n                        'AC_REQUIRE_AUX_FILE' => 1,\n                        'AC_CONFIG_LINKS' => 1,\n                        'm4_sinclude' => 1,\n                        'LT_SUPPORTED_TAG' => 1,\n                        'AM_MAINTAINER_MODE' => 1,\n                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,\n                        '_m4_warn' => 1,\n                        'AM_PROG_CXX_C_O' => 1,\n                        'AM_ENABLE_MULTILIB' => 1,\n                        'AC_CONFIG_FILES' => 1,\n                        'include' => 1,\n                        'LT_INIT' => 1,\n                        'AM_GNU_GETTEXT' => 1,\n                        'AC_LIBSOURCE' => 1,\n                        'AM_PROG_FC_C_O' => 1,\n                        'AC_CANONICAL_BUILD' => 1,\n                        'AC_FC_FREEFORM' => 1,\n                        'AH_OUTPUT' => 1,\n                        '_AM_SUBST_NOTMAKE' => 1,\n                        'AC_CONFIG_AUX_DIR' => 1,\n                        'sinclude' => 1,\n                        'm4_pattern_allow' => 1,\n                        'AM_PROG_CC_C_O' => 1,\n                        'AC_CANONICAL_SYSTEM' => 1,\n                        'AM_CONDITIONAL' => 1,\n                        'AC_CONFIG_HEADERS' => 1,\n                        'AC_DEFINE_TRACE_LITERAL' => 1,\n                        'm4_include' => 1,\n                        'AC_SUBST_TRACE' => 1\n                      }\n                    ], 'Autom4te::Request' )\n           );\n\n"
  },
  {
    "path": "src/cpp/PLEX3/autom4te.cache/traces.0",
    "content": "m4trace:configure.ac:1: -1- AC_INIT([src/rbind_jni.cpp])\nm4trace:configure.ac:1: -1- m4_pattern_forbid([^_?A[CHUM]_])\nm4trace:configure.ac:1: -1- m4_pattern_forbid([_AC_])\nm4trace:configure.ac:1: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^AS_FLAGS$])\nm4trace:configure.ac:1: -1- m4_pattern_forbid([^_?m4_])\nm4trace:configure.ac:1: -1- m4_pattern_forbid([^dnl$])\nm4trace:configure.ac:1: -1- m4_pattern_forbid([^_?AS_])\nm4trace:configure.ac:1: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([SHELL])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^SHELL$])\nm4trace:configure.ac:1: -1- AC_SUBST([PATH_SEPARATOR])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([PATH_SEPARATOR])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PATH_SEPARATOR$])\nm4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME],      ['AC_PACKAGE_NAME'])])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_NAME])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$])\nm4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME],   ['AC_PACKAGE_TARNAME'])])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$])\nm4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION],   ['AC_PACKAGE_VERSION'])])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_VERSION])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$])\nm4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING],    ['AC_PACKAGE_STRING'])])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_STRING])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$])\nm4trace:configure.ac:1: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])\nm4trace:configure.ac:1: -1- AC_SUBST([exec_prefix], [NONE])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([exec_prefix])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^exec_prefix$])\nm4trace:configure.ac:1: -1- AC_SUBST([prefix], [NONE])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([prefix])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^prefix$])\nm4trace:configure.ac:1: -1- AC_SUBST([program_transform_name], [s,x,x,])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([program_transform_name])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^program_transform_name$])\nm4trace:configure.ac:1: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([bindir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^bindir$])\nm4trace:configure.ac:1: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([sbindir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^sbindir$])\nm4trace:configure.ac:1: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([libexecdir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^libexecdir$])\nm4trace:configure.ac:1: -1- AC_SUBST([datarootdir], ['${prefix}/share'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([datarootdir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^datarootdir$])\nm4trace:configure.ac:1: -1- AC_SUBST([datadir], ['${datarootdir}'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([datadir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^datadir$])\nm4trace:configure.ac:1: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([sysconfdir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^sysconfdir$])\nm4trace:configure.ac:1: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([sharedstatedir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^sharedstatedir$])\nm4trace:configure.ac:1: -1- AC_SUBST([localstatedir], ['${prefix}/var'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([localstatedir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^localstatedir$])\nm4trace:configure.ac:1: -1- AC_SUBST([includedir], ['${prefix}/include'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([includedir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^includedir$])\nm4trace:configure.ac:1: -1- AC_SUBST([oldincludedir], ['/usr/include'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([oldincludedir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^oldincludedir$])\nm4trace:configure.ac:1: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],\n\t\t\t\t     ['${datarootdir}/doc/${PACKAGE_TARNAME}'],\n\t\t\t\t     ['${datarootdir}/doc/${PACKAGE}'])])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([docdir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^docdir$])\nm4trace:configure.ac:1: -1- AC_SUBST([infodir], ['${datarootdir}/info'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([infodir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^infodir$])\nm4trace:configure.ac:1: -1- AC_SUBST([htmldir], ['${docdir}'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([htmldir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^htmldir$])\nm4trace:configure.ac:1: -1- AC_SUBST([dvidir], ['${docdir}'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([dvidir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^dvidir$])\nm4trace:configure.ac:1: -1- AC_SUBST([pdfdir], ['${docdir}'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([pdfdir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^pdfdir$])\nm4trace:configure.ac:1: -1- AC_SUBST([psdir], ['${docdir}'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([psdir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^psdir$])\nm4trace:configure.ac:1: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([libdir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^libdir$])\nm4trace:configure.ac:1: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([localedir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^localedir$])\nm4trace:configure.ac:1: -1- AC_SUBST([mandir], ['${datarootdir}/man'])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([mandir])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^mandir$])\nm4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_NAME$])\nm4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */\n#undef PACKAGE_NAME])\nm4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_TARNAME$])\nm4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */\n#undef PACKAGE_TARNAME])\nm4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_VERSION$])\nm4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */\n#undef PACKAGE_VERSION])\nm4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_STRING$])\nm4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */\n#undef PACKAGE_STRING])\nm4trace:configure.ac:1: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])\nm4trace:configure.ac:1: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */\n#undef PACKAGE_BUGREPORT])\nm4trace:configure.ac:1: -1- AC_SUBST([DEFS])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([DEFS])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^DEFS$])\nm4trace:configure.ac:1: -1- AC_SUBST([ECHO_C])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_C])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_C$])\nm4trace:configure.ac:1: -1- AC_SUBST([ECHO_N])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_N])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_N$])\nm4trace:configure.ac:1: -1- AC_SUBST([ECHO_T])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([ECHO_T])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^ECHO_T$])\nm4trace:configure.ac:1: -1- AC_SUBST([LIBS])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([LIBS])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^LIBS$])\nm4trace:configure.ac:1: -1- AC_SUBST([build_alias])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([build_alias])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^build_alias$])\nm4trace:configure.ac:1: -1- AC_SUBST([host_alias])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([host_alias])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^host_alias$])\nm4trace:configure.ac:1: -1- AC_SUBST([target_alias])\nm4trace:configure.ac:1: -1- AC_SUBST_TRACE([target_alias])\nm4trace:configure.ac:1: -1- m4_pattern_allow([^target_alias$])\nm4trace:configure.ac:3: -1- AC_SUBST([CC])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^CC$])\nm4trace:configure.ac:3: -1- AC_SUBST([CFLAGS])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([CFLAGS])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^CFLAGS$])\nm4trace:configure.ac:3: -1- AC_SUBST([LDFLAGS])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([LDFLAGS])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^LDFLAGS$])\nm4trace:configure.ac:3: -1- AC_SUBST([LIBS])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([LIBS])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^LIBS$])\nm4trace:configure.ac:3: -1- AC_SUBST([CPPFLAGS])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([CPPFLAGS])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^CPPFLAGS$])\nm4trace:configure.ac:3: -1- AC_SUBST([CC])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^CC$])\nm4trace:configure.ac:3: -1- AC_SUBST([CC])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^CC$])\nm4trace:configure.ac:3: -1- AC_SUBST([CC])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^CC$])\nm4trace:configure.ac:3: -1- AC_SUBST([CC])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([CC])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^CC$])\nm4trace:configure.ac:3: -1- AC_SUBST([ac_ct_CC])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([ac_ct_CC])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^ac_ct_CC$])\nm4trace:configure.ac:3: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([EXEEXT])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^EXEEXT$])\nm4trace:configure.ac:3: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])\nm4trace:configure.ac:3: -1- AC_SUBST_TRACE([OBJEXT])\nm4trace:configure.ac:3: -1- m4_pattern_allow([^OBJEXT$])\nm4trace:configure.ac:4: -1- AC_SUBST([CXX])\nm4trace:configure.ac:4: -1- AC_SUBST_TRACE([CXX])\nm4trace:configure.ac:4: -1- m4_pattern_allow([^CXX$])\nm4trace:configure.ac:4: -1- AC_SUBST([CXXFLAGS])\nm4trace:configure.ac:4: -1- AC_SUBST_TRACE([CXXFLAGS])\nm4trace:configure.ac:4: -1- m4_pattern_allow([^CXXFLAGS$])\nm4trace:configure.ac:4: -1- AC_SUBST([LDFLAGS])\nm4trace:configure.ac:4: -1- AC_SUBST_TRACE([LDFLAGS])\nm4trace:configure.ac:4: -1- m4_pattern_allow([^LDFLAGS$])\nm4trace:configure.ac:4: -1- AC_SUBST([LIBS])\nm4trace:configure.ac:4: -1- AC_SUBST_TRACE([LIBS])\nm4trace:configure.ac:4: -1- m4_pattern_allow([^LIBS$])\nm4trace:configure.ac:4: -1- AC_SUBST([CPPFLAGS])\nm4trace:configure.ac:4: -1- AC_SUBST_TRACE([CPPFLAGS])\nm4trace:configure.ac:4: -1- m4_pattern_allow([^CPPFLAGS$])\nm4trace:configure.ac:4: -1- AC_SUBST([CXX])\nm4trace:configure.ac:4: -1- AC_SUBST_TRACE([CXX])\nm4trace:configure.ac:4: -1- m4_pattern_allow([^CXX$])\nm4trace:configure.ac:4: -1- AC_SUBST([ac_ct_CXX])\nm4trace:configure.ac:4: -1- AC_SUBST_TRACE([ac_ct_CXX])\nm4trace:configure.ac:4: -1- m4_pattern_allow([^ac_ct_CXX$])\nm4trace:configure.ac:6: -1- AC_REQUIRE_AUX_FILE([install-sh])\nm4trace:configure.ac:6: -1- AC_SUBST([INSTALL_PROGRAM])\nm4trace:configure.ac:6: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])\nm4trace:configure.ac:6: -1- m4_pattern_allow([^INSTALL_PROGRAM$])\nm4trace:configure.ac:6: -1- AC_SUBST([INSTALL_SCRIPT])\nm4trace:configure.ac:6: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])\nm4trace:configure.ac:6: -1- m4_pattern_allow([^INSTALL_SCRIPT$])\nm4trace:configure.ac:6: -1- AC_SUBST([INSTALL_DATA])\nm4trace:configure.ac:6: -1- AC_SUBST_TRACE([INSTALL_DATA])\nm4trace:configure.ac:6: -1- m4_pattern_allow([^INSTALL_DATA$])\nm4trace:configure.ac:8: -1- AC_SUBST([CPP])\nm4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPP])\nm4trace:configure.ac:8: -1- m4_pattern_allow([^CPP$])\nm4trace:configure.ac:8: -1- AC_SUBST([CPPFLAGS])\nm4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPPFLAGS])\nm4trace:configure.ac:8: -1- m4_pattern_allow([^CPPFLAGS$])\nm4trace:configure.ac:8: -1- AC_SUBST([CPP])\nm4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPP])\nm4trace:configure.ac:8: -1- m4_pattern_allow([^CPP$])\nm4trace:configure.ac:8: -1- AC_SUBST([GREP])\nm4trace:configure.ac:8: -1- AC_SUBST_TRACE([GREP])\nm4trace:configure.ac:8: -1- m4_pattern_allow([^GREP$])\nm4trace:configure.ac:8: -1- AC_SUBST([GREP])\nm4trace:configure.ac:8: -1- AC_SUBST_TRACE([GREP])\nm4trace:configure.ac:8: -1- m4_pattern_allow([^GREP$])\nm4trace:configure.ac:8: -1- AC_SUBST([EGREP])\nm4trace:configure.ac:8: -1- AC_SUBST_TRACE([EGREP])\nm4trace:configure.ac:8: -1- m4_pattern_allow([^EGREP$])\nm4trace:configure.ac:8: -1- AC_SUBST([EGREP])\nm4trace:configure.ac:8: -1- AC_SUBST_TRACE([EGREP])\nm4trace:configure.ac:8: -1- m4_pattern_allow([^EGREP$])\nm4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])\nm4trace:configure.ac:9: -1- m4_pattern_allow([^STDC_HEADERS$])\nm4trace:configure.ac:9: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */\n#undef STDC_HEADERS])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */\n#undef HAVE_SYS_TYPES_H])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */\n#undef HAVE_SYS_STAT_H])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */\n#undef HAVE_STDLIB_H])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */\n#undef HAVE_STRING_H])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */\n#undef HAVE_MEMORY_H])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */\n#undef HAVE_STRINGS_H])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */\n#undef HAVE_INTTYPES_H])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */\n#undef HAVE_STDINT_H])\nm4trace:configure.ac:9: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */\n#undef HAVE_UNISTD_H])\nm4trace:configure.ac:9: -1- AC_LIBSOURCE([memcmp.c])\nm4trace:configure.ac:9: -1- AC_SUBST([LIB@&t@OBJS], [\"$LIB@&t@OBJS memcmp.$ac_objext\"])\nm4trace:configure.ac:9: -1- AC_SUBST_TRACE([LIB@&t@OBJS])\nm4trace:configure.ac:9: -1- m4_pattern_allow([^LIB@&t@OBJS$])\nm4trace:configure.ac:10: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */\n#undef HAVE_STDLIB_H])\nm4trace:configure.ac:10: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])\nm4trace:configure.ac:10: -1- m4_pattern_allow([^HAVE_MALLOC$])\nm4trace:configure.ac:10: -1- AH_OUTPUT([HAVE_MALLOC], [/* Define to 1 if your system has a GNU libc compatible `malloc\\' function, and\n   to 0 otherwise. */\n#undef HAVE_MALLOC])\nm4trace:configure.ac:10: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC])\nm4trace:configure.ac:10: -1- m4_pattern_allow([^HAVE_MALLOC$])\nm4trace:configure.ac:10: -1- AC_LIBSOURCE([malloc.c])\nm4trace:configure.ac:10: -1- AC_SUBST([LIB@&t@OBJS], [\"$LIB@&t@OBJS malloc.$ac_objext\"])\nm4trace:configure.ac:10: -1- AC_SUBST_TRACE([LIB@&t@OBJS])\nm4trace:configure.ac:10: -1- m4_pattern_allow([^LIB@&t@OBJS$])\nm4trace:configure.ac:10: -1- AC_DEFINE_TRACE_LITERAL([malloc])\nm4trace:configure.ac:10: -1- m4_pattern_allow([^malloc$])\nm4trace:configure.ac:10: -1- AH_OUTPUT([malloc], [/* Define to rpl_malloc if the replacement function should be used. */\n#undef malloc])\nm4trace:configure.ac:11: -1- AC_SUBST([POW_LIB])\nm4trace:configure.ac:11: -1- AC_SUBST_TRACE([POW_LIB])\nm4trace:configure.ac:11: -1- m4_pattern_allow([^POW_LIB$])\nm4trace:configure.ac:11: -1- AC_LIBSOURCE([strtod.c])\nm4trace:configure.ac:11: -1- AC_SUBST([LIB@&t@OBJS], [\"$LIB@&t@OBJS strtod.$ac_objext\"])\nm4trace:configure.ac:11: -1- AC_SUBST_TRACE([LIB@&t@OBJS])\nm4trace:configure.ac:11: -1- m4_pattern_allow([^LIB@&t@OBJS$])\nm4trace:configure.ac:12: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE])\nm4trace:configure.ac:12: -1- m4_pattern_allow([^RETSIGTYPE$])\nm4trace:configure.ac:12: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\\' or `void\\'). */\n#undef RETSIGTYPE])\nm4trace:configure.ac:13: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\\' function. */\n#undef HAVE_VPRINTF])\nm4trace:configure.ac:13: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT])\nm4trace:configure.ac:13: -1- m4_pattern_allow([^HAVE_DOPRNT$])\nm4trace:configure.ac:13: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\\'t have `vprintf\\' but do have `_doprnt.\\' */\n#undef HAVE_DOPRNT])\nm4trace:configure.ac:15: -1- AC_CANONICAL_HOST\nm4trace:configure.ac:15: -1- AC_CANONICAL_BUILD\nm4trace:configure.ac:15: -1- AC_REQUIRE_AUX_FILE([config.sub])\nm4trace:configure.ac:15: -1- AC_REQUIRE_AUX_FILE([config.guess])\nm4trace:configure.ac:15: -1- AC_SUBST([build], [$ac_cv_build])\nm4trace:configure.ac:15: -1- AC_SUBST_TRACE([build])\nm4trace:configure.ac:15: -1- m4_pattern_allow([^build$])\nm4trace:configure.ac:15: -1- AC_SUBST([build_cpu], [$[1]])\nm4trace:configure.ac:15: -1- AC_SUBST_TRACE([build_cpu])\nm4trace:configure.ac:15: -1- m4_pattern_allow([^build_cpu$])\nm4trace:configure.ac:15: -1- AC_SUBST([build_vendor], [$[2]])\nm4trace:configure.ac:15: -1- AC_SUBST_TRACE([build_vendor])\nm4trace:configure.ac:15: -1- m4_pattern_allow([^build_vendor$])\nm4trace:configure.ac:15: -1- AC_SUBST([build_os])\nm4trace:configure.ac:15: -1- AC_SUBST_TRACE([build_os])\nm4trace:configure.ac:15: -1- m4_pattern_allow([^build_os$])\nm4trace:configure.ac:15: -1- AC_SUBST([host], [$ac_cv_host])\nm4trace:configure.ac:15: -1- AC_SUBST_TRACE([host])\nm4trace:configure.ac:15: -1- m4_pattern_allow([^host$])\nm4trace:configure.ac:15: -1- AC_SUBST([host_cpu], [$[1]])\nm4trace:configure.ac:15: -1- AC_SUBST_TRACE([host_cpu])\nm4trace:configure.ac:15: -1- m4_pattern_allow([^host_cpu$])\nm4trace:configure.ac:15: -1- AC_SUBST([host_vendor], [$[2]])\nm4trace:configure.ac:15: -1- AC_SUBST_TRACE([host_vendor])\nm4trace:configure.ac:15: -1- m4_pattern_allow([^host_vendor$])\nm4trace:configure.ac:15: -1- AC_SUBST([host_os])\nm4trace:configure.ac:15: -1- AC_SUBST_TRACE([host_os])\nm4trace:configure.ac:15: -1- m4_pattern_allow([^host_os$])\nm4trace:configure.ac:18: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.\nYou should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...\nconfigure.ac:18: the top level])\nm4trace:configure.ac:50: -1- AC_SUBST([CPPFLAGS], [\"${JAVA_CPPFLAGS} ${CPPFLAGS}\"])\nm4trace:configure.ac:50: -1- AC_SUBST_TRACE([CPPFLAGS])\nm4trace:configure.ac:50: -1- m4_pattern_allow([^CPPFLAGS$])\nm4trace:configure.ac:51: -1- AC_SUBST([LIBS], [\"${JAVA_LIBS} -Wl,-rpath,${JAVA_LD_LIBRARY_PATH} ${LIBS}\"])\nm4trace:configure.ac:51: -1- AC_SUBST_TRACE([LIBS])\nm4trace:configure.ac:51: -1- m4_pattern_allow([^LIBS$])\nm4trace:configure.ac:53: -1- AC_SUBST([CPPFLAGS])\nm4trace:configure.ac:53: -1- AC_SUBST_TRACE([CPPFLAGS])\nm4trace:configure.ac:53: -1- m4_pattern_allow([^CPPFLAGS$])\nm4trace:configure.ac:54: -1- AC_SUBST([LIBS])\nm4trace:configure.ac:54: -1- AC_SUBST_TRACE([LIBS])\nm4trace:configure.ac:54: -1- m4_pattern_allow([^LIBS$])\nm4trace:configure.ac:59: -1- AH_OUTPUT([HAVE_JNI_H], [/* Define to 1 if you have the <jni.h> header file. */\n#undef HAVE_JNI_H])\nm4trace:configure.ac:64: -1- AC_CONFIG_FILES([src/Makevars])\nm4trace:configure.ac:64: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.\nYou should run autoupdate.], [])\nm4trace:configure.ac:64: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([LIB@&t@OBJS])\nm4trace:configure.ac:64: -1- m4_pattern_allow([^LIB@&t@OBJS$])\nm4trace:configure.ac:64: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([LTLIBOBJS])\nm4trace:configure.ac:64: -1- m4_pattern_allow([^LTLIBOBJS$])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([top_builddir])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([srcdir])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([abs_srcdir])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([top_srcdir])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([abs_top_srcdir])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([builddir])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([abs_builddir])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([abs_top_builddir])\nm4trace:configure.ac:64: -1- AC_SUBST_TRACE([INSTALL])\n"
  },
  {
    "path": "src/cpp/PLEX3/config.guess",
    "content": "#! /bin/sh\n# Attempt to guess a canonical system name.\n#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,\n#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008\n#   Free Software Foundation, Inc.\n\ntimestamp='2008-01-23'\n\n# This file is free software; you can redistribute it and/or modify it\n# under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful, but\n# WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n# General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA\n# 02110-1301, USA.\n#\n# As a special exception to the GNU General Public License, if you\n# distribute this file as part of a program that contains a\n# configuration script generated by Autoconf, you may include it under\n# the same distribution terms that you use for the rest of that program.\n\n\n# Originally written by Per Bothner <per@bothner.com>.\n# Please send patches to <config-patches@gnu.org>.  Submit a context\n# diff and a properly formatted ChangeLog entry.\n#\n# This script attempts to guess a canonical system name similar to\n# config.sub.  If it succeeds, it prints the system name on stdout, and\n# exits with 0.  Otherwise, it exits with 1.\n#\n# The plan is that this can be called by configure scripts if you\n# don't specify an explicit build system type.\n\nme=`echo \"$0\" | sed -e 's,.*/,,'`\n\nusage=\"\\\nUsage: $0 [OPTION]\n\nOutput the configuration name of the system \\`$me' is run on.\n\nOperation modes:\n  -h, --help         print this help, then exit\n  -t, --time-stamp   print date of last modification, then exit\n  -v, --version      print version number, then exit\n\nReport bugs and patches to <config-patches@gnu.org>.\"\n\nversion=\"\\\nGNU config.guess ($timestamp)\n\nOriginally written by Per Bothner.\nCopyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,\n2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.\n\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\"\n\nhelp=\"\nTry \\`$me --help' for more information.\"\n\n# Parse command line\nwhile test $# -gt 0 ; do\n  case $1 in\n    --time-stamp | --time* | -t )\n       echo \"$timestamp\" ; exit ;;\n    --version | -v )\n       echo \"$version\" ; exit ;;\n    --help | --h* | -h )\n       echo \"$usage\"; exit ;;\n    -- )     # Stop option processing\n       shift; break ;;\n    - )\t# Use stdin as input.\n       break ;;\n    -* )\n       echo \"$me: invalid option $1$help\" >&2\n       exit 1 ;;\n    * )\n       break ;;\n  esac\ndone\n\nif test $# != 0; then\n  echo \"$me: too many arguments$help\" >&2\n  exit 1\nfi\n\ntrap 'exit 1' 1 2 15\n\n# CC_FOR_BUILD -- compiler used by this script. Note that the use of a\n# compiler to aid in system detection is discouraged as it requires\n# temporary files to be created and, as you can see below, it is a\n# headache to deal with in a portable fashion.\n\n# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still\n# use `HOST_CC' if defined, but it is deprecated.\n\n# Portable tmp directory creation inspired by the Autoconf team.\n\nset_cc_for_build='\ntrap \"exitcode=\\$?; (rm -f \\$tmpfiles 2>/dev/null; rmdir \\$tmp 2>/dev/null) && exit \\$exitcode\" 0 ;\ntrap \"rm -f \\$tmpfiles 2>/dev/null; rmdir \\$tmp 2>/dev/null; exit 1\" 1 2 13 15 ;\n: ${TMPDIR=/tmp} ;\n { tmp=`(umask 077 && mktemp -d \"$TMPDIR/cgXXXXXX\") 2>/dev/null` && test -n \"$tmp\" && test -d \"$tmp\" ; } ||\n { test -n \"$RANDOM\" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||\n { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo \"Warning: creating insecure temp directory\" >&2 ; } ||\n { echo \"$me: cannot create a temporary directory in $TMPDIR\" >&2 ; exit 1 ; } ;\ndummy=$tmp/dummy ;\ntmpfiles=\"$dummy.c $dummy.o $dummy.rel $dummy\" ;\ncase $CC_FOR_BUILD,$HOST_CC,$CC in\n ,,)    echo \"int x;\" > $dummy.c ;\n\tfor c in cc gcc c89 c99 ; do\n\t  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then\n\t     CC_FOR_BUILD=\"$c\"; break ;\n\t  fi ;\n\tdone ;\n\tif test x\"$CC_FOR_BUILD\" = x ; then\n\t  CC_FOR_BUILD=no_compiler_found ;\n\tfi\n\t;;\n ,,*)   CC_FOR_BUILD=$CC ;;\n ,*,*)  CC_FOR_BUILD=$HOST_CC ;;\nesac ; set_cc_for_build= ;'\n\n# This is needed to find uname on a Pyramid OSx when run in the BSD universe.\n# (ghazi@noc.rutgers.edu 1994-08-24)\nif (test -f /.attbin/uname) >/dev/null 2>&1 ; then\n\tPATH=$PATH:/.attbin ; export PATH\nfi\n\nUNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown\nUNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown\nUNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown\nUNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown\n\n# Note: order is significant - the case branches are not exclusive.\n\ncase \"${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}\" in\n    *:NetBSD:*:*)\n\t# NetBSD (nbsd) targets should (where applicable) match one or\n\t# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,\n\t# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently\n\t# switched to ELF, *-*-netbsd* would select the old\n\t# object file format.  This provides both forward\n\t# compatibility and a consistent mechanism for selecting the\n\t# object file format.\n\t#\n\t# Note: NetBSD doesn't particularly care about the vendor\n\t# portion of the name.  We always set it to \"unknown\".\n\tsysctl=\"sysctl -n hw.machine_arch\"\n\tUNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \\\n\t    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`\n\tcase \"${UNAME_MACHINE_ARCH}\" in\n\t    armeb) machine=armeb-unknown ;;\n\t    arm*) machine=arm-unknown ;;\n\t    sh3el) machine=shl-unknown ;;\n\t    sh3eb) machine=sh-unknown ;;\n\t    sh5el) machine=sh5le-unknown ;;\n\t    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;\n\tesac\n\t# The Operating System including object format, if it has switched\n\t# to ELF recently, or will in the future.\n\tcase \"${UNAME_MACHINE_ARCH}\" in\n\t    arm*|i386|m68k|ns32k|sh3*|sparc|vax)\n\t\teval $set_cc_for_build\n\t\tif echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \\\n\t\t\t| grep __ELF__ >/dev/null\n\t\tthen\n\t\t    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).\n\t\t    # Return netbsd for either.  FIX?\n\t\t    os=netbsd\n\t\telse\n\t\t    os=netbsdelf\n\t\tfi\n\t\t;;\n\t    *)\n\t        os=netbsd\n\t\t;;\n\tesac\n\t# The OS release\n\t# Debian GNU/NetBSD machines have a different userland, and\n\t# thus, need a distinct triplet. However, they do not need\n\t# kernel version information, so it can be replaced with a\n\t# suitable tag, in the style of linux-gnu.\n\tcase \"${UNAME_VERSION}\" in\n\t    Debian*)\n\t\trelease='-gnu'\n\t\t;;\n\t    *)\n\t\trelease=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\\./'`\n\t\t;;\n\tesac\n\t# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:\n\t# contains redundant information, the shorter form:\n\t# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.\n\techo \"${machine}-${os}${release}\"\n\texit ;;\n    *:OpenBSD:*:*)\n\tUNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`\n\techo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}\n\texit ;;\n    *:ekkoBSD:*:*)\n\techo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}\n\texit ;;\n    *:SolidBSD:*:*)\n\techo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}\n\texit ;;\n    macppc:MirBSD:*:*)\n\techo powerpc-unknown-mirbsd${UNAME_RELEASE}\n\texit ;;\n    *:MirBSD:*:*)\n\techo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}\n\texit ;;\n    alpha:OSF1:*:*)\n\tcase $UNAME_RELEASE in\n\t*4.0)\n\t\tUNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`\n\t\t;;\n\t*5.*)\n\t        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`\n\t\t;;\n\tesac\n\t# According to Compaq, /usr/sbin/psrinfo has been available on\n\t# OSF/1 and Tru64 systems produced since 1995.  I hope that\n\t# covers most systems running today.  This code pipes the CPU\n\t# types through head -n 1, so we only detect the type of CPU 0.\n\tALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \\(.*\\) processor.*$/\\1/p' | head -n 1`\n\tcase \"$ALPHA_CPU_TYPE\" in\n\t    \"EV4 (21064)\")\n\t\tUNAME_MACHINE=\"alpha\" ;;\n\t    \"EV4.5 (21064)\")\n\t\tUNAME_MACHINE=\"alpha\" ;;\n\t    \"LCA4 (21066/21068)\")\n\t\tUNAME_MACHINE=\"alpha\" ;;\n\t    \"EV5 (21164)\")\n\t\tUNAME_MACHINE=\"alphaev5\" ;;\n\t    \"EV5.6 (21164A)\")\n\t\tUNAME_MACHINE=\"alphaev56\" ;;\n\t    \"EV5.6 (21164PC)\")\n\t\tUNAME_MACHINE=\"alphapca56\" ;;\n\t    \"EV5.7 (21164PC)\")\n\t\tUNAME_MACHINE=\"alphapca57\" ;;\n\t    \"EV6 (21264)\")\n\t\tUNAME_MACHINE=\"alphaev6\" ;;\n\t    \"EV6.7 (21264A)\")\n\t\tUNAME_MACHINE=\"alphaev67\" ;;\n\t    \"EV6.8CB (21264C)\")\n\t\tUNAME_MACHINE=\"alphaev68\" ;;\n\t    \"EV6.8AL (21264B)\")\n\t\tUNAME_MACHINE=\"alphaev68\" ;;\n\t    \"EV6.8CX (21264D)\")\n\t\tUNAME_MACHINE=\"alphaev68\" ;;\n\t    \"EV6.9A (21264/EV69A)\")\n\t\tUNAME_MACHINE=\"alphaev69\" ;;\n\t    \"EV7 (21364)\")\n\t\tUNAME_MACHINE=\"alphaev7\" ;;\n\t    \"EV7.9 (21364A)\")\n\t\tUNAME_MACHINE=\"alphaev79\" ;;\n\tesac\n\t# A Pn.n version is a patched version.\n\t# A Vn.n version is a released version.\n\t# A Tn.n version is a released field test version.\n\t# A Xn.n version is an unreleased experimental baselevel.\n\t# 1.2 uses \"1.2\" for uname -r.\n\techo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`\n\texit ;;\n    Alpha\\ *:Windows_NT*:*)\n\t# How do we know it's Interix rather than the generic POSIX subsystem?\n\t# Should we change UNAME_MACHINE based on the output of uname instead\n\t# of the specific Alpha model?\n\techo alpha-pc-interix\n\texit ;;\n    21064:Windows_NT:50:3)\n\techo alpha-dec-winnt3.5\n\texit ;;\n    Amiga*:UNIX_System_V:4.0:*)\n\techo m68k-unknown-sysv4\n\texit ;;\n    *:[Aa]miga[Oo][Ss]:*:*)\n\techo ${UNAME_MACHINE}-unknown-amigaos\n\texit ;;\n    *:[Mm]orph[Oo][Ss]:*:*)\n\techo ${UNAME_MACHINE}-unknown-morphos\n\texit ;;\n    *:OS/390:*:*)\n\techo i370-ibm-openedition\n\texit ;;\n    *:z/VM:*:*)\n\techo s390-ibm-zvmoe\n\texit ;;\n    *:OS400:*:*)\n        echo powerpc-ibm-os400\n\texit ;;\n    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)\n\techo arm-acorn-riscix${UNAME_RELEASE}\n\texit ;;\n    arm:riscos:*:*|arm:RISCOS:*:*)\n\techo arm-unknown-riscos\n\texit ;;\n    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)\n\techo hppa1.1-hitachi-hiuxmpp\n\texit ;;\n    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)\n\t# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.\n\tif test \"`(/bin/universe) 2>/dev/null`\" = att ; then\n\t\techo pyramid-pyramid-sysv3\n\telse\n\t\techo pyramid-pyramid-bsd\n\tfi\n\texit ;;\n    NILE*:*:*:dcosx)\n\techo pyramid-pyramid-svr4\n\texit ;;\n    DRS?6000:unix:4.0:6*)\n\techo sparc-icl-nx6\n\texit ;;\n    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)\n\tcase `/usr/bin/uname -p` in\n\t    sparc) echo sparc-icl-nx7; exit ;;\n\tesac ;;\n    sun4H:SunOS:5.*:*)\n\techo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`\n\texit ;;\n    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)\n\techo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`\n\texit ;;\n    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)\n\techo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`\n\texit ;;\n    sun4*:SunOS:6*:*)\n\t# According to config.sub, this is the proper way to canonicalize\n\t# SunOS6.  Hard to guess exactly what SunOS6 will be like, but\n\t# it's likely to be more like Solaris than SunOS4.\n\techo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`\n\texit ;;\n    sun4*:SunOS:*:*)\n\tcase \"`/usr/bin/arch -k`\" in\n\t    Series*|S4*)\n\t\tUNAME_RELEASE=`uname -v`\n\t\t;;\n\tesac\n\t# Japanese Language versions have a version number like `4.1.3-JL'.\n\techo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`\n\texit ;;\n    sun3*:SunOS:*:*)\n\techo m68k-sun-sunos${UNAME_RELEASE}\n\texit ;;\n    sun*:*:4.2BSD:*)\n\tUNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`\n\ttest \"x${UNAME_RELEASE}\" = \"x\" && UNAME_RELEASE=3\n\tcase \"`/bin/arch`\" in\n\t    sun3)\n\t\techo m68k-sun-sunos${UNAME_RELEASE}\n\t\t;;\n\t    sun4)\n\t\techo sparc-sun-sunos${UNAME_RELEASE}\n\t\t;;\n\tesac\n\texit ;;\n    aushp:SunOS:*:*)\n\techo sparc-auspex-sunos${UNAME_RELEASE}\n\texit ;;\n    # The situation for MiNT is a little confusing.  The machine name\n    # can be virtually everything (everything which is not\n    # \"atarist\" or \"atariste\" at least should have a processor\n    # > m68000).  The system name ranges from \"MiNT\" over \"FreeMiNT\"\n    # to the lowercase version \"mint\" (or \"freemint\").  Finally\n    # the system name \"TOS\" denotes a system which is actually not\n    # MiNT.  But MiNT is downward compatible to TOS, so this should\n    # be no problem.\n    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)\n        echo m68k-atari-mint${UNAME_RELEASE}\n\texit ;;\n    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)\n\techo m68k-atari-mint${UNAME_RELEASE}\n        exit ;;\n    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)\n        echo m68k-atari-mint${UNAME_RELEASE}\n\texit ;;\n    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)\n        echo m68k-milan-mint${UNAME_RELEASE}\n        exit ;;\n    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)\n        echo m68k-hades-mint${UNAME_RELEASE}\n        exit ;;\n    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)\n        echo m68k-unknown-mint${UNAME_RELEASE}\n        exit ;;\n    m68k:machten:*:*)\n\techo m68k-apple-machten${UNAME_RELEASE}\n\texit ;;\n    powerpc:machten:*:*)\n\techo powerpc-apple-machten${UNAME_RELEASE}\n\texit ;;\n    RISC*:Mach:*:*)\n\techo mips-dec-mach_bsd4.3\n\texit ;;\n    RISC*:ULTRIX:*:*)\n\techo mips-dec-ultrix${UNAME_RELEASE}\n\texit ;;\n    VAX*:ULTRIX*:*:*)\n\techo vax-dec-ultrix${UNAME_RELEASE}\n\texit ;;\n    2020:CLIX:*:* | 2430:CLIX:*:*)\n\techo clipper-intergraph-clix${UNAME_RELEASE}\n\texit ;;\n    mips:*:*:UMIPS | mips:*:*:RISCos)\n\teval $set_cc_for_build\n\tsed 's/^\t//' << EOF >$dummy.c\n#ifdef __cplusplus\n#include <stdio.h>  /* for printf() prototype */\n\tint main (int argc, char *argv[]) {\n#else\n\tint main (argc, argv) int argc; char *argv[]; {\n#endif\n\t#if defined (host_mips) && defined (MIPSEB)\n\t#if defined (SYSTYPE_SYSV)\n\t  printf (\"mips-mips-riscos%ssysv\\n\", argv[1]); exit (0);\n\t#endif\n\t#if defined (SYSTYPE_SVR4)\n\t  printf (\"mips-mips-riscos%ssvr4\\n\", argv[1]); exit (0);\n\t#endif\n\t#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)\n\t  printf (\"mips-mips-riscos%sbsd\\n\", argv[1]); exit (0);\n\t#endif\n\t#endif\n\t  exit (-1);\n\t}\nEOF\n\t$CC_FOR_BUILD -o $dummy $dummy.c &&\n\t  dummyarg=`echo \"${UNAME_RELEASE}\" | sed -n 's/\\([0-9]*\\).*/\\1/p'` &&\n\t  SYSTEM_NAME=`$dummy $dummyarg` &&\n\t    { echo \"$SYSTEM_NAME\"; exit; }\n\techo mips-mips-riscos${UNAME_RELEASE}\n\texit ;;\n    Motorola:PowerMAX_OS:*:*)\n\techo powerpc-motorola-powermax\n\texit ;;\n    Motorola:*:4.3:PL8-*)\n\techo powerpc-harris-powermax\n\texit ;;\n    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)\n\techo powerpc-harris-powermax\n\texit ;;\n    Night_Hawk:Power_UNIX:*:*)\n\techo powerpc-harris-powerunix\n\texit ;;\n    m88k:CX/UX:7*:*)\n\techo m88k-harris-cxux7\n\texit ;;\n    m88k:*:4*:R4*)\n\techo m88k-motorola-sysv4\n\texit ;;\n    m88k:*:3*:R3*)\n\techo m88k-motorola-sysv3\n\texit ;;\n    AViiON:dgux:*:*)\n        # DG/UX returns AViiON for all architectures\n        UNAME_PROCESSOR=`/usr/bin/uname -p`\n\tif [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]\n\tthen\n\t    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \\\n\t       [ ${TARGET_BINARY_INTERFACE}x = x ]\n\t    then\n\t\techo m88k-dg-dgux${UNAME_RELEASE}\n\t    else\n\t\techo m88k-dg-dguxbcs${UNAME_RELEASE}\n\t    fi\n\telse\n\t    echo i586-dg-dgux${UNAME_RELEASE}\n\tfi\n \texit ;;\n    M88*:DolphinOS:*:*)\t# DolphinOS (SVR3)\n\techo m88k-dolphin-sysv3\n\texit ;;\n    M88*:*:R3*:*)\n\t# Delta 88k system running SVR3\n\techo m88k-motorola-sysv3\n\texit ;;\n    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)\n\techo m88k-tektronix-sysv3\n\texit ;;\n    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)\n\techo m68k-tektronix-bsd\n\texit ;;\n    *:IRIX*:*:*)\n\techo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`\n\texit ;;\n    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.\n\techo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id\n\texit ;;               # Note that: echo \"'`uname -s`'\" gives 'AIX '\n    i*86:AIX:*:*)\n\techo i386-ibm-aix\n\texit ;;\n    ia64:AIX:*:*)\n\tif [ -x /usr/bin/oslevel ] ; then\n\t\tIBM_REV=`/usr/bin/oslevel`\n\telse\n\t\tIBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}\n\tfi\n\techo ${UNAME_MACHINE}-ibm-aix${IBM_REV}\n\texit ;;\n    *:AIX:2:3)\n\tif grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then\n\t\teval $set_cc_for_build\n\t\tsed 's/^\t\t//' << EOF >$dummy.c\n\t\t#include <sys/systemcfg.h>\n\n\t\tmain()\n\t\t\t{\n\t\t\tif (!__power_pc())\n\t\t\t\texit(1);\n\t\t\tputs(\"powerpc-ibm-aix3.2.5\");\n\t\t\texit(0);\n\t\t\t}\nEOF\n\t\tif $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`\n\t\tthen\n\t\t\techo \"$SYSTEM_NAME\"\n\t\telse\n\t\t\techo rs6000-ibm-aix3.2.5\n\t\tfi\n\telif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then\n\t\techo rs6000-ibm-aix3.2.4\n\telse\n\t\techo rs6000-ibm-aix3.2\n\tfi\n\texit ;;\n    *:AIX:*:[456])\n\tIBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`\n\tif /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then\n\t\tIBM_ARCH=rs6000\n\telse\n\t\tIBM_ARCH=powerpc\n\tfi\n\tif [ -x /usr/bin/oslevel ] ; then\n\t\tIBM_REV=`/usr/bin/oslevel`\n\telse\n\t\tIBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}\n\tfi\n\techo ${IBM_ARCH}-ibm-aix${IBM_REV}\n\texit ;;\n    *:AIX:*:*)\n\techo rs6000-ibm-aix\n\texit ;;\n    ibmrt:4.4BSD:*|romp-ibm:BSD:*)\n\techo romp-ibm-bsd4.4\n\texit ;;\n    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and\n\techo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to\n\texit ;;                             # report: romp-ibm BSD 4.3\n    *:BOSX:*:*)\n\techo rs6000-bull-bosx\n\texit ;;\n    DPX/2?00:B.O.S.:*:*)\n\techo m68k-bull-sysv3\n\texit ;;\n    9000/[34]??:4.3bsd:1.*:*)\n\techo m68k-hp-bsd\n\texit ;;\n    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)\n\techo m68k-hp-bsd4.4\n\texit ;;\n    9000/[34678]??:HP-UX:*:*)\n\tHPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`\n\tcase \"${UNAME_MACHINE}\" in\n\t    9000/31? )            HP_ARCH=m68000 ;;\n\t    9000/[34]?? )         HP_ARCH=m68k ;;\n\t    9000/[678][0-9][0-9])\n\t\tif [ -x /usr/bin/getconf ]; then\n\t\t    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`\n                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`\n                    case \"${sc_cpu_version}\" in\n                      523) HP_ARCH=\"hppa1.0\" ;; # CPU_PA_RISC1_0\n                      528) HP_ARCH=\"hppa1.1\" ;; # CPU_PA_RISC1_1\n                      532)                      # CPU_PA_RISC2_0\n                        case \"${sc_kernel_bits}\" in\n                          32) HP_ARCH=\"hppa2.0n\" ;;\n                          64) HP_ARCH=\"hppa2.0w\" ;;\n\t\t\t  '') HP_ARCH=\"hppa2.0\" ;;   # HP-UX 10.20\n                        esac ;;\n                    esac\n\t\tfi\n\t\tif [ \"${HP_ARCH}\" = \"\" ]; then\n\t\t    eval $set_cc_for_build\n\t\t    sed 's/^              //' << EOF >$dummy.c\n\n              #define _HPUX_SOURCE\n              #include <stdlib.h>\n              #include <unistd.h>\n\n              int main ()\n              {\n              #if defined(_SC_KERNEL_BITS)\n                  long bits = sysconf(_SC_KERNEL_BITS);\n              #endif\n                  long cpu  = sysconf (_SC_CPU_VERSION);\n\n                  switch (cpu)\n              \t{\n              \tcase CPU_PA_RISC1_0: puts (\"hppa1.0\"); break;\n              \tcase CPU_PA_RISC1_1: puts (\"hppa1.1\"); break;\n              \tcase CPU_PA_RISC2_0:\n              #if defined(_SC_KERNEL_BITS)\n              \t    switch (bits)\n              \t\t{\n              \t\tcase 64: puts (\"hppa2.0w\"); break;\n              \t\tcase 32: puts (\"hppa2.0n\"); break;\n              \t\tdefault: puts (\"hppa2.0\"); break;\n              \t\t} break;\n              #else  /* !defined(_SC_KERNEL_BITS) */\n              \t    puts (\"hppa2.0\"); break;\n              #endif\n              \tdefault: puts (\"hppa1.0\"); break;\n              \t}\n                  exit (0);\n              }\nEOF\n\t\t    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`\n\t\t    test -z \"$HP_ARCH\" && HP_ARCH=hppa\n\t\tfi ;;\n\tesac\n\tif [ ${HP_ARCH} = \"hppa2.0w\" ]\n\tthen\n\t    eval $set_cc_for_build\n\n\t    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating\n\t    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler\n\t    # generating 64-bit code.  GNU and HP use different nomenclature:\n\t    #\n\t    # $ CC_FOR_BUILD=cc ./config.guess\n\t    # => hppa2.0w-hp-hpux11.23\n\t    # $ CC_FOR_BUILD=\"cc +DA2.0w\" ./config.guess\n\t    # => hppa64-hp-hpux11.23\n\n\t    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |\n\t\tgrep __LP64__ >/dev/null\n\t    then\n\t\tHP_ARCH=\"hppa2.0w\"\n\t    else\n\t\tHP_ARCH=\"hppa64\"\n\t    fi\n\tfi\n\techo ${HP_ARCH}-hp-hpux${HPUX_REV}\n\texit ;;\n    ia64:HP-UX:*:*)\n\tHPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`\n\techo ia64-hp-hpux${HPUX_REV}\n\texit ;;\n    3050*:HI-UX:*:*)\n\teval $set_cc_for_build\n\tsed 's/^\t//' << EOF >$dummy.c\n\t#include <unistd.h>\n\tint\n\tmain ()\n\t{\n\t  long cpu = sysconf (_SC_CPU_VERSION);\n\t  /* The order matters, because CPU_IS_HP_MC68K erroneously returns\n\t     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct\n\t     results, however.  */\n\t  if (CPU_IS_PA_RISC (cpu))\n\t    {\n\t      switch (cpu)\n\t\t{\n\t\t  case CPU_PA_RISC1_0: puts (\"hppa1.0-hitachi-hiuxwe2\"); break;\n\t\t  case CPU_PA_RISC1_1: puts (\"hppa1.1-hitachi-hiuxwe2\"); break;\n\t\t  case CPU_PA_RISC2_0: puts (\"hppa2.0-hitachi-hiuxwe2\"); break;\n\t\t  default: puts (\"hppa-hitachi-hiuxwe2\"); break;\n\t\t}\n\t    }\n\t  else if (CPU_IS_HP_MC68K (cpu))\n\t    puts (\"m68k-hitachi-hiuxwe2\");\n\t  else puts (\"unknown-hitachi-hiuxwe2\");\n\t  exit (0);\n\t}\nEOF\n\t$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&\n\t\t{ echo \"$SYSTEM_NAME\"; exit; }\n\techo unknown-hitachi-hiuxwe2\n\texit ;;\n    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )\n\techo hppa1.1-hp-bsd\n\texit ;;\n    9000/8??:4.3bsd:*:*)\n\techo hppa1.0-hp-bsd\n\texit ;;\n    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)\n\techo hppa1.0-hp-mpeix\n\texit ;;\n    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )\n\techo hppa1.1-hp-osf\n\texit ;;\n    hp8??:OSF1:*:*)\n\techo hppa1.0-hp-osf\n\texit ;;\n    i*86:OSF1:*:*)\n\tif [ -x /usr/sbin/sysversion ] ; then\n\t    echo ${UNAME_MACHINE}-unknown-osf1mk\n\telse\n\t    echo ${UNAME_MACHINE}-unknown-osf1\n\tfi\n\texit ;;\n    parisc*:Lites*:*:*)\n\techo hppa1.1-hp-lites\n\texit ;;\n    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)\n\techo c1-convex-bsd\n        exit ;;\n    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)\n\tif getsysinfo -f scalar_acc\n\tthen echo c32-convex-bsd\n\telse echo c2-convex-bsd\n\tfi\n        exit ;;\n    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)\n\techo c34-convex-bsd\n        exit ;;\n    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)\n\techo c38-convex-bsd\n        exit ;;\n    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)\n\techo c4-convex-bsd\n        exit ;;\n    CRAY*Y-MP:*:*:*)\n\techo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\\.[^.]*$/.X/'\n\texit ;;\n    CRAY*[A-Z]90:*:*:*)\n\techo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \\\n\t| sed -e 's/CRAY.*\\([A-Z]90\\)/\\1/' \\\n\t      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \\\n\t      -e 's/\\.[^.]*$/.X/'\n\texit ;;\n    CRAY*TS:*:*:*)\n\techo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\\.[^.]*$/.X/'\n\texit ;;\n    CRAY*T3E:*:*:*)\n\techo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\\.[^.]*$/.X/'\n\texit ;;\n    CRAY*SV1:*:*:*)\n\techo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\\.[^.]*$/.X/'\n\texit ;;\n    *:UNICOS/mp:*:*)\n\techo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\\.[^.]*$/.X/'\n\texit ;;\n    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)\n\tFUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`\n        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\\///'`\n        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`\n        echo \"${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}\"\n        exit ;;\n    5000:UNIX_System_V:4.*:*)\n        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\\///'`\n        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`\n        echo \"sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}\"\n\texit ;;\n    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\\ Embedded/OS:*:*)\n\techo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}\n\texit ;;\n    sparc*:BSD/OS:*:*)\n\techo sparc-unknown-bsdi${UNAME_RELEASE}\n\texit ;;\n    *:BSD/OS:*:*)\n\techo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}\n\texit ;;\n    *:FreeBSD:*:*)\n\tcase ${UNAME_MACHINE} in\n\t    pc98)\n\t\techo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;\n\t    amd64)\n\t\techo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;\n\t    *)\n\t\techo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;\n\tesac\n\texit ;;\n    i*:CYGWIN*:*)\n\techo ${UNAME_MACHINE}-pc-cygwin\n\texit ;;\n    *:MINGW*:*)\n\techo ${UNAME_MACHINE}-pc-mingw32\n\texit ;;\n    i*:windows32*:*)\n    \t# uname -m includes \"-pc\" on this system.\n    \techo ${UNAME_MACHINE}-mingw32\n\texit ;;\n    i*:PW*:*)\n\techo ${UNAME_MACHINE}-pc-pw32\n\texit ;;\n    *:Interix*:[3456]*)\n    \tcase ${UNAME_MACHINE} in\n\t    x86)\n\t\techo i586-pc-interix${UNAME_RELEASE}\n\t\texit ;;\n\t    EM64T | authenticamd)\n\t\techo x86_64-unknown-interix${UNAME_RELEASE}\n\t\texit ;;\n\t    IA64)\n\t\techo ia64-unknown-interix${UNAME_RELEASE}\n\t\texit ;;\n\tesac ;;\n    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)\n\techo i${UNAME_MACHINE}-pc-mks\n\texit ;;\n    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)\n\t# How do we know it's Interix rather than the generic POSIX subsystem?\n\t# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we\n\t# UNAME_MACHINE based on the output of uname instead of i386?\n\techo i586-pc-interix\n\texit ;;\n    i*:UWIN*:*)\n\techo ${UNAME_MACHINE}-pc-uwin\n\texit ;;\n    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)\n\techo x86_64-unknown-cygwin\n\texit ;;\n    p*:CYGWIN*:*)\n\techo powerpcle-unknown-cygwin\n\texit ;;\n    prep*:SunOS:5.*:*)\n\techo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`\n\texit ;;\n    *:GNU:*:*)\n\t# the GNU system\n\techo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`\n\texit ;;\n    *:GNU/*:*:*)\n\t# other systems with GNU libc and userland\n\techo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu\n\texit ;;\n    i*86:Minix:*:*)\n\techo ${UNAME_MACHINE}-pc-minix\n\texit ;;\n    arm*:Linux:*:*)\n\teval $set_cc_for_build\n\tif echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \\\n\t    | grep -q __ARM_EABI__\n\tthen\n\t    echo ${UNAME_MACHINE}-unknown-linux-gnu\n\telse\n\t    echo ${UNAME_MACHINE}-unknown-linux-gnueabi\n\tfi\n\texit ;;\n    avr32*:Linux:*:*)\n\techo ${UNAME_MACHINE}-unknown-linux-gnu\n\texit ;;\n    cris:Linux:*:*)\n\techo cris-axis-linux-gnu\n\texit ;;\n    crisv32:Linux:*:*)\n\techo crisv32-axis-linux-gnu\n\texit ;;\n    frv:Linux:*:*)\n    \techo frv-unknown-linux-gnu\n\texit ;;\n    ia64:Linux:*:*)\n\techo ${UNAME_MACHINE}-unknown-linux-gnu\n\texit ;;\n    m32r*:Linux:*:*)\n\techo ${UNAME_MACHINE}-unknown-linux-gnu\n\texit ;;\n    m68*:Linux:*:*)\n\techo ${UNAME_MACHINE}-unknown-linux-gnu\n\texit ;;\n    mips:Linux:*:*)\n\teval $set_cc_for_build\n\tsed 's/^\t//' << EOF >$dummy.c\n\t#undef CPU\n\t#undef mips\n\t#undef mipsel\n\t#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)\n\tCPU=mipsel\n\t#else\n\t#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)\n\tCPU=mips\n\t#else\n\tCPU=\n\t#endif\n\t#endif\nEOF\n\teval \"`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '\n\t    /^CPU/{\n\t\ts: ::g\n\t\tp\n\t    }'`\"\n\ttest x\"${CPU}\" != x && { echo \"${CPU}-unknown-linux-gnu\"; exit; }\n\t;;\n    mips64:Linux:*:*)\n\teval $set_cc_for_build\n\tsed 's/^\t//' << EOF >$dummy.c\n\t#undef CPU\n\t#undef mips64\n\t#undef mips64el\n\t#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)\n\tCPU=mips64el\n\t#else\n\t#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)\n\tCPU=mips64\n\t#else\n\tCPU=\n\t#endif\n\t#endif\nEOF\n\teval \"`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '\n\t    /^CPU/{\n\t\ts: ::g\n\t\tp\n\t    }'`\"\n\ttest x\"${CPU}\" != x && { echo \"${CPU}-unknown-linux-gnu\"; exit; }\n\t;;\n    or32:Linux:*:*)\n\techo or32-unknown-linux-gnu\n\texit ;;\n    ppc:Linux:*:*)\n\techo powerpc-unknown-linux-gnu\n\texit ;;\n    ppc64:Linux:*:*)\n\techo powerpc64-unknown-linux-gnu\n\texit ;;\n    alpha:Linux:*:*)\n\tcase `sed -n '/^cpu model/s/^.*: \\(.*\\)/\\1/p' < /proc/cpuinfo` in\n\t  EV5)   UNAME_MACHINE=alphaev5 ;;\n\t  EV56)  UNAME_MACHINE=alphaev56 ;;\n\t  PCA56) UNAME_MACHINE=alphapca56 ;;\n\t  PCA57) UNAME_MACHINE=alphapca56 ;;\n\t  EV6)   UNAME_MACHINE=alphaev6 ;;\n\t  EV67)  UNAME_MACHINE=alphaev67 ;;\n\t  EV68*) UNAME_MACHINE=alphaev68 ;;\n        esac\n\tobjdump --private-headers /bin/sh | grep ld.so.1 >/dev/null\n\tif test \"$?\" = 0 ; then LIBC=\"libc1\" ; else LIBC=\"\" ; fi\n\techo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}\n\texit ;;\n    parisc:Linux:*:* | hppa:Linux:*:*)\n\t# Look for CPU level\n\tcase `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in\n\t  PA7*) echo hppa1.1-unknown-linux-gnu ;;\n\t  PA8*) echo hppa2.0-unknown-linux-gnu ;;\n\t  *)    echo hppa-unknown-linux-gnu ;;\n\tesac\n\texit ;;\n    parisc64:Linux:*:* | hppa64:Linux:*:*)\n\techo hppa64-unknown-linux-gnu\n\texit ;;\n    s390:Linux:*:* | s390x:Linux:*:*)\n\techo ${UNAME_MACHINE}-ibm-linux\n\texit ;;\n    sh64*:Linux:*:*)\n    \techo ${UNAME_MACHINE}-unknown-linux-gnu\n\texit ;;\n    sh*:Linux:*:*)\n\techo ${UNAME_MACHINE}-unknown-linux-gnu\n\texit ;;\n    sparc:Linux:*:* | sparc64:Linux:*:*)\n\techo ${UNAME_MACHINE}-unknown-linux-gnu\n\texit ;;\n    vax:Linux:*:*)\n\techo ${UNAME_MACHINE}-dec-linux-gnu\n\texit ;;\n    x86_64:Linux:*:*)\n\techo x86_64-unknown-linux-gnu\n\texit ;;\n    xtensa*:Linux:*:*)\n    \techo ${UNAME_MACHINE}-unknown-linux-gnu\n\texit ;;\n    i*86:Linux:*:*)\n\t# The BFD linker knows what the default object file format is, so\n\t# first see if it will tell us. cd to the root directory to prevent\n\t# problems with other programs or directories called `ld' in the path.\n\t# Set LC_ALL=C to ensure ld outputs messages in English.\n\tld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \\\n\t\t\t | sed -ne '/supported targets:/!d\n\t\t\t\t    s/[ \t][ \t]*/ /g\n\t\t\t\t    s/.*supported targets: *//\n\t\t\t\t    s/ .*//\n\t\t\t\t    p'`\n        case \"$ld_supported_targets\" in\n\t  elf32-i386)\n\t\tTENTATIVE=\"${UNAME_MACHINE}-pc-linux-gnu\"\n\t\t;;\n\t  a.out-i386-linux)\n\t\techo \"${UNAME_MACHINE}-pc-linux-gnuaout\"\n\t\texit ;;\n\t  coff-i386)\n\t\techo \"${UNAME_MACHINE}-pc-linux-gnucoff\"\n\t\texit ;;\n\t  \"\")\n\t\t# Either a pre-BFD a.out linker (linux-gnuoldld) or\n\t\t# one that does not give us useful --help.\n\t\techo \"${UNAME_MACHINE}-pc-linux-gnuoldld\"\n\t\texit ;;\n\tesac\n\t# Determine whether the default compiler is a.out or elf\n\teval $set_cc_for_build\n\tsed 's/^\t//' << EOF >$dummy.c\n\t#include <features.h>\n\t#ifdef __ELF__\n\t# ifdef __GLIBC__\n\t#  if __GLIBC__ >= 2\n\tLIBC=gnu\n\t#  else\n\tLIBC=gnulibc1\n\t#  endif\n\t# else\n\tLIBC=gnulibc1\n\t# endif\n\t#else\n\t#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)\n\tLIBC=gnu\n\t#else\n\tLIBC=gnuaout\n\t#endif\n\t#endif\n\t#ifdef __dietlibc__\n\tLIBC=dietlibc\n\t#endif\nEOF\n\teval \"`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '\n\t    /^LIBC/{\n\t\ts: ::g\n\t\tp\n\t    }'`\"\n\ttest x\"${LIBC}\" != x && {\n\t\techo \"${UNAME_MACHINE}-pc-linux-${LIBC}\"\n\t\texit\n\t}\n\ttest x\"${TENTATIVE}\" != x && { echo \"${TENTATIVE}\"; exit; }\n\t;;\n    i*86:DYNIX/ptx:4*:*)\n\t# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.\n\t# earlier versions are messed up and put the nodename in both\n\t# sysname and nodename.\n\techo i386-sequent-sysv4\n\texit ;;\n    i*86:UNIX_SV:4.2MP:2.*)\n        # Unixware is an offshoot of SVR4, but it has its own version\n        # number series starting with 2...\n        # I am not positive that other SVR4 systems won't match this,\n\t# I just have to hope.  -- rms.\n        # Use sysv4.2uw... so that sysv4* matches it.\n\techo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}\n\texit ;;\n    i*86:OS/2:*:*)\n\t# If we were able to find `uname', then EMX Unix compatibility\n\t# is probably installed.\n\techo ${UNAME_MACHINE}-pc-os2-emx\n\texit ;;\n    i*86:XTS-300:*:STOP)\n\techo ${UNAME_MACHINE}-unknown-stop\n\texit ;;\n    i*86:atheos:*:*)\n\techo ${UNAME_MACHINE}-unknown-atheos\n\texit ;;\n    i*86:syllable:*:*)\n\techo ${UNAME_MACHINE}-pc-syllable\n\texit ;;\n    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)\n\techo i386-unknown-lynxos${UNAME_RELEASE}\n\texit ;;\n    i*86:*DOS:*:*)\n\techo ${UNAME_MACHINE}-pc-msdosdjgpp\n\texit ;;\n    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)\n\tUNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\\/MP$//'`\n\tif grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then\n\t\techo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}\n\telse\n\t\techo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}\n\tfi\n\texit ;;\n    i*86:*:5:[678]*)\n    \t# UnixWare 7.x, OpenUNIX and OpenServer 6.\n\tcase `/bin/uname -X | grep \"^Machine\"` in\n\t    *486*)\t     UNAME_MACHINE=i486 ;;\n\t    *Pentium)\t     UNAME_MACHINE=i586 ;;\n\t    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;\n\tesac\n\techo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}\n\texit ;;\n    i*86:*:3.2:*)\n\tif test -f /usr/options/cb.name; then\n\t\tUNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`\n\t\techo ${UNAME_MACHINE}-pc-isc$UNAME_REL\n\telif /bin/uname -X 2>/dev/null >/dev/null ; then\n\t\tUNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`\n\t\t(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486\n\t\t(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \\\n\t\t\t&& UNAME_MACHINE=i586\n\t\t(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \\\n\t\t\t&& UNAME_MACHINE=i686\n\t\t(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \\\n\t\t\t&& UNAME_MACHINE=i686\n\t\techo ${UNAME_MACHINE}-pc-sco$UNAME_REL\n\telse\n\t\techo ${UNAME_MACHINE}-pc-sysv32\n\tfi\n\texit ;;\n    pc:*:*:*)\n\t# Left here for compatibility:\n        # uname -m prints for DJGPP always 'pc', but it prints nothing about\n        # the processor, so we play safe by assuming i386.\n\techo i386-pc-msdosdjgpp\n        exit ;;\n    Intel:Mach:3*:*)\n\techo i386-pc-mach3\n\texit ;;\n    paragon:*:*:*)\n\techo i860-intel-osf1\n\texit ;;\n    i860:*:4.*:*) # i860-SVR4\n\tif grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then\n\t  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4\n\telse # Add other i860-SVR4 vendors below as they are discovered.\n\t  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4\n\tfi\n\texit ;;\n    mini*:CTIX:SYS*5:*)\n\t# \"miniframe\"\n\techo m68010-convergent-sysv\n\texit ;;\n    mc68k:UNIX:SYSTEM5:3.51m)\n\techo m68k-convergent-sysv\n\texit ;;\n    M680?0:D-NIX:5.3:*)\n\techo m68k-diab-dnix\n\texit ;;\n    M68*:*:R3V[5678]*:*)\n\ttest -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;\n    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)\n\tOS_REL=''\n\ttest -r /etc/.relid \\\n\t&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \\([0-9][0-9]\\).*/\\1/p' < /etc/.relid`\n\t/bin/uname -p 2>/dev/null | grep 86 >/dev/null \\\n\t  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }\n\t/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \\\n\t  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;\n    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)\n        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \\\n          && { echo i486-ncr-sysv4; exit; } ;;\n    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)\n\techo m68k-unknown-lynxos${UNAME_RELEASE}\n\texit ;;\n    mc68030:UNIX_System_V:4.*:*)\n\techo m68k-atari-sysv4\n\texit ;;\n    TSUNAMI:LynxOS:2.*:*)\n\techo sparc-unknown-lynxos${UNAME_RELEASE}\n\texit ;;\n    rs6000:LynxOS:2.*:*)\n\techo rs6000-unknown-lynxos${UNAME_RELEASE}\n\texit ;;\n    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)\n\techo powerpc-unknown-lynxos${UNAME_RELEASE}\n\texit ;;\n    SM[BE]S:UNIX_SV:*:*)\n\techo mips-dde-sysv${UNAME_RELEASE}\n\texit ;;\n    RM*:ReliantUNIX-*:*:*)\n\techo mips-sni-sysv4\n\texit ;;\n    RM*:SINIX-*:*:*)\n\techo mips-sni-sysv4\n\texit ;;\n    *:SINIX-*:*:*)\n\tif uname -p 2>/dev/null >/dev/null ; then\n\t\tUNAME_MACHINE=`(uname -p) 2>/dev/null`\n\t\techo ${UNAME_MACHINE}-sni-sysv4\n\telse\n\t\techo ns32k-sni-sysv\n\tfi\n\texit ;;\n    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort\n                      # says <Richard.M.Bartel@ccMail.Census.GOV>\n        echo i586-unisys-sysv4\n        exit ;;\n    *:UNIX_System_V:4*:FTX*)\n\t# From Gerald Hewes <hewes@openmarket.com>.\n\t# How about differentiating between stratus architectures? -djm\n\techo hppa1.1-stratus-sysv4\n\texit ;;\n    *:*:*:FTX*)\n\t# From seanf@swdc.stratus.com.\n\techo i860-stratus-sysv4\n\texit ;;\n    i*86:VOS:*:*)\n\t# From Paul.Green@stratus.com.\n\techo ${UNAME_MACHINE}-stratus-vos\n\texit ;;\n    *:VOS:*:*)\n\t# From Paul.Green@stratus.com.\n\techo hppa1.1-stratus-vos\n\texit ;;\n    mc68*:A/UX:*:*)\n\techo m68k-apple-aux${UNAME_RELEASE}\n\texit ;;\n    news*:NEWS-OS:6*:*)\n\techo mips-sony-newsos6\n\texit ;;\n    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)\n\tif [ -d /usr/nec ]; then\n\t        echo mips-nec-sysv${UNAME_RELEASE}\n\telse\n\t        echo mips-unknown-sysv${UNAME_RELEASE}\n\tfi\n        exit ;;\n    BeBox:BeOS:*:*)\t# BeOS running on hardware made by Be, PPC only.\n\techo powerpc-be-beos\n\texit ;;\n    BeMac:BeOS:*:*)\t# BeOS running on Mac or Mac clone, PPC only.\n\techo powerpc-apple-beos\n\texit ;;\n    BePC:BeOS:*:*)\t# BeOS running on Intel PC compatible.\n\techo i586-pc-beos\n\texit ;;\n    SX-4:SUPER-UX:*:*)\n\techo sx4-nec-superux${UNAME_RELEASE}\n\texit ;;\n    SX-5:SUPER-UX:*:*)\n\techo sx5-nec-superux${UNAME_RELEASE}\n\texit ;;\n    SX-6:SUPER-UX:*:*)\n\techo sx6-nec-superux${UNAME_RELEASE}\n\texit ;;\n    SX-7:SUPER-UX:*:*)\n\techo sx7-nec-superux${UNAME_RELEASE}\n\texit ;;\n    SX-8:SUPER-UX:*:*)\n\techo sx8-nec-superux${UNAME_RELEASE}\n\texit ;;\n    SX-8R:SUPER-UX:*:*)\n\techo sx8r-nec-superux${UNAME_RELEASE}\n\texit ;;\n    Power*:Rhapsody:*:*)\n\techo powerpc-apple-rhapsody${UNAME_RELEASE}\n\texit ;;\n    *:Rhapsody:*:*)\n\techo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}\n\texit ;;\n    *:Darwin:*:*)\n\tUNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown\n\tcase $UNAME_PROCESSOR in\n\t    unknown) UNAME_PROCESSOR=powerpc ;;\n\tesac\n\techo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}\n\texit ;;\n    *:procnto*:*:* | *:QNX:[0123456789]*:*)\n\tUNAME_PROCESSOR=`uname -p`\n\tif test \"$UNAME_PROCESSOR\" = \"x86\"; then\n\t\tUNAME_PROCESSOR=i386\n\t\tUNAME_MACHINE=pc\n\tfi\n\techo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}\n\texit ;;\n    *:QNX:*:4*)\n\techo i386-pc-qnx\n\texit ;;\n    NSE-?:NONSTOP_KERNEL:*:*)\n\techo nse-tandem-nsk${UNAME_RELEASE}\n\texit ;;\n    NSR-?:NONSTOP_KERNEL:*:*)\n\techo nsr-tandem-nsk${UNAME_RELEASE}\n\texit ;;\n    *:NonStop-UX:*:*)\n\techo mips-compaq-nonstopux\n\texit ;;\n    BS2000:POSIX*:*:*)\n\techo bs2000-siemens-sysv\n\texit ;;\n    DS/*:UNIX_System_V:*:*)\n\techo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}\n\texit ;;\n    *:Plan9:*:*)\n\t# \"uname -m\" is not consistent, so use $cputype instead. 386\n\t# is converted to i386 for consistency with other x86\n\t# operating systems.\n\tif test \"$cputype\" = \"386\"; then\n\t    UNAME_MACHINE=i386\n\telse\n\t    UNAME_MACHINE=\"$cputype\"\n\tfi\n\techo ${UNAME_MACHINE}-unknown-plan9\n\texit ;;\n    *:TOPS-10:*:*)\n\techo pdp10-unknown-tops10\n\texit ;;\n    *:TENEX:*:*)\n\techo pdp10-unknown-tenex\n\texit ;;\n    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)\n\techo pdp10-dec-tops20\n\texit ;;\n    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)\n\techo pdp10-xkl-tops20\n\texit ;;\n    *:TOPS-20:*:*)\n\techo pdp10-unknown-tops20\n\texit ;;\n    *:ITS:*:*)\n\techo pdp10-unknown-its\n\texit ;;\n    SEI:*:*:SEIUX)\n        echo mips-sei-seiux${UNAME_RELEASE}\n\texit ;;\n    *:DragonFly:*:*)\n\techo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`\n\texit ;;\n    *:*VMS:*:*)\n    \tUNAME_MACHINE=`(uname -p) 2>/dev/null`\n\tcase \"${UNAME_MACHINE}\" in\n\t    A*) echo alpha-dec-vms ; exit ;;\n\t    I*) echo ia64-dec-vms ; exit ;;\n\t    V*) echo vax-dec-vms ; exit ;;\n\tesac ;;\n    *:XENIX:*:SysV)\n\techo i386-pc-xenix\n\texit ;;\n    i*86:skyos:*:*)\n\techo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'\n\texit ;;\n    i*86:rdos:*:*)\n\techo ${UNAME_MACHINE}-pc-rdos\n\texit ;;\nesac\n\n#echo '(No uname command or uname output not recognized.)' 1>&2\n#echo \"${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}\" 1>&2\n\neval $set_cc_for_build\ncat >$dummy.c <<EOF\n#ifdef _SEQUENT_\n# include <sys/types.h>\n# include <sys/utsname.h>\n#endif\nmain ()\n{\n#if defined (sony)\n#if defined (MIPSEB)\n  /* BFD wants \"bsd\" instead of \"newsos\".  Perhaps BFD should be changed,\n     I don't know....  */\n  printf (\"mips-sony-bsd\\n\"); exit (0);\n#else\n#include <sys/param.h>\n  printf (\"m68k-sony-newsos%s\\n\",\n#ifdef NEWSOS4\n          \"4\"\n#else\n\t  \"\"\n#endif\n         ); exit (0);\n#endif\n#endif\n\n#if defined (__arm) && defined (__acorn) && defined (__unix)\n  printf (\"arm-acorn-riscix\\n\"); exit (0);\n#endif\n\n#if defined (hp300) && !defined (hpux)\n  printf (\"m68k-hp-bsd\\n\"); exit (0);\n#endif\n\n#if defined (NeXT)\n#if !defined (__ARCHITECTURE__)\n#define __ARCHITECTURE__ \"m68k\"\n#endif\n  int version;\n  version=`(hostinfo | sed -n 's/.*NeXT Mach \\([0-9]*\\).*/\\1/p') 2>/dev/null`;\n  if (version < 4)\n    printf (\"%s-next-nextstep%d\\n\", __ARCHITECTURE__, version);\n  else\n    printf (\"%s-next-openstep%d\\n\", __ARCHITECTURE__, version);\n  exit (0);\n#endif\n\n#if defined (MULTIMAX) || defined (n16)\n#if defined (UMAXV)\n  printf (\"ns32k-encore-sysv\\n\"); exit (0);\n#else\n#if defined (CMU)\n  printf (\"ns32k-encore-mach\\n\"); exit (0);\n#else\n  printf (\"ns32k-encore-bsd\\n\"); exit (0);\n#endif\n#endif\n#endif\n\n#if defined (__386BSD__)\n  printf (\"i386-pc-bsd\\n\"); exit (0);\n#endif\n\n#if defined (sequent)\n#if defined (i386)\n  printf (\"i386-sequent-dynix\\n\"); exit (0);\n#endif\n#if defined (ns32000)\n  printf (\"ns32k-sequent-dynix\\n\"); exit (0);\n#endif\n#endif\n\n#if defined (_SEQUENT_)\n    struct utsname un;\n\n    uname(&un);\n\n    if (strncmp(un.version, \"V2\", 2) == 0) {\n\tprintf (\"i386-sequent-ptx2\\n\"); exit (0);\n    }\n    if (strncmp(un.version, \"V1\", 2) == 0) { /* XXX is V1 correct? */\n\tprintf (\"i386-sequent-ptx1\\n\"); exit (0);\n    }\n    printf (\"i386-sequent-ptx\\n\"); exit (0);\n\n#endif\n\n#if defined (vax)\n# if !defined (ultrix)\n#  include <sys/param.h>\n#  if defined (BSD)\n#   if BSD == 43\n      printf (\"vax-dec-bsd4.3\\n\"); exit (0);\n#   else\n#    if BSD == 199006\n      printf (\"vax-dec-bsd4.3reno\\n\"); exit (0);\n#    else\n      printf (\"vax-dec-bsd\\n\"); exit (0);\n#    endif\n#   endif\n#  else\n    printf (\"vax-dec-bsd\\n\"); exit (0);\n#  endif\n# else\n    printf (\"vax-dec-ultrix\\n\"); exit (0);\n# endif\n#endif\n\n#if defined (alliant) && defined (i860)\n  printf (\"i860-alliant-bsd\\n\"); exit (0);\n#endif\n\n  exit (1);\n}\nEOF\n\n$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&\n\t{ echo \"$SYSTEM_NAME\"; exit; }\n\n# Apollos put the system type in the environment.\n\ntest -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }\n\n# Convex versions that predate uname can use getsysinfo(1)\n\nif [ -x /usr/convex/getsysinfo ]\nthen\n    case `getsysinfo -f cpu_type` in\n    c1*)\n\techo c1-convex-bsd\n\texit ;;\n    c2*)\n\tif getsysinfo -f scalar_acc\n\tthen echo c32-convex-bsd\n\telse echo c2-convex-bsd\n\tfi\n\texit ;;\n    c34*)\n\techo c34-convex-bsd\n\texit ;;\n    c38*)\n\techo c38-convex-bsd\n\texit ;;\n    c4*)\n\techo c4-convex-bsd\n\texit ;;\n    esac\nfi\n\ncat >&2 <<EOF\n$0: unable to guess system type\n\nThis script, last modified $timestamp, has failed to recognize\nthe operating system you are using. It is advised that you\ndownload the most up to date version of the config scripts from\n\n  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD\nand\n  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD\n\nIf the version you run ($0) is already up to date, please\nsend the following data and any information you think might be\npertinent to <config-patches@gnu.org> in order to provide the needed\ninformation to handle your system.\n\nconfig.guess timestamp = $timestamp\n\nuname -m = `(uname -m) 2>/dev/null || echo unknown`\nuname -r = `(uname -r) 2>/dev/null || echo unknown`\nuname -s = `(uname -s) 2>/dev/null || echo unknown`\nuname -v = `(uname -v) 2>/dev/null || echo unknown`\n\n/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`\n/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`\n\nhostinfo               = `(hostinfo) 2>/dev/null`\n/bin/universe          = `(/bin/universe) 2>/dev/null`\n/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`\n/bin/arch              = `(/bin/arch) 2>/dev/null`\n/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`\n/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`\n\nUNAME_MACHINE = ${UNAME_MACHINE}\nUNAME_RELEASE = ${UNAME_RELEASE}\nUNAME_SYSTEM  = ${UNAME_SYSTEM}\nUNAME_VERSION = ${UNAME_VERSION}\nEOF\n\nexit 1\n\n# Local variables:\n# eval: (add-hook 'write-file-hooks 'time-stamp)\n# time-stamp-start: \"timestamp='\"\n# time-stamp-format: \"%:y-%02m-%02d\"\n# time-stamp-end: \"'\"\n# End:\n"
  },
  {
    "path": "src/cpp/PLEX3/config.status",
    "content": "#! /bin/bash\n# Generated by configure.\n# Run this file to recreate the current configuration.\n# Compiler output produced by configure, useful for debugging\n# configure, is in config.log if it exists.\n\ndebug=false\nac_cs_recheck=false\nac_cs_silent=false\nSHELL=${CONFIG_SHELL-/bin/bash}\n## --------------------- ##\n## M4sh Initialization.  ##\n## --------------------- ##\n\n# Be Bourne compatible\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\nelif test -n \"${BASH_VERSION+set}\" && (set -o posix) >/dev/null 2>&1; then\n  set -o posix\nfi\nDUALCASE=1; export DUALCASE # for MKS sh\n\n# Support unset when possible.\nif ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then\n  as_unset=unset\nelse\n  as_unset=false\nfi\n\n\n# Work around bugs in pre-3.0 UWIN ksh.\n$as_unset ENV MAIL MAILPATH\nPS1='$ '\nPS2='> '\nPS4='+ '\n\n# NLS nuisances.\nfor as_var in \\\n  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \\\n  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \\\n  LC_TELEPHONE LC_TIME\ndo\n  if (set +x; test -z \"`(eval $as_var=C; export $as_var) 2>&1`\"); then\n    eval $as_var=C; export $as_var\n  else\n    $as_unset $as_var\n  fi\ndone\n\n# Required to use basename.\nif expr a : '\\(a\\)' >/dev/null 2>&1; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nif (basename /) >/dev/null 2>&1 && test \"X`basename / 2>&1`\" = \"X/\"; then\n  as_basename=basename\nelse\n  as_basename=false\nfi\n\n\n# Name of the executable.\nas_me=`$as_basename \"$0\" ||\n$as_expr X/\"$0\" : '.*/\\([^/][^/]*\\)/*$' \\| \\\n\t X\"$0\" : 'X\\(//\\)$' \\| \\\n\t X\"$0\" : 'X\\(/\\)$' \\| \\\n\t .     : '\\(.\\)' 2>/dev/null ||\necho X/\"$0\" |\n    sed '/^.*\\/\\([^/][^/]*\\)\\/*$/{ s//\\1/; q; }\n  \t  /^X\\/\\(\\/\\/\\)$/{ s//\\1/; q; }\n  \t  /^X\\/\\(\\/\\).*/{ s//\\1/; q; }\n  \t  s/.*/./; q'`\n\n\n# PATH needs CR, and LINENO needs CR and PATH.\n# Avoid depending upon Character Ranges.\nas_cr_letters='abcdefghijklmnopqrstuvwxyz'\nas_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nas_cr_Letters=$as_cr_letters$as_cr_LETTERS\nas_cr_digits='0123456789'\nas_cr_alnum=$as_cr_Letters$as_cr_digits\n\n# The user is always right.\nif test \"${PATH_SEPARATOR+set}\" != set; then\n  echo \"#! /bin/sh\" >conf$$.sh\n  echo  \"exit 0\"   >>conf$$.sh\n  chmod +x conf$$.sh\n  if (PATH=\"/nonexistent;.\"; conf$$.sh) >/dev/null 2>&1; then\n    PATH_SEPARATOR=';'\n  else\n    PATH_SEPARATOR=:\n  fi\n  rm -f conf$$.sh\nfi\n\n\n  as_lineno_1=$LINENO\n  as_lineno_2=$LINENO\n  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`\n  test \"x$as_lineno_1\" != \"x$as_lineno_2\" &&\n  test \"x$as_lineno_3\"  = \"x$as_lineno_2\"  || {\n  # Find who we are.  Look in the path if we contain no path at all\n  # relative or not.\n  case $0 in\n    *[\\\\/]* ) as_myself=$0 ;;\n    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  test -r \"$as_dir/$0\" && as_myself=$as_dir/$0 && break\ndone\n\n       ;;\n  esac\n  # We did not find ourselves, most probably we were run as `sh COMMAND'\n  # in which case we are not to be found in the path.\n  if test \"x$as_myself\" = x; then\n    as_myself=$0\n  fi\n  if test ! -f \"$as_myself\"; then\n    { { echo \"$as_me:$LINENO: error: cannot find myself; rerun with an absolute path\" >&5\necho \"$as_me: error: cannot find myself; rerun with an absolute path\" >&2;}\n   { (exit 1); exit 1; }; }\n  fi\n  case $CONFIG_SHELL in\n  '')\n    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for as_base in sh bash ksh sh5; do\n\t case $as_dir in\n\t /*)\n\t   if (\"$as_dir/$as_base\" -c '\n  as_lineno_1=$LINENO\n  as_lineno_2=$LINENO\n  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`\n  test \"x$as_lineno_1\" != \"x$as_lineno_2\" &&\n  test \"x$as_lineno_3\"  = \"x$as_lineno_2\" ') 2>/dev/null; then\n\t     $as_unset BASH_ENV || test \"${BASH_ENV+set}\" != set || { BASH_ENV=; export BASH_ENV; }\n\t     $as_unset ENV || test \"${ENV+set}\" != set || { ENV=; export ENV; }\n\t     CONFIG_SHELL=$as_dir/$as_base\n\t     export CONFIG_SHELL\n\t     exec \"$CONFIG_SHELL\" \"$0\" ${1+\"$@\"}\n\t   fi;;\n\t esac\n       done\ndone\n;;\n  esac\n\n  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO\n  # uniformly replaced by the line number.  The first 'sed' inserts a\n  # line-number line before each line; the second 'sed' does the real\n  # work.  The second script uses 'N' to pair each line-number line\n  # with the numbered line, and appends trailing '-' during\n  # substitution so that $LINENO is not a special case at line end.\n  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the\n  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)\n  sed '=' <$as_myself |\n    sed '\n      N\n      s,$,-,\n      : loop\n      s,^\\(['$as_cr_digits']*\\)\\(.*\\)[$]LINENO\\([^'$as_cr_alnum'_]\\),\\1\\2\\1\\3,\n      t loop\n      s,-$,,\n      s,^['$as_cr_digits']*\\n,,\n    ' >$as_me.lineno &&\n  chmod +x $as_me.lineno ||\n    { { echo \"$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell\" >&5\necho \"$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell\" >&2;}\n   { (exit 1); exit 1; }; }\n\n  # Don't try to exec as it changes $[0], causing all sort of problems\n  # (the dirname of $[0] is not the place where we might find the\n  # original and so on.  Autoconf is especially sensible to this).\n  . ./$as_me.lineno\n  # Exit status is that of the last command.\n  exit\n}\n\n\ncase `echo \"testing\\c\"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in\n  *c*,-n*) ECHO_N= ECHO_C='\n' ECHO_T='\t' ;;\n  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;\n  *)       ECHO_N= ECHO_C='\\c' ECHO_T= ;;\nesac\n\nif expr a : '\\(a\\)' >/dev/null 2>&1; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nrm -f conf$$ conf$$.exe conf$$.file\necho >conf$$.file\nif ln -s conf$$.file conf$$ 2>/dev/null; then\n  # We could just check for DJGPP; but this test a) works b) is more generic\n  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).\n  if test -f conf$$.exe; then\n    # Don't use ln at all; we don't have any links\n    as_ln_s='cp -p'\n  else\n    as_ln_s='ln -s'\n  fi\nelif ln conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s=ln\nelse\n  as_ln_s='cp -p'\nfi\nrm -f conf$$ conf$$.exe conf$$.file\n\nif mkdir -p . 2>/dev/null; then\n  as_mkdir_p=:\nelse\n  test -d ./-p && rmdir ./-p\n  as_mkdir_p=false\nfi\n\nas_executable_p=\"test -f\"\n\n# Sed expression to map a string onto a valid CPP name.\nas_tr_cpp=\"eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'\"\n\n# Sed expression to map a string onto a valid variable name.\nas_tr_sh=\"eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'\"\n\n\n# IFS\n# We need space, tab and new line, in precisely that order.\nas_nl='\n'\nIFS=\" \t$as_nl\"\n\n# CDPATH.\n$as_unset CDPATH\n\nexec 6>&1\n\n# Open the log real soon, to keep \\$[0] and so on meaningful, and to\n# report actual input values of CONFIG_FILES etc. instead of their\n# values after options handling.  Logging --version etc. is OK.\nexec 5>>config.log\n{\n  echo\n  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX\n## Running $as_me. ##\n_ASBOX\n} >&5\ncat >&5 <<_CSEOF\n\nThis file was extended by $as_me, which was\ngenerated by GNU Autoconf 2.59.  Invocation command line was\n\n  CONFIG_FILES    = $CONFIG_FILES\n  CONFIG_HEADERS  = $CONFIG_HEADERS\n  CONFIG_LINKS    = $CONFIG_LINKS\n  CONFIG_COMMANDS = $CONFIG_COMMANDS\n  $ $0 $@\n\n_CSEOF\necho \"on `(hostname || uname -n) 2>/dev/null | sed 1q`\" >&5\necho >&5\nconfig_files=\" src/Makevars\"\n\nac_cs_usage=\"\\\n\\`$as_me' instantiates files from templates according to the\ncurrent configuration.\n\nUsage: $0 [OPTIONS] [FILE]...\n\n  -h, --help       print this help, then exit\n  -V, --version    print version number, then exit\n  -q, --quiet      do not print progress messages\n  -d, --debug      don't remove temporary files\n      --recheck    update $as_me by reconfiguring in the same conditions\n  --file=FILE[:TEMPLATE]\n\t\t   instantiate the configuration file FILE\n\nConfiguration files:\n$config_files\n\nReport bugs to <bug-autoconf@gnu.org>.\"\nac_cs_version=\"\\\nconfig.status\nconfigured by ./configure, generated by GNU Autoconf 2.59,\n  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'\\\"\n\nCopyright (C) 2003 Free Software Foundation, Inc.\nThis config.status script is free software; the Free Software Foundation\ngives unlimited permission to copy, distribute and modify it.\"\nsrcdir=.\nINSTALL=\"/usr/bin/install -c\"\n# If no file are specified by the user, then we need to provide default\n# value.  By we need to know if files were specified by the user.\nac_need_defaults=:\nwhile test $# != 0\ndo\n  case $1 in\n  --*=*)\n    ac_option=`expr \"x$1\" : 'x\\([^=]*\\)='`\n    ac_optarg=`expr \"x$1\" : 'x[^=]*=\\(.*\\)'`\n    ac_shift=:\n    ;;\n  -*)\n    ac_option=$1\n    ac_optarg=$2\n    ac_shift=shift\n    ;;\n  *) # This is not an option, so the user has probably given explicit\n     # arguments.\n     ac_option=$1\n     ac_need_defaults=false;;\n  esac\n\n  case $ac_option in\n  # Handling of the options.\n  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)\n    ac_cs_recheck=: ;;\n  --version | --vers* | -V )\n    echo \"$ac_cs_version\"; exit 0 ;;\n  --he | --h)\n    # Conflict between --help and --header\n    { { echo \"$as_me:$LINENO: error: ambiguous option: $1\nTry \\`$0 --help' for more information.\" >&5\necho \"$as_me: error: ambiguous option: $1\nTry \\`$0 --help' for more information.\" >&2;}\n   { (exit 1); exit 1; }; };;\n  --help | --hel | -h )\n    echo \"$ac_cs_usage\"; exit 0 ;;\n  --debug | --d* | -d )\n    debug=: ;;\n  --file | --fil | --fi | --f )\n    $ac_shift\n    CONFIG_FILES=\"$CONFIG_FILES $ac_optarg\"\n    ac_need_defaults=false;;\n  --header | --heade | --head | --hea )\n    $ac_shift\n    CONFIG_HEADERS=\"$CONFIG_HEADERS $ac_optarg\"\n    ac_need_defaults=false;;\n  -q | -quiet | --quiet | --quie | --qui | --qu | --q \\\n  | -silent | --silent | --silen | --sile | --sil | --si | --s)\n    ac_cs_silent=: ;;\n\n  # This is an error.\n  -*) { { echo \"$as_me:$LINENO: error: unrecognized option: $1\nTry \\`$0 --help' for more information.\" >&5\necho \"$as_me: error: unrecognized option: $1\nTry \\`$0 --help' for more information.\" >&2;}\n   { (exit 1); exit 1; }; } ;;\n\n  *) ac_config_targets=\"$ac_config_targets $1\" ;;\n\n  esac\n  shift\ndone\n\nac_configure_extra_args=\n\nif $ac_cs_silent; then\n  exec 6>/dev/null\n  ac_configure_extra_args=\"$ac_configure_extra_args --silent\"\nfi\n\nif $ac_cs_recheck; then\n  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\n  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\nfi\n\nfor ac_config_target in $ac_config_targets\ndo\n  case \"$ac_config_target\" in\n  # Handling of arguments.\n  \"src/Makevars\" ) CONFIG_FILES=\"$CONFIG_FILES src/Makevars\" ;;\n  *) { { echo \"$as_me:$LINENO: error: invalid argument: $ac_config_target\" >&5\necho \"$as_me: error: invalid argument: $ac_config_target\" >&2;}\n   { (exit 1); exit 1; }; };;\n  esac\ndone\n\n# If the user did not use the arguments to specify the items to instantiate,\n# then the envvar interface is used.  Set only those that are not.\n# We use the long form for the default assignment because of an extremely\n# bizarre bug on SunOS 4.1.3.\nif $ac_need_defaults; then\n  test \"${CONFIG_FILES+set}\" = set || CONFIG_FILES=$config_files\nfi\n\n# Have a temporary directory for convenience.  Make it in the build tree\n# simply because there is no reason to put it here, and in addition,\n# creating and moving files from /tmp can sometimes cause problems.\n# Create a temporary directory, and hook for its removal unless debugging.\n$debug ||\n{\n  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0\n  trap '{ (exit 1); exit 1; }' 1 2 13 15\n}\n\n# Create a (secure) tmp directory for tmp files.\n\n{\n  tmp=`(umask 077 && mktemp -d -q \"./confstatXXXXXX\") 2>/dev/null` &&\n  test -n \"$tmp\" && test -d \"$tmp\"\n}  ||\n{\n  tmp=./confstat$$-$RANDOM\n  (umask 077 && mkdir $tmp)\n} ||\n{\n   echo \"$me: cannot create a temporary directory in .\" >&2\n   { (exit 1); exit 1; }\n}\n\n\n#\n# CONFIG_FILES section.\n#\n\n# No need to generate the scripts if there are no CONFIG_FILES.\n# This happens for instance when ./config.status config.h\nif test -n \"$CONFIG_FILES\"; then\n  # Protect against being on the right side of a sed subst in config.status.\n  sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\\\&,]/\\\\&/g;\n   s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\\CEOF\ns,@SHELL@,/bin/bash,;t t\ns,@PATH_SEPARATOR@,:,;t t\ns,@PACKAGE_NAME@,,;t t\ns,@PACKAGE_TARNAME@,,;t t\ns,@PACKAGE_VERSION@,,;t t\ns,@PACKAGE_STRING@,,;t t\ns,@PACKAGE_BUGREPORT@,,;t t\ns,@exec_prefix@,${prefix},;t t\ns,@prefix@,/usr/local,;t t\ns,@program_transform_name@,s,x,x,,;t t\ns,@bindir@,${exec_prefix}/bin,;t t\ns,@sbindir@,${exec_prefix}/sbin,;t t\ns,@libexecdir@,${exec_prefix}/libexec,;t t\ns,@datadir@,${prefix}/share,;t t\ns,@sysconfdir@,${prefix}/etc,;t t\ns,@sharedstatedir@,${prefix}/com,;t t\ns,@localstatedir@,${prefix}/var,;t t\ns,@libdir@,${exec_prefix}/lib,;t t\ns,@includedir@,${prefix}/include,;t t\ns,@oldincludedir@,/usr/include,;t t\ns,@infodir@,${prefix}/info,;t t\ns,@mandir@,${prefix}/man,;t t\ns,@build_alias@,,;t t\ns,@host_alias@,,;t t\ns,@target_alias@,,;t t\ns,@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\ns,@ECHO_C@,,;t t\ns,@ECHO_N@,-n,;t t\ns,@ECHO_T@,,;t t\ns,@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\ns,@CC@,gcc -std=gnu99,;t t\ns,@CFLAGS@,-g -O2,;t t\ns,@LDFLAGS@,,;t t\ns,@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\ns,@ac_ct_CC@,gcc,;t t\ns,@EXEEXT@,,;t t\ns,@OBJEXT@,o,;t t\ns,@CXX@,g++,;t t\ns,@CXXFLAGS@,-g -O2,;t t\ns,@ac_ct_CXX@,g++,;t t\ns,@INSTALL_PROGRAM@,${INSTALL},;t t\ns,@INSTALL_SCRIPT@,${INSTALL},;t t\ns,@INSTALL_DATA@,${INSTALL} -m 644,;t t\ns,@CPP@,gcc -E,;t t\ns,@EGREP@,grep -E,;t t\ns,@LIBOBJS@,,;t t\ns,@POW_LIB@,,;t t\ns,@build@,i686-pc-linux-gnu,;t t\ns,@build_cpu@,i686,;t t\ns,@build_vendor@,pc,;t t\ns,@build_os@,linux-gnu,;t t\ns,@host@,i686-pc-linux-gnu,;t t\ns,@host_cpu@,i686,;t t\ns,@host_vendor@,pc,;t t\ns,@host_os@,linux-gnu,;t t\ns,@LTLIBOBJS@,,;t t\nCEOF\n\n  # Split the substitutions into bite-sized pieces for seds with\n  # small command number limits, like on Digital OSF/1 and HP-UX.\n  ac_max_sed_lines=48\n  ac_sed_frag=1 # Number of current file.\n  ac_beg=1 # First line for current file.\n  ac_end=$ac_max_sed_lines # Line after last line for current file.\n  ac_more_lines=:\n  ac_sed_cmds=\n  while $ac_more_lines; do\n    if test $ac_beg -gt 1; then\n      sed \"1,${ac_beg}d; ${ac_end}q\" $tmp/subs.sed >$tmp/subs.frag\n    else\n      sed \"${ac_end}q\" $tmp/subs.sed >$tmp/subs.frag\n    fi\n    if test ! -s $tmp/subs.frag; then\n      ac_more_lines=false\n    else\n      # The purpose of the label and of the branching condition is to\n      # speed up the sed processing (if there are no `@' at all, there\n      # is no need to browse any of the substitutions).\n      # These are the two extra sed commands mentioned above.\n      (echo ':t\n  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed\n      if test -z \"$ac_sed_cmds\"; then\n\tac_sed_cmds=\"sed -f $tmp/subs-$ac_sed_frag.sed\"\n      else\n\tac_sed_cmds=\"$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed\"\n      fi\n      ac_sed_frag=`expr $ac_sed_frag + 1`\n      ac_beg=$ac_end\n      ac_end=`expr $ac_end + $ac_max_sed_lines`\n    fi\n  done\n  if test -z \"$ac_sed_cmds\"; then\n    ac_sed_cmds=cat\n  fi\nfi # test -n \"$CONFIG_FILES\"\n\nfor ac_file in : $CONFIG_FILES; do test \"x$ac_file\" = x: && continue\n  # Support \"outfile[:infile[:infile...]]\", defaulting infile=\"outfile.in\".\n  case $ac_file in\n  - | *:- | *:-:* ) # input from stdin\n\tcat >$tmp/stdin\n\tac_file_in=`echo \"$ac_file\" | sed 's,[^:]*:,,'`\n\tac_file=`echo \"$ac_file\" | sed 's,:.*,,'` ;;\n  *:* ) ac_file_in=`echo \"$ac_file\" | sed 's,[^:]*:,,'`\n\tac_file=`echo \"$ac_file\" | sed 's,:.*,,'` ;;\n  * )   ac_file_in=$ac_file.in ;;\n  esac\n\n  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.\n  ac_dir=`(dirname \"$ac_file\") 2>/dev/null ||\n$as_expr X\"$ac_file\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t X\"$ac_file\" : 'X\\(//\\)[^/]' \\| \\\n\t X\"$ac_file\" : 'X\\(//\\)$' \\| \\\n\t X\"$ac_file\" : 'X\\(/\\)' \\| \\\n\t .     : '\\(.\\)' 2>/dev/null ||\necho X\"$ac_file\" |\n    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{ s//\\1/; q; }\n  \t  /^X\\(\\/\\/\\)[^/].*/{ s//\\1/; q; }\n  \t  /^X\\(\\/\\/\\)$/{ s//\\1/; q; }\n  \t  /^X\\(\\/\\).*/{ s//\\1/; q; }\n  \t  s/.*/./; q'`\n  { if $as_mkdir_p; then\n    mkdir -p \"$ac_dir\"\n  else\n    as_dir=\"$ac_dir\"\n    as_dirs=\n    while test ! -d \"$as_dir\"; do\n      as_dirs=\"$as_dir $as_dirs\"\n      as_dir=`(dirname \"$as_dir\") 2>/dev/null ||\n$as_expr X\"$as_dir\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t X\"$as_dir\" : 'X\\(//\\)[^/]' \\| \\\n\t X\"$as_dir\" : 'X\\(//\\)$' \\| \\\n\t X\"$as_dir\" : 'X\\(/\\)' \\| \\\n\t .     : '\\(.\\)' 2>/dev/null ||\necho X\"$as_dir\" |\n    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{ s//\\1/; q; }\n  \t  /^X\\(\\/\\/\\)[^/].*/{ s//\\1/; q; }\n  \t  /^X\\(\\/\\/\\)$/{ s//\\1/; q; }\n  \t  /^X\\(\\/\\).*/{ s//\\1/; q; }\n  \t  s/.*/./; q'`\n    done\n    test ! -n \"$as_dirs\" || mkdir $as_dirs\n  fi || { { echo \"$as_me:$LINENO: error: cannot create directory \\\"$ac_dir\\\"\" >&5\necho \"$as_me: error: cannot create directory \\\"$ac_dir\\\"\" >&2;}\n   { (exit 1); exit 1; }; }; }\n\n  ac_builddir=.\n\nif test \"$ac_dir\" != .; then\n  ac_dir_suffix=/`echo \"$ac_dir\" | sed 's,^\\.[\\\\/],,'`\n  # A \"../\" for each directory in $ac_dir_suffix.\n  ac_top_builddir=`echo \"$ac_dir_suffix\" | sed 's,/[^\\\\/]*,../,g'`\nelse\n  ac_dir_suffix= ac_top_builddir=\nfi\n\ncase $srcdir in\n  .)  # No --srcdir option.  We are building in place.\n    ac_srcdir=.\n    if test -z \"$ac_top_builddir\"; then\n       ac_top_srcdir=.\n    else\n       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`\n    fi ;;\n  [\\\\/]* | ?:[\\\\/]* )  # Absolute path.\n    ac_srcdir=$srcdir$ac_dir_suffix;\n    ac_top_srcdir=$srcdir ;;\n  *) # Relative path.\n    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix\n    ac_top_srcdir=$ac_top_builddir$srcdir ;;\nesac\n\n# Do not use `cd foo && pwd` to compute absolute paths, because\n# the directories may not exist.\ncase `pwd` in\n.) ac_abs_builddir=\"$ac_dir\";;\n*)\n  case \"$ac_dir\" in\n  .) ac_abs_builddir=`pwd`;;\n  [\\\\/]* | ?:[\\\\/]* ) ac_abs_builddir=\"$ac_dir\";;\n  *) ac_abs_builddir=`pwd`/\"$ac_dir\";;\n  esac;;\nesac\ncase $ac_abs_builddir in\n.) ac_abs_top_builddir=${ac_top_builddir}.;;\n*)\n  case ${ac_top_builddir}. in\n  .) ac_abs_top_builddir=$ac_abs_builddir;;\n  [\\\\/]* | ?:[\\\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;\n  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;\n  esac;;\nesac\ncase $ac_abs_builddir in\n.) ac_abs_srcdir=$ac_srcdir;;\n*)\n  case $ac_srcdir in\n  .) ac_abs_srcdir=$ac_abs_builddir;;\n  [\\\\/]* | ?:[\\\\/]* ) ac_abs_srcdir=$ac_srcdir;;\n  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;\n  esac;;\nesac\ncase $ac_abs_builddir in\n.) ac_abs_top_srcdir=$ac_top_srcdir;;\n*)\n  case $ac_top_srcdir in\n  .) ac_abs_top_srcdir=$ac_abs_builddir;;\n  [\\\\/]* | ?:[\\\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;\n  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;\n  esac;;\nesac\n\n\n  case $INSTALL in\n  [\\\\/$]* | ?:[\\\\/]* ) ac_INSTALL=$INSTALL ;;\n  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;\n  esac\n\n  if test x\"$ac_file\" != x-; then\n    { echo \"$as_me:$LINENO: creating $ac_file\" >&5\necho \"$as_me: creating $ac_file\" >&6;}\n    rm -f \"$ac_file\"\n  fi\n  # Let's still pretend it is `configure' which instantiates (i.e., don't\n  # use $as_me), people would be surprised to read:\n  #    /* config.h.  Generated by config.status.  */\n  if test x\"$ac_file\" = x-; then\n    configure_input=\n  else\n    configure_input=\"$ac_file.  \"\n  fi\n  configure_input=$configure_input\"Generated from `echo $ac_file_in |\n\t\t\t\t     sed 's,.*/,,'` by configure.\"\n\n  # First look for the input files in the build tree, otherwise in the\n  # src tree.\n  ac_file_inputs=`IFS=:\n    for f in $ac_file_in; do\n      case $f in\n      -) echo $tmp/stdin ;;\n      [\\\\/$]*)\n\t # Absolute (can't be DOS-style, as IFS=:)\n\t test -f \"$f\" || { { echo \"$as_me:$LINENO: error: cannot find input file: $f\" >&5\necho \"$as_me: error: cannot find input file: $f\" >&2;}\n   { (exit 1); exit 1; }; }\n\t echo \"$f\";;\n      *) # Relative\n\t if test -f \"$f\"; then\n\t   # Build tree\n\t   echo \"$f\"\n\t elif test -f \"$srcdir/$f\"; then\n\t   # Source tree\n\t   echo \"$srcdir/$f\"\n\t else\n\t   # /dev/null tree\n\t   { { echo \"$as_me:$LINENO: error: cannot find input file: $f\" >&5\necho \"$as_me: error: cannot find input file: $f\" >&2;}\n   { (exit 1); exit 1; }; }\n\t fi;;\n      esac\n    done` || { (exit 1); exit 1; }\n  sed \"/^[\t ]*VPATH[\t ]*=/{\ns/:*\\$(srcdir):*/:/;\ns/:*\\${srcdir}:*/:/;\ns/:*@srcdir@:*/:/;\ns/^\\([^=]*=[\t ]*\\):*/\\1/;\ns/:*$//;\ns/^[^=]*=[\t ]*$//;\n}\n\n:t\n/@[a-zA-Z_][a-zA-Z_0-9]*@/!b\ns,@configure_input@,$configure_input,;t t\ns,@srcdir@,$ac_srcdir,;t t\ns,@abs_srcdir@,$ac_abs_srcdir,;t t\ns,@top_srcdir@,$ac_top_srcdir,;t t\ns,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t\ns,@builddir@,$ac_builddir,;t t\ns,@abs_builddir@,$ac_abs_builddir,;t t\ns,@top_builddir@,$ac_top_builddir,;t t\ns,@abs_top_builddir@,$ac_abs_top_builddir,;t t\ns,@INSTALL@,$ac_INSTALL,;t t\n\" $ac_file_inputs | (eval \"$ac_sed_cmds\") >$tmp/out\n  rm -f $tmp/stdin\n  if test x\"$ac_file\" != x-; then\n    mv $tmp/out $ac_file\n  else\n    cat $tmp/out\n    rm -f $tmp/out\n  fi\n\ndone\n\n{ (exit 0); exit 0; }\n"
  },
  {
    "path": "src/cpp/PLEX3/config.sub",
    "content": "#! /bin/sh\n# Configuration validation subroutine script.\n#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,\n#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008\n#   Free Software Foundation, Inc.\n\ntimestamp='2008-01-16'\n\n# This file is (in principle) common to ALL GNU software.\n# The presence of a machine in this file suggests that SOME GNU software\n# can handle that machine.  It does not imply ALL GNU software can.\n#\n# This file is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation; either version 2 of the License, or\n# (at your option) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA\n# 02110-1301, USA.\n#\n# As a special exception to the GNU General Public License, if you\n# distribute this file as part of a program that contains a\n# configuration script generated by Autoconf, you may include it under\n# the same distribution terms that you use for the rest of that program.\n\n\n# Please send patches to <config-patches@gnu.org>.  Submit a context\n# diff and a properly formatted ChangeLog entry.\n#\n# Configuration subroutine to validate and canonicalize a configuration type.\n# Supply the specified configuration type as an argument.\n# If it is invalid, we print an error message on stderr and exit with code 1.\n# Otherwise, we print the canonical config type on stdout and succeed.\n\n# This file is supposed to be the same for all GNU packages\n# and recognize all the CPU types, system types and aliases\n# that are meaningful with *any* GNU software.\n# Each package is responsible for reporting which valid configurations\n# it does not support.  The user should be able to distinguish\n# a failure to support a valid configuration from a meaningless\n# configuration.\n\n# The goal of this file is to map all the various variations of a given\n# machine specification into a single specification in the form:\n#\tCPU_TYPE-MANUFACTURER-OPERATING_SYSTEM\n# or in some cases, the newer four-part form:\n#\tCPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM\n# It is wrong to echo any other type of specification.\n\nme=`echo \"$0\" | sed -e 's,.*/,,'`\n\nusage=\"\\\nUsage: $0 [OPTION] CPU-MFR-OPSYS\n       $0 [OPTION] ALIAS\n\nCanonicalize a configuration name.\n\nOperation modes:\n  -h, --help         print this help, then exit\n  -t, --time-stamp   print date of last modification, then exit\n  -v, --version      print version number, then exit\n\nReport bugs and patches to <config-patches@gnu.org>.\"\n\nversion=\"\\\nGNU config.sub ($timestamp)\n\nCopyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,\n2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.\n\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\"\n\nhelp=\"\nTry \\`$me --help' for more information.\"\n\n# Parse command line\nwhile test $# -gt 0 ; do\n  case $1 in\n    --time-stamp | --time* | -t )\n       echo \"$timestamp\" ; exit ;;\n    --version | -v )\n       echo \"$version\" ; exit ;;\n    --help | --h* | -h )\n       echo \"$usage\"; exit ;;\n    -- )     # Stop option processing\n       shift; break ;;\n    - )\t# Use stdin as input.\n       break ;;\n    -* )\n       echo \"$me: invalid option $1$help\"\n       exit 1 ;;\n\n    *local*)\n       # First pass through any local machine types.\n       echo $1\n       exit ;;\n\n    * )\n       break ;;\n  esac\ndone\n\ncase $# in\n 0) echo \"$me: missing argument$help\" >&2\n    exit 1;;\n 1) ;;\n *) echo \"$me: too many arguments$help\" >&2\n    exit 1;;\nesac\n\n# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).\n# Here we must recognize all the valid KERNEL-OS combinations.\nmaybe_os=`echo $1 | sed 's/^\\(.*\\)-\\([^-]*-[^-]*\\)$/\\2/'`\ncase $maybe_os in\n  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \\\n  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \\\n  storm-chaos* | os2-emx* | rtmk-nova*)\n    os=-$maybe_os\n    basic_machine=`echo $1 | sed 's/^\\(.*\\)-\\([^-]*-[^-]*\\)$/\\1/'`\n    ;;\n  *)\n    basic_machine=`echo $1 | sed 's/-[^-]*$//'`\n    if [ $basic_machine != $1 ]\n    then os=`echo $1 | sed 's/.*-/-/'`\n    else os=; fi\n    ;;\nesac\n\n### Let's recognize common machines as not being operating systems so\n### that things like config.sub decstation-3100 work.  We also\n### recognize some manufacturers as not being operating systems, so we\n### can provide default operating systems below.\ncase $os in\n\t-sun*os*)\n\t\t# Prevent following clause from handling this invalid input.\n\t\t;;\n\t-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \\\n\t-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \\\n\t-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \\\n\t-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\\\n\t-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \\\n\t-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \\\n\t-apple | -axis | -knuth | -cray)\n\t\tos=\n\t\tbasic_machine=$1\n\t\t;;\n\t-sim | -cisco | -oki | -wec | -winbond)\n\t\tos=\n\t\tbasic_machine=$1\n\t\t;;\n\t-scout)\n\t\t;;\n\t-wrs)\n\t\tos=-vxworks\n\t\tbasic_machine=$1\n\t\t;;\n\t-chorusos*)\n\t\tos=-chorusos\n\t\tbasic_machine=$1\n\t\t;;\n \t-chorusrdb)\n \t\tos=-chorusrdb\n\t\tbasic_machine=$1\n \t\t;;\n\t-hiux*)\n\t\tos=-hiuxwe2\n\t\t;;\n\t-sco6)\n\t\tos=-sco5v6\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-sco5)\n\t\tos=-sco3.2v5\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-sco4)\n\t\tos=-sco3.2v4\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-sco3.2.[4-9]*)\n\t\tos=`echo $os | sed -e 's/sco3.2./sco3.2v/'`\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-sco3.2v[4-9]*)\n\t\t# Don't forget version if it is 3.2v4 or newer.\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-sco5v6*)\n\t\t# Don't forget version if it is 3.2v4 or newer.\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-sco*)\n\t\tos=-sco3.2v2\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-udk*)\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-isc)\n\t\tos=-isc2.2\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-clix*)\n\t\tbasic_machine=clipper-intergraph\n\t\t;;\n\t-isc*)\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`\n\t\t;;\n\t-lynx*)\n\t\tos=-lynxos\n\t\t;;\n\t-ptx*)\n\t\tbasic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`\n\t\t;;\n\t-windowsnt*)\n\t\tos=`echo $os | sed -e 's/windowsnt/winnt/'`\n\t\t;;\n\t-psos*)\n\t\tos=-psos\n\t\t;;\n\t-mint | -mint[0-9]*)\n\t\tbasic_machine=m68k-atari\n\t\tos=-mint\n\t\t;;\nesac\n\n# Decode aliases for certain CPU-COMPANY combinations.\ncase $basic_machine in\n\t# Recognize the basic CPU types without company name.\n\t# Some are omitted here because they have special meanings below.\n\t1750a | 580 \\\n\t| a29k \\\n\t| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \\\n\t| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \\\n\t| am33_2.0 \\\n\t| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \\\n\t| bfin \\\n\t| c4x | clipper \\\n\t| d10v | d30v | dlx | dsp16xx \\\n\t| fido | fr30 | frv \\\n\t| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \\\n\t| i370 | i860 | i960 | ia64 \\\n\t| ip2k | iq2000 \\\n\t| m32c | m32r | m32rle | m68000 | m68k | m88k \\\n\t| maxq | mb | microblaze | mcore | mep \\\n\t| mips | mipsbe | mipseb | mipsel | mipsle \\\n\t| mips16 \\\n\t| mips64 | mips64el \\\n\t| mips64vr | mips64vrel \\\n\t| mips64orion | mips64orionel \\\n\t| mips64vr4100 | mips64vr4100el \\\n\t| mips64vr4300 | mips64vr4300el \\\n\t| mips64vr5000 | mips64vr5000el \\\n\t| mips64vr5900 | mips64vr5900el \\\n\t| mipsisa32 | mipsisa32el \\\n\t| mipsisa32r2 | mipsisa32r2el \\\n\t| mipsisa64 | mipsisa64el \\\n\t| mipsisa64r2 | mipsisa64r2el \\\n\t| mipsisa64sb1 | mipsisa64sb1el \\\n\t| mipsisa64sr71k | mipsisa64sr71kel \\\n\t| mipstx39 | mipstx39el \\\n\t| mn10200 | mn10300 \\\n\t| mt \\\n\t| msp430 \\\n\t| nios | nios2 \\\n\t| ns16k | ns32k \\\n\t| or32 \\\n\t| pdp10 | pdp11 | pj | pjl \\\n\t| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \\\n\t| pyramid \\\n\t| score \\\n\t| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \\\n\t| sh64 | sh64le \\\n\t| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \\\n\t| sparcv8 | sparcv9 | sparcv9b | sparcv9v \\\n\t| spu | strongarm \\\n\t| tahoe | thumb | tic4x | tic80 | tron \\\n\t| v850 | v850e \\\n\t| we32k \\\n\t| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \\\n\t| z8k)\n\t\tbasic_machine=$basic_machine-unknown\n\t\t;;\n\tm6811 | m68hc11 | m6812 | m68hc12)\n\t\t# Motorola 68HC11/12.\n\t\tbasic_machine=$basic_machine-unknown\n\t\tos=-none\n\t\t;;\n\tm88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)\n\t\t;;\n\tms1)\n\t\tbasic_machine=mt-unknown\n\t\t;;\n\n\t# We use `pc' rather than `unknown'\n\t# because (1) that's what they normally are, and\n\t# (2) the word \"unknown\" tends to confuse beginning users.\n\ti*86 | x86_64)\n\t  basic_machine=$basic_machine-pc\n\t  ;;\n\t# Object if more than one company name word.\n\t*-*-*)\n\t\techo Invalid configuration \\`$1\\': machine \\`$basic_machine\\' not recognized 1>&2\n\t\texit 1\n\t\t;;\n\t# Recognize the basic CPU types with company name.\n\t580-* \\\n\t| a29k-* \\\n\t| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \\\n\t| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \\\n\t| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \\\n\t| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \\\n\t| avr-* | avr32-* \\\n\t| bfin-* | bs2000-* \\\n\t| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \\\n\t| clipper-* | craynv-* | cydra-* \\\n\t| d10v-* | d30v-* | dlx-* \\\n\t| elxsi-* \\\n\t| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \\\n\t| h8300-* | h8500-* \\\n\t| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \\\n\t| i*86-* | i860-* | i960-* | ia64-* \\\n\t| ip2k-* | iq2000-* \\\n\t| m32c-* | m32r-* | m32rle-* \\\n\t| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \\\n\t| m88110-* | m88k-* | maxq-* | mcore-* \\\n\t| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \\\n\t| mips16-* \\\n\t| mips64-* | mips64el-* \\\n\t| mips64vr-* | mips64vrel-* \\\n\t| mips64orion-* | mips64orionel-* \\\n\t| mips64vr4100-* | mips64vr4100el-* \\\n\t| mips64vr4300-* | mips64vr4300el-* \\\n\t| mips64vr5000-* | mips64vr5000el-* \\\n\t| mips64vr5900-* | mips64vr5900el-* \\\n\t| mipsisa32-* | mipsisa32el-* \\\n\t| mipsisa32r2-* | mipsisa32r2el-* \\\n\t| mipsisa64-* | mipsisa64el-* \\\n\t| mipsisa64r2-* | mipsisa64r2el-* \\\n\t| mipsisa64sb1-* | mipsisa64sb1el-* \\\n\t| mipsisa64sr71k-* | mipsisa64sr71kel-* \\\n\t| mipstx39-* | mipstx39el-* \\\n\t| mmix-* \\\n\t| mt-* \\\n\t| msp430-* \\\n\t| nios-* | nios2-* \\\n\t| none-* | np1-* | ns16k-* | ns32k-* \\\n\t| orion-* \\\n\t| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \\\n\t| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \\\n\t| pyramid-* \\\n\t| romp-* | rs6000-* \\\n\t| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \\\n\t| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \\\n\t| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \\\n\t| sparclite-* \\\n\t| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \\\n\t| tahoe-* | thumb-* \\\n\t| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \\\n\t| tron-* \\\n\t| v850-* | v850e-* | vax-* \\\n\t| we32k-* \\\n\t| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \\\n\t| xstormy16-* | xtensa*-* \\\n\t| ymp-* \\\n\t| z8k-*)\n\t\t;;\n\t# Recognize the basic CPU types without company name, with glob match.\n\txtensa*)\n\t\tbasic_machine=$basic_machine-unknown\n\t\t;;\n\t# Recognize the various machine names and aliases which stand\n\t# for a CPU type and a company and sometimes even an OS.\n\t386bsd)\n\t\tbasic_machine=i386-unknown\n\t\tos=-bsd\n\t\t;;\n\t3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)\n\t\tbasic_machine=m68000-att\n\t\t;;\n\t3b*)\n\t\tbasic_machine=we32k-att\n\t\t;;\n\ta29khif)\n\t\tbasic_machine=a29k-amd\n\t\tos=-udi\n\t\t;;\n    \tabacus)\n\t\tbasic_machine=abacus-unknown\n\t\t;;\n\tadobe68k)\n\t\tbasic_machine=m68010-adobe\n\t\tos=-scout\n\t\t;;\n\talliant | fx80)\n\t\tbasic_machine=fx80-alliant\n\t\t;;\n\taltos | altos3068)\n\t\tbasic_machine=m68k-altos\n\t\t;;\n\tam29k)\n\t\tbasic_machine=a29k-none\n\t\tos=-bsd\n\t\t;;\n\tamd64)\n\t\tbasic_machine=x86_64-pc\n\t\t;;\n\tamd64-*)\n\t\tbasic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tamdahl)\n\t\tbasic_machine=580-amdahl\n\t\tos=-sysv\n\t\t;;\n\tamiga | amiga-*)\n\t\tbasic_machine=m68k-unknown\n\t\t;;\n\tamigaos | amigados)\n\t\tbasic_machine=m68k-unknown\n\t\tos=-amigaos\n\t\t;;\n\tamigaunix | amix)\n\t\tbasic_machine=m68k-unknown\n\t\tos=-sysv4\n\t\t;;\n\tapollo68)\n\t\tbasic_machine=m68k-apollo\n\t\tos=-sysv\n\t\t;;\n\tapollo68bsd)\n\t\tbasic_machine=m68k-apollo\n\t\tos=-bsd\n\t\t;;\n\taux)\n\t\tbasic_machine=m68k-apple\n\t\tos=-aux\n\t\t;;\n\tbalance)\n\t\tbasic_machine=ns32k-sequent\n\t\tos=-dynix\n\t\t;;\n\tblackfin)\n\t\tbasic_machine=bfin-unknown\n\t\tos=-linux\n\t\t;;\n\tblackfin-*)\n\t\tbasic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\tos=-linux\n\t\t;;\n\tc90)\n\t\tbasic_machine=c90-cray\n\t\tos=-unicos\n\t\t;;\n\tconvex-c1)\n\t\tbasic_machine=c1-convex\n\t\tos=-bsd\n\t\t;;\n\tconvex-c2)\n\t\tbasic_machine=c2-convex\n\t\tos=-bsd\n\t\t;;\n\tconvex-c32)\n\t\tbasic_machine=c32-convex\n\t\tos=-bsd\n\t\t;;\n\tconvex-c34)\n\t\tbasic_machine=c34-convex\n\t\tos=-bsd\n\t\t;;\n\tconvex-c38)\n\t\tbasic_machine=c38-convex\n\t\tos=-bsd\n\t\t;;\n\tcray | j90)\n\t\tbasic_machine=j90-cray\n\t\tos=-unicos\n\t\t;;\n\tcraynv)\n\t\tbasic_machine=craynv-cray\n\t\tos=-unicosmp\n\t\t;;\n\tcr16)\n\t\tbasic_machine=cr16-unknown\n\t\tos=-elf\n\t\t;;\n\tcrds | unos)\n\t\tbasic_machine=m68k-crds\n\t\t;;\n\tcrisv32 | crisv32-* | etraxfs*)\n\t\tbasic_machine=crisv32-axis\n\t\t;;\n\tcris | cris-* | etrax*)\n\t\tbasic_machine=cris-axis\n\t\t;;\n\tcrx)\n\t\tbasic_machine=crx-unknown\n\t\tos=-elf\n\t\t;;\n\tda30 | da30-*)\n\t\tbasic_machine=m68k-da30\n\t\t;;\n\tdecstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)\n\t\tbasic_machine=mips-dec\n\t\t;;\n\tdecsystem10* | dec10*)\n\t\tbasic_machine=pdp10-dec\n\t\tos=-tops10\n\t\t;;\n\tdecsystem20* | dec20*)\n\t\tbasic_machine=pdp10-dec\n\t\tos=-tops20\n\t\t;;\n\tdelta | 3300 | motorola-3300 | motorola-delta \\\n\t      | 3300-motorola | delta-motorola)\n\t\tbasic_machine=m68k-motorola\n\t\t;;\n\tdelta88)\n\t\tbasic_machine=m88k-motorola\n\t\tos=-sysv3\n\t\t;;\n\tdjgpp)\n\t\tbasic_machine=i586-pc\n\t\tos=-msdosdjgpp\n\t\t;;\n\tdpx20 | dpx20-*)\n\t\tbasic_machine=rs6000-bull\n\t\tos=-bosx\n\t\t;;\n\tdpx2* | dpx2*-bull)\n\t\tbasic_machine=m68k-bull\n\t\tos=-sysv3\n\t\t;;\n\tebmon29k)\n\t\tbasic_machine=a29k-amd\n\t\tos=-ebmon\n\t\t;;\n\telxsi)\n\t\tbasic_machine=elxsi-elxsi\n\t\tos=-bsd\n\t\t;;\n\tencore | umax | mmax)\n\t\tbasic_machine=ns32k-encore\n\t\t;;\n\tes1800 | OSE68k | ose68k | ose | OSE)\n\t\tbasic_machine=m68k-ericsson\n\t\tos=-ose\n\t\t;;\n\tfx2800)\n\t\tbasic_machine=i860-alliant\n\t\t;;\n\tgenix)\n\t\tbasic_machine=ns32k-ns\n\t\t;;\n\tgmicro)\n\t\tbasic_machine=tron-gmicro\n\t\tos=-sysv\n\t\t;;\n\tgo32)\n\t\tbasic_machine=i386-pc\n\t\tos=-go32\n\t\t;;\n\th3050r* | hiux*)\n\t\tbasic_machine=hppa1.1-hitachi\n\t\tos=-hiuxwe2\n\t\t;;\n\th8300hms)\n\t\tbasic_machine=h8300-hitachi\n\t\tos=-hms\n\t\t;;\n\th8300xray)\n\t\tbasic_machine=h8300-hitachi\n\t\tos=-xray\n\t\t;;\n\th8500hms)\n\t\tbasic_machine=h8500-hitachi\n\t\tos=-hms\n\t\t;;\n\tharris)\n\t\tbasic_machine=m88k-harris\n\t\tos=-sysv3\n\t\t;;\n\thp300-*)\n\t\tbasic_machine=m68k-hp\n\t\t;;\n\thp300bsd)\n\t\tbasic_machine=m68k-hp\n\t\tos=-bsd\n\t\t;;\n\thp300hpux)\n\t\tbasic_machine=m68k-hp\n\t\tos=-hpux\n\t\t;;\n\thp3k9[0-9][0-9] | hp9[0-9][0-9])\n\t\tbasic_machine=hppa1.0-hp\n\t\t;;\n\thp9k2[0-9][0-9] | hp9k31[0-9])\n\t\tbasic_machine=m68000-hp\n\t\t;;\n\thp9k3[2-9][0-9])\n\t\tbasic_machine=m68k-hp\n\t\t;;\n\thp9k6[0-9][0-9] | hp6[0-9][0-9])\n\t\tbasic_machine=hppa1.0-hp\n\t\t;;\n\thp9k7[0-79][0-9] | hp7[0-79][0-9])\n\t\tbasic_machine=hppa1.1-hp\n\t\t;;\n\thp9k78[0-9] | hp78[0-9])\n\t\t# FIXME: really hppa2.0-hp\n\t\tbasic_machine=hppa1.1-hp\n\t\t;;\n\thp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)\n\t\t# FIXME: really hppa2.0-hp\n\t\tbasic_machine=hppa1.1-hp\n\t\t;;\n\thp9k8[0-9][13679] | hp8[0-9][13679])\n\t\tbasic_machine=hppa1.1-hp\n\t\t;;\n\thp9k8[0-9][0-9] | hp8[0-9][0-9])\n\t\tbasic_machine=hppa1.0-hp\n\t\t;;\n\thppa-next)\n\t\tos=-nextstep3\n\t\t;;\n\thppaosf)\n\t\tbasic_machine=hppa1.1-hp\n\t\tos=-osf\n\t\t;;\n\thppro)\n\t\tbasic_machine=hppa1.1-hp\n\t\tos=-proelf\n\t\t;;\n\ti370-ibm* | ibm*)\n\t\tbasic_machine=i370-ibm\n\t\t;;\n# I'm not sure what \"Sysv32\" means.  Should this be sysv3.2?\n\ti*86v32)\n\t\tbasic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`\n\t\tos=-sysv32\n\t\t;;\n\ti*86v4*)\n\t\tbasic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`\n\t\tos=-sysv4\n\t\t;;\n\ti*86v)\n\t\tbasic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`\n\t\tos=-sysv\n\t\t;;\n\ti*86sol2)\n\t\tbasic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`\n\t\tos=-solaris2\n\t\t;;\n\ti386mach)\n\t\tbasic_machine=i386-mach\n\t\tos=-mach\n\t\t;;\n\ti386-vsta | vsta)\n\t\tbasic_machine=i386-unknown\n\t\tos=-vsta\n\t\t;;\n\tiris | iris4d)\n\t\tbasic_machine=mips-sgi\n\t\tcase $os in\n\t\t    -irix*)\n\t\t\t;;\n\t\t    *)\n\t\t\tos=-irix4\n\t\t\t;;\n\t\tesac\n\t\t;;\n\tisi68 | isi)\n\t\tbasic_machine=m68k-isi\n\t\tos=-sysv\n\t\t;;\n\tm68knommu)\n\t\tbasic_machine=m68k-unknown\n\t\tos=-linux\n\t\t;;\n\tm68knommu-*)\n\t\tbasic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\tos=-linux\n\t\t;;\n\tm88k-omron*)\n\t\tbasic_machine=m88k-omron\n\t\t;;\n\tmagnum | m3230)\n\t\tbasic_machine=mips-mips\n\t\tos=-sysv\n\t\t;;\n\tmerlin)\n\t\tbasic_machine=ns32k-utek\n\t\tos=-sysv\n\t\t;;\n\tmingw32)\n\t\tbasic_machine=i386-pc\n\t\tos=-mingw32\n\t\t;;\n\tmingw32ce)\n\t\tbasic_machine=arm-unknown\n\t\tos=-mingw32ce\n\t\t;;\n\tminiframe)\n\t\tbasic_machine=m68000-convergent\n\t\t;;\n\t*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)\n\t\tbasic_machine=m68k-atari\n\t\tos=-mint\n\t\t;;\n\tmips3*-*)\n\t\tbasic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`\n\t\t;;\n\tmips3*)\n\t\tbasic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown\n\t\t;;\n\tmonitor)\n\t\tbasic_machine=m68k-rom68k\n\t\tos=-coff\n\t\t;;\n\tmorphos)\n\t\tbasic_machine=powerpc-unknown\n\t\tos=-morphos\n\t\t;;\n\tmsdos)\n\t\tbasic_machine=i386-pc\n\t\tos=-msdos\n\t\t;;\n\tms1-*)\n\t\tbasic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`\n\t\t;;\n\tmvs)\n\t\tbasic_machine=i370-ibm\n\t\tos=-mvs\n\t\t;;\n\tncr3000)\n\t\tbasic_machine=i486-ncr\n\t\tos=-sysv4\n\t\t;;\n\tnetbsd386)\n\t\tbasic_machine=i386-unknown\n\t\tos=-netbsd\n\t\t;;\n\tnetwinder)\n\t\tbasic_machine=armv4l-rebel\n\t\tos=-linux\n\t\t;;\n\tnews | news700 | news800 | news900)\n\t\tbasic_machine=m68k-sony\n\t\tos=-newsos\n\t\t;;\n\tnews1000)\n\t\tbasic_machine=m68030-sony\n\t\tos=-newsos\n\t\t;;\n\tnews-3600 | risc-news)\n\t\tbasic_machine=mips-sony\n\t\tos=-newsos\n\t\t;;\n\tnecv70)\n\t\tbasic_machine=v70-nec\n\t\tos=-sysv\n\t\t;;\n\tnext | m*-next )\n\t\tbasic_machine=m68k-next\n\t\tcase $os in\n\t\t    -nextstep* )\n\t\t\t;;\n\t\t    -ns2*)\n\t\t      os=-nextstep2\n\t\t\t;;\n\t\t    *)\n\t\t      os=-nextstep3\n\t\t\t;;\n\t\tesac\n\t\t;;\n\tnh3000)\n\t\tbasic_machine=m68k-harris\n\t\tos=-cxux\n\t\t;;\n\tnh[45]000)\n\t\tbasic_machine=m88k-harris\n\t\tos=-cxux\n\t\t;;\n\tnindy960)\n\t\tbasic_machine=i960-intel\n\t\tos=-nindy\n\t\t;;\n\tmon960)\n\t\tbasic_machine=i960-intel\n\t\tos=-mon960\n\t\t;;\n\tnonstopux)\n\t\tbasic_machine=mips-compaq\n\t\tos=-nonstopux\n\t\t;;\n\tnp1)\n\t\tbasic_machine=np1-gould\n\t\t;;\n\tnsr-tandem)\n\t\tbasic_machine=nsr-tandem\n\t\t;;\n\top50n-* | op60c-*)\n\t\tbasic_machine=hppa1.1-oki\n\t\tos=-proelf\n\t\t;;\n\topenrisc | openrisc-*)\n\t\tbasic_machine=or32-unknown\n\t\t;;\n\tos400)\n\t\tbasic_machine=powerpc-ibm\n\t\tos=-os400\n\t\t;;\n\tOSE68000 | ose68000)\n\t\tbasic_machine=m68000-ericsson\n\t\tos=-ose\n\t\t;;\n\tos68k)\n\t\tbasic_machine=m68k-none\n\t\tos=-os68k\n\t\t;;\n\tpa-hitachi)\n\t\tbasic_machine=hppa1.1-hitachi\n\t\tos=-hiuxwe2\n\t\t;;\n\tparagon)\n\t\tbasic_machine=i860-intel\n\t\tos=-osf\n\t\t;;\n\tparisc)\n\t\tbasic_machine=hppa-unknown\n\t\tos=-linux\n\t\t;;\n\tparisc-*)\n\t\tbasic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\tos=-linux\n\t\t;;\n\tpbd)\n\t\tbasic_machine=sparc-tti\n\t\t;;\n\tpbb)\n\t\tbasic_machine=m68k-tti\n\t\t;;\n\tpc532 | pc532-*)\n\t\tbasic_machine=ns32k-pc532\n\t\t;;\n\tpc98)\n\t\tbasic_machine=i386-pc\n\t\t;;\n\tpc98-*)\n\t\tbasic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tpentium | p5 | k5 | k6 | nexgen | viac3)\n\t\tbasic_machine=i586-pc\n\t\t;;\n\tpentiumpro | p6 | 6x86 | athlon | athlon_*)\n\t\tbasic_machine=i686-pc\n\t\t;;\n\tpentiumii | pentium2 | pentiumiii | pentium3)\n\t\tbasic_machine=i686-pc\n\t\t;;\n\tpentium4)\n\t\tbasic_machine=i786-pc\n\t\t;;\n\tpentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)\n\t\tbasic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tpentiumpro-* | p6-* | 6x86-* | athlon-*)\n\t\tbasic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tpentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)\n\t\tbasic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tpentium4-*)\n\t\tbasic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tpn)\n\t\tbasic_machine=pn-gould\n\t\t;;\n\tpower)\tbasic_machine=power-ibm\n\t\t;;\n\tppc)\tbasic_machine=powerpc-unknown\n\t\t;;\n\tppc-*)\tbasic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tppcle | powerpclittle | ppc-le | powerpc-little)\n\t\tbasic_machine=powerpcle-unknown\n\t\t;;\n\tppcle-* | powerpclittle-*)\n\t\tbasic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tppc64)\tbasic_machine=powerpc64-unknown\n\t\t;;\n\tppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tppc64le | powerpc64little | ppc64-le | powerpc64-little)\n\t\tbasic_machine=powerpc64le-unknown\n\t\t;;\n\tppc64le-* | powerpc64little-*)\n\t\tbasic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`\n\t\t;;\n\tps2)\n\t\tbasic_machine=i386-ibm\n\t\t;;\n\tpw32)\n\t\tbasic_machine=i586-unknown\n\t\tos=-pw32\n\t\t;;\n\trdos)\n\t\tbasic_machine=i386-pc\n\t\tos=-rdos\n\t\t;;\n\trom68k)\n\t\tbasic_machine=m68k-rom68k\n\t\tos=-coff\n\t\t;;\n\trm[46]00)\n\t\tbasic_machine=mips-siemens\n\t\t;;\n\trtpc | rtpc-*)\n\t\tbasic_machine=romp-ibm\n\t\t;;\n\ts390 | s390-*)\n\t\tbasic_machine=s390-ibm\n\t\t;;\n\ts390x | s390x-*)\n\t\tbasic_machine=s390x-ibm\n\t\t;;\n\tsa29200)\n\t\tbasic_machine=a29k-amd\n\t\tos=-udi\n\t\t;;\n\tsb1)\n\t\tbasic_machine=mipsisa64sb1-unknown\n\t\t;;\n\tsb1el)\n\t\tbasic_machine=mipsisa64sb1el-unknown\n\t\t;;\n\tsde)\n\t\tbasic_machine=mipsisa32-sde\n\t\tos=-elf\n\t\t;;\n\tsei)\n\t\tbasic_machine=mips-sei\n\t\tos=-seiux\n\t\t;;\n\tsequent)\n\t\tbasic_machine=i386-sequent\n\t\t;;\n\tsh)\n\t\tbasic_machine=sh-hitachi\n\t\tos=-hms\n\t\t;;\n\tsh5el)\n\t\tbasic_machine=sh5le-unknown\n\t\t;;\n\tsh64)\n\t\tbasic_machine=sh64-unknown\n\t\t;;\n\tsparclite-wrs | simso-wrs)\n\t\tbasic_machine=sparclite-wrs\n\t\tos=-vxworks\n\t\t;;\n\tsps7)\n\t\tbasic_machine=m68k-bull\n\t\tos=-sysv2\n\t\t;;\n\tspur)\n\t\tbasic_machine=spur-unknown\n\t\t;;\n\tst2000)\n\t\tbasic_machine=m68k-tandem\n\t\t;;\n\tstratus)\n\t\tbasic_machine=i860-stratus\n\t\tos=-sysv4\n\t\t;;\n\tsun2)\n\t\tbasic_machine=m68000-sun\n\t\t;;\n\tsun2os3)\n\t\tbasic_machine=m68000-sun\n\t\tos=-sunos3\n\t\t;;\n\tsun2os4)\n\t\tbasic_machine=m68000-sun\n\t\tos=-sunos4\n\t\t;;\n\tsun3os3)\n\t\tbasic_machine=m68k-sun\n\t\tos=-sunos3\n\t\t;;\n\tsun3os4)\n\t\tbasic_machine=m68k-sun\n\t\tos=-sunos4\n\t\t;;\n\tsun4os3)\n\t\tbasic_machine=sparc-sun\n\t\tos=-sunos3\n\t\t;;\n\tsun4os4)\n\t\tbasic_machine=sparc-sun\n\t\tos=-sunos4\n\t\t;;\n\tsun4sol2)\n\t\tbasic_machine=sparc-sun\n\t\tos=-solaris2\n\t\t;;\n\tsun3 | sun3-*)\n\t\tbasic_machine=m68k-sun\n\t\t;;\n\tsun4)\n\t\tbasic_machine=sparc-sun\n\t\t;;\n\tsun386 | sun386i | roadrunner)\n\t\tbasic_machine=i386-sun\n\t\t;;\n\tsv1)\n\t\tbasic_machine=sv1-cray\n\t\tos=-unicos\n\t\t;;\n\tsymmetry)\n\t\tbasic_machine=i386-sequent\n\t\tos=-dynix\n\t\t;;\n\tt3e)\n\t\tbasic_machine=alphaev5-cray\n\t\tos=-unicos\n\t\t;;\n\tt90)\n\t\tbasic_machine=t90-cray\n\t\tos=-unicos\n\t\t;;\n\ttic54x | c54x*)\n\t\tbasic_machine=tic54x-unknown\n\t\tos=-coff\n\t\t;;\n\ttic55x | c55x*)\n\t\tbasic_machine=tic55x-unknown\n\t\tos=-coff\n\t\t;;\n\ttic6x | c6x*)\n\t\tbasic_machine=tic6x-unknown\n\t\tos=-coff\n\t\t;;\n\ttile*)\n\t\tbasic_machine=tile-unknown\n\t\tos=-linux-gnu\n\t\t;;\n\ttx39)\n\t\tbasic_machine=mipstx39-unknown\n\t\t;;\n\ttx39el)\n\t\tbasic_machine=mipstx39el-unknown\n\t\t;;\n\ttoad1)\n\t\tbasic_machine=pdp10-xkl\n\t\tos=-tops20\n\t\t;;\n\ttower | tower-32)\n\t\tbasic_machine=m68k-ncr\n\t\t;;\n\ttpf)\n\t\tbasic_machine=s390x-ibm\n\t\tos=-tpf\n\t\t;;\n\tudi29k)\n\t\tbasic_machine=a29k-amd\n\t\tos=-udi\n\t\t;;\n\tultra3)\n\t\tbasic_machine=a29k-nyu\n\t\tos=-sym1\n\t\t;;\n\tv810 | necv810)\n\t\tbasic_machine=v810-nec\n\t\tos=-none\n\t\t;;\n\tvaxv)\n\t\tbasic_machine=vax-dec\n\t\tos=-sysv\n\t\t;;\n\tvms)\n\t\tbasic_machine=vax-dec\n\t\tos=-vms\n\t\t;;\n\tvpp*|vx|vx-*)\n\t\tbasic_machine=f301-fujitsu\n\t\t;;\n\tvxworks960)\n\t\tbasic_machine=i960-wrs\n\t\tos=-vxworks\n\t\t;;\n\tvxworks68)\n\t\tbasic_machine=m68k-wrs\n\t\tos=-vxworks\n\t\t;;\n\tvxworks29k)\n\t\tbasic_machine=a29k-wrs\n\t\tos=-vxworks\n\t\t;;\n\tw65*)\n\t\tbasic_machine=w65-wdc\n\t\tos=-none\n\t\t;;\n\tw89k-*)\n\t\tbasic_machine=hppa1.1-winbond\n\t\tos=-proelf\n\t\t;;\n\txbox)\n\t\tbasic_machine=i686-pc\n\t\tos=-mingw32\n\t\t;;\n\txps | xps100)\n\t\tbasic_machine=xps100-honeywell\n\t\t;;\n\tymp)\n\t\tbasic_machine=ymp-cray\n\t\tos=-unicos\n\t\t;;\n\tz8k-*-coff)\n\t\tbasic_machine=z8k-unknown\n\t\tos=-sim\n\t\t;;\n\tnone)\n\t\tbasic_machine=none-none\n\t\tos=-none\n\t\t;;\n\n# Here we handle the default manufacturer of certain CPU types.  It is in\n# some cases the only manufacturer, in others, it is the most popular.\n\tw89k)\n\t\tbasic_machine=hppa1.1-winbond\n\t\t;;\n\top50n)\n\t\tbasic_machine=hppa1.1-oki\n\t\t;;\n\top60c)\n\t\tbasic_machine=hppa1.1-oki\n\t\t;;\n\tromp)\n\t\tbasic_machine=romp-ibm\n\t\t;;\n\tmmix)\n\t\tbasic_machine=mmix-knuth\n\t\t;;\n\trs6000)\n\t\tbasic_machine=rs6000-ibm\n\t\t;;\n\tvax)\n\t\tbasic_machine=vax-dec\n\t\t;;\n\tpdp10)\n\t\t# there are many clones, so DEC is not a safe bet\n\t\tbasic_machine=pdp10-unknown\n\t\t;;\n\tpdp11)\n\t\tbasic_machine=pdp11-dec\n\t\t;;\n\twe32k)\n\t\tbasic_machine=we32k-att\n\t\t;;\n\tsh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)\n\t\tbasic_machine=sh-unknown\n\t\t;;\n\tsparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)\n\t\tbasic_machine=sparc-sun\n\t\t;;\n\tcydra)\n\t\tbasic_machine=cydra-cydrome\n\t\t;;\n\torion)\n\t\tbasic_machine=orion-highlevel\n\t\t;;\n\torion105)\n\t\tbasic_machine=clipper-highlevel\n\t\t;;\n\tmac | mpw | mac-mpw)\n\t\tbasic_machine=m68k-apple\n\t\t;;\n\tpmac | pmac-mpw)\n\t\tbasic_machine=powerpc-apple\n\t\t;;\n\t*-unknown)\n\t\t# Make sure to match an already-canonicalized machine name.\n\t\t;;\n\t*)\n\t\techo Invalid configuration \\`$1\\': machine \\`$basic_machine\\' not recognized 1>&2\n\t\texit 1\n\t\t;;\nesac\n\n# Here we canonicalize certain aliases for manufacturers.\ncase $basic_machine in\n\t*-digital*)\n\t\tbasic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`\n\t\t;;\n\t*-commodore*)\n\t\tbasic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`\n\t\t;;\n\t*)\n\t\t;;\nesac\n\n# Decode manufacturer-specific aliases for certain operating systems.\n\nif [ x\"$os\" != x\"\" ]\nthen\ncase $os in\n        # First match some system type aliases\n        # that might get confused with valid system types.\n\t# -solaris* is a basic system type, with this one exception.\n\t-solaris1 | -solaris1.*)\n\t\tos=`echo $os | sed -e 's|solaris1|sunos4|'`\n\t\t;;\n\t-solaris)\n\t\tos=-solaris2\n\t\t;;\n\t-svr4*)\n\t\tos=-sysv4\n\t\t;;\n\t-unixware*)\n\t\tos=-sysv4.2uw\n\t\t;;\n\t-gnu/linux*)\n\t\tos=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`\n\t\t;;\n\t# First accept the basic system types.\n\t# The portable systems comes first.\n\t# Each alternative MUST END IN A *, to match a version number.\n\t# -sysv* is not here because it comes later, after sysvr4.\n\t-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \\\n\t      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\\\n\t      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \\\n\t      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \\\n\t      | -aos* \\\n\t      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \\\n\t      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \\\n\t      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \\\n\t      | -openbsd* | -solidbsd* \\\n\t      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \\\n\t      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \\\n\t      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \\\n\t      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \\\n\t      | -chorusos* | -chorusrdb* \\\n\t      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \\\n\t      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \\\n\t      | -uxpv* | -beos* | -mpeix* | -udk* \\\n\t      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \\\n\t      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \\\n\t      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \\\n\t      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \\\n\t      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \\\n\t      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \\\n\t      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)\n\t# Remember, each alternative MUST END IN *, to match a version number.\n\t\t;;\n\t-qnx*)\n\t\tcase $basic_machine in\n\t\t    x86-* | i*86-*)\n\t\t\t;;\n\t\t    *)\n\t\t\tos=-nto$os\n\t\t\t;;\n\t\tesac\n\t\t;;\n\t-nto-qnx*)\n\t\t;;\n\t-nto*)\n\t\tos=`echo $os | sed -e 's|nto|nto-qnx|'`\n\t\t;;\n\t-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \\\n\t      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \\\n\t      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)\n\t\t;;\n\t-mac*)\n\t\tos=`echo $os | sed -e 's|mac|macos|'`\n\t\t;;\n\t-linux-dietlibc)\n\t\tos=-linux-dietlibc\n\t\t;;\n\t-linux*)\n\t\tos=`echo $os | sed -e 's|linux|linux-gnu|'`\n\t\t;;\n\t-sunos5*)\n\t\tos=`echo $os | sed -e 's|sunos5|solaris2|'`\n\t\t;;\n\t-sunos6*)\n\t\tos=`echo $os | sed -e 's|sunos6|solaris3|'`\n\t\t;;\n\t-opened*)\n\t\tos=-openedition\n\t\t;;\n        -os400*)\n\t\tos=-os400\n\t\t;;\n\t-wince*)\n\t\tos=-wince\n\t\t;;\n\t-osfrose*)\n\t\tos=-osfrose\n\t\t;;\n\t-osf*)\n\t\tos=-osf\n\t\t;;\n\t-utek*)\n\t\tos=-bsd\n\t\t;;\n\t-dynix*)\n\t\tos=-bsd\n\t\t;;\n\t-acis*)\n\t\tos=-aos\n\t\t;;\n\t-atheos*)\n\t\tos=-atheos\n\t\t;;\n\t-syllable*)\n\t\tos=-syllable\n\t\t;;\n\t-386bsd)\n\t\tos=-bsd\n\t\t;;\n\t-ctix* | -uts*)\n\t\tos=-sysv\n\t\t;;\n\t-nova*)\n\t\tos=-rtmk-nova\n\t\t;;\n\t-ns2 )\n\t\tos=-nextstep2\n\t\t;;\n\t-nsk*)\n\t\tos=-nsk\n\t\t;;\n\t# Preserve the version number of sinix5.\n\t-sinix5.*)\n\t\tos=`echo $os | sed -e 's|sinix|sysv|'`\n\t\t;;\n\t-sinix*)\n\t\tos=-sysv4\n\t\t;;\n        -tpf*)\n\t\tos=-tpf\n\t\t;;\n\t-triton*)\n\t\tos=-sysv3\n\t\t;;\n\t-oss*)\n\t\tos=-sysv3\n\t\t;;\n\t-svr4)\n\t\tos=-sysv4\n\t\t;;\n\t-svr3)\n\t\tos=-sysv3\n\t\t;;\n\t-sysvr4)\n\t\tos=-sysv4\n\t\t;;\n\t# This must come after -sysvr4.\n\t-sysv*)\n\t\t;;\n\t-ose*)\n\t\tos=-ose\n\t\t;;\n\t-es1800*)\n\t\tos=-ose\n\t\t;;\n\t-xenix)\n\t\tos=-xenix\n\t\t;;\n\t-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)\n\t\tos=-mint\n\t\t;;\n\t-aros*)\n\t\tos=-aros\n\t\t;;\n\t-kaos*)\n\t\tos=-kaos\n\t\t;;\n\t-zvmoe)\n\t\tos=-zvmoe\n\t\t;;\n\t-none)\n\t\t;;\n\t*)\n\t\t# Get rid of the `-' at the beginning of $os.\n\t\tos=`echo $os | sed 's/[^-]*-//'`\n\t\techo Invalid configuration \\`$1\\': system \\`$os\\' not recognized 1>&2\n\t\texit 1\n\t\t;;\nesac\nelse\n\n# Here we handle the default operating systems that come with various machines.\n# The value should be what the vendor currently ships out the door with their\n# machine or put another way, the most popular os provided with the machine.\n\n# Note that if you're going to try to match \"-MANUFACTURER\" here (say,\n# \"-sun\"), then you have to tell the case statement up towards the top\n# that MANUFACTURER isn't an operating system.  Otherwise, code above\n# will signal an error saying that MANUFACTURER isn't an operating\n# system, and we'll never get to this point.\n\ncase $basic_machine in\n        score-*)\n\t\tos=-elf\n\t\t;;\n        spu-*)\n\t\tos=-elf\n\t\t;;\n\t*-acorn)\n\t\tos=-riscix1.2\n\t\t;;\n\tarm*-rebel)\n\t\tos=-linux\n\t\t;;\n\tarm*-semi)\n\t\tos=-aout\n\t\t;;\n        c4x-* | tic4x-*)\n        \tos=-coff\n\t\t;;\n\t# This must come before the *-dec entry.\n\tpdp10-*)\n\t\tos=-tops20\n\t\t;;\n\tpdp11-*)\n\t\tos=-none\n\t\t;;\n\t*-dec | vax-*)\n\t\tos=-ultrix4.2\n\t\t;;\n\tm68*-apollo)\n\t\tos=-domain\n\t\t;;\n\ti386-sun)\n\t\tos=-sunos4.0.2\n\t\t;;\n\tm68000-sun)\n\t\tos=-sunos3\n\t\t# This also exists in the configure program, but was not the\n\t\t# default.\n\t\t# os=-sunos4\n\t\t;;\n\tm68*-cisco)\n\t\tos=-aout\n\t\t;;\n        mep-*)\n\t\tos=-elf\n\t\t;;\n\tmips*-cisco)\n\t\tos=-elf\n\t\t;;\n\tmips*-*)\n\t\tos=-elf\n\t\t;;\n\tor32-*)\n\t\tos=-coff\n\t\t;;\n\t*-tti)\t# must be before sparc entry or we get the wrong os.\n\t\tos=-sysv3\n\t\t;;\n\tsparc-* | *-sun)\n\t\tos=-sunos4.1.1\n\t\t;;\n\t*-be)\n\t\tos=-beos\n\t\t;;\n\t*-haiku)\n\t\tos=-haiku\n\t\t;;\n\t*-ibm)\n\t\tos=-aix\n\t\t;;\n    \t*-knuth)\n\t\tos=-mmixware\n\t\t;;\n\t*-wec)\n\t\tos=-proelf\n\t\t;;\n\t*-winbond)\n\t\tos=-proelf\n\t\t;;\n\t*-oki)\n\t\tos=-proelf\n\t\t;;\n\t*-hp)\n\t\tos=-hpux\n\t\t;;\n\t*-hitachi)\n\t\tos=-hiux\n\t\t;;\n\ti860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)\n\t\tos=-sysv\n\t\t;;\n\t*-cbm)\n\t\tos=-amigaos\n\t\t;;\n\t*-dg)\n\t\tos=-dgux\n\t\t;;\n\t*-dolphin)\n\t\tos=-sysv3\n\t\t;;\n\tm68k-ccur)\n\t\tos=-rtu\n\t\t;;\n\tm88k-omron*)\n\t\tos=-luna\n\t\t;;\n\t*-next )\n\t\tos=-nextstep\n\t\t;;\n\t*-sequent)\n\t\tos=-ptx\n\t\t;;\n\t*-crds)\n\t\tos=-unos\n\t\t;;\n\t*-ns)\n\t\tos=-genix\n\t\t;;\n\ti370-*)\n\t\tos=-mvs\n\t\t;;\n\t*-next)\n\t\tos=-nextstep3\n\t\t;;\n\t*-gould)\n\t\tos=-sysv\n\t\t;;\n\t*-highlevel)\n\t\tos=-bsd\n\t\t;;\n\t*-encore)\n\t\tos=-bsd\n\t\t;;\n\t*-sgi)\n\t\tos=-irix\n\t\t;;\n\t*-siemens)\n\t\tos=-sysv4\n\t\t;;\n\t*-masscomp)\n\t\tos=-rtu\n\t\t;;\n\tf30[01]-fujitsu | f700-fujitsu)\n\t\tos=-uxpv\n\t\t;;\n\t*-rom68k)\n\t\tos=-coff\n\t\t;;\n\t*-*bug)\n\t\tos=-coff\n\t\t;;\n\t*-apple)\n\t\tos=-macos\n\t\t;;\n\t*-atari*)\n\t\tos=-mint\n\t\t;;\n\t*)\n\t\tos=-none\n\t\t;;\nesac\nfi\n\n# Here we handle the case where we know the os, and the CPU type, but not the\n# manufacturer.  We pick the logical manufacturer.\nvendor=unknown\ncase $basic_machine in\n\t*-unknown)\n\t\tcase $os in\n\t\t\t-riscix*)\n\t\t\t\tvendor=acorn\n\t\t\t\t;;\n\t\t\t-sunos*)\n\t\t\t\tvendor=sun\n\t\t\t\t;;\n\t\t\t-aix*)\n\t\t\t\tvendor=ibm\n\t\t\t\t;;\n\t\t\t-beos*)\n\t\t\t\tvendor=be\n\t\t\t\t;;\n\t\t\t-hpux*)\n\t\t\t\tvendor=hp\n\t\t\t\t;;\n\t\t\t-mpeix*)\n\t\t\t\tvendor=hp\n\t\t\t\t;;\n\t\t\t-hiux*)\n\t\t\t\tvendor=hitachi\n\t\t\t\t;;\n\t\t\t-unos*)\n\t\t\t\tvendor=crds\n\t\t\t\t;;\n\t\t\t-dgux*)\n\t\t\t\tvendor=dg\n\t\t\t\t;;\n\t\t\t-luna*)\n\t\t\t\tvendor=omron\n\t\t\t\t;;\n\t\t\t-genix*)\n\t\t\t\tvendor=ns\n\t\t\t\t;;\n\t\t\t-mvs* | -opened*)\n\t\t\t\tvendor=ibm\n\t\t\t\t;;\n\t\t\t-os400*)\n\t\t\t\tvendor=ibm\n\t\t\t\t;;\n\t\t\t-ptx*)\n\t\t\t\tvendor=sequent\n\t\t\t\t;;\n\t\t\t-tpf*)\n\t\t\t\tvendor=ibm\n\t\t\t\t;;\n\t\t\t-vxsim* | -vxworks* | -windiss*)\n\t\t\t\tvendor=wrs\n\t\t\t\t;;\n\t\t\t-aux*)\n\t\t\t\tvendor=apple\n\t\t\t\t;;\n\t\t\t-hms*)\n\t\t\t\tvendor=hitachi\n\t\t\t\t;;\n\t\t\t-mpw* | -macos*)\n\t\t\t\tvendor=apple\n\t\t\t\t;;\n\t\t\t-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)\n\t\t\t\tvendor=atari\n\t\t\t\t;;\n\t\t\t-vos*)\n\t\t\t\tvendor=stratus\n\t\t\t\t;;\n\t\tesac\n\t\tbasic_machine=`echo $basic_machine | sed \"s/unknown/$vendor/\"`\n\t\t;;\nesac\n\necho $basic_machine$os\nexit\n\n# Local variables:\n# eval: (add-hook 'write-file-hooks 'time-stamp)\n# time-stamp-start: \"timestamp='\"\n# time-stamp-format: \"%:y-%02m-%02d\"\n# time-stamp-end: \"'\"\n# End:\n"
  },
  {
    "path": "src/cpp/PLEX3/configure",
    "content": "#! /bin/sh\n# Guess values for system-dependent variables and create Makefiles.\n# Generated by GNU Autoconf 2.61.\n#\n# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,\n# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.\n# This configure script is free software; the Free Software Foundation\n# gives unlimited permission to copy, distribute and modify it.\n## --------------------- ##\n## M4sh Initialization.  ##\n## --------------------- ##\n\n# Be more Bourne compatible\nDUALCASE=1; export DUALCASE # for MKS sh\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\n  setopt NO_GLOB_SUBST\nelse\n  case `(set -o) 2>/dev/null` in\n  *posix*) set -o posix ;;\nesac\n\nfi\n\n\n\n\n# PATH needs CR\n# Avoid depending upon Character Ranges.\nas_cr_letters='abcdefghijklmnopqrstuvwxyz'\nas_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nas_cr_Letters=$as_cr_letters$as_cr_LETTERS\nas_cr_digits='0123456789'\nas_cr_alnum=$as_cr_Letters$as_cr_digits\n\n# The user is always right.\nif test \"${PATH_SEPARATOR+set}\" != set; then\n  echo \"#! /bin/sh\" >conf$$.sh\n  echo  \"exit 0\"   >>conf$$.sh\n  chmod +x conf$$.sh\n  if (PATH=\"/nonexistent;.\"; conf$$.sh) >/dev/null 2>&1; then\n    PATH_SEPARATOR=';'\n  else\n    PATH_SEPARATOR=:\n  fi\n  rm -f conf$$.sh\nfi\n\n# Support unset when possible.\nif ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then\n  as_unset=unset\nelse\n  as_unset=false\nfi\n\n\n# IFS\n# We need space, tab and new line, in precisely that order.  Quoting is\n# there to prevent editors from complaining about space-tab.\n# (If _AS_PATH_WALK were called with IFS unset, it would disable word\n# splitting by setting IFS to empty value.)\nas_nl='\n'\nIFS=\" \"\"\t$as_nl\"\n\n# Find who we are.  Look in the path if we contain no directory separator.\ncase $0 in\n  *[\\\\/]* ) as_myself=$0 ;;\n  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  test -r \"$as_dir/$0\" && as_myself=$as_dir/$0 && break\ndone\nIFS=$as_save_IFS\n\n     ;;\nesac\n# We did not find ourselves, most probably we were run as `sh COMMAND'\n# in which case we are not to be found in the path.\nif test \"x$as_myself\" = x; then\n  as_myself=$0\nfi\nif test ! -f \"$as_myself\"; then\n  echo \"$as_myself: error: cannot find myself; rerun with an absolute file name\" >&2\n  { (exit 1); exit 1; }\nfi\n\n# Work around bugs in pre-3.0 UWIN ksh.\nfor as_var in ENV MAIL MAILPATH\ndo ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\ndone\nPS1='$ '\nPS2='> '\nPS4='+ '\n\n# NLS nuisances.\nfor as_var in \\\n  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \\\n  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \\\n  LC_TELEPHONE LC_TIME\ndo\n  if (set +x; test -z \"`(eval $as_var=C; export $as_var) 2>&1`\"); then\n    eval $as_var=C; export $as_var\n  else\n    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\n  fi\ndone\n\n# Required to use basename.\nif expr a : '\\(a\\)' >/dev/null 2>&1 &&\n   test \"X`expr 00001 : '.*\\(...\\)'`\" = X001; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nif (basename -- /) >/dev/null 2>&1 && test \"X`basename -- / 2>&1`\" = \"X/\"; then\n  as_basename=basename\nelse\n  as_basename=false\nfi\n\n\n# Name of the executable.\nas_me=`$as_basename -- \"$0\" ||\n$as_expr X/\"$0\" : '.*/\\([^/][^/]*\\)/*$' \\| \\\n\t X\"$0\" : 'X\\(//\\)$' \\| \\\n\t X\"$0\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X/\"$0\" |\n    sed '/^.*\\/\\([^/][^/]*\\)\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\/\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\/\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n\n# CDPATH.\n$as_unset CDPATH\n\n\nif test \"x$CONFIG_SHELL\" = x; then\n  if (eval \":\") 2>/dev/null; then\n  as_have_required=yes\nelse\n  as_have_required=no\nfi\n\n  if test $as_have_required = yes && \t (eval \":\n(as_func_return () {\n  (exit \\$1)\n}\nas_func_success () {\n  as_func_return 0\n}\nas_func_failure () {\n  as_func_return 1\n}\nas_func_ret_success () {\n  return 0\n}\nas_func_ret_failure () {\n  return 1\n}\n\nexitcode=0\nif as_func_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_success failed.\nfi\n\nif as_func_failure; then\n  exitcode=1\n  echo as_func_failure succeeded.\nfi\n\nif as_func_ret_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_ret_success failed.\nfi\n\nif as_func_ret_failure; then\n  exitcode=1\n  echo as_func_ret_failure succeeded.\nfi\n\nif ( set x; as_func_ret_success y && test x = \\\"\\$1\\\" ); then\n  :\nelse\n  exitcode=1\n  echo positional parameters were not saved.\nfi\n\ntest \\$exitcode = 0) || { (exit 1); exit 1; }\n\n(\n  as_lineno_1=\\$LINENO\n  as_lineno_2=\\$LINENO\n  test \\\"x\\$as_lineno_1\\\" != \\\"x\\$as_lineno_2\\\" &&\n  test \\\"x\\`expr \\$as_lineno_1 + 1\\`\\\" = \\\"x\\$as_lineno_2\\\") || { (exit 1); exit 1; }\n\") 2> /dev/null; then\n  :\nelse\n  as_candidate_shells=\n    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  case $as_dir in\n\t /*)\n\t   for as_base in sh bash ksh sh5; do\n\t     as_candidate_shells=\"$as_candidate_shells $as_dir/$as_base\"\n\t   done;;\n       esac\ndone\nIFS=$as_save_IFS\n\n\n      for as_shell in $as_candidate_shells $SHELL; do\n\t # Try only shells that exist, to save several forks.\n\t if { test -f \"$as_shell\" || test -f \"$as_shell.exe\"; } &&\n\t\t{ (\"$as_shell\") 2> /dev/null <<\\_ASEOF\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\n  setopt NO_GLOB_SUBST\nelse\n  case `(set -o) 2>/dev/null` in\n  *posix*) set -o posix ;;\nesac\n\nfi\n\n\n:\n_ASEOF\n}; then\n  CONFIG_SHELL=$as_shell\n\t       as_have_required=yes\n\t       if { \"$as_shell\" 2> /dev/null <<\\_ASEOF\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\n  setopt NO_GLOB_SUBST\nelse\n  case `(set -o) 2>/dev/null` in\n  *posix*) set -o posix ;;\nesac\n\nfi\n\n\n:\n(as_func_return () {\n  (exit $1)\n}\nas_func_success () {\n  as_func_return 0\n}\nas_func_failure () {\n  as_func_return 1\n}\nas_func_ret_success () {\n  return 0\n}\nas_func_ret_failure () {\n  return 1\n}\n\nexitcode=0\nif as_func_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_success failed.\nfi\n\nif as_func_failure; then\n  exitcode=1\n  echo as_func_failure succeeded.\nfi\n\nif as_func_ret_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_ret_success failed.\nfi\n\nif as_func_ret_failure; then\n  exitcode=1\n  echo as_func_ret_failure succeeded.\nfi\n\nif ( set x; as_func_ret_success y && test x = \"$1\" ); then\n  :\nelse\n  exitcode=1\n  echo positional parameters were not saved.\nfi\n\ntest $exitcode = 0) || { (exit 1); exit 1; }\n\n(\n  as_lineno_1=$LINENO\n  as_lineno_2=$LINENO\n  test \"x$as_lineno_1\" != \"x$as_lineno_2\" &&\n  test \"x`expr $as_lineno_1 + 1`\" = \"x$as_lineno_2\") || { (exit 1); exit 1; }\n\n_ASEOF\n}; then\n  break\nfi\n\nfi\n\n      done\n\n      if test \"x$CONFIG_SHELL\" != x; then\n  for as_var in BASH_ENV ENV\n        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\n        done\n        export CONFIG_SHELL\n        exec \"$CONFIG_SHELL\" \"$as_myself\" ${1+\"$@\"}\nfi\n\n\n    if test $as_have_required = no; then\n  echo This script requires a shell more modern than all the\n      echo shells that I found on your system.  Please install a\n      echo modern shell, or manually run the script under such a\n      echo shell if you do have one.\n      { (exit 1); exit 1; }\nfi\n\n\nfi\n\nfi\n\n\n\n(eval \"as_func_return () {\n  (exit \\$1)\n}\nas_func_success () {\n  as_func_return 0\n}\nas_func_failure () {\n  as_func_return 1\n}\nas_func_ret_success () {\n  return 0\n}\nas_func_ret_failure () {\n  return 1\n}\n\nexitcode=0\nif as_func_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_success failed.\nfi\n\nif as_func_failure; then\n  exitcode=1\n  echo as_func_failure succeeded.\nfi\n\nif as_func_ret_success; then\n  :\nelse\n  exitcode=1\n  echo as_func_ret_success failed.\nfi\n\nif as_func_ret_failure; then\n  exitcode=1\n  echo as_func_ret_failure succeeded.\nfi\n\nif ( set x; as_func_ret_success y && test x = \\\"\\$1\\\" ); then\n  :\nelse\n  exitcode=1\n  echo positional parameters were not saved.\nfi\n\ntest \\$exitcode = 0\") || {\n  echo No shell found that supports shell functions.\n  echo Please tell autoconf@gnu.org about your system,\n  echo including any error possibly output before this\n  echo message\n}\n\n\n\n  as_lineno_1=$LINENO\n  as_lineno_2=$LINENO\n  test \"x$as_lineno_1\" != \"x$as_lineno_2\" &&\n  test \"x`expr $as_lineno_1 + 1`\" = \"x$as_lineno_2\" || {\n\n  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO\n  # uniformly replaced by the line number.  The first 'sed' inserts a\n  # line-number line after each line using $LINENO; the second 'sed'\n  # does the real work.  The second script uses 'N' to pair each\n  # line-number line with the line containing $LINENO, and appends\n  # trailing '-' during substitution so that $LINENO is not a special\n  # case at line end.\n  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the\n  # scripts with optimization help from Paolo Bonzini.  Blame Lee\n  # E. McMahon (1931-1989) for sed's syntax.  :-)\n  sed -n '\n    p\n    /[$]LINENO/=\n  ' <$as_myself |\n    sed '\n      s/[$]LINENO.*/&-/\n      t lineno\n      b\n      :lineno\n      N\n      :loop\n      s/[$]LINENO\\([^'$as_cr_alnum'_].*\\n\\)\\(.*\\)/\\2\\1\\2/\n      t loop\n      s/-\\n.*//\n    ' >$as_me.lineno &&\n  chmod +x \"$as_me.lineno\" ||\n    { echo \"$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell\" >&2\n   { (exit 1); exit 1; }; }\n\n  # Don't try to exec as it changes $[0], causing all sort of problems\n  # (the dirname of $[0] is not the place where we might find the\n  # original and so on.  Autoconf is especially sensitive to this).\n  . \"./$as_me.lineno\"\n  # Exit status is that of the last command.\n  exit\n}\n\n\nif (as_dir=`dirname -- /` && test \"X$as_dir\" = X/) >/dev/null 2>&1; then\n  as_dirname=dirname\nelse\n  as_dirname=false\nfi\n\nECHO_C= ECHO_N= ECHO_T=\ncase `echo -n x` in\n-n*)\n  case `echo 'x\\c'` in\n  *c*) ECHO_T='\t';;\t# ECHO_T is single tab character.\n  *)   ECHO_C='\\c';;\n  esac;;\n*)\n  ECHO_N='-n';;\nesac\n\nif expr a : '\\(a\\)' >/dev/null 2>&1 &&\n   test \"X`expr 00001 : '.*\\(...\\)'`\" = X001; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nrm -f conf$$ conf$$.exe conf$$.file\nif test -d conf$$.dir; then\n  rm -f conf$$.dir/conf$$.file\nelse\n  rm -f conf$$.dir\n  mkdir conf$$.dir\nfi\necho >conf$$.file\nif ln -s conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s='ln -s'\n  # ... but there are two gotchas:\n  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.\n  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.\n  # In both cases, we have to default to `cp -p'.\n  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||\n    as_ln_s='cp -p'\nelif ln conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s=ln\nelse\n  as_ln_s='cp -p'\nfi\nrm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file\nrmdir conf$$.dir 2>/dev/null\n\nif mkdir -p . 2>/dev/null; then\n  as_mkdir_p=:\nelse\n  test -d ./-p && rmdir ./-p\n  as_mkdir_p=false\nfi\n\nif test -x / >/dev/null 2>&1; then\n  as_test_x='test -x'\nelse\n  if ls -dL / >/dev/null 2>&1; then\n    as_ls_L_option=L\n  else\n    as_ls_L_option=\n  fi\n  as_test_x='\n    eval sh -c '\\''\n      if test -d \"$1\"; then\n        test -d \"$1/.\";\n      else\n\tcase $1 in\n        -*)set \"./$1\";;\n\tesac;\n\tcase `ls -ld'$as_ls_L_option' \"$1\" 2>/dev/null` in\n\t???[sx]*):;;*)false;;esac;fi\n    '\\'' sh\n  '\nfi\nas_executable_p=$as_test_x\n\n# Sed expression to map a string onto a valid CPP name.\nas_tr_cpp=\"eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'\"\n\n# Sed expression to map a string onto a valid variable name.\nas_tr_sh=\"eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'\"\n\n\n\nexec 7<&0 </dev/null 6>&1\n\n# Name of the host.\n# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,\n# so uname gets run too.\nac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`\n\n#\n# Initializations.\n#\nac_default_prefix=/usr/local\nac_clean_files=\nac_config_libobj_dir=.\nLIBOBJS=\ncross_compiling=no\nsubdirs=\nMFLAGS=\nMAKEFLAGS=\nSHELL=${CONFIG_SHELL-/bin/sh}\n\n# Identity of this package.\nPACKAGE_NAME=\nPACKAGE_TARNAME=\nPACKAGE_VERSION=\nPACKAGE_STRING=\nPACKAGE_BUGREPORT=\n\nac_unique_file=\"src/rbind_jni.cpp\"\n# Factoring default headers for most tests.\nac_includes_default=\"\\\n#include <stdio.h>\n#ifdef HAVE_SYS_TYPES_H\n# include <sys/types.h>\n#endif\n#ifdef HAVE_SYS_STAT_H\n# include <sys/stat.h>\n#endif\n#ifdef STDC_HEADERS\n# include <stdlib.h>\n# include <stddef.h>\n#else\n# ifdef HAVE_STDLIB_H\n#  include <stdlib.h>\n# endif\n#endif\n#ifdef HAVE_STRING_H\n# if !defined STDC_HEADERS && defined HAVE_MEMORY_H\n#  include <memory.h>\n# endif\n# include <string.h>\n#endif\n#ifdef HAVE_STRINGS_H\n# include <strings.h>\n#endif\n#ifdef HAVE_INTTYPES_H\n# include <inttypes.h>\n#endif\n#ifdef HAVE_STDINT_H\n# include <stdint.h>\n#endif\n#ifdef HAVE_UNISTD_H\n# include <unistd.h>\n#endif\"\n\nac_subst_vars='SHELL\nPATH_SEPARATOR\nPACKAGE_NAME\nPACKAGE_TARNAME\nPACKAGE_VERSION\nPACKAGE_STRING\nPACKAGE_BUGREPORT\nexec_prefix\nprefix\nprogram_transform_name\nbindir\nsbindir\nlibexecdir\ndatarootdir\ndatadir\nsysconfdir\nsharedstatedir\nlocalstatedir\nincludedir\noldincludedir\ndocdir\ninfodir\nhtmldir\ndvidir\npdfdir\npsdir\nlibdir\nlocaledir\nmandir\nDEFS\nECHO_C\nECHO_N\nECHO_T\nLIBS\nbuild_alias\nhost_alias\ntarget_alias\nCC\nCFLAGS\nLDFLAGS\nCPPFLAGS\nac_ct_CC\nEXEEXT\nOBJEXT\nCXX\nCXXFLAGS\nac_ct_CXX\nINSTALL_PROGRAM\nINSTALL_SCRIPT\nINSTALL_DATA\nCPP\nGREP\nEGREP\nLIBOBJS\nPOW_LIB\nbuild\nbuild_cpu\nbuild_vendor\nbuild_os\nhost\nhost_cpu\nhost_vendor\nhost_os\nLTLIBOBJS'\nac_subst_files=''\n      ac_precious_vars='build_alias\nhost_alias\ntarget_alias\nCC\nCFLAGS\nLDFLAGS\nLIBS\nCPPFLAGS\nCXX\nCXXFLAGS\nCCC\nCPP'\n\n\n# Initialize some variables set by options.\nac_init_help=\nac_init_version=false\n# The variables have the same names as the options, with\n# dashes changed to underlines.\ncache_file=/dev/null\nexec_prefix=NONE\nno_create=\nno_recursion=\nprefix=NONE\nprogram_prefix=NONE\nprogram_suffix=NONE\nprogram_transform_name=s,x,x,\nsilent=\nsite=\nsrcdir=\nverbose=\nx_includes=NONE\nx_libraries=NONE\n\n# Installation directory options.\n# These are left unexpanded so users can \"make install exec_prefix=/foo\"\n# and all the variables that are supposed to be based on exec_prefix\n# by default will actually change.\n# Use braces instead of parens because sh, perl, etc. also accept them.\n# (The list follows the same order as the GNU Coding Standards.)\nbindir='${exec_prefix}/bin'\nsbindir='${exec_prefix}/sbin'\nlibexecdir='${exec_prefix}/libexec'\ndatarootdir='${prefix}/share'\ndatadir='${datarootdir}'\nsysconfdir='${prefix}/etc'\nsharedstatedir='${prefix}/com'\nlocalstatedir='${prefix}/var'\nincludedir='${prefix}/include'\noldincludedir='/usr/include'\ndocdir='${datarootdir}/doc/${PACKAGE}'\ninfodir='${datarootdir}/info'\nhtmldir='${docdir}'\ndvidir='${docdir}'\npdfdir='${docdir}'\npsdir='${docdir}'\nlibdir='${exec_prefix}/lib'\nlocaledir='${datarootdir}/locale'\nmandir='${datarootdir}/man'\n\nac_prev=\nac_dashdash=\nfor ac_option\ndo\n  # If the previous option needs an argument, assign it.\n  if test -n \"$ac_prev\"; then\n    eval $ac_prev=\\$ac_option\n    ac_prev=\n    continue\n  fi\n\n  case $ac_option in\n  *=*)\tac_optarg=`expr \"X$ac_option\" : '[^=]*=\\(.*\\)'` ;;\n  *)\tac_optarg=yes ;;\n  esac\n\n  # Accept the important Cygnus configure options, so we can diagnose typos.\n\n  case $ac_dashdash$ac_option in\n  --)\n    ac_dashdash=yes ;;\n\n  -bindir | --bindir | --bindi | --bind | --bin | --bi)\n    ac_prev=bindir ;;\n  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)\n    bindir=$ac_optarg ;;\n\n  -build | --build | --buil | --bui | --bu)\n    ac_prev=build_alias ;;\n  -build=* | --build=* | --buil=* | --bui=* | --bu=*)\n    build_alias=$ac_optarg ;;\n\n  -cache-file | --cache-file | --cache-fil | --cache-fi \\\n  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)\n    ac_prev=cache_file ;;\n  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \\\n  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)\n    cache_file=$ac_optarg ;;\n\n  --config-cache | -C)\n    cache_file=config.cache ;;\n\n  -datadir | --datadir | --datadi | --datad)\n    ac_prev=datadir ;;\n  -datadir=* | --datadir=* | --datadi=* | --datad=*)\n    datadir=$ac_optarg ;;\n\n  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \\\n  | --dataroo | --dataro | --datar)\n    ac_prev=datarootdir ;;\n  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \\\n  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)\n    datarootdir=$ac_optarg ;;\n\n  -disable-* | --disable-*)\n    ac_feature=`expr \"x$ac_option\" : 'x-*disable-\\(.*\\)'`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_feature\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid feature name: $ac_feature\" >&2\n   { (exit 1); exit 1; }; }\n    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`\n    eval enable_$ac_feature=no ;;\n\n  -docdir | --docdir | --docdi | --doc | --do)\n    ac_prev=docdir ;;\n  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)\n    docdir=$ac_optarg ;;\n\n  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)\n    ac_prev=dvidir ;;\n  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)\n    dvidir=$ac_optarg ;;\n\n  -enable-* | --enable-*)\n    ac_feature=`expr \"x$ac_option\" : 'x-*enable-\\([^=]*\\)'`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_feature\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid feature name: $ac_feature\" >&2\n   { (exit 1); exit 1; }; }\n    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`\n    eval enable_$ac_feature=\\$ac_optarg ;;\n\n  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \\\n  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \\\n  | --exec | --exe | --ex)\n    ac_prev=exec_prefix ;;\n  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \\\n  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \\\n  | --exec=* | --exe=* | --ex=*)\n    exec_prefix=$ac_optarg ;;\n\n  -gas | --gas | --ga | --g)\n    # Obsolete; use --with-gas.\n    with_gas=yes ;;\n\n  -help | --help | --hel | --he | -h)\n    ac_init_help=long ;;\n  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)\n    ac_init_help=recursive ;;\n  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)\n    ac_init_help=short ;;\n\n  -host | --host | --hos | --ho)\n    ac_prev=host_alias ;;\n  -host=* | --host=* | --hos=* | --ho=*)\n    host_alias=$ac_optarg ;;\n\n  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)\n    ac_prev=htmldir ;;\n  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \\\n  | --ht=*)\n    htmldir=$ac_optarg ;;\n\n  -includedir | --includedir | --includedi | --included | --include \\\n  | --includ | --inclu | --incl | --inc)\n    ac_prev=includedir ;;\n  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \\\n  | --includ=* | --inclu=* | --incl=* | --inc=*)\n    includedir=$ac_optarg ;;\n\n  -infodir | --infodir | --infodi | --infod | --info | --inf)\n    ac_prev=infodir ;;\n  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)\n    infodir=$ac_optarg ;;\n\n  -libdir | --libdir | --libdi | --libd)\n    ac_prev=libdir ;;\n  -libdir=* | --libdir=* | --libdi=* | --libd=*)\n    libdir=$ac_optarg ;;\n\n  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \\\n  | --libexe | --libex | --libe)\n    ac_prev=libexecdir ;;\n  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \\\n  | --libexe=* | --libex=* | --libe=*)\n    libexecdir=$ac_optarg ;;\n\n  -localedir | --localedir | --localedi | --localed | --locale)\n    ac_prev=localedir ;;\n  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)\n    localedir=$ac_optarg ;;\n\n  -localstatedir | --localstatedir | --localstatedi | --localstated \\\n  | --localstate | --localstat | --localsta | --localst | --locals)\n    ac_prev=localstatedir ;;\n  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \\\n  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)\n    localstatedir=$ac_optarg ;;\n\n  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)\n    ac_prev=mandir ;;\n  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)\n    mandir=$ac_optarg ;;\n\n  -nfp | --nfp | --nf)\n    # Obsolete; use --without-fp.\n    with_fp=no ;;\n\n  -no-create | --no-create | --no-creat | --no-crea | --no-cre \\\n  | --no-cr | --no-c | -n)\n    no_create=yes ;;\n\n  -no-recursion | --no-recursion | --no-recursio | --no-recursi \\\n  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)\n    no_recursion=yes ;;\n\n  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \\\n  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \\\n  | --oldin | --oldi | --old | --ol | --o)\n    ac_prev=oldincludedir ;;\n  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \\\n  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \\\n  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)\n    oldincludedir=$ac_optarg ;;\n\n  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)\n    ac_prev=prefix ;;\n  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)\n    prefix=$ac_optarg ;;\n\n  -program-prefix | --program-prefix | --program-prefi | --program-pref \\\n  | --program-pre | --program-pr | --program-p)\n    ac_prev=program_prefix ;;\n  -program-prefix=* | --program-prefix=* | --program-prefi=* \\\n  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)\n    program_prefix=$ac_optarg ;;\n\n  -program-suffix | --program-suffix | --program-suffi | --program-suff \\\n  | --program-suf | --program-su | --program-s)\n    ac_prev=program_suffix ;;\n  -program-suffix=* | --program-suffix=* | --program-suffi=* \\\n  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)\n    program_suffix=$ac_optarg ;;\n\n  -program-transform-name | --program-transform-name \\\n  | --program-transform-nam | --program-transform-na \\\n  | --program-transform-n | --program-transform- \\\n  | --program-transform | --program-transfor \\\n  | --program-transfo | --program-transf \\\n  | --program-trans | --program-tran \\\n  | --progr-tra | --program-tr | --program-t)\n    ac_prev=program_transform_name ;;\n  -program-transform-name=* | --program-transform-name=* \\\n  | --program-transform-nam=* | --program-transform-na=* \\\n  | --program-transform-n=* | --program-transform-=* \\\n  | --program-transform=* | --program-transfor=* \\\n  | --program-transfo=* | --program-transf=* \\\n  | --program-trans=* | --program-tran=* \\\n  | --progr-tra=* | --program-tr=* | --program-t=*)\n    program_transform_name=$ac_optarg ;;\n\n  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)\n    ac_prev=pdfdir ;;\n  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)\n    pdfdir=$ac_optarg ;;\n\n  -psdir | --psdir | --psdi | --psd | --ps)\n    ac_prev=psdir ;;\n  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)\n    psdir=$ac_optarg ;;\n\n  -q | -quiet | --quiet | --quie | --qui | --qu | --q \\\n  | -silent | --silent | --silen | --sile | --sil)\n    silent=yes ;;\n\n  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)\n    ac_prev=sbindir ;;\n  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \\\n  | --sbi=* | --sb=*)\n    sbindir=$ac_optarg ;;\n\n  -sharedstatedir | --sharedstatedir | --sharedstatedi \\\n  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \\\n  | --sharedst | --shareds | --shared | --share | --shar \\\n  | --sha | --sh)\n    ac_prev=sharedstatedir ;;\n  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \\\n  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \\\n  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \\\n  | --sha=* | --sh=*)\n    sharedstatedir=$ac_optarg ;;\n\n  -site | --site | --sit)\n    ac_prev=site ;;\n  -site=* | --site=* | --sit=*)\n    site=$ac_optarg ;;\n\n  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)\n    ac_prev=srcdir ;;\n  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)\n    srcdir=$ac_optarg ;;\n\n  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \\\n  | --syscon | --sysco | --sysc | --sys | --sy)\n    ac_prev=sysconfdir ;;\n  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \\\n  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)\n    sysconfdir=$ac_optarg ;;\n\n  -target | --target | --targe | --targ | --tar | --ta | --t)\n    ac_prev=target_alias ;;\n  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)\n    target_alias=$ac_optarg ;;\n\n  -v | -verbose | --verbose | --verbos | --verbo | --verb)\n    verbose=yes ;;\n\n  -version | --version | --versio | --versi | --vers | -V)\n    ac_init_version=: ;;\n\n  -with-* | --with-*)\n    ac_package=`expr \"x$ac_option\" : 'x-*with-\\([^=]*\\)'`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_package\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid package name: $ac_package\" >&2\n   { (exit 1); exit 1; }; }\n    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`\n    eval with_$ac_package=\\$ac_optarg ;;\n\n  -without-* | --without-*)\n    ac_package=`expr \"x$ac_option\" : 'x-*without-\\(.*\\)'`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_package\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid package name: $ac_package\" >&2\n   { (exit 1); exit 1; }; }\n    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`\n    eval with_$ac_package=no ;;\n\n  --x)\n    # Obsolete; use --with-x.\n    with_x=yes ;;\n\n  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \\\n  | --x-incl | --x-inc | --x-in | --x-i)\n    ac_prev=x_includes ;;\n  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \\\n  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)\n    x_includes=$ac_optarg ;;\n\n  -x-libraries | --x-libraries | --x-librarie | --x-librari \\\n  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)\n    ac_prev=x_libraries ;;\n  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \\\n  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)\n    x_libraries=$ac_optarg ;;\n\n  -*) { echo \"$as_me: error: unrecognized option: $ac_option\nTry \\`$0 --help' for more information.\" >&2\n   { (exit 1); exit 1; }; }\n    ;;\n\n  *=*)\n    ac_envvar=`expr \"x$ac_option\" : 'x\\([^=]*\\)='`\n    # Reject names that are not valid shell variable names.\n    expr \"x$ac_envvar\" : \".*[^_$as_cr_alnum]\" >/dev/null &&\n      { echo \"$as_me: error: invalid variable name: $ac_envvar\" >&2\n   { (exit 1); exit 1; }; }\n    eval $ac_envvar=\\$ac_optarg\n    export $ac_envvar ;;\n\n  *)\n    # FIXME: should be removed in autoconf 3.0.\n    echo \"$as_me: WARNING: you should use --build, --host, --target\" >&2\n    expr \"x$ac_option\" : \".*[^-._$as_cr_alnum]\" >/dev/null &&\n      echo \"$as_me: WARNING: invalid host type: $ac_option\" >&2\n    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}\n    ;;\n\n  esac\ndone\n\nif test -n \"$ac_prev\"; then\n  ac_option=--`echo $ac_prev | sed 's/_/-/g'`\n  { echo \"$as_me: error: missing argument to $ac_option\" >&2\n   { (exit 1); exit 1; }; }\nfi\n\n# Be sure to have absolute directory names.\nfor ac_var in\texec_prefix prefix bindir sbindir libexecdir datarootdir \\\n\t\tdatadir sysconfdir sharedstatedir localstatedir includedir \\\n\t\toldincludedir docdir infodir htmldir dvidir pdfdir psdir \\\n\t\tlibdir localedir mandir\ndo\n  eval ac_val=\\$$ac_var\n  case $ac_val in\n    [\\\\/$]* | ?:[\\\\/]* )  continue;;\n    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;\n  esac\n  { echo \"$as_me: error: expected an absolute directory name for --$ac_var: $ac_val\" >&2\n   { (exit 1); exit 1; }; }\ndone\n\n# There might be people who depend on the old broken behavior: `$host'\n# used to hold the argument of --host etc.\n# FIXME: To remove some day.\nbuild=$build_alias\nhost=$host_alias\ntarget=$target_alias\n\n# FIXME: To remove some day.\nif test \"x$host_alias\" != x; then\n  if test \"x$build_alias\" = x; then\n    cross_compiling=maybe\n    echo \"$as_me: WARNING: If you wanted to set the --build type, don't use --host.\n    If a cross compiler is detected then cross compile mode will be used.\" >&2\n  elif test \"x$build_alias\" != \"x$host_alias\"; then\n    cross_compiling=yes\n  fi\nfi\n\nac_tool_prefix=\ntest -n \"$host_alias\" && ac_tool_prefix=$host_alias-\n\ntest \"$silent\" = yes && exec 6>/dev/null\n\n\nac_pwd=`pwd` && test -n \"$ac_pwd\" &&\nac_ls_di=`ls -di .` &&\nac_pwd_ls_di=`cd \"$ac_pwd\" && ls -di .` ||\n  { echo \"$as_me: error: Working directory cannot be determined\" >&2\n   { (exit 1); exit 1; }; }\ntest \"X$ac_ls_di\" = \"X$ac_pwd_ls_di\" ||\n  { echo \"$as_me: error: pwd does not report name of working directory\" >&2\n   { (exit 1); exit 1; }; }\n\n\n# Find the source files, if location was not specified.\nif test -z \"$srcdir\"; then\n  ac_srcdir_defaulted=yes\n  # Try the directory containing this script, then the parent directory.\n  ac_confdir=`$as_dirname -- \"$0\" ||\n$as_expr X\"$0\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t X\"$0\" : 'X\\(//\\)[^/]' \\| \\\n\t X\"$0\" : 'X\\(//\\)$' \\| \\\n\t X\"$0\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X\"$0\" |\n    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)[^/].*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n  srcdir=$ac_confdir\n  if test ! -r \"$srcdir/$ac_unique_file\"; then\n    srcdir=..\n  fi\nelse\n  ac_srcdir_defaulted=no\nfi\nif test ! -r \"$srcdir/$ac_unique_file\"; then\n  test \"$ac_srcdir_defaulted\" = yes && srcdir=\"$ac_confdir or ..\"\n  { echo \"$as_me: error: cannot find sources ($ac_unique_file) in $srcdir\" >&2\n   { (exit 1); exit 1; }; }\nfi\nac_msg=\"sources are in $srcdir, but \\`cd $srcdir' does not work\"\nac_abs_confdir=`(\n\tcd \"$srcdir\" && test -r \"./$ac_unique_file\" || { echo \"$as_me: error: $ac_msg\" >&2\n   { (exit 1); exit 1; }; }\n\tpwd)`\n# When building in place, set srcdir=.\nif test \"$ac_abs_confdir\" = \"$ac_pwd\"; then\n  srcdir=.\nfi\n# Remove unnecessary trailing slashes from srcdir.\n# Double slashes in file names in object file debugging info\n# mess up M-x gdb in Emacs.\ncase $srcdir in\n*/) srcdir=`expr \"X$srcdir\" : 'X\\(.*[^/]\\)' \\| \"X$srcdir\" : 'X\\(.*\\)'`;;\nesac\nfor ac_var in $ac_precious_vars; do\n  eval ac_env_${ac_var}_set=\\${${ac_var}+set}\n  eval ac_env_${ac_var}_value=\\$${ac_var}\n  eval ac_cv_env_${ac_var}_set=\\${${ac_var}+set}\n  eval ac_cv_env_${ac_var}_value=\\$${ac_var}\ndone\n\n#\n# Report the --help message.\n#\nif test \"$ac_init_help\" = \"long\"; then\n  # Omit some internal or obsolete options to make the list less imposing.\n  # This message is too long to be a string in the A/UX 3.1 sh.\n  cat <<_ACEOF\n\\`configure' configures this package to adapt to many kinds of systems.\n\nUsage: $0 [OPTION]... [VAR=VALUE]...\n\nTo assign environment variables (e.g., CC, CFLAGS...), specify them as\nVAR=VALUE.  See below for descriptions of some of the useful variables.\n\nDefaults for the options are specified in brackets.\n\nConfiguration:\n  -h, --help              display this help and exit\n      --help=short        display options specific to this package\n      --help=recursive    display the short help of all the included packages\n  -V, --version           display version information and exit\n  -q, --quiet, --silent   do not print \\`checking...' messages\n      --cache-file=FILE   cache test results in FILE [disabled]\n  -C, --config-cache      alias for \\`--cache-file=config.cache'\n  -n, --no-create         do not create output files\n      --srcdir=DIR        find the sources in DIR [configure dir or \\`..']\n\nInstallation directories:\n  --prefix=PREFIX         install architecture-independent files in PREFIX\n\t\t\t  [$ac_default_prefix]\n  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX\n\t\t\t  [PREFIX]\n\nBy default, \\`make install' will install all the files in\n\\`$ac_default_prefix/bin', \\`$ac_default_prefix/lib' etc.  You can specify\nan installation prefix other than \\`$ac_default_prefix' using \\`--prefix',\nfor instance \\`--prefix=\\$HOME'.\n\nFor better control, use the options below.\n\nFine tuning of the installation directories:\n  --bindir=DIR           user executables [EPREFIX/bin]\n  --sbindir=DIR          system admin executables [EPREFIX/sbin]\n  --libexecdir=DIR       program executables [EPREFIX/libexec]\n  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]\n  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]\n  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]\n  --libdir=DIR           object code libraries [EPREFIX/lib]\n  --includedir=DIR       C header files [PREFIX/include]\n  --oldincludedir=DIR    C header files for non-gcc [/usr/include]\n  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]\n  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]\n  --infodir=DIR          info documentation [DATAROOTDIR/info]\n  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]\n  --mandir=DIR           man documentation [DATAROOTDIR/man]\n  --docdir=DIR           documentation root [DATAROOTDIR/doc/PACKAGE]\n  --htmldir=DIR          html documentation [DOCDIR]\n  --dvidir=DIR           dvi documentation [DOCDIR]\n  --pdfdir=DIR           pdf documentation [DOCDIR]\n  --psdir=DIR            ps documentation [DOCDIR]\n_ACEOF\n\n  cat <<\\_ACEOF\n\nSystem types:\n  --build=BUILD     configure for building on BUILD [guessed]\n  --host=HOST       cross-compile to build programs to run on HOST [BUILD]\n_ACEOF\nfi\n\nif test -n \"$ac_init_help\"; then\n\n  cat <<\\_ACEOF\n\nOptional Packages:\n  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]\n  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)\n  --with-jplex=JPLEX_PATH path to the jplex.jar file\n\nSome influential environment variables:\n  CC          C compiler command\n  CFLAGS      C compiler flags\n  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a\n              nonstandard directory <lib dir>\n  LIBS        libraries to pass to the linker, e.g. -l<library>\n  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if\n              you have headers in a nonstandard directory <include dir>\n  CXX         C++ compiler command\n  CXXFLAGS    C++ compiler flags\n  CPP         C preprocessor\n\nUse these variables to override the choices made by `configure' or to help\nit to find libraries and programs with nonstandard names/locations.\n\n_ACEOF\nac_status=$?\nfi\n\nif test \"$ac_init_help\" = \"recursive\"; then\n  # If there are subdirs, report their specific --help.\n  for ac_dir in : $ac_subdirs_all; do test \"x$ac_dir\" = x: && continue\n    test -d \"$ac_dir\" || continue\n    ac_builddir=.\n\ncase \"$ac_dir\" in\n.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;\n*)\n  ac_dir_suffix=/`echo \"$ac_dir\" | sed 's,^\\.[\\\\/],,'`\n  # A \"..\" for each directory in $ac_dir_suffix.\n  ac_top_builddir_sub=`echo \"$ac_dir_suffix\" | sed 's,/[^\\\\/]*,/..,g;s,/,,'`\n  case $ac_top_builddir_sub in\n  \"\") ac_top_builddir_sub=. ac_top_build_prefix= ;;\n  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;\n  esac ;;\nesac\nac_abs_top_builddir=$ac_pwd\nac_abs_builddir=$ac_pwd$ac_dir_suffix\n# for backward compatibility:\nac_top_builddir=$ac_top_build_prefix\n\ncase $srcdir in\n  .)  # We are building in place.\n    ac_srcdir=.\n    ac_top_srcdir=$ac_top_builddir_sub\n    ac_abs_top_srcdir=$ac_pwd ;;\n  [\\\\/]* | ?:[\\\\/]* )  # Absolute name.\n    ac_srcdir=$srcdir$ac_dir_suffix;\n    ac_top_srcdir=$srcdir\n    ac_abs_top_srcdir=$srcdir ;;\n  *) # Relative name.\n    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix\n    ac_top_srcdir=$ac_top_build_prefix$srcdir\n    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;\nesac\nac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix\n\n    cd \"$ac_dir\" || { ac_status=$?; continue; }\n    # Check for guested configure.\n    if test -f \"$ac_srcdir/configure.gnu\"; then\n      echo &&\n      $SHELL \"$ac_srcdir/configure.gnu\" --help=recursive\n    elif test -f \"$ac_srcdir/configure\"; then\n      echo &&\n      $SHELL \"$ac_srcdir/configure\" --help=recursive\n    else\n      echo \"$as_me: WARNING: no configuration information is in $ac_dir\" >&2\n    fi || ac_status=$?\n    cd \"$ac_pwd\" || { ac_status=$?; break; }\n  done\nfi\n\ntest -n \"$ac_init_help\" && exit $ac_status\nif $ac_init_version; then\n  cat <<\\_ACEOF\nconfigure\ngenerated by GNU Autoconf 2.61\n\nCopyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,\n2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.\nThis configure script is free software; the Free Software Foundation\ngives unlimited permission to copy, distribute and modify it.\n_ACEOF\n  exit\nfi\ncat >config.log <<_ACEOF\nThis file contains any messages produced by compilers while\nrunning configure, to aid debugging if configure makes a mistake.\n\nIt was created by $as_me, which was\ngenerated by GNU Autoconf 2.61.  Invocation command line was\n\n  $ $0 $@\n\n_ACEOF\nexec 5>>config.log\n{\ncat <<_ASUNAME\n## --------- ##\n## Platform. ##\n## --------- ##\n\nhostname = `(hostname || uname -n) 2>/dev/null | sed 1q`\nuname -m = `(uname -m) 2>/dev/null || echo unknown`\nuname -r = `(uname -r) 2>/dev/null || echo unknown`\nuname -s = `(uname -s) 2>/dev/null || echo unknown`\nuname -v = `(uname -v) 2>/dev/null || echo unknown`\n\n/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`\n/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`\n\n/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`\n/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`\n/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`\n/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`\n/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`\n/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`\n/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`\n\n_ASUNAME\n\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  echo \"PATH: $as_dir\"\ndone\nIFS=$as_save_IFS\n\n} >&5\n\ncat >&5 <<_ACEOF\n\n\n## ----------- ##\n## Core tests. ##\n## ----------- ##\n\n_ACEOF\n\n\n# Keep a trace of the command line.\n# Strip out --no-create and --no-recursion so they do not pile up.\n# Strip out --silent because we don't want to record it for future runs.\n# Also quote any args containing shell meta-characters.\n# Make two passes to allow for proper duplicate-argument suppression.\nac_configure_args=\nac_configure_args0=\nac_configure_args1=\nac_must_keep_next=false\nfor ac_pass in 1 2\ndo\n  for ac_arg\n  do\n    case $ac_arg in\n    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;\n    -q | -quiet | --quiet | --quie | --qui | --qu | --q \\\n    | -silent | --silent | --silen | --sile | --sil)\n      continue ;;\n    *\\'*)\n      ac_arg=`echo \"$ac_arg\" | sed \"s/'/'\\\\\\\\\\\\\\\\''/g\"` ;;\n    esac\n    case $ac_pass in\n    1) ac_configure_args0=\"$ac_configure_args0 '$ac_arg'\" ;;\n    2)\n      ac_configure_args1=\"$ac_configure_args1 '$ac_arg'\"\n      if test $ac_must_keep_next = true; then\n\tac_must_keep_next=false # Got value, back to normal.\n      else\n\tcase $ac_arg in\n\t  *=* | --config-cache | -C | -disable-* | --disable-* \\\n\t  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \\\n\t  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \\\n\t  | -with-* | --with-* | -without-* | --without-* | --x)\n\t    case \"$ac_configure_args0 \" in\n\t      \"$ac_configure_args1\"*\" '$ac_arg' \"* ) continue ;;\n\t    esac\n\t    ;;\n\t  -* ) ac_must_keep_next=true ;;\n\tesac\n      fi\n      ac_configure_args=\"$ac_configure_args '$ac_arg'\"\n      ;;\n    esac\n  done\ndone\n$as_unset ac_configure_args0 || test \"${ac_configure_args0+set}\" != set || { ac_configure_args0=; export ac_configure_args0; }\n$as_unset ac_configure_args1 || test \"${ac_configure_args1+set}\" != set || { ac_configure_args1=; export ac_configure_args1; }\n\n# When interrupted or exit'd, cleanup temporary files, and complete\n# config.log.  We remove comments because anyway the quotes in there\n# would cause problems or look ugly.\n# WARNING: Use '\\'' to represent an apostrophe within the trap.\n# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.\ntrap 'exit_status=$?\n  # Save into config.log some information that might help in debugging.\n  {\n    echo\n\n    cat <<\\_ASBOX\n## ---------------- ##\n## Cache variables. ##\n## ---------------- ##\n_ASBOX\n    echo\n    # The following way of writing the cache mishandles newlines in values,\n(\n  for ac_var in `(set) 2>&1 | sed -n '\\''s/^\\([a-zA-Z_][a-zA-Z0-9_]*\\)=.*/\\1/p'\\''`; do\n    eval ac_val=\\$$ac_var\n    case $ac_val in #(\n    *${as_nl}*)\n      case $ac_var in #(\n      *_cv_*) { echo \"$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline.\" >&5\necho \"$as_me: WARNING: Cache variable $ac_var contains a newline.\" >&2;} ;;\n      esac\n      case $ac_var in #(\n      _ | IFS | as_nl) ;; #(\n      *) $as_unset $ac_var ;;\n      esac ;;\n    esac\n  done\n  (set) 2>&1 |\n    case $as_nl`(ac_space='\\'' '\\''; set) 2>&1` in #(\n    *${as_nl}ac_space=\\ *)\n      sed -n \\\n\t\"s/'\\''/'\\''\\\\\\\\'\\'''\\''/g;\n\t  s/^\\\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\\\)=\\\\(.*\\\\)/\\\\1='\\''\\\\2'\\''/p\"\n      ;; #(\n    *)\n      sed -n \"/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p\"\n      ;;\n    esac |\n    sort\n)\n    echo\n\n    cat <<\\_ASBOX\n## ----------------- ##\n## Output variables. ##\n## ----------------- ##\n_ASBOX\n    echo\n    for ac_var in $ac_subst_vars\n    do\n      eval ac_val=\\$$ac_var\n      case $ac_val in\n      *\\'\\''*) ac_val=`echo \"$ac_val\" | sed \"s/'\\''/'\\''\\\\\\\\\\\\\\\\'\\'''\\''/g\"`;;\n      esac\n      echo \"$ac_var='\\''$ac_val'\\''\"\n    done | sort\n    echo\n\n    if test -n \"$ac_subst_files\"; then\n      cat <<\\_ASBOX\n## ------------------- ##\n## File substitutions. ##\n## ------------------- ##\n_ASBOX\n      echo\n      for ac_var in $ac_subst_files\n      do\n\teval ac_val=\\$$ac_var\n\tcase $ac_val in\n\t*\\'\\''*) ac_val=`echo \"$ac_val\" | sed \"s/'\\''/'\\''\\\\\\\\\\\\\\\\'\\'''\\''/g\"`;;\n\tesac\n\techo \"$ac_var='\\''$ac_val'\\''\"\n      done | sort\n      echo\n    fi\n\n    if test -s confdefs.h; then\n      cat <<\\_ASBOX\n## ----------- ##\n## confdefs.h. ##\n## ----------- ##\n_ASBOX\n      echo\n      cat confdefs.h\n      echo\n    fi\n    test \"$ac_signal\" != 0 &&\n      echo \"$as_me: caught signal $ac_signal\"\n    echo \"$as_me: exit $exit_status\"\n  } >&5\n  rm -f core *.core core.conftest.* &&\n    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&\n    exit $exit_status\n' 0\nfor ac_signal in 1 2 13 15; do\n  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal\ndone\nac_signal=0\n\n# confdefs.h avoids OS command line length limits that DEFS can exceed.\nrm -f -r conftest* confdefs.h\n\n# Predefined preprocessor variables.\n\ncat >>confdefs.h <<_ACEOF\n#define PACKAGE_NAME \"$PACKAGE_NAME\"\n_ACEOF\n\n\ncat >>confdefs.h <<_ACEOF\n#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"\n_ACEOF\n\n\ncat >>confdefs.h <<_ACEOF\n#define PACKAGE_VERSION \"$PACKAGE_VERSION\"\n_ACEOF\n\n\ncat >>confdefs.h <<_ACEOF\n#define PACKAGE_STRING \"$PACKAGE_STRING\"\n_ACEOF\n\n\ncat >>confdefs.h <<_ACEOF\n#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"\n_ACEOF\n\n\n# Let the site file select an alternate cache file if it wants to.\n# Prefer explicitly selected file to automatically selected ones.\nif test -n \"$CONFIG_SITE\"; then\n  set x \"$CONFIG_SITE\"\nelif test \"x$prefix\" != xNONE; then\n  set x \"$prefix/share/config.site\" \"$prefix/etc/config.site\"\nelse\n  set x \"$ac_default_prefix/share/config.site\" \\\n\t\"$ac_default_prefix/etc/config.site\"\nfi\nshift\nfor ac_site_file\ndo\n  if test -r \"$ac_site_file\"; then\n    { echo \"$as_me:$LINENO: loading site script $ac_site_file\" >&5\necho \"$as_me: loading site script $ac_site_file\" >&6;}\n    sed 's/^/| /' \"$ac_site_file\" >&5\n    . \"$ac_site_file\"\n  fi\ndone\n\nif test -r \"$cache_file\"; then\n  # Some versions of bash will fail to source /dev/null (special\n  # files actually), so we avoid doing that.\n  if test -f \"$cache_file\"; then\n    { echo \"$as_me:$LINENO: loading cache $cache_file\" >&5\necho \"$as_me: loading cache $cache_file\" >&6;}\n    case $cache_file in\n      [\\\\/]* | ?:[\\\\/]* ) . \"$cache_file\";;\n      *)                      . \"./$cache_file\";;\n    esac\n  fi\nelse\n  { echo \"$as_me:$LINENO: creating cache $cache_file\" >&5\necho \"$as_me: creating cache $cache_file\" >&6;}\n  >$cache_file\nfi\n\n# Check that the precious variables saved in the cache have kept the same\n# value.\nac_cache_corrupted=false\nfor ac_var in $ac_precious_vars; do\n  eval ac_old_set=\\$ac_cv_env_${ac_var}_set\n  eval ac_new_set=\\$ac_env_${ac_var}_set\n  eval ac_old_val=\\$ac_cv_env_${ac_var}_value\n  eval ac_new_val=\\$ac_env_${ac_var}_value\n  case $ac_old_set,$ac_new_set in\n    set,)\n      { echo \"$as_me:$LINENO: error: \\`$ac_var' was set to \\`$ac_old_val' in the previous run\" >&5\necho \"$as_me: error: \\`$ac_var' was set to \\`$ac_old_val' in the previous run\" >&2;}\n      ac_cache_corrupted=: ;;\n    ,set)\n      { echo \"$as_me:$LINENO: error: \\`$ac_var' was not set in the previous run\" >&5\necho \"$as_me: error: \\`$ac_var' was not set in the previous run\" >&2;}\n      ac_cache_corrupted=: ;;\n    ,);;\n    *)\n      if test \"x$ac_old_val\" != \"x$ac_new_val\"; then\n\t{ echo \"$as_me:$LINENO: error: \\`$ac_var' has changed since the previous run:\" >&5\necho \"$as_me: error: \\`$ac_var' has changed since the previous run:\" >&2;}\n\t{ echo \"$as_me:$LINENO:   former value:  $ac_old_val\" >&5\necho \"$as_me:   former value:  $ac_old_val\" >&2;}\n\t{ echo \"$as_me:$LINENO:   current value: $ac_new_val\" >&5\necho \"$as_me:   current value: $ac_new_val\" >&2;}\n\tac_cache_corrupted=:\n      fi;;\n  esac\n  # Pass precious variables to config.status.\n  if test \"$ac_new_set\" = set; then\n    case $ac_new_val in\n    *\\'*) ac_arg=$ac_var=`echo \"$ac_new_val\" | sed \"s/'/'\\\\\\\\\\\\\\\\''/g\"` ;;\n    *) ac_arg=$ac_var=$ac_new_val ;;\n    esac\n    case \" $ac_configure_args \" in\n      *\" '$ac_arg' \"*) ;; # Avoid dups.  Use of quotes ensures accuracy.\n      *) ac_configure_args=\"$ac_configure_args '$ac_arg'\" ;;\n    esac\n  fi\ndone\nif $ac_cache_corrupted; then\n  { echo \"$as_me:$LINENO: error: changes in the environment can compromise the build\" >&5\necho \"$as_me: error: changes in the environment can compromise the build\" >&2;}\n  { { echo \"$as_me:$LINENO: error: run \\`make distclean' and/or \\`rm $cache_file' and start over\" >&5\necho \"$as_me: error: run \\`make distclean' and/or \\`rm $cache_file' and start over\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n\n\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\nif test -n \"$ac_tool_prefix\"; then\n  # Extract the first word of \"${ac_tool_prefix}gcc\", so it can be a program name with args.\nset dummy ${ac_tool_prefix}gcc; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CC\"; then\n  ac_cv_prog_CC=\"$CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_CC=\"${ac_tool_prefix}gcc\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nCC=$ac_cv_prog_CC\nif test -n \"$CC\"; then\n  { echo \"$as_me:$LINENO: result: $CC\" >&5\necho \"${ECHO_T}$CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\nfi\nif test -z \"$ac_cv_prog_CC\"; then\n  ac_ct_CC=$CC\n  # Extract the first word of \"gcc\", so it can be a program name with args.\nset dummy gcc; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_ac_ct_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$ac_ct_CC\"; then\n  ac_cv_prog_ac_ct_CC=\"$ac_ct_CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_ac_ct_CC=\"gcc\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nac_ct_CC=$ac_cv_prog_ac_ct_CC\nif test -n \"$ac_ct_CC\"; then\n  { echo \"$as_me:$LINENO: result: $ac_ct_CC\" >&5\necho \"${ECHO_T}$ac_ct_CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n  if test \"x$ac_ct_CC\" = x; then\n    CC=\"\"\n  else\n    case $cross_compiling:$ac_tool_warned in\nyes:)\n{ echo \"$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&5\necho \"$as_me: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&2;}\nac_tool_warned=yes ;;\nesac\n    CC=$ac_ct_CC\n  fi\nelse\n  CC=\"$ac_cv_prog_CC\"\nfi\n\nif test -z \"$CC\"; then\n          if test -n \"$ac_tool_prefix\"; then\n    # Extract the first word of \"${ac_tool_prefix}cc\", so it can be a program name with args.\nset dummy ${ac_tool_prefix}cc; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CC\"; then\n  ac_cv_prog_CC=\"$CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_CC=\"${ac_tool_prefix}cc\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nCC=$ac_cv_prog_CC\nif test -n \"$CC\"; then\n  { echo \"$as_me:$LINENO: result: $CC\" >&5\necho \"${ECHO_T}$CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n  fi\nfi\nif test -z \"$CC\"; then\n  # Extract the first word of \"cc\", so it can be a program name with args.\nset dummy cc; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CC\"; then\n  ac_cv_prog_CC=\"$CC\" # Let the user override the test.\nelse\n  ac_prog_rejected=no\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    if test \"$as_dir/$ac_word$ac_exec_ext\" = \"/usr/ucb/cc\"; then\n       ac_prog_rejected=yes\n       continue\n     fi\n    ac_cv_prog_CC=\"cc\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nif test $ac_prog_rejected = yes; then\n  # We found a bogon in the path, so make sure we never use it.\n  set dummy $ac_cv_prog_CC\n  shift\n  if test $# != 0; then\n    # We chose a different compiler from the bogus one.\n    # However, it has the same basename, so the bogon will be chosen\n    # first if we set CC to just the basename; use the full file name.\n    shift\n    ac_cv_prog_CC=\"$as_dir/$ac_word${1+' '}$@\"\n  fi\nfi\nfi\nfi\nCC=$ac_cv_prog_CC\nif test -n \"$CC\"; then\n  { echo \"$as_me:$LINENO: result: $CC\" >&5\necho \"${ECHO_T}$CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\nfi\nif test -z \"$CC\"; then\n  if test -n \"$ac_tool_prefix\"; then\n  for ac_prog in cl.exe\n  do\n    # Extract the first word of \"$ac_tool_prefix$ac_prog\", so it can be a program name with args.\nset dummy $ac_tool_prefix$ac_prog; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CC\"; then\n  ac_cv_prog_CC=\"$CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_CC=\"$ac_tool_prefix$ac_prog\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nCC=$ac_cv_prog_CC\nif test -n \"$CC\"; then\n  { echo \"$as_me:$LINENO: result: $CC\" >&5\necho \"${ECHO_T}$CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n    test -n \"$CC\" && break\n  done\nfi\nif test -z \"$CC\"; then\n  ac_ct_CC=$CC\n  for ac_prog in cl.exe\ndo\n  # Extract the first word of \"$ac_prog\", so it can be a program name with args.\nset dummy $ac_prog; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_ac_ct_CC+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$ac_ct_CC\"; then\n  ac_cv_prog_ac_ct_CC=\"$ac_ct_CC\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_ac_ct_CC=\"$ac_prog\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nac_ct_CC=$ac_cv_prog_ac_ct_CC\nif test -n \"$ac_ct_CC\"; then\n  { echo \"$as_me:$LINENO: result: $ac_ct_CC\" >&5\necho \"${ECHO_T}$ac_ct_CC\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n  test -n \"$ac_ct_CC\" && break\ndone\n\n  if test \"x$ac_ct_CC\" = x; then\n    CC=\"\"\n  else\n    case $cross_compiling:$ac_tool_warned in\nyes:)\n{ echo \"$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&5\necho \"$as_me: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&2;}\nac_tool_warned=yes ;;\nesac\n    CC=$ac_ct_CC\n  fi\nfi\n\nfi\n\n\ntest -z \"$CC\" && { { echo \"$as_me:$LINENO: error: no acceptable C compiler found in \\$PATH\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: no acceptable C compiler found in \\$PATH\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\n\n# Provide some information about the compiler.\necho \"$as_me:$LINENO: checking for C compiler version\" >&5\nac_compiler=`set X $ac_compile; echo $2`\n{ (ac_try=\"$ac_compiler --version >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler --version >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n{ (ac_try=\"$ac_compiler -v >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler -v >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n{ (ac_try=\"$ac_compiler -V >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler -V >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nac_clean_files_save=$ac_clean_files\nac_clean_files=\"$ac_clean_files a.out a.exe b.out\"\n# Try to create an executable without -o first, disregard a.out.\n# It will help us diagnose broken compilers, and finding out an intuition\n# of exeext.\n{ echo \"$as_me:$LINENO: checking for C compiler default output file name\" >&5\necho $ECHO_N \"checking for C compiler default output file name... $ECHO_C\" >&6; }\nac_link_default=`echo \"$ac_link\" | sed 's/ -o *conftest[^ ]*//'`\n#\n# List of possible output files, starting from the most likely.\n# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)\n# only as a last resort.  b.out is created by i960 compilers.\nac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'\n#\n# The IRIX 6 linker writes into existing files which may not be\n# executable, retaining their permissions.  Remove them first so a\n# subsequent execution test works.\nac_rmfiles=\nfor ac_file in $ac_files\ndo\n  case $ac_file in\n    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;\n    * ) ac_rmfiles=\"$ac_rmfiles $ac_file\";;\n  esac\ndone\nrm -f $ac_rmfiles\n\nif { (ac_try=\"$ac_link_default\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link_default\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; then\n  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.\n# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'\n# in a Makefile.  We should not override ac_cv_exeext if it was cached,\n# so that the user can short-circuit this test for compilers unknown to\n# Autoconf.\nfor ac_file in $ac_files ''\ndo\n  test -f \"$ac_file\" || continue\n  case $ac_file in\n    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )\n\t;;\n    [ab].out )\n\t# We found the default executable, but exeext='' is most\n\t# certainly right.\n\tbreak;;\n    *.* )\n        if test \"${ac_cv_exeext+set}\" = set && test \"$ac_cv_exeext\" != no;\n\tthen :; else\n\t   ac_cv_exeext=`expr \"$ac_file\" : '[^.]*\\(\\..*\\)'`\n\tfi\n\t# We set ac_cv_exeext here because the later test for it is not\n\t# safe: cross compilers may not add the suffix if given an `-o'\n\t# argument, so we may need to know it at that point already.\n\t# Even if this section looks crufty: it has the advantage of\n\t# actually working.\n\tbreak;;\n    * )\n\tbreak;;\n  esac\ndone\ntest \"$ac_cv_exeext\" = no && ac_cv_exeext=\n\nelse\n  ac_file=''\nfi\n\n{ echo \"$as_me:$LINENO: result: $ac_file\" >&5\necho \"${ECHO_T}$ac_file\" >&6; }\nif test -z \"$ac_file\"; then\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n{ { echo \"$as_me:$LINENO: error: C compiler cannot create executables\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: C compiler cannot create executables\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 77); exit 77; }; }\nfi\n\nac_exeext=$ac_cv_exeext\n\n# Check that the compiler produces executables we can run.  If not, either\n# the compiler is broken, or we cross compile.\n{ echo \"$as_me:$LINENO: checking whether the C compiler works\" >&5\necho $ECHO_N \"checking whether the C compiler works... $ECHO_C\" >&6; }\n# FIXME: These cross compiler hacks should be removed for Autoconf 3.0\n# If not cross compiling, check that we can run a simple program.\nif test \"$cross_compiling\" != yes; then\n  if { ac_try='./$ac_file'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n    cross_compiling=no\n  else\n    if test \"$cross_compiling\" = maybe; then\n\tcross_compiling=yes\n    else\n\t{ { echo \"$as_me:$LINENO: error: cannot run C compiled programs.\nIf you meant to cross compile, use \\`--host'.\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: cannot run C compiled programs.\nIf you meant to cross compile, use \\`--host'.\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\n    fi\n  fi\nfi\n{ echo \"$as_me:$LINENO: result: yes\" >&5\necho \"${ECHO_T}yes\" >&6; }\n\nrm -f a.out a.exe conftest$ac_cv_exeext b.out\nac_clean_files=$ac_clean_files_save\n# Check that the compiler produces executables we can run.  If not, either\n# the compiler is broken, or we cross compile.\n{ echo \"$as_me:$LINENO: checking whether we are cross compiling\" >&5\necho $ECHO_N \"checking whether we are cross compiling... $ECHO_C\" >&6; }\n{ echo \"$as_me:$LINENO: result: $cross_compiling\" >&5\necho \"${ECHO_T}$cross_compiling\" >&6; }\n\n{ echo \"$as_me:$LINENO: checking for suffix of executables\" >&5\necho $ECHO_N \"checking for suffix of executables... $ECHO_C\" >&6; }\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; then\n  # If both `conftest.exe' and `conftest' are `present' (well, observable)\n# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will\n# work properly (i.e., refer to `conftest.exe'), while it won't with\n# `rm'.\nfor ac_file in conftest.exe conftest conftest.*; do\n  test -f \"$ac_file\" || continue\n  case $ac_file in\n    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;\n    *.* ) ac_cv_exeext=`expr \"$ac_file\" : '[^.]*\\(\\..*\\)'`\n\t  break;;\n    * ) break;;\n  esac\ndone\nelse\n  { { echo \"$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: cannot compute suffix of executables: cannot compile and link\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nrm -f conftest$ac_cv_exeext\n{ echo \"$as_me:$LINENO: result: $ac_cv_exeext\" >&5\necho \"${ECHO_T}$ac_cv_exeext\" >&6; }\n\nrm -f conftest.$ac_ext\nEXEEXT=$ac_cv_exeext\nac_exeext=$EXEEXT\n{ echo \"$as_me:$LINENO: checking for suffix of object files\" >&5\necho $ECHO_N \"checking for suffix of object files... $ECHO_C\" >&6; }\nif test \"${ac_cv_objext+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.o conftest.obj\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; then\n  for ac_file in conftest.o conftest.obj conftest.*; do\n  test -f \"$ac_file\" || continue;\n  case $ac_file in\n    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;\n    *) ac_cv_objext=`expr \"$ac_file\" : '.*\\.\\(.*\\)'`\n       break;;\n  esac\ndone\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n{ { echo \"$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: cannot compute suffix of object files: cannot compile\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nrm -f conftest.$ac_cv_objext conftest.$ac_ext\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_objext\" >&5\necho \"${ECHO_T}$ac_cv_objext\" >&6; }\nOBJEXT=$ac_cv_objext\nac_objext=$OBJEXT\n{ echo \"$as_me:$LINENO: checking whether we are using the GNU C compiler\" >&5\necho $ECHO_N \"checking whether we are using the GNU C compiler... $ECHO_C\" >&6; }\nif test \"${ac_cv_c_compiler_gnu+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n#ifndef __GNUC__\n       choke me\n#endif\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_compiler_gnu=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_compiler_gnu=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nac_cv_c_compiler_gnu=$ac_compiler_gnu\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_c_compiler_gnu\" >&5\necho \"${ECHO_T}$ac_cv_c_compiler_gnu\" >&6; }\nGCC=`test $ac_compiler_gnu = yes && echo yes`\nac_test_CFLAGS=${CFLAGS+set}\nac_save_CFLAGS=$CFLAGS\n{ echo \"$as_me:$LINENO: checking whether $CC accepts -g\" >&5\necho $ECHO_N \"checking whether $CC accepts -g... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_cc_g+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_save_c_werror_flag=$ac_c_werror_flag\n   ac_c_werror_flag=yes\n   ac_cv_prog_cc_g=no\n   CFLAGS=\"-g\"\n   cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cc_g=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tCFLAGS=\"\"\n      cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  :\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_c_werror_flag=$ac_save_c_werror_flag\n\t CFLAGS=\"-g\"\n\t cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cc_g=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n   ac_c_werror_flag=$ac_save_c_werror_flag\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_prog_cc_g\" >&5\necho \"${ECHO_T}$ac_cv_prog_cc_g\" >&6; }\nif test \"$ac_test_CFLAGS\" = set; then\n  CFLAGS=$ac_save_CFLAGS\nelif test $ac_cv_prog_cc_g = yes; then\n  if test \"$GCC\" = yes; then\n    CFLAGS=\"-g -O2\"\n  else\n    CFLAGS=\"-g\"\n  fi\nelse\n  if test \"$GCC\" = yes; then\n    CFLAGS=\"-O2\"\n  else\n    CFLAGS=\n  fi\nfi\n{ echo \"$as_me:$LINENO: checking for $CC option to accept ISO C89\" >&5\necho $ECHO_N \"checking for $CC option to accept ISO C89... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_cc_c89+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_cv_prog_cc_c89=no\nac_save_CC=$CC\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <stdarg.h>\n#include <stdio.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */\nstruct buf { int x; };\nFILE * (*rcsopen) (struct buf *, struct stat *, int);\nstatic char *e (p, i)\n     char **p;\n     int i;\n{\n  return p[i];\n}\nstatic char *f (char * (*g) (char **, int), char **p, ...)\n{\n  char *s;\n  va_list v;\n  va_start (v,p);\n  s = g (p, va_arg (v,int));\n  va_end (v);\n  return s;\n}\n\n/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has\n   function prototypes and stuff, but not '\\xHH' hex character constants.\n   These don't provoke an error unfortunately, instead are silently treated\n   as 'x'.  The following induces an error, until -std is added to get\n   proper ANSI mode.  Curiously '\\x00'!='x' always comes out true, for an\n   array size at least.  It's necessary to write '\\x00'==0 to get something\n   that's true only with -std.  */\nint osf4_cc_array ['\\x00' == 0 ? 1 : -1];\n\n/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters\n   inside strings and character constants.  */\n#define FOO(x) 'x'\nint xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];\n\nint test (int i, double x);\nstruct s1 {int (*f) (int a);};\nstruct s2 {int (*f) (double a);};\nint pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);\nint argc;\nchar **argv;\nint\nmain ()\n{\nreturn f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];\n  ;\n  return 0;\n}\n_ACEOF\nfor ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \\\n\t-Ae \"-Aa -D_HPUX_SOURCE\" \"-Xc -D__EXTENSIONS__\"\ndo\n  CC=\"$ac_save_CC $ac_arg\"\n  rm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cc_c89=$ac_arg\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\nfi\n\nrm -f core conftest.err conftest.$ac_objext\n  test \"x$ac_cv_prog_cc_c89\" != \"xno\" && break\ndone\nrm -f conftest.$ac_ext\nCC=$ac_save_CC\n\nfi\n# AC_CACHE_VAL\ncase \"x$ac_cv_prog_cc_c89\" in\n  x)\n    { echo \"$as_me:$LINENO: result: none needed\" >&5\necho \"${ECHO_T}none needed\" >&6; } ;;\n  xno)\n    { echo \"$as_me:$LINENO: result: unsupported\" >&5\necho \"${ECHO_T}unsupported\" >&6; } ;;\n  *)\n    CC=\"$CC $ac_cv_prog_cc_c89\"\n    { echo \"$as_me:$LINENO: result: $ac_cv_prog_cc_c89\" >&5\necho \"${ECHO_T}$ac_cv_prog_cc_c89\" >&6; } ;;\nesac\n\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n\nac_ext=cpp\nac_cpp='$CXXCPP $CPPFLAGS'\nac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_cxx_compiler_gnu\nif test -z \"$CXX\"; then\n  if test -n \"$CCC\"; then\n    CXX=$CCC\n  else\n    if test -n \"$ac_tool_prefix\"; then\n  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC\n  do\n    # Extract the first word of \"$ac_tool_prefix$ac_prog\", so it can be a program name with args.\nset dummy $ac_tool_prefix$ac_prog; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_CXX+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$CXX\"; then\n  ac_cv_prog_CXX=\"$CXX\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_CXX=\"$ac_tool_prefix$ac_prog\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nCXX=$ac_cv_prog_CXX\nif test -n \"$CXX\"; then\n  { echo \"$as_me:$LINENO: result: $CXX\" >&5\necho \"${ECHO_T}$CXX\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n    test -n \"$CXX\" && break\n  done\nfi\nif test -z \"$CXX\"; then\n  ac_ct_CXX=$CXX\n  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC\ndo\n  # Extract the first word of \"$ac_prog\", so it can be a program name with args.\nset dummy $ac_prog; ac_word=$2\n{ echo \"$as_me:$LINENO: checking for $ac_word\" >&5\necho $ECHO_N \"checking for $ac_word... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_ac_ct_CXX+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test -n \"$ac_ct_CXX\"; then\n  ac_cv_prog_ac_ct_CXX=\"$ac_ct_CXX\" # Let the user override the test.\nelse\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_exec_ext in '' $ac_executable_extensions; do\n  if { test -f \"$as_dir/$ac_word$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_word$ac_exec_ext\"; }; then\n    ac_cv_prog_ac_ct_CXX=\"$ac_prog\"\n    echo \"$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext\" >&5\n    break 2\n  fi\ndone\ndone\nIFS=$as_save_IFS\n\nfi\nfi\nac_ct_CXX=$ac_cv_prog_ac_ct_CXX\nif test -n \"$ac_ct_CXX\"; then\n  { echo \"$as_me:$LINENO: result: $ac_ct_CXX\" >&5\necho \"${ECHO_T}$ac_ct_CXX\" >&6; }\nelse\n  { echo \"$as_me:$LINENO: result: no\" >&5\necho \"${ECHO_T}no\" >&6; }\nfi\n\n\n  test -n \"$ac_ct_CXX\" && break\ndone\n\n  if test \"x$ac_ct_CXX\" = x; then\n    CXX=\"g++\"\n  else\n    case $cross_compiling:$ac_tool_warned in\nyes:)\n{ echo \"$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&5\necho \"$as_me: WARNING: In the future, Autoconf will not detect cross-tools\nwhose name does not start with the host triplet.  If you think this\nconfiguration is useful to you, please write to autoconf@gnu.org.\" >&2;}\nac_tool_warned=yes ;;\nesac\n    CXX=$ac_ct_CXX\n  fi\nfi\n\n  fi\nfi\n# Provide some information about the compiler.\necho \"$as_me:$LINENO: checking for C++ compiler version\" >&5\nac_compiler=`set X $ac_compile; echo $2`\n{ (ac_try=\"$ac_compiler --version >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler --version >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n{ (ac_try=\"$ac_compiler -v >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler -v >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n{ (ac_try=\"$ac_compiler -V >&5\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compiler -V >&5\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }\n\n{ echo \"$as_me:$LINENO: checking whether we are using the GNU C++ compiler\" >&5\necho $ECHO_N \"checking whether we are using the GNU C++ compiler... $ECHO_C\" >&6; }\nif test \"${ac_cv_cxx_compiler_gnu+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n#ifndef __GNUC__\n       choke me\n#endif\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_cxx_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_compiler_gnu=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_compiler_gnu=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nac_cv_cxx_compiler_gnu=$ac_compiler_gnu\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu\" >&5\necho \"${ECHO_T}$ac_cv_cxx_compiler_gnu\" >&6; }\nGXX=`test $ac_compiler_gnu = yes && echo yes`\nac_test_CXXFLAGS=${CXXFLAGS+set}\nac_save_CXXFLAGS=$CXXFLAGS\n{ echo \"$as_me:$LINENO: checking whether $CXX accepts -g\" >&5\necho $ECHO_N \"checking whether $CXX accepts -g... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_cxx_g+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_save_cxx_werror_flag=$ac_cxx_werror_flag\n   ac_cxx_werror_flag=yes\n   ac_cv_prog_cxx_g=no\n   CXXFLAGS=\"-g\"\n   cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_cxx_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cxx_g=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tCXXFLAGS=\"\"\n      cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_cxx_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  :\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cxx_werror_flag=$ac_save_cxx_werror_flag\n\t CXXFLAGS=\"-g\"\n\t cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_cxx_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_prog_cxx_g=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n   ac_cxx_werror_flag=$ac_save_cxx_werror_flag\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_prog_cxx_g\" >&5\necho \"${ECHO_T}$ac_cv_prog_cxx_g\" >&6; }\nif test \"$ac_test_CXXFLAGS\" = set; then\n  CXXFLAGS=$ac_save_CXXFLAGS\nelif test $ac_cv_prog_cxx_g = yes; then\n  if test \"$GXX\" = yes; then\n    CXXFLAGS=\"-g -O2\"\n  else\n    CXXFLAGS=\"-g\"\n  fi\nelse\n  if test \"$GXX\" = yes; then\n    CXXFLAGS=\"-O2\"\n  else\n    CXXFLAGS=\n  fi\nfi\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n\n\nac_aux_dir=\nfor ac_dir in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"; do\n  if test -f \"$ac_dir/install-sh\"; then\n    ac_aux_dir=$ac_dir\n    ac_install_sh=\"$ac_aux_dir/install-sh -c\"\n    break\n  elif test -f \"$ac_dir/install.sh\"; then\n    ac_aux_dir=$ac_dir\n    ac_install_sh=\"$ac_aux_dir/install.sh -c\"\n    break\n  elif test -f \"$ac_dir/shtool\"; then\n    ac_aux_dir=$ac_dir\n    ac_install_sh=\"$ac_aux_dir/shtool install -c\"\n    break\n  fi\ndone\nif test -z \"$ac_aux_dir\"; then\n  { { echo \"$as_me:$LINENO: error: cannot find install-sh or install.sh in \\\"$srcdir\\\" \\\"$srcdir/..\\\" \\\"$srcdir/../..\\\"\" >&5\necho \"$as_me: error: cannot find install-sh or install.sh in \\\"$srcdir\\\" \\\"$srcdir/..\\\" \\\"$srcdir/../..\\\"\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\n# These three variables are undocumented and unsupported,\n# and are intended to be withdrawn in a future Autoconf release.\n# They can cause serious problems if a builder's source tree is in a directory\n# whose full name contains unusual characters.\nac_config_guess=\"$SHELL $ac_aux_dir/config.guess\"  # Please don't use this var.\nac_config_sub=\"$SHELL $ac_aux_dir/config.sub\"  # Please don't use this var.\nac_configure=\"$SHELL $ac_aux_dir/configure\"  # Please don't use this var.\n\n\n# Find a good install program.  We prefer a C program (faster),\n# so one script is as good as another.  But avoid the broken or\n# incompatible versions:\n# SysV /etc/install, /usr/sbin/install\n# SunOS /usr/etc/install\n# IRIX /sbin/install\n# AIX /bin/install\n# AmigaOS /C/install, which installs bootblocks on floppy discs\n# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag\n# AFS /usr/afsws/bin/install, which mishandles nonexistent args\n# SVR4 /usr/ucb/install, which tries to use the nonexistent group \"staff\"\n# OS/2's system install, which has a completely different semantic\n# ./install, which can be erroneously created by make from ./install.sh.\n{ echo \"$as_me:$LINENO: checking for a BSD-compatible install\" >&5\necho $ECHO_N \"checking for a BSD-compatible install... $ECHO_C\" >&6; }\nif test -z \"$INSTALL\"; then\nif test \"${ac_cv_path_install+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  # Account for people who put trailing slashes in PATH elements.\ncase $as_dir/ in\n  ./ | .// | /cC/* | \\\n  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \\\n  ?:\\\\/os2\\\\/install\\\\/* | ?:\\\\/OS2\\\\/INSTALL\\\\/* | \\\n  /usr/ucb/* ) ;;\n  *)\n    # OSF1 and SCO ODT 3.0 have their own names for install.\n    # Don't use installbsd from OSF since it installs stuff as root\n    # by default.\n    for ac_prog in ginstall scoinst install; do\n      for ac_exec_ext in '' $ac_executable_extensions; do\n\tif { test -f \"$as_dir/$ac_prog$ac_exec_ext\" && $as_test_x \"$as_dir/$ac_prog$ac_exec_ext\"; }; then\n\t  if test $ac_prog = install &&\n\t    grep dspmsg \"$as_dir/$ac_prog$ac_exec_ext\" >/dev/null 2>&1; then\n\t    # AIX install.  It has an incompatible calling convention.\n\t    :\n\t  elif test $ac_prog = install &&\n\t    grep pwplus \"$as_dir/$ac_prog$ac_exec_ext\" >/dev/null 2>&1; then\n\t    # program-specific install script used by HP pwplus--don't use.\n\t    :\n\t  else\n\t    ac_cv_path_install=\"$as_dir/$ac_prog$ac_exec_ext -c\"\n\t    break 3\n\t  fi\n\tfi\n      done\n    done\n    ;;\nesac\ndone\nIFS=$as_save_IFS\n\n\nfi\n  if test \"${ac_cv_path_install+set}\" = set; then\n    INSTALL=$ac_cv_path_install\n  else\n    # As a last resort, use the slow shell script.  Don't cache a\n    # value for INSTALL within a source directory, because that will\n    # break other packages using the cache if that directory is\n    # removed, or if the value is a relative name.\n    INSTALL=$ac_install_sh\n  fi\nfi\n{ echo \"$as_me:$LINENO: result: $INSTALL\" >&5\necho \"${ECHO_T}$INSTALL\" >&6; }\n\n# Use test -z because SunOS4 sh mishandles braces in ${var-val}.\n# It thinks the first close brace ends the variable substitution.\ntest -z \"$INSTALL_PROGRAM\" && INSTALL_PROGRAM='${INSTALL}'\n\ntest -z \"$INSTALL_SCRIPT\" && INSTALL_SCRIPT='${INSTALL}'\n\ntest -z \"$INSTALL_DATA\" && INSTALL_DATA='${INSTALL} -m 644'\n\n\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n{ echo \"$as_me:$LINENO: checking how to run the C preprocessor\" >&5\necho $ECHO_N \"checking how to run the C preprocessor... $ECHO_C\" >&6; }\n# On Suns, sometimes $CPP names a directory.\nif test -n \"$CPP\" && test -d \"$CPP\"; then\n  CPP=\nfi\nif test -z \"$CPP\"; then\n  if test \"${ac_cv_prog_CPP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n      # Double quotes because CPP needs to be expanded\n    for CPP in \"$CC -E\" \"$CC -E -traditional-cpp\" \"/lib/cpp\"\n    do\n      ac_preproc_ok=false\nfor ac_c_preproc_warn_flag in '' yes\ndo\n  # Use a header file that comes with gcc, so configuring glibc\n  # with a fresh cross-compiler works.\n  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n  # <limits.h> exists even on freestanding compilers.\n  # On the NeXT, cc -E runs the code through the compiler's parser,\n  # not just through cpp. \"Syntax error\" is here to catch this case.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#ifdef __STDC__\n# include <limits.h>\n#else\n# include <assert.h>\n#endif\n\t\t     Syntax error\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  :\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  # Broken: fails on valid input.\ncontinue\nfi\n\nrm -f conftest.err conftest.$ac_ext\n\n  # OK, works on sane cases.  Now check whether nonexistent headers\n  # can be detected and how.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <ac_nonexistent.h>\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  # Broken: success on invalid input.\ncontinue\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  # Passes both tests.\nac_preproc_ok=:\nbreak\nfi\n\nrm -f conftest.err conftest.$ac_ext\n\ndone\n# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.\nrm -f conftest.err conftest.$ac_ext\nif $ac_preproc_ok; then\n  break\nfi\n\n    done\n    ac_cv_prog_CPP=$CPP\n\nfi\n  CPP=$ac_cv_prog_CPP\nelse\n  ac_cv_prog_CPP=$CPP\nfi\n{ echo \"$as_me:$LINENO: result: $CPP\" >&5\necho \"${ECHO_T}$CPP\" >&6; }\nac_preproc_ok=false\nfor ac_c_preproc_warn_flag in '' yes\ndo\n  # Use a header file that comes with gcc, so configuring glibc\n  # with a fresh cross-compiler works.\n  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n  # <limits.h> exists even on freestanding compilers.\n  # On the NeXT, cc -E runs the code through the compiler's parser,\n  # not just through cpp. \"Syntax error\" is here to catch this case.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#ifdef __STDC__\n# include <limits.h>\n#else\n# include <assert.h>\n#endif\n\t\t     Syntax error\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  :\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  # Broken: fails on valid input.\ncontinue\nfi\n\nrm -f conftest.err conftest.$ac_ext\n\n  # OK, works on sane cases.  Now check whether nonexistent headers\n  # can be detected and how.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <ac_nonexistent.h>\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  # Broken: success on invalid input.\ncontinue\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  # Passes both tests.\nac_preproc_ok=:\nbreak\nfi\n\nrm -f conftest.err conftest.$ac_ext\n\ndone\n# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.\nrm -f conftest.err conftest.$ac_ext\nif $ac_preproc_ok; then\n  :\nelse\n  { { echo \"$as_me:$LINENO: error: C preprocessor \\\"$CPP\\\" fails sanity check\nSee \\`config.log' for more details.\" >&5\necho \"$as_me: error: C preprocessor \\\"$CPP\\\" fails sanity check\nSee \\`config.log' for more details.\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nac_ext=c\nac_cpp='$CPP $CPPFLAGS'\nac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'\nac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'\nac_compiler_gnu=$ac_cv_c_compiler_gnu\n\n\n{ echo \"$as_me:$LINENO: checking for grep that handles long lines and -e\" >&5\necho $ECHO_N \"checking for grep that handles long lines and -e... $ECHO_C\" >&6; }\nif test \"${ac_cv_path_GREP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  # Extract the first word of \"grep ggrep\" to use in msg output\nif test -z \"$GREP\"; then\nset dummy grep ggrep; ac_prog_name=$2\nif test \"${ac_cv_path_GREP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_path_GREP_found=false\n# Loop through the user's path and test for each of PROGNAME-LIST\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_prog in grep ggrep; do\n  for ac_exec_ext in '' $ac_executable_extensions; do\n    ac_path_GREP=\"$as_dir/$ac_prog$ac_exec_ext\"\n    { test -f \"$ac_path_GREP\" && $as_test_x \"$ac_path_GREP\"; } || continue\n    # Check for GNU ac_path_GREP and select it if it is found.\n  # Check for GNU $ac_path_GREP\ncase `\"$ac_path_GREP\" --version 2>&1` in\n*GNU*)\n  ac_cv_path_GREP=\"$ac_path_GREP\" ac_path_GREP_found=:;;\n*)\n  ac_count=0\n  echo $ECHO_N \"0123456789$ECHO_C\" >\"conftest.in\"\n  while :\n  do\n    cat \"conftest.in\" \"conftest.in\" >\"conftest.tmp\"\n    mv \"conftest.tmp\" \"conftest.in\"\n    cp \"conftest.in\" \"conftest.nl\"\n    echo 'GREP' >> \"conftest.nl\"\n    \"$ac_path_GREP\" -e 'GREP$' -e '-(cannot match)-' < \"conftest.nl\" >\"conftest.out\" 2>/dev/null || break\n    diff \"conftest.out\" \"conftest.nl\" >/dev/null 2>&1 || break\n    ac_count=`expr $ac_count + 1`\n    if test $ac_count -gt ${ac_path_GREP_max-0}; then\n      # Best one so far, save it but keep looking for a better one\n      ac_cv_path_GREP=\"$ac_path_GREP\"\n      ac_path_GREP_max=$ac_count\n    fi\n    # 10*(2^10) chars as input seems more than enough\n    test $ac_count -gt 10 && break\n  done\n  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;\nesac\n\n\n    $ac_path_GREP_found && break 3\n  done\ndone\n\ndone\nIFS=$as_save_IFS\n\n\nfi\n\nGREP=\"$ac_cv_path_GREP\"\nif test -z \"$GREP\"; then\n  { { echo \"$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin\" >&5\necho \"$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nelse\n  ac_cv_path_GREP=$GREP\nfi\n\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_path_GREP\" >&5\necho \"${ECHO_T}$ac_cv_path_GREP\" >&6; }\n GREP=\"$ac_cv_path_GREP\"\n\n\n{ echo \"$as_me:$LINENO: checking for egrep\" >&5\necho $ECHO_N \"checking for egrep... $ECHO_C\" >&6; }\nif test \"${ac_cv_path_EGREP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1\n   then ac_cv_path_EGREP=\"$GREP -E\"\n   else\n     # Extract the first word of \"egrep\" to use in msg output\nif test -z \"$EGREP\"; then\nset dummy egrep; ac_prog_name=$2\nif test \"${ac_cv_path_EGREP+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_path_EGREP_found=false\n# Loop through the user's path and test for each of PROGNAME-LIST\nas_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  for ac_prog in egrep; do\n  for ac_exec_ext in '' $ac_executable_extensions; do\n    ac_path_EGREP=\"$as_dir/$ac_prog$ac_exec_ext\"\n    { test -f \"$ac_path_EGREP\" && $as_test_x \"$ac_path_EGREP\"; } || continue\n    # Check for GNU ac_path_EGREP and select it if it is found.\n  # Check for GNU $ac_path_EGREP\ncase `\"$ac_path_EGREP\" --version 2>&1` in\n*GNU*)\n  ac_cv_path_EGREP=\"$ac_path_EGREP\" ac_path_EGREP_found=:;;\n*)\n  ac_count=0\n  echo $ECHO_N \"0123456789$ECHO_C\" >\"conftest.in\"\n  while :\n  do\n    cat \"conftest.in\" \"conftest.in\" >\"conftest.tmp\"\n    mv \"conftest.tmp\" \"conftest.in\"\n    cp \"conftest.in\" \"conftest.nl\"\n    echo 'EGREP' >> \"conftest.nl\"\n    \"$ac_path_EGREP\" 'EGREP$' < \"conftest.nl\" >\"conftest.out\" 2>/dev/null || break\n    diff \"conftest.out\" \"conftest.nl\" >/dev/null 2>&1 || break\n    ac_count=`expr $ac_count + 1`\n    if test $ac_count -gt ${ac_path_EGREP_max-0}; then\n      # Best one so far, save it but keep looking for a better one\n      ac_cv_path_EGREP=\"$ac_path_EGREP\"\n      ac_path_EGREP_max=$ac_count\n    fi\n    # 10*(2^10) chars as input seems more than enough\n    test $ac_count -gt 10 && break\n  done\n  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;\nesac\n\n\n    $ac_path_EGREP_found && break 3\n  done\ndone\n\ndone\nIFS=$as_save_IFS\n\n\nfi\n\nEGREP=\"$ac_cv_path_EGREP\"\nif test -z \"$EGREP\"; then\n  { { echo \"$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin\" >&5\necho \"$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nelse\n  ac_cv_path_EGREP=$EGREP\nfi\n\n\n   fi\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_path_EGREP\" >&5\necho \"${ECHO_T}$ac_cv_path_EGREP\" >&6; }\n EGREP=\"$ac_cv_path_EGREP\"\n\n\nif test $ac_cv_c_compiler_gnu = yes; then\n    { echo \"$as_me:$LINENO: checking whether $CC needs -traditional\" >&5\necho $ECHO_N \"checking whether $CC needs -traditional... $ECHO_C\" >&6; }\nif test \"${ac_cv_prog_gcc_traditional+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n    ac_pattern=\"Autoconf.*'x'\"\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <sgtty.h>\nAutoconf TIOCGETP\n_ACEOF\nif (eval \"$ac_cpp conftest.$ac_ext\") 2>&5 |\n  $EGREP \"$ac_pattern\" >/dev/null 2>&1; then\n  ac_cv_prog_gcc_traditional=yes\nelse\n  ac_cv_prog_gcc_traditional=no\nfi\nrm -f conftest*\n\n\n  if test $ac_cv_prog_gcc_traditional = no; then\n    cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <termio.h>\nAutoconf TCGETA\n_ACEOF\nif (eval \"$ac_cpp conftest.$ac_ext\") 2>&5 |\n  $EGREP \"$ac_pattern\" >/dev/null 2>&1; then\n  ac_cv_prog_gcc_traditional=yes\nfi\nrm -f conftest*\n\n  fi\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional\" >&5\necho \"${ECHO_T}$ac_cv_prog_gcc_traditional\" >&6; }\n  if test $ac_cv_prog_gcc_traditional = yes; then\n    CC=\"$CC -traditional\"\n  fi\nfi\n\n{ echo \"$as_me:$LINENO: checking for ANSI C header files\" >&5\necho $ECHO_N \"checking for ANSI C header files... $ECHO_C\" >&6; }\nif test \"${ac_cv_header_stdc+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <stdlib.h>\n#include <stdarg.h>\n#include <string.h>\n#include <float.h>\n\nint\nmain ()\n{\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_header_stdc=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_header_stdc=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n\nif test $ac_cv_header_stdc = yes; then\n  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <string.h>\n\n_ACEOF\nif (eval \"$ac_cpp conftest.$ac_ext\") 2>&5 |\n  $EGREP \"memchr\" >/dev/null 2>&1; then\n  :\nelse\n  ac_cv_header_stdc=no\nfi\nrm -f conftest*\n\nfi\n\nif test $ac_cv_header_stdc = yes; then\n  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <stdlib.h>\n\n_ACEOF\nif (eval \"$ac_cpp conftest.$ac_ext\") 2>&5 |\n  $EGREP \"free\" >/dev/null 2>&1; then\n  :\nelse\n  ac_cv_header_stdc=no\nfi\nrm -f conftest*\n\nfi\n\nif test $ac_cv_header_stdc = yes; then\n  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.\n  if test \"$cross_compiling\" = yes; then\n  :\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <ctype.h>\n#include <stdlib.h>\n#if ((' ' & 0x0FF) == 0x020)\n# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')\n# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))\n#else\n# define ISLOWER(c) \\\n\t\t   (('a' <= (c) && (c) <= 'i') \\\n\t\t     || ('j' <= (c) && (c) <= 'r') \\\n\t\t     || ('s' <= (c) && (c) <= 'z'))\n# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))\n#endif\n\n#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))\nint\nmain ()\n{\n  int i;\n  for (i = 0; i < 256; i++)\n    if (XOR (islower (i), ISLOWER (i))\n\t|| toupper (i) != TOUPPER (i))\n      return 2;\n  return 0;\n}\n_ACEOF\nrm -f conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n  :\nelse\n  echo \"$as_me: program exited with status $ac_status\" >&5\necho \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n( exit $ac_status )\nac_cv_header_stdc=no\nfi\nrm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext\nfi\n\n\nfi\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_header_stdc\" >&5\necho \"${ECHO_T}$ac_cv_header_stdc\" >&6; }\nif test $ac_cv_header_stdc = yes; then\n\ncat >>confdefs.h <<\\_ACEOF\n#define STDC_HEADERS 1\n_ACEOF\n\nfi\n\n# On IRIX 5.3, sys/types and inttypes.h are conflicting.\n\n\n\n\n\n\n\n\n\nfor ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \\\n\t\t  inttypes.h stdint.h unistd.h\ndo\nas_ac_Header=`echo \"ac_cv_header_$ac_header\" | $as_tr_sh`\n{ echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n$ac_includes_default\n\n#include <$ac_header>\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  eval \"$as_ac_Header=yes\"\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\teval \"$as_ac_Header=no\"\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\nif test `eval echo '${'$as_ac_Header'}'` = yes; then\n  cat >>confdefs.h <<_ACEOF\n#define `echo \"HAVE_$ac_header\" | $as_tr_cpp` 1\n_ACEOF\n\nfi\n\ndone\n\n\n{ echo \"$as_me:$LINENO: checking for working memcmp\" >&5\necho $ECHO_N \"checking for working memcmp... $ECHO_C\" >&6; }\nif test \"${ac_cv_func_memcmp_working+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test \"$cross_compiling\" = yes; then\n  ac_cv_func_memcmp_working=no\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n$ac_includes_default\nint\nmain ()\n{\n\n  /* Some versions of memcmp are not 8-bit clean.  */\n  char c0 = '\\100', c1 = '\\200', c2 = '\\201';\n  if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)\n    return 1;\n\n  /* The Next x86 OpenStep bug shows up only when comparing 16 bytes\n     or more and with at least one buffer not starting on a 4-byte boundary.\n     William Lewis provided this test program.   */\n  {\n    char foo[21];\n    char bar[21];\n    int i;\n    for (i = 0; i < 4; i++)\n      {\n\tchar *a = foo + i;\n\tchar *b = bar + i;\n\tstrcpy (a, \"--------01111111\");\n\tstrcpy (b, \"--------10000000\");\n\tif (memcmp (a, b, 16) >= 0)\n\t  return 1;\n      }\n    return 0;\n  }\n\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n  ac_cv_func_memcmp_working=yes\nelse\n  echo \"$as_me: program exited with status $ac_status\" >&5\necho \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n( exit $ac_status )\nac_cv_func_memcmp_working=no\nfi\nrm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext\nfi\n\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func_memcmp_working\" >&5\necho \"${ECHO_T}$ac_cv_func_memcmp_working\" >&6; }\ntest $ac_cv_func_memcmp_working = no && case \" $LIBOBJS \" in\n  *\" memcmp.$ac_objext \"* ) ;;\n  *) LIBOBJS=\"$LIBOBJS memcmp.$ac_objext\"\n ;;\nesac\n\n\n\nfor ac_header in stdlib.h\ndo\nas_ac_Header=`echo \"ac_cv_header_$ac_header\" | $as_tr_sh`\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  { echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\nelse\n  # Is the header compilable?\n{ echo \"$as_me:$LINENO: checking $ac_header usability\" >&5\necho $ECHO_N \"checking $ac_header usability... $ECHO_C\" >&6; }\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n$ac_includes_default\n#include <$ac_header>\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_header_compiler=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_header_compiler=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n{ echo \"$as_me:$LINENO: result: $ac_header_compiler\" >&5\necho \"${ECHO_T}$ac_header_compiler\" >&6; }\n\n# Is the header present?\n{ echo \"$as_me:$LINENO: checking $ac_header presence\" >&5\necho $ECHO_N \"checking $ac_header presence... $ECHO_C\" >&6; }\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <$ac_header>\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  ac_header_preproc=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  ac_header_preproc=no\nfi\n\nrm -f conftest.err conftest.$ac_ext\n{ echo \"$as_me:$LINENO: result: $ac_header_preproc\" >&5\necho \"${ECHO_T}$ac_header_preproc\" >&6; }\n\n# So?  What about this header?\ncase $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in\n  yes:no: )\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!\" >&5\necho \"$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result\" >&5\necho \"$as_me: WARNING: $ac_header: proceeding with the compiler's result\" >&2;}\n    ac_header_preproc=yes\n    ;;\n  no:yes:* )\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled\" >&5\necho \"$as_me: WARNING: $ac_header: present but cannot be compiled\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?\" >&5\necho \"$as_me: WARNING: $ac_header:     check for missing prerequisite headers?\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation\" >&5\necho \"$as_me: WARNING: $ac_header: see the Autoconf documentation\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header:     section \\\"Present But Cannot Be Compiled\\\"\" >&5\necho \"$as_me: WARNING: $ac_header:     section \\\"Present But Cannot Be Compiled\\\"\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result\" >&5\necho \"$as_me: WARNING: $ac_header: proceeding with the preprocessor's result\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence\" >&5\necho \"$as_me: WARNING: $ac_header: in the future, the compiler will take precedence\" >&2;}\n\n    ;;\nesac\n{ echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  eval \"$as_ac_Header=\\$ac_header_preproc\"\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\n\nfi\nif test `eval echo '${'$as_ac_Header'}'` = yes; then\n  cat >>confdefs.h <<_ACEOF\n#define `echo \"HAVE_$ac_header\" | $as_tr_cpp` 1\n_ACEOF\n\nfi\n\ndone\n\n{ echo \"$as_me:$LINENO: checking for GNU libc compatible malloc\" >&5\necho $ECHO_N \"checking for GNU libc compatible malloc... $ECHO_C\" >&6; }\nif test \"${ac_cv_func_malloc_0_nonnull+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test \"$cross_compiling\" = yes; then\n  ac_cv_func_malloc_0_nonnull=no\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#if defined STDC_HEADERS || defined HAVE_STDLIB_H\n# include <stdlib.h>\n#else\nchar *malloc ();\n#endif\n\nint\nmain ()\n{\nreturn ! malloc (0);\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n  ac_cv_func_malloc_0_nonnull=yes\nelse\n  echo \"$as_me: program exited with status $ac_status\" >&5\necho \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n( exit $ac_status )\nac_cv_func_malloc_0_nonnull=no\nfi\nrm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext\nfi\n\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull\" >&5\necho \"${ECHO_T}$ac_cv_func_malloc_0_nonnull\" >&6; }\nif test $ac_cv_func_malloc_0_nonnull = yes; then\n\ncat >>confdefs.h <<\\_ACEOF\n#define HAVE_MALLOC 1\n_ACEOF\n\nelse\n  cat >>confdefs.h <<\\_ACEOF\n#define HAVE_MALLOC 0\n_ACEOF\n\n   case \" $LIBOBJS \" in\n  *\" malloc.$ac_objext \"* ) ;;\n  *) LIBOBJS=\"$LIBOBJS malloc.$ac_objext\"\n ;;\nesac\n\n\ncat >>confdefs.h <<\\_ACEOF\n#define malloc rpl_malloc\n_ACEOF\n\nfi\n\n\n\n{ echo \"$as_me:$LINENO: checking for working strtod\" >&5\necho $ECHO_N \"checking for working strtod... $ECHO_C\" >&6; }\nif test \"${ac_cv_func_strtod+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test \"$cross_compiling\" = yes; then\n  ac_cv_func_strtod=no\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\n$ac_includes_default\n#ifndef strtod\ndouble strtod ();\n#endif\nint\nmain()\n{\n  {\n    /* Some versions of Linux strtod mis-parse strings with leading '+'.  */\n    char *string = \" +69\";\n    char *term;\n    double value;\n    value = strtod (string, &term);\n    if (value != 69 || term != (string + 4))\n      return 1;\n  }\n\n  {\n    /* Under Solaris 2.4, strtod returns the wrong value for the\n       terminating character under some conditions.  */\n    char *string = \"NaN\";\n    char *term;\n    strtod (string, &term);\n    if (term != string && *(term - 1) == 0)\n      return 1;\n  }\n  return 0;\n}\n\n_ACEOF\nrm -f conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'\n  { (case \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_try\") 2>&5\n  ac_status=$?\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); }; }; then\n  ac_cv_func_strtod=yes\nelse\n  echo \"$as_me: program exited with status $ac_status\" >&5\necho \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n( exit $ac_status )\nac_cv_func_strtod=no\nfi\nrm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext\nfi\n\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func_strtod\" >&5\necho \"${ECHO_T}$ac_cv_func_strtod\" >&6; }\nif test $ac_cv_func_strtod = no; then\n  case \" $LIBOBJS \" in\n  *\" strtod.$ac_objext \"* ) ;;\n  *) LIBOBJS=\"$LIBOBJS strtod.$ac_objext\"\n ;;\nesac\n\n{ echo \"$as_me:$LINENO: checking for pow\" >&5\necho $ECHO_N \"checking for pow... $ECHO_C\" >&6; }\nif test \"${ac_cv_func_pow+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n/* Define pow to an innocuous variant, in case <limits.h> declares pow.\n   For example, HP-UX 11i <limits.h> declares gettimeofday.  */\n#define pow innocuous_pow\n\n/* System header to define __stub macros and hopefully few prototypes,\n    which can conflict with char pow (); below.\n    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n    <limits.h> exists even on freestanding compilers.  */\n\n#ifdef __STDC__\n# include <limits.h>\n#else\n# include <assert.h>\n#endif\n\n#undef pow\n\n/* Override any GCC internal prototype to avoid an error.\n   Use char because int might match the return type of a GCC\n   builtin and then its argument prototype would still apply.  */\n#ifdef __cplusplus\nextern \"C\"\n#endif\nchar pow ();\n/* The GNU C library defines this for functions which it implements\n    to always fail with ENOSYS.  Some functions are actually named\n    something starting with __ and the normal name is an alias.  */\n#if defined __stub_pow || defined __stub___pow\nchoke me\n#endif\n\nint\nmain ()\n{\nreturn pow ();\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest$ac_exeext &&\n       $as_test_x conftest$ac_exeext; then\n  ac_cv_func_pow=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_func_pow=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \\\n      conftest$ac_exeext conftest.$ac_ext\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func_pow\" >&5\necho \"${ECHO_T}$ac_cv_func_pow\" >&6; }\n\nif test $ac_cv_func_pow = no; then\n  { echo \"$as_me:$LINENO: checking for pow in -lm\" >&5\necho $ECHO_N \"checking for pow in -lm... $ECHO_C\" >&6; }\nif test \"${ac_cv_lib_m_pow+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_check_lib_save_LIBS=$LIBS\nLIBS=\"-lm  $LIBS\"\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n\n/* Override any GCC internal prototype to avoid an error.\n   Use char because int might match the return type of a GCC\n   builtin and then its argument prototype would still apply.  */\n#ifdef __cplusplus\nextern \"C\"\n#endif\nchar pow ();\nint\nmain ()\n{\nreturn pow ();\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest$ac_exeext &&\n       $as_test_x conftest$ac_exeext; then\n  ac_cv_lib_m_pow=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_lib_m_pow=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \\\n      conftest$ac_exeext conftest.$ac_ext\nLIBS=$ac_check_lib_save_LIBS\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_lib_m_pow\" >&5\necho \"${ECHO_T}$ac_cv_lib_m_pow\" >&6; }\nif test $ac_cv_lib_m_pow = yes; then\n  POW_LIB=-lm\nelse\n  { echo \"$as_me:$LINENO: WARNING: cannot find library containing definition of pow\" >&5\necho \"$as_me: WARNING: cannot find library containing definition of pow\" >&2;}\nfi\n\nfi\n\nfi\n\n{ echo \"$as_me:$LINENO: checking return type of signal handlers\" >&5\necho $ECHO_N \"checking return type of signal handlers... $ECHO_C\" >&6; }\nif test \"${ac_cv_type_signal+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <sys/types.h>\n#include <signal.h>\n\nint\nmain ()\n{\nreturn *(signal (0, 0)) (0) == 1;\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_cv_type_signal=int\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_type_signal=void\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_type_signal\" >&5\necho \"${ECHO_T}$ac_cv_type_signal\" >&6; }\n\ncat >>confdefs.h <<_ACEOF\n#define RETSIGTYPE $ac_cv_type_signal\n_ACEOF\n\n\n\nfor ac_func in vprintf\ndo\nas_ac_var=`echo \"ac_cv_func_$ac_func\" | $as_tr_sh`\n{ echo \"$as_me:$LINENO: checking for $ac_func\" >&5\necho $ECHO_N \"checking for $ac_func... $ECHO_C\" >&6; }\nif { as_var=$as_ac_var; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.\n   For example, HP-UX 11i <limits.h> declares gettimeofday.  */\n#define $ac_func innocuous_$ac_func\n\n/* System header to define __stub macros and hopefully few prototypes,\n    which can conflict with char $ac_func (); below.\n    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n    <limits.h> exists even on freestanding compilers.  */\n\n#ifdef __STDC__\n# include <limits.h>\n#else\n# include <assert.h>\n#endif\n\n#undef $ac_func\n\n/* Override any GCC internal prototype to avoid an error.\n   Use char because int might match the return type of a GCC\n   builtin and then its argument prototype would still apply.  */\n#ifdef __cplusplus\nextern \"C\"\n#endif\nchar $ac_func ();\n/* The GNU C library defines this for functions which it implements\n    to always fail with ENOSYS.  Some functions are actually named\n    something starting with __ and the normal name is an alias.  */\n#if defined __stub_$ac_func || defined __stub___$ac_func\nchoke me\n#endif\n\nint\nmain ()\n{\nreturn $ac_func ();\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest$ac_exeext &&\n       $as_test_x conftest$ac_exeext; then\n  eval \"$as_ac_var=yes\"\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\teval \"$as_ac_var=no\"\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \\\n      conftest$ac_exeext conftest.$ac_ext\nfi\nac_res=`eval echo '${'$as_ac_var'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\nif test `eval echo '${'$as_ac_var'}'` = yes; then\n  cat >>confdefs.h <<_ACEOF\n#define `echo \"HAVE_$ac_func\" | $as_tr_cpp` 1\n_ACEOF\n\n{ echo \"$as_me:$LINENO: checking for _doprnt\" >&5\necho $ECHO_N \"checking for _doprnt... $ECHO_C\" >&6; }\nif test \"${ac_cv_func__doprnt+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  cat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n/* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt.\n   For example, HP-UX 11i <limits.h> declares gettimeofday.  */\n#define _doprnt innocuous__doprnt\n\n/* System header to define __stub macros and hopefully few prototypes,\n    which can conflict with char _doprnt (); below.\n    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since\n    <limits.h> exists even on freestanding compilers.  */\n\n#ifdef __STDC__\n# include <limits.h>\n#else\n# include <assert.h>\n#endif\n\n#undef _doprnt\n\n/* Override any GCC internal prototype to avoid an error.\n   Use char because int might match the return type of a GCC\n   builtin and then its argument prototype would still apply.  */\n#ifdef __cplusplus\nextern \"C\"\n#endif\nchar _doprnt ();\n/* The GNU C library defines this for functions which it implements\n    to always fail with ENOSYS.  Some functions are actually named\n    something starting with __ and the normal name is an alias.  */\n#if defined __stub__doprnt || defined __stub____doprnt\nchoke me\n#endif\n\nint\nmain ()\n{\nreturn _doprnt ();\n  ;\n  return 0;\n}\n_ACEOF\nrm -f conftest.$ac_objext conftest$ac_exeext\nif { (ac_try=\"$ac_link\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_link\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest$ac_exeext &&\n       $as_test_x conftest$ac_exeext; then\n  ac_cv_func__doprnt=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_cv_func__doprnt=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \\\n      conftest$ac_exeext conftest.$ac_ext\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_func__doprnt\" >&5\necho \"${ECHO_T}$ac_cv_func__doprnt\" >&6; }\nif test $ac_cv_func__doprnt = yes; then\n\ncat >>confdefs.h <<\\_ACEOF\n#define HAVE_DOPRNT 1\n_ACEOF\n\nfi\n\nfi\ndone\n\n\n\n# Make sure we can run config.sub.\n$SHELL \"$ac_aux_dir/config.sub\" sun4 >/dev/null 2>&1 ||\n  { { echo \"$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub\" >&5\necho \"$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub\" >&2;}\n   { (exit 1); exit 1; }; }\n\n{ echo \"$as_me:$LINENO: checking build system type\" >&5\necho $ECHO_N \"checking build system type... $ECHO_C\" >&6; }\nif test \"${ac_cv_build+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  ac_build_alias=$build_alias\ntest \"x$ac_build_alias\" = x &&\n  ac_build_alias=`$SHELL \"$ac_aux_dir/config.guess\"`\ntest \"x$ac_build_alias\" = x &&\n  { { echo \"$as_me:$LINENO: error: cannot guess build type; you must specify one\" >&5\necho \"$as_me: error: cannot guess build type; you must specify one\" >&2;}\n   { (exit 1); exit 1; }; }\nac_cv_build=`$SHELL \"$ac_aux_dir/config.sub\" $ac_build_alias` ||\n  { { echo \"$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed\" >&5\necho \"$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed\" >&2;}\n   { (exit 1); exit 1; }; }\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_build\" >&5\necho \"${ECHO_T}$ac_cv_build\" >&6; }\ncase $ac_cv_build in\n*-*-*) ;;\n*) { { echo \"$as_me:$LINENO: error: invalid value of canonical build\" >&5\necho \"$as_me: error: invalid value of canonical build\" >&2;}\n   { (exit 1); exit 1; }; };;\nesac\nbuild=$ac_cv_build\nac_save_IFS=$IFS; IFS='-'\nset x $ac_cv_build\nshift\nbuild_cpu=$1\nbuild_vendor=$2\nshift; shift\n# Remember, the first character of IFS is used to create $*,\n# except with old shells:\nbuild_os=$*\nIFS=$ac_save_IFS\ncase $build_os in *\\ *) build_os=`echo \"$build_os\" | sed 's/ /-/g'`;; esac\n\n\n{ echo \"$as_me:$LINENO: checking host system type\" >&5\necho $ECHO_N \"checking host system type... $ECHO_C\" >&6; }\nif test \"${ac_cv_host+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  if test \"x$host_alias\" = x; then\n  ac_cv_host=$ac_cv_build\nelse\n  ac_cv_host=`$SHELL \"$ac_aux_dir/config.sub\" $host_alias` ||\n    { { echo \"$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed\" >&5\necho \"$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed\" >&2;}\n   { (exit 1); exit 1; }; }\nfi\n\nfi\n{ echo \"$as_me:$LINENO: result: $ac_cv_host\" >&5\necho \"${ECHO_T}$ac_cv_host\" >&6; }\ncase $ac_cv_host in\n*-*-*) ;;\n*) { { echo \"$as_me:$LINENO: error: invalid value of canonical host\" >&5\necho \"$as_me: error: invalid value of canonical host\" >&2;}\n   { (exit 1); exit 1; }; };;\nesac\nhost=$ac_cv_host\nac_save_IFS=$IFS; IFS='-'\nset x $ac_cv_host\nshift\nhost_cpu=$1\nhost_vendor=$2\nshift; shift\n# Remember, the first character of IFS is used to create $*,\n# except with old shells:\nhost_os=$*\nIFS=$ac_save_IFS\ncase $host_os in *\\ *) host_os=`echo \"$host_os\" | sed 's/ /-/g'`;; esac\n\n\n\n\n# Check whether --with-jplex was given.\nif test \"${with_jplex+set}\" = set; then\n  withval=$with_jplex; jplex_path=$withval\nfi\n\nif test  -n \"$jplex_path\"  ; then\nJPLEX_PATH=\"${jplex_path}\"\nelse\nJPLEX_PATH=\"${HOME}/plex3/jplex.jar\"\nfi\n\n\necho \"\\`jplex.path\\` <- \\\"${JPLEX_PATH}\\\";\" > R/config.R\n\n: ${R_HOME=`R RHOME`}\nif test -z \"${R_HOME}\"; then\necho \"could not determine R_HOME\"\nexit 1\nfi\n\nCC=`\"${R_HOME}/bin/R\" CMD config CC`\nCFLAGS=`\"${R_HOME}/bin/R\" CMD config CFLAGS`\nJAVA_HOME=`\"${R_HOME}/bin/R\" CMD config JAVA_HOME`\nJAVA_LIBS=`\"${R_HOME}/bin/R\" CMD config JAVA_LIBS`\nJAVA_CPPFLAGS=`\"${R_HOME}/bin/R\" CMD config JAVA_CPPFLAGS`\n\n\nJAVA_LD_LIBRARY_PATH=`grep -e \"^JAVA_LD_LIBRARY_PATH = \" ${R_HOME}/etc/Makeconf | awk '{print $3}'`\n\nCPPFLAGS=\"${JAVA_CPPFLAGS} ${CPPFLAGS}\"\n\nLIBS=\"${JAVA_LIBS} -Wl,-rpath,${JAVA_LD_LIBRARY_PATH} ${LIBS}\"\n\n\n\n\n\n\n\nfor ac_header in jni.h\ndo\nas_ac_Header=`echo \"ac_cv_header_$ac_header\" | $as_tr_sh`\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  { echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\nelse\n  # Is the header compilable?\n{ echo \"$as_me:$LINENO: checking $ac_header usability\" >&5\necho $ECHO_N \"checking $ac_header usability... $ECHO_C\" >&6; }\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n$ac_includes_default\n#include <$ac_header>\n_ACEOF\nrm -f conftest.$ac_objext\nif { (ac_try=\"$ac_compile\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_compile\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } && {\n\t test -z \"$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       } && test -s conftest.$ac_objext; then\n  ac_header_compiler=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n\tac_header_compiler=no\nfi\n\nrm -f core conftest.err conftest.$ac_objext conftest.$ac_ext\n{ echo \"$as_me:$LINENO: result: $ac_header_compiler\" >&5\necho \"${ECHO_T}$ac_header_compiler\" >&6; }\n\n# Is the header present?\n{ echo \"$as_me:$LINENO: checking $ac_header presence\" >&5\necho $ECHO_N \"checking $ac_header presence... $ECHO_C\" >&6; }\ncat >conftest.$ac_ext <<_ACEOF\n/* confdefs.h.  */\n_ACEOF\ncat confdefs.h >>conftest.$ac_ext\ncat >>conftest.$ac_ext <<_ACEOF\n/* end confdefs.h.  */\n#include <$ac_header>\n_ACEOF\nif { (ac_try=\"$ac_cpp conftest.$ac_ext\"\ncase \"(($ac_try\" in\n  *\\\"* | *\\`* | *\\\\*) ac_try_echo=\\$ac_try;;\n  *) ac_try_echo=$ac_try;;\nesac\neval \"echo \\\"\\$as_me:$LINENO: $ac_try_echo\\\"\") >&5\n  (eval \"$ac_cpp conftest.$ac_ext\") 2>conftest.er1\n  ac_status=$?\n  grep -v '^ *+' conftest.er1 >conftest.err\n  rm -f conftest.er1\n  cat conftest.err >&5\n  echo \"$as_me:$LINENO: \\$? = $ac_status\" >&5\n  (exit $ac_status); } >/dev/null && {\n\t test -z \"$ac_c_preproc_warn_flag$ac_c_werror_flag\" ||\n\t test ! -s conftest.err\n       }; then\n  ac_header_preproc=yes\nelse\n  echo \"$as_me: failed program was:\" >&5\nsed 's/^/| /' conftest.$ac_ext >&5\n\n  ac_header_preproc=no\nfi\n\nrm -f conftest.err conftest.$ac_ext\n{ echo \"$as_me:$LINENO: result: $ac_header_preproc\" >&5\necho \"${ECHO_T}$ac_header_preproc\" >&6; }\n\n# So?  What about this header?\ncase $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in\n  yes:no: )\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!\" >&5\necho \"$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result\" >&5\necho \"$as_me: WARNING: $ac_header: proceeding with the compiler's result\" >&2;}\n    ac_header_preproc=yes\n    ;;\n  no:yes:* )\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled\" >&5\necho \"$as_me: WARNING: $ac_header: present but cannot be compiled\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?\" >&5\necho \"$as_me: WARNING: $ac_header:     check for missing prerequisite headers?\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation\" >&5\necho \"$as_me: WARNING: $ac_header: see the Autoconf documentation\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header:     section \\\"Present But Cannot Be Compiled\\\"\" >&5\necho \"$as_me: WARNING: $ac_header:     section \\\"Present But Cannot Be Compiled\\\"\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result\" >&5\necho \"$as_me: WARNING: $ac_header: proceeding with the preprocessor's result\" >&2;}\n    { echo \"$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence\" >&5\necho \"$as_me: WARNING: $ac_header: in the future, the compiler will take precedence\" >&2;}\n\n    ;;\nesac\n{ echo \"$as_me:$LINENO: checking for $ac_header\" >&5\necho $ECHO_N \"checking for $ac_header... $ECHO_C\" >&6; }\nif { as_var=$as_ac_Header; eval \"test \\\"\\${$as_var+set}\\\" = set\"; }; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  eval \"$as_ac_Header=\\$ac_header_preproc\"\nfi\nac_res=`eval echo '${'$as_ac_Header'}'`\n\t       { echo \"$as_me:$LINENO: result: $ac_res\" >&5\necho \"${ECHO_T}$ac_res\" >&6; }\n\nfi\nif test `eval echo '${'$as_ac_Header'}'` = yes; then\n  cat >>confdefs.h <<_ACEOF\n#define `echo \"HAVE_$ac_header\" | $as_tr_cpp` 1\n_ACEOF\n\nfi\n\ndone\n\n\tif test \"${ac_cv_header_jni_h}\" = no ; then\n\t{ { echo \"$as_me:$LINENO: error: \\\"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \\\"\" >&5\necho \"$as_me: error: \\\"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \\\"\" >&2;}\n   { (exit 1); exit 1; }; }\n\tfi\n\nac_config_files=\"$ac_config_files src/Makevars\"\n\ncat >confcache <<\\_ACEOF\n# This file is a shell script that caches the results of configure\n# tests run on this system so they can be shared between configure\n# scripts and configure runs, see configure's option --config-cache.\n# It is not useful on other systems.  If it contains results you don't\n# want to keep, you may remove or edit it.\n#\n# config.status only pays attention to the cache file if you give it\n# the --recheck option to rerun configure.\n#\n# `ac_cv_env_foo' variables (set or unset) will be overridden when\n# loading this file, other *unset* `ac_cv_foo' will be assigned the\n# following values.\n\n_ACEOF\n\n# The following way of writing the cache mishandles newlines in values,\n# but we know of no workaround that is simple, portable, and efficient.\n# So, we kill variables containing newlines.\n# Ultrix sh set writes to stderr and can't be redirected directly,\n# and sets the high bit in the cache file unless we assign to the vars.\n(\n  for ac_var in `(set) 2>&1 | sed -n 's/^\\([a-zA-Z_][a-zA-Z0-9_]*\\)=.*/\\1/p'`; do\n    eval ac_val=\\$$ac_var\n    case $ac_val in #(\n    *${as_nl}*)\n      case $ac_var in #(\n      *_cv_*) { echo \"$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline.\" >&5\necho \"$as_me: WARNING: Cache variable $ac_var contains a newline.\" >&2;} ;;\n      esac\n      case $ac_var in #(\n      _ | IFS | as_nl) ;; #(\n      *) $as_unset $ac_var ;;\n      esac ;;\n    esac\n  done\n\n  (set) 2>&1 |\n    case $as_nl`(ac_space=' '; set) 2>&1` in #(\n    *${as_nl}ac_space=\\ *)\n      # `set' does not quote correctly, so add quotes (double-quote\n      # substitution turns \\\\\\\\ into \\\\, and sed turns \\\\ into \\).\n      sed -n \\\n\t\"s/'/'\\\\\\\\''/g;\n\t  s/^\\\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\\\)=\\\\(.*\\\\)/\\\\1='\\\\2'/p\"\n      ;; #(\n    *)\n      # `set' quotes correctly as required by POSIX, so do not add quotes.\n      sed -n \"/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p\"\n      ;;\n    esac |\n    sort\n) |\n  sed '\n     /^ac_cv_env_/b end\n     t clear\n     :clear\n     s/^\\([^=]*\\)=\\(.*[{}].*\\)$/test \"${\\1+set}\" = set || &/\n     t end\n     s/^\\([^=]*\\)=\\(.*\\)$/\\1=${\\1=\\2}/\n     :end' >>confcache\nif diff \"$cache_file\" confcache >/dev/null 2>&1; then :; else\n  if test -w \"$cache_file\"; then\n    test \"x$cache_file\" != \"x/dev/null\" &&\n      { echo \"$as_me:$LINENO: updating cache $cache_file\" >&5\necho \"$as_me: updating cache $cache_file\" >&6;}\n    cat confcache >$cache_file\n  else\n    { echo \"$as_me:$LINENO: not updating unwritable cache $cache_file\" >&5\necho \"$as_me: not updating unwritable cache $cache_file\" >&6;}\n  fi\nfi\nrm -f confcache\n\ntest \"x$prefix\" = xNONE && prefix=$ac_default_prefix\n# Let make expand exec_prefix.\ntest \"x$exec_prefix\" = xNONE && exec_prefix='${prefix}'\n\n# Transform confdefs.h into DEFS.\n# Protect against shell expansion while executing Makefile rules.\n# Protect against Makefile macro expansion.\n#\n# If the first sed substitution is executed (which looks for macros that\n# take arguments), then branch to the quote section.  Otherwise,\n# look for a macro that doesn't take arguments.\nac_script='\nt clear\n:clear\ns/^[\t ]*#[\t ]*define[\t ][\t ]*\\([^\t (][^\t (]*([^)]*)\\)[\t ]*\\(.*\\)/-D\\1=\\2/g\nt quote\ns/^[\t ]*#[\t ]*define[\t ][\t ]*\\([^\t ][^\t ]*\\)[\t ]*\\(.*\\)/-D\\1=\\2/g\nt quote\nb any\n:quote\ns/[\t `~#$^&*(){}\\\\|;'\\''\"<>?]/\\\\&/g\ns/\\[/\\\\&/g\ns/\\]/\\\\&/g\ns/\\$/$$/g\nH\n:any\n${\n\tg\n\ts/^\\n//\n\ts/\\n/ /g\n\tp\n}\n'\nDEFS=`sed -n \"$ac_script\" confdefs.h`\n\n\nac_libobjs=\nac_ltlibobjs=\nfor ac_i in : $LIBOBJS; do test \"x$ac_i\" = x: && continue\n  # 1. Remove the extension, and $U if already installed.\n  ac_script='s/\\$U\\././;s/\\.o$//;s/\\.obj$//'\n  ac_i=`echo \"$ac_i\" | sed \"$ac_script\"`\n  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR\n  #    will be set to the directory where LIBOBJS objects are built.\n  ac_libobjs=\"$ac_libobjs \\${LIBOBJDIR}$ac_i\\$U.$ac_objext\"\n  ac_ltlibobjs=\"$ac_ltlibobjs \\${LIBOBJDIR}$ac_i\"'$U.lo'\ndone\nLIBOBJS=$ac_libobjs\n\nLTLIBOBJS=$ac_ltlibobjs\n\n\n\n: ${CONFIG_STATUS=./config.status}\nac_clean_files_save=$ac_clean_files\nac_clean_files=\"$ac_clean_files $CONFIG_STATUS\"\n{ echo \"$as_me:$LINENO: creating $CONFIG_STATUS\" >&5\necho \"$as_me: creating $CONFIG_STATUS\" >&6;}\ncat >$CONFIG_STATUS <<_ACEOF\n#! $SHELL\n# Generated by $as_me.\n# Run this file to recreate the current configuration.\n# Compiler output produced by configure, useful for debugging\n# configure, is in config.log if it exists.\n\ndebug=false\nac_cs_recheck=false\nac_cs_silent=false\nSHELL=\\${CONFIG_SHELL-$SHELL}\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\n## --------------------- ##\n## M4sh Initialization.  ##\n## --------------------- ##\n\n# Be more Bourne compatible\nDUALCASE=1; export DUALCASE # for MKS sh\nif test -n \"${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then\n  emulate sh\n  NULLCMD=:\n  # Zsh 3.x and 4.x performs word splitting on ${1+\"$@\"}, which\n  # is contrary to our usage.  Disable this feature.\n  alias -g '${1+\"$@\"}'='\"$@\"'\n  setopt NO_GLOB_SUBST\nelse\n  case `(set -o) 2>/dev/null` in\n  *posix*) set -o posix ;;\nesac\n\nfi\n\n\n\n\n# PATH needs CR\n# Avoid depending upon Character Ranges.\nas_cr_letters='abcdefghijklmnopqrstuvwxyz'\nas_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nas_cr_Letters=$as_cr_letters$as_cr_LETTERS\nas_cr_digits='0123456789'\nas_cr_alnum=$as_cr_Letters$as_cr_digits\n\n# The user is always right.\nif test \"${PATH_SEPARATOR+set}\" != set; then\n  echo \"#! /bin/sh\" >conf$$.sh\n  echo  \"exit 0\"   >>conf$$.sh\n  chmod +x conf$$.sh\n  if (PATH=\"/nonexistent;.\"; conf$$.sh) >/dev/null 2>&1; then\n    PATH_SEPARATOR=';'\n  else\n    PATH_SEPARATOR=:\n  fi\n  rm -f conf$$.sh\nfi\n\n# Support unset when possible.\nif ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then\n  as_unset=unset\nelse\n  as_unset=false\nfi\n\n\n# IFS\n# We need space, tab and new line, in precisely that order.  Quoting is\n# there to prevent editors from complaining about space-tab.\n# (If _AS_PATH_WALK were called with IFS unset, it would disable word\n# splitting by setting IFS to empty value.)\nas_nl='\n'\nIFS=\" \"\"\t$as_nl\"\n\n# Find who we are.  Look in the path if we contain no directory separator.\ncase $0 in\n  *[\\\\/]* ) as_myself=$0 ;;\n  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  test -r \"$as_dir/$0\" && as_myself=$as_dir/$0 && break\ndone\nIFS=$as_save_IFS\n\n     ;;\nesac\n# We did not find ourselves, most probably we were run as `sh COMMAND'\n# in which case we are not to be found in the path.\nif test \"x$as_myself\" = x; then\n  as_myself=$0\nfi\nif test ! -f \"$as_myself\"; then\n  echo \"$as_myself: error: cannot find myself; rerun with an absolute file name\" >&2\n  { (exit 1); exit 1; }\nfi\n\n# Work around bugs in pre-3.0 UWIN ksh.\nfor as_var in ENV MAIL MAILPATH\ndo ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\ndone\nPS1='$ '\nPS2='> '\nPS4='+ '\n\n# NLS nuisances.\nfor as_var in \\\n  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \\\n  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \\\n  LC_TELEPHONE LC_TIME\ndo\n  if (set +x; test -z \"`(eval $as_var=C; export $as_var) 2>&1`\"); then\n    eval $as_var=C; export $as_var\n  else\n    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var\n  fi\ndone\n\n# Required to use basename.\nif expr a : '\\(a\\)' >/dev/null 2>&1 &&\n   test \"X`expr 00001 : '.*\\(...\\)'`\" = X001; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nif (basename -- /) >/dev/null 2>&1 && test \"X`basename -- / 2>&1`\" = \"X/\"; then\n  as_basename=basename\nelse\n  as_basename=false\nfi\n\n\n# Name of the executable.\nas_me=`$as_basename -- \"$0\" ||\n$as_expr X/\"$0\" : '.*/\\([^/][^/]*\\)/*$' \\| \\\n\t X\"$0\" : 'X\\(//\\)$' \\| \\\n\t X\"$0\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X/\"$0\" |\n    sed '/^.*\\/\\([^/][^/]*\\)\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\/\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\/\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n\n# CDPATH.\n$as_unset CDPATH\n\n\n\n  as_lineno_1=$LINENO\n  as_lineno_2=$LINENO\n  test \"x$as_lineno_1\" != \"x$as_lineno_2\" &&\n  test \"x`expr $as_lineno_1 + 1`\" = \"x$as_lineno_2\" || {\n\n  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO\n  # uniformly replaced by the line number.  The first 'sed' inserts a\n  # line-number line after each line using $LINENO; the second 'sed'\n  # does the real work.  The second script uses 'N' to pair each\n  # line-number line with the line containing $LINENO, and appends\n  # trailing '-' during substitution so that $LINENO is not a special\n  # case at line end.\n  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the\n  # scripts with optimization help from Paolo Bonzini.  Blame Lee\n  # E. McMahon (1931-1989) for sed's syntax.  :-)\n  sed -n '\n    p\n    /[$]LINENO/=\n  ' <$as_myself |\n    sed '\n      s/[$]LINENO.*/&-/\n      t lineno\n      b\n      :lineno\n      N\n      :loop\n      s/[$]LINENO\\([^'$as_cr_alnum'_].*\\n\\)\\(.*\\)/\\2\\1\\2/\n      t loop\n      s/-\\n.*//\n    ' >$as_me.lineno &&\n  chmod +x \"$as_me.lineno\" ||\n    { echo \"$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell\" >&2\n   { (exit 1); exit 1; }; }\n\n  # Don't try to exec as it changes $[0], causing all sort of problems\n  # (the dirname of $[0] is not the place where we might find the\n  # original and so on.  Autoconf is especially sensitive to this).\n  . \"./$as_me.lineno\"\n  # Exit status is that of the last command.\n  exit\n}\n\n\nif (as_dir=`dirname -- /` && test \"X$as_dir\" = X/) >/dev/null 2>&1; then\n  as_dirname=dirname\nelse\n  as_dirname=false\nfi\n\nECHO_C= ECHO_N= ECHO_T=\ncase `echo -n x` in\n-n*)\n  case `echo 'x\\c'` in\n  *c*) ECHO_T='\t';;\t# ECHO_T is single tab character.\n  *)   ECHO_C='\\c';;\n  esac;;\n*)\n  ECHO_N='-n';;\nesac\n\nif expr a : '\\(a\\)' >/dev/null 2>&1 &&\n   test \"X`expr 00001 : '.*\\(...\\)'`\" = X001; then\n  as_expr=expr\nelse\n  as_expr=false\nfi\n\nrm -f conf$$ conf$$.exe conf$$.file\nif test -d conf$$.dir; then\n  rm -f conf$$.dir/conf$$.file\nelse\n  rm -f conf$$.dir\n  mkdir conf$$.dir\nfi\necho >conf$$.file\nif ln -s conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s='ln -s'\n  # ... but there are two gotchas:\n  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.\n  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.\n  # In both cases, we have to default to `cp -p'.\n  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||\n    as_ln_s='cp -p'\nelif ln conf$$.file conf$$ 2>/dev/null; then\n  as_ln_s=ln\nelse\n  as_ln_s='cp -p'\nfi\nrm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file\nrmdir conf$$.dir 2>/dev/null\n\nif mkdir -p . 2>/dev/null; then\n  as_mkdir_p=:\nelse\n  test -d ./-p && rmdir ./-p\n  as_mkdir_p=false\nfi\n\nif test -x / >/dev/null 2>&1; then\n  as_test_x='test -x'\nelse\n  if ls -dL / >/dev/null 2>&1; then\n    as_ls_L_option=L\n  else\n    as_ls_L_option=\n  fi\n  as_test_x='\n    eval sh -c '\\''\n      if test -d \"$1\"; then\n        test -d \"$1/.\";\n      else\n\tcase $1 in\n        -*)set \"./$1\";;\n\tesac;\n\tcase `ls -ld'$as_ls_L_option' \"$1\" 2>/dev/null` in\n\t???[sx]*):;;*)false;;esac;fi\n    '\\'' sh\n  '\nfi\nas_executable_p=$as_test_x\n\n# Sed expression to map a string onto a valid CPP name.\nas_tr_cpp=\"eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'\"\n\n# Sed expression to map a string onto a valid variable name.\nas_tr_sh=\"eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'\"\n\n\nexec 6>&1\n\n# Save the log message, to keep $[0] and so on meaningful, and to\n# report actual input values of CONFIG_FILES etc. instead of their\n# values after options handling.\nac_log=\"\nThis file was extended by $as_me, which was\ngenerated by GNU Autoconf 2.61.  Invocation command line was\n\n  CONFIG_FILES    = $CONFIG_FILES\n  CONFIG_HEADERS  = $CONFIG_HEADERS\n  CONFIG_LINKS    = $CONFIG_LINKS\n  CONFIG_COMMANDS = $CONFIG_COMMANDS\n  $ $0 $@\n\non `(hostname || uname -n) 2>/dev/null | sed 1q`\n\"\n\n_ACEOF\n\ncat >>$CONFIG_STATUS <<_ACEOF\n# Files that config.status was made for.\nconfig_files=\"$ac_config_files\"\n\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\nac_cs_usage=\"\\\n\\`$as_me' instantiates files from templates according to the\ncurrent configuration.\n\nUsage: $0 [OPTIONS] [FILE]...\n\n  -h, --help       print this help, then exit\n  -V, --version    print version number and configuration settings, then exit\n  -q, --quiet      do not print progress messages\n  -d, --debug      don't remove temporary files\n      --recheck    update $as_me by reconfiguring in the same conditions\n  --file=FILE[:TEMPLATE]\n\t\t   instantiate the configuration file FILE\n\nConfiguration files:\n$config_files\n\nReport bugs to <bug-autoconf@gnu.org>.\"\n\n_ACEOF\ncat >>$CONFIG_STATUS <<_ACEOF\nac_cs_version=\"\\\\\nconfig.status\nconfigured by $0, generated by GNU Autoconf 2.61,\n  with options \\\\\"`echo \"$ac_configure_args\" | sed 's/^ //; s/[\\\\\"\"\\`\\$]/\\\\\\\\&/g'`\\\\\"\n\nCopyright (C) 2006 Free Software Foundation, Inc.\nThis config.status script is free software; the Free Software Foundation\ngives unlimited permission to copy, distribute and modify it.\"\n\nac_pwd='$ac_pwd'\nsrcdir='$srcdir'\nINSTALL='$INSTALL'\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\n# If no file are specified by the user, then we need to provide default\n# value.  By we need to know if files were specified by the user.\nac_need_defaults=:\nwhile test $# != 0\ndo\n  case $1 in\n  --*=*)\n    ac_option=`expr \"X$1\" : 'X\\([^=]*\\)='`\n    ac_optarg=`expr \"X$1\" : 'X[^=]*=\\(.*\\)'`\n    ac_shift=:\n    ;;\n  *)\n    ac_option=$1\n    ac_optarg=$2\n    ac_shift=shift\n    ;;\n  esac\n\n  case $ac_option in\n  # Handling of the options.\n  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)\n    ac_cs_recheck=: ;;\n  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )\n    echo \"$ac_cs_version\"; exit ;;\n  --debug | --debu | --deb | --de | --d | -d )\n    debug=: ;;\n  --file | --fil | --fi | --f )\n    $ac_shift\n    CONFIG_FILES=\"$CONFIG_FILES $ac_optarg\"\n    ac_need_defaults=false;;\n  --he | --h |  --help | --hel | -h )\n    echo \"$ac_cs_usage\"; exit ;;\n  -q | -quiet | --quiet | --quie | --qui | --qu | --q \\\n  | -silent | --silent | --silen | --sile | --sil | --si | --s)\n    ac_cs_silent=: ;;\n\n  # This is an error.\n  -*) { echo \"$as_me: error: unrecognized option: $1\nTry \\`$0 --help' for more information.\" >&2\n   { (exit 1); exit 1; }; } ;;\n\n  *) ac_config_targets=\"$ac_config_targets $1\"\n     ac_need_defaults=false ;;\n\n  esac\n  shift\ndone\n\nac_configure_extra_args=\n\nif $ac_cs_silent; then\n  exec 6>/dev/null\n  ac_configure_extra_args=\"$ac_configure_extra_args --silent\"\nfi\n\n_ACEOF\ncat >>$CONFIG_STATUS <<_ACEOF\nif \\$ac_cs_recheck; then\n  echo \"running CONFIG_SHELL=$SHELL $SHELL $0 \"$ac_configure_args \\$ac_configure_extra_args \" --no-create --no-recursion\" >&6\n  CONFIG_SHELL=$SHELL\n  export CONFIG_SHELL\n  exec $SHELL \"$0\"$ac_configure_args \\$ac_configure_extra_args --no-create --no-recursion\nfi\n\n_ACEOF\ncat >>$CONFIG_STATUS <<\\_ACEOF\nexec 5>>config.log\n{\n  echo\n  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX\n## Running $as_me. ##\n_ASBOX\n  echo \"$ac_log\"\n} >&5\n\n_ACEOF\ncat >>$CONFIG_STATUS <<_ACEOF\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\n\n# Handling of arguments.\nfor ac_config_target in $ac_config_targets\ndo\n  case $ac_config_target in\n    \"src/Makevars\") CONFIG_FILES=\"$CONFIG_FILES src/Makevars\" ;;\n\n  *) { { echo \"$as_me:$LINENO: error: invalid argument: $ac_config_target\" >&5\necho \"$as_me: error: invalid argument: $ac_config_target\" >&2;}\n   { (exit 1); exit 1; }; };;\n  esac\ndone\n\n\n# If the user did not use the arguments to specify the items to instantiate,\n# then the envvar interface is used.  Set only those that are not.\n# We use the long form for the default assignment because of an extremely\n# bizarre bug on SunOS 4.1.3.\nif $ac_need_defaults; then\n  test \"${CONFIG_FILES+set}\" = set || CONFIG_FILES=$config_files\nfi\n\n# Have a temporary directory for convenience.  Make it in the build tree\n# simply because there is no reason against having it here, and in addition,\n# creating and moving files from /tmp can sometimes cause problems.\n# Hook for its removal unless debugging.\n# Note that there is a small window in which the directory will not be cleaned:\n# after its creation but before its name has been assigned to `$tmp'.\n$debug ||\n{\n  tmp=\n  trap 'exit_status=$?\n  { test -z \"$tmp\" || test ! -d \"$tmp\" || rm -fr \"$tmp\"; } && exit $exit_status\n' 0\n  trap '{ (exit 1); exit 1; }' 1 2 13 15\n}\n# Create a (secure) tmp directory for tmp files.\n\n{\n  tmp=`(umask 077 && mktemp -d \"./confXXXXXX\") 2>/dev/null` &&\n  test -n \"$tmp\" && test -d \"$tmp\"\n}  ||\n{\n  tmp=./conf$$-$RANDOM\n  (umask 077 && mkdir \"$tmp\")\n} ||\n{\n   echo \"$me: cannot create a temporary directory in .\" >&2\n   { (exit 1); exit 1; }\n}\n\n#\n# Set up the sed scripts for CONFIG_FILES section.\n#\n\n# No need to generate the scripts if there are no CONFIG_FILES.\n# This happens for instance when ./config.status config.h\nif test -n \"$CONFIG_FILES\"; then\n\n_ACEOF\n\n\n\nac_delim='%!_!# '\nfor ac_last_try in false false false false false :; do\n  cat >conf$$subs.sed <<_ACEOF\nSHELL!$SHELL$ac_delim\nPATH_SEPARATOR!$PATH_SEPARATOR$ac_delim\nPACKAGE_NAME!$PACKAGE_NAME$ac_delim\nPACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim\nPACKAGE_VERSION!$PACKAGE_VERSION$ac_delim\nPACKAGE_STRING!$PACKAGE_STRING$ac_delim\nPACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim\nexec_prefix!$exec_prefix$ac_delim\nprefix!$prefix$ac_delim\nprogram_transform_name!$program_transform_name$ac_delim\nbindir!$bindir$ac_delim\nsbindir!$sbindir$ac_delim\nlibexecdir!$libexecdir$ac_delim\ndatarootdir!$datarootdir$ac_delim\ndatadir!$datadir$ac_delim\nsysconfdir!$sysconfdir$ac_delim\nsharedstatedir!$sharedstatedir$ac_delim\nlocalstatedir!$localstatedir$ac_delim\nincludedir!$includedir$ac_delim\noldincludedir!$oldincludedir$ac_delim\ndocdir!$docdir$ac_delim\ninfodir!$infodir$ac_delim\nhtmldir!$htmldir$ac_delim\ndvidir!$dvidir$ac_delim\npdfdir!$pdfdir$ac_delim\npsdir!$psdir$ac_delim\nlibdir!$libdir$ac_delim\nlocaledir!$localedir$ac_delim\nmandir!$mandir$ac_delim\nDEFS!$DEFS$ac_delim\nECHO_C!$ECHO_C$ac_delim\nECHO_N!$ECHO_N$ac_delim\nECHO_T!$ECHO_T$ac_delim\nLIBS!$LIBS$ac_delim\nbuild_alias!$build_alias$ac_delim\nhost_alias!$host_alias$ac_delim\ntarget_alias!$target_alias$ac_delim\nCC!$CC$ac_delim\nCFLAGS!$CFLAGS$ac_delim\nLDFLAGS!$LDFLAGS$ac_delim\nCPPFLAGS!$CPPFLAGS$ac_delim\nac_ct_CC!$ac_ct_CC$ac_delim\nEXEEXT!$EXEEXT$ac_delim\nOBJEXT!$OBJEXT$ac_delim\nCXX!$CXX$ac_delim\nCXXFLAGS!$CXXFLAGS$ac_delim\nac_ct_CXX!$ac_ct_CXX$ac_delim\nINSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim\nINSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim\nINSTALL_DATA!$INSTALL_DATA$ac_delim\nCPP!$CPP$ac_delim\nGREP!$GREP$ac_delim\nEGREP!$EGREP$ac_delim\nLIBOBJS!$LIBOBJS$ac_delim\nPOW_LIB!$POW_LIB$ac_delim\nbuild!$build$ac_delim\nbuild_cpu!$build_cpu$ac_delim\nbuild_vendor!$build_vendor$ac_delim\nbuild_os!$build_os$ac_delim\nhost!$host$ac_delim\nhost_cpu!$host_cpu$ac_delim\nhost_vendor!$host_vendor$ac_delim\nhost_os!$host_os$ac_delim\nLTLIBOBJS!$LTLIBOBJS$ac_delim\n_ACEOF\n\n  if test `sed -n \"s/.*$ac_delim\\$/X/p\" conf$$subs.sed | grep -c X` = 64; then\n    break\n  elif $ac_last_try; then\n    { { echo \"$as_me:$LINENO: error: could not make $CONFIG_STATUS\" >&5\necho \"$as_me: error: could not make $CONFIG_STATUS\" >&2;}\n   { (exit 1); exit 1; }; }\n  else\n    ac_delim=\"$ac_delim!$ac_delim _$ac_delim!! \"\n  fi\ndone\n\nac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`\nif test -n \"$ac_eof\"; then\n  ac_eof=`echo \"$ac_eof\" | sort -nru | sed 1q`\n  ac_eof=`expr $ac_eof + 1`\nfi\n\ncat >>$CONFIG_STATUS <<_ACEOF\ncat >\"\\$tmp/subs-1.sed\" <<\\CEOF$ac_eof\n/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end\n_ACEOF\nsed '\ns/[,\\\\&]/\\\\&/g; s/@/@|#_!!_#|/g\ns/^/s,@/; s/!/@,|#_!!_#|/\n:n\nt n\ns/'\"$ac_delim\"'$/,g/; t\ns/$/\\\\/; p\nN; s/^.*\\n//; s/[,\\\\&]/\\\\&/g; s/@/@|#_!!_#|/g; b n\n' >>$CONFIG_STATUS <conf$$subs.sed\nrm -f conf$$subs.sed\ncat >>$CONFIG_STATUS <<_ACEOF\n:end\ns/|#_!!_#|//g\nCEOF$ac_eof\n_ACEOF\n\n\n# VPATH may cause trouble with some makes, so we remove $(srcdir),\n# ${srcdir} and @srcdir@ from VPATH if srcdir is \".\", strip leading and\n# trailing colons and then remove the whole line if VPATH becomes empty\n# (actually we leave an empty line to preserve line numbers).\nif test \"x$srcdir\" = x.; then\n  ac_vpsub='/^[\t ]*VPATH[\t ]*=/{\ns/:*\\$(srcdir):*/:/\ns/:*\\${srcdir}:*/:/\ns/:*@srcdir@:*/:/\ns/^\\([^=]*=[\t ]*\\):*/\\1/\ns/:*$//\ns/^[^=]*=[\t ]*$//\n}'\nfi\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\nfi # test -n \"$CONFIG_FILES\"\n\n\nfor ac_tag in  :F $CONFIG_FILES\ndo\n  case $ac_tag in\n  :[FHLC]) ac_mode=$ac_tag; continue;;\n  esac\n  case $ac_mode$ac_tag in\n  :[FHL]*:*);;\n  :L* | :C*:*) { { echo \"$as_me:$LINENO: error: Invalid tag $ac_tag.\" >&5\necho \"$as_me: error: Invalid tag $ac_tag.\" >&2;}\n   { (exit 1); exit 1; }; };;\n  :[FH]-) ac_tag=-:-;;\n  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;\n  esac\n  ac_save_IFS=$IFS\n  IFS=:\n  set x $ac_tag\n  IFS=$ac_save_IFS\n  shift\n  ac_file=$1\n  shift\n\n  case $ac_mode in\n  :L) ac_source=$1;;\n  :[FH])\n    ac_file_inputs=\n    for ac_f\n    do\n      case $ac_f in\n      -) ac_f=\"$tmp/stdin\";;\n      *) # Look for the file first in the build tree, then in the source tree\n\t # (if the path is not absolute).  The absolute path cannot be DOS-style,\n\t # because $ac_f cannot contain `:'.\n\t test -f \"$ac_f\" ||\n\t   case $ac_f in\n\t   [\\\\/$]*) false;;\n\t   *) test -f \"$srcdir/$ac_f\" && ac_f=\"$srcdir/$ac_f\";;\n\t   esac ||\n\t   { { echo \"$as_me:$LINENO: error: cannot find input file: $ac_f\" >&5\necho \"$as_me: error: cannot find input file: $ac_f\" >&2;}\n   { (exit 1); exit 1; }; };;\n      esac\n      ac_file_inputs=\"$ac_file_inputs $ac_f\"\n    done\n\n    # Let's still pretend it is `configure' which instantiates (i.e., don't\n    # use $as_me), people would be surprised to read:\n    #    /* config.h.  Generated by config.status.  */\n    configure_input=\"Generated from \"`IFS=:\n\t  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`\" by configure.\"\n    if test x\"$ac_file\" != x-; then\n      configure_input=\"$ac_file.  $configure_input\"\n      { echo \"$as_me:$LINENO: creating $ac_file\" >&5\necho \"$as_me: creating $ac_file\" >&6;}\n    fi\n\n    case $ac_tag in\n    *:-:* | *:-) cat >\"$tmp/stdin\";;\n    esac\n    ;;\n  esac\n\n  ac_dir=`$as_dirname -- \"$ac_file\" ||\n$as_expr X\"$ac_file\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t X\"$ac_file\" : 'X\\(//\\)[^/]' \\| \\\n\t X\"$ac_file\" : 'X\\(//\\)$' \\| \\\n\t X\"$ac_file\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X\"$ac_file\" |\n    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)[^/].*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n  { as_dir=\"$ac_dir\"\n  case $as_dir in #(\n  -*) as_dir=./$as_dir;;\n  esac\n  test -d \"$as_dir\" || { $as_mkdir_p && mkdir -p \"$as_dir\"; } || {\n    as_dirs=\n    while :; do\n      case $as_dir in #(\n      *\\'*) as_qdir=`echo \"$as_dir\" | sed \"s/'/'\\\\\\\\\\\\\\\\''/g\"`;; #(\n      *) as_qdir=$as_dir;;\n      esac\n      as_dirs=\"'$as_qdir' $as_dirs\"\n      as_dir=`$as_dirname -- \"$as_dir\" ||\n$as_expr X\"$as_dir\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t X\"$as_dir\" : 'X\\(//\\)[^/]' \\| \\\n\t X\"$as_dir\" : 'X\\(//\\)$' \\| \\\n\t X\"$as_dir\" : 'X\\(/\\)' \\| . 2>/dev/null ||\necho X\"$as_dir\" |\n    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)[^/].*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\/\\)$/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  /^X\\(\\/\\).*/{\n\t    s//\\1/\n\t    q\n\t  }\n\t  s/.*/./; q'`\n      test -d \"$as_dir\" && break\n    done\n    test -z \"$as_dirs\" || eval \"mkdir $as_dirs\"\n  } || test -d \"$as_dir\" || { { echo \"$as_me:$LINENO: error: cannot create directory $as_dir\" >&5\necho \"$as_me: error: cannot create directory $as_dir\" >&2;}\n   { (exit 1); exit 1; }; }; }\n  ac_builddir=.\n\ncase \"$ac_dir\" in\n.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;\n*)\n  ac_dir_suffix=/`echo \"$ac_dir\" | sed 's,^\\.[\\\\/],,'`\n  # A \"..\" for each directory in $ac_dir_suffix.\n  ac_top_builddir_sub=`echo \"$ac_dir_suffix\" | sed 's,/[^\\\\/]*,/..,g;s,/,,'`\n  case $ac_top_builddir_sub in\n  \"\") ac_top_builddir_sub=. ac_top_build_prefix= ;;\n  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;\n  esac ;;\nesac\nac_abs_top_builddir=$ac_pwd\nac_abs_builddir=$ac_pwd$ac_dir_suffix\n# for backward compatibility:\nac_top_builddir=$ac_top_build_prefix\n\ncase $srcdir in\n  .)  # We are building in place.\n    ac_srcdir=.\n    ac_top_srcdir=$ac_top_builddir_sub\n    ac_abs_top_srcdir=$ac_pwd ;;\n  [\\\\/]* | ?:[\\\\/]* )  # Absolute name.\n    ac_srcdir=$srcdir$ac_dir_suffix;\n    ac_top_srcdir=$srcdir\n    ac_abs_top_srcdir=$srcdir ;;\n  *) # Relative name.\n    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix\n    ac_top_srcdir=$ac_top_build_prefix$srcdir\n    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;\nesac\nac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix\n\n\n  case $ac_mode in\n  :F)\n  #\n  # CONFIG_FILE\n  #\n\n  case $INSTALL in\n  [\\\\/$]* | ?:[\\\\/]* ) ac_INSTALL=$INSTALL ;;\n  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;\n  esac\n_ACEOF\n\ncat >>$CONFIG_STATUS <<\\_ACEOF\n# If the template does not know about datarootdir, expand it.\n# FIXME: This hack should be removed a few years after 2.60.\nac_datarootdir_hack=; ac_datarootdir_seen=\n\ncase `sed -n '/datarootdir/ {\n  p\n  q\n}\n/@datadir@/p\n/@docdir@/p\n/@infodir@/p\n/@localedir@/p\n/@mandir@/p\n' $ac_file_inputs` in\n*datarootdir*) ac_datarootdir_seen=yes;;\n*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)\n  { echo \"$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting\" >&5\necho \"$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting\" >&2;}\n_ACEOF\ncat >>$CONFIG_STATUS <<_ACEOF\n  ac_datarootdir_hack='\n  s&@datadir@&$datadir&g\n  s&@docdir@&$docdir&g\n  s&@infodir@&$infodir&g\n  s&@localedir@&$localedir&g\n  s&@mandir@&$mandir&g\n    s&\\\\\\${datarootdir}&$datarootdir&g' ;;\nesac\n_ACEOF\n\n# Neutralize VPATH when `$srcdir' = `.'.\n# Shell code in configure.ac might set extrasub.\n# FIXME: do we really want to maintain this feature?\ncat >>$CONFIG_STATUS <<_ACEOF\n  sed \"$ac_vpsub\n$extrasub\n_ACEOF\ncat >>$CONFIG_STATUS <<\\_ACEOF\n:t\n/@[a-zA-Z_][a-zA-Z_0-9]*@/!b\ns&@configure_input@&$configure_input&;t t\ns&@top_builddir@&$ac_top_builddir_sub&;t t\ns&@srcdir@&$ac_srcdir&;t t\ns&@abs_srcdir@&$ac_abs_srcdir&;t t\ns&@top_srcdir@&$ac_top_srcdir&;t t\ns&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t\ns&@builddir@&$ac_builddir&;t t\ns&@abs_builddir@&$ac_abs_builddir&;t t\ns&@abs_top_builddir@&$ac_abs_top_builddir&;t t\ns&@INSTALL@&$ac_INSTALL&;t t\n$ac_datarootdir_hack\n\" $ac_file_inputs | sed -f \"$tmp/subs-1.sed\" >$tmp/out\n\ntest -z \"$ac_datarootdir_hack$ac_datarootdir_seen\" &&\n  { ac_out=`sed -n '/\\${datarootdir}/p' \"$tmp/out\"`; test -n \"$ac_out\"; } &&\n  { ac_out=`sed -n '/^[\t ]*datarootdir[\t ]*:*=/p' \"$tmp/out\"`; test -z \"$ac_out\"; } &&\n  { echo \"$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \\`datarootdir'\nwhich seems to be undefined.  Please make sure it is defined.\" >&5\necho \"$as_me: WARNING: $ac_file contains a reference to the variable \\`datarootdir'\nwhich seems to be undefined.  Please make sure it is defined.\" >&2;}\n\n  rm -f \"$tmp/stdin\"\n  case $ac_file in\n  -) cat \"$tmp/out\"; rm -f \"$tmp/out\";;\n  *) rm -f \"$ac_file\"; mv \"$tmp/out\" $ac_file;;\n  esac\n ;;\n\n\n\n  esac\n\ndone # for ac_tag\n\n\n{ (exit 0); exit 0; }\n_ACEOF\nchmod +x $CONFIG_STATUS\nac_clean_files=$ac_clean_files_save\n\n\n# configure is writing to config.log, and then calls config.status.\n# config.status does its own redirection, appending to config.log.\n# Unfortunately, on DOS this fails, as config.log is still kept open\n# by configure, so config.status won't be able to write to it; its\n# output is simply discarded.  So we exec the FD to /dev/null,\n# effectively closing config.log, so it can be properly (re)opened and\n# appended to by config.status.  When coming back to configure, we\n# need to make the FD available again.\nif test \"$no_create\" != yes; then\n  ac_cs_success=:\n  ac_config_status_args=\n  test \"$silent\" = yes &&\n    ac_config_status_args=\"$ac_config_status_args --quiet\"\n  exec 5>/dev/null\n  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false\n  exec 5>>config.log\n  # Use ||, not &&, to avoid exiting from the if with $? = 1, which\n  # would make configure fail if this is the last instruction.\n  $ac_cs_success || { (exit 1); exit 1; }\nfi\n\n\n"
  },
  {
    "path": "src/cpp/PLEX3/configure.ac",
    "content": "AC_INIT([src/rbind_jni.cpp])\n\nAC_PROG_CC\nAC_PROG_CXX\n\nAC_PROG_INSTALL\n\nAC_PROG_GCC_TRADITIONAL\nAC_FUNC_MEMCMP\nAC_FUNC_MALLOC\nAC_FUNC_STRTOD\nAC_TYPE_SIGNAL\nAC_FUNC_VPRINTF\n\nAC_CANONICAL_HOST\n\nAC_ARG_WITH([jplex],\n\t\tAC_HELP_STRING([--with-jplex=JPLEX_PATH],\n\t\t\t[path to the jplex.jar file]),\n\t\t[jplex_path=$withval])\nif test [ -n \"$jplex_path\" ] ; then\nJPLEX_PATH=\"${jplex_path}\"\nelse\nJPLEX_PATH=\"${HOME}/plex3/jplex.jar\"\nfi\n\ndnl Write the config.R file\n\necho \"\\`jplex.path\\` <- \\\"${JPLEX_PATH}\\\";\" > R/config.R\n\ndnl Now find the compiler and compiler flags to use\n: ${R_HOME=`R RHOME`}\nif test -z \"${R_HOME}\"; then\necho \"could not determine R_HOME\"\nexit 1\nfi\n\nCC=`\"${R_HOME}/bin/R\" CMD config CC`\nCFLAGS=`\"${R_HOME}/bin/R\" CMD config CFLAGS`\nJAVA_HOME=`\"${R_HOME}/bin/R\" CMD config JAVA_HOME`\nJAVA_LIBS=`\"${R_HOME}/bin/R\" CMD config JAVA_LIBS`\nJAVA_CPPFLAGS=`\"${R_HOME}/bin/R\" CMD config JAVA_CPPFLAGS`\n\ndnl The following line would be preferrable. However, R CMD config is broken.\ndnl JAVA_LD_LIBRARY_PATH=`\"${R_HOME}/bin/R\" CMD config JAVA_LD_LIBRARY_PATH` \ndnl This is a workaround, looking at Makeconf directly:\n\nJAVA_LD_LIBRARY_PATH=`grep -e \"^JAVA_LD_LIBRARY_PATH = \" ${R_HOME}/etc/Makeconf | awk '{print $3}'`\n\nAC_SUBST([CPPFLAGS],[\"${JAVA_CPPFLAGS} ${CPPFLAGS}\"])\nAC_SUBST([LIBS],[\"${JAVA_LIBS} -Wl,-rpath,${JAVA_LD_LIBRARY_PATH} ${LIBS}\"])\n\nAC_SUBST(CPPFLAGS)\nAC_SUBST(LIBS)\n\ndnl Hopefully, R CMD javareconf has already been run and we have our variables.\ndnl If not, print a message telling them to get their act together.\n\nAC_CHECK_HEADERS(jni.h)\n\tif test \"${ac_cv_header_jni_h}\" = no ; then \n\tAC_MSG_ERROR(\"Necessary JNI header jni.h not found. Did you remember to run R CMD javareconf? \")\n\tfi\n\nAC_OUTPUT(src/Makevars)\n\n"
  },
  {
    "path": "src/cpp/PLEX3/install-sh",
    "content": "#!/bin/sh\n# install - install a program, script, or datafile\n\nscriptversion=2006-12-25.00\n\n# This originates from X11R5 (mit/util/scripts/install.sh), which was\n# later released in X11R6 (xc/config/util/install.sh) with the\n# following copyright and license.\n#\n# Copyright (C) 1994 X Consortium\n#\n# Permission is hereby granted, free of charge, to any person obtaining a copy\n# of this software and associated documentation files (the \"Software\"), to\n# deal in the Software without restriction, including without limitation the\n# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n# sell copies of the Software, and to permit persons to whom the Software is\n# furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included in\n# all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE\n# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\n# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-\n# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n#\n# Except as contained in this notice, the name of the X Consortium shall not\n# be used in advertising or otherwise to promote the sale, use or other deal-\n# ings in this Software without prior written authorization from the X Consor-\n# tium.\n#\n#\n# FSF changes to this file are in the public domain.\n#\n# Calling this script install-sh is preferred over install.sh, to prevent\n# `make' implicit rules from creating a file called install from it\n# when there is no Makefile.\n#\n# This script is compatible with the BSD install script, but was written\n# from scratch.\n\nnl='\n'\nIFS=\" \"\"\t$nl\"\n\n# set DOITPROG to echo to test this script\n\n# Don't use :- since 4.3BSD and earlier shells don't like it.\ndoit=${DOITPROG-}\nif test -z \"$doit\"; then\n  doit_exec=exec\nelse\n  doit_exec=$doit\nfi\n\n# Put in absolute file names if you don't have them in your path;\n# or use environment vars.\n\nchgrpprog=${CHGRPPROG-chgrp}\nchmodprog=${CHMODPROG-chmod}\nchownprog=${CHOWNPROG-chown}\ncmpprog=${CMPPROG-cmp}\ncpprog=${CPPROG-cp}\nmkdirprog=${MKDIRPROG-mkdir}\nmvprog=${MVPROG-mv}\nrmprog=${RMPROG-rm}\nstripprog=${STRIPPROG-strip}\n\nposix_glob='?'\ninitialize_posix_glob='\n  test \"$posix_glob\" != \"?\" || {\n    if (set -f) 2>/dev/null; then\n      posix_glob=\n    else\n      posix_glob=:\n    fi\n  }\n'\n\nposix_mkdir=\n\n# Desired mode of installed file.\nmode=0755\n\nchgrpcmd=\nchmodcmd=$chmodprog\nchowncmd=\nmvcmd=$mvprog\nrmcmd=\"$rmprog -f\"\nstripcmd=\n\nsrc=\ndst=\ndir_arg=\ndst_arg=\n\ncopy_on_change=false\nno_target_directory=\n\nusage=\"\\\nUsage: $0 [OPTION]... [-T] SRCFILE DSTFILE\n   or: $0 [OPTION]... SRCFILES... DIRECTORY\n   or: $0 [OPTION]... -t DIRECTORY SRCFILES...\n   or: $0 [OPTION]... -d DIRECTORIES...\n\nIn the 1st form, copy SRCFILE to DSTFILE.\nIn the 2nd and 3rd, copy all SRCFILES to DIRECTORY.\nIn the 4th, create DIRECTORIES.\n\nOptions:\n     --help     display this help and exit.\n     --version  display version info and exit.\n\n  -c            (ignored)\n  -C            install only if different (preserve the last data modification time)\n  -d            create directories instead of installing files.\n  -g GROUP      $chgrpprog installed files to GROUP.\n  -m MODE       $chmodprog installed files to MODE.\n  -o USER       $chownprog installed files to USER.\n  -s            $stripprog installed files.\n  -t DIRECTORY  install into DIRECTORY.\n  -T            report an error if DSTFILE is a directory.\n\nEnvironment variables override the default commands:\n  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG\n  RMPROG STRIPPROG\n\"\n\nwhile test $# -ne 0; do\n  case $1 in\n    -c) ;;\n\n    -C) copy_on_change=true;;\n\n    -d) dir_arg=true;;\n\n    -g) chgrpcmd=\"$chgrpprog $2\"\n\tshift;;\n\n    --help) echo \"$usage\"; exit $?;;\n\n    -m) mode=$2\n\tcase $mode in\n\t  *' '* | *'\t'* | *'\n'*\t  | *'*'* | *'?'* | *'['*)\n\t    echo \"$0: invalid mode: $mode\" >&2\n\t    exit 1;;\n\tesac\n\tshift;;\n\n    -o) chowncmd=\"$chownprog $2\"\n\tshift;;\n\n    -s) stripcmd=$stripprog;;\n\n    -t) dst_arg=$2\n\tshift;;\n\n    -T) no_target_directory=true;;\n\n    --version) echo \"$0 $scriptversion\"; exit $?;;\n\n    --)\tshift\n\tbreak;;\n\n    -*)\techo \"$0: invalid option: $1\" >&2\n\texit 1;;\n\n    *)  break;;\n  esac\n  shift\ndone\n\nif test $# -ne 0 && test -z \"$dir_arg$dst_arg\"; then\n  # When -d is used, all remaining arguments are directories to create.\n  # When -t is used, the destination is already specified.\n  # Otherwise, the last argument is the destination.  Remove it from $@.\n  for arg\n  do\n    if test -n \"$dst_arg\"; then\n      # $@ is not empty: it contains at least $arg.\n      set fnord \"$@\" \"$dst_arg\"\n      shift # fnord\n    fi\n    shift # arg\n    dst_arg=$arg\n  done\nfi\n\nif test $# -eq 0; then\n  if test -z \"$dir_arg\"; then\n    echo \"$0: no input file specified.\" >&2\n    exit 1\n  fi\n  # It's OK to call `install-sh -d' without argument.\n  # This can happen when creating conditional directories.\n  exit 0\nfi\n\nif test -z \"$dir_arg\"; then\n  trap '(exit $?); exit' 1 2 13 15\n\n  # Set umask so as not to create temps with too-generous modes.\n  # However, 'strip' requires both read and write access to temps.\n  case $mode in\n    # Optimize common cases.\n    *644) cp_umask=133;;\n    *755) cp_umask=22;;\n\n    *[0-7])\n      if test -z \"$stripcmd\"; then\n\tu_plus_rw=\n      else\n\tu_plus_rw='% 200'\n      fi\n      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;\n    *)\n      if test -z \"$stripcmd\"; then\n\tu_plus_rw=\n      else\n\tu_plus_rw=,u+rw\n      fi\n      cp_umask=$mode$u_plus_rw;;\n  esac\nfi\n\nfor src\ndo\n  # Protect names starting with `-'.\n  case $src in\n    -*) src=./$src;;\n  esac\n\n  if test -n \"$dir_arg\"; then\n    dst=$src\n    dstdir=$dst\n    test -d \"$dstdir\"\n    dstdir_status=$?\n  else\n\n    # Waiting for this to be detected by the \"$cpprog $src $dsttmp\" command\n    # might cause directories to be created, which would be especially bad\n    # if $src (and thus $dsttmp) contains '*'.\n    if test ! -f \"$src\" && test ! -d \"$src\"; then\n      echo \"$0: $src does not exist.\" >&2\n      exit 1\n    fi\n\n    if test -z \"$dst_arg\"; then\n      echo \"$0: no destination specified.\" >&2\n      exit 1\n    fi\n\n    dst=$dst_arg\n    # Protect names starting with `-'.\n    case $dst in\n      -*) dst=./$dst;;\n    esac\n\n    # If destination is a directory, append the input filename; won't work\n    # if double slashes aren't ignored.\n    if test -d \"$dst\"; then\n      if test -n \"$no_target_directory\"; then\n\techo \"$0: $dst_arg: Is a directory\" >&2\n\texit 1\n      fi\n      dstdir=$dst\n      dst=$dstdir/`basename \"$src\"`\n      dstdir_status=0\n    else\n      # Prefer dirname, but fall back on a substitute if dirname fails.\n      dstdir=`\n\t(dirname \"$dst\") 2>/dev/null ||\n\texpr X\"$dst\" : 'X\\(.*[^/]\\)//*[^/][^/]*/*$' \\| \\\n\t     X\"$dst\" : 'X\\(//\\)[^/]' \\| \\\n\t     X\"$dst\" : 'X\\(//\\)$' \\| \\\n\t     X\"$dst\" : 'X\\(/\\)' \\| . 2>/dev/null ||\n\techo X\"$dst\" |\n\t    sed '/^X\\(.*[^/]\\)\\/\\/*[^/][^/]*\\/*$/{\n\t\t   s//\\1/\n\t\t   q\n\t\t }\n\t\t /^X\\(\\/\\/\\)[^/].*/{\n\t\t   s//\\1/\n\t\t   q\n\t\t }\n\t\t /^X\\(\\/\\/\\)$/{\n\t\t   s//\\1/\n\t\t   q\n\t\t }\n\t\t /^X\\(\\/\\).*/{\n\t\t   s//\\1/\n\t\t   q\n\t\t }\n\t\t s/.*/./; q'\n      `\n\n      test -d \"$dstdir\"\n      dstdir_status=$?\n    fi\n  fi\n\n  obsolete_mkdir_used=false\n\n  if test $dstdir_status != 0; then\n    case $posix_mkdir in\n      '')\n\t# Create intermediate dirs using mode 755 as modified by the umask.\n\t# This is like FreeBSD 'install' as of 1997-10-28.\n\tumask=`umask`\n\tcase $stripcmd.$umask in\n\t  # Optimize common cases.\n\t  *[2367][2367]) mkdir_umask=$umask;;\n\t  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;\n\n\t  *[0-7])\n\t    mkdir_umask=`expr $umask + 22 \\\n\t      - $umask % 100 % 40 + $umask % 20 \\\n\t      - $umask % 10 % 4 + $umask % 2\n\t    `;;\n\t  *) mkdir_umask=$umask,go-w;;\n\tesac\n\n\t# With -d, create the new directory with the user-specified mode.\n\t# Otherwise, rely on $mkdir_umask.\n\tif test -n \"$dir_arg\"; then\n\t  mkdir_mode=-m$mode\n\telse\n\t  mkdir_mode=\n\tfi\n\n\tposix_mkdir=false\n\tcase $umask in\n\t  *[123567][0-7][0-7])\n\t    # POSIX mkdir -p sets u+wx bits regardless of umask, which\n\t    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.\n\t    ;;\n\t  *)\n\t    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$\n\t    trap 'ret=$?; rmdir \"$tmpdir/d\" \"$tmpdir\" 2>/dev/null; exit $ret' 0\n\n\t    if (umask $mkdir_umask &&\n\t\texec $mkdirprog $mkdir_mode -p -- \"$tmpdir/d\") >/dev/null 2>&1\n\t    then\n\t      if test -z \"$dir_arg\" || {\n\t\t   # Check for POSIX incompatibilities with -m.\n\t\t   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or\n\t\t   # other-writeable bit of parent directory when it shouldn't.\n\t\t   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.\n\t\t   ls_ld_tmpdir=`ls -ld \"$tmpdir\"`\n\t\t   case $ls_ld_tmpdir in\n\t\t     d????-?r-*) different_mode=700;;\n\t\t     d????-?--*) different_mode=755;;\n\t\t     *) false;;\n\t\t   esac &&\n\t\t   $mkdirprog -m$different_mode -p -- \"$tmpdir\" && {\n\t\t     ls_ld_tmpdir_1=`ls -ld \"$tmpdir\"`\n\t\t     test \"$ls_ld_tmpdir\" = \"$ls_ld_tmpdir_1\"\n\t\t   }\n\t\t }\n\t      then posix_mkdir=:\n\t      fi\n\t      rmdir \"$tmpdir/d\" \"$tmpdir\"\n\t    else\n\t      # Remove any dirs left behind by ancient mkdir implementations.\n\t      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null\n\t    fi\n\t    trap '' 0;;\n\tesac;;\n    esac\n\n    if\n      $posix_mkdir && (\n\tumask $mkdir_umask &&\n\t$doit_exec $mkdirprog $mkdir_mode -p -- \"$dstdir\"\n      )\n    then :\n    else\n\n      # The umask is ridiculous, or mkdir does not conform to POSIX,\n      # or it failed possibly due to a race condition.  Create the\n      # directory the slow way, step by step, checking for races as we go.\n\n      case $dstdir in\n\t/*) prefix='/';;\n\t-*) prefix='./';;\n\t*)  prefix='';;\n      esac\n\n      eval \"$initialize_posix_glob\"\n\n      oIFS=$IFS\n      IFS=/\n      $posix_glob set -f\n      set fnord $dstdir\n      shift\n      $posix_glob set +f\n      IFS=$oIFS\n\n      prefixes=\n\n      for d\n      do\n\ttest -z \"$d\" && continue\n\n\tprefix=$prefix$d\n\tif test -d \"$prefix\"; then\n\t  prefixes=\n\telse\n\t  if $posix_mkdir; then\n\t    (umask=$mkdir_umask &&\n\t     $doit_exec $mkdirprog $mkdir_mode -p -- \"$dstdir\") && break\n\t    # Don't fail if two instances are running concurrently.\n\t    test -d \"$prefix\" || exit 1\n\t  else\n\t    case $prefix in\n\t      *\\'*) qprefix=`echo \"$prefix\" | sed \"s/'/'\\\\\\\\\\\\\\\\''/g\"`;;\n\t      *) qprefix=$prefix;;\n\t    esac\n\t    prefixes=\"$prefixes '$qprefix'\"\n\t  fi\n\tfi\n\tprefix=$prefix/\n      done\n\n      if test -n \"$prefixes\"; then\n\t# Don't fail if two instances are running concurrently.\n\t(umask $mkdir_umask &&\n\t eval \"\\$doit_exec \\$mkdirprog $prefixes\") ||\n\t  test -d \"$dstdir\" || exit 1\n\tobsolete_mkdir_used=true\n      fi\n    fi\n  fi\n\n  if test -n \"$dir_arg\"; then\n    { test -z \"$chowncmd\" || $doit $chowncmd \"$dst\"; } &&\n    { test -z \"$chgrpcmd\" || $doit $chgrpcmd \"$dst\"; } &&\n    { test \"$obsolete_mkdir_used$chowncmd$chgrpcmd\" = false ||\n      test -z \"$chmodcmd\" || $doit $chmodcmd $mode \"$dst\"; } || exit 1\n  else\n\n    # Make a couple of temp file names in the proper directory.\n    dsttmp=$dstdir/_inst.$$_\n    rmtmp=$dstdir/_rm.$$_\n\n    # Trap to clean up those temp files at exit.\n    trap 'ret=$?; rm -f \"$dsttmp\" \"$rmtmp\" && exit $ret' 0\n\n    # Copy the file name to the temp name.\n    (umask $cp_umask && $doit_exec $cpprog \"$src\" \"$dsttmp\") &&\n\n    # and set any options; do chmod last to preserve setuid bits.\n    #\n    # If any of these fail, we abort the whole thing.  If we want to\n    # ignore errors from any of these, just make sure not to ignore\n    # errors from the above \"$doit $cpprog $src $dsttmp\" command.\n    #\n    { test -z \"$chowncmd\" || $doit $chowncmd \"$dsttmp\"; } &&\n    { test -z \"$chgrpcmd\" || $doit $chgrpcmd \"$dsttmp\"; } &&\n    { test -z \"$stripcmd\" || $doit $stripcmd \"$dsttmp\"; } &&\n    { test -z \"$chmodcmd\" || $doit $chmodcmd $mode \"$dsttmp\"; } &&\n\n    # If -C, don't bother to copy if it wouldn't change the file.\n    if $copy_on_change &&\n       old=`LC_ALL=C ls -dlL \"$dst\"\t2>/dev/null` &&\n       new=`LC_ALL=C ls -dlL \"$dsttmp\"\t2>/dev/null` &&\n\n       eval \"$initialize_posix_glob\" &&\n       $posix_glob set -f &&\n       set X $old && old=:$2:$4:$5:$6 &&\n       set X $new && new=:$2:$4:$5:$6 &&\n       $posix_glob set +f &&\n\n       test \"$old\" = \"$new\" &&\n       $cmpprog \"$dst\" \"$dsttmp\" >/dev/null 2>&1\n    then\n      rm -f \"$dsttmp\"\n    else\n      # Rename the file to the real destination.\n      $doit $mvcmd -f \"$dsttmp\" \"$dst\" 2>/dev/null ||\n\n      # The rename failed, perhaps because mv can't rename something else\n      # to itself, or perhaps because mv is so ancient that it does not\n      # support -f.\n      {\n\t# Now remove or move aside any old file at destination location.\n\t# We try this two ways since rm can't unlink itself on some\n\t# systems and the destination file might be busy for other\n\t# reasons.  In this case, the final cleanup might fail but the new\n\t# file should still install successfully.\n\t{\n\t  test ! -f \"$dst\" ||\n\t  $doit $rmcmd -f \"$dst\" 2>/dev/null ||\n\t  { $doit $mvcmd -f \"$dst\" \"$rmtmp\" 2>/dev/null &&\n\t    { $doit $rmcmd -f \"$rmtmp\" 2>/dev/null; :; }\n\t  } ||\n\t  { echo \"$0: cannot unlink or rename $dst\" >&2\n\t    (exit 1); exit 1\n\t  }\n\t} &&\n\n\t# Now rename the file to the real destination.\n\t$doit $mvcmd \"$dsttmp\" \"$dst\"\n      }\n    fi || exit 1\n\n    trap '' 0\n  fi\ndone\n\n# Local variables:\n# eval: (add-hook 'write-file-hooks 'time-stamp)\n# time-stamp-start: \"scriptversion=\"\n# time-stamp-format: \"%:y-%02m-%02d.%02H\"\n# time-stamp-end: \"$\"\n# End:\n"
  },
  {
    "path": "src/cpp/PLEX3/man/rips.stream.Rd",
    "content": "\\name{rips.stream}\n\\alias{rips.stream}\n\\title{Rips Stream}\n\\description{\n\tConstruct a Rips Stream from either a distance matrix or a handle to a dataset made with\n\t\t\\code{as.internal.distance.matrix}.\n}\n\t\\usage{\n\t\trips.stream(dmatrix, delta, max.edge, max.dim)\n\t}\n\\arguments{\n\t\\item{dmatrix}{A distance matrix}\n\t\\item{delta}{ No clue }\n\t\\item{max.edge}{ No clue }\n\t\\item{max.dim}{ No clue }\n}\n\\seealso{\n\t\\code{\\link{save}}.\n}\n\\examples{\n## Load point data from a CSV file\n\tpointdata <- read.table(\"plex_torus_data.txt\")\n## Create the RipsStream from the distance matrix\n\t\tstream <- rips.stream(pointdata)\n## Calculate persistence intervals from the RipsStream\n\t\tintervals <- persistence.intervals(stream)\n## Use FilterInfinite to get Betti numbers\n\t\tfilter.infinite(intervals)\n\n}\n\\keyword{stream}\n"
  },
  {
    "path": "src/cpp/PLEX3/src/Makevars.in",
    "content": "PKG_CPPFLAGS=@CPPFLAGS@\nPKG_LIBS=@LIBS@\n"
  },
  {
    "path": "src/cpp/PLEX3/src/rbind_jni.cpp",
    "content": "#include <cstdio>\n#include <cstdlib>\n#include <cmath>\n\n#include <iostream>\n#include <string>\n\n#include <map>\n\n#include <jni.h>\n\n#include <R.h>\n#include <Rinternals.h>\n\n// predicate for STL algorithms. cannot have C linkage, so outside extern \"C\"\ntemplate <typename T> bool intmap_keycompare(std::pair<int, T> a, std::pair<int, T> b)\n{\n\treturn (a.first < b.first);\n}\n\nextern \"C\" {\n\nJavaVM *jvm;\nJNIEnv* env;\n\nstd::map<std::string, jclass> cl;\nstd::map<std::string, jmethodID> fn;\n\nint add_class(std::string classname, std::string classpath);\nint add_method(std::string classname, std::string methodname, std::string methodsig);\n\n// Global persistence object. No sense in having more than one of these around\njobject p;\n\n// Keep track of the persistent stream & data Java objects. \n// These should all be global refs with finalizers. \nstd::map<int, jobject> current_streams;\nstd::map<int, jobject> current_pointdata;\n\n// Keep track of the distance matrices that need to be protected from the GC\nstd::map<int, SEXP> protected_objects;\n\nSEXP init_java(SEXP classpath) {\n\tJavaVMInitArgs initArgs;\n\tinitArgs.version = JNI_VERSION_1_4;\n\n\tJavaVMOption options[2];\n\tstd::string classpath_optstr = \"-Djava.class.path=\";\n\tclasspath_optstr += CHAR(STRING_ELT(classpath,0));\n\n\t// these lines require explicit casts to cast away const-ness. I'm trusting\n\t// Java won't be modifying the options strings.  \n\toptions[0].optionString = (char*)classpath_optstr.c_str();\n\toptions[1].optionString = (char*)\"-Djava.version=1.5\";\n  \n    \tinitArgs.options=options;\n    \tinitArgs.nOptions = 2;\n\n\t//jint JNI_GetCreatedJavaVMs(JavaVM **vmBuf, jsize bufLen, jsize *nVMs);\n\t// See if there's a pre-existing VM, and use it if so. Only the first VM returned\n\t// is used.\n\t\n\tjsize numvms;\n\tJavaVM *existing_vm;\n\tJNI_GetCreatedJavaVMs(&existing_vm, 1, &numvms);\n\n\tif(numvms > 0)\n\t\texisting_vm->AttachCurrentThread((void**)&env, NULL);\n\telse\n\t\tJNI_CreateJavaVM(&jvm, (void**)&env, (void*)&initArgs);\n\n\tadd_class(\"RDirectBufferData\", \"edu/stanford/math/plex/RDirectBufferData\");\n\tadd_method(\"RDirectBufferData\", \"<init>\", \"(ILjava/nio/ByteBuffer;)V\");\n\t\n\tadd_class(\"RipsStream\", \"edu/stanford/math/plex/RipsStream\");\n\tadd_method(\"RipsStream\", \"<init>\", \"(DDILedu/stanford/math/plex/PointData;)V\");\n\t\n\tadd_class(\"Persistence\",\"edu/stanford/math/plex/Persistence\");\n\tadd_method(\"Persistence\", \"<init>\", \"()V\");\n\tadd_method(\"Persistence\",\"computeIntervals\", \"(Ledu/stanford/math/plex/SimplexStream;)[Ledu/stanford/math/plex/PersistenceInterval$Float;\");\n\n\tadd_class(\"PersistenceInterval.Float\",\"edu/stanford/math/plex/PersistenceInterval$Float\");\n\tadd_method(\"PersistenceInterval.Float\", \"<init>\", \"()V\");\n\tadd_method(\"PersistenceInterval.Float\", \"2<init>\", \"(IDD)V\");\n\n\tadd_class(\"LazyWitnessStream\", \"edu/stanford/math/plex/LazyWitnessStream\");\n\tadd_method(\"LazyWitnessStream\", \"<init>\", \"(DIDI[ILedu/stanford/math/plex/PointData;)V\");\n\n\tadd_class(\"WitnessStream\", \"edu/stanford/math/plex/WitnessStream\");\n\t\n\tadd_method(\"WitnessStream\", \"<s>makeRandomLandmarks\", \"(Ledu/stanford/math/plex/PointData;I)[I\");\n\tadd_method(\"WitnessStream\", \"<s>estimateRmax\", \"(Ledu/stanford/math/plex/PointData;[I)D\");\n\n\tadd_class(\"Plex\", \"edu/stanford/math/plex/Plex\");\n\tadd_method(\"Plex\", \"<s>FilterInfinite\", \n\t\t\"([Ledu/stanford/math/plex/PersistenceInterval;)Ledu/stanford/math/plex/Plex$BettiNumbers;\");\n\n\tadd_class(\"Plex.BettiNumbers\", \"edu/stanford/math/plex/Plex$BettiNumbers\");\n\tadd_method(\"Plex.BettiNumbers\", \"toString\", \"()Ljava/lang/String;\");\n\n\tadd_class(\"ExplicitStream\", \"edu/stanford/math/plex/ExplicitStream\");\n\tadd_method(\"ExplicitStream\", \"<init>\", \"()V\");\n\tadd_method(\"ExplicitStream\", \"open\", \"()V\");\n\tadd_method(\"ExplicitStream\", \"close\", \"()V\");\n\tadd_method(\"ExplicitStream\", \"add\", \"([ID)V\");\n\tadd_method(\"ExplicitStream\", \"remove\", \"([I)V\");\n\n\tadd_class(\"EuclideanArrayData\", \"edu/stanford/math/plex/EuclideanArrayData\");\n\tadd_method(\"EuclideanArrayData\", \"<init>\", \"([DI)V\");\t\n\tadd_method(\"EuclideanArrayData\", \"2<init>\", \"(II)V\");\t\n\n\tp = env->NewObject(cl[\"Persistence\"], fn[\"Persistence.<init>\"]);\n\n\treturn(R_NilValue);\n}\n\nSEXP R_exception()\n{\n\tenv->ExceptionDescribe();\n\tenv->ExceptionClear();\n\n\tSEXP retval;\n\tPROTECT(retval = allocVector(INTSXP, 1));\n\n\tINTEGER(retval)[0] = -1;\n\n\tUNPROTECT(1);\n\n\treturn (retval);\n}\n\nstatic void matrix_finalizer(SEXP handle)\n{\n\tR_ReleaseObject(protected_objects[*INTEGER(R_ExternalPtrTag(handle))]);\n\tstd::cout << \"R/PLEX: Distance matrix unprotected.\" << std::endl;\n}\n\nstatic void java_data_ref_finalizer(SEXP handle)\n{\n\t// Release the JNI global reference. \n\tenv->DeleteGlobalRef(current_pointdata[*INTEGER(R_ExternalPtrTag(handle))]);\n\tstd::cout << \"R/PLEX: Java global ref to PointData deleted.\" << std::endl;\n}\n\nstatic void java_stream_ref_finalizer(SEXP handle)\n{\n\t// Release the JNI global reference. \n\tenv->DeleteGlobalRef(current_streams[*INTEGER(R_ExternalPtrTag(handle))]);\n\tstd::cout << \"R/PLEX: Java global ref to SimplexStream deleted.\" << std::endl;\n}\n\n// internal use only\njobject create_direct_buffer(SEXP matrix, SEXP buflen)\n{\n\n\tint d = *INTEGER(buflen);\n\n\tif(d < 0)\n\t\treturn (NULL);\n\n\td = sqrt(d);\n\n\t// We lose the handle to the DirectByteBuffer, but since it doesn't own the data itself,\n\t// this is trivial. Java may even clean it up for us? \n\n\tjobject dbytebuffer = env->NewDirectByteBuffer(REAL(matrix), d*d*sizeof(double));\n\n\tif(env->ExceptionOccurred())\n\t{\n\t\tenv->ExceptionDescribe();\n\t\tenv->ExceptionClear();\n\t\treturn NULL;\n\t}\n\n\tjobject distbuffer = env->NewObject(cl[\"RDirectBufferData\"], fn[\"RDirectBufferData.<init>\"], d, dbytebuffer);\n\n\tif(env->ExceptionOccurred())\n\t{\n\t\tenv->ExceptionDescribe();\n\t\tenv->ExceptionClear();\n\t\treturn NULL;\n\t}\n\n\t// If all goes well, preserve the matrix memory for Java\n\tR_PreserveObject(matrix);\n\n\treturn distbuffer;\n}\n\n\n// internal use only\nSEXP register_stream(jobject stream)\n{\n\t// get the max key and add one\n\tint streamkey = (*(std::max_element(current_streams.begin(), current_streams.end(), intmap_keycompare<jobject>))).first + 1;\n\n\tcurrent_streams[streamkey] = stream;\n\n\tSEXP streamhandle;\n\n\tPROTECT(streamhandle = allocVector(INTSXP, 1));\n\n\tINTEGER(streamhandle)[0] = streamkey;\n \n\tUNPROTECT(1);\n\n\t// convert the local stream ref into a global stream ref\n\t// and assign an R finalizer to delete it when all R \n\t// references disappear.\n\t\n\tenv->NewGlobalRef(stream);\n\n\tSEXP nhandle;\n\tPROTECT(nhandle = R_MakeExternalPtr(NULL, streamhandle, R_NilValue));\n\n\tR_RegisterCFinalizer(nhandle, java_stream_ref_finalizer);\n\n\tUNPROTECT(1);\n\n\treturn nhandle;; \n}\n\nSEXP register_pointdata(jobject pdata)\n{\n\t// get the max key and add one\n\tint datakey = (*(std::max_element(current_pointdata.begin(), current_pointdata.end(), intmap_keycompare<jobject>))).first + 1;\n\n\tcurrent_pointdata[datakey] = pdata;\n\n\tSEXP datahandle;\n\n\tPROTECT(datahandle = allocVector(INTSXP, 1));\n\n\tINTEGER(datahandle)[0] = datakey;\n\n\tUNPROTECT(1);\n\n\t// convert the local data ref into a global ref\n\t// and assign an R finalizer to delete it when all R \n\t// references disappear.\n\t\n\tenv->NewGlobalRef(pdata);\n\n\tSEXP nhandle;\n\tPROTECT(nhandle = R_MakeExternalPtr(NULL, datahandle, R_NilValue));\n\n\tR_RegisterCFinalizer(nhandle, java_data_ref_finalizer);\n\n\tUNPROTECT(1);\n\n\treturn nhandle;\n}\n\nSEXP make_internal_distance_array(SEXP dmatrix, SEXP buflen)\n{\n\tif(buflen < 0)\n\t\treturn(R_NilValue);\n\n\tjobject pdata = create_direct_buffer(dmatrix, buflen);\n\n\tSEXP nhandle = register_pointdata(pdata);\t\n\n\t// Add finalizer to the handle to clean up the matrix memory, and\n\t// add matrix to the projected objects list.\n\n\tprotected_objects[*INTEGER(R_ExternalPtrTag(nhandle))] = dmatrix;\n\tR_RegisterCFinalizer(nhandle, matrix_finalizer);\n\n\treturn nhandle; \n}\n\nSEXP random_euclidean_array_data(SEXP count, SEXP dim)\n{\n\tif(*INTEGER(count) < 0 || *INTEGER(dim) < 0)\n\t\treturn (R_NilValue);\n\n\tjobject arr = env->NewObject(cl[\"EuclideanArrayData\"], fn[\"EuclideanArrayData.2<init>\"], *INTEGER(count), *INTEGER(dim));\n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn register_pointdata(arr);\n}\n\n// also include accessors for pointdata?\n\nSEXP make_random_landmarks(SEXP pdata_handle, SEXP landmark_count)\n{\n\tint sid = *INTEGER(R_ExternalPtrTag(pdata_handle));\n\tif(current_pointdata.find(sid) == current_pointdata.end())\n\t\treturn (R_NilValue);\n\n\tjobject arr = env->CallStaticObjectMethod(cl[\"WitnessStream\"], fn[\"WitnessStream.<s>makeRandomLandmarks\"],\n\t\tcurrent_pointdata[sid], *INTEGER(landmark_count));\n\n\tint len = env->GetArrayLength((jintArray)arr);\n\n\tSEXP landmarks_arr;\n\n\tPROTECT(landmarks_arr = allocVector(INTSXP, len));\n\n\tint *parr = env->GetIntArrayElements((jintArray)arr, NULL);\n\tmemcpy(INTEGER(landmarks_arr), parr, len*sizeof(int));\n\tenv->ReleaseIntArrayElements((jintArray)arr, parr, JNI_ABORT);\n\n\tUNPROTECT(1);\n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn landmarks_arr;\n}\n\nSEXP estimate_r_max(SEXP pdata_handle, SEXP landmarks)\n{\n\t// landmarks represented as an array of ints. translate this back into java \n\n\tint sid = *INTEGER(R_ExternalPtrTag(pdata_handle));\n\tif(current_pointdata.find(sid) == current_pointdata.end())\n\t\treturn (R_NilValue);\n\n\tint len = length(landmarks);\n\n\tjintArray landmarkarr = env->NewIntArray(len);\n\tint *parr = env->GetIntArrayElements(landmarkarr, NULL);\n\n\tmemcpy(parr, INTEGER(landmarks), len*sizeof(int));\n\tenv->ReleaseIntArrayElements(landmarkarr, parr, 0);\n\n\tjdouble rmax = env->CallStaticDoubleMethod(cl[\"WitnessStream\"], fn[\"WitnessStream.<s>estimateRmax\"],\n\t\tcurrent_pointdata[sid], landmarkarr);\n\n\tSEXP r_rmax;\n\n\tPROTECT(r_rmax = allocVector(REALSXP, 1));\n\n\tREAL(r_rmax)[0] = rmax;\n\n\tUNPROTECT(1);\n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn r_rmax;\n}\n\nSEXP filter_infinite(SEXP intervals, SEXP intervalcount)\n{\n\t// repack interval vector (of reals) into PersistenceInterval.Floats\n\tjobjectArray intervalarr = env->NewObjectArray(*INTEGER(intervalcount), cl[\"PersistenceInterval.Float\"], NULL);\n\tfor(int i = 0; i < *INTEGER(intervalcount); i++)\n\t{\n\t\tjobject ival = env->NewObject(cl[\"PersistenceInterval.Float\"], fn[\"PersistenceInterval.Float.2<init>\"],\n\t\t\t(int)(REAL(intervals)[3*i+0] + 0.1), REAL(intervals)[3*i+1], REAL(intervals)[3*i+2]);\n\t\tenv->SetObjectArrayElement(intervalarr, i, ival);\n\t}\n\n\tjobject bn = env->CallStaticObjectMethod(cl[\"Plex\"], fn[\"Plex.<s>FilterInfinite\"], intervalarr);\n\n\tjstring bn_str = (jstring)env->CallObjectMethod(bn, fn[\"Plex.BettiNumbers.toString\"]); \n\n\tSEXP r_bettinumbers;\n\tconst char *sbettinumbers = env->GetStringUTFChars(bn_str, 0);\n\n\tPROTECT(r_bettinumbers = allocVector(STRSXP, 1));\n\tSET_STRING_ELT(r_bettinumbers, 0, mkChar(sbettinumbers));\n\tUNPROTECT(1);\n\n\tenv->ReleaseStringUTFChars(bn_str, sbettinumbers);\n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn r_bettinumbers;\n}\n\nSEXP create_lw_stream_from_handle(SEXP pdata_handle, SEXP granularity, SEXP max_d, SEXP rmax, SEXP nu, SEXP landmarks) \n{\n\tint sid = *INTEGER(R_ExternalPtrTag(pdata_handle));\n\tif(current_pointdata.find(sid) == current_pointdata.end())\n\t\treturn (R_NilValue);\n\n\tint len = length(landmarks);\n\n\tjintArray landmarkarr = env->NewIntArray(len);\n\tint *parr = env->GetIntArrayElements(landmarkarr, NULL);\n\n\tmemcpy(parr, INTEGER(landmarks), len*sizeof(int));\n\tenv->ReleaseIntArrayElements(landmarkarr, parr, 0);\n\n\tjobject lw_stream = env->NewObject(cl[\"LazyWitnessStream\"], fn[\"LazyWitnessStream.<init>\"],\n\t\t*REAL(granularity), *INTEGER(max_d), *REAL(rmax), *INTEGER(nu), landmarkarr, current_pointdata[sid]);\n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn register_stream(lw_stream);\n}\n\nSEXP create_rips_stream(SEXP pdata_handle, SEXP delta, SEXP max_len, SEXP max_d, SEXP mat_buflen)\n{\n\tint sid = *INTEGER(R_ExternalPtrTag(pdata_handle));\n\tif(current_pointdata.find(sid) == current_pointdata.end())\n\t\treturn (R_NilValue);\n\n\tjobject rips_str = env->NewObject(cl[\"RipsStream\"], fn[\"RipsStream.<init>\"], *REAL(delta), *REAL(max_len), *INTEGER(max_d), current_pointdata[sid]);\n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn register_stream(rips_str);\n\n}\n\nSEXP create_explicit_stream()\n{\n\tjobject ex_stream = env->NewObject(cl[\"ExplicitStream\"], fn[\"ExplicitStream.<init>\"]);\n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn register_stream(ex_stream);\n}\n\nSEXP open_ex_stream(SEXP streamid)\n{\n\tint sid = *INTEGER(R_ExternalPtrTag(streamid));\n\tif(current_streams.find(sid) == current_streams.end())\n\t\treturn (R_NilValue);\n\n\tenv->CallObjectMethod(current_streams[sid], fn[\"ExplicitStream.open\"]); \n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn(R_NilValue);\n}\n\n\nSEXP close_ex_stream(SEXP streamid)\n{\n\tint sid = *INTEGER(R_ExternalPtrTag(streamid));\n\tif(current_streams.find(sid) == current_streams.end())\n\t\treturn (R_NilValue);\n\n\tenv->CallObjectMethod(current_streams[sid], fn[\"ExplicitStream.close\"]); \n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn(R_NilValue);\n}\n\nSEXP add_simplex(SEXP streamid, SEXP vertices, SEXP param)\n{\n\tint sid = *INTEGER(R_ExternalPtrTag(streamid));\n\tif(current_streams.find(sid) == current_streams.end())\n\t\treturn (R_NilValue);\n\n\tint len = length(vertices);\n\n\tjintArray vertices_arr = env->NewIntArray(len);\n\tint *parr = env->GetIntArrayElements(vertices_arr, NULL);\n\n\tmemcpy(parr, INTEGER(vertices), len*sizeof(int));\n\tenv->ReleaseIntArrayElements(vertices_arr, parr, 0);\n\n\tenv->CallObjectMethod(current_streams[sid], fn[\"ExplicitStream.add\"], vertices_arr, *REAL(param)); \n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn(R_NilValue);\n}\n\nSEXP remove_simplex(SEXP streamid, SEXP vertices)\n{\n\tint sid = *INTEGER(R_ExternalPtrTag(streamid));\n\tif(current_streams.find(sid) == current_streams.end())\n\t\treturn (R_NilValue);\n\n\tint len = length(vertices);\n\n\tjintArray vertices_arr = env->NewIntArray(len);\n\tint *parr = env->GetIntArrayElements(vertices_arr, NULL);\n\n\tmemcpy(parr, INTEGER(vertices), len*sizeof(int));\n\tenv->ReleaseIntArrayElements(vertices_arr, parr, 0);\n\n\tenv->CallObjectMethod(current_streams[sid], fn[\"ExplicitStream.remove\"], vertices_arr); \n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn(R_NilValue);\n}\n\nSEXP get_intervals_from_stream(SEXP streamid)\n{\n\tint sid = *INTEGER(R_ExternalPtrTag(streamid));\n\n\tif(current_streams.find(sid) == current_streams.end())\n\t\treturn (R_NilValue);\n\n\tjobject intervals = env->CallObjectMethod(p, fn[\"Persistence.computeIntervals\"], current_streams[sid]);\n\t\n\tjfieldID dimension = env->GetFieldID(cl[\"PersistenceInterval.Float\"], \"dimension\", \"I\");\n\tjfieldID start = env->GetFieldID(cl[\"PersistenceInterval.Float\"], \"start\", \"D\");\n\tjfieldID end = env->GetFieldID(cl[\"PersistenceInterval.Float\"], \"end\", \"D\");\n\n\tint len = env->GetArrayLength((jobjectArray)intervals);\n\n\tSEXP pintervals;\n\n\tPROTECT(pintervals = allocVector(REALSXP, 3*len));\n\n\tfor(int i = 0; i < len; i++)\n\t{\n\t\tjobject firstint = env->GetObjectArrayElement((jobjectArray)intervals, i); \n\t\tREAL(pintervals)[3*i + 0] = (double)env->GetIntField(firstint, dimension); \n\t\tREAL(pintervals)[3*i + 1] = (double)env->GetDoubleField(firstint, start); \n\t\tREAL(pintervals)[3*i + 2] = (double)env->GetDoubleField(firstint, end); \n\t}\n\n\tUNPROTECT(1);\n\n\tif(env->ExceptionOccurred())\n\t\treturn R_exception();\n\n\treturn(pintervals);\n} \n\nint add_class(std::string classname, std::string classpath) {\n\tif(!env)\n\t\treturn -1;\n\n\tjclass t = env->FindClass(classpath.c_str());\n\tcl[classname] = t;\n\n\tif(env->ExceptionOccurred())\n\t{\n\t\tenv->ExceptionDescribe();\n\t\tenv->ExceptionClear();\n\t\treturn -1;\n\t}\n\n\treturn 0;\n}\n\nint add_method(std::string classname, std::string methodname, std::string methodsig)\n{\n\tif(!env)\n\t\treturn -1;\n\n\tjmethodID t;\n\n\tif(methodname.substr(0,3) == \"<s>\")\n\t\tt = env->GetStaticMethodID(cl[classname], methodname.substr(3).c_str(), methodsig.c_str());\n\telse if(std::isdigit(methodname.substr(0,1)[0]))\n\t\tt = env->GetMethodID(cl[classname], methodname.substr(1).c_str(), methodsig.c_str()); \n\telse\n\t\tt = env->GetMethodID(cl[classname], methodname.c_str(), methodsig.c_str());\n\n\tfn[classname + \".\" + methodname] = t;\n\n\tif(env->ExceptionOccurred())\n\t{\n\t\tenv->ExceptionDescribe();\n\t\tenv->ExceptionClear();\n\t\treturn -1;\n\t}\n\treturn 0;\n}\n}\n\n"
  },
  {
    "path": "src/java/bsh/JPlex.java",
    "content": "package bsh;\r\n\r\n// \r\n//  JPlex.java\r\n// \r\n//  ***************************************************************************\r\n// \r\n//  Copyright 2008, Stanford University\r\n// \r\n//  Permission to use, copy, modify, and distribute this software and its\r\n//  documentation for any purpose and without fee is hereby granted,\r\n//  provided that the above copyright notice appear in all copies and that\r\n//  both that copyright notice and this permission notice appear in\r\n//  supporting documentation, and that the name of Stanford University not\r\n//  be used in advertising or publicity pertaining to distribution of the\r\n//  software without specific, written prior permission.  Stanford\r\n//  University makes no representations about the suitability of this\r\n//  software for any purpose.  It is provided \"as is\" without express or\r\n//  implied warranty.\r\n// \r\n//  ***************************************************************************\r\n// \r\n//  JPlex.java\r\n// \r\n//  $Id: JPlex.java,v 1.2 2008/09/25 17:50:25 hsexton Exp $\r\n// \r\n\r\nimport edu.stanford.math.plex.Plex;\r\n\r\n/**\r\n * The <code>JPlex</code> class is the entry point for Plex users into Beanshell.\r\n * This file is a trivial modification of the analogous code in Beanshell.\r\n * <p>\r\n *\r\n * @version $Id: JPlex.java,v 1.2 2008/09/25 17:50:25 hsexton Exp $\r\n */\r\npublic class JPlex {\r\n  /**\r\n   * The arguments to main are ignored. This method should be invoked via:\r\n   * <p>\r\n   * <code>java -cp plex.jar JPlex</code>\r\n   */\r\n\tpublic static void main( String args[] ) {\r\n\t\tif (!Capabilities.classExists( \"bsh.util.Util\" ))\r\n\t\t\tSystem.out.println(\"Can't find the BeanShell utilities.\");\r\n\r\n\t\tif (Capabilities.haveSwing()) {\r\n\t\t\ttry {\r\n        Plex.useMessageWindow(true);\r\n\t\t\t\tnew Interpreter().eval(\"desktop()\");\r\n\t\t\t} catch ( EvalError e ) {\r\n\t\t\t\tSystem.err.println(\"Couldn't start desktop: \"+e);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tSystem.err.println(\"Can't find required javax.swing package\");\r\n\t\t}\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src/java/bsh/JTerm.java",
    "content": "package bsh;\r\n\r\n// \r\n//  JTerm.java\r\n// \r\n//  ***************************************************************************\r\n// \r\n//  Copyright 2008, Stanford University\r\n// \r\n//  Permission to use, copy, modify, and distribute this software and its\r\n//  documentation for any purpose and without fee is hereby granted,\r\n//  provided that the above copyright notice appear in all copies and that\r\n//  both that copyright notice and this permission notice appear in\r\n//  supporting documentation, and that the name of Stanford University not\r\n//  be used in advertising or publicity pertaining to distribution of the\r\n//  software without specific, written prior permission.  Stanford\r\n//  University makes no representations about the suitability of this\r\n//  software for any purpose.  It is provided \"as is\" without express or\r\n//  implied warranty.\r\n// \r\n//  ***************************************************************************\r\n// \r\n//  JTerm.java\r\n// \r\n//  $Id: JTerm.java,v 1.1 2008/09/16 17:21:32 hsexton Exp $\r\n// \r\n\r\n\r\n/**\r\n * The <code>JTerm</code> class is the entry point for Plex users into\r\n * Beanshell who want a simple \"terminal\" interface (no windows, menus,\r\n * etc.).  <p>\r\n *\r\n * @version $Id: JTerm.java,v 1.1 2008/09/16 17:21:32 hsexton Exp $\r\n */\r\npublic class JTerm {\r\n  /**\r\n   * The arguments to main are ignored. This method should be invoked via:\r\n   * <p>\r\n   * <code>java -cp plex.jar JTerm</code>\r\n   */\r\n\tpublic static void main( String args[] ) {\r\n\t\tif (!Capabilities.classExists( \"bsh.util.Util\" ))\r\n\t\t\tSystem.out.println(\"Can't find the BeanShell utilities.\");\r\n\r\n    try {\r\n      new Interpreter().eval(\"makeListener(\\\"top level\\\")\");\r\n    } catch ( EvalError e ) {\r\n      System.err.println(\"Couldn't start listener: \"+e);\r\n    }\r\n  } \r\n}\r\n\r\n\r\n"
  },
  {
    "path": "src/java/bsh/PlexInterpreter.java",
    "content": "// \r\n//  PlexInterpreter.java\r\n// \r\n//  ***************************************************************************\r\n// \r\n//  Copyright 2008, Stanford University\r\n// \r\n//  Permission to use, copy, modify, and distribute this software and its\r\n//  documentation for any purpose and without fee is hereby granted,\r\n//  provided that the above copyright notice appear in all copies and that\r\n//  both that copyright notice and this permission notice appear in\r\n//  supporting documentation, and that the name of Stanford University not\r\n//  be used in advertising or publicity pertaining to distribution of the\r\n//  software without specific, written prior permission.  Stanford\r\n//  University makes no representations about the suitability of this\r\n//  software for any purpose.  It is provided \"as is\" without express or\r\n//  implied warranty.\r\n// \r\n//  ***************************************************************************\r\n// \r\n//  PlexInterpreter.java\r\n// \r\n//  $Id$\r\n// \r\n\r\npackage bsh;\r\n\r\n\r\n/**\r\n * The <code>PlexInterpreter</code> class is a wrapper for Interpreter\r\n * whose only purpose at the moment is to allow users to log their input to\r\n * a file. The <code>PlexReader</code> class is the one that does the\r\n * actual logging. Instances of this class are easier to get our hands on\r\n * in some scripts, so we put methods to enable/disable logging and specify\r\n * the logfile name in here.\r\n */\r\npublic class PlexInterpreter extends Interpreter {\r\n\r\n  // Needed because Interpreter is serializable.\r\n  public static final long serialVersionUID = 0;\r\n\r\n  /**\r\n   * Constructor PlexInterpreter, only called in the makeWorkspace.bsh\r\n   * script. We ignore the name argument.\r\n   * <p>\r\n   * @param      console Console for the workspace using this interpreter instance.\r\n   * @param      name Workspace name, which we ignore.\r\n   */\r\n  public PlexInterpreter(ConsoleInterface console, String name) {\r\n    super(PlexReader.log(console.getIn(), name), console.getOut(), console.getErr(), \r\n          true, null);\r\n\t\tsetConsole(console);\r\n  }\r\n\r\n  /**\r\n   * Constructor PlexInterpreter, only called in the makeListener.bsh.\r\n   * <p>\r\n   * @param      name Workspace name, which we ignore.\r\n   */\r\n  public PlexInterpreter(String name) {\r\n    super(PlexReader.log(System.in, name), System.out, System.err, true);\r\n  }\r\n\r\n  /**\r\n   * Specify the name of the logfile.\r\n   * <p>\r\n   * @param      logfile_name Where to write the input log, if we keep one.\r\n   */\r\n  public void setLogfile(String logfile_name) {\r\n    if (in instanceof PlexReader)\r\n      ((PlexReader)in).setLogfile(logfile_name);\r\n  }\r\n\r\n  /**\r\n   * Turn ON input logging for this Interpreter.\r\n   * <p>\r\n   */\r\n  public void enableLogging() {\r\n    if (in instanceof PlexReader)\r\n      ((PlexReader)in).enable();\r\n  }\r\n\r\n  /**\r\n   * Return the status string\r\n   * <p>\r\n   */\r\n  public String logStatus() {\r\n    if (in instanceof PlexReader) {\r\n      return ((PlexReader)in).log_status();\r\n    } else\r\n      return \"No logging status available for this Interpreter instance.\";\r\n  }\r\n\r\n  /**\r\n   * Turn OFF input logging for this Interpreter.\r\n   * <p>\r\n   */\r\n  public void disableLogging() {\r\n    if (in instanceof PlexReader)\r\n      ((PlexReader)in).disable();\r\n  }\r\n}\r\n"
  },
  {
    "path": "src/java/bsh/PlexReader.java",
    "content": "// \r\n//  PlexReader.java\r\n// \r\n//  ***************************************************************************\r\n// \r\n//  Copyright 2008, Stanford University\r\n// \r\n//  Permission to use, copy, modify, and distribute this software and its\r\n//  documentation for any purpose and without fee is hereby granted,\r\n//  provided that the above copyright notice appear in all copies and that\r\n//  both that copyright notice and this permission notice appear in\r\n//  supporting documentation, and that the name of Stanford University not\r\n//  be used in advertising or publicity pertaining to distribution of the\r\n//  software without specific, written prior permission.  Stanford\r\n//  University makes no representations about the suitability of this\r\n//  software for any purpose.  It is provided \"as is\" without express or\r\n//  implied warranty.\r\n// \r\n//  ***************************************************************************\r\n// \r\n//  PlexReader.java\r\n// \r\n//  $Id$\r\n// \r\n\r\npackage bsh;\r\n\r\nimport java.io.File;\r\nimport java.io.FileOutputStream;\r\nimport java.io.FilterReader;\r\nimport java.io.IOException;\r\nimport java.io.InputStream;\r\nimport java.io.InputStreamReader;\r\nimport java.io.OutputStreamWriter;\r\nimport java.io.Reader;\r\n\r\n/**\r\n * The <code>PlexReader</code> class is a wrapper for the input Reader for\r\n * interactive Interpreter instances. We intercept the <code>read()</code>\r\n * operations, and when input logging is enabled, we write (with conversion\r\n * if needed) the chars <code>read()</code> into a log file. Such a file\r\n * can be read and executed later via the <code>source()</code> command,\r\n * for instance.\r\n */\r\npublic class PlexReader extends FilterReader {\r\n\r\n\tprivate static boolean logging_by_default = false;\r\n\tprivate static String default_logfile_dir = System.getProperty(\"user.home\") + File.separator + \"plex\";\r\n\tprivate static String default_logfile_prefix = \"log\";\r\n\tprivate static String default_logfile_suffix = \".txt\";\r\n\r\n\t// Something to throw when we get PlexReader errors\r\n\tprivate static final class Error extends IOException {\r\n\t\tpublic final static long serialVersionUID = 0;\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tpublic Error() {\r\n\t\t\tsuper(\"PlexReader error\");\r\n\t\t}\r\n\t\tpublic Error(String message) {\r\n\t\t\tsuper(\"PlexReader error: \" + message);\r\n\t\t}\r\n\t}\r\n\r\n\t// Something to throw when we get \"expected\" PlexReader errors\r\n\tprivate static final class ContinuableError extends IOException {\r\n\t\tpublic final static long serialVersionUID = 0;\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tpublic ContinuableError() {\r\n\t\t\tsuper(\"PlexReader exception\");\r\n\t\t}\r\n\t\tpublic ContinuableError(String message) {\r\n\t\t\tsuper(\"PlexReader exception: \" + message);\r\n\t\t}\r\n\t}\r\n\r\n\t// Something to throw when we get PlexReader errors we can't handle\r\n\tprivate static final class FatalError extends IOException {\r\n\t\tpublic final static long serialVersionUID = 0;\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tpublic FatalError() {\r\n\t\t\tsuper(\"Unrecoverable PlexReader error\");\r\n\t\t}\r\n\t\tpublic FatalError(String message) {\r\n\t\t\tsuper(\"Unrecoverable PlexReader error: \" + message);\r\n\t\t}\r\n\t}\r\n\r\n\t// We need a place to store a copy of the characters from the underlying\r\n\t// stream so that we can convert all of the backslash-u escaped expansions that\r\n\t// wind up in these streams for some mysterious reason. Anyway, we copy\r\n\t// the characters in bulk from the input stream buffer where they got put\r\n\t// by the read, and then we consume as many of them as we can convert at\r\n\t// a time, and put those in the actual buffer that gets written to the\r\n\t// logfile.\r\n\tprivate static final class CharQ {\r\n\t\tprivate int first;\r\n\t\tprivate int free;\r\n\t\tprivate char[] buf;\r\n\t\tprivate final static int INIT_SZ = 1024;\r\n\r\n\t\tpublic CharQ() {\r\n\t\t\tfirst = 0;\r\n\t\t\tfree = 0;\r\n\t\t\tbuf = new char[INIT_SZ];\r\n\t\t}\r\n\r\n\t\tprivate void reset() {\r\n\t\t\tfirst = 0;\r\n\t\t\tfree = 0;\r\n\t\t}\r\n\r\n\t\tprivate final void ensureSpace(int need) {\r\n\t\t\tif (first > 0) {\r\n\t\t\t\tif (first < free) {\r\n\t\t\t\t\tfor (int i = first; i < free; i++) {\r\n\t\t\t\t\t\tbuf[i-first] = buf[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfree -= first;\r\n\t\t\t\tfirst = 0;\r\n\t\t\t}\r\n\t\t\tif ((free + need) > buf.length) {\r\n\t\t\t\t// grow the buffer\r\n\t\t\t\tassert(first == 0);\r\n\t\t\t\tint new_size = 2*buf.length;\r\n\t\t\t\tif (new_size < (need + free))\r\n\t\t\t\t\tnew_size = need + free;\r\n\t\t\t\tchar[] new_buf = new char[new_size];\r\n\t\t\t\tfor (int i = 0; i < free; i++) {\r\n\t\t\t\t\tnew_buf[i] = buf[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tpublic final void add(char c) {\r\n\t\t\tensureSpace(1);\r\n\t\t\tbuf[free++] = c;\r\n\t\t}\r\n\r\n\t\tpublic final void bulkAdd(char[] b, int pos, int len) {\r\n\t\t\tensureSpace(len);\r\n\t\t\tfor (int i = 0; i < len; i++) {\r\n\t\t\t\tbuf[free++] = b[pos+i];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpublic final String toString() {\r\n\t\t\tif (first < free)\r\n\t\t\t\treturn new String(buf, first, free-first);\r\n\t\t\telse\r\n\t\t\t\treturn new String(\"\");\r\n\t\t}\r\n\r\n\t\tpublic final int available() {\r\n\t\t\treturn (free-first);\r\n\t\t}\r\n\r\n\t\tpublic final boolean hasNext() {\r\n\t\t\treturn (first < free);\r\n\t\t}\r\n\r\n\t\tstatic final int char_to_hex(char c) throws FatalError {\r\n\t\t\tif ((c >= '0') && (c <= '9'))\r\n\t\t\t\treturn (c - '0');\r\n\t\t\telse if ((c >= 'a') && (c <= 'f'))\r\n\t\t\t\treturn (c - 'a') + 10;\r\n\t\t\telse if ((c >= 'A') && (c <= 'F'))\r\n\t\t\t\treturn (c - 'A') + 10;\r\n\t\t\telse \r\n\t\t\t\tthrow new FatalError(\"Unexpected value, \" + c + \", in hex escape sequence.\");\r\n\t\t}\r\n\r\n\r\n\t\tpublic final char next() throws Error {\r\n\t\t\tif (first < free)\r\n\t\t\t\treturn buf[first++];\r\n\t\t\telse\r\n\t\t\t\tthrow new Error(\"reading past end of queue\");\r\n\t\t}\r\n\r\n\t\tpublic final char peek() throws Error {\r\n\t\t\tif (first < free)\r\n\t\t\t\treturn buf[first];\r\n\t\t\telse\r\n\t\t\t\tthrow new Error(\"peeking past end of queue\");\r\n\t\t}\r\n\r\n\t\tpublic final int current() {\r\n\t\t\treturn first;\r\n\t\t}\r\n\r\n\t\tpublic final void rewind(int new_first) {\r\n\t\t\tif ((0 <= new_first) && (new_first <= first))\r\n\t\t\t\tfirst = new_first;\r\n\t\t\telse\r\n\t\t\t\tthrow new IllegalArgumentException(\"rewinding first to illegal value\");\r\n\t\t}\r\n\r\n\t\tpublic final char convertNext() throws Error, ContinuableError, FatalError {\r\n\t\t\tint initial = current();\r\n\t\t\tint available = available();\r\n\r\n\t\t\t// Should never get called when available <= 0.\r\n\t\t\tchar c = next();\r\n\r\n\t\t\tif (c != '\\\\') {\r\n\t\t\t\treturn c;\r\n\t\t\t} else {\r\n\t\t\t\t// backslash case\r\n\t\t\t\tif (available == 1) {\r\n\t\t\t\t\trewind(initial);\r\n\t\t\t\t\tthrow new ContinuableError(\"trailing backslash\");\r\n\t\t\t\t} else if (peek() != 'u') {\r\n\t\t\t\t\treturn c;\r\n\t\t\t\t} else if (available < 6) {\r\n\t\t\t\t\trewind(initial);\r\n\t\t\t\t\tthrow new ContinuableError(\"incomplete binary escape sequence\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// backslash-u case with enough characters. Unless the stream is\r\n\t\t\t\t\t// garbled, we can decode. If the stream is garbled, we throw a\r\n\t\t\t\t\t// FatalError with a message that shows the queue contents. The\r\n\t\t\t\t\t// FatalError signals the calling method to turn off logging, and\r\n\t\t\t\t\t// perhaps the unlucky user send us a bug report with the\r\n\t\t\t\t\t// message, if we are not also unlucky.\r\n\r\n\t\t\t\t\t// eat the 'u'\r\n\t\t\t\t\tnext();\r\n\r\n\t\t\t\t\tc = (char)(char_to_hex(next()) << 12 |\r\n\t\t\t\t\t\t\tchar_to_hex(next()) << 8 |\r\n\t\t\t\t\t\t\tchar_to_hex(next()) << 4 |\r\n\t\t\t\t\t\t\tchar_to_hex(next()));\r\n\t\t\t\t\treturn c;\r\n\t\t\t\t} \r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate boolean logging;\r\n\tprivate String logfile_prefix;\r\n\tprivate String logfile_suffix;\r\n\tprivate String logfile_dir;\r\n\t// can be set to override generated names\r\n\tprivate String logfile_name;\r\n\tprivate final char[] logbits;\r\n\tprivate int bits_offset;\r\n\tprivate OutputStreamWriter logstream;\r\n\tprivate final CharQ logqueue;\r\n\tprivate final static int LOGBITS_LEN = 10;\r\n\r\n\t/**\r\n\t * Constructor PlexReader, only called by PlexInterpreter(). We ignore the name argument.\r\n\t * <p>\r\n\t * @param      in Input Reader for an interative interpreter instance.\r\n\t * @param      ws_name Workspace name, which we ignore.\r\n\t */\r\n\tpublic PlexReader(Reader in, String ws_name) {\r\n\t\tsuper(in);\r\n\t\tlogging = logging_by_default;\r\n\t\tlogfile_prefix = default_logfile_prefix + \"_\"; //  ws_name + \"_\";\r\n\t\tlogfile_suffix = default_logfile_suffix;\r\n\t\tlogfile_dir = default_logfile_dir;\r\n\t\tlogbits = new char[LOGBITS_LEN];\r\n\t\tlogqueue = new CharQ();\r\n\t\tbits_offset = 0;\r\n\t}\r\n\r\n\t// Clear buffer state.\r\n\tprivate void reset_log_data() {\r\n\t\tlogqueue.reset();\r\n\t\tbits_offset = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Wrap Reader instance in a PlexReader, unless we already did. We ignore the name argument.\r\n\t * <p>\r\n\t * @param      in Input Reader for an interative interpreter instance.\r\n\t * @param      ws_name Workspace name, which we ignore.\r\n\t * @return A PlexReader wrapper for in.\r\n\t */\r\n\tstatic Reader log(Reader in, String ws_name) {\r\n\t\tif (in instanceof PlexReader)\r\n\t\t\treturn in;\r\n\t\telse {\r\n\t\t\tPlexReader return_value = null;\r\n\t\t\ttry {\r\n\t\t\t\treturn_value = new PlexReader(in, ws_name);\r\n\t\t\t\tif (logging_by_default)\r\n\t\t\t\t\treturn_value.enable(null);\r\n\t\t\t} catch (java.io.IOException ioe) {\r\n\t\t\t\treturn (in);\r\n\t\t\t}\r\n\t\t\treturn return_value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Wrap InputStream instance in a PlexReader. We ignore the name argument.\r\n\t * <p>\r\n\t * @param      in InputStream for an terminal-based interpreter instance.\r\n\t * @param      ws_name Workspace name, which we ignore.\r\n\t * @return A PlexReader wrapper for in.\r\n\t */\r\n\tstatic Reader log(InputStream in, String ws_name) {\r\n\t\tPlexReader return_value = null;\r\n\t\ttry {\r\n\t\t\treturn_value = new PlexReader(new InputStreamReader(in), ws_name);\r\n\t\t\tif (logging_by_default)\r\n\t\t\t\treturn_value.enable(null);\r\n\t\t} catch (java.io.IOException ioe) {\r\n\t\t\treturn (new InputStreamReader(in));\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t// Try to make a new logfile with a name that makes it easy to find the\r\n\t// newest one (e.g., ls lists the files in order of creation). If that\r\n\t// doesn't seem to be working, give up and use the tempfile method.\r\n\tprivate static File createNewFile(String prefix, \r\n\t\t\tString suffix, \r\n\t\t\tString dir) throws IOException {\r\n\t\tfor (int i = 0; i < 100; i++) {\r\n\t\t\tString name = String.format(\"%s%s%s%02d%s\",\r\n\t\t\t\t\tdir, File.separator, prefix, i, suffix);\r\n\t\t\tFile tmp = new File(name);\r\n\t\t\tif (!tmp.exists())\r\n\t\t\t\treturn tmp;\r\n\t\t}\r\n\r\n\t\t// give up\r\n\t\treturn(File.createTempFile(prefix, suffix, new File(dir)));\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Enable logging, making sure that there is an underlying logstream.\r\n\t * <p>\r\n\t * @param      log_name Name to use as logfile, or null, if the default is okay.\r\n\t */\r\n\tpublic void enable(String log_name) throws IOException {\r\n\t\tif (logstream == null) {\r\n\t\t\t// no logstream, so make one\r\n\t\t\tlogfile_name = log_name;\r\n\t\t\tif (logfile_name != null) {\r\n\t\t\t\tlogstream = \r\n\t\t\t\t\tnew OutputStreamWriter(new FileOutputStream(new File(logfile_name)));\r\n\t\t\t} else {\r\n\t\t\t\tFile lfile = createNewFile(logfile_prefix, logfile_suffix, logfile_dir);\r\n\t\t\t\tlogfile_name = lfile.toString();\r\n\t\t\t\tlogstream = new OutputStreamWriter(new FileOutputStream(lfile));\r\n\t\t\t}\r\n\t\t}\r\n\t\tlogging = true;\r\n\t}\r\n\r\n\t/**\r\n\t * Enable logging, using default settings if there is no underlying logstream.\r\n\t * <p>\r\n\t */\r\n\tfinal void enable() {\r\n\t\tif (logstream != null) {\r\n\t\t\tif (!logging)\r\n\t\t\t\tbits_offset = 0;\r\n\t\t\tlogging = true;\r\n\t\t} else {\r\n\t\t\ttry {\r\n\t\t\t\tenable(null);\r\n\t\t\t} catch (java.io.IOException ioe) {\r\n\t\t\t\tlogging = false;\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Disable logging, flushing any unwritten input, and leaving the\r\n\t * underlying logstream, if any, in place. <p>\r\n\t */\r\n\tfinal void disable() {\r\n\t\tif (logging) {\r\n\t\t\tflush();\r\n\t\t}\r\n\t\tlogging = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Force logstream to go to specified filename.\r\n\t * <p>\r\n\t * @param new_log_name Name to use as logfile -- must be the name of a\r\n\t * writable file.\r\n\t */\r\n\tpublic void setLogfile (String new_log_name) {\r\n\t\tif (logstream != null) {\r\n\t\t\tFile old_file = new File(logfile_name);\r\n\t\t\tFile new_file = new File(new_log_name);\r\n\t\t\tif (old_file.equals(new_file))\r\n\t\t\t\treturn;\r\n\t\t\telse {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tlogstream.flush();\r\n\t\t\t\t} catch (IOException e) {\r\n\t\t\t\t}\r\n\t\t\t\ttry {\r\n\t\t\t\t\tlogstream.close();\r\n\t\t\t\t} catch (IOException e) {\r\n\t\t\t\t}\r\n\t\t\t\treset_log_data();\r\n\t\t\t\tlogstream = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\tlogfile_name = new String(new_log_name);\r\n\t\ttry {\r\n\t\t\tlogstream = \r\n\t\t\t\tnew OutputStreamWriter(new FileOutputStream(new File(logfile_name)));\r\n\t\t} catch (IOException e) {\r\n\t\t\tthrow new IllegalArgumentException(\"Failed setting logfile to: \" +\r\n\t\t\t\t\tlogfile_name + \"\\n\" +\r\n\t\t\t\t\te.getMessage());\r\n\t\t}\r\n\t}\r\n\r\n\t// Append the log to the specified log file.\r\n\tprivate boolean flush() {\r\n\t\tif (logging && (logstream != null) && (bits_offset > 0)) {\r\n\t\t\ttry {\r\n\t\t\t\tlogstream.write(logbits, 0, bits_offset);\r\n\t\t\t\tlogstream.flush();\r\n\t\t\t} catch (java.io.IOException ioe) {\r\n\t\t\t\t// turn off logging -- we're losing here\r\n\t\t\t\tlogging = false;\r\n\t\t\t\tbits_offset = 0;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tbits_offset = 0;\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// Read the next character out of the logqueue, and do whatever\r\n\t// conversions are appropriate. If we encounter a FatalError, turn off\r\n\t// logging and try to indicate the nature of the lossage to the user. If\r\n\t// we encounter a ContinuableError, return. Encountering an Error is a\r\n\t// sign of a programming mistake, so we want to hear about that, too, but\r\n\t// I doubt that we will, and I hope that it never comes up.\r\n\tprivate void convertInput() {\r\n\t\tint q_pos = 0;\r\n\t\ttry {\r\n\t\t\twhile(logqueue.hasNext()) {\r\n\t\t\t\tq_pos = logqueue.current();\r\n\t\t\t\tchar last_char = logbits[bits_offset++] = logqueue.convertNext();\r\n\t\t\t\tif ((bits_offset == logbits.length) ||\r\n\t\t\t\t\t\t(last_char == '\\n')) {\r\n\t\t\t\t\tboolean success = flush();\r\n\t\t\t\t\tif (!success)\r\n\t\t\t\t\t\tthrow new IllegalStateException(\"Writing log to \" + logfile_name + \r\n\t\t\t\t\t\t\" failed, and is now disabled.\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (ContinuableError ce) {\r\n\t\t\treturn;\r\n\t\t} catch (FatalError fe) {\r\n\t\t\tlogging = false;\r\n\t\t\tlogqueue.rewind(q_pos);\r\n\t\t\tthrow new IllegalStateException(\"Input logging disabled, unrecognized input: \" \r\n\t\t\t\t\t+ logqueue.toString());\r\n\t\t} catch (Error e) {\r\n\t\t\tthrow new IllegalStateException(\"this should be impossible: \" +\r\n\t\t\t\t\te.getMessage());\r\n\t\t}\r\n\t}\r\n\r\n\t// Log b, if logging is on, and return the character.\r\n\tprivate void log(char[] buf, int off, int len) {\r\n\t\tif (logging) {    \r\n\t\t\tlogqueue.bulkAdd(buf, off, len);\r\n\t\t\tconvertInput();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Wrapper for normal read to buffer operation. If logging is on, log the\r\n\t * characters that were read, otherwise, do nothing.\r\n\t * <p>\r\n\t * @param buf Where to write the characters read.\r\n\t * @param off Offset at which to start writing the characters.\r\n\t * @param len Max number of characters to read.\r\n\t * @return Number of characters read.\r\n\t */\r\n\tpublic int read(char[] buf, int off, int len) throws IOException {\r\n\t\tint chars_read = in.read(buf, off, len);\r\n\t\tif (chars_read != -1) {\r\n\t\t\tlog(buf, off, chars_read);\r\n\t\t}\r\n\t\treturn chars_read;\r\n\t}\r\n\r\n\t/**\r\n\t * Set the default logging flag. The default default is <code>false</code>.\r\n\t * Invoked via the <code>setLogging()</code> command.\r\n\t * <p>\r\n\t * @param flag If true, input logging is on by default, else off.\r\n\t */\r\n\tpublic static void setDefaultFlag(boolean flag) {\r\n\t\tlogging_by_default = flag;\r\n\t}\r\n\r\n\t/**\r\n\t * Return a String describing the logging status, including defaults.\r\n\t * <p>\r\n\t * @return Log status string.\r\n\t */\r\n\tpublic String log_status() {\r\n\r\n\t\tString instance_status = \"\";\r\n\t\tif (logstream == null) {\r\n\t\t\tinstance_status = \"Logging is off\";\r\n\t\t} else if (logging) {\r\n\t\t\tinstance_status = \"Logging is enabled, and the logfile is \" +\r\n\t\t\tlogfile_name;\r\n\t\t} else {\r\n\t\t\tinstance_status = \"Logging is diabled, and the logfile is \" +\r\n\t\t\tlogfile_name;\r\n\t\t}\r\n\r\n\t\tString default_status = \"\";\r\n\t\tif (logging_by_default) {\r\n\t\t\tdefault_status = \"By default, it is on and the logfile directory is \" +\r\n\t\t\tdefault_logfile_dir;\r\n\t\t} else\r\n\t\t\tdefault_status = \"By default, it is off and the logfile directory is \" +\r\n\t\t\tdefault_logfile_dir;\r\n\r\n\t\treturn instance_status + \". \" + default_status + \".\";\r\n\t}\r\n\r\n\t/**\r\n\t * Set the default logging directory. The default default is <code>~/plex</code>.\r\n\t * Invoked via the <code>setLogging()</code> command.\r\n\t * <p>\r\n\t * @param pathname Set the default directory in which to store log files.\r\n\t */\r\n\tpublic static void setDefaultDir(String pathname) {\r\n\t\tFile tmp = new File(pathname);\r\n\t\tif (tmp.exists() && tmp.isDirectory()) {\r\n\t\t\t// that's good enough for me\r\n\t\t\tdefault_logfile_dir = new String(pathname);\r\n\t\t} else \r\n\t\t\tthrow new IllegalArgumentException\r\n\t\t\t(\"Default logging directory not a directory: \"  + pathname);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/bsh/commands/log.java",
    "content": "// \n//  log.java\n// \n//  ***************************************************************************\n// \n//  Copyright 2008, Stanford University\n// \n//  Permission to use, copy, modify, and distribute this software and its\n//  documentation for any purpose and without fee is hereby granted,\n//  provided that the above copyright notice appear in all copies and that\n//  both that copyright notice and this permission notice appear in\n//  supporting documentation, and that the name of Stanford University not\n//  be used in advertising or publicity pertaining to distribution of the\n//  software without specific, written prior permission.  Stanford\n//  University makes no representations about the suitability of this\n//  software for any purpose.  It is provided \"as is\" without express or\n//  implied warranty.\n// \n//  ***************************************************************************\n// \n//  log.java\n// \n//  $Id$\n// \n\npackage bsh.commands;\n\nimport bsh.CallStack;\nimport bsh.Interpreter;\nimport bsh.PlexInterpreter;\n\n/**\n\tTurn on/off input logging in the current interpreter, specify the\n\tspecific log file to use, or return the logging status string.\n\tvoid log( [ String logfile_name ] )\n\tvoid log( [ boolean on_flag ] )\n\tString log()\n*/\npublic class log \n{\n\tpublic static String usage() {\n\t\treturn \"usage: log( boolean on_flag )\\n\" +\n      \"       log( String logfile_name )\\n\" +\n      \"       log( )\\n\" ;\n\t}\n\n\t/**\n     Implement log() command.\n\t*/\n\tpublic static String invoke(Interpreter env, CallStack callstack){\n    if (env instanceof PlexInterpreter) {\n      return ((PlexInterpreter)env).logStatus();\n    } else\n      throw new IllegalArgumentException(\"No input logging for this \" + \n                                         \"interpreter instance\");\n  }\n\n\t/**\n     Implement log(String logfile_name) command.\n\t*/\n\tpublic static void invoke(Interpreter env, CallStack callstack, String logfile_name){\n    if (env instanceof PlexInterpreter) {\n      ((PlexInterpreter)env).setLogfile(logfile_name);\n    } else\n      throw new IllegalArgumentException(\"No input logging for this \" + \n                                         \"interpreter instance\");\n  }\n\n\t/**\n     Implement log(boolean on_flag) command.\n\t*/\n\tpublic static void invoke(Interpreter env, CallStack callstack, \n                            boolean on_flag) {\n    if (env instanceof PlexInterpreter) {\n      if (on_flag)\n        ((PlexInterpreter)env).enableLogging();\n      else\n        ((PlexInterpreter)env).disableLogging();\n    } else\n      throw new IllegalArgumentException(\"No input logging for this \" + \n                                         \"interpreter instance\");\n  }\n    \n}\n\n"
  },
  {
    "path": "src/java/bsh/commands/setLogging.java",
    "content": "// \n//  setLogging.java\n// \n//  ***************************************************************************\n// \n//  Copyright 2008, Stanford University\n// \n//  Permission to use, copy, modify, and distribute this software and its\n//  documentation for any purpose and without fee is hereby granted,\n//  provided that the above copyright notice appear in all copies and that\n//  both that copyright notice and this permission notice appear in\n//  supporting documentation, and that the name of Stanford University not\n//  be used in advertising or publicity pertaining to distribution of the\n//  software without specific, written prior permission.  Stanford\n//  University makes no representations about the suitability of this\n//  software for any purpose.  It is provided \"as is\" without express or\n//  implied warranty.\n// \n//  ***************************************************************************\n// \n//  setLogging.java\n// \n//  $Id$\n// \n\npackage bsh.commands;\n\nimport bsh.CallStack;\nimport bsh.Interpreter;\nimport bsh.PlexReader;\n\n/**\n\tSet the global defaults for input logging. The default directory is \n  ~/plex/ and the default setting is false.\t\n\tvoid setLogging( [ String default_dir ] )\n\tvoid setLogging( [ boolean default_on_flag ] )\n*/\npublic class setLogging \n{\n\tpublic static String usage() {\n\t\treturn \"usage: setLogging( boolean default_on_flag )\\n\" +\n      \"       setLogging( String default_logdir )\\n\" ;\n\t}\n\n\t/**\n     Implement setLogging(String default_dir) command.\n\t*/\n\tpublic static void invoke(Interpreter env, CallStack callstack, String default_dir){\n    PlexReader.setDefaultDir(default_dir);\n\t}\n\n\t/**\n     Implement setLogging(boolean default_on_flag) command.\n\t*/\n\tpublic static void invoke(Interpreter env, CallStack callstack, \n                            boolean default_flag) {\n    PlexReader.setDefaultFlag(default_flag);\n  }\n    \n}\n\n"
  },
  {
    "path": "src/java/edu/stanford/math/clustering/DisjointSetSystem.java",
    "content": "package edu.stanford.math.clustering;\n\npublic class DisjointSetSystem {\n\tprotected int[] parents;\n\tprotected int[] ranks;\n\n\tpublic DisjointSetSystem(int n) {\n\t\tthis.parents = new int[n];\n\t\tthis.ranks = new int[n];\n\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tthis.parents[i] = i;\n\t\t}\n\t}\n\n\tpublic void union(int x, int y) {\n\t\tint xRoot = this.find(x);\n\t\tint yRoot = this.find(y);\n\n\t\tif (xRoot == yRoot)\n\t\t\treturn;\n\n\t\tif (this.ranks[xRoot] < this.ranks[yRoot]) {\n\t\t\tthis.parents[xRoot] = yRoot;\n\t\t} else if (this.ranks[xRoot] > this.ranks[yRoot]) {\n\t\t\tthis.parents[yRoot] = xRoot;\n\t\t} else {\n\t\t\tthis.parents[yRoot] = xRoot;\n\t\t\tthis.ranks[xRoot]++;\n\t\t}\n\t}\n\n\tpublic int find(int x) {\n\t\tif (this.parents[x] != x)\n\t\t\tthis.parents[x] = this.find(this.parents[x]);\n\t\treturn this.parents[x];\n\t}\n\t\n\tpublic int size() {\n\t\treturn this.parents.length;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/clustering/HierarchicalClustering.java",
    "content": "package edu.stanford.math.clustering;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.HashSet;\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Set;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\nimport gnu.trove.TIntHashSet;\n\npublic abstract class HierarchicalClustering {\n\tpublic static double INFINITY = Double.POSITIVE_INFINITY;\n\n\tprotected final AbstractIntMetricSpace metricSpace;\n\n\tprotected double[] mergeDistances;\n\tprotected int[][] mergedPairs;\n\n\tpublic HierarchicalClustering(AbstractIntMetricSpace metricSpace) {\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.performClustering();\n\t}\n\n\tpublic double[] getMergedDistances() {\n\t\treturn this.mergeDistances;\n\t}\n\n\tpublic static List<Set<Integer>> getImpliedClusters(DisjointSetSystem setSystem) {\n\t\tMap<Integer, Set<Integer>> clusters = new HashMap<Integer, Set<Integer>>();\n\n\t\tint N = setSystem.size();\n\n\t\tfor (int i = 0; i < N; i++) {\n\t\t\tint assignment = setSystem.find(i);\n\n\t\t\tif (!clusters.containsKey(assignment))\n\t\t\t\tclusters.put(assignment, new HashSet<Integer>());\n\t\t\tclusters.get(assignment).add(i);\n\t\t}\n\n\t\tArrayList<Set<Integer>> result = new ArrayList<Set<Integer>>(clusters.values());\n\n\t\treturn result;\n\t}\n\n\tpublic static List<TIntHashSet> getImpliedClustersTrove(DisjointSetSystem setSystem) {\n\t\tMap<Integer, TIntHashSet> clusters = new HashMap<Integer, TIntHashSet>();\n\n\t\tint N = setSystem.size();\n\n\t\tfor (int i = 0; i < N; i++) {\n\t\t\tint assignment = setSystem.find(i);\n\n\t\t\tif (!clusters.containsKey(assignment))\n\t\t\t\tclusters.put(assignment, new TIntHashSet());\n\t\t\tclusters.get(assignment).add(i);\n\t\t}\n\n\t\tArrayList<TIntHashSet> result = new ArrayList<TIntHashSet>(clusters.values());\n\n\t\treturn result;\n\t}\n\n\tpublic DisjointSetSystem thresholdByDistance(double maxDistance) {\n\t\tint N = metricSpace.size();\n\n\t\tDisjointSetSystem setSystem = new DisjointSetSystem(N);\n\n\t\tfor (int s = 0; mergeDistances[s] <= maxDistance; s++) {\n\t\t\tif (mergedPairs[s] == null)\n\t\t\t\tbreak;\n\n\t\t\tsetSystem.union(mergedPairs[s][0], mergedPairs[s][1]);\n\t\t}\n\n\t\treturn setSystem;\n\t}\n\n\tpublic DisjointSetSystem thresholdByNumClusters(int numClusters) {\n\t\tint N = metricSpace.size();\n\n\t\tDisjointSetSystem setSystem = new DisjointSetSystem(N);\n\n\t\tif (numClusters > N)\n\t\t\tnumClusters = N;\n\n\t\tif (numClusters < 1)\n\t\t\tnumClusters = 1;\n\n\t\tfor (int s = 0; s < N - numClusters; s++) {\n\t\t\tif (mergedPairs[s] == null)\n\t\t\t\tbreak;\n\n\t\t\tsetSystem.union(mergedPairs[s][0], mergedPairs[s][1]);\n\t\t}\n\n\t\treturn setSystem;\n\t}\n\n\tpublic abstract void performClustering();\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/clustering/LinkageTree.java",
    "content": "package edu.stanford.math.clustering;\n\npublic class LinkageTree {\n\tprotected double[] mergeDistances;\n\tprotected int[][] mergePairs;\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/clustering/SingleLinkageClustering.java",
    "content": "package edu.stanford.math.clustering;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\n\npublic class SingleLinkageClustering extends HierarchicalClustering {\n\n\tpublic SingleLinkageClustering(AbstractIntMetricSpace metricSpace) {\n\t\tsuper(metricSpace);\n\t}\n\n\tpublic void performClustering() {\n\t\tint N = metricSpace.size();\n\n\t\tdouble[][] dist = new double[N][N];\n\n\t\t// index of closest point to i-th point\n\t\tint[] mindist = new int[N];\n\n\t\tfor (int i = 0; i < N; i++) {\n\t\t\tfor (int j = 0; j < N; j++) {\n\t\t\t\tif (i == j)\n\t\t\t\t\tdist[i][j] = INFINITY;\n\t\t\t\telse\n\t\t\t\t\tdist[i][j] = metricSpace.distance(i, j);\n\t\t\t\tif (dist[i][j] < dist[i][mindist[i]])\n\t\t\t\t\tmindist[i] = j;\n\t\t\t}\n\t\t}\n\n\t\tthis.mergeDistances = new double[N];\n\t\tthis.mergedPairs = new int[N][];\n\n\t\tint[] parents = new int[N];\n\n\t\tfor (int i = 0; i < N; i++)\n\t\t\tparents[i] = i;\n\n\t\tfor (int s = 0; s < N - 1; s++) {\n\n\t\t\t// find closest pair of vectors (i1, i2)\n\t\t\tint i1 = 0;\n\t\t\tfor (int i = 0; i < N; i++)\n\t\t\t\tif (dist[i][mindist[i]] < dist[i1][mindist[i1]])\n\t\t\t\t\ti1 = i;\n\t\t\tint i2 = mindist[i1];\n\n\t\t\tmergeDistances[s] = dist[i1][i2];\n\n\t\t\t// mergedPairs[s] = new int[] { parents[i1], parents[i2] };\n\t\t\tmergedPairs[s] = new int[] { i1, i2 };\n\n\t\t\tparents[i1] = parents[i2] = s + N;\n\n\t\t\t// overwrite row i1 with minimum of entries in row i1 and i2\n\t\t\tfor (int j = 0; j < N; j++)\n\t\t\t\tif (dist[i2][j] < dist[i1][j])\n\t\t\t\t\tdist[i1][j] = dist[j][i1] = dist[i2][j];\n\t\t\tdist[i1][i1] = INFINITY;\n\n\t\t\tfor (int i = 0; i < N; i++) {\n\t\t\t\tdist[i2][i] = dist[i][i2] = INFINITY;\n\t\t\t}\n\n\t\t\t// update mindist\n\t\t\tfor (int j = 0; j < N; j++) {\n\t\t\t\tif (mindist[j] == i2)\n\t\t\t\t\tmindist[j] = i1;\n\t\t\t\tif (dist[i1][j] < dist[i1][mindist[i1]])\n\t\t\t\t\tmindist[i1] = j;\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/BoundedIntervalCover.java",
    "content": "package edu.stanford.math.mapper;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\n\npublic class BoundedIntervalCover implements Iterable<Interval<Double>> {\n\tprivate double min, max;\n\tprivate int n;\n\tprivate double overlap;\n\tprivate List<Interval<Double>> intervals = new ArrayList<Interval<Double>>();\n\n\tpublic BoundedIntervalCover(double min, double max, int n, double overlap) {\n\t\tthis.min = min;\n\t\tthis.max = max;\n\t\tthis.n = n;\n\t\tthis.overlap = overlap;\n\t\t\n\t\tthis.initialize();\n\t}\n\n\tvoid initialize() {\n\t\tdouble width = (max - min) / ((double) n);\n\t\tdouble overhang = width * this.overlap / 2;\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tdouble start = min + i * width;\n\t\t\tdouble end = start + width;\n\t\t\tstart = Math.max(start - overhang, min);\n\t\t\tend = Math.min(end + overhang, max);\n\t\t\tthis.intervals.add(Interval.makeFiniteClosedInterval(start, end));\n\t\t}\n\t}\n\n\tpublic Iterator<Interval<Double>> iterator() {\n\t\treturn this.intervals.iterator();\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/FilterFunctionUtility.java",
    "content": "package edu.stanford.math.mapper;\n\n\npublic class FilterFunctionUtility {\n\t\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/FiniteMetricSpaceCover.java",
    "content": "package edu.stanford.math.mapper;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\nimport edu.stanford.math.plex4.streams.filter.IntFilterFunction;\nimport gnu.trove.TIntHashSet;\n\nimport java.util.Iterator;\n\npublic class FiniteMetricSpaceCover implements Iterable<TIntHashSet> {\n\tprivate IntFilterFunction filter;\n\tprivate AbstractIntMetricSpace metricSpace;\n\n\tpublic FiniteMetricSpaceCover(IntFilterFunction filter, AbstractIntMetricSpace metricSpace) {\n\t\tsuper();\n\t\tthis.filter = filter;\n\t\tthis.metricSpace = metricSpace;\n\t}\n\n\tpublic Iterator<TIntHashSet> iterator() {\n\t\t// TODO Auto-generated method stub\n\t\treturn null;\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/HistogramCreator.java",
    "content": "package edu.stanford.math.mapper;\n\npublic class HistogramCreator {\n\tprotected final double[] values;\n\tprotected final int numBins;\n\tprotected final int[] bins;\n\n\tprotected final String string;\n\n\tHistogramCreator(double[] values, int numBins) {\n\t\tthis.values = values;\n\t\tthis.numBins = numBins;\n\n\t\tthis.bins = this.performBinning();\n\n\t\tthis.string = this.generateString(20);\n\t}\n\n\tprotected int[] performBinning() {\n\t\tdouble min = this.getMin();\n\t\tdouble max = this.getMax();\n\n\t\tint[] bins = new int[this.numBins];\n\n\t\tfor (int i = 0; i < this.values.length; i++) {\n\t\t\tint bin = (int) Math.floor(this.numBins * (this.values[i] - min) / (max - min));\n\t\t\tif (bin >= this.numBins)\n\t\t\t\tbin = this.numBins - 1;\n\n\t\t\tbins[bin]++;\n\t\t}\n\n\t\treturn bins;\n\t}\n\n\tprotected double getMin() {\n\t\tdouble min = Double.POSITIVE_INFINITY;\n\n\t\tfor (int i = 0; i < this.values.length; i++) {\n\t\t\tmin = this.values[i] < min ? this.values[i] : min;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tprotected double getMax() {\n\t\tdouble max = Double.NEGATIVE_INFINITY;\n\n\t\tfor (int i = 0; i < this.values.length; i++) {\n\t\t\tmax = this.values[i] > max ? this.values[i] : max;\n\t\t}\n\n\t\treturn max;\n\t}\n\n\tpublic int[] getCounts() {\n\t\treturn this.bins;\n\t}\n\n\tprotected double[] getBinLattice(double offset) {\n\t\tdouble[] values = new double[this.numBins];\n\n\t\tdouble min = this.getMin();\n\t\tdouble max = this.getMax();\n\n\t\tdouble binWidth = (max - min) / this.numBins;\n\n\t\tfor (int i = 0; i < this.numBins; i++) {\n\t\t\tvalues[i] = (i + offset) * binWidth + min;\n\t\t}\n\n\t\treturn values;\n\t}\n\n\tpublic double[] getBinStartingPoints() {\n\t\treturn this.getBinLattice(0);\n\t}\n\n\tpublic double[] getBinEndingPoints() {\n\t\treturn this.getBinLattice(1);\n\t}\n\n\tpublic double[] getBinMidPoints() {\n\t\treturn this.getBinLattice(0.5);\n\t}\n\n\tpublic double getBinStartPoint(int binIndex) {\n\t\treturn this.getBinLatticePoint(binIndex, 0);\n\t}\n\t\n\tpublic double getBinLatticePoint(int binIndex, double offset) {\n\t\tdouble min = this.getMin();\n\t\tdouble max = this.getMax();\n\n\t\tdouble binWidth = (max - min) / this.numBins;\n\n\t\treturn (binIndex + offset) * binWidth + min;\n\t}\n\t\n\tpublic int getLastZeroBinIndex() {\n\t\tfor (int i = this.numBins - 1; i >= 0; i--) {\n\t\t\tif (this.bins[i] == 0)\n\t\t\t\treturn i;\n\t\t}\n\n\t\treturn this.numBins;\n\t}\n\n\tprotected String generateString(int maxHistogramStars) {\n\t\tdouble min = this.getMin();\n\t\tdouble max = this.getMax();\n\n\t\tdouble binWidth = (max - min) / this.numBins;\n\n\t\tStringBuilder builder = new StringBuilder();\n\n\t\tdouble maxBinCount = 0;\n\n\t\tfor (int i = 0; i < this.numBins; i++) {\n\t\t\tmaxBinCount = this.bins[i] > maxBinCount ? this.bins[i] : maxBinCount;\n\t\t}\n\n\t\tdouble starMultiplier = 1;\n\n\t\tif (maxBinCount > maxHistogramStars) {\n\t\t\tstarMultiplier = maxHistogramStars / maxBinCount;\n\t\t}\n\n\t\tfor (int i = 0; i < this.numBins; i++) {\n\t\t\tdouble start = i * binWidth + min;\n\t\t\tdouble end = (i + 1) * binWidth + min;\n\n\t\t\tif (i == this.numBins - 1) {\n\t\t\t\tbuilder.append(String.format(\"[%10.2f, %10.2f]\", start, end));\n\t\t\t} else {\n\t\t\t\tbuilder.append(String.format(\"[%10.2f, %10.2f)\", start, end));\n\t\t\t}\n\n\t\t\tint starCount = (int) Math.ceil(starMultiplier * this.bins[i]);\n\n\t\t\tString starString = HistogramCreator.repeatString(\"*\", starCount);\n\n\t\t\tbuilder.append(\": \");\n\n\t\t\tbuilder.append(String.format(\"(%10d) \", this.bins[i]));\n\n\t\t\tbuilder.append(starString);\n\t\t\tbuilder.append(\"\\n\");\n\t\t}\n\n\t\treturn builder.toString();\n\t}\n\n\tprotected static String repeatString(String s, int n) {\n\t\treturn new String(new char[n]).replace(\"\\0\", s);\n\t}\n\n\t@Override\n\tpublic String toString() {\n\t\treturn this.string;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/MapperPipeline.java",
    "content": "package edu.stanford.math.mapper;\n\nimport edu.stanford.math.clustering.DisjointSetSystem;\nimport edu.stanford.math.clustering.HierarchicalClustering;\nimport edu.stanford.math.clustering.SingleLinkageClustering;\nimport edu.stanford.math.plex4.graph.AbstractWeightedUndirectedGraph;\nimport edu.stanford.math.plex4.graph.UndirectedWeightedListGraph;\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\nimport edu.stanford.math.plex4.streams.filter.IntFilterFunction;\nimport gnu.trove.TIntHashSet;\nimport gnu.trove.TIntIterator;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class MapperPipeline {\n\tpublic static List<TIntHashSet> producePartialClustering(IntFilterFunction filter, AbstractIntMetricSpace metricSpace, MapperSpecifier specifier) {\n\n\t\tIterable<Interval<Double>> rangeCover = RangeCoverUtility.createUniformIntervalCover(filter, specifier.numIntervals, specifier.overlap);\n\n\t\tSetCover1D domainCover = new SetCover1D(filter, rangeCover);\n\n\t\tList<TIntHashSet> mapperCover = new ArrayList<TIntHashSet>();\n\n\t\tfor (TIntHashSet set : domainCover) {\n\t\t\t// construct sub-metric space\n\t\t\tAbstractIntMetricSpace subMetricSpace = MetricUtility.createSubMetricSpace(metricSpace, set);\n\n\t\t\t// run clustering on subset\n\t\t\tSingleLinkageClustering clustering = new SingleLinkageClustering(subMetricSpace);\n\n\t\t\t// get merge times for clustering tree\n\t\t\tdouble[] mergeTimes = clustering.getMergedDistances();\n\n\t\t\t// construct histogram on merge times\n\t\t\tHistogramCreator histogram = new HistogramCreator(mergeTimes, specifier.numHistogramBuckets);\n\n\t\t\t// select last bin for which histogram is zero\n\t\t\tint lastZeroBinIndex = histogram.getLastZeroBinIndex();\n\n\t\t\t// obtain distance cutoff corresponding to zero-bin\n\t\t\tdouble distanceCutoff = histogram.getBinStartPoint(lastZeroBinIndex);\n\n\t\t\t// get clusters by thresholding linkage tree\n\t\t\tDisjointSetSystem setSystem = clustering.thresholdByDistance(distanceCutoff);\n\n\t\t\t// convert clusters to list of sets\n\t\t\tList<TIntHashSet> clusters = HierarchicalClustering.getImpliedClustersTrove(setSystem);\n\n\t\t\tfor (TIntHashSet subCluster : clusters) {\n\t\t\t\tmapperCover.add(MapperPipeline.pullUpIndices(subCluster, set));\n\t\t\t}\n\t\t}\n\n\t\treturn mapperCover;\n\t}\n\n\tpublic static AbstractWeightedUndirectedGraph intersectionGraph(List<TIntHashSet> sets) {\n\t\tint n = sets.size();\n\n\t\tUndirectedWeightedListGraph graph = new UndirectedWeightedListGraph(n);\n\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tTIntHashSet x = sets.get(i);\n\t\t\tfor (int j = 0; j < i; j++) {\n\t\t\t\tTIntHashSet y = sets.get(j);\n\n\t\t\t\tTIntHashSet intersection = HomologyUtility.computeIntersection(x, y);\n\n\t\t\t\tif (intersection.size() > 0)\n\t\t\t\t\tgraph.addEdge(i, j, intersection.size());\n\t\t\t}\n\t\t}\n\n\t\treturn graph;\n\t}\n\n\tprotected static TIntHashSet pullUpIndices(TIntHashSet subIndices, TIntHashSet indices) {\n\t\tTIntHashSet result = new TIntHashSet();\n\n\t\tTIntIterator iterator = subIndices.iterator();\n\n\t\tint[] indicesArray = indices.toArray();\n\n\t\twhile (iterator.hasNext()) {\n\t\t\tint subIndex = iterator.next();\n\t\t\tresult.add(indicesArray[subIndex]);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/MapperSpecifier.java",
    "content": "package edu.stanford.math.mapper;\n\npublic class MapperSpecifier {\n\tdouble overlap = 0.2;\n\tint numIntervals = 40;\n\tint numHistogramBuckets = 20;\n\t\n\tpublic static MapperSpecifier create() {\n\t\treturn new MapperSpecifier();\n\t}\n\t\n\tMapperSpecifier numIntervals(int numIntervals) {\n\t\tthis.numIntervals = numIntervals;\n\t\treturn this;\n\t}\n\t\n\tMapperSpecifier overlap(double overlap) {\n\t\tthis.overlap = overlap;\n\t\treturn this;\n\t}\n\t\n\tMapperSpecifier numHistogramBuckets(int numHistogramBuckets) {\n\t\tthis.numHistogramBuckets = numHistogramBuckets;\n\t\treturn this;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/MetricUtility.java",
    "content": "package edu.stanford.math.mapper;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\nimport gnu.trove.TIntHashSet;\n\npublic class MetricUtility {\n\tpublic static AbstractIntMetricSpace createSubMetricSpace(final AbstractIntMetricSpace metricSpace, final int[] indices) {\n\n\t\treturn new AbstractIntMetricSpace() {\n\n\t\t\tpublic double distance(int i, int j) {\n\t\t\t\treturn metricSpace.distance(indices[i], indices[j]);\n\t\t\t}\n\n\t\t\tpublic int size() {\n\t\t\t\treturn indices.length;\n\t\t\t}\n\t\t};\n\t}\n\n\tpublic static AbstractIntMetricSpace createSubMetricSpace(final AbstractIntMetricSpace metricSpace, final TIntHashSet indices) {\n\t\tint[] indicesArray = indices.toArray();\n\n\t\treturn MetricUtility.createSubMetricSpace(metricSpace, indicesArray);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/RangeCoverUtility.java",
    "content": "package edu.stanford.math.mapper;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.streams.filter.IntFilterFunction;\n\npublic class RangeCoverUtility {\n\t\n\tpublic static Iterable<Interval<Double>> createUniformIntervalCover(IntFilterFunction filter, int n, double overlap) {\n\t\treturn new BoundedIntervalCover(filter.getMinValue(), filter.getMaxValue(), n, overlap);\n\t}\n\t\n\t\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/mapper/SetCover1D.java",
    "content": "package edu.stanford.math.mapper;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.streams.filter.IntFilterFunction;\nimport gnu.trove.TIntHashSet;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\nimport java.util.List;\n\n/**\n * This class computes the pre-image of a cover of the codomain of a function.\n * The function is assumed to be of the type IntFilterFunction. The result is is\n * accessible as an Iterable set of TIntHashSets which contain the pre-images of\n * each element of the cover.\n * \n * @author Andrew Tausz\n * \n */\npublic class SetCover1D implements Iterable<TIntHashSet> {\n\tprivate IntFilterFunction filter;\n\tprivate Iterable<Interval<Double>> rangeCover;\n\tprivate List<TIntHashSet> setCover = new ArrayList<TIntHashSet>();\n\n\tpublic SetCover1D(IntFilterFunction filter, Iterable<Interval<Double>> rangeCover) {\n\t\tsuper();\n\t\tthis.filter = filter;\n\t\tthis.rangeCover = rangeCover;\n\n\t\tthis.initialize();\n\t}\n\n\tvoid initialize() {\n\t\tdouble[] values = filter.getValues();\n\n\t\t// note that this is not necessarily the most efficient in case more is\n\t\t// known about the range cover\n\t\t// will leave it generic for now\n\t\tfor (Interval<Double> interval : this.rangeCover) {\n\t\t\tTIntHashSet set = new TIntHashSet();\n\t\t\tfor (int i = 0; i < values.length; i++) {\n\t\t\t\tif (interval.containsPoint(values[i])) {\n\t\t\t\t\tset.add(i);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.setCover.add(set);\n\t\t}\n\t}\n\n\tpublic Iterator<TIntHashSet> iterator() {\n\t\treturn this.setCover.iterator();\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/BCPlot.java",
    "content": "package edu.stanford.math.plex;\n\nimport java.awt.BorderLayout;\nimport java.awt.Color;\nimport java.awt.Dimension;\nimport java.awt.Font;\nimport java.awt.FontMetrics;\nimport java.awt.Graphics;\nimport java.awt.Graphics2D;\nimport java.awt.GridLayout;\nimport java.awt.Rectangle;\nimport java.awt.RenderingHints;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.KeyEvent;\nimport java.awt.geom.AffineTransform;\nimport java.awt.image.BufferedImage;\nimport java.io.File;\nimport java.io.IOException;\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.TreeSet;\n\nimport javax.imageio.ImageIO;\nimport javax.swing.AbstractAction;\nimport javax.swing.Action;\nimport javax.swing.BorderFactory;\nimport javax.swing.BoxLayout;\nimport javax.swing.ImageIcon;\nimport javax.swing.JComponent;\nimport javax.swing.JFileChooser;\nimport javax.swing.JFrame;\nimport javax.swing.JMenu;\nimport javax.swing.JMenuBar;\nimport javax.swing.JMenuItem;\nimport javax.swing.JPanel;\nimport javax.swing.JScrollPane;\n\n/**\n * The <code>BCPlot</code> class does simple plotting of PersistenceIntervals.\n *\n * @version $Id$\n */\npublic class BCPlot extends JPanel {\n\n\tprotected static final int CIRCLE_SIZE = 7;\n\n\tprotected static final long serialVersionUID = 1L;\n\n\t// If it is not a barcode plot it will be a scatter plot\n\tprotected boolean plotTypeScatter = false;\n\n\t// Fixed Ruler for the bar graph\n\tprotected Ruler fixedRuler;\n\n\t// The amount of space in pixels for the fixed ruler at top of scroll pain\n\tprotected static final int FIXED_RULER_HEIGHT = 35;\n\n\t//\n\tprotected static final int MAX_GRID_HEIGHT_PER_PAGE = 1500;\n\n\t//\n\tprotected static final int MAX_DISPLAYABLE_BARS = MAX_GRID_HEIGHT_PER_PAGE - 1;\n\n\t//\n\tprotected static final int DEFAULT_BARS_PER_PAGE = 249;\n\n\t// The panel that actually holds the Graphics of the plot\n\tprotected DrawingPane barcodePane;\n\n\tprotected Action fileSaveMenuHandler;\n\n\t// This dimension is of the region Used For the Plot Legend, Ruler,\n\t// Labels, and Title\n\tprotected Rectangle baseRegionUsedForPlotLegendRulerLabels;\n\n\t// This is the height in Pixels of the region Used For the Plot Legend,\n\t// Ruler, Labels, and Tittle\n\tprotected int heightOfBaseRegionUsedForPlotLegendRulerLabels = 75;\n\tprotected int widthOfSideRegionUsedForPlotLegendRulerLabels = 100;\n\n\tprotected int leftMargin = widthOfSideRegionUsedForPlotLegendRulerLabels/2;\n\tprotected int rightMargin = widthOfSideRegionUsedForPlotLegendRulerLabels/2;\n\n\tprotected String legendMajorString = \"\", legendMinorString = null;\n\n\t// Set Visualization Region Size\n\tprotected int fullVisualizationWidth = 1200;\n\n\t// Width of the grid for the plot\n\tprotected int gridWidth;\n\n\t// Height of the grid for the plot 10 inch at 1500 dpi\n\tprotected int gridHeight = MAX_GRID_HEIGHT_PER_PAGE;\n\n\tprotected int fullVisualizationHeight;\n\n\t// barcode values\n\tprotected double[][] plotValue;\n\n\t// barcode plot upper bound\n\tprotected double plotUpperBound;\n\n\tprotected Color gridRulerFontColor, tickUpperBoundColor, \n\tgridTickMinorColor, gridTickMajorColor;\n\tprotected Color upperBoundFontColor, labelFontColor, \n\tlegendMinorFontColor, legendMajorFontColor;\n\tprotected Color fixedRulerBorderColor, fixedRulerColor, barcodeBarColor;\n\tprotected Color fixedRulerFontColor, \n\tfixedRulerMinorTickColor, fixedRulerMajorTickColor;\n\tprotected Font labelFont, legendMinorFont, legendMajorFont, \n\tgridRulerFont, fixedRulerFont;\n\tprotected FontMetrics legendMinorFontMetrics, legendMajorFontMetrics;\n\tprotected FontMetrics fixedRulerFontMetrics, labelFontMetrics, gridRulerFontMetrics;\n\n\t// Writable Region\n\tprotected int upperMargin;\n\n\t// Barcode Parameters\n\tprotected int barcodeBarHeight, barcodeBarSpacing;\n\n\t// is a  grid visible behind the plot\n\tprotected Boolean gridIsVisible;\n\n\t// Flag indicating plot is being saved to a file\n\tprotected Boolean plotBeingSaved = false;\n\n\t// unit value for the pixels unit value in rulers\n\tprotected double unitsPerPixel;\n\n\t// how how many pixels are in a unit\n\tprotected double pixelsPerUnit;\n\n\t// How often do you place a major tick mark on a ruler or grid\n\tprotected int tickMajorPlacement;\n\n\t// How often do you place a tick in terms of pixels\n\tprotected int tickGap;\n\n\t// Used to load and save grahpic2d regions as graphic files\n\tprotected BufferedImage bufferedImage;\n\n\t// Indicator that a background image is loaded\n\tprotected Boolean thereIsaBackgroundImage;\n\n\t// Directory path to background image\n\tprotected String backgroundImageName;\n\n\t/**\n\t * Returns the maximum number of barcodes that can be \"plotted\".\n\t */\n\tpublic int getMaxDisplayableBars(){\n\t\treturn MAX_DISPLAYABLE_BARS;\n\t}\n\n\t/**\n\t * Sets the Major Legend\n\t */\n\tprotected void setMajorLegend(String s){\n\t\tlegendMajorString = s;\n\t}\n\n\tprotected BCPlot() {\n\t\tthrow new IllegalStateException(\"Do not use\");\n\t}\n\n\t// protected constructor.\n\tprotected BCPlot(double[][] values, double upperBound, boolean forceScatter) {\n\t\tvalidate(values, upperBound);\n\n\t\t// Set Barcode Properties\n\t\t// if the interval count <= {250,300,375,500,750,1500};\n\t\t// then {barcodeBarHeight,barcodeBarSpacing} is \n\t\t// {{3,3},{3,2},{2,2},{2,1},{1,1},{1,0}};\n\t\tgridWidth = fullVisualizationWidth;\n\n\t\tif (forceScatter || (plotValue.length > MAX_DISPLAYABLE_BARS)) {\n\t\t\tplotTypeScatter = true;\n\t\t\tbarcodeBarHeight = 0;\n\t\t\tbarcodeBarSpacing = 0;\n\t\t\tupperMargin = 0;\n\n\t\t\tgridWidth = fullVisualizationWidth - rightMargin - leftMargin;\n\t\t\tgridHeight = gridWidth;\n\t\t\tfullVisualizationHeight = gridHeight + \n\t\t\theightOfBaseRegionUsedForPlotLegendRulerLabels;\n\t\t} else { \n\t\t\t// At this point it looks to be a barcode plot\n\t\t\tplotTypeScatter = false;\n\t\t\tfullVisualizationWidth += 20;\n\t\t\t// Set barcode plot visual properties\n\t\t\tif(plotValue.length <= DEFAULT_BARS_PER_PAGE){\n\t\t\t\tbarcodeBarHeight = 3;\n\t\t\t\tbarcodeBarSpacing = 3;\n\t\t\t\tupperMargin = 3;\n\n\t\t\t}else if(plotValue.length <= 299){\n\t\t\t\tbarcodeBarHeight = 3;\n\t\t\t\tbarcodeBarSpacing = 2;\n\t\t\t\tupperMargin = 2;\n\n\t\t\t}else if(plotValue.length <= 374){\n\t\t\t\tbarcodeBarHeight = 2;\n\t\t\t\tbarcodeBarSpacing = 2;\n\t\t\t\tupperMargin = 2;\n\n\t\t\t}else if(plotValue.length <= 499){\n\t\t\t\tbarcodeBarHeight = 2;\n\t\t\t\tbarcodeBarSpacing = 1;\n\t\t\t\tupperMargin = 1;\n\n\t\t\t}else if(plotValue.length <= 749){\n\t\t\t\tbarcodeBarHeight = 1;\n\t\t\t\tbarcodeBarSpacing = 1;\n\t\t\t\tupperMargin = 1;\n\n\t\t\t}else if(plotValue.length < MAX_DISPLAYABLE_BARS){\n\t\t\t\tbarcodeBarHeight = 1;\n\t\t\t\tbarcodeBarSpacing = 0;\n\t\t\t\tupperMargin = 1;\n\n\t\t\t}else if(plotValue.length == MAX_DISPLAYABLE_BARS){\n\t\t\t\tbarcodeBarHeight = 1;\n\t\t\t\tbarcodeBarSpacing = 0;\n\t\t\t\tupperMargin = 0;\n\n\t\t\t}\n\n\t\t\tgridHeight = upperMargin + \n\t\t\t((barcodeBarHeight + barcodeBarSpacing) * plotValue.length);\n\t\t\tfullVisualizationHeight = gridHeight + \n\t\t\theightOfBaseRegionUsedForPlotLegendRulerLabels;\n\t\t}\n\n\t\t// run it!\n\t\tinitJFrame();\n\t}\n\n\t// Put together an error string for the argument checker.\n\tprotected static String illegal_interval_string(int i, double a, double b) {\n\t\treturn String.format(\"Interval %d is [%.8g, %.8g), \" +\n\t\t\t\t\"not a non-empty subset of [0.0, %.8g)\",\n\t\t\t\ti, a, b, Double.MAX_VALUE);\n\t}\n\n\t/**\n\t * Validate the upperBound and the values used for the Barcode Plot\n\t */\n\tprotected void validate(double[][] numbers, double upperBound) {\n\t\tif (numbers == null)\n\t\t\tthrow new IllegalArgumentException(\"No plot values\");\n\t\tif ((upperBound >= Double.MAX_VALUE) || (upperBound <= 0)) {\n\t\t\tthrow new IllegalArgumentException\n\t\t\t(\"upperBound, \"  + upperBound + \", must be in the range \" +\n\t\t\t\t\t\"[0.0, \" + Double.MAX_VALUE + \")\");\n\t\t}\n\t\tfor (int i = 0; i < numbers.length; i++) {\n\t\t\tif ((numbers[i][0] < 0) ||\n\t\t\t\t\t(numbers[i][0] >= Double.MAX_VALUE) ||\n\t\t\t\t\t(numbers[i][0] > numbers[i][1]) ||\n\t\t\t\t\t(numbers[i][1] > Double.POSITIVE_INFINITY))\n\t\t\t\tthrow new IllegalArgumentException\n\t\t\t\t(illegal_interval_string(i, numbers[i][0], numbers[i][1]));\n\t\t}\n\t\t// set boundries and values for the plot\n\t\tplotUpperBound = upperBound;\n\t\tplotValue = numbers;\n\t}\n\n\t/**\n\t *\n\t */\n\tprotected void initJFrame(){\n\t\tsetLayout(new BoxLayout(this, BoxLayout.LINE_AXIS));\n\n\t\tJPanel instructionPanel = new JPanel(new GridLayout(0,1));\n\t\tinstructionPanel.setFocusable(true);\n\n\t\t//Set up the drawing area.\n\t\tbarcodePane = new DrawingPane();\n\t\tbarcodePane.setBackground(Color.white);\n\t\tbarcodePane.setPreferredSize(new Dimension(fullVisualizationWidth,\n\t\t\t\tfullVisualizationHeight));\n\n\t\t//Create a scroll panel with a fixed Ruler along the top.\n\t\tJScrollPane barcodeScrollPane = new JScrollPane(barcodePane);\n\t\tbarcodeScrollPane.setPreferredSize(new Dimension(fullVisualizationWidth+20,\n\t\t\t\tfullVisualizationHeight));\n\t\tbarcodeScrollPane.setViewportBorder\n\t\t(BorderFactory.createLineBorder(fixedRulerBorderColor));\n\n\t\t//Create a fixed header for display pane.\n\t\tfixedRuler = new Ruler(barcodePane);\n\t\tbarcodeScrollPane.setColumnHeaderView(fixedRuler);\n\n\t\t//Put it in this panel.\n\t\tadd(barcodeScrollPane,BorderLayout.CENTER);\n\t\tsetBorder(BorderFactory.createEmptyBorder(20,20,20,20));\n\n\t\t// Create the handler for the Menu Bar Items\n\t\tfileSaveMenuHandler =\n\t\t\tnew fileSaveMenuHandler(\"fileSaveMenuHandler\", null,\n\t\t\t\t\t\"Handles the File Menu Save action event\",\n\t\t\t\t\tnew Integer(2));\n\t}\n\n\t/*\n\t * Create The Menu Bar\n\t */\n\tprotected JMenuBar createMenuBar() {\n\t\tJMenuItem menuItem = null;\n\t\tJMenuBar menuBar;\n\n\t\t//Create the menu bar.\n\t\tmenuBar = new JMenuBar();\n\n\t\t//Create the first menu.\n\t\tJMenu mainMenu = new JMenu(\"Save as\");\n\t\tmainMenu.setMnemonic(KeyEvent.VK_S);\n\t\tmainMenu.setMnemonic(KeyEvent.VK_S);\n\t\tmainMenu.setIcon(new ImageIcon());\n\n\t\t//Give all image file formats that are available as menu options\n\t\tString[] imageFileFormats = getFormats();\n\t\tfor (int i = 0; i < imageFileFormats.length; i++) {\n\t\t\tmenuItem = new JMenuItem(imageFileFormats[i]);\n\t\t\tmenuItem.setIcon(null);\n\t\t\tmenuItem.addActionListener(fileSaveMenuHandler);\n\t\t\tmainMenu.add(menuItem);\n\t\t}\n\n\t\t//Set up the menu bar.\n\t\tmenuBar.add(mainMenu);\n\t\treturn menuBar;\n\t}\n\n\t/*\n\t * Return the formats sorted alphabetically and in lower case\n\t */\n\tprotected String[] getFormats() {\n\t\tString[] formats = ImageIO.getWriterFormatNames();\n\t\tTreeSet<String> formatSet = new TreeSet<String>();\n\t\tfor (String s : formats) {\n\t\t\tformatSet.add(s.toLowerCase());\n\t\t}\n\t\treturn formatSet.toArray(new String[0]);\n\t}\n\n\t/*\n\t * This handles the File Save Menu action events\n\t */\n\tprotected class fileSaveMenuHandler extends AbstractAction {\n\t\tprotected static final long serialVersionUID = 1L;\n\t\tprotected fileSaveMenuHandler(String text, ImageIcon icon,\n\t\t\t\tString desc, Integer mnemonic) {\n\t\t\tsuper(text, icon);\n\t\t\tputValue(SHORT_DESCRIPTION, desc);\n\t\t\tputValue(MNEMONIC_KEY, mnemonic);\n\t\t}\n\n\t\t/**\n\t\t * Action events handler\n\t\t */\n\t\tpublic void actionPerformed(ActionEvent e) {\n\t\t\tString cmd = e.getActionCommand();\n\n\t\t\tif (Arrays.asList(getFormats()).contains(cmd)){\n\n\t\t\t\t// Use the format name to initialise the file suffix.\n\t\t\t\tFile file = new File(\"untitledBarcode.\" + cmd);\n\n\t\t\t\tJFileChooser fc = new JFileChooser();\n\t\t\t\tfc.setSelectedFile(file);\n\t\t\t\tint rval = fc.showSaveDialog(BCPlot.this);\n\t\t\t\tif (rval == JFileChooser.APPROVE_OPTION) {\n\t\t\t\t\tfile = fc.getSelectedFile();\n\t\t\t\t\tbarcodePane.saveImage(file, cmd);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * The component inside the scroll pane.\n\t * This is were the BARCODE PLOT is set up displayed and saved from\n\t */\n\tprotected class DrawingPane extends JPanel {\n\t\tprotected static final long serialVersionUID = 1L;\n\t\tpublic static final int ON_TOP = 0;\n\t\tpublic static final int ON_BOTTOM = 1;\n\t\tpublic static final int ON_LEFT = 3;\n\t\tpublic static final int ON_RIGHT = 4;\n\n\t\t/*\n\t\t * This is were the BARCODE PLOT is set up and drawn\n\t\t */\n\t\tprotected DrawingPane(){\n\t\t\tsuper();\n\n\t\t\t// Display loaded background image\n\t\t\tthereIsaBackgroundImage = false;\n\n\t\t\t// Display a background grid\n\t\t\tgridIsVisible = true;    \n\n\t\t\t// Visualization Colors\n\t\t\tbarcodeBarColor = Color.black;\n\n\t\t\ttickUpperBoundColor = new Color(0xff,0x00,0x00);\n\t\t\tgridTickMajorColor = new Color(0x0f,0x85,0xff);\n\t\t\tgridTickMinorColor = new Color(0xa9,0xcc,0xdf);\n\n\t\t\t// Fixed Ruler Colors.\n\t\t\tfixedRulerColor = new Color(0x97,0xd8,0xff);\n\t\t\tfixedRulerMinorTickColor = Color.black;\n\t\t\tfixedRulerMajorTickColor = Color.black;\n\t\t\tfixedRulerBorderColor = Color.black;\n\n\t\t\t// Ruler Text\n\t\t\tfixedRulerFont = new Font(\"sansserif\", Font.PLAIN, 10);\n\t\t\tfixedRulerFontColor = Color.black;\n\t\t\tfixedRulerFontMetrics = this.getFontMetrics(fixedRulerFont);\n\n\t\t\t// Fonts\n\t\t\tlabelFont = new Font(\"sansserif\", Font.BOLD, 14);\n\t\t\tlabelFontColor = Color.red;\n\t\t\tlabelFontMetrics = this.getFontMetrics(labelFont);\n\n\t\t\tlegendMinorFont = new Font(\"sansserif\", Font.BOLD, 10);\n\t\t\tlegendMinorFontColor =  Color.red; //new Color(0x01,0x01,0xe5);\n\t\t\tlegendMinorFontMetrics = this.getFontMetrics(legendMinorFont);\n\n\t\t\tlegendMajorFont = new Font(\"sansserif\", Font.BOLD, 20);\n\t\t\tlegendMajorFontColor =  new Color(0x01,0x01,0xe5);\n\t\t\tlegendMajorFontMetrics = this.getFontMetrics(legendMajorFont);\n\n\t\t\tgridRulerFont = new Font(\"sansserif\", Font.PLAIN, 10);\n\t\t\tgridRulerFontColor =  new Color(0x0f,0x85,0xff);\n\t\t\tgridRulerFontMetrics = this.getFontMetrics(gridRulerFont);\n\n\t\t\tupperBoundFontColor =  new Color(0xff,0x00,0x00);\n\n\t\t\t// Set dimension of the region Used For the Plot Legend, Ruler,\n\t\t\t// Labels, and Title\n\t\t\tbaseRegionUsedForPlotLegendRulerLabels =\n\t\t\t\tnew Rectangle(0, gridHeight, gridWidth,\n\t\t\t\t\t\theightOfBaseRegionUsedForPlotLegendRulerLabels);\n\t\t\tunitsPerPixel = plotUpperBound/gridWidth;\n\t\t\tpixelsPerUnit = (double)gridWidth/plotUpperBound;\n\t\t\ttickMajorPlacement = 5;\n\t\t\ttickGap = (gridWidth/100);\n\t\t}\n\n\t\t/*\n\t\t *\n\t\t */\n\t\tprotected void paintComponent(Graphics g) {\n\t\t\tsuper.paintComponent(g);\n\t\t\tint xOffset = !plotTypeScatter ? 0 : leftMargin;\n\n\t\t\t// Make the background white\n\t\t\tg.setColor(Color.white);\n\t\t\tg.fillRect(0, 0, fullVisualizationWidth, fullVisualizationHeight);\n\n\t\t\t// if there is one, Draw Background Image\n\t\t\tif (thereIsaBackgroundImage){\n\t\t\t\tg.drawImage(bufferedImage, 0, 0, null);\n\t\t\t}\n\n\t\t\t// if it is visible Draw grid\n\t\t\tif (gridIsVisible){\n\t\t\t\tdrawGridLines(g);\n\t\t\t}\n\t\t\t// Horizontal line at bottom of graphing region\n\t\t\tg.setColor(gridTickMajorColor);\n\t\t\tg.drawLine(0+xOffset, gridHeight+1, gridWidth+xOffset, gridHeight+1);\n\n\t\t\t//draw a ruler at the bottom\n\t\t\tdrawRuler(g,DrawingPane.ON_BOTTOM);\n\n\t\t\tif (!plotTypeScatter){\n\t\t\t\t// Draw Barcodes\n\t\t\t\tint y, barcodeBarLength;\n\t\t\t\tg.setColor(barcodeBarColor);\n\t\t\t\tfor (int i = 0; i < plotValue.length; i++) {\n\t\t\t\t\tdouble a = plotValue[i][0];\n\t\t\t\t\tdouble b = plotValue[i][1];\n\t\t\t\t\tbarcodeBarLength = (int)((b - a) * pixelsPerUnit);\n\t\t\t\t\ty = (i * (barcodeBarSpacing + barcodeBarHeight)) + upperMargin;\n\n\t\t\t\t\t// If the B value is greater than the UPPER BOUND of the barcode plot\n\t\t\t\t\tif (b > plotUpperBound) {\n\t\t\t\t\t\tbarcodeBarLength = (int)((plotUpperBound - a) * pixelsPerUnit) + 10;\n\t\t\t\t\t}\n\t\t\t\t\tint x = (int)(a * pixelsPerUnit);\n\t\t\t\t\tg.fillRect(x, y, barcodeBarLength, barcodeBarHeight);\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\t// Draw a ruler at the bottom\n\t\t\t\t//drawRuler(g,DrawingPane.ON_LEFT);\n\t\t\t\t// Plot the dots\n\t\t\t\tg.setColor(barcodeBarColor);\n\t\t\t\tint aCount=0, bCount=0;\n\t\t\t\tint x=0, y=0;\n\t\t\t\tfor (int i = 0; i < plotValue.length; i++) {\n\t\t\t\t\tdouble a = plotValue[i][0];\n\t\t\t\t\tdouble b = plotValue[i][1];\n\t\t\t\t\ty = gridWidth - (int)(b * pixelsPerUnit);\n\t\t\t\t\tx = (int)(a * pixelsPerUnit);\n\t\t\t\t\tif (a > plotUpperBound) {\n\t\t\t\t\t\t// If the A value is greater than the UPPER BOUND \n\t\t\t\t\t\t// of the scatter plot so is B so just count it\n\t\t\t\t\t\taCount++;\n\t\t\t\t\t\tbCount++;\n\t\t\t\t\t} else if (b > plotUpperBound) {\n\t\t\t\t\t\t// If the B value is greater than the UPPER BOUND of the \n\t\t\t\t\t\t// scatter plot mark it on the A=B co-ordinate with a \n\t\t\t\t\t\t// green dot and count it\n\t\t\t\t\t\tg.setColor(Color.red);\n\t\t\t\t\t\tg.fillOval(x+xOffset-(CIRCLE_SIZE/2), -(CIRCLE_SIZE/2), CIRCLE_SIZE, CIRCLE_SIZE);\n\t\t\t\t\t\tbCount++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tg.setColor(barcodeBarColor);\n\t\t\t\t\t\tg.fillOval(x+xOffset-(CIRCLE_SIZE/2), y-(CIRCLE_SIZE/2), CIRCLE_SIZE, CIRCLE_SIZE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Write out the legends at the center under the plot\n\t\t\t\tif ((aCount > 0 || bCount > 0) && (!plotBeingSaved)) {\n\t\t\t\t\tString aText = \"\";\n\t\t\t\t\tif (aCount > 0) {\n\t\t\t\t\t\tif (aCount > 1) \n\t\t\t\t\t\t\taText = \"There are \" + aCount + \" X,Y points completely off the grid.\";\n\t\t\t\t\t\telse  \n\t\t\t\t\t\t\taText = \"One of the X,Y points is completely off the grid.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tString bText = \"\";\n\t\t\t\t\tif ((bCount-aCount) > 0) {\n\t\t\t\t\t\tif ((bCount-aCount) > 1) \n\t\t\t\t\t\t\tbText = \"There are \" + (bCount-aCount) + \" points above the top of the grid.\";\n\t\t\t\t\t\telse  \n\t\t\t\t\t\t\tbText = \"One of the X,Y points is above the top of the grid.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tcenterText(aText,\n\t\t\t\t\t\t\tlabelFont,\n\t\t\t\t\t\t\tlabelFontMetrics,\n\t\t\t\t\t\t\tlabelFontColor,\n\t\t\t\t\t\t\tbText,\n\t\t\t\t\t\t\tlabelFont,\n\t\t\t\t\t\t\tlabelFontMetrics,\n\t\t\t\t\t\t\tlabelFontColor,\n\t\t\t\t\t\t\tg,\n\t\t\t\t\t\t\t(int)(gridWidth * 0.75)+xOffset,(int)(gridWidth * 0.75),\n\t\t\t\t\t\t\t60,\n\t\t\t\t\t\t\t40,\n\t\t\t\t\t\t\t0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Write out the legends at the center under the plot\n\t\t\tcenterText(legendMajorString,\n\t\t\t\t\tlegendMajorFont,\n\t\t\t\t\tlegendMajorFontMetrics,\n\t\t\t\t\tlegendMajorFontColor,\n\t\t\t\t\tlegendMinorString,\n\t\t\t\t\tlegendMinorFont,\n\t\t\t\t\tlegendMinorFontMetrics,\n\t\t\t\t\tlegendMinorFontColor,\n\t\t\t\t\tg,\n\t\t\t\t\t0+xOffset, gridHeight+(2*gridRulerFontMetrics.getHeight()) + 3,\n\t\t\t\t\tbaseRegionUsedForPlotLegendRulerLabels.width,\n\t\t\t\t\tbaseRegionUsedForPlotLegendRulerLabels.height - \n\t\t\t\t\t(2*gridRulerFontMetrics.getHeight())-3,\n\t\t\t\t\t0);\n\t\t}\n\n\t\t/*\n\t\t * Assumption for fullVisualization\n\t\t * 150 dpi and 8\"x10\" plot region => 1200x1500 pixels\n\t\t * tick\n\t\t */\n\t\tprotected void drawGridLines(Graphics g){\n\t\t\tint xOffset = !plotTypeScatter ? 0 : leftMargin;\n\n\t\t\t// Draw the vertical lines\n\t\t\tint tickMinorCount = 0;\n\t\t\tfor (int i=0; i <= gridWidth; i+=tickGap) {\n\t\t\t\tif(tickMinorCount%tickMajorPlacement == 0){\n\t\t\t\t\tif(i == gridWidth){\n\t\t\t\t\t\tg.setColor(tickUpperBoundColor);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tg.setColor(gridTickMajorColor);\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\tg.setColor(gridTickMinorColor);\n\t\t\t\t}\n\t\t\t\tg.drawLine(i+xOffset, 0, i+xOffset, gridHeight);\n\t\t\t\ttickMinorCount++;\n\t\t\t}\n\t\t\t// Draw the horizontal lines\n\t\t\tif (plotTypeScatter){\n\t\t\t\ttickMinorCount = 0;\n\t\t\t\tfor (int i=0; i <= gridWidth; i+=tickGap) {\n\t\t\t\t\tif(tickMinorCount%tickMajorPlacement == 0){\n\t\t\t\t\t\tif(i == 0){\n\t\t\t\t\t\t\tg.setColor(tickUpperBoundColor);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tg.setColor(gridTickMajorColor);\n\t\t\t\t\t\t}\n\t\t\t\t\t}else{\n\t\t\t\t\t\tg.setColor(gridTickMinorColor);\n\t\t\t\t\t}\n\t\t\t\t\tg.drawLine(0+xOffset, i, gridWidth+xOffset, i);\n\t\t\t\t\ttickMinorCount++;\n\t\t\t\t}\n\t\t\t\tg.setColor(tickUpperBoundColor);\n\t\t\t\tg.drawLine(0+xOffset, gridWidth, gridWidth+xOffset, 0);\n\t\t\t}\n\n\t\t}\n\n\t\t/*\n\t\t * Assumption for fullVisualization\n\t\t * 150 dpi and 8\"x10\" plot region => 1200x1500 pixels\n\t\t * tick\n\t\t */\n\t\tprotected void drawRuler(Graphics g, int position){\n\t\t\tint xOffset = !plotTypeScatter ? 0 : leftMargin;\n\n\t\t\tFont rf;\n\t\t\tFontMetrics rfm;\n\t\t\tColor rfc;\n\t\t\tint tickMajorLength;\n\t\t\tint tickMinorLength;\n\t\t\tint toggleLength;\n\n\t\t\tint rulerY;\n\t\t\tColor tMajorC, tMinorC;\n\n\t\t\tString text = null;\n\t\t\tboolean itShouldBePlacedHigh = true;\n\t\t\tint tickLineLength = 0;\n\n\t\t\t// Used for drawing lines and placing text\n\t\t\tint fromY=0,toY=0,atY=0,fromX=0,toX=0,atX=0;\n\n\t\t\t// The angle in PI radians to rotate text\n\t\t\tdouble sr = 0;\n\n\t\t\tswitch (position) {\n\t\t\tcase ON_TOP: \n\t\t\t\trf = fixedRulerFont;\n\t\t\t\trfm = fixedRulerFontMetrics;\n\t\t\t\trfc = fixedRulerFontColor;\n\t\t\t\ttickMajorLength = 5;\n\t\t\t\ttickMinorLength = 1;\n\t\t\t\trulerY = 0;\n\t\t\t\ttMinorC = fixedRulerMinorTickColor;\n\t\t\t\ttMajorC = fixedRulerMajorTickColor;\n\t\t\t\ttoggleLength = 10;\n\t\t\t\tbreak;\n\t\t\tcase ON_BOTTOM: \n\t\t\t\trf = gridRulerFont;\n\t\t\t\trfm = gridRulerFontMetrics;\n\t\t\t\trfc = gridRulerFontColor;\n\t\t\t\ttickMajorLength = 5;\n\t\t\t\ttickMinorLength = 1;\n\t\t\t\trulerY = gridHeight+1;\n\t\t\t\ttMajorC = gridTickMajorColor;\n\t\t\t\ttMinorC = gridTickMinorColor;\n\t\t\t\ttoggleLength = 10;\n\t\t\t\tbreak;\n\t\t\tcase ON_LEFT: \n\t\t\t\trf = gridRulerFont;\n\t\t\t\trfm = gridRulerFontMetrics;\n\t\t\t\trfc = gridRulerFontColor;\n\t\t\t\ttickMajorLength = 5;\n\t\t\t\ttickMinorLength = 1;\n\t\t\t\trulerY = gridHeight+1;\n\t\t\t\ttMajorC = gridTickMajorColor;\n\t\t\t\ttMinorC = gridTickMinorColor;\n\t\t\t\ttoggleLength = 10;\n\t\t\t\tbreak;\n\t\t\tcase ON_RIGHT: \n\t\t\t\t// Someday implement\n\t\t\tdefault:\n\t\t\t\trf = fixedRulerFont;\n\t\t\trfm = fixedRulerFontMetrics;\n\t\t\trfc = fixedRulerFontColor;\n\t\t\ttickMajorLength = 5;\n\t\t\ttickMinorLength = 1;\n\t\t\trulerY = 0;\n\t\t\ttMinorC = fixedRulerMinorTickColor;\n\t\t\ttMajorC = fixedRulerMajorTickColor;\n\t\t\ttoggleLength = 10;\n\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Draw The Ticks And Labels\n\t\t\tint i = 0;\n\t\t\tfor (; i <= gridWidth; i+=tickGap) {\n\t\t\t\t// if it is a major tick\n\t\t\t\tif (i % tickMajorPlacement == 0)  {\n\t\t\t\t\t// alternate the length every other one\n\t\t\t\t\tif (itShouldBePlacedHigh){\n\t\t\t\t\t\ttickLineLength = tickMajorLength + toggleLength;\n\t\t\t\t\t\titShouldBePlacedHigh = false;\n\t\t\t\t\t}else{\n\t\t\t\t\t\ttickLineLength = tickMajorLength;\n\t\t\t\t\t\titShouldBePlacedHigh = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set Tick Color And Determine Tick Text\n\t\t\t\t\tswitch (position) {\n\t\t\t\t\tcase ON_TOP: \n\t\t\t\t\tcase ON_BOTTOM: \n\t\t\t\t\t\ttext = String.format(\"%.6g\", i * unitsPerPixel);\n\t\t\t\t\t\tif(i != gridWidth){\n\t\t\t\t\t\t\tg.setColor(tMajorC);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tg.setColor(tickUpperBoundColor);\n\t\t\t\t\t\t\trfc = upperBoundFontColor;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ON_LEFT: \n\t\t\t\t\tcase ON_RIGHT: \n\t\t\t\t\t\ttext = String.format(\"%.6g\", (gridWidth - i) * unitsPerPixel);\n\t\t\t\t\t\tif( i != 0){\n\t\t\t\t\t\t\tg.setColor(tMajorC);\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tg.setColor(tickUpperBoundColor);\n\t\t\t\t\t\t\trfc = upperBoundFontColor;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there is a decimal point there might be trailing zeros\n\t\t\t\t\tif (text.indexOf('.') > -1){\n\t\t\t\t\t\t// Remove any trailing zeros\n\t\t\t\t\t\twhile (text.endsWith(\"0\")){\n\t\t\t\t\t\t\ttext = text.substring(0, text.length()-1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Remove if any trailing decimal point\n\t\t\t\t\t\tif (text.endsWith(\".\")){\n\t\t\t\t\t\t\ttext = text.substring(0, text.length()-1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tg.setColor(tMinorC);\n\t\t\t\t\ttext = null;\n\t\t\t\t\ttickLineLength = tickMinorLength;\n\t\t\t\t}\n\n\t\t\t\tif (tickLineLength != 0){\n\n\t\t\t\t\t// Determine Where To Draw The Tick And Place The Text\n\t\t\t\t\tswitch (position) {\n\t\t\t\t\tcase ON_TOP: \n\t\t\t\t\t\tfromY = FIXED_RULER_HEIGHT-1;\n\t\t\t\t\t\ttoY = FIXED_RULER_HEIGHT-tickLineLength-1;\n\t\t\t\t\t\tatY = toY + 1 - rfm.getHeight();\n\t\t\t\t\t\tfromX = i+xOffset+1;\n\t\t\t\t\t\ttoX   = i+xOffset+1;\n\t\t\t\t\t\tatX = toX;\n\t\t\t\t\t\tsr = 0;\n\t\t\t\t\t\tif(i == gridWidth)\n\t\t\t\t\t\t\tatX = atX - rfm.stringWidth(text)/2;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ON_BOTTOM: \n\t\t\t\t\t\tfromY = rulerY+1;\n\t\t\t\t\t\ttoY = rulerY + tickLineLength;\n\t\t\t\t\t\tatY = toY + 1;\n\t\t\t\t\t\tfromX = i+xOffset;\n\t\t\t\t\t\ttoX   = i+xOffset;\n\t\t\t\t\t\tatX = toX;\n\t\t\t\t\t\tsr = 0;\n\t\t\t\t\t\tif(i == gridWidth)\n\t\t\t\t\t\t\tatX = atX - rfm.stringWidth(text)/2;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ON_LEFT: \n\t\t\t\t\t\tfromY = i;\n\t\t\t\t\t\ttoY = i;\n\t\t\t\t\t\tatY = toY + 1;\n\t\t\t\t\t\tfromX = xOffset;\n\t\t\t\t\t\ttoX   = xOffset - tickLineLength;\n\t\t\t\t\t\tatX = toX - 1;\n\t\t\t\t\t\tsr = 1.5;\n\t\t\t\t\t\tif(i == 0)\n\t\t\t\t\t\t\tatY = atY + rfm.stringWidth(text)/2;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ON_RIGHT: \n\t\t\t\t\t\t// Someday implement\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Draw the tick\n\t\t\t\t\tg.drawLine(fromX, fromY, toX, toY);\n\n\t\t\t\t\t// Place the text\n\t\t\t\t\tif (text != null)\n\t\t\t\t\t\tcenterText(text,\n\t\t\t\t\t\t\t\trf,\n\t\t\t\t\t\t\t\trfm,\n\t\t\t\t\t\t\t\trfc,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tg,\n\t\t\t\t\t\t\t\tatX, atY,\n\t\t\t\t\t\t\t\t3,\n\t\t\t\t\t\t\t\t3,\n\t\t\t\t\t\t\t\tsr);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Center text to be displayed within a given rectangle\n\t\t */\n\t\tprotected void centerText(String s1, Font f1, FontMetrics m1, Color color1,\n\t\t\t\tString s2, Font f2, FontMetrics m2, Color color2,\n\t\t\t\tGraphics g,\n\t\t\t\tint x, int y, int regionWidth, int regionHeight, \n\t\t\t\tdouble stringRotationPiRadians)\n\t\t{\n\n\t\t\t// init\n\t\t\tint stringWidth1=0, stringWidth2 = 0, x0=0, x1=0, y0=0, y1=0,\n\t\t\tfontAscent1=0, fontHeight1=0, fontHeight2=0;\n\n\t\t\t// Font Height\n\t\t\tfontHeight1 = m1.getHeight();\n\n\t\t\t// Width of first string\n\t\t\tstringWidth1 = m1.stringWidth(s1);\n\n\t\t\t// Font Height From Baseline\n\t\t\tfontAscent1 = m1.getAscent();\n\n\t\t\tif (s2 != null) {\n\t\t\t\tfontHeight2 = m2.getHeight();\n\t\t\t\tstringWidth2 = m2.stringWidth(s2);\n\t\t\t}\n\n\t\t\t// Determine position\n\t\t\tif ((stringRotationPiRadians == 0.5) || (stringRotationPiRadians == 1.5)){\n\t\t\t\t// Center the strings horizontally\n\t\t\t\ty0 = y - (regionHeight - stringWidth1)/2;\n\t\t\t\ty1 = y - (regionHeight - stringWidth2)/2;\n\n\t\t\t\tif (s2 == null) {\n\t\t\t\t\t// Center Vertically\n\t\t\t\t\tx0 = x + (regionWidth - fontHeight1)/2;\n\t\t\t\t} else {\n\t\t\t\t\tx0 = x + ((regionWidth - (int)(fontHeight1 + (fontHeight2 * 1.2)))/2);\n\t\t\t\t\tx1 = x0 + (int)(fontHeight2 * 1.2 );\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\t// Center the strings horizontally\n\t\t\t\tx0 = x + (regionWidth - stringWidth1)/2;\n\t\t\t\tx1 = x + (regionWidth - stringWidth2)/2;\n\n\t\t\t\tif (s2 == null) {\n\t\t\t\t\t// Center Vertically\n\t\t\t\t\ty0 = y + (regionHeight - fontHeight1)/2 + fontAscent1;\n\t\t\t\t} else {\n\t\t\t\t\ty0 = y + ((regionHeight - (int)(fontHeight1 + (fontHeight2 * 1.2)))/2) + \n\t\t\t\t\tfontAscent1;\n\t\t\t\t\ty1 = y0 + (int)(fontHeight2 * 1.2 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (g instanceof Graphics2D) {\n\t\t\t\tMap<RenderingHints.Key, Object> hints = new HashMap<RenderingHints.Key, Object>();\n\t\t\t\thints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);\n\t\t\t\t((Graphics2D)g).addRenderingHints(hints);\n\t\t\t}\n\n\t\t\tFont f3 = f1.deriveFont (AffineTransform.getRotateInstance \n\t\t\t\t\t(stringRotationPiRadians * Math.PI));\n\t\t\tg.setFont (f3);\n\t\t\tg.setColor(color1);\n\t\t\tg.drawString (s1, x0, y0);\n\n\t\t\tif (s2 != null) {\n\t\t\t\tFont f4 = f2.deriveFont (AffineTransform.getRotateInstance \n\t\t\t\t\t\t(stringRotationPiRadians * Math.PI));\n\t\t\t\tg.setFont (f4);\n\t\t\t\tg.setColor(color2);\n\t\t\t\tg.drawString(s2, x1, y1);\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Saves the barcode plot as an image\n\t\t */\n\t\tprotected void saveImage(File file, String format){\n\n\t\t\t// Write the image in the selected format, to the file chosen by the user.\n\t\t\tGraphics g=null;\n\t\t\tif (thereIsaBackgroundImage){\n\t\t\t\ttry {\n\t\t\t\t\tbufferedImage = ImageIO.read(new File(backgroundImageName));\n\t\t\t\t\tg = bufferedImage.getGraphics();\n\t\t\t\t\tg.drawImage(bufferedImage, 0, 0, null);\n\n\t\t\t\t} catch (IOException e1) {\n\t\t\t\t\tbufferedImage =\n\t\t\t\t\t\tnew BufferedImage(fullVisualizationWidth, fullVisualizationHeight,\n\t\t\t\t\t\t\t\tBufferedImage.TYPE_INT_BGR);\n\t\t\t\t\tg = bufferedImage.createGraphics();\n\t\t\t\t}\n\t\t\t}else {\n\t\t\t\tbufferedImage =\n\t\t\t\t\tnew BufferedImage(fullVisualizationWidth, fullVisualizationHeight,\n\t\t\t\t\t\t\tBufferedImage.TYPE_INT_BGR);\n\t\t\t\tg = bufferedImage.createGraphics();\n\t\t\t}\n\n\t\t\tplotBeingSaved = true;\n\t\t\tpaintComponent(g);\n\t\t\tplotBeingSaved = false;\n\n\t\t\ttry {\n\t\t\t\tImageIO.write( bufferedImage, format, file);\n\t\t\t} catch (IOException e1) {\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/*\n\t * Draws a ruler for the Plot the barcode plot\n\t */\n\tprotected class Ruler extends JComponent {\n\t\tprotected static final long serialVersionUID = 1L;\n\n\t\tprotected DrawingPane dp;\n\t\tprotected Ruler(DrawingPane bc) {\n\t\t\tdp = bc;\n\t\t\tsetPreferredSize(new Dimension(gridWidth, FIXED_RULER_HEIGHT));\n\t\t}\n\n\t\tprotected void paintComponent(Graphics g) {\n\t\t\tRectangle graphicRegion = g.getClipBounds();\n\n\t\t\t// Fill clipping area\n\t\t\tg.setColor(fixedRulerColor);\n\t\t\tg.fillRect(graphicRegion.x, graphicRegion.y,\n\t\t\t\t\tgraphicRegion.width, graphicRegion.height);\n\n\t\t\tdp.drawRuler(g,DrawingPane.ON_TOP);\n\t\t}\n\t}\n\t/**\n\t * Create the plot window and display results. For thread safety, this\n\t * method should be invoked from the event-dispatching thread.\n\t */\n\tprotected static void plot(String legend, double[][] values, \n\t\t\tdouble upperBound, boolean forceScatter) {\n\t\t//Create and set up the window.\n\t\tJFrame frame = new JFrame(legend);\n\t\tframe.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);\n\n\t\tif (values == null)\n\t\t\tthrow new IllegalArgumentException(\"No barcodes to plot\");\n\n\t\t//Create and set up the content pane.\n\t\tBCPlot bcplot = new BCPlot(values, upperBound, forceScatter);\n\t\tbcplot.setMajorLegend(legend);\n\t\tframe.setJMenuBar(bcplot.createMenuBar());\n\t\tbcplot.setOpaque(true); //content panes must be opaque\n\t\tframe.setContentPane(bcplot);\n\n\t\t//Display the window.\n\t\tframe.pack();\n\t\tframe.setVisible(true);\n\t}\n\n\t/**\n\t * Make a barcode plot -- call via Plex.plot().\n\t *\n\t * <p>\n\t *\n\t * @param      label Window label.\n\t * @param      intervals An array of double[2] of [x,y] intervals to plot.\n\t * @param      upperBound Display the range from 0 to upperBound.\n\t *\n\t * @see        edu.stanford.math.plex.Plex#plot\n\t */\n\tpublic static void doPlot(String label, double[][] intervals, double upperBound) {\n\t\t//Schedule a job for the event-dispatching thread to do the actual\n\t\t//plotting.\n\t\tfinal double[][] values = intervals;\n\t\tfinal double ubound = upperBound;\n\t\tfinal String legend = label;\n\t\tjavax.swing.SwingUtilities.invokeLater(new Runnable() {\n\t\t\tpublic void run() {\n\t\t\t\tplot(legend, values, ubound, false);\n\t\t\t}   \n\t\t});\n\t}\n\n\t/**\n\t * Make a barcode scatterplot -- call via Plex.scatter().\n\t *\n\t * <p>\n\t *\n\t * @param      label Window label.\n\t * @param      intervals An array of double[2] of x,y points to plot.\n\t * @param      upperBound Display the square from 0 to upperBound.\n\t *\n\t * @see        edu.stanford.math.plex.Plex#scatter\n\t */\n\tpublic static void doScatter(String label, double[][] intervals, double upperBound) {\n\t\t//Schedule a job for the event-dispatching thread to do the actual\n\t\t//plotting.\n\t\tfinal double[][] values = intervals;\n\t\tfinal double ubound = upperBound;\n\t\tfinal String legend = label;\n\t\tjavax.swing.SwingUtilities.invokeLater(new Runnable() {\n\t\t\tpublic void run() {\n\t\t\t\tplot(legend, values, ubound, true);\n\t\t\t}   \n\t\t});\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/CRC.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * The <code>CRC</code> class provides good hash methods for int/long and string data.\r\n *\r\n * @version $Id$\r\n */\r\npublic class CRC {\r\n\r\n\tprivate CRC() {\r\n\t\t// no instances\r\n\t}\r\n\r\n\t// CRC Hashing Explained:\r\n\t//\r\n\t// The underlying idea here is that the string (or whatever) being\r\n\t// hashed is regarded as being a polynomial in Z/2[X].  (This is\r\n\t// trivial, but in case it isn't obvious, you can identify an array of\r\n\t// length N of bytes with the integer formed by summing the terms\r\n\t// (byte[i]*(8**(N - (1+i)))) -- in other words, look at the entire\r\n\t// array of bytes as one giant bitfield, with the \"significance\" of the\r\n\t// bits decreasing as you move from left to right.  Then, you can\r\n\t// identify an integer I with p(x) in Z/2[X] such that the coefficient\r\n\t// of X**k is non-zero iff the LOGICAL_AND (2**k, I) is non-zero.)\r\n\t// \r\n\t// The trick is to pick some polynomial M(x), and take as the hash\r\n\t// value for the string the remainder of the string modulo M(x).\r\n\t// Clearly, in order for the strings to hash to more possible values,\r\n\t// the degree of M should be as large as feasible. In order to make the\r\n\t// make the hash values \"more random\" for short strings, we \"multiply\"\r\n\t// the string by some power of X. To make this more concrete, let M be\r\n\t// a polynomial of degree 32, and shift the strings 32bits (multiply by\r\n\t// X**32). In other words, define the hash value of a byte array to be\r\n\t// the remainder, modulo M(x), of the new array constructed by\r\n\t// appending 4 null bytes. What was not instantly obvious to me is that\r\n\t// this calculation can be done, by using a table, examining the string\r\n\t// a byte at a time. Here's how this works:\r\n\t// \r\n\t// Let string = [Byte0][Byte1][Byte2][Byte3][Byte4][Byte5]....\r\n\t// \r\n\t// and M(x)   = 1[byte0][byte1][byte2][byte3]\r\n\t// \r\n\t// Now, string is equal to\r\n\t// \r\n\t// string = [00000][Byte1][Byte2][Byte3][Byte4][Byte5]....\r\n\t// +[Byte0]...all zeros....\r\n\t// \r\n\t// and this has the same remainder as\r\n\t// \r\n\t// string1 = [00000][Byte1][Byte2][Byte3][Byte4][Byte5]....\r\n\t// +[00000][rem-0][rem-1][rem-2][rem-4]....all zeros...\r\n\t// \r\n\t// where the bytes rem-i are the bytes of the remainder of\r\n\t// [Byte0][00000][00000][00000][00000] when divided by M(x). (This may\r\n\t// need some thinking about, but it is straightforward once you\r\n\t// remember that the remainder is computed by successively XORing\r\n\t// shifts of M(x) so that the leading bit of M(x) cancels the\r\n\t// appropriate bit of the polynomial we are dividing -- this means that\r\n\t// any bits more than 4 bytes from the \"last cancelled bit\", that is,\r\n\t// bits in [Byte5] and beyond are unaffected.)\r\n\t// \r\n\t// That means that the remainder of string is the same as the remainder of\r\n\t// \r\n\t// string1 = [Byte1][Byte2][Byte3][Byte4][Byte5]....\r\n\t// +[rem-0][rem-1][rem-2][rem-4]....all zeros...\r\n\t// \r\n\t// or string1 = [Btr_1][Btr_2][Btr_3][Btr_4][Btr_5]....\r\n\t// \r\n\t// where Btr_i = rem-i XOR Bytei, for i <= 4, and Bytei for i > 4.\r\n\t// \r\n\t// \r\n\t// In other words, for a given string, we process the first byte by\r\n\t// taking the 32bit remainder of that \"shifted\" byte (and since there\r\n\t// are only 256 of these bytes, we can compute these remainders and\r\n\t// keep them in a table), and then XOR that remainder word with the\r\n\t// succeeding 4 bytes in the string. Further, since XOR is associative\r\n\t// and commutative, we can just keep that remainder in an accumulator,\r\n\t// and do the XORing \"virtually\".\r\n\t// \r\n\t// To see this, consider the next step in the hashing:\r\n\t// \r\n\t// string1 = [Byte1][Byte2][Byte3][Byte4][Byte5]....\r\n\t// +[rem-0][rem-1][rem-2][rem-4]....all zeros...\r\n\t// \r\n\t// has the same remainder as\r\n\t// \r\n\t// string2 = [Byte2][Byte3][Byte4][Byte5]....\r\n\t// +[rem-1][rem-2][rem-4]....all zeros...\r\n\t// +[rem21][rem22][rem21][rem22]\r\n\t// \r\n\t// where [rem2i] is the remainder of [Byte1 ^ rem-0][0][0][0][0].\r\n\t// \r\n\t// This, in turn is equal to\r\n\t// \r\n\t// string2 = [Byte2][Byte3][Byte4][Byte5]....\r\n\t// +[rem2-0][rem2-1][rem2-3][rem2-4]....all zeros...\r\n\t// \r\n\t// where the rem2-i are the bytes of ((first-rem) << BITS_PER_BYTE) XOR\r\n\t// (second-rem).  In other words, the algorithm is to start with\r\n\t// ACCUMULATOR = 0, and looping through each i in the byte array,\r\n\t// \r\n\t// table_index = byte[i] ^ (ACCUMULATOR>> (BITS_PER_ULONG - BITS_PER_BYTE));\r\n\t// ACCUMULATOR = (ACCUMULATOR << BITS_PER_BYTE) ^ REMAINDER_TABLE[table_index];\r\n\t// \r\n\t// Now, looking at this code, we see we can eliminate one shift and replace\r\n\t// it by a logical and, if we make an alteration. Let the contents of\r\n\t// REMAINDER_TABLE be byte-reversed (that is, the bytes are present, but\r\n\t// byte[i] is switched with byte[3-i]). Then, start with REV_ACCUMULATOR =\r\n\t// 0; and loop through each i,\r\n\t// \r\n\t// table_index = byte[i] ^ (REV_ACCUMULATOR && 0xff);\r\n\t// ACCUMULATOR = (REV_ACCUMULATOR >> 8) ^ REV_REMAINDER_TABLE[table_index];\r\n\t// \r\n\t// Now, whether this is better or not is somewhat unclear -- there is\r\n\t// no perceptible difference on a Sun4, and I doubt that there is on\r\n\t// any RISC machine, although I suppose some CISC machines might\r\n\t// magically do something to do the first line just above in a single\r\n\t// instruction.\r\n\t// \r\n\t// This thing is a linear code, and I seem to recall that it is clear\r\n\t// (during the short time that one remembers the details) that the\r\n\t// polynomial should be prime. In fact, if you choose one with the\r\n\t// correct roots, you can guarantee that nothing in the kernel of the\r\n\t// linear map is of degree <= K (excluding 0, of course) for some K\r\n\t// that's bigger than you think... The reference for this code, a paper\r\n\t// which is much less clear than this comment and has a lot of\r\n\t// extraneous junk and no theory in it, is: Aram Perez, IEEE Micro,\r\n\t// June 1983, pp.  40-50.  Knuth has a short reference that is better,\r\n\t// but doesn't explain how to use a table to speed up the calculation.\r\n\t// Finally, the table is made from the 33bit number 0x1e4725ca3, which\r\n\t// is a prime polynomial of degree 32.\r\n\t// \r\n\t// A moment's reflection will convince you that this same argument\r\n\t// applies to any prime of degree B*n (where B is the number of bits in\r\n\t// a byte).  The question is how to apply this method when you want to\r\n\t// use a polynomial Q(x) of degree, say, 29. The answer is simple. Make\r\n\t// a table as above, and apply the same algorithm. You will get a\r\n\t// \"remainder\" which is of degree 31 -- this is a polynomial that has\r\n\t// the same remainder modulo Q(x) as the original value, so all that is\r\n\t// necessary is to compute the remainders of possible polynomials of\r\n\t// the form:\r\n\t// \r\n\t// [Byte][0][0][0] \r\n\t// \r\n\t// modulo Q(x). That is, you need a second (\"dregs\") table of the same\r\n\t// size mas the first, and you have to apply the iterative step of the\r\n\t// algorithm one last time using the dregs table.\r\n\r\n\r\n\t/**\r\n\t * Internal table used by CRC code.\r\n\t */\r\n\r\n\t// This table is made from the 65bit number 0x1000000000000001b,\r\n\t// considered as a prime polynomial of degree 64. The polynomial x64 +\r\n\t// x4 + x3 + x + 1 (as described in ISO 3309) is prime, and presumably\r\n\t// the advantage that the entries in the table are smaller is one of\r\n\t// the reasons that it was chosen. We also have a table below made from\r\n\t// a prime with a lot more bits in it.\r\n\tprotected static long[] hash64tab0 = new long[] { \r\n\t\t0x000L, 0x01bL, 0x036L, 0x02dL, 0x06cL, 0x077L, \r\n\t\t0x05aL, 0x041L, 0x0d8L, 0x0c3L, 0x0eeL, 0x0f5L, \r\n\t\t0x0b4L, 0x0afL, 0x082L, 0x099L, 0x1b0L, 0x1abL, \r\n\t\t0x186L, 0x19dL, 0x1dcL, 0x1c7L, 0x1eaL, 0x1f1L, \r\n\t\t0x168L, 0x173L, 0x15eL, 0x145L, 0x104L, 0x11fL, \r\n\t\t0x132L, 0x129L, 0x360L, 0x37bL, 0x356L, 0x34dL, \r\n\t\t0x30cL, 0x317L, 0x33aL, 0x321L, 0x3b8L, 0x3a3L, \r\n\t\t0x38eL, 0x395L, 0x3d4L, 0x3cfL, 0x3e2L, 0x3f9L, \r\n\t\t0x2d0L, 0x2cbL, 0x2e6L, 0x2fdL, 0x2bcL, 0x2a7L, \r\n\t\t0x28aL, 0x291L, 0x208L, 0x213L, 0x23eL, 0x225L, \r\n\t\t0x264L, 0x27fL, 0x252L, 0x249L, 0x6c0L, 0x6dbL, \r\n\t\t0x6f6L, 0x6edL, 0x6acL, 0x6b7L, 0x69aL, 0x681L, \r\n\t\t0x618L, 0x603L, 0x62eL, 0x635L, 0x674L, 0x66fL, \r\n\t\t0x642L, 0x659L, 0x770L, 0x76bL, 0x746L, 0x75dL, \r\n\t\t0x71cL, 0x707L, 0x72aL, 0x731L, 0x7a8L, 0x7b3L, \r\n\t\t0x79eL, 0x785L, 0x7c4L, 0x7dfL, 0x7f2L, 0x7e9L, \r\n\t\t0x5a0L, 0x5bbL, 0x596L, 0x58dL, 0x5ccL, 0x5d7L, \r\n\t\t0x5faL, 0x5e1L, 0x578L, 0x563L, 0x54eL, 0x555L, \r\n\t\t0x514L, 0x50fL, 0x522L, 0x539L, 0x410L, 0x40bL, \r\n\t\t0x426L, 0x43dL, 0x47cL, 0x467L, 0x44aL, 0x451L, \r\n\t\t0x4c8L, 0x4d3L, 0x4feL, 0x4e5L, 0x4a4L, 0x4bfL, \r\n\t\t0x492L, 0x489L, 0xd80L, 0xd9bL, 0xdb6L, 0xdadL, \r\n\t\t0xdecL, 0xdf7L, 0xddaL, 0xdc1L, 0xd58L, 0xd43L, \r\n\t\t0xd6eL, 0xd75L, 0xd34L, 0xd2fL, 0xd02L, 0xd19L, \r\n\t\t0xc30L, 0xc2bL, 0xc06L, 0xc1dL, 0xc5cL, 0xc47L, \r\n\t\t0xc6aL, 0xc71L, 0xce8L, 0xcf3L, 0xcdeL, 0xcc5L, \r\n\t\t0xc84L, 0xc9fL, 0xcb2L, 0xca9L, 0xee0L, 0xefbL, \r\n\t\t0xed6L, 0xecdL, 0xe8cL, 0xe97L, 0xebaL, 0xea1L, \r\n\t\t0xe38L, 0xe23L, 0xe0eL, 0xe15L, 0xe54L, 0xe4fL, \r\n\t\t0xe62L, 0xe79L, 0xf50L, 0xf4bL, 0xf66L, 0xf7dL, \r\n\t\t0xf3cL, 0xf27L, 0xf0aL, 0xf11L, 0xf88L, 0xf93L, \r\n\t\t0xfbeL, 0xfa5L, 0xfe4L, 0xfffL, 0xfd2L, 0xfc9L, \r\n\t\t0xb40L, 0xb5bL, 0xb76L, 0xb6dL, 0xb2cL, 0xb37L, \r\n\t\t0xb1aL, 0xb01L, 0xb98L, 0xb83L, 0xbaeL, 0xbb5L, \r\n\t\t0xbf4L, 0xbefL, 0xbc2L, 0xbd9L, 0xaf0L, 0xaebL, \r\n\t\t0xac6L, 0xaddL, 0xa9cL, 0xa87L, 0xaaaL, 0xab1L, \r\n\t\t0xa28L, 0xa33L, 0xa1eL, 0xa05L, 0xa44L, 0xa5fL, \r\n\t\t0xa72L, 0xa69L, 0x820L, 0x83bL, 0x816L, 0x80dL, \r\n\t\t0x84cL, 0x857L, 0x87aL, 0x861L, 0x8f8L, 0x8e3L, \r\n\t\t0x8ceL, 0x8d5L, 0x894L, 0x88fL, 0x8a2L, 0x8b9L, \r\n\t\t0x990L, 0x98bL, 0x9a6L, 0x9bdL, 0x9fcL, 0x9e7L, \r\n\t\t0x9caL, 0x9d1L, 0x948L, 0x953L, 0x97eL, 0x965L, \r\n\t\t0x924L, 0x93fL, 0x912L, 0x909L };\r\n\r\n\t/**\r\n\t * Internal table used by CRC code.\r\n\t */\r\n\r\n\t// This table is made from the 65bit number 0x1dbf5da0ff9e2a9e3,\r\n\t// considered as a prime polynomial of degree 64. */\r\n\tprotected static long[] hash64tab1 = new long[] { \r\n\t\t0x0000000000000000L, 0xdbf5da0ff9e2a9e3L, 0x6c1e6e100a27fa25L, \r\n\t\t0xb7ebb41ff3c553c6L, 0xd83cdc20144ff44aL, 0x03c9062fedad5da9L, \r\n\t\t0xb422b2301e680e6fL, 0x6fd7683fe78aa78cL, 0x6b8c624fd17d4177L,\r\n\t\t0xb079b840289fe894L, 0x07920c5fdb5abb52L, 0xdc67d65022b812b1L, \r\n\t\t0xb3b0be6fc532b53dL, 0x684564603cd01cdeL, 0xdfaed07fcf154f18L,\r\n\t\t0x045b0a7036f7e6fbL, 0xd718c49fa2fa82eeL, 0x0ced1e905b182b0dL,\r\n\t\t0xbb06aa8fa8dd78cbL, 0x60f37080513fd128L, 0x0f2418bfb6b576a4L, \r\n\t\t0xd4d1c2b04f57df47L, 0x633a76afbc928c81L, 0xb8cfaca045702562L, \r\n\t\t0xbc94a6d07387c399L, 0x67617cdf8a656a7aL, 0xd08ac8c079a039bcL,\r\n\t\t0x0b7f12cf8042905fL, 0x64a87af067c837d3L, 0xbf5da0ff9e2a9e30L,\r\n\t\t0x08b614e06defcdf6L, 0xd343ceef940d6415L, 0x75c45330bc17ac3fL, \r\n\t\t0xae31893f45f505dcL, 0x19da3d20b630561aL, 0xc22fe72f4fd2fff9L, \r\n\t\t0xadf88f10a8585875L, 0x760d551f51baf196L, 0xc1e6e100a27fa250L,\r\n\t\t0x1a133b0f5b9d0bb3L, 0x1e48317f6d6aed48L, 0xc5bdeb70948844abL,\r\n\t\t0x72565f6f674d176dL, 0xa9a385609eafbe8eL, 0xc674ed5f79251902L, \r\n\t\t0x1d81375080c7b0e1L, 0xaa6a834f7302e327L, 0x719f59408ae04ac4L, \r\n\t\t0xa2dc97af1eed2ed1L, 0x79294da0e70f8732L, 0xcec2f9bf14cad4f4L,\r\n\t\t0x153723b0ed287d17L, 0x7ae04b8f0aa2da9bL, 0xa1159180f3407378L,\r\n\t\t0x16fe259f008520beL, 0xcd0bff90f967895dL, 0xc950f5e0cf906fa6L, \r\n\t\t0x12a52fef3672c645L, 0xa54e9bf0c5b79583L, 0x7ebb41ff3c553c60L, \r\n\t\t0x116c29c0dbdf9becL, 0xca99f3cf223d320fL, 0x7d7247d0d1f861c9L,\r\n\t\t0xa6879ddf281ac82aL, 0xeb88a661782f587eL, 0x307d7c6e81cdf19dL,\r\n\t\t0x8796c8717208a25bL, 0x5c63127e8bea0bb8L, 0x33b47a416c60ac34L, \r\n\t\t0xe841a04e958205d7L, 0x5faa145166475611L, 0x845fce5e9fa5fff2L, \r\n\t\t0x8004c42ea9521909L, 0x5bf11e2150b0b0eaL, 0xec1aaa3ea375e32cL,\r\n\t\t0x37ef70315a974acfL, 0x5838180ebd1ded43L, 0x83cdc20144ff44a0L,\r\n\t\t0x3426761eb73a1766L, 0xefd3ac114ed8be85L, 0x3c9062fedad5da90L, \r\n\t\t0xe765b8f123377373L, 0x508e0ceed0f220b5L, 0x8b7bd6e129108956L, \r\n\t\t0xe4acbedece9a2edaL, 0x3f5964d137788739L, 0x88b2d0cec4bdd4ffL,\r\n\t\t0x53470ac13d5f7d1cL, 0x571c00b10ba89be7L, 0x8ce9dabef24a3204L,\r\n\t\t0x3b026ea1018f61c2L, 0xe0f7b4aef86dc821L, 0x8f20dc911fe76fadL, \r\n\t\t0x54d5069ee605c64eL, 0xe33eb28115c09588L, 0x38cb688eec223c6bL, \r\n\t\t0x9e4cf551c438f441L, 0x45b92f5e3dda5da2L, 0xf2529b41ce1f0e64L,\r\n\t\t0x29a7414e37fda787L, 0x46702971d077000bL, 0x9d85f37e2995a9e8L,\r\n\t\t0x2a6e4761da50fa2eL, 0xf19b9d6e23b253cdL, 0xf5c0971e1545b536L, \r\n\t\t0x2e354d11eca71cd5L, 0x99def90e1f624f13L, 0x422b2301e680e6f0L, \r\n\t\t0x2dfc4b3e010a417cL, 0xf6099131f8e8e89fL, 0x41e2252e0b2dbb59L,\r\n\t\t0x9a17ff21f2cf12baL, 0x495431ce66c276afL, 0x92a1ebc19f20df4cL,\r\n\t\t0x254a5fde6ce58c8aL, 0xfebf85d195072569L, 0x9168edee728d82e5L, \r\n\t\t0x4a9d37e18b6f2b06L, 0xfd7683fe78aa78c0L, 0x268359f18148d123L, \r\n\t\t0x22d85381b7bf37d8L, 0xf92d898e4e5d9e3bL, 0x4ec63d91bd98cdfdL,\r\n\t\t0x9533e79e447a641eL, 0xfae48fa1a3f0c392L, 0x211155ae5a126a71L,\r\n\t\t0x96fae1b1a9d739b7L, 0x4d0f3bbe50359054L, 0x0ce496cd09bc191fL, \r\n\t\t0xd7114cc2f05eb0fcL, 0x60faf8dd039be33aL, 0xbb0f22d2fa794ad9L, \r\n\t\t0xd4d84aed1df3ed55L, 0x0f2d90e2e41144b6L, 0xb8c624fd17d41770L,\r\n\t\t0x6333fef2ee36be93L, 0x6768f482d8c15868L, 0xbc9d2e8d2123f18bL,\r\n\t\t0x0b769a92d2e6a24dL, 0xd083409d2b040baeL, 0xbf5428a2cc8eac22L, \r\n\t\t0x64a1f2ad356c05c1L, 0xd34a46b2c6a95607L, 0x08bf9cbd3f4bffe4L, \r\n\t\t0xdbfc5252ab469bf1L, 0x0009885d52a43212L, 0xb7e23c42a16161d4L,\r\n\t\t0x6c17e64d5883c837L, 0x03c08e72bf096fbbL, 0xd835547d46ebc658L,\r\n\t\t0x6fdee062b52e959eL, 0xb42b3a6d4ccc3c7dL, 0xb070301d7a3bda86L, \r\n\t\t0x6b85ea1283d97365L, 0xdc6e5e0d701c20a3L, 0x079b840289fe8940L, \r\n\t\t0x684cec3d6e742eccL, 0xb3b936329796872fL, 0x0452822d6453d4e9L,\r\n\t\t0xdfa758229db17d0aL, 0x7920c5fdb5abb520L, 0xa2d51ff24c491cc3L,\r\n\t\t0x153eabedbf8c4f05L, 0xcecb71e2466ee6e6L, 0xa11c19dda1e4416aL, \r\n\t\t0x7ae9c3d25806e889L, 0xcd0277cdabc3bb4fL, 0x16f7adc2522112acL, \r\n\t\t0x12aca7b264d6f457L, 0xc9597dbd9d345db4L, 0x7eb2c9a26ef10e72L,\r\n\t\t0xa54713ad9713a791L, 0xca907b927099001dL, 0x1165a19d897ba9feL,\r\n\t\t0xa68e15827abefa38L, 0x7d7bcf8d835c53dbL, 0xae380162175137ceL, \r\n\t\t0x75cddb6deeb39e2dL, 0xc2266f721d76cdebL, 0x19d3b57de4946408L, \r\n\t\t0x7604dd42031ec384L, 0xadf1074dfafc6a67L, 0x1a1ab352093939a1L,\r\n\t\t0xc1ef695df0db9042L, 0xc5b4632dc62c76b9L, 0x1e41b9223fcedf5aL,\r\n\t\t0xa9aa0d3dcc0b8c9cL, 0x725fd73235e9257fL, 0x1d88bf0dd26382f3L, \r\n\t\t0xc67d65022b812b10L, 0x7196d11dd84478d6L, 0xaa630b1221a6d135L, \r\n\t\t0xe76c30ac71934161L, 0x3c99eaa38871e882L, 0x8b725ebc7bb4bb44L,\r\n\t\t0x508784b3825612a7L, 0x3f50ec8c65dcb52bL, 0xe4a536839c3e1cc8L,\r\n\t\t0x534e829c6ffb4f0eL, 0x88bb58939619e6edL, 0x8ce052e3a0ee0016L, \r\n\t\t0x571588ec590ca9f5L, 0xe0fe3cf3aac9fa33L, 0x3b0be6fc532b53d0L, \r\n\t\t0x54dc8ec3b4a1f45cL, 0x8f2954cc4d435dbfL, 0x38c2e0d3be860e79L,\r\n\t\t0xe3373adc4764a79aL, 0x3074f433d369c38fL, 0xeb812e3c2a8b6a6cL,\r\n\t\t0x5c6a9a23d94e39aaL, 0x879f402c20ac9049L, 0xe8482813c72637c5L, \r\n\t\t0x33bdf21c3ec49e26L, 0x84564603cd01cde0L, 0x5fa39c0c34e36403L, \r\n\t\t0x5bf8967c021482f8L, 0x800d4c73fbf62b1bL, 0x37e6f86c083378ddL,\r\n\t\t0xec132263f1d1d13eL, 0x83c44a5c165b76b2L, 0x58319053efb9df51L,\r\n\t\t0xefda244c1c7c8c97L, 0x342ffe43e59e2574L, 0x92a8639ccd84ed5eL, \r\n\t\t0x495db993346644bdL, 0xfeb60d8cc7a3177bL, 0x2543d7833e41be98L, \r\n\t\t0x4a94bfbcd9cb1914L, 0x916165b32029b0f7L, 0x268ad1acd3ece331L,\r\n\t\t0xfd7f0ba32a0e4ad2L, 0xf92401d31cf9ac29L, 0x22d1dbdce51b05caL,\r\n\t\t0x953a6fc316de560cL, 0x4ecfb5ccef3cffefL, 0x2118ddf308b65863L, \r\n\t\t0xfaed07fcf154f180L, 0x4d06b3e30291a246L, 0x96f369ecfb730ba5L, \r\n\t\t0x45b0a7036f7e6fb0L, 0x9e457d0c969cc653L, 0x29aec91365599595L,\r\n\t\t0xf25b131c9cbb3c76L, 0x9d8c7b237b319bfaL, 0x4679a12c82d33219L,\r\n\t\t0xf1921533711661dfL, 0x2a67cf3c88f4c83cL, 0x2e3cc54cbe032ec7L, \r\n\t\t0xf5c91f4347e18724L, 0x4222ab5cb424d4e2L, 0x99d771534dc67d01L, \r\n\t\t0xf600196caa4cda8dL, 0x2df5c36353ae736eL, 0x9a1e777ca06b20a8L, \r\n\t\t0x41ebad735989894bL };\r\n\r\n\t/**\r\n\t * Internal table used by CRC code.\r\n\t */\r\n\r\n\t// This table is made from the 33bit number 0x1e4725ca3, considered\r\n\t// as a prime polynomial of degree 32.\r\n\tprotected static int[] hash32tab0 = new int[] { \r\n\t\t0x00000000, 0xe4725ca3, 0x2c96e5e5, 0xc8e4b946, 0x592dcbca,\r\n\t\t0xbd5f9769, 0x75bb2e2f, 0x91c9728c, 0xb25b9794, 0x5629cb37,\r\n\t\t0x9ecd7271, 0x7abf2ed2, 0xeb765c5e, 0x0f0400fd, 0xc7e0b9bb,\r\n\t\t0x2392e518, 0x80c5738b, 0x64b72f28, 0xac53966e, 0x4821cacd,\r\n\t\t0xd9e8b841, 0x3d9ae4e2, 0xf57e5da4, 0x110c0107, 0x329ee41f,\r\n\t\t0xd6ecb8bc, 0x1e0801fa, 0xfa7a5d59, 0x6bb32fd5, 0x8fc17376,\r\n\t\t0x4725ca30, 0xa3579693, 0xe5f8bbb5, 0x018ae716, 0xc96e5e50,\r\n\t\t0x2d1c02f3, 0xbcd5707f, 0x58a72cdc, 0x9043959a, 0x7431c939,\r\n\t\t0x57a32c21, 0xb3d17082, 0x7b35c9c4, 0x9f479567, 0x0e8ee7eb,\r\n\t\t0xeafcbb48, 0x2218020e, 0xc66a5ead, 0x653dc83e, 0x814f949d,\r\n\t\t0x49ab2ddb, 0xadd97178, 0x3c1003f4, 0xd8625f57, 0x1086e611,\r\n\t\t0xf4f4bab2, 0xd7665faa, 0x33140309, 0xfbf0ba4f, 0x1f82e6ec,\r\n\t\t0x8e4b9460, 0x6a39c8c3, 0xa2dd7185, 0x46af2d26, 0x2f832bc9,\r\n\t\t0xcbf1776a, 0x0315ce2c, 0xe767928f, 0x76aee003, 0x92dcbca0,\r\n\t\t0x5a3805e6, 0xbe4a5945, 0x9dd8bc5d, 0x79aae0fe, 0xb14e59b8,\r\n\t\t0x553c051b, 0xc4f57797, 0x20872b34, 0xe8639272, 0x0c11ced1,\r\n\t\t0xaf465842, 0x4b3404e1, 0x83d0bda7, 0x67a2e104, 0xf66b9388,\r\n\t\t0x1219cf2b, 0xdafd766d, 0x3e8f2ace, 0x1d1dcfd6, 0xf96f9375,\r\n\t\t0x318b2a33, 0xd5f97690, 0x4430041c, 0xa04258bf, 0x68a6e1f9,\r\n\t\t0x8cd4bd5a, 0xca7b907c, 0x2e09ccdf, 0xe6ed7599, 0x029f293a,\r\n\t\t0x93565bb6, 0x77240715, 0xbfc0be53, 0x5bb2e2f0, 0x782008e8,\r\n\t\t0x9c525b4b, 0x54b6e20d, 0xb0c4beae, 0x210dcc22, 0xc57f9081,\r\n\t\t0x0d9b29c7, 0xe9e97564, 0x4abee3f7, 0xaeccbf54, 0x66280612,\r\n\t\t0x825a5ab1, 0x1393283d, 0xf7e1749e, 0x3f05cdd8, 0xdb77917b,\r\n\t\t0xf8e57463, 0x1c9728c0, 0xd4739186, 0x3001cd25, 0xa1c8bfa9,\r\n\t\t0x45bae30a, 0x8d5e5a4c, 0x692c06ef, 0x5f065792, 0xbb740b31,\r\n\t\t0x7390b277, 0x97e2eed4, 0x062b9c58, 0xe259c0fb, 0x2abd79bd,\r\n\t\t0xcecf251e, 0xed5dc006, 0x092f9ca5, 0xc1cb25e3, 0x25b97940,\r\n\t\t0xb4700bcc, 0x5002576f, 0x98e6ee29, 0x7c94b28a, 0xdfc32419,\r\n\t\t0x3bb178ba, 0xf355c1fc, 0x17279d5f, 0x86eeefd3, 0x629cb370,\r\n\t\t0xaa780a36, 0x4e0a5695, 0x6d98b38d, 0x89eaef2e, 0x410e5668,\r\n\t\t0xa57c0acb, 0x34b57847, 0xd0c724e4, 0x18239da2, 0xfc51c101,\r\n\t\t0xbafeec27, 0x5e8cb084, 0x966809c2, 0x721a5561, 0xe3d327ed,\r\n\t\t0x07a17b4e, 0xcf45c208, 0x2b379eab, 0x08a57bb3, 0xecd72710,\r\n\t\t0x24339e56, 0xc041c2f5, 0x5188b079, 0xb5faecda, 0x7d1e559c,\r\n\t\t0x996c093f, 0x3a3b9fac, 0xde49c30f, 0x16ad7a49, 0xf2df26ea,\r\n\t\t0x63165466, 0x876408c5, 0x4f80b183, 0xabf2ed20, 0x88600838,\r\n\t\t0x6c12549b, 0xa4f6eddd, 0x4084b17e, 0xd14dc3f2, 0x353f9f51,\r\n\t\t0xfddb2617, 0x19a97ab4, 0x70857c5b, 0x94f720f8, 0x5c1399be,\r\n\t\t0xb861c51d, 0x29a8b791, 0xcddaeb32, 0x053e5274, 0xe14c0ed7,\r\n\t\t0xc2deebcf, 0x26acb76c, 0xee480e2a, 0x0a3a5289, 0x9bf32005,\r\n\t\t0x7f817ca6, 0xb765c5e0, 0x53179943, 0xf0400fd0, 0x14325373,\r\n\t\t0xdcd6ea35, 0x38a4b696, 0xa96dc41a, 0x4d1f98b9, 0x85fb21ff,\r\n\t\t0x61897d5c, 0x421b9844, 0xa669c4e7, 0x6e8d7da1, 0x8aff2102,\r\n\t\t0x1b36538e, 0xff440f2d, 0x37a0b66b, 0xd3d2eac8, 0x957dc7ee,\r\n\t\t0x710f9b4d, 0xb9eb220b, 0x5d997ea8, 0xcc500c24, 0x28225087,\r\n\t\t0xe0c6e9c1, 0x04b4b562, 0x2726507a, 0xc3540cd9, 0x0bb0b59f,\r\n\t\t0xefc2e93c, 0x7e0b9bb0, 0x9a79c713, 0x529d7e55, 0xb6ef22f6,\r\n\t\t0x15b8b465, 0xf1cae8c6, 0x392e5180, 0xdd5c0d23, 0x4c957faf,\r\n\t\t0xa8e7230c, 0x60039a4a, 0x8471c6e9, 0xa7e323f1, 0x43917f52,\r\n\t\t0x8b75c614, 0x6f079ab7, 0xfecee83b, 0x1abcb498, 0xd2580dde,\r\n\t\t0x362a517d };\r\n\r\n\t/**\r\n\t * Incremental 32-bit CRC calculation for a single byte.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      b   The next data in the CRC calculation (only lowest byte is used).\r\n\t * @param      hcode   The current int result.\r\n\t * @return     Updated int value of CRC calculation.\r\n\t */\r\n\tprotected static int update32l(long b, int hcode, int[] tbl) {\r\n\t\treturn ( hcode << 8 ) ^ tbl[(int)((b ^ ( hcode >>> 24 )) & 0xffL)];\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 32-bit CRC calculation for a single byte.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      b   The next data in the CRC calculation.\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated int value of CRC calculation.\r\n\t */\r\n\tprotected static int update32(byte b, int hcode, int[] tbl) {\r\n\t\thcode = update32l(b, hcode, tbl);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 32-bit CRC calculation for a single short.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      s   The next data in the CRC calculation.\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated int value of CRC calculation.\r\n\t */\r\n\tprotected static int update32(short s, int hcode, int[] tbl) {\r\n\t\thcode = update32l(s, hcode, tbl);\r\n\t\thcode = update32l((s >>> 8), hcode, tbl);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 32-bit CRC calculation for a single int.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      i   The next data in the CRC calculation.\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated int value of CRC calculation.\r\n\t */\r\n\tprotected static int update32(int i, int hcode, int[] tbl) {\r\n\t\thcode = update32l(i, hcode, tbl);\r\n\t\thcode = update32l((i >>> 8), hcode, tbl);\r\n\t\thcode = update32l((i >>> 16), hcode, tbl);\r\n\t\thcode = update32l((i >>> 24), hcode, tbl);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 32-bit CRC calculation for a single long.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      l   The next data in the CRC calculation.\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated int value of CRC calculation.\r\n\t */\r\n\tprotected static int update32(long l, int hcode, int[] tbl) {\r\n\t\thcode = update32l(l, hcode, tbl);\r\n\t\thcode = update32l((l >>> 8), hcode, tbl);\r\n\t\thcode = update32l((l >>> 16), hcode, tbl);\r\n\t\thcode = update32l((l >>> 24), hcode, tbl);\r\n\t\thcode = update32l((l >>> 32), hcode, tbl);\r\n\t\thcode = update32l((l >>> 40), hcode, tbl);\r\n\t\thcode = update32l((l >>> 48), hcode, tbl);\r\n\t\thcode = update32l((l >>> 56), hcode, tbl);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Incremental 64-bit CRC calculation for a single byte.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      b   The next data in the CRC calculation (only lowest byte is used).\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated long value of CRC calculation.\r\n\t */\r\n\tprotected static long update64l(long b, long hcode, long[] tbl) {\r\n\t\treturn ( hcode << 8 ) ^ tbl[(int)((b ^ ( hcode >>> 56 )) & 0xffL)];\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 64-bit CRC calculation for a single byte.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      b   The next data in the CRC calculation.\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated long value of CRC calculation.\r\n\t */\r\n\tprotected static long update64(byte b, long hcode, long[] tbl) {\r\n\t\thcode = update64l(b, hcode, tbl);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 64-bit CRC calculation for a single short.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      s   The next data in the CRC calculation.\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated long value of CRC calculation.\r\n\t */\r\n\tprotected static long update64(short s, long hcode, long[] tbl) {\r\n\t\thcode = update64l(s, hcode, tbl);\r\n\t\thcode = update64l((s >>> 8), hcode, tbl);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 64-bit CRC calculation for a single int.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      i   The next data in the CRC calculation.\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated long value of CRC calculation.\r\n\t */\r\n\tprotected static long update64(int i, long hcode, long[] tbl) {\r\n\t\thcode = update64l(i, hcode, tbl);\r\n\t\thcode = update64l((i >>> 8), hcode, tbl);\r\n\t\thcode = update64l((i >>> 16), hcode, tbl);\r\n\t\thcode = update64l((i >>> 24), hcode, tbl);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 64-bit CRC calculation for a single long.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      l   The next data in the CRC calculation.\r\n\t * @param      hcode   The current long result.\r\n\t * @return     Updated long value of CRC calculation.\r\n\t */\r\n\tprotected static long update64(long l, long hcode, long[] tbl) {\r\n\t\thcode = update64l(l, hcode, tbl);\r\n\t\thcode = update64l((l >>> 8), hcode, tbl);\r\n\t\thcode = update64l((l >>> 16), hcode, tbl);\r\n\t\thcode = update64l((l >>> 24), hcode, tbl);\r\n\t\thcode = update64l((l >>> 32), hcode, tbl);\r\n\t\thcode = update64l((l >>> 40), hcode, tbl);\r\n\t\thcode = update64l((l >>> 48), hcode, tbl);\r\n\t\thcode = update64l((l >>> 56), hcode, tbl);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 64-bit CRC for an array of bytes.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The byte array.\r\n\t * @return     Long containing CRC hash of array.\r\n\t */\r\n\tprotected static long hash64(byte[] v) {\r\n\t\tlong hcode = 0L;\r\n\t\tfor(byte x : v) {\r\n\t\t\thcode = update64(x, hcode, hash64tab1);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 64-bit CRC for an array of shorts.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The short array.\r\n\t * @return     Long containing CRC hash of array.\r\n\t */\r\n\tpublic static long hash64(short[] v) {\r\n\t\tlong hcode = 0L;\r\n\t\tfor(short x : v) {\r\n\t\t\thcode = update64(x, hcode, hash64tab1);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 64-bit CRC for an integer.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      x   The int.\r\n\t * @param      hcode   The hash so far.\r\n\t * @return     Long which is the updated hcode for x.\r\n\t */\r\n\tpublic static long update_hash(int x, long hcode) {\r\n\t\treturn update64(x, hcode, hash64tab1);\r\n\t}\r\n\r\n\t/**\r\n\t * Incremental 64-bit CRC for a long.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      x   The long.\r\n\t * @param      hcode   The hash so far.\r\n\t * @return     Long which is the updated hcode for x.\r\n\t */\r\n\tpublic static long update_hash(long x, long hcode) {\r\n\t\treturn update64(x, hcode, hash64tab1);\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 64-bit CRC for an array of ints.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The int array.\r\n\t * @return     Long containing CRC hash of array.\r\n\t */\r\n\tpublic static long hash64(int[] v) {\r\n\t\tlong hcode = 0L;\r\n\t\tfor(int x : v) {\r\n\t\t\thcode = update64(x, hcode, hash64tab1);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 64-bit CRC for an array of float.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The float array.\r\n\t * @return     CRC hash of array.\r\n\t */\r\n\tpublic static long hash64(float[] v) {\r\n\t\tlong hcode = 0L;\r\n\t\tfor(float xf : v) {\r\n\t\t\tint x = Float.floatToRawIntBits(xf);\r\n\t\t\thcode = update64(x, hcode, hash64tab1);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 64-bit CRC for an array of longs.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The long array.\r\n\t * @return     Long containing CRC hash of array.\r\n\t */\r\n\tpublic static long hash64(long[] v) {\r\n\t\tlong hcode = 0L;\r\n\t\tfor(long x : v) {\r\n\t\t\thcode = update64(x, hcode, hash64tab1);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 64-bit CRC for an array of double.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The double array.\r\n\t * @return     CRC hash of array.\r\n\t */\r\n\tpublic static long hash64(double[] v) {\r\n\t\tlong hcode = 0L;\r\n\t\tfor(double xd : v) {\r\n\t\t\tlong x = Double.doubleToRawLongBits(xd);\r\n\t\t\thcode = update64(x, hcode, hash64tab1);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 32-bit CRC for an array of bytes.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The byte array.\r\n\t * @return     Int containing CRC hash of array.\r\n\t */\r\n\tpublic static int hash32(byte[] v) {\r\n\t\tint hcode = 0;\r\n\t\tfor(byte x : v) {\r\n\t\t\thcode = update32(x, hcode, hash32tab0);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 32-bit CRC for an array of shorts.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The short array.\r\n\t * @return     Int containing CRC hash of array.\r\n\t */\r\n\tpublic static int hash32(short[] v) {\r\n\t\tint hcode = 0;\r\n\t\tfor(short x : v) {\r\n\t\t\thcode = update32(x, hcode, hash32tab0);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 32-bit CRC for an array of ints.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The int array.\r\n\t * @return     Int containing CRC hash of array.\r\n\t */\r\n\tpublic static int hash32(int[] v) {\r\n\t\tint hcode = 0;\r\n\t\tfor(int x : v) {\r\n\t\t\thcode = update32(x, hcode, hash32tab0);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 32-bit CRC for an array of float.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The float array.\r\n\t * @return     CRC hash of array.\r\n\t */\r\n\tpublic static int hash32(float[] v) {\r\n\t\tint hcode = 0;\r\n\t\tfor(float xf : v) {\r\n\t\t\tint x = Float.floatToRawIntBits(xf);\r\n\t\t\thcode = update32(x, hcode, hash32tab0);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 32-bit CRC for an array of longs.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The long array.\r\n\t * @return     Int containing CRC hash of array.\r\n\t */\r\n\tpublic static int hash32(long[] v) {\r\n\t\tint hcode = 0;\r\n\t\tfor(long x : v) {\r\n\t\t\thcode = update32(x, hcode, hash32tab0);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 32-bit CRC for an array of double.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      v   The double array.\r\n\t * @return     Int containing CRC hash of array.\r\n\t */\r\n\tpublic static int hash32(double[] v) {\r\n\t\tint hcode = 0;\r\n\t\tfor(double xd : v) {\r\n\t\t\tlong x = Double.doubleToRawLongBits(xd);\r\n\t\t\thcode = update32(x, hcode, hash32tab0);\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute 32-bit CRC for a matrix of doubles. Used to compute a hash\r\n\t * value for instances of Matrix.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      A   The double[][].\r\n\t * @param      rows The length of A.\r\n\t * @param      cols The length of A[0].\r\n\t * @return     CRC hash of A.\r\n\t */\r\n\tpublic static int hash32(double[][] A, int rows, int cols) {\r\n\t\tint hcode = 0;\r\n\t\tfor (int i = 0; i < rows; i++) {\r\n\t\t\tfor (int j = 0; j < cols; j++) {\r\n\t\t\t\tlong x = Double.doubleToRawLongBits(A[i][j]);\r\n\t\t\t\thcode = update32(x, hcode, hash32tab0);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\t/**\r\n\t * Easily testable function which computes 64-bit CRC for a single long.\r\n\t *\r\n\t * <p> These functions are only intended as entry points for test\r\n\t * code. They are structurally the same as a some functions in a\r\n\t * long-used and well-tested C library, so we were easily able to\r\n\t * generate testcases for this code from the C code.  <p>\r\n\t *\r\n\t * @param      x   The long to be hashed.\r\n\t * @param      initial   The CRC value to be updated.\r\n\t * @return     Long containing CRC hash value.\r\n\t */\r\n\tpublic static long hash64(long x, long initial) {\r\n\t\tlong hcode = initial;\r\n\t\thcode = update64(x, hcode, hash64tab1);\r\n\t\treturn hcode;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Easily testable function which computes 32-bit CRC for a single long.\r\n\t *\r\n\t *\r\n\t * <p> These functions are only intended as entry points for test\r\n\t * code. They are structurally the same as a some functions in a\r\n\t * long-used and well-tested C library, so we were easily able to\r\n\t * generate testcases for this code from the C code.  <p>\r\n\t *\r\n\t * @param      x   The long to be hashed.\r\n\t * @param      initial   The CRC value to be updated.\r\n\t * @return     Int containing CRC hash value.\r\n\t */\r\n\tpublic static int hash32(long x, int initial) {\r\n\t\tint hcode = initial;\r\n\t\thcode = update32(x, hcode, hash32tab0);\r\n\t\treturn hcode;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Chain.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport java.util.HashMap;\r\nimport java.util.Iterator;\r\nimport java.util.List;\r\nimport java.util.Map;\r\nimport java.util.Vector;\r\n\r\n/**\r\n * A <code>Chain</code> instance is an element of the module constructed by\r\n * taking formal sums of ring elements times simplices. In our case the\r\n * ring will always be a field, so the module is a vector space where the\r\n * basis elements are indexed by simplices. The dimension of the space of\r\n * chains is huge, so instead of making vectors of length the dimension of\r\n * the space, we use a sparse representation with (sorted) Simplex[] arrays\r\n * and corresponding int[] coefficient arrays. Addition and finding the\r\n * coefficient of the largest (non-zero) basis element are the most\r\n * important in persistence calculations, and this representation is suited\r\n * to these operations.\r\n *\r\n * <p> See Persistence, and references therein for the real story.\r\n *\r\n * @see        edu.stanford.math.plex.Persistence\r\n *\r\n * @version $Id$\r\n */\r\npublic class Chain {\r\n\r\n\t/**\r\n\t * Characteristic of the field of coefficients.\r\n\t * <p>\r\n\t * This will be a prime. Someday we might allow 0, for the rationals.\r\n\t * <p>\r\n\t */\r\n\tfinal int p;\r\n\r\n\t/**\r\n\t * The implementation we use here is that the chain is given by an\r\n\t * sorted array of Simplex instances, and a paired array (of the same\r\n\t * length) of coefficients of those instances.\r\n\t */\r\n\tfinal int[] coefficients;\r\n\tfinal Simplex[] simplices;\r\n\tfinal static Map<Integer,Chain> zero;\r\n\r\n\tstatic {\r\n\t\tzero = new HashMap<Integer,Chain>();\r\n\t}\r\n\r\n\t/**\r\n\t * Return the largest basis element.\r\n\t * <p>\r\n\t *\r\n\t * @return     Largest simplex with nonzero coefficient.\r\n\t */\r\n\tpublic Simplex maxS() {\r\n\t\treturn simplices[simplices.length-1];\r\n\t}\r\n\r\n\t/**\r\n\t * Return the coefficient of the largetst basis element.\r\n\t * <p>\r\n\t *\r\n\t * @return     Coefficient of largest simplex with nonzero coefficient.\r\n\t */\r\n\tpublic int maxC() {\r\n\t\treturn coefficients[coefficients.length-1];\r\n\t}\r\n\r\n\t// Chain constructor is called only from within this file.\r\n\tpublic Chain (int modulus, int[] cvec, Simplex[] elts) {\r\n\t\tassert(s_and_c_okay (elts, cvec, modulus));\r\n\t\tp = modulus;\r\n\t\tchain_sort(elts,cvec);\r\n\t\tcoefficients = cvec;\r\n\t\tsimplices = elts;\r\n\t}\r\n\r\n\tpublic Chain (int modulus) {\r\n\t\tp = modulus;\r\n\t\tcoefficients = new int[0];\r\n\t\tsimplices = new Simplex[0];\r\n\t}\r\n\r\n\tpublic Chain (int modulus, int coeff, Simplex elt) {\r\n\t\tint[] cvec = new int[1];\r\n\t\tSimplex[] elts = new Simplex[1];\r\n\t\tcvec[0] = coeff; \r\n\t\telts[0] = elt;\r\n\t\tassert(s_and_c_okay (elts, cvec, modulus));\r\n\t\tp = modulus;\r\n\t\tcoefficients = cvec;\r\n\t\tsimplices = elts;\r\n\t}\r\n\r\n\tpublic static Chain zero(int modulus) {\r\n\t\tif(!zero.containsKey(modulus))\r\n\t\t\tzero.put(modulus, new Chain(modulus));\r\n\t\treturn zero.get(modulus);\r\n\t}\r\n\r\n\tpublic static boolean isZero(Chain c) {\r\n\t\tif(c == null) \r\n\t\t\treturn true;\r\n\r\n\t\tif(c.simplices.length == 0 ||\r\n\t\t\t\tc.coefficients.length == 0)\r\n\t\t\treturn true;\r\n\r\n\t\tfor(int i=0; i<c.simplices.length; i++) {\r\n\t\t\tif(c.coefficients[i] != 0) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic boolean isZero() {\r\n\t\treturn Chain.isZero(this);\r\n\t}\r\n\r\n\t// Do a modified merge/sort on the basis elements of the chains that we\r\n\t// are combining.\r\n\tprotected Chain mergeBasisElts(Simplex[] first, int[] fc, \r\n\t\t\tSimplex[] second, int[] sc, int c) {\r\n\r\n\t\t// If any of the two chains are zero, use identity laws\r\n\t\tif (first.length == 0) {\r\n\t\t\tfor(int i=0; i<sc.length; i++)\r\n\t\t\t\tsc[i] = (c*sc[i])%p;\r\n\t\t\treturn new Chain(p,sc,second);\r\n\t\t}\r\n\t\tif (second.length == 0) {\r\n\t\t\treturn new Chain(p,fc,first);\r\n\t\t}\r\n\r\n\t\tint counter = 0;\r\n\t\tint fi = 0;\r\n\t\tint si = 0;\r\n\r\n\t\t// we have to make an initial pass through the two Chains to figure\r\n\t\t// out the length of the composite Chain.\r\n\t\twhile ((fi < first.length) || (si < second.length)) {\r\n\t\t\twhile ((fi < first.length) && \r\n\t\t\t\t\t((si == second.length) || first[fi].slt(second[si]))) {\r\n\t\t\t\tcounter++;\r\n\t\t\t\tfi++;\r\n\t\t\t}\r\n\r\n\t\t\tif ((fi < first.length) && (si < second.length) && first[fi].seq(second[si])) {\r\n\t\t\t\tif (((fc[fi] + (c * sc[si])) % p) != 0) \r\n\t\t\t\t\tcounter++;\r\n\t\t\t\tfi++;\r\n\t\t\t\tsi++;\r\n\t\t\t}\r\n\r\n\t\t\twhile ((si < second.length) && \r\n\t\t\t\t\t((fi == first.length) || second[si].slt(first[fi]))) {\r\n\t\t\t\tcounter++;\r\n\t\t\t\tsi++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Everything cancels, so we return zero.\r\n\t\tif (counter == 0)\r\n\t\t\treturn Chain.zero(p);\r\n\r\n\t\tint[] newC = new int[counter];\r\n\t\tSimplex[] newS = new Simplex[counter];\r\n\t\tint index = 0;\r\n\t\tfi = 0;\r\n\t\tsi = 0;\r\n\t\twhile ((fi < first.length) || (si < second.length)) {\r\n\r\n\t\t\twhile ((fi < first.length) && \r\n\t\t\t\t\t((si == second.length) || first[fi].slt(second[si]))) {\r\n\t\t\t\tnewS[index] = first[fi];\r\n\t\t\t\tnewC[index] = fc[fi];\r\n\t\t\t\tindex++;\r\n\t\t\t\tfi++;\r\n\t\t\t}\r\n\r\n\t\t\tif ((fi < first.length) && (si < second.length) && first[fi].seq(second[si])) {\r\n\t\t\t\tif (((fc[fi] + (c * sc[si])) % p) != 0) {\r\n\t\t\t\t\tnewS[index] = first[fi];\r\n\t\t\t\t\tnewC[index] = ((fc[fi] + (c * sc[si])) % p);\r\n\t\t\t\t\tindex++;\r\n\t\t\t\t}\r\n\t\t\t\tfi++;\r\n\t\t\t\tsi++;\r\n\t\t\t}\r\n\r\n\t\t\twhile ((si < second.length) && \r\n\t\t\t\t\t((fi == first.length) || second[si].slt(first[fi]))) {\r\n\t\t\t\tnewS[index] = second[si];\r\n\t\t\t\tnewC[index] = (c * sc[si]) % p;\r\n\t\t\t\tindex++;\r\n\t\t\t\tsi++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn new Chain(p, newC, newS);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Add one chain to another.\r\n\t * <p>\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      x  the chain to add\r\n\t * @param      c  a coefficient to apply to the argument chain before adding.\r\n\t * @return     the result of the addition\r\n\t */\r\n\tpublic Chain add(Chain x, int c) {\r\n\t\tif (c == 0)\r\n\t\t\treturn this;\r\n\t\tassert (this.p == x.p);\r\n\t\treturn mergeBasisElts(simplices, coefficients,\r\n\t\t\t\tx.simplices, x.coefficients, c);\r\n\t}\r\n\r\n\t// Normalize the elements of a chain.\r\n\tprotected static Chain normalize(Simplex[] s, int[] c, int p) {\r\n\t\tint counter = 0;\r\n\t\tfor (int i = 0; i < s.length; i++) {\r\n\t\t\tif ((c[i] != 0) && (s[i] != null))\r\n\t\t\t\tcounter++;\r\n\t\t}\r\n\r\n\t\t// if everything cancels, we return zero.\r\n\t\tif (counter == 0)\r\n\t\t\treturn Chain.zero(p);\r\n\r\n\t\tint[] newC = new int[counter];\r\n\t\tSimplex[] newS = new Simplex[counter];\r\n\t\tint index = 0;\r\n\r\n\t\tfor (int i = 0; i < s.length; i++) {\r\n\t\t\tif ((c[i] != 0) && (s[i] != null)) {\r\n\t\t\t\tnewS[index] = s[i];\r\n\t\t\t\tnewC[index] = c[i];\r\n\t\t\t\tindex++;      \r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tchain_sort(newS, newC);\r\n\r\n\t\treturn new Chain(p, newC, newS);\r\n\t}\r\n\r\n\t// Sort the elements of b, and in the course of doing so, do an\r\n\t// identical rearrangment of the elements of c. NOTE: Doing a\r\n\t// bubblesort on a long array would be inefficient, but this function\r\n\t// is only used to convert a \"Simplex boundary\" into a chain, and so\r\n\t// the length of b will always be so short that bubblesort would be the\r\n\t// first choice, anyway.\r\n\tprotected static void chain_sort (Simplex[] b, int[] c) {\r\n\t\tfor (int j = b.length - 1; j > 0; j--) {\r\n\t\t\tfor (int i = 0; i < j; i++) {\r\n\t\t\t\tif (b[i+1].slt(b[i])) {\r\n\t\t\t\t\tSimplex dummyS = b[i];\r\n\t\t\t\t\tint dummyC = c[i];\r\n\t\t\t\t\tb[i] = b[i+1];\r\n\t\t\t\t\tb[i+1] = dummyS;\r\n\t\t\t\t\tc[i] = c[i+1];\r\n\t\t\t\t\tc[i+1] = dummyC;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Make \"boundary coefficients\".\r\n\tprotected static int[] alternatingCoefficients(int mod, int len) {\r\n\t\tint[] return_value = new int[len];\r\n\t\tint sign = 1;\r\n\t\tfor (int i = 0; i < len; i++) {\r\n\t\t\tif (sign > 0)\r\n\t\t\t\treturn_value[i] = 1;\r\n\t\t\telse\r\n\t\t\t\treturn_value[i] = mod - 1;\r\n\t\t\tsign = -sign;\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t/**\r\n\t * Convert a boundary array to a chain. The non-null Simplex entries\r\n\t * must have their filtration indices set already.  <p>\r\n\t *\r\n\t * @param      boundary  the boundary array to convert\r\n\t * @return     the chain that corresponds to the boundary\r\n\t */\r\n\tstatic Chain fromBoundary(Simplex[] boundary, int p) {\r\n\t\tif (boundary == null)\r\n\t\t\treturn Chain.zero(p);\r\n\t\tint[] c = alternatingCoefficients(p, boundary.length);\r\n\t\treturn normalize(boundary, c, p);\r\n\t}\r\n\r\n\t/**\r\n\t * Rewrite an element in Z/p from the representation in the interval [0,p) to\r\n\t the representation in (-p/2,p/2).\r\n\t * <p>\r\n\t * @param elt Element\r\n\t * @return Rewritten element.\r\n\t */\r\n\tpublic int rewriteModP(int elt) {\r\n\t\treturn (elt > p/2) ? elt-p : elt;\r\n\t}\r\n\r\n\t/**\r\n\t * Represent a Chain as a String.\r\n\t *\r\n\t * <p>\r\n\t * @return     A string that describes a Chain.\r\n\t */\r\n\tpublic String toString() { \r\n\t\tif (simplices.length == 0)\r\n\t\t\treturn \"0\";\r\n\t\tString return_value = \"\";\r\n\t\tint coeff;\r\n\t\tfor (int i = 0; i < simplices.length-1; i++) {\r\n\t\t\tcoeff = rewriteModP(coefficients[i]);\r\n\t\t\treturn_value = return_value + String.format(\"%d*\", coeff) + \r\n\t\t\tsimplices[i].toString() + \" + \";\r\n\t\t}\r\n\t\tcoeff = rewriteModP(coefficients[simplices.length-1]);\r\n\t\treturn_value = return_value + String.format(\"%d*\", coeff) + \r\n\t\tsimplices[simplices.length-1].toString();\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t/**\r\n\t * Filter simplices. In several cases, we'll want to extract only a portion of a chain\r\n\t * spanned by specific simplices. In the non-basis supported persistent interval computation\r\n\t * this is an optimization step. \r\n\t * <p> \r\n\t * This function also gets used to replace generated (and thus filtration agnostic) simplices\r\n\t * by the singleton instances equipped with the correct filtration index.\r\n\t * <p>\r\n\t * @param simplexList  The list of simplices onto which the chain is projected\r\n\t * @return             A chain with only the simplices form the list, and with references\r\n\t *                     to each simplex updated to point at those in the list.\r\n\t */\r\n\tpublic Chain filter(SimplexTable simplexList) {\r\n\t\tif(simplexList == null)\r\n\t\t\treturn zero(p);\r\n\r\n\t\tVector<Simplex> newSV = new Vector<Simplex>();\r\n\t\tVector<Integer> newCV = new Vector<Integer>();\r\n\t\tfor(int i=0; i<simplices.length; i++) {\r\n\t\t\tSimplex t = simplexList.get(simplices[i]);\r\n\t\t\tif(t != null) {\r\n\t\t\t\tnewSV.add(t);\r\n\t\t\t\tnewCV.add(coefficients[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tSimplex newS[] = new Simplex[newSV.size()];\r\n\t\tint newC[] = new int[newCV.size()];\r\n\t\tint i=0;\r\n\t\tIterator<Integer> newCi = newCV.iterator(); \r\n\t\tIterator<Simplex> newSi = newSV.iterator();\r\n\r\n\t\twhile(i<newSV.size() && newSi.hasNext() && newCi.hasNext()) {\r\n\t\t\tnewS[i] = newSi.next();\r\n\t\t\tnewC[i] = newCi.next();\r\n\t\t\ti++;\r\n\t\t}\r\n\t\tChain ret = new Chain(p,newC,newS);\r\n\t\treturn ret;\r\n\t}\r\n\r\n\tpublic Chain filter(List<Simplex> simplexList) {\r\n\t\tif(simplexList == null)\r\n\t\t\treturn zero(p);\r\n\r\n\t\tVector<Simplex> newSV = new Vector<Simplex>();\r\n\t\tVector<Integer> newCV = new Vector<Integer>();\r\n\t\tfor(Simplex s : simplexList) {\r\n\t\t\tint newC = coefficientOf(s);\r\n\t\t\tif(newC != 0) {\r\n\t\t\t\tnewSV.add(s);\r\n\t\t\t\tnewCV.add(newC);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tSimplex newS[] = new Simplex[newSV.size()];\r\n\t\tint newC[] = new int[newCV.size()];\r\n\r\n\t\tint i=0;\r\n\t\tIterator<Simplex> newSi=newSV.iterator();\r\n\t\tIterator<Integer> newCi=newCV.iterator(); \r\n\r\n\t\twhile(i<newSV.size() && newSi.hasNext() && newCi.hasNext()) {\r\n\t\t\tnewS[i] = newSi.next();\r\n\t\t\tnewC[i] = newCi.next();\r\n\t\t\ti++;\r\n\t\t}\r\n\t\tChain ret = new Chain(p,newC,newS);\r\n\t\treturn ret;\r\n\t}\r\n\r\n\tpublic int coefficientOf(Simplex s) {\r\n\t\tif(s == null)\r\n\t\t\treturn 0;\r\n\r\n\t\tfor(int i=0; i<simplices.length; i++) {\r\n\t\t\tif(s.seq(simplices[i]))\r\n\t\t\t\treturn coefficients[i];\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Compute the boundary of a chain.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the boundary chain\r\n\t */\r\n\tChain boundary(int p) {\r\n\t\tint first_index = 0;\r\n\t\tChain first = Chain.zero(p);\r\n\t\twhile((first.isZero()) && (first_index < simplices.length)){\r\n\t\t\tfirst = fromBoundary((simplices[first_index]).boundaryArray(), p);\r\n\t\t\tint first_c = coefficients[first_index];\r\n\t\t\tif (!first.isZero()) {\r\n\t\t\t\tfor (int i = 0; i < first.simplices.length; i++)\r\n\t\t\t\t\tfirst.coefficients[i] = (first.coefficients[i] * first_c) % p;\r\n\t\t\t}\r\n\t\t\tfirst_index++;\r\n\t\t}\r\n\t\tif (first.isZero())\r\n\t\t\treturn first;\r\n\t\tfor (int i = first_index; i < simplices.length; i++) {\r\n\t\t\tChain next = fromBoundary((simplices[i]).boundaryArray(), p);\r\n\t\t\tif (!next.isZero()) {\r\n\t\t\t\tint next_c = coefficients[i];\r\n\t\t\t\tif (!first.isZero())\r\n\t\t\t\t\tfirst = first.add(next, next_c);\r\n\t\t\t\telse {\r\n\t\t\t\t\tfirst = next;\r\n\t\t\t\t\tfor (int j = 0; j < first.simplices.length; j++)\r\n\t\t\t\t\t\tfirst.coefficients[j] = (first.coefficients[j] * next_c) % p;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn first;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Chain EQuals. Test function. \r\n\t *\r\n\t * <p>\r\n\t * @param      c   Chain to compare.\r\n\t * @return     true is equal, else false.\r\n\t *\r\n\t */\r\n\tboolean ceq(Chain c) {\r\n\t\tif (simplices.length != c.simplices.length)\r\n\t\t\treturn false;\r\n\t\tfor (int i = 0; i < simplices.length; i++) {\r\n\t\t\tif ((coefficients[i] != c.coefficients[i]) ||\r\n\t\t\t\t\t!(simplices[i].seq(c.simplices[i])))\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/** \r\n\t * Chain equals implementation. Allows for standard style compliant\r\n\t * comparisons.\r\n\t *\r\n\t * @param c Chain to compare\r\n\t * @return true if equal, else false.\r\n\t */\r\n\tpublic boolean equals(Chain c) {\r\n\t\treturn this.ceq(c);\r\n\t}\r\n\r\n\t/** \r\n\t * Because we override equals, we also need to override HashCode.\r\n\t * We don't claim to do any kind of an informed choice here. \r\n\t *\r\n\t * @return Always returns 0.\r\n\t */\r\n\tpublic int HashCode() {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Return a random Chain. A test function.\r\n\t *\r\n\t * <p>\r\n\t * @return     A \"random\" Chain.\r\n\t */\r\n\tstatic Chain random(int p) { \r\n\t\tint length = 1 + (int) Math.floor((Math.random() * 20.0));\r\n\t\tSimplex[] simplices = new Simplex[length];\r\n\t\tint[] coefficients = new int[length];\r\n\t\tfor(int i = 0; i < length; i++) {\r\n\t\t\tsimplices[i] = Simplex.random();\r\n\t\t\tcoefficients[i] = (1 + (int) Math.floor((Math.random() * p))) % p;\r\n\t\t\tif (coefficients[i] == 0)\r\n\t\t\t\tcoefficients[i] = 1;\r\n\t\t}\r\n\t\tassert(simplices != null);\r\n\t\tassert(coefficients != null);\r\n\t\tchain_sort (simplices, coefficients);\r\n\t\t{\r\n\t\t\tboolean loser = false;\r\n\t\t\tfor(int i = 0; i < length-1; i++) {\r\n\t\t\t\tif (!(simplices[i].slt(simplices[i+1]))) {\r\n\t\t\t\t\tcoefficients[i+1] = 0;\r\n\t\t\t\t\tloser = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (loser)\r\n\t\t\t\treturn normalize(simplices, coefficients, p);\r\n\t\t}\r\n\r\n\t\treturn new Chain(p, coefficients, simplices);\r\n\t}\r\n\r\n\t// Test function.\r\n\tstatic protected boolean s_and_c_okay (Simplex[] s, int[] c, int p) {\r\n\t\tif ((s.length != c.length) || (s.length < 1)) return false;\r\n\t\tfor (int i = 0; i < s.length; i++) {\r\n\t\t\tif ((c[i] < 1) || (c[i] > (p - 1)))\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\tfor (int i = 0; i < s.length-1; i++) {\r\n\t\t\tif (!(s[i].slt(s[i+1])))\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Cone.java",
    "content": "package edu.stanford.math.plex;\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.Iterator;\nimport java.util.Set;\n\n/**\n * The class Cone provides support for computing persistence across a \n * filtration as well as a cone over this filtration. This has uses in \n * computing relative homology as well as in computing cohomology and \n * relative cohomology. See de Silva-Vejdemo Johansson (forthcoming) for \n * details.\n */\npublic class Cone extends SimplexStream {\n\tprotected SimplexStream sstream;\n\tprotected boolean coning;\n\tprotected int conepoint;\n\tprotected Iterator<Simplex> ssiterator;\n\tprotected HashMap<Integer,Boolean> support;\n\tprotected int findexOffset;\n\n\t/**\n\t * Creates a new cone from an existing SimplexStream. \n\t *\n\t * @param sstr Simplex Stream to be coned.\n\t */\n\tpublic Cone(SimplexStream sstr) {\n\t\tsstream = sstr;\n\t\tconing = false;\n\t\tconepoint = 0;\n\t\tssiterator = sstream.iterator();\n\t\tsupport = new HashMap<Integer,Boolean>();\n\t}\n\n\t// Interface functions defined by SimplexStream\n\tpublic boolean hasNext() {\n\t\tif(coning)\n\t\t\treturn ssiterator.hasNext();\n\t\telse\n\t\t\treturn (sstream.size() > 0);\n\t}\n\n\tpublic Simplex next() {\n\t\tSimplex s;\n\t\tif(ssiterator.hasNext()) {\n\t\t\ts = ssiterator.next();\n\t\t} else {\n\t\t\tif(coning) \n\t\t\t\treturn null;\n\t\t\telse {\n\t\t\t\t// We reached the end of the ordinary iteration. Now we need\n\t\t\t\t// to start with coning simplices.\n\t\t\t\tconing = true;\n\t\t\t\tssiterator = sstream.iterator();\n\t\t\t\tSet<Integer> supportpoints = support.keySet();\n\t\t\t\tInteger maxpoint = Collections.max(supportpoints);\n\t\t\t\tconepoint = maxpoint+1;\n\t\t\t\ts = Simplex.getSimplex(new int[0],0);\n\t\t\t}\n\t\t} \n\t\tif(coning) {\n\t\t\tSimplex t = s.copy();\n\t\t\tt = t.addVertex(conepoint);\n\t\t\tt.setfindex(s.findex()+findexOffset);\n\t\t\ts = t;\n\t\t} else {\n\t\t\tint[] vertices = s.vertices();\n\t\t\tfor(int i = 0; i<vertices.length; i++) \n\t\t\t\tsupport.put(vertices[i],true);\n\t\t\tfindexOffset = s.findex()+1;\n\t\t}\n\t\treturn s;\n\t}\n\n\tpublic int size() {\n\t\treturn 2*sstream.size()+1;\n\t}\n\tpublic int maxDimension() {\n\t\treturn sstream.maxDimension()+1;\n\t}\n\n\tpublic Iterator<Simplex> iterator() {\n\t\treturn this;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/DiscreteSpace.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * The <code>DiscreteSpace</code> class implements a finite discrete metric\r\n * space. Used for testing.\r\n *\r\n * @version $Id$\r\n */\r\npublic class DiscreteSpace extends PointData {\r\n\r\n\tpublic final int N;\r\n\r\n\t/**\r\n\t * The number of data points.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the number of points\r\n\t */\r\n\tpublic int count() {\r\n\t\treturn N;\r\n\t}\r\n\r\n\t/**\r\n\t * Discrete distance.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p1   the first point\r\n\t * @param      p2   the second point\r\n\t * @return     the distance between p1 and p2.\r\n\t */\r\n\tpublic double distance (int p1, int p2) {\r\n\t\tif (p1 == p2)\r\n\t\t\treturn 0.0;\r\n\t\telse \r\n\t\t\treturn 1.0;\r\n\t}\r\n\r\n\t// Constructor for this class.\r\n\tpublic DiscreteSpace(int N) {\r\n\t\tthis.N = N;\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/DistanceData.java",
    "content": "package edu.stanford.math.plex;\n\n/**\n * The <code>DistanceData</code> class is the simplest implementation\n * of NSpace. Intended for smallish data sets.\n *\n * @version $Id$\n */\n\npublic class DistanceData extends PointData {\n\n\tfinal double[][] d;\n\tfinal int numPoints;\n\n\t/**\n\t * The number of data points.\n\t *\n\t * <p>\n\t *\n\t * @return     the number of points\n\t */\n\tpublic int count() {\n\t\tif (d != null)\n\t\t\treturn (d.length);\n\t\telse\n\t\t\treturn 0;\n\t}\n\n\t/**\n\t * Euclidean distance.\n\t *\n\t * <p>\n\t *\n\t * @param      p1   the first point\n\t * @param      p2   the second point\n\t * @return     the distance between p1 and p2.\n\t */\n\tpublic double distance (int p1, int p2) {\n\t\tif (p1 == p2)\n\t\t\treturn 0.0;\n\t\telse {\n\t\t\treturn d[p1-1][p2-1];\n\t\t}\n\n\t}\n\n\t// Constructor for this class.\n\tpublic DistanceData(double[][] data) {\n\t\tsuper();\n\t\td = data;\n\t\tnumPoints = d.length;\n\t}\n\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/EuclideanArrayData.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport java.util.Random;\r\n\r\n/**\r\n * The <code>EuclideanArrayData</code> class is the simplest implementation\r\n * of NSpace. Intended for smallish data sets. Instances of this class are\r\n * implemented at 0-based arrays of double, but the first dimension()\r\n * entries are ignored, since PointData instances are indexed from 1 to\r\n * count(), inclusive. This is occasionally awkward, and it is the reason\r\n * that constructors that provide the data in the form of double[][], do\r\n * <i>not</i> require \"blank space\" to be provided.\r\n *\r\n * @version $Id$\r\n */\r\n\r\npublic class EuclideanArrayData extends PointData.NSpace {\r\n\r\n\tfinal double[] points;\r\n\tfinal int dimensions;\r\n\r\n\t/**\r\n\t * The number of dimensions of the space.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the dimension of the data.\r\n\t */\r\n\tpublic int dimension() {\r\n\t\treturn dimensions;\r\n\t}\r\n\r\n\t/**\r\n\t * The number of data points.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the number of points\r\n\t */\r\n\tpublic int count() {\r\n\t\tif (points != null)\r\n\t\t\treturn ((points.length/dimensions)-1);\r\n\t\telse\r\n\t\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Euclidean distance.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p1   the first point\r\n\t * @param      p2   the second point\r\n\t * @return     the Euclidean distance between p1 and p2.\r\n\t */\r\n\tpublic double distance (int p1, int p2) {\r\n\t\tif (p1 == p2)\r\n\t\t\treturn 0.0;\r\n\t\telse if ((p1 == 0) || (p2 == 0))\r\n\t\t\treturn Double.MAX_VALUE;\r\n\t\telse {\r\n\t\t\tint p1_base = dimensions * p1;\r\n\t\t\tint p2_base = dimensions * p2;\r\n\t\t\tdouble accum = 0.0;\r\n\r\n\t\t\tfor (int i = 0; i < dimensions; i++) {\r\n\t\t\t\tdouble diff = points[p1_base + i] - points[p2_base + i];\r\n\t\t\t\taccum += diff * diff;\r\n\t\t\t}\r\n\r\n\t\t\treturn Math.sqrt(accum);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Get coordinates. Not much checking.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p   the point\r\n\t * @param      i   the coordinate\r\n\t * @return     The i-th coordinate of p;\r\n\t */\r\n\tpublic double coordinate (int p, int i) {\r\n\t\tif ((i >= dimensions) || (i < 0))\r\n\t\t\tthrow new IllegalArgumentException(\"Coordinate index \" + i + \r\n\t\t\t\t\t\"must be in range [0, \" + \r\n\t\t\t\t\t(dimensions-1) + \"].\");\r\n\t\treturn points[(dimensions * p) + i];\r\n\t}\r\n\r\n\t/**\r\n\t * Get point. No checking.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p   the point\r\n\t * @param      vec   place to store point\r\n\t * @return     Coordinates of p;\r\n\t */\r\n\tpublic double[] get_pt (int p, double[] vec) {\r\n\t\tassert(dimensions == vec.length);\r\n\t\tfor (int i = 0; i < dimensions; i++) {\r\n\t\t\tvec[i] = points[(dimensions * p)+i];\r\n\t\t}\r\n\t\treturn vec;\r\n\t}\r\n\r\n\t// Make sure that the data and dimension arguments are not absurd.\r\n\tprotected boolean pointsAreConsistent(double[] data, int dimension) {\r\n\t\tif (dimension < 1) {\r\n\t\t\tthrow new IllegalArgumentException(\"dimension, \" + dimension +\r\n\t\t\t\", must be a positive integer.\");\r\n\t\t}\r\n\t\tif (((data.length % dimension) != 0) ||\r\n\t\t\t\t(data.length <= dimension)) {\r\n\t\t\tthrow new IllegalArgumentException(\"data.length, \" + data.length +\r\n\t\t\t\t\t\", must be a multiple of, and \" +\r\n\t\t\t\t\t\"greater than, dimension, \" +\r\n\t\t\t\t\tdimension + \".\");\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// Make sure that the data and dimension arguments are not absurd.\r\n\tprotected boolean pointsAreConsistent(double[][] data) {\r\n\t\tboolean data_length_loser = (data.length < 2);\r\n\t\tif (!data_length_loser) {\r\n\t\t\tint dim = data[0].length;\r\n\t\t\tif (dim < 1) {\r\n\t\t\t\tthrow new IllegalArgumentException(\"dimension, \" + dim +\r\n\t\t\t\t\", must be a positive integer.\");\r\n\t\t\t}\r\n\t\t\tfor (int i = 0; i < data.length; i++) {\r\n\t\t\t\tif (data[i].length != dim) {\r\n\t\t\t\t\tthrow new IllegalArgumentException\r\n\t\t\t\t\t(\"data[\" + i + \"].length must be \" +\r\n\t\t\t\t\t\t\t\", must be constant for all elements of data, \" +\r\n\t\t\t\t\t\t\t\"and == \" + dim + \".\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthrow new IllegalArgumentException(\"data.length, \" + data.length +\r\n\t\t\t\", must be greater than 1.\");\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// Don't call this one.\r\n\tprotected EuclideanArrayData() {\r\n\t\tsuper();\r\n\t\tpoints = null;\r\n\t\tdimensions = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * The obvious constructor for this class.  <p> This is more likely to be\r\n\t * called programmatically. The first dimension entries in data are\r\n\t * ignored.\r\n\t *\r\n\t * @param      data The first dimension entries of this array will be ignored.\r\n\t * @param      dimension The number of dimensions.\r\n\t */\r\n\tpublic EuclideanArrayData(double[] data, int dimension) {\r\n\t\tsuper();\r\n\t\tpointsAreConsistent(data, dimension);\r\n\t\tdimensions = dimension;\r\n\t\tpoints = data;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Construct a EuclideanArrayData instance from a double[][].  <p> This\r\n\t * constructor requires taht the double[][] be of consistent dimenions;\r\n\t * that is, data[i].length must be constant -- this will be the dimension\r\n\t * of the instance. The instance will be initialize with data[0] being\r\n\t * the first \"point\", so data.length will be count().\r\n\t *\r\n\t * @param      data A \"rectangular matrix\" of data; data[0] is the first point.\r\n\t */\r\n\tpublic EuclideanArrayData(double[][] data) {\r\n\t\tsuper();\r\n\t\tpointsAreConsistent(data);\r\n\t\tdimensions = data[0].length;\r\n\t\tpoints = new double[(data.length + 1) * dimensions];\r\n\t\tfor (int i = 0; i < data.length; i++) {\r\n\t\t\tfor (int j = 0; j < dimensions; j++) {\r\n\t\t\t\tpoints[((i+1) * dimensions) + j] = data[i][j];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Constructor for test use.\r\n\tpublic EuclideanArrayData(int num_pts, int dimension) {\r\n\t\tsuper();\r\n\t\tRandom rand = new Random(0L);\r\n\t\tdouble[] data = new double[(num_pts + 1) * dimension];\r\n\t\tfor (int i = 1; i <= num_pts; i++) {\r\n\t\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\t\tdata[(i * dimension) + j] = rand.nextDouble();\r\n\t\t\t}\r\n\t\t}\r\n\t\tpointsAreConsistent(data, dimension);\r\n\t\tdimensions = dimension;\r\n\t\tpoints = data;\r\n\t}\r\n\r\n\t// Constructor for test use.\r\n\tpublic EuclideanArrayData(int num_pts, int dimension, double min, double max) {\r\n\t\tsuper();\r\n\t\tRandom rand = new Random(0L);\r\n\t\tdouble[] data = new double[(num_pts + 1) * dimension];\r\n\t\tdouble len = max - min;\r\n\t\tfor (int i = 1; i <= num_pts; i++) {\r\n\t\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\t\tdata[(i * dimension) + j] = (len * rand.nextDouble()) + min;\r\n\t\t\t}\r\n\t\t}\r\n\t\tpointsAreConsistent(data, dimension);\r\n\t\tdimensions = dimension;\r\n\t\tpoints = data;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/ExplicitStream.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport java.util.Arrays;\r\nimport java.util.HashMap;\r\nimport java.util.HashSet;\r\nimport java.util.Iterator;\r\nimport java.util.Map;\r\nimport java.util.NoSuchElementException;\r\n\r\n/**\r\n * A <code>ExplicitStream</code> instance is SimplexStream whose elements\r\n * are given explicitly, along with associated values of a persistence\r\n * parameter. Instances of ExplicitStream can be edited after creation,\r\n * unlike other SimplexStream subclasses, and an expected use is to create\r\n * empty ExplicitStreams and add simplices (and associated persistence\r\n * parameters) to the stream. Instances of this class exist in two states,\r\n * open (meaning open for additions) and closed. A stream that is closed\r\n * can be reopened at any time, but streams that are open cannot be used as\r\n * arguments to the methods in the Persistence class, iterated over, or\r\n * have their contents dumped for examination. Further, iterators or dump\r\n * state created when an ExplicitStream is closed become invalid (and\r\n * useless) once a stream is reopened. There is no explicit way to open one\r\n * of these streams -- it happens implicitly when an empty stream is\r\n * created, and when the stream is edited by adding/removing simplices. You\r\n * can create an iterator on an open stream, but you can't use the iterator\r\n * until the stream is closed. Dumping the contents of a stream will close\r\n * it, as will calling the <code>close()</code> method. There is a\r\n * verification process which must succeed in order for a close to happen\r\n * -- if the stream is in an inconsistent state (e.g., missing faces or the\r\n * persistence parameters of a face exceed that of a simplex), an\r\n * IllegalStateException will be thrown. It should be possible to catch\r\n * this exception, fix the problem, and proceed, but it might not work in\r\n * every case. There is also a <code>verify()</code> method which will\r\n * safely tell if a close() would succeed, and a verbose version that will\r\n * print messages about all of the errors found.\r\n *\r\n * @see        edu.stanford.math.plex.RipsStream\r\n *\r\n * @version $Id$\r\n */\r\npublic class ExplicitStream extends SimplexStream {\r\n\r\n\t// Store the simplices entries by dimension -- recall that the\r\n\t// Persistence algorithm only requires that the stream return the\r\n\t// simplices in persistence order within each dimension, and that\r\n\t// all of the faces of a simplex are seen before the simplex is\r\n\t// seen. This means that we can sort the simplices either by\r\n\t// dimension first, or by findex first. The SimplexStream.Stack,\r\n\t// used by the \"industrial strength\" streams in Plex, sorts first\r\n\t// by findex, and then dimension. However, because we want to be\r\n\t// able to return the contents of these streams as matrices to\r\n\t// Matlab and R, it is more convenient to keep the simplices\r\n\t// grouped by dimension, so that all of the simplices of a given\r\n\t// dimension can be returned as single matrix with dimension+1\r\n\t// columns.\r\n\tprotected Simplex[][] simplices;\r\n\t// map between persistence parameters and findices.\r\n\tprotected double[] persistence_parameters;\r\n\r\n\tprotected PlexMessageWindow message_window;\r\n\r\n\t// False if the stream is open for the addition/removal of\r\n\t// simplices. Closing the stream results in updating the simplices and\r\n\t// lengths arrays, and confirming that the set of simplices does form a\r\n\t// simplicial complex with consistent parameters.\r\n\tprotected boolean closed;\r\n\r\n\t// Used to iterate over simplices if the stream is closed -- get reset\r\n\t// every time it is open.\r\n\tprotected int current_dimension;\r\n\tprotected int current_index;\r\n\t// Increment every time this is opened. Iterators for this class can only\r\n\t// work when their cached open_count is == to the stream's open_count.\r\n\tprotected int open_count;\r\n\r\n\t// The state below is used whenever the stream is open for additions, and\r\n\t// gets flushed at the point that the stream is closed.\r\n\r\n\t// Used to map simplices being added to stream to their persistence\r\n\t// parameters. The contents of this table are always new Simplex\r\n\t// instances with unset _findex slots.\r\n\tprotected HashMap<Simplex,Double> simplex_table;\r\n\t// Any parameter seen goes in this table. When we are done the contents\r\n\t// are used to fill in the persistence_parameters array, which is then\r\n\t// sorted, and indices from there are used to fill in the simplices in\r\n\t// the simplex_table, which are in turn stored, by dimension and then\r\n\t// sorted by findex within the dimensions, in the simplices array.\r\n\tprotected HashSet<Double> parameters_table;\r\n\r\n\r\n\t/**\r\n\t * A DComplex (for Dimensional Complex) is the set of simplices (and\r\n\t * associated persistence parameters) of specified dimension for an\r\n\t * ExplicitStream. The slots are accessed only by read methods. It is\r\n\t * expected that this will be used primarily to connect Plex with Matlab.\r\n\t *\r\n\t */\r\n\tpublic static class DComplex {\r\n\t\tprotected ExplicitStream parent;\r\n\t\tprotected int dimension;\r\n\t\tprotected int open_count;\r\n\t\tprotected int[][] C;\r\n\t\tprotected double[] F;\r\n\r\n\t\t/**\r\n\t\t * Constructor for DComplex;\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @param      parent The ExplicitStream from which the simplices came.\r\n\t\t * @param      dimension The dimension of the simplices.\r\n\t\t * @param      C The actual array of vertex arrays (simplices).\r\n\t\t * @param      F The array of associated persistence parameters.\r\n\t\t */\r\n\t\tpublic DComplex(ExplicitStream parent, int dimension, int[][] C, double[] F) {\r\n\t\t\tthis.parent = parent;\r\n\t\t\tthis.open_count = parent.open_count;\r\n\t\t\tthis.dimension = dimension;\r\n\t\t\tthis.C = C;\r\n\t\t\tthis.F = F;\r\n\t\t}\r\n\r\n\t\t// Are the parent stream and the iterator consistent?\r\n\t\tprotected boolean parent_is_consistent() {\r\n\t\t\treturn (parent.closed && (open_count == parent.open_count));\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Is there a larger dimensional DComplex for this stream?\r\n\t\t * <p>\r\n\t\t * @return true if the parent is consistent with this DComplex\r\n\t\t * and there is are larger dimensional simplices in the parent, else\r\n\t\t * false.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic boolean hasNext() {\r\n\t\t\tif (!parent_is_consistent())\r\n\t\t\t\treturn false;\r\n\t\t\telse \r\n\t\t\t\treturn (dimension < parent.maxDimension());\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Return a DComplex of the next largest dimension, if there is one,\r\n\t\t * else null.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return A DComplex of dimension 1 more, if there is one, else null.\r\n\t\t */\r\n\t\tpublic DComplex next() {\r\n\t\t\tif (!parent_is_consistent())\r\n\t\t\t\treturn null;\r\n\t\t\telse \r\n\t\t\t\treturn parent.dump(dimension+1);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Return the parent ExplicitStream of this DComplex.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     The parent ExplicitStream.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic ExplicitStream parent() {\r\n\t\t\treturn parent;\r\n\t\t}\r\n\t\t/**\r\n\t\t * Return the dimension of this DComplex.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     The dimension of this DComplex.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic int dimension() {\r\n\t\t\treturn dimension;\r\n\t\t}\r\n\t\t/**\r\n\t\t * Return the array of vertex arrays for the simplices of this dimension.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return Return the array describing the part of the complex having\r\n\t\t * the current dimension.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic int[][] C() {\r\n\t\t\treturn C;\r\n\t\t}\r\n\t\t/**\r\n\t\t * Return the array of persistence parameters corresponding to the\r\n\t\t * simplices of this dimension.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     A double[] of the persistence parameters for this dimension.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic double[] F() {\r\n\t\t\treturn F;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Return a DComplex of the requested dimension, if there is one, else null;\r\n\t *\r\n\t * <p>\r\n\t * @param      dim The dimension of the simplices we want.\r\n\t * @return     Return a DComplex if dim >= 0 and <= maxDimension(), else null.\r\n\t *\r\n\t */\r\n\tpublic DComplex dump(int dim) {\r\n\t\tif (!closed)\r\n\t\t\tclose();\r\n\t\tif ((dim < 0) || (dim > maxDimension()))\r\n\t\t\treturn null;\r\n\t\telse {\r\n\t\t\tint[][] cvec = new int[simplices[dim].length][];\r\n\t\t\tdouble[] fvec = new double[cvec.length];\r\n\t\t\tfor (int i = 0; i < cvec.length; i++) {\r\n\t\t\t\tSimplex s = simplices[dim][i];\r\n\t\t\t\tcvec[i] = s.vertices();\r\n\t\t\t\tfvec[i] = persistence_parameters[s.findex()];\r\n\t\t\t}\r\n\t\t\treturn new DComplex(this, dim, cvec, fvec);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Is there a next Simplex in the stream?\r\n\t *\r\n\t * <p>\r\n\t * @return     Return true if the stream is not yet empty.\r\n\t *\r\n\t */\r\n\tpublic boolean hasNext() {\r\n\t\t// NOTE: For this to work it must be the case that any CLOSED\r\n\t\t// ExplicitStream has the property that the Simplex[] for the highest\r\n\t\t// dimension has positive length. That is, if the largest dimensional\r\n\t\t// Simplex in the stream has dimension 3, then simplices.length must\r\n\t\t// be 4. It is, of course, possible that simplices[i] has 0 length\r\n\t\t// for some i, just not for i == simplices.length-1.\r\n\t\tif (!closed)\r\n\t\t\treturn false;\r\n\t\telse \r\n\t\t\treturn ((current_dimension < (simplices.length-1)) ||\r\n\t\t\t\t\t(current_dimension == (simplices.length-1)) &&\r\n\t\t\t\t\t(current_index < simplices[simplices.length-1].length));\r\n\t}\r\n\r\n\t// Go to the \"next\" index pair. This code assumes that there is such a\r\n\t// pair, and so needs to be called only when we know that this is the\r\n\t// case.\r\n\tprotected void skip_to_next_index_pair() {\r\n\t\tcurrent_index++;\r\n\t\twhile((current_dimension < simplices.length) &&\r\n\t\t\t\t(current_index >= simplices[current_dimension].length)) {\r\n\t\t\tcurrent_index = 0;\r\n\t\t\tcurrent_dimension++;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Next Simplex in the stream.\r\n\t *\r\n\t * <p>\r\n\t * @return     Return the smallest remaining Simplex instance.\r\n\t *\r\n\t */\r\n\tpublic Simplex next() {\r\n\t\tif (!hasNext())\r\n\t\t\treturn null;\r\n\t\tSimplex next = simplices[current_dimension][current_index];\r\n\t\tskip_to_next_index_pair();\r\n\t\treturn next;\r\n\t}\r\n\r\n\t// Do the obvious conversions in case we need to return double[].\r\n\tpublic static double[] toDouble(int[] in) {\r\n\t\tif (in == null)\r\n\t\t\treturn null;\r\n\t\tdouble[] return_value = new double[in.length];\r\n\t\tfor (int i = 0; i < in.length; i++) {\r\n\t\t\treturn_value[i] = (double)in[i];\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t// Do the obvious conversions in case we need to return double[][].\r\n\tpublic static double[][] toDouble(int[][] in) {\r\n\t\tif (in == null)\r\n\t\t\treturn null;\r\n\t\tdouble[][] return_value = new double[in.length][];\r\n\t\tfor (int i = 0; i < in.length; i++) {\r\n\t\t\treturn_value[i] = toDouble(in[i]);\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t// Do the obvious conversions in case we are passed a simplex as a double[].\r\n\tpublic static int[] toInt(double[] in) {\r\n\t\tif (in == null)\r\n\t\t\treturn null;\r\n\t\tint[] return_value = new int[in.length];\r\n\t\tfor (int i = 0; i < in.length; i++) {\r\n\t\t\treturn_value[i] = (int)Math.round(in[i]);\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t// Do the obvious conversions in case we are passed simplices as double[][].\r\n\tprotected static int[][] toInt(double[][] in) {\r\n\t\tif (in == null)\r\n\t\t\treturn null;\r\n\t\tint[][] return_value = new int[in.length][];\r\n\t\tfor (int i = 0; i < in.length; i++) {\r\n\t\t\treturn_value[i] = toInt(in[i]);\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t/**\r\n\t * Constructor for ExplicitStream.\r\n\t *\r\n\t * <p>\r\n\t * Make an empty, open, ExplicitStream.\r\n\t */\r\n\tpublic ExplicitStream() {\r\n\t\tsimplices = null;\r\n\t\tpersistence_parameters = null;\r\n\t\tclosed = false;\r\n\t\tcurrent_dimension = 0;\r\n\t\tcurrent_index = 0;\r\n\t\topen_count = 1;\r\n\t\tparameters_table = new HashSet<Double>(100);\r\n\t\tsimplex_table = new HashMap<Simplex,Double>(100);\r\n\t}\r\n\r\n\t// Open the stream for further additions, after creating the internal\r\n\t// state needed to record these additions. In particular, we put the\r\n\t// existing state into these tables and then throw away that existing\r\n\t// state.\r\n\tprotected void open() {\r\n\t\tif (closed) {\r\n\t\t\tif (parameters_table == null)\r\n\t\t\t\tparameters_table = new HashSet<Double>(100);\r\n\t\t\tif (simplex_table == null)\r\n\t\t\t\tsimplex_table = new HashMap<Simplex,Double>(100);\r\n\t\t\tif (simplices != null) {\r\n\t\t\t\tfor(int d = 0; d < simplices.length; d++) {\r\n\t\t\t\t\tfor(int i = 0; i < simplices[d].length; i++) {\r\n\t\t\t\t\t\tSimplex s = simplices[d][i];\r\n\t\t\t\t\t\tDouble P = new Double(persistence_parameters[s.findex()]);\r\n\t\t\t\t\t\tsimplex_table.put(Simplex.getSimplex(s.vertices()), P);\r\n\t\t\t\t\t\tparameters_table.add(P);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsimplices = null;\r\n\t\t\tpersistence_parameters = null;\r\n\t\t\tclosed = false;\r\n\t\t\topen_count++;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Convert a SimplexStream into an explicit one.\r\n\t *\r\n\t * <p>\r\n\t * @param      str A SimplexStream instance.\r\n\t * @return     An ExplicitStream with equivalent Simplex entries.\r\n\t *\r\n\t */\r\n\tpublic static ExplicitStream makeExplicit(SimplexStream str) {\r\n\t\tif (str instanceof ExplicitStream)\r\n\t\t\treturn (ExplicitStream) str;\r\n\t\telse {\r\n\t\t\tExplicitStream estr = new ExplicitStream();\r\n\t\t\testr.open();\r\n\t\t\tif (str instanceof Iterable<?>) {\r\n\t\t\t\tIterator<Simplex> iter = str.iterator();\r\n\t\t\t\twhile(iter.hasNext()) {\r\n\t\t\t\t\tSimplex s = iter.next();\r\n\t\t\t\t\testr.add(s.vertices(), str.convert_filtration_index(s.findex()));\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\twhile(str.hasNext()) {\r\n\t\t\t\t\tSimplex s = str.next();\r\n\t\t\t\t\testr.add(s.vertices(), str.convert_filtration_index(s.findex()));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\testr.close();\r\n\t\t\treturn estr;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Remove a simplex, specified by its vertex vector, from the stream. If\r\n\t * the simplex isn't present, do nothing.\r\n\t * <p>\r\n\t * @param      vertices The vertex array of the Simplex to remove.\r\n\t */\r\n\tpublic void remove(int[] vertices) {\r\n\t\tif (closed)\r\n\t\t\topen();\r\n\t\tSimplex s = Simplex.getSimplex(vertices);\r\n\t\tsimplex_table.remove(s);\r\n\t\tassert(!simplex_table.containsKey(s));\r\n\t}\r\n\r\n\t/**\r\n\t * Remove a simplex, specified by its vertex vector, and any simplex that\r\n\t * contains it, from the stream. If nothing in the stream contains the\r\n\t * simplex, do nothing.  <p>\r\n\t * @param      vertices The vertex array of the Simplex to remove.\r\n\t */\r\n\tpublic void prune(int[] vertices) {\r\n\t\tif (closed)\r\n\t\t\topen();\r\n\t\tSimplex tp = Simplex.getSimplex(vertices);\r\n\t\tint[] tp_vec = new int[tp.dimension()+1];\r\n\t\tint[] s_vec = new int[10];\r\n\r\n\t\tHashMap<Simplex,Double> pending = new HashMap<Simplex,Double>(100);\r\n\t\tfor(Map.Entry<Simplex,Double> E : simplex_table.entrySet()) {\r\n\t\t\tSimplex s = E.getKey();\r\n\t\t\tDouble P = E.getValue();\r\n\t\t\tif ((s.dimension()+1) > s_vec.length) {\r\n\t\t\t\ts_vec = new int[2 * (s.dimension()+1)];\r\n\t\t\t}\r\n\t\t\tif (tp.subset(s, tp_vec, s_vec))\r\n\t\t\t\tpending.put(s, P);\r\n\t\t}\r\n\t\tfor(Map.Entry<Simplex,Double> E : pending.entrySet()) {\r\n\t\t\tSimplex s = E.getKey();\r\n\t\t\tsimplex_table.remove(s);\r\n\t\t}\r\n\r\n\t\tassert(!simplex_table.containsKey(tp));\r\n\t}\r\n\r\n\t/**\r\n\t * Remove a simplex, specified by its vertex vector as an array of\r\n\t * double, from the stream. If the simplex isn't present, do nothing.\r\n\t * <p>\r\n\t * @param vertices The vertex array of the Simplex to remove, where the\r\n\t * vertices are double instead of float -- this may be useful when called\r\n\t * from Matlab.\r\n\t */\r\n\tpublic void remove(double[] vertices) {\r\n\t\tremove(toInt(vertices));\r\n\t}\r\n\r\n\t/**\r\n\t * Prune a simplex, specified by an array of double, from the stream. \r\n\t * <p>\r\n\t * @param vertices The vertex array of the Simplex to prune, where the\r\n\t * vertices are double instead of float -- this may be useful when called\r\n\t * from Matlab.\r\n\t */\r\n\tpublic void prune(double[] vertices) {\r\n\t\tprune(toInt(vertices));\r\n\t}\r\n\r\n\t/**\r\n\t * Remove an array of simplices, specified by vertex vectors, from the stream.\r\n\t * <p>\r\n\t * @param simplex_array An array of arrays of vertices of the Simplices to remove.\r\n\t * from Matlab.\r\n\t */\r\n\tpublic void remove(int[][] simplex_array) {\r\n\t\tfor (int i = 0; i < simplex_array.length; i++) {\r\n\t\t\tremove(simplex_array[i]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Prune an array of simplices, specified by vertex vectors, from the stream.\r\n\t * <p>\r\n\t * @param simplex_array An array of arrays of vertices of the Simplices to prune.\r\n\t * from Matlab.\r\n\t */\r\n\tpublic void prune(int[][] simplex_array) {\r\n\t\tfor (int i = 0; i < simplex_array.length; i++) {\r\n\t\t\tprune(simplex_array[i]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Remove an array of simplices, specified by double[] vertex vectors,\r\n\t * from the stream.  <p>\r\n\t * @param simplex_array An array of arrays of vertices of the Simplices,\r\n\t * given as double[][], to remove. This may be useful when called from Matlab.\r\n\t */\r\n\tpublic void remove(double[][] simplex_array) {\r\n\t\tremove(toInt(simplex_array));\r\n\t}\r\n\r\n\t/**\r\n\t * Prune an array of simplices, specified by double[] vertex vectors,\r\n\t * from the stream.  <p>\r\n\t * @param simplex_array An array of arrays of vertices of the Simplices,\r\n\t * given as double[][], to prune. This may be useful when called from Matlab.\r\n\t */\r\n\tpublic void prune(double[][] simplex_array) {\r\n\t\tprune(toInt(simplex_array));\r\n\t}\r\n\r\n\t// Internal version -- add a Simplex with a specified persistence parameter.\r\n\tprotected void add(Simplex s, double p) {\r\n\t\tif (closed)\r\n\t\t\topen();\r\n\t\tDouble P = new Double(p);\r\n\t\tparameters_table.add(P);\r\n\t\tDouble sP = simplex_table.get(s);\r\n\t\tif (sP == null) {\r\n\t\t\tsimplex_table.put(s, P);\r\n\t\t} else {\r\n\t\t\tsimplex_table.put(s, (P.doubleValue() > sP.doubleValue())?sP:P);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Add a simplex, specified by its vertex vector and persistence\r\n\t * parameter, to the stream. If the simplex is already present, make sure\r\n\t * that the associated persistence parameter is the minimum of the new\r\n\t * value and the one already in use.\r\n\t * <p>\r\n\t * @param vertices The vertex array of the Simplex to add.\r\n\t * @param parameter The persistence parameter of the Simplex to add.\r\n\t */\r\n\tpublic void add(int[] vertices, double parameter) {\r\n\t\tSimplex s = Simplex.getSimplex(vertices);\r\n\t\tadd(s, parameter);\r\n\t}\r\n\r\n\t/**\r\n\t * Add a simplex, specified by its vertex vector and persistence\r\n\t * parameter, to the stream. If the simplex is already present, make sure\r\n\t * that the associated persistence parameter is the minimum of the new\r\n\t * value and the one already in use.\r\n\t * <p>\r\n\t * @param vertices The vertex array of the Simplex to add, given as a double[].\r\n\t * @param parameter The persistence parameter of the Simplex to add.\r\n\t */\r\n\tpublic void add(double[] vertices, double parameter) {\r\n\t\tadd(toInt(vertices), parameter);\r\n\t}\r\n\r\n\t/**\r\n\t * Add an array of simplices, specified by matching vertex vectors and\r\n\t * persistence parameters, to the stream.\r\n\t * <p>\r\n\t * @param simplex_array The array of array of vertices specifying the\r\n\t * Simplices to add.\r\n\t * @param parray The array of associated persistence parameters.\r\n\t */\r\n\tpublic void add(int[][] simplex_array, double[] parray) {\r\n\t\tif (simplex_array.length != parray.length)\r\n\t\t\tthrow new \r\n\t\t\tIllegalArgumentException\r\n\t\t\t(\"Length mismatch between arguments to add().\");\r\n\t\tfor (int i = 0; i < simplex_array.length; i++) {\r\n\t\t\tadd(simplex_array[i], parray[i]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Add an array of simplices, specified by matching vertex vectors and\r\n\t * persistence parameters, to the stream.\r\n\t * <p>\r\n\t * @param simplex_array The array of array of vertices specifying the\r\n\t * Simplices to add, given as arrays of double[].\r\n\t * @param parray The array of associated persistence parameters.\r\n\t */\r\n\tpublic void add(double[][] simplex_array, double[] parray) {\r\n\t\tadd(toInt(simplex_array), parray);\r\n\t}\r\n\r\n\t// Make sure that all of the faces are present of a Simplex are\r\n\t// present. If some are missing, add them with the smallest persistence\r\n\t// parameter associated with that face in the pending table.\r\n\tprotected void ensure_faces(Simplex s, Double P, HashMap<Simplex,Double> pending) {\r\n\t\tassert(P instanceof Double);\r\n\t\tif (s.dimension() > 0) {\r\n\t\t\tSimplexFaceIterator fi = new SimplexFaceIterator(s, s.dimension()-1);\r\n\t\t\t// add missing faces\r\n\t\t\twhile (fi.hasNext()) {\r\n\t\t\t\tSimplex face = Simplex.getSimplex(fi.next());\r\n\t\t\t\tif (!simplex_table.containsKey(face)) {\r\n\t\t\t\t\tif (pending.containsKey(face)) {\r\n\t\t\t\t\t\tDouble prior_faceP = pending.get(face);\r\n\t\t\t\t\t\tif (prior_faceP.doubleValue() < P.doubleValue())\r\n\t\t\t\t\t\t\tP = prior_faceP;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpending.put(Simplex.getSimplex(face.vertices()), P);\r\n\t\t\t\t\tensure_faces(face, P, pending);\r\n\t\t\t\t}\r\n\t\t\t} \r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Make sure all of the faces of simplices in simplex_table are present\r\n\t * in the table as well.  <p> In doing so we use the smallest relevant\r\n\t * persistence parameter. This does NOT ensure that the full complex will\r\n\t * be consistent, but if it fails, the complex was doomed anyway.  <p>\r\n\t *\r\n\t */\r\n\tpublic void ensure_all_faces() {\r\n\t\tif (!closed) {\r\n\t\t\tHashMap<Simplex,Double> pending = new HashMap<Simplex,Double>(100);\r\n\t\t\tfor(Map.Entry<Simplex,Double> E : simplex_table.entrySet()) {\r\n\t\t\t\tSimplex s = E.getKey();\r\n\t\t\t\tDouble P = E.getValue();\r\n\t\t\t\tensure_faces(s, P, pending);\r\n\t\t\t}\r\n\t\t\tfor(Map.Entry<Simplex,Double> E : pending.entrySet()) {\r\n\t\t\t\tSimplex s = E.getKey();\r\n\t\t\t\tDouble P = E.getValue();\r\n\t\t\t\tparameters_table.add(P);\r\n\t\t\t\tsimplex_table.put(s, P);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Realloc() for int[].\r\n\tprotected int[] ensure_length(int[] v, int index) {\r\n\t\tif (index < v.length)\r\n\t\t\treturn v;\r\n\t\tint[] new_v = new int[index+1];\r\n\t\tfor (int i = 0; i < v.length; i++) \r\n\t\t\tnew_v[i] = v[i];\r\n\t\treturn new_v;\r\n\t}\r\n\r\n\t// Don't make the window unless we actually need it.\r\n\tprotected void message(String msg) {\r\n\t\tif ((message_window == null) && (Plex.useMessageWindow()))\r\n\t\t\tmessage_window = new PlexMessageWindow(\"Messages: \" + this.toString());\r\n\t\tif (message_window == null)\r\n\t\t\tSystem.out.printf(\"%s\", msg);\r\n\t\telse \r\n\t\t\tmessage_window.message(msg);\r\n\t}\r\n\r\n\t// Iterate over all of the faces of s and make sure that they are present\r\n\t// in simplex_table. This only applies to open ExplicitStreams, since the\r\n\t// process of closing a stream requires that it be consistent.\r\n\tprotected boolean faces_are_consistent(Simplex s, Double P,\r\n\t\t\tboolean error, boolean print) {\r\n\t\tboolean success = true;\r\n\t\tif (!closed) {\r\n\t\t\tSimplexFaceIterator fi = new SimplexFaceIterator(s, s.dimension()-1);\r\n\t\t\t// check that the faces are all present and have smaller persistence parameter\r\n\t\t\twhile (fi.hasNext()) {\r\n\t\t\t\tSimplex face = Simplex.getSimplex(fi.next());\r\n\t\t\t\tDouble faceP = simplex_table.get(face);\r\n\t\t\t\tif (faceP == null) {\r\n\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\tif (error) {\r\n\t\t\t\t\t\tpersistence_parameters = null;\r\n\t\t\t\t\t\tthrow new\r\n\t\t\t\t\t\tIllegalStateException(\"Simplex \" + \r\n\t\t\t\t\t\t\t\ts.toString() + \r\n\t\t\t\t\t\t\t\t\" is in the stream, but not face \" +\r\n\t\t\t\t\t\t\t\tface.toString());\r\n\t\t\t\t\t} else if (print) {\r\n\t\t\t\t\t\tmessage(String.format(\"Simplex %s is present, but its face %s is not.\\n\",\r\n\t\t\t\t\t\t\t\ts.toString(), face.toString()));\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if ((faceP.doubleValue() > P.doubleValue()) ||\r\n\t\t\t\t\t\t(face.findex() > s.findex())) {\r\n\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\tif (error) {\r\n\t\t\t\t\t\tpersistence_parameters = null;\r\n\t\t\t\t\t\tthrow new\r\n\t\t\t\t\t\tIllegalStateException(\"Simplex \" + \r\n\t\t\t\t\t\t\t\ts.toString() + \r\n\t\t\t\t\t\t\t\t\" has persistence value \" +\r\n\t\t\t\t\t\t\t\tP.toString() +\r\n\t\t\t\t\t\t\t\t\" filtration index \" +\r\n\t\t\t\t\t\t\t\ts.findex() +\r\n\t\t\t\t\t\t\t\t\", but persistence value of \" +\r\n\t\t\t\t\t\t\t\tface.toString() +\r\n\t\t\t\t\t\t\t\t\" or filtration index of \" +\r\n\t\t\t\t\t\t\t\tface.findex() +\r\n\t\t\t\t\t\t\" is larger\");\r\n\t\t\t\t\t} else if (print) {\r\n\t\t\t\t\t\tmessage(String.format\r\n\t\t\t\t\t\t\t\t(\"Simplex %s has value %.4f, but face %s has value %.4f.\\n\",\r\n\t\t\t\t\t\t\t\t\t\ts.toString(), P.doubleValue(), \r\n\t\t\t\t\t\t\t\t\t\tface.toString(), faceP.doubleValue()));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn success;\r\n\t}\r\n\r\n\t/**\r\n\t * Quietly verify the ExplicitStream. Any successfully closed stream must\r\n\t * be consistent.  <p>\r\n\t * @return     Return true if the stream is consistent, else false.\r\n\t *\r\n\t */\r\n\tpublic boolean verify() {\r\n\t\treturn verify(false);\r\n\t}\r\n\r\n\t/**\r\n\t * Verify the ExplicitStream. This is only applied to a stream that has been\r\n\t * opened for additions. Any successfully closed stream must be consistent.\r\n\t *\r\n\t * <p>\r\n\t * @param      verbose if true print a message for every mistake found.\r\n\t * @return     Return true if the stream is consistent, else false.\r\n\t *\r\n\t */\r\n\tpublic boolean verify(boolean verbose) {\r\n\t\tboolean success = true;\r\n\t\tif (!closed) {\r\n\t\t\tfor(Map.Entry<Simplex,Double> E : simplex_table.entrySet()) {\r\n\t\t\t\tSimplex s = E.getKey();\r\n\t\t\t\tDouble P = E.getValue();\r\n\t\t\t\tassert(P instanceof Double);\r\n\t\t\t\tboolean good_face = faces_are_consistent(s, P, false, verbose);\r\n\t\t\t\tif (success)\r\n\t\t\t\t\tsuccess = good_face;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn success;\r\n\t}\r\n\r\n\t/**\r\n\t * Close the stream the current additions, provided that the contents are\r\n\t * consistent and complete. Otherwise, throw an error indicating the\r\n\t * problem. Note that even if the close is successful, further additions\r\n\t * can be made at any time. It isn't obvious that this method needs to be\r\n\t * public, but it makes some testing simpler.\r\n\t */\r\n\tpublic void close() {\r\n\t\tif (!closed) {\r\n\t\t\tint pcount =\r\n\t\t\t\t(parameters_table != null)?parameters_table.size():0;\r\n\t\t\t\tpersistence_parameters = new double[pcount];\r\n\t\t\t\tif (parameters_table != null) {\r\n\t\t\t\t\tint pcounter = 0;\r\n\t\t\t\t\tfor (Double P : parameters_table) {\r\n\t\t\t\t\t\tpersistence_parameters[pcounter++] = P.doubleValue();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tArrays.sort(persistence_parameters);\r\n\t\t\t\tif (simplex_table != null) {\r\n\t\t\t\t\tint[] dimensions = new int[10];\r\n\t\t\t\t\tint max_dimension = -1;\r\n\t\t\t\t\tfor(Map.Entry<Simplex,Double> E : simplex_table.entrySet()) {\r\n\t\t\t\t\t\tSimplex s = E.getKey();\r\n\t\t\t\t\t\tDouble P = E.getValue();\r\n\t\t\t\t\t\tassert(P instanceof Double);\r\n\t\t\t\t\t\tdimensions = ensure_length(dimensions, s.dimension());\r\n\t\t\t\t\t\tdimensions[s.dimension()]++;\r\n\t\t\t\t\t\tmax_dimension = Math.max(max_dimension, s.dimension());          \r\n\t\t\t\t\t\t// check that the faces are all present and have persistence\r\n\t\t\t\t\t\t// parameters that are no larger\r\n\t\t\t\t\t\tfaces_are_consistent(s, P, true, false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsimplices = new Simplex[max_dimension+1][];\r\n\t\t\t\t\tint[] counters = new int[max_dimension+1];\r\n\t\t\t\t\tfor (int i = 0; i < simplices.length; i++) \r\n\t\t\t\t\t\tsimplices[i] = new Simplex[dimensions[i]];\r\n\t\t\t\t\tfor(Map.Entry<Simplex,Double> E : simplex_table.entrySet()) {\r\n\t\t\t\t\t\tSimplex s = E.getKey();\r\n\t\t\t\t\t\tDouble P = E.getValue();\r\n\t\t\t\t\t\tdouble s_p = P.doubleValue();\r\n\t\t\t\t\t\tif (s.findex() < 0)\r\n\t\t\t\t\t\t\t// only bother setting the findex values if they haven't been set\r\n\t\t\t\t\t\t\ts.setfindex(Arrays.binarySearch(persistence_parameters, s_p));\r\n\t\t\t\t\t\tsimplices[s.dimension()][counters[s.dimension()]++] = s;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Sort the simplices entries within each dimension. This will\r\n\t\t\t\t\t// result in a state that allows us to return the contents of the\r\n\t\t\t\t\t// stream in an order suitable for the Persistence calculation.\r\n\t\t\t\t\tfor (int i = 0; i < simplices.length; i++) {\r\n\t\t\t\t\t\t// assert that the simplices subarrays are full\r\n\t\t\t\t\t\tassert (simplices[i].length == counters[i]);\r\n\t\t\t\t\t\tSimplex.persistence_sort(simplices[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tsimplex_table = null;\r\n\t\t\t\tparameters_table = null;\r\n\t\t\t\tclosed = true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * How many simplices are in the stream?\r\n\t *\r\n\t * <p>\r\n\t * @return The number of simplices in a closed stream, else 0 if the\r\n\t * stream is open.\r\n\t *\r\n\t */\r\n\tpublic int size() {\r\n\t\tif (!closed)\r\n\t\t\treturn 0;\r\n\t\telse {\r\n\t\t\tif (simplices == null)\r\n\t\t\t\treturn 0;\r\n\t\t\telse {\r\n\t\t\t\tint total = 0;\r\n\t\t\t\tfor (int i = 0; i < simplices.length; i++) {\r\n\t\t\t\t\ttotal += simplices[i].length;\r\n\t\t\t\t}\r\n\t\t\t\treturn total;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Max dimension of simplices in the stream.\r\n\t *\r\n\t * <p>\r\n\t * @return Max dimension of simplices in the stream, if closed and\r\n\t * non-empty, else -1.\r\n\t *\r\n\t */\r\n\tpublic int maxDimension() {\r\n\t\tif (!closed)\r\n\t\t\treturn -1;\r\n\t\telse {\r\n\t\t\tif (simplices == null)\r\n\t\t\t\treturn -1;\r\n\t\t\telse {\r\n\t\t\t\treturn simplices.length-1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Convert a filtration index into a persistence parameter (i.e., double)\r\n\t * -- gets overloaded by some subclasses.\r\n\t *\r\n\t * <p>\r\n\t * @param      fi Filtration index to convert.\r\n\t * @return     double persistence parameter.\r\n\t *\r\n\t */\r\n\tpublic double convert_filtration_index(int fi) {\r\n\t\treturn persistence_parameters[fi];\r\n\t}\r\n\r\n\t/**\r\n\t * Make an iterator for the stream.\r\n\t * <p>\r\n\t *\r\n\t * @return  Iterator<Simplex> instance for the stream.\r\n\t *\r\n\t * @see        java.util.Iterator\r\n\t */\r\n\tpublic Iterator<Simplex> iterator() {\r\n\t\treturn new ExplicitStreamIterator(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Make an iterator for the stream elements of fixed dimension.\r\n\t * <p>\r\n\t *\r\n\t * @param      d dimension of simplices of interest.\r\n\t * @return  Iterator<Simplex> instance for the stream.\r\n\t *\r\n\t * @see        java.util.Iterator\r\n\t */\r\n\tpublic Iterator<Simplex> iterator(int d) {\r\n\t\treturn new ExplicitStreamIterator(this, d);\r\n\t}\r\n\r\n\t/**\r\n\t * Instances provide Iterator<Simplex> for non-destructive iterating\r\n\t * over entries. That is, repeated iteration over an ExplicitStream\r\n\t * instance is possible with multiple instances of this class.\r\n\t */\r\n\tprotected static class ExplicitStreamIterator implements Iterator<Simplex> {\r\n\t\tprotected int current_index;\r\n\t\tprotected int current_dimension;\r\n\t\tprotected boolean fixed_dimension;\r\n\t\tprotected int open_count;\r\n\t\tprotected ExplicitStream parent;\r\n\r\n\t\tprotected ExplicitStreamIterator(ExplicitStream str) {\r\n\t\t\tcurrent_dimension = 0;\r\n\t\t\tcurrent_index = 0;\r\n\t\t\topen_count = str.open_count;\r\n\t\t\tfixed_dimension = false;\r\n\t\t\tparent = str;\r\n\t\t}\r\n\r\n\t\tprotected ExplicitStreamIterator(ExplicitStream str, int dimension) {\r\n\t\t\tif ((dimension < 0) || (dimension >= str.simplices.length))\r\n\t\t\t\tthrow new IllegalArgumentException(dimension + \r\n\t\t\t\t\t\t\" must be >= 0 and <= \" + \r\n\t\t\t\t\t\t(str.simplices.length-1)); \r\n\t\t\tcurrent_dimension = dimension;\r\n\t\t\tcurrent_index = 0;\r\n\t\t\topen_count = str.open_count;\r\n\t\t\tfixed_dimension = true;\r\n\t\t\tparent = str;\r\n\t\t}\r\n\r\n\t\t// Go to the \"next\" index pair. This code assumes that there is such a\r\n\t\t// pair, and so needs to be called only when we know that this is the\r\n\t\t// case.\r\n\t\tprotected void skip_to_next_index_pair() {\r\n\t\t\tcurrent_index++;\r\n\t\t\twhile((current_dimension < parent.simplices.length) &&\r\n\t\t\t\t\t(current_index >= parent.simplices[current_dimension].length)) {\r\n\t\t\t\tcurrent_index = 0;\r\n\t\t\t\tcurrent_dimension++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Are the parent stream and the iterator consistent?\r\n\t\tprotected boolean parent_is_consistent() {\r\n\t\t\treturn (parent.closed && (open_count == parent.open_count));\r\n\t\t}\r\n\r\n\t\t// NOTE: For this to work it must be the case that any CLOSED\r\n\t\t// ExplicitStream has the property that the Simplex[] for the highest\r\n\t\t// dimension has positive length. That is, if the largest dimensional\r\n\t\t// Simplex in the stream has dimension 3, then simplices.length must\r\n\t\t// be 4. It is, of course, possible that simplices[i] has 0 length\r\n\t\t// for some i, just not for i == simplices.length-1.\r\n\t\tprotected boolean has_next_index() {\r\n\t\t\treturn (fixed_dimension?\r\n\t\t\t\t\t(current_index < parent.simplices[current_dimension].length):\r\n\t\t\t\t\t\t((current_dimension < (parent.simplices.length-1)) ||\r\n\t\t\t\t\t\t\t\t(current_dimension == (parent.simplices.length-1)) &&\r\n\t\t\t\t\t\t\t\t(current_index < \r\n\t\t\t\t\t\t\t\t\t\tparent.simplices[parent.simplices.length-1].length)));\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Returns <tt>true</tt> if the iterator has more simplices.\r\n\t\t *\r\n\t\t * @return <tt>true</tt> if the iterator has more simplices, else\r\n\t\t * <tt>false</tt>.\r\n\t\t */\r\n\t\tpublic boolean hasNext() {\r\n\t\t\tif (!parent_is_consistent())\r\n\t\t\t\treturn false;\r\n\t\t\telse\r\n\t\t\t\treturn has_next_index();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Returns the next Simplex in the iteration of the stream.\r\n\t\t * Used in concert with the {@link #hasNext()} method returns\r\n\t\t * return each Simplex in the stream exactly once. Does\r\n\t\t * <em>not</em> have any side effects on the stream.\r\n\t\t * <p>\r\n\t\t * @return the next Simplex in the stream.\r\n\t\t * @exception NoSuchElementException stream has no more elements.\r\n\t\t */\r\n\t\tpublic Simplex next() {\r\n\t\t\tif (!parent_is_consistent())\r\n\t\t\t\tthrow new\r\n\t\t\t\tIllegalStateException(\"The parent stream (\" + parent.toString() +\r\n\t\t\t\t\") has changed since this iterator was created.\");\r\n\t\t\tif (!has_next_index())\r\n\t\t\t\tthrow new NoSuchElementException();\r\n\r\n\t\t\tSimplex next = parent.simplices[current_dimension][current_index];\r\n\t\t\tskip_to_next_index_pair();\r\n\t\t\treturn next;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Unsupported remove() operation.\r\n\t\t *\r\n\t\t * @exception UnsupportedOperationException \r\n\t\t */\r\n\t\tpublic void remove() {\r\n\t\t\tthrow new UnsupportedOperationException();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Convert a Simplex[][] into an ExplicitStream.\r\n\t * <p>\r\n\t * @param complex A Simplex[][] collection of simplices which are\r\n\t * believed to a simplicial complex with findex values usable as\r\n\t * persistence parameters.\r\n\t * @return An ExplicitStream instance the encloses the Simplex instances.\r\n\t */\r\n\tpublic static ExplicitStream enclose (Simplex[][] complex) {\r\n\t\tExplicitStream estr = new ExplicitStream();\r\n\t\testr.open();\r\n\t\tfor (int i = 0; i < complex.length; i++) {\r\n\t\t\tSimplex[] sarray = complex[i];\r\n\t\t\tfor (int j = 0; j < sarray.length; j++) {\r\n\t\t\t\tSimplex s = sarray[j];\r\n\t\t\t\tdouble p = (s.findex() < 0)?0.0:((double)s.findex());\r\n\t\t\t\testr.add(s.copy(), p);\r\n\t\t\t}\r\n\t\t}\r\n\t\testr.close();\r\n\t\treturn estr;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/LazyWitnessStream.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static edu.stanford.math.plex.RipsStream.all_edges_present;\r\nimport static edu.stanford.math.plex.RipsStream.edge_index;\r\nimport static edu.stanford.math.plex.WitnessStream.D_index;\r\nimport static edu.stanford.math.plex.WitnessStream.HUGE;\r\nimport static edu.stanford.math.plex.WitnessStream.distance_ln;\r\nimport static edu.stanford.math.plex.WitnessStream.max;\r\nimport static edu.stanford.math.plex.WitnessStream.min;\r\n\r\nimport java.util.Arrays;\r\nimport java.util.Iterator;\r\n\r\n/**\r\n * <p>\r\n * A LazyWitnessStream is a SimplexStream whose elements are the simplices of\r\n * the lazy Witness complex of a PointData instance. The implementation is very\r\n * similar to the RipsStream, and in fact the results are analogous for nu=0.\r\n * The details of this construction are described in <i>Topological estimation\r\n * using witness complexes</i>, Vin de Silva and Gunnar Carlsson, Symposium on\r\n * Point-Based Graphics, ETH, Zurich, Switzerland, June 2-4, 2004.\r\n * \r\n * @see edu.stanford.math.plex.RipsStream\r\n * @see edu.stanford.math.plex.WitnessStream\r\n * \r\n * \r\n * @version $Id$\r\n */\r\npublic class LazyWitnessStream extends SimplexStream {\r\n\r\n\t// the pdata, landmarks, granularity and nu can't change, but we (may)\r\n\t// allow the limit to increase, which can result in more simplices\r\n\t// being added.\r\n\tpublic final PointData pdata;\r\n\tpublic final double granularity;\r\n\tpublic final int maxDimension;\r\n\tpublic final int[] landmarks;\r\n\tpublic final int nu;\r\n\tprotected double maxR;\r\n\tprotected double[] finite_eij_array;\r\n\tprotected SimplexStream.Stack stack;\r\n\r\n\t/**\r\n\t * Is there a next Simplex in the stream?\r\n\t * \r\n\t * <p>\r\n\t * \r\n\t * @return Return true if the stream is not yet empty.\r\n\t * \r\n\t */\r\n\tpublic boolean hasNext() {\r\n\t\treturn stack.hasNext();\r\n\t}\r\n\r\n\t/**\r\n\t * Next Simplex in the stream.\r\n\t * \r\n\t * <p>\r\n\t * \r\n\t * @return Return the smallest remaining Simplex instance.\r\n\t * \r\n\t */\r\n\tpublic Simplex next() {\r\n\t\treturn stack.next();\r\n\t}\r\n\r\n\t/**\r\n\t * Constructor for LazyWitnessStream.\r\n\t * \r\n\t * <p>\r\n\t * Make a stream of the simplices in a lazy Witness complex for data.\r\n\t * <p>\r\n\t * \r\n\t * @param delta\r\n\t *            Granularity to apply to the underlying metric.\r\n\t * @param max_d\r\n\t *            Maximum dimension of Simplex instances we construct.\r\n\t * @param R\r\n\t *            Maximum R we will use.\r\n\t * @param nu\r\n\t *            See <i>Topological estimation using witness complexes</i>,\r\n\t *            above.\r\n\t * @param landmarks\r\n\t *            Indices of points to use as landmarks. The simplices\r\n\t *            constructed will use the landmark indices, rather than the\r\n\t *            indices into data.\r\n\t * @param data\r\n\t *            Metric data to use in constructing stream.\r\n\t * \r\n\t */\r\n\tLazyWitnessStream(double delta, int max_d, double R, int nu, int[] landmarks, PointData data) {\r\n\t\tassert delta >= 0.0;\r\n\r\n\t\tgranularity = delta;\r\n\t\tthis.landmarks = landmarks;\r\n\t\tthis.nu = nu;\r\n\t\tmaxR = R;\r\n\t\tpdata = data;\r\n\t\tmaxDimension = max_d;\r\n\t\tstack = find_simplices(delta, R, nu, max_d, landmarks, data);\r\n\t}\r\n\r\n\t/**\r\n\t * How many simplices are in the stream?\r\n\t * \r\n\t * <p>\r\n\t * \r\n\t * @return The number of simplices in the stream.\r\n\t * \r\n\t */\r\n\tpublic int size() {\r\n\t\treturn stack.size();\r\n\t}\r\n\r\n\t/**\r\n\t * Max dimension of simplices in the stream.\r\n\t * \r\n\t * <p>\r\n\t * \r\n\t * @return Max dimension of simplices in the stream.\r\n\t * \r\n\t */\r\n\tpublic int maxDimension() {\r\n\t\treturn stack.maxDimension();\r\n\t}\r\n\r\n\t/**\r\n\t * Convert a filtration index into a persistence parameter (i.e., double) --\r\n\t * gets overloaded by some subclasses.\r\n\t * \r\n\t * <p>\r\n\t * \r\n\t * @param fi\r\n\t *            Filtration index to convert.\r\n\t * @return double persistence parameter.\r\n\t * \r\n\t */\r\n\tpublic double convert_filtration_index(int fi) {\r\n\t\tif (granularity > 0.0)\r\n\t\t\treturn granularity * fi;\r\n\t\telse\r\n\t\t\treturn finite_eij_array[fi];\r\n\t}\r\n\r\n\t/**\r\n\t * Make an iterator for the stream.\r\n\t * <p>\r\n\t * \r\n\t * @return Iterator<Simplex> instance for the stream.\r\n\t * \r\n\t * @see java.util.Iterator\r\n\t */\r\n\tpublic Iterator<Simplex> iterator() {\r\n\t\treturn stack.iterator();\r\n\t}\r\n\r\n\t// don't use\r\n\tprotected LazyWitnessStream() {\r\n\t\tgranularity = 0.0;\r\n\t\tmaxDimension = 0;\r\n\t\tlandmarks = null;\r\n\t\tpdata = null;\r\n\t\tnu = 0;\r\n\t}\r\n\r\n\t// The algorithm here is essentially the same as the one for Rips\r\n\t// complexes, as it would be for constructing any complex where a\r\n\t// simplex is part of the complex if and only if all of its edges are,\r\n\t// and where the filtration index of a simplex is the max of the\r\n\t// filtration indices of all of the component edges. The difference\r\n\t// between this algorithm and the RipsStream one is how the edge_info[]\r\n\t// is initialized.\r\n\tprotected SimplexStream.Stack find_simplices(double delta, double R_max, int nu, int max_dimension, int[] landmarks, PointData data) {\r\n\r\n\t\t// Recall that we never use 0 as a simplex index, so landmarks[0] should\r\n\t\t// be empty\r\n\t\tassert (landmarks[0] == 0);\r\n\t\t// there is no point doing this unless 1 < L <= N.\r\n\t\tassert ((landmarks.length > 2) && (data.count() >= (landmarks.length - 1)));\r\n\t\t// nu == 0, 1, or 2 in practice, but 0 <= nu <= L is all that we require\r\n\t\tassert ((nu >= 0) && (nu <= (landmarks.length - 1)));\r\n\r\n\t\tif (max_dimension < 0)\r\n\t\t\treturn null;\r\n\r\n\t\t// The landmarks are indexed from 1 to L, inclusive, and since 0 is\r\n\t\t// excluded,\r\n\t\t// L = landmarks.length-1.\r\n\t\tint L = landmarks.length - 1;\r\n\t\tint[] edge_info = new int[(L * (L - 1)) / 2];\r\n\t\tint max_findex;\r\n\t\tif (granularity > 0.0)\r\n\t\t\tmax_findex = (int) (Math.floor(R_max / granularity));\r\n\t\telse\r\n\t\t\tmax_findex = (L * (L - 1)) / 2;\r\n\r\n\t\t// Construct the tail of the queue -- we add any simplices of less\r\n\t\t// than max dimension to this queue, so that we can go over go over\r\n\t\t// them again in a later pass\r\n\t\tSimplexStream.Tail q = new SimplexStream.Tail();\r\n\t\t// repository for the elements of the LazyWitness complex.\r\n\t\tSimplexStream.Stack stack = new SimplexStream.Stack(max_findex, max_dimension);\r\n\r\n\t\t// Fill in the edge_info array with -1's, which indicate \"no edge\".\r\n\t\tfor (int i = 0; i < edge_info.length; i++)\r\n\t\t\tedge_info[i] = -1;\r\n\r\n\t\t// Add all of the points to the stack.\r\n\t\tfor (int l = 1; l <= L; l++)\r\n\t\t\tstack.push(Simplex.makePoint(l, 0));\r\n\r\n\t\t// If max_dimension is 0, we just want the points.\r\n\t\tif (max_dimension < 1)\r\n\t\t\treturn stack;\r\n\r\n\t\t// Remember the start of dimension k, where in this case, k=1.\r\n\t\tSimplexStream.Head last_dim_start = new SimplexStream.Head(q);\r\n\r\n\t\t// Construct the edge_info[] -- the only iteration over the full\r\n\t\t// data set occurs within this block, and we use the variable n for\r\n\t\t// that. The other indexing that occurs is over the landmarks set.\r\n\t\t// We try to create a cached D matrix of distances, but if we don't\r\n\t\t// have enough memory for that, we recalculate the distances as\r\n\t\t// needed.\r\n\t\t{\r\n\t\t\t// Recall that \"count\" means that the points are indexed from 1 to\r\n\t\t\t// N, inclusive.\r\n\t\t\tint N = data.count();\r\n\t\t\tdouble[] m = new double[N + 1];\r\n\t\t\tdouble[] D = null;\r\n\t\t\ttry {\r\n\t\t\t\tif ((L * N) > 0) {\r\n\t\t\t\t\t// fill in the distance matrix, if we can\r\n\t\t\t\t\tD = new double[L * N];\r\n\t\t\t\t\tfor (int l = 1; l <= L; l++)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfor (int n = 1; n <= N; n++)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tD[D_index(l, n, L, N)] = distance_ln(l, n, landmarks, data);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} catch (OutOfMemoryError oom) {\r\n\t\t\t} finally {\r\n\t\t\t}\r\n\r\n\t\t\tif (nu > 0) {\r\n\t\t\t\tdouble[] m_tmp = new double[L + 1];\r\n\t\t\t\tfor (int n = 1; n <= N; n++) {\r\n\t\t\t\t\tfor (int l = 1; l <= L; l++)\r\n\t\t\t\t\t\tif (D == null)\r\n\t\t\t\t\t\t\tm_tmp[l] = distance_ln(l, n, landmarks, data);\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tm_tmp[l] = D[D_index(l, n, L, N)];\r\n\t\t\t\t\tArrays.sort(m_tmp);\r\n\t\t\t\t\tassert (m_tmp[0] == 0.0);\r\n\t\t\t\t\tm[n] = m_tmp[nu];\r\n\t\t\t\t\tassert (m[n] > 0.0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Process the edges. We both enqueue them, and create the\r\n\t\t\t// edge_info[] which we use to bootstrap from dimension k to\r\n\t\t\t// dimension k+1. What happens in this section of the code is the\r\n\t\t\t// essential difference between a Rips complex and a LazyWitness\r\n\t\t\t// complex.\r\n\t\t\t{\r\n\t\t\t\tdouble[] i_cache = (D == null) ? null : new double[N + 1];\r\n\t\t\t\tdouble[] eij_array = new double[(L * (L - 1)) / 2];\r\n\t\t\t\tint finite_eij_counter = 1;\r\n\r\n\t\t\t\tfor (int i = 1; i <= L; i++) {\r\n\t\t\t\t\tif (D == null) {\r\n\t\t\t\t\t\tfor (int n = 1; n <= N; n++)\r\n\t\t\t\t\t\t\ti_cache[n] = distance_ln(i, n, landmarks, data);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (int j = i + 1; j <= L; j++) {\r\n\t\t\t\t\t\t// Compute the R at which the edge comes into\r\n\t\t\t\t\t\t// existence. We use the m[] values to adjust the\r\n\t\t\t\t\t\t// distance_ln() values.\r\n\t\t\t\t\t\tdouble e_ij = HUGE;\r\n\t\t\t\t\t\tfor (int n = 1; n <= N; n++) {\r\n\t\t\t\t\t\t\tdouble d_ijn;\r\n\t\t\t\t\t\t\tif (D == null)\r\n\t\t\t\t\t\t\t\td_ijn = max(i_cache[n], distance_ln(j, n, landmarks, data));\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\td_ijn = max(D[D_index(i, n, L, N)], D[D_index(j, n, L, N)]);\r\n\t\t\t\t\t\t\tif (d_ijn < m[n])\r\n\t\t\t\t\t\t\t\td_ijn = 0.0;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\td_ijn = d_ijn - m[n];\r\n\t\t\t\t\t\t\te_ij = min(e_ij, d_ijn);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (e_ij <= R_max) {\r\n\t\t\t\t\t\t\tfinite_eij_counter++;\r\n\t\t\t\t\t\t\teij_array[edge_index(i, j, L)] = e_ij;\r\n\t\t\t\t\t\t} else\r\n\t\t\t\t\t\t\teij_array[edge_index(i, j, L)] = HUGE;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If the granularity is 0, then instead of making the\r\n\t\t\t\t// filtration\r\n\t\t\t\t// indices be proportional to the e_ij, we make an array of the\r\n\t\t\t\t// e_ij, sort it, and use the index into this sorted array as\r\n\t\t\t\t// the\r\n\t\t\t\t// filtration index for the corresponding edge.\r\n\t\t\t\tif (granularity == 0.0) {\r\n\t\t\t\t\t// Copy the non-HUGE lengths into the finite_eij_array\r\n\t\t\t\t\t// (leaving a 0\r\n\t\t\t\t\t// in the first entry), and sort it -- we will use the index\r\n\t\t\t\t\t// of e_ij\r\n\t\t\t\t\t// in finite_eij_array as the persistence index for the\r\n\t\t\t\t\t// corresponding\r\n\t\t\t\t\t// edge simplex. We don't bother looking for duplicate\r\n\t\t\t\t\t// lengths,\r\n\t\t\t\t\t// because these will occur with probability 0 in real data.\r\n\t\t\t\t\tfinite_eij_array = new double[finite_eij_counter];\r\n\t\t\t\t\tfinite_eij_counter = 1;\r\n\t\t\t\t\tfor (int i = 0; i < eij_array.length; i++) {\r\n\t\t\t\t\t\tif (eij_array[i] != HUGE)\r\n\t\t\t\t\t\t\tfinite_eij_array[finite_eij_counter++] = eij_array[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tArrays.sort(finite_eij_array);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Use either division or binary search to find filtration index\r\n\t\t\t\t// for the edge from i to j.\r\n\t\t\t\tfor (int i = 1; i <= L; i++) {\r\n\t\t\t\t\tfor (int j = i + 1; j <= L; j++) {\r\n\t\t\t\t\t\tdouble e_ij = eij_array[edge_index(i, j, L)];\r\n\t\t\t\t\t\t// if the edge appears early enough, create it, and\r\n\t\t\t\t\t\t// then push and enqueue it\r\n\t\t\t\t\t\tif (e_ij < HUGE) {\r\n\t\t\t\t\t\t\tint f_ij = ((granularity > 0.0) ? ((int) (Math.floor(e_ij / granularity))) : Arrays.binarySearch(finite_eij_array, e_ij));\r\n\t\t\t\t\t\t\tedge_info[edge_index(i, j, L)] = f_ij;\r\n\t\t\t\t\t\t\tSimplex s = Simplex.makeEdge(i, j, f_ij);\r\n\t\t\t\t\t\t\tstack.push(s);\r\n\t\t\t\t\t\t\tq = q.enqueue(s);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// We are ready to construct the higher dimensional data. Since we\r\n\t\t// already have the edges, we begin with 2-dimensional simplexes,\r\n\t\t// and continue until we have constructed those of max_dimension.\r\n\t\tint current_dimension = 2;\r\n\t\twhile (current_dimension <= max_dimension) {\r\n\t\t\t// we start processing at last_dim_start\r\n\t\t\tSimplexStream.Head current = last_dim_start;\r\n\t\t\t// At this point all simplices of current_dimension-1 have been\r\n\t\t\t// added to the queue (and none of current_dimension), so we\r\n\t\t\t// stop processing for this dimension when current reaches end.\r\n\t\t\tSimplexStream.Head end = new SimplexStream.Head(q);\r\n\t\t\t// Remember end as last_dim_start, for the next iteration\r\n\t\t\tlast_dim_start = end;\r\n\t\t\t// We construct a scratch array in which to store any potential\r\n\t\t\t// vertex sets for possible simplices of dimension\r\n\t\t\t// current_dimension.\r\n\t\t\tint[] verts = new int[current_dimension + 1];\r\n\r\n\t\t\twhile (current.lessThan(end)) {\r\n\t\t\t\t// Until current reaches end, extract simplices and copy\r\n\t\t\t\t// their vertices into the scratch array.\r\n\t\t\t\tSimplex face = current.nextEntry();\r\n\t\t\t\tassert (face.dimension() == (current_dimension - 1));\r\n\t\t\t\tface.vertices(verts);\r\n\t\t\t\t// We know that any k dimensional simplex that we can admit\r\n\t\t\t\t// must have all of its faces in the list of k-1 simplices\r\n\t\t\t\t// (a simplex cannot belong to a complex unless all of its\r\n\t\t\t\t// faces belong, too). That means that any possible k\r\n\t\t\t\t// simplex [x1,...,x(k+1)] must have the face [x1,...,xk]\r\n\t\t\t\t// in the list. So we see that we can get to any possible k\r\n\t\t\t\t// simplex by adding a vertex \"onto the end\" (that is, the\r\n\t\t\t\t// new vertex is larger than any of the existing ones) of a\r\n\t\t\t\t// k-1 simplex. Further, it is easy to see that adding onto\r\n\t\t\t\t// the end of 2 distinct k-1 simplices can never yield the\r\n\t\t\t\t// same k simplex. So if we just add onto the end of the\r\n\t\t\t\t// simplices in the previous dimension, we will see all\r\n\t\t\t\t// potential k simplices precisely once. So if verts is\r\n\t\t\t\t// [v1,...,vk, <junk>], then we are interested in any\r\n\t\t\t\t// possible simplex [v1,...,vk,x] with x > vk. In this case\r\n\t\t\t\t// we merely need to check if (v1, x),...,(v1, k) are\r\n\t\t\t\t// edges. If so, [v1,...,vk,x] is a simplex, and its\r\n\t\t\t\t// filtration index is the max of ([v1,...,vk]).findex()\r\n\t\t\t\t// and filtration indices of the edges (v1,x),...(vk,x).\r\n\t\t\t\tint largest_v = verts[current_dimension - 1];\r\n\t\t\t\tfor (int new_last = largest_v + 1; new_last <= L; new_last++) {\r\n\t\t\t\t\tverts[current_dimension] = new_last;\r\n\t\t\t\t\tint f_new = all_edges_present(verts, edge_info, L);\r\n\t\t\t\t\tif (f_new >= 0) {\r\n\t\t\t\t\t\tSimplex newSimplex = Simplex.getSimplexPresorted(verts, Math.max(face.findex(), f_new));\r\n\t\t\t\t\t\tstack.push(newSimplex);\r\n\t\t\t\t\t\tif (current_dimension < max_dimension)\r\n\t\t\t\t\t\t\t// if the dimension of newSimplex isn't maximal,\r\n\t\t\t\t\t\t\t// then we put it in the queue\r\n\t\t\t\t\t\t\tq = q.enqueue(newSimplex);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Make sure that if we are exiting we have processed all\r\n\t\t\t// simplices in q.\r\n\t\t\tassert ((current_dimension < max_dimension) || (last_dim_start.eql(new SimplexStream.Head(q))));\r\n\t\t\tcurrent_dimension++;\r\n\t\t}\r\n\r\n\t\treturn stack;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/MappedBufferData.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport java.io.File;\r\nimport java.io.FileOutputStream;\r\nimport java.io.RandomAccessFile;\r\nimport java.nio.DoubleBuffer;\r\nimport java.nio.MappedByteBuffer;\r\nimport java.nio.channels.FileChannel;\r\nimport java.util.Random;\r\n\r\n\r\n/**\r\n * The <code>MappedBufferData</code> class is another very simple implementation\r\n * of NSpace. Intended for larger, but still mappable, data sets.\r\n *\r\n * @version $Id$\r\n */\r\n\r\npublic class MappedBufferData extends PointData.NSpace {\r\n\r\n\tfinal MappedByteBuffer points_buf;\r\n\tfinal DoubleBuffer points;\r\n\tfinal int dimensions;\r\n\tfinal int start_dimension;\r\n\tfinal int stop_dimension;\r\n\r\n\t/**\r\n\t * The number of dimensions of the space.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the dimension of the data.\r\n\t */\r\n\tpublic int dimension() {\r\n\t\treturn dimensions;\r\n\t}\r\n\r\n\t/**\r\n\t * The first data dimension of the space.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the first data dimension of the space.\r\n\t */\r\n\tpublic int start() {\r\n\t\treturn start_dimension;\r\n\t}\r\n\r\n\t/**\r\n\t * The last data dimension of the space.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the last data dimension of the space.\r\n\t */\r\n\tpublic int stop() {\r\n\t\treturn stop_dimension;\r\n\t}\r\n\r\n\t/**\r\n\t * The number of data points.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the number of points\r\n\t */\r\n\tpublic int count() {\r\n\t\tif (points != null)\r\n\t\t\treturn ((points.capacity()/dimensions)-1);\r\n\t\telse\r\n\t\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Euclidean distance.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p1   the first point\r\n\t * @param      p2   the second point\r\n\t * @return     the Euclidean distance between p1 and p2.\r\n\t */\r\n\tpublic double distance (int p1, int p2) {\r\n\t\tif (p1 == p2)\r\n\t\t\treturn 0.0;\r\n\t\telse if ((p1 == 0) || (p2 == 0))\r\n\t\t\treturn Double.MAX_VALUE;\r\n\t\telse {\r\n\t\t\tint p1_base = dimensions * p1;\r\n\t\t\tint p2_base = dimensions * p2;\r\n\t\t\tdouble accum = 0.0;\r\n\r\n\t\t\tfor (int i = start_dimension; i <= stop_dimension; i++) {\r\n\t\t\t\tdouble diff = points.get(p1_base + i) - points.get(p2_base + i);\r\n\t\t\t\taccum += diff * diff;\r\n\t\t\t}\r\n\r\n\t\t\treturn Math.sqrt(accum);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Get point. No checking.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p   the point\r\n\t * @param      vec   place to store point\r\n\t * @return     Coordinates of p;\r\n\t */\r\n\tpublic double[] get_pt (int p, double[] vec) {\r\n\t\tassert(dimensions == vec.length);\r\n\t\tfor (int i = 0; i < dimensions; i++) {\r\n\t\t\tvec[i] = points.get((dimensions * p)+i);\r\n\t\t\t//assert(vec[i] == coordinate(p, i));\r\n\t\t}\r\n\t\treturn vec;\r\n\t}\r\n\r\n\t/**\r\n\t * Set point. No checking. Just for testing.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p   the point\r\n\t * @param      vec   the coordinate values\r\n\t * @return     The coordinates of p.\r\n\t */\r\n\tpublic double[] set_pt (int p, double[] vec) {\r\n\t\tassert(dimensions == vec.length);\r\n\t\tfor (int i = 0; i < dimensions; i++) {\r\n\t\t\tpoints.put((dimensions * p)+i, vec[i]);\r\n\t\t\t//assert(points.get((dimensions * p)+i) == vec[i]);\r\n\t\t}\r\n\t\treturn vec;\r\n\t}\r\n\r\n\t/**\r\n\t * Get coordinates. Not much checking.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p   the point\r\n\t * @param      i   the coordinate\r\n\t * @return     The i-th coordinate of p;\r\n\t */\r\n\tpublic double coordinate (int p, int i) {\r\n\t\tif ((i >= dimensions) || (i < 0))\r\n\t\t\tthrow new IllegalArgumentException(\"Coordinate index \" + i + \r\n\t\t\t\t\t\"must be in range [0, \" + \r\n\t\t\t\t\t(dimensions-1) + \"].\");\r\n\t\treturn points.get((dimensions * p) + i);\r\n\t}\r\n\r\n\t/**\r\n\t * Set coordinates. No checking.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p   the point\r\n\t * @param      i   the coordinate\r\n\t * @param      v   the coordinate value\r\n\t * @return     The i-th coordinate of p;\r\n\t */\r\n\tpublic double set_coordinate (int p, int i, double v) {\r\n\t\t// really shouldn't be here\r\n\t\tassert(false);\r\n\t\tif ((i >= dimensions) || (i < 0))\r\n\t\t\tthrow new IllegalArgumentException(\"Coordinate index \" + i + \r\n\t\t\t\t\t\"must be in range [0, \" + \r\n\t\t\t\t\t(dimensions-1) + \"].\");\r\n\t\tpoints.put((dimensions * p) + i, v);\r\n\t\t//assert(points.get((dimensions * p)+i) == v);\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t * Force changes to data back to file. \r\n\t *\r\n\t * <p>\r\n\t */\r\n\tpublic void force () {\r\n\t\tpoints_buf.force();\r\n\t}\r\n\r\n\r\n\r\n\t// Don't call this one.\r\n\tprotected MappedBufferData() {\r\n\t\tsuper();\r\n\t\tpoints_buf = null;\r\n\t\tpoints = null;\r\n\t\tdimensions = 0;\r\n\t\tstart_dimension = 0;\r\n\t\tstop_dimension = 0;\r\n\t}\r\n\r\n\t// Does a file exist?\r\n\tprotected static boolean file_exists(String filename, boolean andWriteable) {\r\n\t\tFile file = new File(filename);\r\n\t\tif ((file != null) && file.exists() && file.canRead()) {\r\n\t\t\tif (andWriteable) {\r\n\t\t\t\treturn file.canWrite();\r\n\t\t\t} else\r\n\t\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t// Does a file exist?\r\n\tpublic static void delete(String filename) {\r\n\t\tFile file = new File(filename);\r\n\t\tif ((file != null) && file.exists()) {\r\n\t\t\tfile.delete();\r\n\t\t}\r\n\t}\r\n\r\n\t// Make an empty file of a given size suitable for mapping.\r\n\tprotected static void make_empty_file(String filename, int bytes) {\r\n\t\ttry {\r\n\t\t\tFileOutputStream stream = new FileOutputStream(filename);\r\n\t\t\tbyte[] tmp = new byte[1024 * 256];\r\n\t\t\twhile(bytes > 0) {\r\n\t\t\t\tint len = (bytes > tmp.length)?tmp.length:bytes;\r\n\t\t\t\tstream.write(tmp, 0, len);\r\n\t\t\t\tbytes -= len;\r\n\t\t\t}\r\n\t\t\tstream.flush();\r\n\t\t\tstream.close();\r\n\t\t}\r\n\t\tcatch (java.io.FileNotFoundException fnfe) {\r\n\t\t\tthrow new IllegalArgumentException(\"Cannot open or create file: \"\r\n\t\t\t\t\t+ filename);\r\n\t\t} catch (java.io.IOException ioe) {\r\n\t\t\tthrow new IllegalArgumentException(\"IO exception writing empty file: \" \r\n\t\t\t\t\t+ filename);\r\n\t\t}\r\n\t}\r\n\r\n\t// Open the empty buffer file.\r\n\tprotected static MappedByteBuffer empty_dbl_file(String filename, int len) {\r\n\t\tif (file_exists(filename, false))\r\n\t\t\tthrow new IllegalArgumentException(\"File already exists: \" + filename);\r\n\r\n\t\tmake_empty_file(filename, 8 * len);\r\n\t\treturn map_file(filename, true);\r\n\t}\r\n\r\n\t// Map a file;\r\n\tprotected static MappedByteBuffer map_file(String filename, boolean writable) {\r\n\t\ttry {\r\n\t\t\tFileChannel.MapMode mode = \r\n\t\t\t\t(writable)?FileChannel.MapMode.READ_WRITE:FileChannel.MapMode.READ_ONLY;\r\n\t\t\tString open_mode = (writable)?\"rw\":\"r\";\r\n\t\t\tFileChannel chnl = new RandomAccessFile(filename, open_mode).getChannel();\r\n\t\t\tMappedByteBuffer buf = chnl.map(mode, 0, (int) chnl.size());\r\n\t\t\tbuf.load();\r\n\t\t\treturn buf;\r\n\t\t} catch (java.io.FileNotFoundException fnfe) {\r\n\t\t\tthrow new IllegalArgumentException(\"Cannot find data file: \" + filename);\r\n\t\t} catch (java.io.IOException ioe) {\r\n\t\t\tthrow new IllegalArgumentException(\"IO exception mapping data file: \" \r\n\t\t\t\t\t+ filename);\r\n\t\t}\r\n\t}\r\n\r\n\t// Make sure that the buf and dimension arguments are compatible.\r\n\tprotected boolean buf_is_consistent(DoubleBuffer buf, int dimension, \r\n\t\t\tboolean just_created) {\r\n\t\tif (dimension < 1)\r\n\t\t\treturn false;\r\n\t\tif ((buf.capacity() % dimension) != 0)\r\n\t\t\treturn false;\r\n\t\tif (buf.capacity() <= dimension)\r\n\t\t\treturn false;\r\n\t\tif (!just_created && ((int)buf.get(0) != dimension))\r\n\t\t\treturn false;\r\n\t\tfor (int i = 1; i < dimension; i++) {\r\n\t\t\tif (buf.get(i) != 0.0)\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// create mapped data file \r\n\tpublic MappedBufferData(String filename, int length, int dimension, \r\n\t\t\tint start_dimension, int stop_dimension) {\r\n\t\tif (file_exists(filename, false))\r\n\t\t\tthrow new IllegalArgumentException(\"Data file already exists: \" + filename);\r\n\t\tpoints_buf = empty_dbl_file(filename, (length+1)*dimension);\r\n\t\tpoints = points_buf.asDoubleBuffer();\r\n\t\tif (!buf_is_consistent(points, dimension, true))\r\n\t\t\tthrow new IllegalArgumentException(\"Data file not properly sized\" + \r\n\t\t\t\t\t\" or initialized: \" + filename);\r\n\t\tif ((start_dimension < 0) || (start_dimension > stop_dimension) ||\r\n\t\t\t\t(stop_dimension >= dimension))\r\n\t\t\tthrow new IllegalArgumentException(\"start/stop dimension arguments must be\" +\r\n\t\t\t\t\t\" in the range of [0,\"\r\n\t\t\t\t\t+ (dimension-1) + \"].\");\r\n\t\tpoints.put(0, (double)dimension);\r\n\t\tdimensions = dimension;\r\n\t\tthis.start_dimension = start_dimension;\r\n\t\tthis.stop_dimension = stop_dimension;\r\n\t\tpoints_buf.force();\r\n\t}\r\n\r\n\t// map data from file, possibly writably\r\n\tpublic MappedBufferData(String filename, int start_dimension, \r\n\t\t\tint stop_dimension, boolean writable) {\r\n\t\tif (!file_exists(filename, writable)) {\r\n\t\t\tif (writable)\r\n\t\t\t\tthrow new IllegalArgumentException(\"Data file not found or not\" +\r\n\t\t\t\t\t\t\" readable and writable: \" + \r\n\t\t\t\t\t\tfilename);\r\n\t\t\telse\r\n\t\t\t\tthrow new IllegalArgumentException(\"Data file not found or not readable: \" +\r\n\t\t\t\t\t\tfilename);\r\n\t\t}\r\n\t\tpoints_buf = map_file(filename, writable);\r\n\t\tpoints = points_buf.asDoubleBuffer();\r\n\t\tif (!buf_is_consistent(points, (int)points.get(0), false))\r\n\t\t\tthrow new IllegalArgumentException(\"Data file not properly sized\" + \r\n\t\t\t\t\t\" or initialized: \" + filename);\r\n\t\tdimensions = (int)points.get(0);\r\n\t\tif (!buf_is_consistent(points, (int)points.get(0), false))\r\n\t\t\tthrow new IllegalArgumentException(\"Data file not properly sized\" +\r\n\t\t\t\t\t\" or initialized: \" + filename);\r\n\t\tif (stop_dimension == 0)\r\n\t\t\tstop_dimension = dimensions-1;\r\n\t\tif ((start_dimension < 0) || (start_dimension > stop_dimension) ||\r\n\t\t\t\t(stop_dimension >= dimensions))\r\n\t\t\tthrow new IllegalArgumentException(\"start/stop dimension arguments must\" +\r\n\t\t\t\t\t\" be in the range of [0,\"\r\n\t\t\t\t\t+ (dimensions-1) + \"].\");\r\n\t\tthis.start_dimension = start_dimension;\r\n\t\tthis.stop_dimension = stop_dimension;\r\n\t}\r\n\r\n\t// map data from file readonly\r\n\tpublic MappedBufferData(String filename) {\r\n\t\tthis(filename, 0, 0, false);\r\n\t}\r\n\r\n\t// map data from file readonly\r\n\tpublic MappedBufferData(String filename, boolean writable) {\r\n\t\tthis(filename, 0, 0, writable);\r\n\t}\r\n\r\n\t// map data from file readonly, ignoring some leading dimensions\r\n\tpublic MappedBufferData(String filename, int start_dimension) {\r\n\t\tthis(filename, start_dimension, 0, false);\r\n\t}\r\n\r\n\t// Constructor for test use.\r\n\tpublic MappedBufferData(String filename, int num_pts, int dimension, \r\n\t\t\tdouble min, double max) {\r\n\t\tsuper();\r\n\t\tRandom rand = new Random(0L);\r\n\t\tpoints_buf = empty_dbl_file(filename, (num_pts+1)*dimension);\r\n\t\tpoints = points_buf.asDoubleBuffer();\r\n\t\tassert(buf_is_consistent(points, dimension, true));\r\n\t\tdouble len = max - min;\r\n\t\tfor (int i = 1; i <= num_pts; i++) {\r\n\t\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\t\tpoints.put((i * dimension) + j, (len * rand.nextDouble()) + min);\r\n\t\t\t}\r\n\t\t}\r\n\t\tpoints.put(0, (double)dimension);\r\n\t\tpoints_buf.force();\r\n\t\tdimensions = dimension;\r\n\t\tstart_dimension = 0;\r\n\t\tstop_dimension = dimensions-1;\r\n\t}\r\n\r\n\t// Constructor for test use.\r\n\tpublic MappedBufferData(String filename, int num_pts, \r\n\t\t\tint dimension, int partition_count) {\r\n\t\tsuper();\r\n\t\tassert(partition_count > 1);\r\n\t\tRandom rand = new Random(0L);\r\n\t\tpoints_buf = empty_dbl_file(filename, (num_pts+1)*dimension);\r\n\t\tpoints = points_buf.asDoubleBuffer();\r\n\t\tassert(buf_is_consistent(points, dimension, true));\r\n\t\tfor (int i = 1; i <= num_pts; i++) {\r\n\t\t\tpoints.put((i * dimension), (double)(1+rand.nextInt(partition_count-1)));\r\n\t\t\tfor (int j = 1; j < dimension; j++) {\r\n\t\t\t\tpoints.put((i * dimension) + j, rand.nextDouble());\r\n\t\t\t}\r\n\t\t}\r\n\t\tpoints.put(0, (double)dimension);\r\n\t\tpoints_buf.force();\r\n\t\tdimensions = dimension;\r\n\t\tstart_dimension = 1;\r\n\t\tstop_dimension = dimensions-1;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Packed2Simplex.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * <p>The <code>Packed2Simplex</code> class implements the abstract class\r\n * <code>Simplex</code> for Simplices that are points or edges by storing\r\n * the vertices as 2 packed 32-bit values in a single long int. This limits\r\n * us to H0 calculations with this representation, but this is the most\r\n * important case for Mapper use, and increased vertex sizes, and\r\n * simplicity and speed of this form make it worthwhile.\r\n *\r\n * @version $Id$\r\n */\r\npublic class Packed2Simplex extends Simplex {\r\n\r\n\tpublic final long bits;\r\n\r\n\t// This is the largest vertex index that we can use for this kind of\r\n\t// Simplex.\r\n\tprotected static int VERTEX_BIT_SZ = 32;\r\n\tprotected static int MAX_2_INDEX = Integer.MAX_VALUE;\r\n\tprotected static long DIM_0_MASK = ~((long) MAX_2_INDEX);\r\n\r\n\tstatic boolean checkConstants() {\r\n\t\tassert(MAX_2_INDEX == 0x7fffffff);\r\n\t\tassert(DIM_0_MASK == 0xffffffff80000000L);\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// Extract smallest vertex.\r\n\tprotected int v1() {\r\n\t\treturn (int) (bits & MAX_2_INDEX);\r\n\t}\r\n\r\n\t// Extract second vertex.\r\n\tprotected int v2() {\r\n\t\treturn (int) ((bits >>> VERTEX_BIT_SZ) & MAX_2_INDEX);\r\n\t}\r\n\r\n\t// We only use the constructors for Packed2Simplex internally. This one\r\n\t// is never used.\r\n\tprotected Packed2Simplex() {\r\n\t\tbits = 0;\r\n\t}\r\n\r\n\t// We only use the constructors for Packed2Simplex internally. \r\n\tprotected Packed2Simplex(long bits) {\r\n\t\tthis.bits = bits;\r\n\t}\r\n\r\n\tprotected static boolean check_2_vertices(int[] v) {\r\n\t\tif (v.length == 0)\r\n\t\t\treturn true;\r\n\t\tif ((v.length == 1) && (v[0] > 0))\r\n\t\t\treturn true;\r\n\t\telse if ((v.length == 2) && (v[0] > 0) && (v[1] > v[0]))\r\n\t\t\treturn true;\r\n\t\telse\r\n\t\t\treturn false;\r\n\t}\r\n\r\n\tprotected static void assert_2_vertices(int[] v) {\r\n\t\tif (!check_2_vertices(v)) {\r\n\t\t\tthrow new \r\n\t\t\tIllegalArgumentException\r\n\t\t\t(\"Packed2Simplex instances must have between 0 and 2\" + \r\n\t\t\t\"distinct positive integer vertices.\");\r\n\t\t}\r\n\t}\r\n\r\n\t// In the explicit constructors, the indices must all be non-zero and\r\n\t// be in increasing order.\r\n\tprotected Packed2Simplex(int v1) {\r\n\t\tassert(v1 > 0);\r\n\t\tbits = v1;\r\n\t}\r\n\tPacked2Simplex(int v1, int v2) {\r\n\t\tassert((v2 > v1) && (v1 > 0));\r\n\t\tbits = ((((long)v2) << VERTEX_BIT_SZ) | ((long)v1));\r\n\t}\r\n\r\n\t/**\r\n\t * Overrides Object hashcode.\r\n\t *\r\n\t * <p>\r\n\t * @return     CRC hash of the vertex set.\r\n\t *\r\n\t */\r\n\tpublic int hashCode() {\r\n\t\treturn CRC.hash32(bits, 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Overrides Object equals.\r\n\t *\r\n\t * <p>\r\n\t * @param      obj   object to compare.\r\n\t * @return true or false, depending on whether or not the Simplex is =\r\n\t *                        to obj.\r\n\t *\r\n\t */\r\n\tpublic boolean equals(Object obj) {\r\n\t\tif (!(obj instanceof Packed2Simplex))\r\n\t\t\treturn false;\r\n\t\tPacked2Simplex s = (Packed2Simplex) obj;\r\n\t\treturn (bits == s.bits);\r\n\t}\r\n\r\n\t// Internal comparison routine.\r\n\tprotected int compareTo(Packed2Simplex s) {\r\n\t\tif (bits > s.bits)\r\n\t\t\treturn 1;\r\n\t\telse if (bits < s.bits)\r\n\t\t\treturn -1;\r\n\t\telse\r\n\t\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Implements Comparable interface.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     negative, 0, or positive, if this <, =, resp. > than s.\r\n\t *\r\n\t */\r\n\tpublic int compareTo(Simplex s) {\r\n\t\tif (!(s instanceof Packed2Simplex))\r\n\t\t\treturn (this.dimension() - s.dimension());\r\n\t\telse \r\n\t\t\treturn this.compareTo((Packed2Simplex)s);\r\n\t}\r\n\r\n\t/**\r\n\t * Simplex Less Than. Used internally in Persistence and Chain\r\n\t * code. Not the same as compareTo.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true if this < s, else false.\r\n\t *\r\n\t */\r\n\tboolean slt(Simplex s) {\r\n\t\tif (this.findex() != s.findex())\r\n\t\t\treturn (this.findex() < s.findex());\r\n\t\telse if (s instanceof Packed2Simplex) {\r\n\t\t\tPacked2Simplex ps = (Packed2Simplex) s;\r\n\t\t\treturn (bits < ps.bits);\r\n\t\t} else \r\n\t\t\treturn (this.dimension() < s.dimension());\r\n\t}\r\n\r\n\t/**\r\n\t * Simplex EQuals. Used internally in Persistence and Chain code.  \r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true is equal, else false.\r\n\t *\r\n\t */\r\n\tboolean seq(Simplex s) {\r\n\t\tif (!(s instanceof Packed2Simplex))\r\n\t\t\treturn false;\r\n\t\tPacked2Simplex ps = (Packed2Simplex) s;\r\n\t\treturn (bits == ps.bits);\r\n\t}\r\n\r\n\t/**\r\n\t * Make a \"blank\" copy of the Simplex -- equivalent to getSimplex(this.vertices()).\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the copied instance.\r\n\t *\r\n\t */    \r\n\tpublic Simplex copy() {\r\n\t\treturn new Packed2Simplex(bits);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the dimension of self.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     int, the dimension of the simplex.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#dimension\r\n\t */    \r\n\tpublic int dimension() { \r\n\t\tif (bits == 0) \r\n\t\t\treturn -1;\r\n\t\telse if ((bits & DIM_0_MASK) == 0) \r\n\t\t\treturn 0;\r\n\t\telse\r\n\t\t\treturn 1;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the indices of self as an array.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     an int[] of vertices, or null if no vertices.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */    \r\n\tpublic int[] vertices() { \r\n\t\tint dim = dimension();\r\n\t\tint verts[] = new int[dimension()+1];\r\n\r\n\t\tif (dim == -1) \r\n\t\t\treturn verts;\r\n\r\n\t\tif (dim == 0) {\r\n\t\t\tverts[0] = this.v1();\r\n\t\t\treturn verts;\r\n\t\t}\r\n\r\n\t\tverts[0] = this.v1();\r\n\t\tverts[1] = this.v2();\r\n\t\treturn verts;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the indices of self in the given array argument.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @param      verts   the int[] into which the vertices, if any, are written.\r\n\t * @return     the given array argument, or null if no vertices.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */\r\n\tpublic int[] vertices(int[] verts) { \r\n\t\tif (bits==0) \r\n\t\t\treturn verts;\r\n\r\n\t\tif ((bits & DIM_0_MASK) == 0) {\r\n\t\t\tverts[0] = this.v1();\r\n\t\t\treturn verts;\r\n\t\t}\r\n\r\n\t\tverts[0] = this.v1();\r\n\t\tverts[1] = this.v2();\r\n\t\treturn verts;\r\n\t}\r\n\r\n\r\n\t// The obvious thing.\r\n\tpublic static Simplex makeSimplex(int[] vertices) {\r\n\t\tassert(vertices.length <= 2);\r\n\t\tSimplex.vertex_sort(vertices);\r\n\t\tassert_2_vertices(vertices);\r\n\t\tif (vertices.length == 0) \r\n\t\t\treturn new Packed2Simplex();\r\n\t\telse if (vertices.length == 1) \r\n\t\t\treturn new Packed2Simplex(vertices[0]);\r\n\t\telse \r\n\t\t\treturn new Packed2Simplex(vertices[0], vertices[1]);\r\n\t}\r\n\r\n\t// Another obvious thing.\r\n\tpublic static Simplex makeSimplexPresorted(int[] vertices) {\r\n\t\tassert(vertices.length <= 2);\r\n\t\tassert(check_2_vertices(vertices));\r\n\t\tif (vertices.length == 0) \r\n\t\t\treturn new Packed2Simplex();\r\n\t\telse if (vertices.length == 1) \r\n\t\t\treturn new Packed2Simplex(vertices[0]);\r\n\t\telse\r\n\t\t\treturn new Packed2Simplex(vertices[0], vertices[1]);\r\n\t}\r\n\r\n\t// Still another obvious thing.\r\n\tpublic static Simplex makeEdge(int v1, int v2) {\r\n\t\tif ((v1 < 1) || (v2 < 1) || (v1 == v2))\r\n\t\t\tthrow new \r\n\t\t\tIllegalArgumentException\r\n\t\t\t(\"Edge vertices must be distinct positive integers.\");\r\n\t\tif (v2 > v1)\r\n\t\t\treturn new Packed2Simplex(v1, v2);\r\n\t\telse \r\n\t\t\treturn new Packed2Simplex(v2, v1);\r\n\t}\r\n\r\n\t// The most obvious thing.\r\n\tpublic static Simplex makePoint(int v) {\r\n\t\tif (v < 1)\r\n\t\t\tthrow new \r\n\t\t\tIllegalArgumentException\r\n\t\t\t(\"Simplex vertices must be positive integers.\");\r\n\t\treturn new Packed2Simplex(v);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the boundary of self.  \r\n\t *\r\n\t * <p> It is simple enough to do explicitly, and it needs to be fast.\r\n\t *\r\n\t *\r\n\t * @return     [face0, face1, ...]\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */\r\n\tpublic Simplex[] boundaryArray() {\r\n\t\tint dimension = dimension();\r\n\t\tif (dimension <= 0)\r\n\t\t\treturn null;\r\n\t\telse {\r\n\t\t\tSimplex[] return_value = new Simplex[2];\r\n\t\t\treturn_value[0] = new Packed2Simplex(this.v2());\r\n\t\t\treturn_value[1] = new Packed2Simplex(this.v1());\r\n\t\t\treturn return_value;\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Packed4Simplex.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * <p>The <code>Packed4Simplex</code> class implements the abstract class\r\n * <code>Simplex</code> for Simplices of dimension at most 3 by storing the\r\n * vertices as 4 packed positive integer values in a pair of long\r\n * ints. This limits us to H2 calculations with this representation, but\r\n * this is the next most important case, and having a more compact\r\n * representation for this case makes it worthwhile.\r\n *\r\n * @version $Id$\r\n */\r\npublic class Packed4Simplex extends Simplex {\r\n\r\n\tpublic final long bits_lo;\r\n\tpublic final long bits_hi;\r\n\r\n\t// This is the largest vertex index that we can use for this kind of\r\n\t// Simplex.\r\n\tprotected static int VERTEX_BIT_SZ = 32;\r\n\tprotected static int MAX_4_INDEX = Integer.MAX_VALUE;\r\n\tprotected static long DIM_2_MASK = ~((long) MAX_4_INDEX);\r\n\r\n\tstatic boolean checkConstants() {\r\n\t\tassert(MAX_4_INDEX == 0x7fffffff);\r\n\t\tassert(DIM_2_MASK == 0xffffffff80000000L);\r\n\t\treturn true;\r\n\t}\r\n\r\n\t// Extract smallest vertex.\r\n\tprotected int v1() {\r\n\t\treturn (int) (bits_lo & MAX_4_INDEX);\r\n\t}\r\n\r\n\t// Extract second vertex.\r\n\tprotected int v2() {\r\n\t\treturn (int) ((bits_lo >>> VERTEX_BIT_SZ) & MAX_4_INDEX);\r\n\t}\r\n\r\n\t// Extract third vertex.\r\n\tprotected int v3() {\r\n\t\treturn (int) (bits_hi & MAX_4_INDEX);\r\n\t}\r\n\r\n\t// Extract largest vertex.\r\n\tprotected int v4() {\r\n\t\treturn (int) ((bits_hi >>> VERTEX_BIT_SZ) & MAX_4_INDEX);\r\n\t}\r\n\r\n\t// We only use the constructors for Packed4Simplex internally. This one\r\n\t// is never used.\r\n\tprotected Packed4Simplex() {\r\n\t\tbits_lo = 0;\r\n\t\tbits_hi = 0;\r\n\t}\r\n\r\n\t// We only use the constructors for Packed4Simplex internally. \r\n\tprotected Packed4Simplex(long bits_lo, long bits_hi) {\r\n\t\tthis.bits_lo = bits_lo;\r\n\t\tthis.bits_hi = bits_hi;\r\n\t}\r\n\r\n\tprotected static boolean check_4_vertices(int[] v) {\r\n\t\tif (v.length <= 2)\r\n\t\t\treturn false;\r\n\t\telse if ((v.length == 3) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]))\r\n\t\t\treturn true;\r\n\t\telse if ((v.length == 4) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) && \r\n\t\t\t\t(v[3] > v[2]))\r\n\t\t\treturn true;\r\n\t\telse\r\n\t\t\treturn false;\r\n\t}\r\n\r\n\tprotected static void assert_4_vertices(int[] v) {\r\n\t\tif (!check_4_vertices(v)) {\r\n\t\t\tthrow new \r\n\t\t\tIllegalArgumentException\r\n\t\t\t(\"Packed4Simplex instances must have either 3 or 4 \" + \r\n\t\t\t\"distinct positive integer vertices.\");\r\n\t\t}\r\n\t}\r\n\r\n\t// In the explicit constructors, the indices must all be non-zero and\r\n\t// be in increasing order.\r\n\tprotected Packed4Simplex(int v1, int v2, int v3) {\r\n\t\tassert((v3 > v2) && (v2 > v1) && (v1 > 0));\r\n\t\tbits_lo = ((((long)v2) << VERTEX_BIT_SZ) | ((long)v1));\r\n\t\tbits_hi = (long)v3;\r\n\t}\r\n\t// Boundary method in Packed8Simplex needs this constructor.\r\n\tPacked4Simplex(int v1, int v2, int v3, int v4) {\r\n\t\tassert((v4 > v3) && (v3 > v2) && (v2 > v1) && (v1 > 0));\r\n\t\tbits_lo = ((((long)v2) << VERTEX_BIT_SZ) | ((long)v1));\r\n\t\tbits_hi = ((((long)v4) << VERTEX_BIT_SZ) | ((long)v3));\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Overrides Object hashcode.\r\n\t *\r\n\t * <p>\r\n\t * @return     CRC hash of the vertex set.\r\n\t *\r\n\t */\r\n\tpublic int hashCode() {\r\n\t\treturn CRC.hash32(bits_hi, CRC.hash32(bits_lo, 0));\r\n\t}\r\n\r\n\t/**\r\n\t * Overrides Object equals.\r\n\t *\r\n\t * <p>\r\n\t * @param      obj   object to compare.\r\n\t * @return true or false, depending on whether or not the Simplex is =\r\n\t *                        to obj.\r\n\t *\r\n\t */\r\n\tpublic boolean equals(Object obj) {\r\n\t\tif (!(obj instanceof Packed4Simplex))\r\n\t\t\treturn false;\r\n\t\tPacked4Simplex s = (Packed4Simplex) obj;\r\n\t\treturn ((bits_lo == s.bits_lo) && (bits_hi == s.bits_hi));\r\n\t}\r\n\r\n\t// Internal comparison routine.\r\n\tprotected int compareTo(Packed4Simplex s) {\r\n\t\tif (bits_hi > s.bits_hi)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_hi < s.bits_hi)\r\n\t\t\treturn -1;\r\n\t\telse if (bits_lo > s.bits_lo)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_lo < s.bits_lo)\r\n\t\t\treturn -1;\r\n\t\telse\r\n\t\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Implements Comparable interface.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     negative, 0, or positive, if this <, =, resp. > than s.\r\n\t *\r\n\t */\r\n\tpublic int compareTo(Simplex s) {\r\n\t\tif (!(s instanceof Packed4Simplex))\r\n\t\t\treturn (this.dimension() - s.dimension());\r\n\t\telse \r\n\t\t\treturn this.compareTo((Packed4Simplex)s);\r\n\t}\r\n\r\n\t/**\r\n\t * Simplex Less Than. Used internally in Persistence and Chain\r\n\t * code. Not the same as compareTo.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true if this < s, else false.\r\n\t *\r\n\t */\r\n\tboolean slt(Simplex s) {\r\n\t\tif (this.findex() != s.findex())\r\n\t\t\treturn (this.findex() < s.findex());\r\n\t\telse if (s instanceof Packed4Simplex) {\r\n\t\t\tPacked4Simplex ps = (Packed4Simplex) s;\r\n\t\t\tif (bits_hi < ps.bits_hi)\r\n\t\t\t\treturn true;\r\n\t\t\telse if (bits_hi == ps.bits_hi)\r\n\t\t\t\treturn (bits_lo < ps.bits_lo);\r\n\t\t\telse\r\n\t\t\t\treturn false;\r\n\t\t} else\r\n\t\t\treturn (this.dimension() < s.dimension());\r\n\t}\r\n\r\n\t/**\r\n\t * Simplex EQuals. Used internally in Persistence and Chain code.  \r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true is equal, else false.\r\n\t *\r\n\t */\r\n\tboolean seq(Simplex s) {\r\n\t\tif (!(s instanceof Packed4Simplex))\r\n\t\t\treturn false;\r\n\t\tPacked4Simplex ps = (Packed4Simplex) s;\r\n\t\treturn ((bits_lo == ps.bits_lo) && (bits_hi == ps.bits_hi));\r\n\t}\r\n\r\n\t/**\r\n\t * Make a \"blank\" copy of the Simplex -- equivalent to getSimplex(this.vertices()).\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the copied instance.\r\n\t *\r\n\t */    \r\n\tpublic Simplex copy() {\r\n\t\treturn new Packed4Simplex(bits_lo, bits_hi);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the dimension of self.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     int, the dimension of the simplex.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#dimension\r\n\t */    \r\n\tpublic int dimension() { \r\n\t\tif ((bits_hi & DIM_2_MASK) == 0) \r\n\t\t\treturn 2;\r\n\t\telse\r\n\t\t\treturn 3;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the indices of self as an array.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     an int[] of vertices, or null if no vertices.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */    \r\n\tpublic int[] vertices() { \r\n\t\tint dim = dimension();\r\n\t\tint verts[] = new int[dimension()+1];\r\n\t\tif (dim == 2) {\r\n\t\t\tverts[0] = this.v1();\r\n\t\t\tverts[1] = this.v2();\r\n\t\t\tverts[2] = this.v3();\r\n\t\t\treturn verts;\r\n\t\t}\r\n\t\tverts[0] = this.v1();\r\n\t\tverts[1] = this.v2();\r\n\t\tverts[2] = this.v3();\r\n\t\tverts[3] = this.v4();\r\n\t\treturn verts;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the indices of self in the given array argument.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @param      verts   the int[] into which the vertices, if any, are written.\r\n\t * @return     the given array argument, or null if no vertices.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */\r\n\tpublic int[] vertices(int[] verts) { \r\n\t\tint dim = dimension();\r\n\t\tif (dim == 2) {\r\n\t\t\tverts[0] = this.v1();\r\n\t\t\tverts[1] = this.v2();\r\n\t\t\tverts[2] = this.v3();\r\n\t\t\treturn verts;\r\n\t\t}\r\n\t\tverts[0] = this.v1();\r\n\t\tverts[1] = this.v2();\r\n\t\tverts[2] = this.v3();\r\n\t\tverts[3] = this.v4();\r\n\t\treturn verts;\r\n\t}\r\n\r\n\t// The obvious thing.\r\n\tpublic static Simplex makeSimplex(int[] vertices) {\r\n\t\tSimplex.vertex_sort(vertices);\r\n\t\tassert_4_vertices(vertices);\r\n\t\tif (vertices.length == 3) \r\n\t\t\treturn new Packed4Simplex(vertices[0], vertices[1], vertices[2]);\r\n\t\telse\r\n\t\t\treturn new Packed4Simplex(vertices[0], vertices[1], \r\n\t\t\t\t\tvertices[2], vertices[3]);\r\n\t}\r\n\r\n\t// Another obvious thing.\r\n\tpublic static Simplex makeSimplexPresorted(int[] vertices) {\r\n\t\tassert(check_4_vertices(vertices));\r\n\t\tif (vertices.length == 3) \r\n\t\t\treturn new Packed4Simplex(vertices[0], vertices[1], vertices[2]);\r\n\t\telse\r\n\t\t\treturn new Packed4Simplex(vertices[0], vertices[1], \r\n\t\t\t\t\tvertices[2], vertices[3]);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the boundary of self.  \r\n\t *\r\n\t * <p> It is simple enough to do explicitly, and it needs to be fast.\r\n\t *\r\n\t *\r\n\t * @return     [face0, face1, ...]\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */\r\n\tpublic Simplex[] boundaryArray() {\r\n\t\tint dimension = dimension();\r\n\t\tSimplex[] return_value;\r\n\t\tif (dimension == 2) {\r\n\t\t\treturn_value = new Simplex[3];\r\n\t\t\treturn_value[0] = new Packed2Simplex(this.v2(), this.v3());\r\n\t\t\treturn_value[1] = new Packed2Simplex(this.v1(), this.v3());\r\n\t\t\treturn_value[2] = new Packed2Simplex(this.v1(), this.v2());\r\n\t\t} else {\r\n\t\t\treturn_value = new Simplex[4];\r\n\t\t\treturn_value[0] = \r\n\t\t\t\tnew Packed4Simplex(this.v2(), this.v3(), this.v4());\r\n\t\t\treturn_value[1] = \r\n\t\t\t\tnew Packed4Simplex(this.v1(), this.v3(), this.v4());\r\n\t\t\treturn_value[2] = \r\n\t\t\t\tnew Packed4Simplex(this.v1(), this.v2(), this.v4());\r\n\t\t\treturn_value[3] = \r\n\t\t\t\tnew Packed4Simplex(this.v1(), this.v2(), this.v3());\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Packed6Simplex.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * <p>The <code>Packed6Simplex</code> class implements the abstract class\r\n * <code>Simplex</code> for Simplices of dimension 4-5 by storing the\r\n * vertices as 6 packed positive integer values in three long\r\n * integers. This limits us to H4 calculations with this representation,\r\n * but it is unlikely that we can go to higher dimensions without an\r\n * alteration of the basic algorithm.\r\n *\r\n * @version $Id$\r\n */\r\npublic class Packed6Simplex extends Simplex {\r\n\r\n\tpublic final long bits_lo;\r\n\tpublic final long bits_mid;\r\n\tpublic final long bits_hi;\r\n\r\n\t// This is the largest vertex index that we can use for this kind of\r\n\t// Simplex.\r\n\tprotected static int VERTEX_BIT_SZ = 32;\r\n\tprotected static int MAX_6_INDEX = Integer.MAX_VALUE;\r\n\tprotected static long DIM_4_MASK = ~((long) MAX_6_INDEX);\r\n\r\n\tstatic boolean checkConstants() {\r\n\t\tassert(MAX_6_INDEX == 0x7fffffff);\r\n\t\tassert(DIM_4_MASK == 0xffffffff80000000L);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected static boolean check_6_vertices(int[] v) {\r\n\t\tif (v.length <= 4)\r\n\t\t\treturn false;\r\n\t\telse if ((v.length == 5) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) &&\r\n\t\t\t\t(v[3] > v[2]) && (v[4] > v[3]))\r\n\t\t\treturn true;\r\n\t\telse if ((v.length == 6) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) &&\r\n\t\t\t\t(v[3] > v[2]) && (v[4] > v[3]) && (v[5] > v[4]))\r\n\t\t\treturn true;\r\n\t\telse\r\n\t\t\treturn false;\r\n\t}\r\n\r\n\tprotected static void assert_6_vertices(int[] v) {\r\n\t\tif (!check_6_vertices(v))\r\n\t\t\tthrow new \r\n\t\t\tIllegalArgumentException\r\n\t\t\t(\"Packed6Simplex instances must have either 5 or 6 \" + \r\n\t\t\t\"distinct positive integer vertices.\");\r\n\t}\r\n\r\n\t// Convert an array of vertices into the \"bits_lo\" of a\r\n\t// Packed6Simplex. Vertices MUST BE SORTED.\r\n\tprotected static long p6_v_to_l_lo(int[] vertices) {\r\n\t\treturn (((long)vertices[1]) << VERTEX_BIT_SZ) | ((long)vertices[0]);\r\n\t}\r\n\r\n\t// Convert an array of vertices into the \"bits_mid\" of a\r\n\t// Packed6Simplex. Vertices MUST BE SORTED.\r\n\tprotected static long p6_v_to_l_mid(int[] vertices) {\r\n\t\treturn (((long)vertices[3]) << VERTEX_BIT_SZ) | ((long)vertices[2]);\r\n\t}\r\n\r\n\t// Convert an array of vertices into the \"bits_hi\" of a\r\n\t// Packed6Simplex. Vertices MUST BE SORTED.\r\n\tprotected static long p6_v_to_l_hi(int[] vertices) {\r\n\t\tif (vertices.length == 5)\r\n\t\t\treturn (long) vertices[4];\r\n\t\telse \r\n\t\t\treturn (((long)vertices[5]) << VERTEX_BIT_SZ) | ((long)vertices[4]);\r\n\t}\r\n\r\n\t// Extract largest vertex.\r\n\tprotected int v6() {\r\n\t\treturn (int) ((bits_hi >>> VERTEX_BIT_SZ) & MAX_6_INDEX);\r\n\t}\r\n\r\n\t// Extract 5th vertex (second hi bits vertex).\r\n\tprotected int v5() {\r\n\t\treturn (int) (bits_hi & MAX_6_INDEX);\r\n\t}\r\n\r\n\t// Extract 4th vertex.\r\n\tprotected int v4() {\r\n\t\treturn (int) ((bits_mid >>> VERTEX_BIT_SZ) & MAX_6_INDEX);\r\n\t}\r\n\r\n\t// Extract 3rd vertex.\r\n\tprotected int v3() {\r\n\t\treturn (int) (bits_mid & MAX_6_INDEX);\r\n\t}\r\n\r\n\t// Extract 2nd vertex.\r\n\tprotected int v2() {\r\n\t\treturn (int) ((bits_lo >>> VERTEX_BIT_SZ) & MAX_6_INDEX);\r\n\t}\r\n\r\n\t// Extract smallest vertex.\r\n\tprotected int v1() {\r\n\t\treturn (int) (bits_lo & MAX_6_INDEX);\r\n\t}\r\n\r\n\t// We only use the constructors for Packed6Simplex internally. This one\r\n\t// is never used externally because none of bits_lo, bits_mid, or bits_hi\r\n\t// is ever 0.\r\n\tprotected Packed6Simplex() {\r\n\t\tbits_lo = 0;\r\n\t\tbits_mid = 0;\r\n\t\tbits_hi = 0;\r\n\t}\r\n\r\n\t// We only use the constructors for Packed6Simplex internally. \r\n\tprotected Packed6Simplex(long bits_lo_val, long bits_mid_val, long bits_hi_val) {\r\n\t\tbits_lo = bits_lo_val;\r\n\t\tbits_mid = bits_mid_val;\r\n\t\tbits_hi = bits_hi_val;\r\n\t}\r\n\r\n\t// In the explicit constructors, the indices must all be non-zero and\r\n\t// be in increasing order.\r\n\tPacked6Simplex(int v1, int v2, int v3, int v4, int v5) {\r\n\t\tassert((v5 > v4) && (v4 > v3) && (v3 > v2) && (v2 > v1) && (v1 > 0));\r\n\t\tbits_hi = (long) v5;\r\n\t\tbits_mid = (((long) v4) << VERTEX_BIT_SZ) | ((long) v3);\r\n\t\tbits_lo = (((long) v2) << VERTEX_BIT_SZ) | ((long) v1);\r\n\t}\r\n\tPacked6Simplex(int v1, int v2, int v3, int v4, int v5, int v6) {\r\n\t\tassert((v6 > v5) && (v5 > v4) && (v4 > v3) && \r\n\t\t\t\t(v3 > v2) && (v2 > v1) && (v1 > 0));\r\n\t\tbits_hi = (((long) v6) << VERTEX_BIT_SZ) | ((long) v5);\r\n\t\tbits_mid = (((long) v4) << VERTEX_BIT_SZ) | ((long) v3);\r\n\t\tbits_lo = (((long) v2) << VERTEX_BIT_SZ) | ((long) v1);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Overrides Object hashcode.\r\n\t *\r\n\t * <p>\r\n\t * @return     CRC hash of the vertex set.\r\n\t *\r\n\t */\r\n\tpublic int hashCode() {\r\n\t\treturn CRC.hash32(bits_hi, CRC.hash32(bits_mid, CRC.hash32(bits_lo, 0)));\r\n\t}\r\n\r\n\t/**\r\n\t * Overrides Object equals.\r\n\t *\r\n\t * <p>\r\n\t * @param      obj   object to compare.\r\n\t * @return true or false, depending on whether or not the Simplex is =\r\n\t *                        to obj.\r\n\t *\r\n\t */\r\n\tpublic boolean equals(Object obj) {\r\n\t\tif (!(obj instanceof Packed6Simplex))\r\n\t\t\treturn false;\r\n\t\tPacked6Simplex s = (Packed6Simplex) obj;\r\n\t\treturn ((bits_lo == s.bits_lo) && (bits_mid == s.bits_mid) && (bits_hi == s.bits_hi));\r\n\t}\r\n\r\n\t// Internal comparison routine.\r\n\tprotected int compareTo(Packed6Simplex s) {\r\n\t\tif (bits_hi > s.bits_hi)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_hi < s.bits_hi)\r\n\t\t\treturn -1;\r\n\t\telse if (bits_mid > s.bits_mid)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_mid < s.bits_mid)\r\n\t\t\treturn -1;\r\n\t\telse if (bits_lo > s.bits_lo)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_lo < s.bits_lo)\r\n\t\t\treturn -1;\r\n\t\telse\r\n\t\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Implements Comparable interface.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     negative, 0, or positive, if this <, =, resp. > than s.\r\n\t *\r\n\t */\r\n\tpublic int compareTo(Simplex s) {\r\n\t\tif (!(s instanceof Packed6Simplex))\r\n\t\t\treturn (this.dimension() - s.dimension());\r\n\t\telse \r\n\t\t\treturn this.compareTo((Packed6Simplex)s);\r\n\t}\r\n\r\n\t/**\r\n\t * Simplex Less Than. Used internally in Persistence and Chain\r\n\t * code. Not the same as compareTo.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true if this < s, else false.\r\n\t *\r\n\t */\r\n\tboolean slt(Simplex s) {\r\n\t\tif (this.findex() != s.findex())\r\n\t\t\treturn (this.findex() < s.findex());\r\n\t\telse if (s instanceof Packed6Simplex) {\r\n\t\t\tPacked6Simplex ps = (Packed6Simplex) s;\r\n\t\t\tif (bits_hi < ps.bits_hi)\r\n\t\t\t\treturn true;\r\n\t\t\telse if (bits_hi == ps.bits_hi) {\r\n\t\t\t\tif (bits_mid < ps.bits_mid)\r\n\t\t\t\t\treturn true;\r\n\t\t\t\telse if (bits_mid == ps.bits_mid)\r\n\t\t\t\t\treturn (bits_lo < ps.bits_lo);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t} else \r\n\t\t\treturn (this.dimension() < s.dimension());\r\n\t}\r\n\r\n\t/**\r\n\t * Simplex EQuals. Used internally in Persistence and Chain code.  \r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true is equal, else false.\r\n\t *\r\n\t */\r\n\tboolean seq(Simplex s) {\r\n\t\tif (!(s instanceof Packed6Simplex))\r\n\t\t\treturn false;\r\n\t\tPacked6Simplex ps = (Packed6Simplex) s;\r\n\t\treturn ((bits_lo == ps.bits_lo) && (bits_mid == ps.bits_mid) && (bits_hi == ps.bits_hi));\r\n\t}\r\n\r\n\t/**\r\n\t * Make a \"blank\" copy of the Simplex -- equivalent to getSimplex(this.vertices()).\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the copied instance.\r\n\t *\r\n\t */    \r\n\tpublic Simplex copy() {\r\n\t\treturn new Packed6Simplex(bits_lo, bits_mid, bits_hi);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the dimension of self.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     int, the dimension of the simplex.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#dimension\r\n\t */    \r\n\tpublic int dimension() { \r\n\t\tif ((bits_hi & DIM_4_MASK) == 0) \r\n\t\t\treturn 4;\r\n\t\telse\r\n\t\t\treturn 5;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the indices of self as an array.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     an int[] of vertices, or null if no vertices.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */    \r\n\tpublic int[] vertices() { \r\n\t\tint dimension = dimension();\r\n\t\tint verts[] = new int[dimension+1];\r\n\r\n\t\tverts[0] = this.v1();\r\n\t\tverts[1] = this.v2();\r\n\t\tverts[2] = this.v3();\r\n\t\tverts[3] = this.v4();\r\n\r\n\t\tif (dimension == 4) {\r\n\t\t\tverts[4] = this.v5();\r\n\t\t\treturn verts;\r\n\t\t}\r\n\r\n\t\tverts[4] = this.v5();\r\n\t\tverts[5] = this.v6();\r\n\t\treturn verts;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the indices of self in the given array argument.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @param      verts   the int[] into which the vertices, if any, are written.\r\n\t * @return     the given array argument, or null if no vertices.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */\r\n\tpublic int[] vertices(int[] verts) { \r\n\t\tint dimension = dimension();\r\n\r\n\t\tverts[0] = this.v1();\r\n\t\tverts[1] = this.v2();\r\n\t\tverts[2] = this.v3();\r\n\t\tverts[3] = this.v4();\r\n\r\n\t\tif (dimension == 4) {\r\n\t\t\tverts[4] = this.v5();\r\n\t\t\treturn verts;\r\n\t\t}\r\n\r\n\t\tverts[4] = this.v5();\r\n\t\tverts[5] = this.v6();\r\n\t\treturn verts;\r\n\t}\r\n\r\n\t// The obvious thing.\r\n\tpublic static Simplex makeSimplex(int[] vertices) {\r\n\t\tSimplex.vertex_sort(vertices);\r\n\t\tassert_6_vertices(vertices);\r\n\t\treturn new Packed6Simplex(p6_v_to_l_lo(vertices), \r\n\t\t\t\tp6_v_to_l_mid(vertices), \r\n\t\t\t\tp6_v_to_l_hi(vertices));\r\n\t}\r\n\r\n\t// The other obvious thing.\r\n\tpublic static Simplex makeSimplexPresorted(int[] vertices) {\r\n\t\tassert_6_vertices(vertices);\r\n\t\treturn new Packed6Simplex(p6_v_to_l_lo(vertices), \r\n\t\t\t\tp6_v_to_l_mid(vertices), \r\n\t\t\t\tp6_v_to_l_hi(vertices));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the boundary of self.  \r\n\t *\r\n\t * <p> It is simple enough to do explicitly, and it needs to be fast.\r\n\t *\r\n\t *\r\n\t * @return     [face0, face1, ...]\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */\r\n\tpublic Simplex[] boundaryArray() {\r\n\t\tint dimension = dimension();\r\n\t\tSimplex[] return_value = new Simplex[dimension+1];\r\n\r\n\t\tif (dimension == 4) {\r\n\t\t\treturn_value[0] = new Packed4Simplex(this.v2(), this.v3(), \r\n\t\t\t\t\tthis.v4(), this.v5());\r\n\t\t\treturn_value[1] = new Packed4Simplex(this.v1(), this.v3(), \r\n\t\t\t\t\tthis.v4(), this.v5());\r\n\t\t\treturn_value[2] = new Packed4Simplex(this.v1(), this.v2(), \r\n\t\t\t\t\tthis.v4(), this.v5());\r\n\t\t\treturn_value[3] = new Packed4Simplex(this.v1(), this.v2(), \r\n\t\t\t\t\tthis.v3(), this.v5());\r\n\t\t\treturn_value[4] = new Packed4Simplex(this.v1(), this.v2(), \r\n\t\t\t\t\tthis.v3(), this.v4());\r\n\t\t} else {\r\n\t\t\treturn_value[0] = new Packed6Simplex(this.v2(), this.v3(), this.v4(), \r\n\t\t\t\t\tthis.v5(), this.v6());\r\n\t\t\treturn_value[1] = new Packed6Simplex(this.v1(), this.v3(), this.v4(), \r\n\t\t\t\t\tthis.v5(), this.v6());\r\n\t\t\treturn_value[2] = new Packed6Simplex(this.v1(), this.v2(), this.v4(), \r\n\t\t\t\t\tthis.v5(), this.v6());\r\n\t\t\treturn_value[3] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\tthis.v5(), this.v6());\r\n\t\t\treturn_value[4] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\tthis.v4(), this.v6());\r\n\t\t\treturn_value[5] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\tthis.v4(), this.v5());\r\n\t\t} \r\n\t\treturn return_value;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Packed8Simplex.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * <p>The <code>Packed8Simplex</code> class implements the abstract class\r\n * <code>Simplex</code> for Simplices of dimension 6-7 by storing the\r\n * vertices as 8 packed positive integer values in three long\r\n * integers. This limits us to H6 calculations with this representation,\r\n * but it seems very unlikely that we can go even this far an alteration of\r\n * the basic algorithm.\r\n *\r\n * @version $Id$\r\n */\r\npublic class Packed8Simplex extends Simplex {\r\n\r\n\tpublic final long bits_lo;\r\n\tpublic final long bits_lo_mid;\r\n\tpublic final long bits_hi_mid;\r\n\tpublic final long bits_hi;\r\n\r\n\t// This is the largest vertex index that we can use for this kind of\r\n\t// Simplex.\r\n\tprotected static int VERTEX_BIT_SZ = 32;\r\n\tprotected static int MAX_8_INDEX = Integer.MAX_VALUE;\r\n\tprotected static long DIM_6_MASK = ~((long) MAX_8_INDEX);\r\n\r\n\tstatic boolean checkConstants() {\r\n\t\tassert(MAX_8_INDEX == 0x7fffffff);\r\n\t\tassert(DIM_6_MASK == 0xffffffff80000000L);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tprotected static boolean check_8_vertices(int[] v) {\r\n\t\tif (v.length <= 6)\r\n\t\t\treturn false;\r\n\t\telse if ((v.length == 7) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) &&\r\n\t\t\t\t(v[3] > v[2]) && (v[4] > v[3]) && (v[5] > v[4]) && (v[6] > v[5]))\r\n\t\t\treturn true;\r\n\t\telse if ((v.length == 8) && (v[0] > 0) && (v[1] > v[0]) && (v[2] > v[1]) &&\r\n\t\t\t\t(v[3] > v[2]) && (v[4] > v[3]) && (v[5] > v[4]) && (v[6] > v[5]) && \r\n\t\t\t\t(v[7] > v[6]))\r\n\t\t\treturn true;\r\n\t\telse\r\n\t\t\treturn false;\r\n\t}\r\n\r\n\tprotected static void assert_8_vertices(int[] v) {\r\n\t\tif (!check_8_vertices(v))\r\n\t\t\tthrow new \r\n\t\t\tIllegalArgumentException\r\n\t\t\t(\"Packed8Simplex instances must have either 7 or 8 \" + \r\n\t\t\t\"distinct positive integer vertices.\");\r\n\t}\r\n\r\n\t// Convert an array of vertices into the \"bits_lo\" of a\r\n\t// Packed8Simplex. Vertices MUST BE SORTED.\r\n\tprotected static long p8_v_to_l_lo(int[] vertices) {\r\n\t\treturn (((long)vertices[1]) << VERTEX_BIT_SZ) | ((long)vertices[0]);\r\n\t}\r\n\r\n\t// Convert an array of vertices into the \"bits_lo_mid\" of a\r\n\t// Packed8Simplex. Vertices MUST BE SORTED.\r\n\tprotected static long p8_v_to_l_lo_mid(int[] vertices) {\r\n\t\treturn (((long)vertices[3]) << VERTEX_BIT_SZ) | ((long)vertices[2]);\r\n\t}\r\n\r\n\t// Convert an array of vertices into the \"bits_hi_mid\" of a\r\n\t// Packed8Simplex. Vertices MUST BE SORTED.\r\n\tprotected static long p8_v_to_l_hi_mid(int[] vertices) {\r\n\t\treturn (((long)vertices[5]) << VERTEX_BIT_SZ) | ((long)vertices[4]);\r\n\t}\r\n\r\n\t// Convert an array of vertices into the \"bits_hi\" of a\r\n\t// Packed8Simplex. Vertices MUST BE SORTED.\r\n\tprotected static long p8_v_to_l_hi(int[] vertices) {\r\n\t\tif (vertices.length == 7)\r\n\t\t\treturn (long) vertices[6];\r\n\t\telse \r\n\t\t\treturn (((long)vertices[7]) << VERTEX_BIT_SZ) | ((long)vertices[6]);\r\n\t}\r\n\r\n\t// Extract largest vertex.\r\n\tprotected int v8() {\r\n\t\treturn (int) ((bits_hi >>> VERTEX_BIT_SZ) & MAX_8_INDEX);\r\n\t}\r\n\r\n\t// Extract 5th vertex (second hi bits vertex).\r\n\tprotected int v7() {\r\n\t\treturn (int) (bits_hi & MAX_8_INDEX);\r\n\t}\r\n\r\n\t// Extract largest vertex.\r\n\tprotected int v6() {\r\n\t\treturn (int) ((bits_hi_mid >>> VERTEX_BIT_SZ) & MAX_8_INDEX);\r\n\t}\r\n\r\n\t// Extract 5th vertex (second hi bits vertex).\r\n\tprotected int v5() {\r\n\t\treturn (int) (bits_hi_mid & MAX_8_INDEX);\r\n\t}\r\n\r\n\t// Extract 4th vertex.\r\n\tprotected int v4() {\r\n\t\treturn (int) ((bits_lo_mid >>> VERTEX_BIT_SZ) & MAX_8_INDEX);\r\n\t}\r\n\r\n\t// Extract 3rd vertex.\r\n\tprotected int v3() {\r\n\t\treturn (int) (bits_lo_mid & MAX_8_INDEX);\r\n\t}\r\n\r\n\t// Extract 2nd vertex.\r\n\tprotected int v2() {\r\n\t\treturn (int) ((bits_lo >>> VERTEX_BIT_SZ) & MAX_8_INDEX);\r\n\t}\r\n\r\n\t// Extract smallest vertex.\r\n\tprotected int v1() {\r\n\t\treturn (int) (bits_lo & MAX_8_INDEX);\r\n\t}\r\n\r\n\t// We only use the constructors for Packed8Simplex internally. This one\r\n\t// is never used externally because none of bits_lo, bits_mid, or bits_hi\r\n\t// is ever 0.\r\n\tprotected Packed8Simplex() {\r\n\t\tbits_lo = 0;\r\n\t\tbits_lo_mid = 0;\r\n\t\tbits_hi_mid = 0;\r\n\t\tbits_hi = 0;\r\n\t}\r\n\r\n\t// We only use the constructors for Packed8Simplex internally. \r\n\tprotected Packed8Simplex(long bits_lo_val, long bits_lo_mid_val,\r\n\t\t\tlong bits_hi_mid_val, long bits_hi_val) {\r\n\t\tbits_lo = bits_lo_val;\r\n\t\tbits_lo_mid = bits_lo_mid_val;\r\n\t\tbits_hi_mid = bits_hi_mid_val;\r\n\t\tbits_hi = bits_hi_val;\r\n\t}\r\n\r\n\t// In the explicit constructors, the indices must all be non-zero and\r\n\t// be in increasing order.\r\n\tprotected Packed8Simplex(int v1, int v2, int v3, int v4, int v5, int v6, \r\n\t\t\tint v7) {\r\n\t\tassert((v7 > v6) && (v6 > v5) && (v5 > v4) && (v4 > v3) && \r\n\t\t\t\t(v3 > v2) && (v2 > v1) && (v1 > 0));\r\n\t\tbits_hi = (long) v7;\r\n\t\tbits_hi_mid = (((long) v6) << VERTEX_BIT_SZ) | ((long) v5);\r\n\t\tbits_lo_mid = (((long) v4) << VERTEX_BIT_SZ) | ((long) v3);\r\n\t\tbits_lo = (((long) v2) << VERTEX_BIT_SZ) | ((long) v1);\r\n\t}\r\n\tprotected Packed8Simplex(int v1, int v2, int v3, int v4, int v5, int v6, \r\n\t\t\tint v7, int v8) {\r\n\t\tassert((v8 > v7) && (v7 > v6) && (v6 > v5) && (v5 > v4) && \r\n\t\t\t\t(v4 > v3) && (v3 > v2) && (v2 > v1) && (v1 > 0));\r\n\t\tbits_hi = (((long) v8) << VERTEX_BIT_SZ) | ((long) v7);\r\n\t\tbits_hi_mid = (((long) v6) << VERTEX_BIT_SZ) | ((long) v5);\r\n\t\tbits_lo_mid = (((long) v4) << VERTEX_BIT_SZ) | ((long) v3);\r\n\t\tbits_lo = (((long) v2) << VERTEX_BIT_SZ) | ((long) v1);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Overrides Object hashcode.\r\n\t *\r\n\t * <p>\r\n\t * @return     CRC hash of the vertex set.\r\n\t *\r\n\t */\r\n\tpublic int hashCode() {\r\n\t\treturn CRC.hash32(bits_hi, \r\n\t\t\t\tCRC.hash32(bits_hi_mid, \r\n\t\t\t\t\t\tCRC.hash32(bits_lo_mid, \r\n\t\t\t\t\t\t\t\tCRC.hash32(bits_lo, 0))));\r\n\t}\r\n\r\n\t/**\r\n\t * Overrides Object equals.\r\n\t *\r\n\t * <p>\r\n\t * @param      obj   object to compare.\r\n\t * @return true or false, depending on whether or not the Simplex is =\r\n\t *                        to obj.\r\n\t *\r\n\t */\r\n\tpublic boolean equals(Object obj) {\r\n\t\tif (!(obj instanceof Packed8Simplex))\r\n\t\t\treturn false;\r\n\t\tPacked8Simplex s = (Packed8Simplex) obj;\r\n\t\treturn ((bits_lo == s.bits_lo) && (bits_lo_mid == s.bits_lo_mid) && \r\n\t\t\t\t(bits_hi_mid == s.bits_hi_mid) && (bits_hi == s.bits_hi));\r\n\t}\r\n\r\n\t// Internal comparison routine.\r\n\tprotected int compareTo(Packed8Simplex s) {\r\n\t\tif (bits_hi > s.bits_hi)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_hi < s.bits_hi)\r\n\t\t\treturn -1;\r\n\t\telse if (bits_hi_mid > s.bits_hi_mid)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_hi_mid < s.bits_hi_mid)\r\n\t\t\treturn -1;\r\n\t\telse if (bits_lo_mid > s.bits_lo_mid)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_lo_mid < s.bits_lo_mid)\r\n\t\t\treturn -1;\r\n\t\telse if (bits_lo > s.bits_lo)\r\n\t\t\treturn 1;\r\n\t\telse if (bits_lo < s.bits_lo)\r\n\t\t\treturn -1;\r\n\t\telse\r\n\t\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Implements Comparable interface.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     negative, 0, or positive, if this <, =, resp. > than s.\r\n\t *\r\n\t */\r\n\tpublic int compareTo(Simplex s) {\r\n\t\t// The Packed8Simplex instances are of larger dimension than any\r\n\t\t// other kind of Simplex, so if s is a Simplex but not a\r\n\t\t// Packed8Simplex, then this > s.\r\n\t\tif (!(s instanceof Packed8Simplex))\r\n\t\t\treturn 1;\r\n\t\telse \r\n\t\t\treturn this.compareTo((Packed8Simplex)s);\r\n\t}\r\n\r\n\t/**\r\n\t * Simplex Less Than. Used internally in Persistence and Chain\r\n\t * code. Not the same as compareTo.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true if this < s, else false.\r\n\t *\r\n\t */\r\n\tboolean slt(Simplex s) {\r\n\t\tif (this.findex() != s.findex())\r\n\t\t\treturn (this.findex() < s.findex());\r\n\t\telse if (s instanceof Packed8Simplex) {\r\n\t\t\tPacked8Simplex ps = (Packed8Simplex) s;\r\n\t\t\tif (bits_hi < ps.bits_hi)\r\n\t\t\t\treturn true;\r\n\t\t\telse if (bits_hi == ps.bits_hi) {\r\n\t\t\t\tif (bits_hi_mid < ps.bits_hi_mid)\r\n\t\t\t\t\treturn true;\r\n\t\t\t\telse if (bits_hi_mid == ps.bits_hi_mid) {\r\n\t\t\t\t\tif (bits_lo_mid < ps.bits_lo_mid)\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\telse if (bits_lo_mid == ps.bits_lo_mid)\r\n\t\t\t\t\t\treturn (bits_lo < ps.bits_lo);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t} else \r\n\t\t\t\t\treturn false;\r\n\t\t\t} else\r\n\t\t\t\treturn false;\r\n\t\t} else \r\n\t\t\treturn (this.dimension() < s.dimension());\r\n\t}\r\n\r\n\t/**\r\n\t * Simplex EQuals. Used internally in Persistence and Chain code.  \r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true is equal, else false.\r\n\t *\r\n\t */\r\n\tboolean seq(Simplex s) {\r\n\t\tif (!(s instanceof Packed8Simplex))\r\n\t\t\treturn false;\r\n\t\tPacked8Simplex ps = (Packed8Simplex) s;\r\n\t\treturn ((bits_lo == ps.bits_lo) && (bits_lo_mid == ps.bits_lo_mid) && \r\n\t\t\t\t(bits_hi_mid == ps.bits_hi_mid) && (bits_hi == ps.bits_hi));\r\n\t}\r\n\r\n\t/**\r\n\t * Make a \"blank\" copy of the Simplex -- equivalent to getSimplex(this.vertices()).\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the copied instance.\r\n\t *\r\n\t */    \r\n\tpublic Simplex copy() {\r\n\t\treturn new Packed8Simplex(bits_lo, bits_lo_mid, bits_hi_mid, bits_hi);\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the dimension of self.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     int, the dimension of the simplex.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#dimension\r\n\t */    \r\n\tpublic int dimension() { \r\n\t\tif ((bits_hi & DIM_6_MASK) == 0) \r\n\t\t\treturn 6;\r\n\t\telse\r\n\t\t\treturn 7;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the indices of self as an array.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     an int[] of vertices, or null if no vertices.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */    \r\n\tpublic int[] vertices() { \r\n\t\tint dimension = dimension();\r\n\t\tint verts[] = new int[dimension+1];\r\n\r\n\t\tverts[0] = this.v1();\r\n\t\tverts[1] = this.v2();\r\n\t\tverts[2] = this.v3();\r\n\t\tverts[3] = this.v4();\r\n\t\tverts[4] = this.v5();\r\n\t\tverts[5] = this.v6();\r\n\r\n\r\n\t\tif (dimension == 6) {\r\n\t\t\tverts[6] = this.v7();\r\n\t\t\treturn verts;\r\n\t\t}\r\n\r\n\t\tverts[6] = this.v7();\r\n\t\tverts[7] = this.v8();\r\n\t\treturn verts;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the indices of self in the given array argument.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @param      verts   the int[] into which the vertices, if any, are written.\r\n\t * @return     the given array argument, or null if no vertices.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */\r\n\tpublic int[] vertices(int[] verts) { \r\n\t\tint dimension = dimension();\r\n\r\n\t\tverts[0] = this.v1();\r\n\t\tverts[1] = this.v2();\r\n\t\tverts[2] = this.v3();\r\n\t\tverts[3] = this.v4();\r\n\t\tverts[4] = this.v5();\r\n\t\tverts[5] = this.v6();\r\n\r\n\t\tif (dimension == 6) {\r\n\t\t\tverts[6] = this.v7();\r\n\t\t\treturn verts;\r\n\t\t}\r\n\r\n\t\tverts[6] = this.v7();\r\n\t\tverts[7] = this.v8();\r\n\t\treturn verts;\r\n\t}\r\n\r\n\t// The obvious thing.\r\n\tpublic static Simplex makeSimplex(int[] vertices) {\r\n\t\tSimplex.vertex_sort(vertices);\r\n\t\tassert_8_vertices(vertices);\r\n\t\treturn new Packed8Simplex(p8_v_to_l_lo(vertices), \r\n\t\t\t\tp8_v_to_l_lo_mid(vertices), \r\n\t\t\t\tp8_v_to_l_hi_mid(vertices), \r\n\t\t\t\tp8_v_to_l_hi(vertices));\r\n\t}\r\n\r\n\t// The other obvious thing.\r\n\tpublic static Simplex makeSimplexPresorted(int[] vertices) {\r\n\t\tassert_8_vertices(vertices);\r\n\t\treturn new Packed8Simplex(p8_v_to_l_lo(vertices), \r\n\t\t\t\tp8_v_to_l_lo_mid(vertices), \r\n\t\t\t\tp8_v_to_l_hi_mid(vertices), \r\n\t\t\t\tp8_v_to_l_hi(vertices));\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the boundary of self.  \r\n\t *\r\n\t * <p> It is simple enough to do explicitly, and it needs to be fast.\r\n\t *\r\n\t *\r\n\t * @return     [face0, face1, ...]\r\n\t *\r\n\t * @see        edu.stanford.math.plex.Simplex#vertices\r\n\t */\r\n\tpublic Simplex[] boundaryArray() {\r\n\t\tint dimension = dimension();\r\n\t\tSimplex[] return_value = new Simplex[dimension+1];\r\n\r\n\t\tif (dimension == 6) {\r\n\t\t\treturn_value[0] = new Packed6Simplex(this.v2(), this.v3(), this.v4(), \r\n\t\t\t\t\tthis.v5(), this.v6(), this.v7());\r\n\t\t\treturn_value[1] = new Packed6Simplex(this.v1(), this.v3(), this.v4(), \r\n\t\t\t\t\tthis.v5(), this.v6(), this.v7());\r\n\t\t\treturn_value[2] = new Packed6Simplex(this.v1(), this.v2(), this.v4(), \r\n\t\t\t\t\tthis.v5(), this.v6(), this.v7());\r\n\t\t\treturn_value[3] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\tthis.v5(), this.v6(), this.v7());\r\n\t\t\treturn_value[4] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\tthis.v4(), this.v6(), this.v7());\r\n\t\t\treturn_value[5] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\tthis.v4(), this.v5(), this.v7());\r\n\t\t\treturn_value[6] = new Packed6Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\tthis.v4(), this.v5(), this.v6());\r\n\t\t} else {\r\n\t\t\treturn_value[0] = \r\n\t\t\t\tnew Packed8Simplex(this.v2(), this.v3(), this.v4(), \r\n\t\t\t\t\t\tthis.v5(), this.v6(), this.v7(), this.v8());\r\n\t\t\treturn_value[1] = \r\n\t\t\t\tnew Packed8Simplex(this.v1(), this.v3(), this.v4(), \r\n\t\t\t\t\t\tthis.v5(), this.v6(), this.v7(), this.v8());\r\n\t\t\treturn_value[2] = \r\n\t\t\t\tnew Packed8Simplex(this.v1(), this.v2(), this.v4(), \r\n\t\t\t\t\t\tthis.v5(), this.v6(), this.v7(), this.v8());\r\n\t\t\treturn_value[3] = \r\n\t\t\t\tnew Packed8Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\t\tthis.v5(), this.v6(), this.v7(), this.v8());\r\n\t\t\treturn_value[4] = \r\n\t\t\t\tnew Packed8Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\t\tthis.v4(), this.v6(), this.v7(), this.v8());\r\n\t\t\treturn_value[5] = \r\n\t\t\t\tnew Packed8Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\t\tthis.v4(), this.v5(), this.v7(), this.v8());\r\n\t\t\treturn_value[6] = \r\n\t\t\t\tnew Packed8Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\t\tthis.v4(), this.v5(), this.v6(), this.v8());\r\n\t\t\treturn_value[7] = \r\n\t\t\t\tnew Packed8Simplex(this.v1(), this.v2(), this.v3(), \r\n\t\t\t\t\t\tthis.v4(), this.v5(), this.v6(), this.v7());\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Persistence.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.Arrays;\r\nimport java.util.Iterator;\r\n\r\n/**\r\n * The <code>Persistence</code> class class implements the algorithm of\r\n * Zomorodian and Carlsson for computing the persistent homology groups\r\n * with coefficients in a finite field. The details of this are too complex\r\n * to explain here. See A. Zomorodian and G. Carlsson, \"Computing\r\n * persistent homology,\" <i>Discrete and Computational Geometry</i>, 33\r\n * (2), pp. 247-274.\r\n *\r\n *<p>\r\n *\r\n * The algorithm needs to be extended to return useful basis elements for\r\n * the homology, and do cohomology calculations. And a really big, open\r\n * question is how to do the same sort of calculation when using some\r\n * representation (possibly simplicial sets) that will scale better at the\r\n * persistence parameter increases.\r\n *\r\n * @version $Id$\r\n */\r\npublic class Persistence {\r\n\r\n\t// The characteristic of the coefficient field currently in\r\n\t// use. Default is 11 (for no particular reason).\r\n\tprivate static int p = 11;\r\n\r\n\t// The multiplicative inverses for the coefficient field currently in use.\r\n\t// Again, the default is for the field Z11.\r\n\tprivate static int[] pInverses = multiplicative_inverses(p);\r\n\r\n\t/**\r\n\t * What is modulus of the coefficient field?\r\n\t */    \r\n\tpublic static int baseModulus() {\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Set or reset the coefficient field.\r\n\t * @param      modulus   Must be a prime in [2,255].\r\n\t * @exception  IllegalArgumentException \r\n\t */    \r\n\tpublic static void setBaseModulus(int modulus) {\r\n\t\tif ((modulus <= 1) || (modulus >= 256))\r\n\t\t\tthrow new IllegalArgumentException(modulus + \" is not in [2, 255].\");\r\n\t\tp = modulus;\r\n\t\tpInverses = multiplicative_inverses(modulus);\r\n\t}\r\n\r\n\t// Compute the multiplicative inverses for elements of Zp.\r\n\tprivate static int[] multiplicative_inverses(int p) {\r\n\t\tint[] return_value = new int[p];\r\n\t\tfor (int i = 1; i < p; i++) {\r\n\t\t\tint inverse = 0;\r\n\t\t\tfor (int j = 1; j < p; j++) {\r\n\t\t\t\tif (((j * i) % p) == 1) {\r\n\t\t\t\t\tinverse = j;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (inverse == 0) \r\n\t\t\t\tthrow new IllegalArgumentException(p + \" is not a prime.\"); \r\n\r\n\t\t\treturn_value[i] = inverse;\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t/**\r\n\t * Table in which to intern the simplices that form a basis for the cycle space.\r\n\t */    \r\n\tSimplexTable marked;\r\n\r\n\t// Remove pivot rows from the boundary of\r\n\tprivate Chain removePivotRows(Simplex sigma) {\r\n\t\tSimplex[] b = sigma.boundaryArray();\r\n\r\n\t\tif (b == null)\r\n\t\t\treturn null;\r\n\r\n\t\tfor (int i = 0; i < b.length; i++)\r\n\t\t\t// If the entry isn't marked, we clear it, and if the entry is\r\n\t\t\t// marked, we replace it with the Simplex that came from the\r\n\t\t\t// stream, which has the findex properly set. This means that\r\n\t\t\t// we don't have to recompute or find the filtration indices\r\n\t\t\t// for the faces, and all of the simplices created by the\r\n\t\t\t// boundary() method die immediately.\r\n\t\t\tb[i] = marked.get(b[i]);\r\n\r\n\t\tChain d = Chain.fromBoundary(b,p);\r\n\r\n\t\twhile (!d.equals(Chain.zero(p))) {\r\n\t\t\tSimplex d_max = d.maxS();\r\n\t\t\tChain t_i = d_max.chain();\r\n\r\n\t\t\tif (t_i == null)\r\n\t\t\t\treturn d;\r\n\t\t\telse {\r\n\t\t\t\tint minus_q_inv = p - pInverses[t_i.maxC()];\r\n\t\t\t\t// NOTE: If we add support for fields other then Zp, we should\r\n\t\t\t\t// change this line to be a method that returns\r\n\t\t\t\t// -(d.maxC()/t_i.maxC()). Also, we'll have to change the Chain\r\n\t\t\t\t// code that does addition.\r\n\t\t\t\tint c = (d.maxC() * minus_q_inv) % p; \r\n\t\t\t\td = d.add(t_i, c);\r\n\t\t\t}\r\n\t\t}   \r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Return the dimension of the cycle space.\r\n\t * <p>\r\n\t *\r\n\t * This function is for performance tuning and pandering to aimless curiosity.\r\n\t * <p>\r\n\t *\r\n\t * @return number of basis cycles.\r\n\t *\r\n\t */\r\n\tpublic int cycleSpaceDimension() {\r\n\t\treturn marked.size();\r\n\t}\r\n\r\n\t/**\r\n\t * Calculate the persistent homology.\r\n\t * <p>\r\n\t *\r\n\t * @param      stream   generates simplices in persistence/dimension order.\r\n\t * @return     PersistenceInterval.Float[] instances describing the\r\n\t * homology.\r\n\t */\r\n\tpublic PersistenceInterval.Float[] computeIntervals(SimplexStream stream) {\r\n\t\treturn computeIntervals(stream, true, p);\r\n\t}\r\n\r\n\t/**\r\n\t * Calculate the persistent homology with a specified Zp.\r\n\t * <p>\r\n\t *\r\n\t * @param      stream   generates simplices in persistence/dimension order.\r\n\t * @param      preserveStream If true, don't deplete the stream.\r\n\t * @param      prime   Set the base field to be Z/prime.\r\n\t * @return     PersistenceInterval.Float[] instances describing the\r\n\t * homology.\r\n\t */\r\n\tpublic PersistenceInterval.Float[] computeIntervals(SimplexStream stream, \r\n\t\t\tboolean preserveStream,\r\n\t\t\tint prime) {\r\n\t\tPersistenceInterval[] raw = computeRawIntervals(stream, preserveStream, prime);\r\n\t\tPersistenceInterval.Float[] return_value = \r\n\t\t\tnew PersistenceInterval.Float[raw.length];\r\n\t\tint counter = 0;\r\n\t\tfor(PersistenceInterval pi : raw) \r\n\t\t\treturn_value[counter++] = stream.convertInterval(pi);\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Calculate the raw persistent intervals for a stream, using a specified Zp.\r\n\t * This method will probably be used only by internal tests.\r\n\t * <p>\r\n\t *\r\n\t * @param      stream   generates simplices in persistence/dimension order.\r\n\t * @param      preserveStream If true, don't deplete the stream.\r\n\t * @param      prime   Set the base field to be Z/prime.\r\n\t * @return     PersistenceInterval[] instances describing the\r\n\t * homology in terms of the raw filtration indices.\r\n\t */\r\n\tpublic PersistenceInterval[] computeRawIntervals (SimplexStream stream, \r\n\t\t\tboolean preserveStream,\r\n\t\t\tint prime) {\r\n\t\tIterator<Simplex> iterator = (preserveStream)?stream.iterator():stream;\r\n\r\n\t\t// when running with assertions, verify streams that aren't really big\r\n\t\tassert ((stream.size() < 10000000) && stream.verify());\r\n\r\n\t\tif(prime != p)\r\n\t\t\tsetBaseModulus(prime);\r\n\r\n\t\tmarked = new SimplexTable(stream.size());\r\n\t\tArrayList<PersistenceInterval> intervals = \r\n\t\t\tnew ArrayList<PersistenceInterval>();\r\n\t\twhile(iterator.hasNext()) {\r\n\t\t\tSimplex current = iterator.next();\r\n\t\t\t// Make sure that current.chain() is empty -- if we are consuming the\r\n\t\t\t// chain without having run an iterator, this must be so.\r\n\t\t\tcurrent.clearChain();\r\n\t\t\tChain d = removePivotRows(current);\r\n\t\t\tif (d == null) {\r\n\t\t\t\tmarked.put(current);\r\n\t\t\t} else {\r\n\t\t\t\tSimplex d_max = d.maxS();\r\n\t\t\t\tint k = d_max.dimension();\r\n\t\t\t\td_max.setChain(d);\r\n\t\t\t\tif (k < stream.maxDimension()) {\r\n\t\t\t\t\tif (d_max.findex() != current.findex()) {\r\n\t\t\t\t\t\t// leave out intervals that are created and destroyed \"simultaneously\"\r\n\t\t\t\t\t\tPersistenceInterval i = \r\n\t\t\t\t\t\t\tnew PersistenceInterval.Int(k, d_max.findex(), \r\n\t\t\t\t\t\t\t\t\tcurrent.findex());\r\n\t\t\t\t\t\tintervals.add(i);\r\n\t\t\t\t\t}\r\n\t\t\t\t} \r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor(Simplex sigma : marked) {\r\n\t\t\tif (sigma.chain() == null) {\r\n\t\t\t\tint k = sigma.dimension();\r\n\t\t\t\tif (k < stream.maxDimension()) {\r\n\t\t\t\t\tPersistenceInterval i = \r\n\t\t\t\t\t\tnew PersistenceInterval.Int(k, sigma.findex());\r\n\t\t\t\t\tintervals.add(i);\r\n\t\t\t\t} \r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t{\r\n\t\t\tPersistenceInterval[] return_value = \r\n\t\t\t\tnew PersistenceInterval[intervals.size()];\r\n\t\t\tint counter = 0;\r\n\t\t\tfor(PersistenceInterval pi : intervals) {\r\n\t\t\t\treturn_value[counter++] = pi;\r\n\t\t\t}\r\n\t\t\tArrays.sort(return_value);\r\n\t\t\treturn return_value;\r\n\t\t}\r\n\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/PersistenceBasis.java",
    "content": "package edu.stanford.math.plex;\n\nimport java.util.Arrays;\nimport java.util.Iterator;\nimport java.util.LinkedHashMap;\nimport java.util.LinkedList;\nimport java.util.List;\nimport java.util.ListIterator;\nimport java.util.Map;\nimport java.util.Vector;\n\n/** The class PersistenceBasis implements the Persistence algorithm by \n *  Carlsson-Zomorodian, with additional basis element tracking to make\n *  sure that afterwards, basis elements for the persistence intervals may\n *  be extracted.\n */\npublic class PersistenceBasis {\n\tprotected static int p = 11;\n\tprotected static int[] pInverses = multiplicative_inverses(p);\n\n\n\t/**\n\t * What is modulus of the coefficient field?\n\t */\n\tpublic static int baseModulus() {\n\t\treturn p;\n\t}\n\n\t/**\n\t * Set or reset the coefficient field.\n\t * @param      modulus   Must be a prime in [2,255].\n\t * @exception  IllegalArgumentException\n\t */\n\tpublic static void setBaseModulus(int modulus) {\n\t\tif ((modulus <= 1) || (modulus >= 256))\n\t\t\tthrow new IllegalArgumentException(modulus + \" is not in [2, 255].\");\n\t\tp = modulus;\n\t\tpInverses = multiplicative_inverses(modulus);\n\t}\n\n\t// Compute the multiplicative inverses for elements of Zp.\n\tprotected static int[] multiplicative_inverses(int p) {\n\t\tint[] return_value = new int[p];\n\t\tfor (int i = 1; i < p; i++) {\n\t\t\tint inverse = 0;\n\t\t\tfor (int j = 1; j < p; j++) {\n\t\t\t\tif (((j * i) % p) == 1) {\n\t\t\t\t\tinverse = j;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (inverse == 0)\n\t\t\t\tthrow new IllegalArgumentException(p + \" is not a prime.\");\n\n\t\t\treturn_value[i] = inverse;\n\t\t}\n\t\treturn return_value;\n\t}\n\n\t/** \n\t * Returns a boundary matrix for a given simple simplex stream in a format usable from Matlab.\n\t * <p>\n\t * @param stream SimpleSimplexStream providing the simplices\n\t * @param findex The filtration index at which to perform the computation\n\t * @param degree We want the boundary matrix taking simplices of dimension degree to simplices of dimension degree-1 \n\t */\n\n\tpublic static double[][] boundaryMatrix(SimplexStream stream, double findex, int degree) {\n\t\tboolean DEBUGGING = false;\n\t\tVector<Simplex> fromBasis = new Vector<Simplex>();\n\t\tVector<Simplex> toBasis = new Vector<Simplex>();\n\t\tIterator<Simplex> ss = stream.iterator(); // avoid consuming the entire stream\n\n\t\t// Construct a basis for the matrix.\n\t\twhile(ss.hasNext()) {\n\t\t\tSimplex s = ss.next();\n\t\t\tif(stream.convert_filtration_index(s.findex()) > findex)\n\t\t\t\tcontinue;\n\t\t\tif(DEBUGGING) System.out.printf(\"Considering %s\\n\", s);\n\t\t\tif(s.dimension() == degree) {\n\t\t\t\tfromBasis.add(s);\n\t\t\t\tif(DEBUGGING) System.out.println(\"\\tfromBasis\");\n\t\t\t} else if(s.dimension() == degree-1) {\n\t\t\t\ttoBasis.add(s);\n\t\t\t\tif(DEBUGGING) System.out.println(\"\\ttoBasis\");\n\t\t\t}\n\t\t}\n\n\t\tif(DEBUGGING) System.out.printf(\"# fromBasis:\\t%d\\t# toBasis:\\t%d\\n\", fromBasis.size(), toBasis.size());\n\n\t\tdouble[][] returnMatrix = new double[toBasis.size()][fromBasis.size()];\n\n\t\tfor(int i=0; i<fromBasis.size(); i++) { \n\t\t\tChain boundary = fromBasis.get(i).boundary(p); \n\t\t\tif(boundary == null) \n\t\t\t\tcontinue;\n\t\t\tfor(int j=0; j<toBasis.size(); j++) {\n\t\t\t\treturnMatrix[j][i] = boundary.rewriteModP(boundary.coefficientOf(toBasis.get(j)));\n\t\t\t} \n\t\t}\n\n\t\treturn returnMatrix;    \n\t}\n\n\t/** \n\t * Returns a sparse boundary matrix for a given simple simplex stream in a format usable from Matlab.\n\t * In the return format, a double[n][3] matrix is returned, with each row consisting of rowindex, columnindex and \n\t * value, so that the three sections may be fed into Matlab's sparse command.\n\t * <p>\n\t * @param stream SimpleSimplexStream providing the simplices\n\t * @param findex The filtration index at which to perform the computation\n\t * @param degree We want the boundary matrix taking simplices of dimension degree to simplices of dimension degree-1 \n\t */\t\n\tpublic static double[][] boundaryMatrixSparse(SimplexStream stream, double findex, int degree) {\n\t\tboolean DEBUGGING = false;\n\t\tVector<Simplex> fromBasis = new Vector<Simplex>();\n\t\tVector<Simplex> toBasis = new Vector<Simplex>();\n\t\tIterator<Simplex> ss = stream.iterator(); // avoid consuming the entire stream\n\n\t\t// Construct a basis for the matrix.\n\t\twhile(ss.hasNext()) {\n\t\t\tSimplex s = ss.next();\n\t\t\tif(stream.convert_filtration_index(s.findex()) > findex)\n\t\t\t\tcontinue;\n\t\t\tif(DEBUGGING) System.out.printf(\"Considering %s\\n\", s);\n\t\t\tif(s.dimension() == degree) {\n\t\t\t\tfromBasis.add(s);\n\t\t\t\tif(DEBUGGING) System.out.println(\"\\tfromBasis\");\n\t\t\t} else if(s.dimension() == degree-1) {\n\t\t\t\ttoBasis.add(s);\n\t\t\t\tif(DEBUGGING) System.out.println(\"\\ttoBasis\");\n\t\t\t}\n\t\t}\n\n\t\tif(DEBUGGING) System.out.printf(\"# fromBasis:\\t%d\\t# toBasis:\\t%d\\n\", fromBasis.size(), toBasis.size());\n\n\t\tVector<double[]> returnMatrix = new Vector<double[]>(stream.size()+1);\n\t\tdouble[] entry = new double[3];\n\t\tentry[0] = fromBasis.size()-1;\n\t\tentry[1] = toBasis.size()-1;\n\t\tentry[2] = 0;\n\t\treturnMatrix.add(entry);\n\t\tfor(int i=0; i<fromBasis.size(); i++) { \n\t\t\tChain boundary = fromBasis.get(i).boundary(p); \n\t\t\tif(boundary == null) \n\t\t\t\tcontinue;\n\t\t\tfor(int j=0; j<toBasis.size(); j++) {\n\t\t\t\tdouble coeff = boundary.rewriteModP(boundary.coefficientOf(toBasis.get(j)));\n\t\t\t\tif(coeff == 0) continue;\n\t\t\t\tentry = new double[3];\n\t\t\t\tentry[0] = i;\n\t\t\t\tentry[1] = j;\n\t\t\t\tentry[2] =  coeff;\n\t\t\t\treturnMatrix.add(entry);\n\t\t\t} \n\t\t}\n\n\t\tdouble[][] ret = new double[returnMatrix.size()][3];\n\t\tint i = 0;\n\t\tfor(double[] retEntry : returnMatrix) {\n\t\t\tfor(int j=0; j<3; j++)\n\t\t\t\tret[i][j] = retEntry[j];\n\t\t\ti++;\n\t\t}\n\n\t\treturn ret;\n\t}\n\n\tpublic static double[] chainVector(SimplexStream stream, Chain chain, double findex) {\n\t\tIterator<Simplex> ss = stream.iterator();\n\t\tint degree = chain.maxS().dimension();\n\t\t// Construct a basis\n\t\tVector<Simplex> basis = new Vector<Simplex>();\n\n\t\twhile(ss.hasNext()) {\n\t\t\tSimplex s = ss.next();\n\t\t\tif(stream.convert_filtration_index(s.findex()) > findex)\n\t\t\t\tbreak;\n\t\t\tif(s.dimension() == degree)\n\t\t\t\tbasis.add(s);\n\t\t}\n\n\t\t// Rewrite vector in this basis\n\n\t\tdouble[] returnVector = new double[basis.size()];\n\t\tfor(int i=0; i<basis.size(); i++) {\n\t\t\treturnVector[i] = chain.rewriteModP(chain.coefficientOf(basis.get(i)));\n\t\t}\n\t\treturn returnVector;\n\t}\n\n\tpublic static int[][] basis(SimplexStream stream, int degree, double findex) {\n\t\tIterator<Simplex> ss = stream.iterator();\n\t\t// Construct a basis\n\t\tVector<Simplex> basis = new Vector<Simplex>();\n\n\t\twhile(ss.hasNext()) {\n\t\t\tSimplex s = ss.next();\n\t\t\tif(stream.convert_filtration_index(s.findex()) > findex)\n\t\t\t\tbreak;\n\t\t\tif(s.dimension() == degree)\n\t\t\t\tbasis.add(s);\n\t\t}\n\n\t\tint[][] basisArray = new int[degree+1][basis.size()];\n\t\tfor(int i=0; i<basis.size(); i++) {\n\t\t\tint[] basisVertices = basis.get(i).vertices();\n\t\t\tfor(int j=0; j<=degree; j++) {\n\t\t\t\tbasisArray[j][i] = basisVertices[j];\n\t\t\t}\n\t\t}\n\t\treturn basisArray;\n\t}\n\n\t/**\n\t * Compute the persistent homology intervals of the simplex stream\n\t * given. This function is a wrapper to make the call easy with good \n\t * default behaviour.\n\t * <p>\n\t * @param sstream The simplex stream representing the filtered \n\t *                complex of which the homology is computed.\n\t * @return An array of type PersistenceBasisInterval carrying the\n\t *         relevant persistence intervals with basis elements.\n\t */\n\tpublic static PersistenceBasisInterval.Float[]\n\t                                             computeIntervals(SimplexStream sstream) {\n\t\tPersistenceBasis pb = new PersistenceBasis();\n\t\treturn pb.computeIntervals(sstream,11,false);\n\t}\n\n\t/**\n\t * Compute the persistent homology intervals of the simplex stream\n\t * given with an option flag to control which type of basis we want\n\t * to choose.\n\t * <p>\n\t * @param sstream The simplex stream representing the filtered\n\t *                complex of which the homology is computed.\n\t * @param retrofit If false, the basis element is guaranteed to \n\t *                 exist throughout the entire interval. If true, \n\t *                 the basis element of a finite interval will \n\t *                 correspond to the reduced boundary of the simplex\n\t *                 killing the interval.\n\t * @return An array of type PersistenceBasisInterval carrying the\n\t *          relevant persistence intervals with basis elements.\n\t */\n\tpublic static PersistenceBasisInterval.Float[]\n\t                                             computeIntervals(SimplexStream sstream, boolean retrofit) {\n\t\tPersistenceBasis pb = new PersistenceBasis();\n\t\treturn pb.computeIntervals(sstream,11,retrofit);\n\t}\n\n\t/**\n\t * Compute the persistent homology intervals of the simplex stream \n\t * given with explicitly given characteristic of the underlying field\n\t * as well as an option flag to control which type of basis we want to \n\t * choose.\n\t * <p>\n\t *\n\t * @param sstream The simplex stream representing the filtered\n\t *                complex of which the homology is computed.\n\t * @param prime The characteristic of the base field of the computation.\n\t * @param retrofit If false, the basis element is guaranteed to\n\t *                 exist throughout the entire interval. If true,\n\t *                 the basis element of a finite interval will\n\t *                 correspond to the reduced boundary of the simplex\n\t *                 killing the interval.\n\t * @return An array of type PersistenceBasisInterval carrying the\n\t *          relevant persistence intervals with basis elements.\n\t */\n\tpublic PersistenceBasisInterval.Float[] \n\t                                      computeIntervals(SimplexStream sstream, int prime, boolean retrofit) {\n\t\tPersistenceBasisInterval[] raw = computeRawIntervals(sstream, prime);\n\t\tVector<PersistenceBasisInterval.Float> preret = new Vector<PersistenceBasisInterval.Float>();\n\t\tfor(PersistenceBasisInterval pi : raw) {\n\t\t\tPersistenceBasisInterval.Float newInterval = sstream.convertInterval(pi);\n\t\t\tif(newInterval.end != newInterval.start)\n\t\t\t\tpreret.add(newInterval);\n\t\t}\n\t\tPersistenceBasisInterval.Float[] ret = \n\t\t\tnew PersistenceBasisInterval.Float[preret.size()];\n\t\tint counter = 0;\n\t\tfor(PersistenceBasisInterval.Float pi : preret)\n\t\t\tret[counter++] = pi;\n\t\treturn ret;\n\t}\n\n\t// Compute raw intervals - amalgamates the old computeIntervals and \n\t// removePivotRows\n\n\tprotected enum SimplexType {\n\t\tCHAIN, CYCLE, BOUNDARY\n\t}\n\tpublic PersistenceBasisInterval[]\n\t                                computeRawIntervals(SimplexStream sstream, int prime) {\n\t\tboolean DEBUGGING = false;\n\t\tif(prime != p)\n\t\t\tsetBaseModulus(prime);\n\n\t\t// Notice that the findex renumbering we are performing in order to guarantee that the\n\t\t// arithmetic works well means we can have constant time interactions for all the \n\t\t// simplex-to-something else tables.\n\t\tint nSpx = sstream.size();\n\t\tSimplex killer[] = new Simplex[nSpx];\n\t\tChain tadpole[] = new Chain[nSpx];\n\t\tChain preimage[] = new Chain[nSpx];\n\t\tSimplexType type[] = new SimplexType[nSpx];\n\t\tint localFindex[] = new int[nSpx];\n\n\t\tList<Simplex> simplices = new Vector<Simplex>();\n\t\tInteger currentFindex = 0;\n\t\tIterator<Simplex> iterator = sstream.iterator();\n\n\t\twhile(iterator.hasNext()) {\n\t\t\tSimplex nextSimplex = iterator.next();\n\t\t\tSimplex current = nextSimplex.copy();\n\t\t\tlocalFindex[currentFindex]=nextSimplex.findex();\n\t\t\tcurrent.setfindex(currentFindex);\n\t\t\tcurrentFindex++;\n\n\t\t\ttype[current.findex()] = SimplexType.CHAIN;\n\t\t\tsimplices.add(current);\n\n\t\t\tif(DEBUGGING) System.out.printf(\"%s\\n\",current);\n\n\t\t\tChain d = current.boundary(p);\n\t\t\td = d.filter(simplices);\n\t\t\tChain w = new Chain(p);\n\n\t\t\t// Reduce d modulo the boundaries\n\t\t\treduce:\n\t\t\t\twhile(!Chain.isZero(d)) {\n\t\t\t\t\tSimplex sigma = d.maxS();\n\t\t\t\t\tswitch (type[sigma.findex()]) {\n\t\t\t\t\tcase CHAIN: \n\t\t\t\t\t\t//System.out.printf(\"\\t%s leads a chain\\n\", sigma);\n\t\t\t\t\t\tif(DEBUGGING) System.out.printf(\"\\tLeading term of %s is %s is white\\n\", d, sigma);\n\t\t\t\t\t\tthrow new IllegalArgumentException(\"Simplex stream is not a complex.\");\n\t\t\t\t\tcase CYCLE: \n\t\t\t\t\t\tif(DEBUGGING) System.out.printf(\"\\tLeading term of %s is %s is yellow\\n\", d, sigma);\n\t\t\t\t\t\tbreak reduce;\n\t\t\t\t\tcase BOUNDARY: \n\t\t\t\t\t\tif(DEBUGGING) System.out.printf(\"\\tLeading term of %s is %s is pink\\n\", d, sigma);\n\t\t\t\t\t\tint q = d.maxC();\n\t\t\t\t\t\tChain dt = tadpole[sigma.findex()];\n\t\t\t\t\t\tChain t = preimage[sigma.findex()];\n\n\t\t\t\t\t\tif(Chain.isZero(t)) {\n\t\t\t\t\t\t\t// We are in a degenerate case.\n\t\t\t\t\t\t\tbreak reduce;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\td = d.add(dt,p-q);\n\t\t\t\t\t\tw = w.add(t,q);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tif(Chain.isZero(d)) {\n\t\t\t\ttype[current.findex()] = SimplexType.CYCLE;\n\t\t\t\tChain newTadpole = new Chain(p,1,current);\n\t\t\t\ttadpole[current.findex()] = newTadpole.add(w,p-1);\n\t\t\t\tif(DEBUGGING) System.out.printf(\"\\tNew cycle with tadpole: %s lead by %s\\n\", tadpole[current.findex()], current);\n\t\t\t} else {\n\t\t\t\tSimplex sigma = d.maxS();\n\t\t\t\ttype[sigma.findex()] = SimplexType.BOUNDARY;\n\t\t\t\tkiller[sigma.findex()] = current;\n\t\t\t\tint c = pInverses[d.maxC()];\n\t\t\t\tChain newTadpole = new Chain(p);\n\t\t\t\tnewTadpole = newTadpole.add(d,c);\n\t\t\t\ttadpole[sigma.findex()] =newTadpole;\n\t\t\t\tChain newPreimage = new Chain(p);\n\t\t\t\tnewPreimage = newPreimage.add(new Chain(p,1,current),c);\n\t\t\t\tnewPreimage = newPreimage.add(w,p-c);\n\t\t\t\tpreimage[sigma.findex()] = newPreimage;\n\t\t\t\tif(DEBUGGING) System.out.printf(\"\\tNew boundary with tadpole: %s lead by %s\\n\", tadpole[sigma.findex()], sigma);\n\t\t\t\tif(DEBUGGING) System.out.printf(\"\\t\\tkiller(%s) = %s\\n\", sigma, killer[sigma.findex()]);\n\t\t\t\tif(DEBUGGING) System.out.printf(\"\\t\\tpreimage(%s) = %s\\n\", sigma, preimage[sigma.findex()]);\n\t\t\t}\n\t\t}\n\n\t\t// Assemble the persistence intervals\n\t\tList<PersistenceBasisInterval> intervals = new Vector<PersistenceBasisInterval>();\n\t\tfor(Simplex s : simplices) {\n\t\t\tPersistenceBasisInterval pbi;\n\t\t\tswitch (type[s.findex()]) {\n\t\t\tcase CHAIN:\n\t\t\t\tcontinue;\n\t\t\tcase CYCLE:\n\t\t\t\tif(s.dimension() >= sstream.maxDimension())\n\t\t\t\t\tbreak;\n\t\t\t\tpbi = new PersistenceBasisInterval.Int(tadpole[s.findex()],localFindex[s.findex()]);\n\t\t\t\tintervals.add(pbi);\n\t\t\t\tbreak;\n\t\t\tcase BOUNDARY:\n\t\t\t\tif(s.dimension() >= sstream.maxDimension())\n\t\t\t\t\tbreak;\n\t\t\t\tif(localFindex[s.findex()] == localFindex[killer[s.findex()].findex()])\n\t\t\t\t\tbreak;\n\t\t\t\tpbi = new PersistenceBasisInterval.Int(tadpole[s.findex()],\n\t\t\t\t\t\tlocalFindex[s.findex()],\n\t\t\t\t\t\tlocalFindex[killer[s.findex()].findex()]);\n\t\t\t\tintervals.add(pbi);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t{\n\t\t\tPersistenceBasisInterval[] returnvalue = \n\t\t\t\tnew PersistenceBasisInterval[intervals.size()];\n\t\t\tint counter = 0;\n\t\t\tfor(PersistenceBasisInterval pi : intervals)\n\t\t\t\treturnvalue[counter++] = pi;\n\t\t\tArrays.sort(returnvalue);\n\t\t\treturn returnvalue;\n\t\t}\n\t}\t\n\n\t\n\n\tprotected static class ListItem {\n\t\tpublic Chain cocycle;\n\t\tpublic Chain coboundary;\n\t\tpublic int findex;\n\t}\n\n\t/** \n\t * Computes persistent cohomology using a zig-zag based approach due to Dmitriy Morozov.\n\t * <p>\n\t * Seems to compute wrongly. Need to step through small examples and work out what exactly what's happening.\n\t * Diagnosis: too high dimensional cocycles occurring, and way too many of them. The cocycles expected do not occur.\n\t * <p>\n\t * @param stream SimpleSimplexStream providing the simplices\n\t * @return PersistenceBasisInterval[] carrying the computed intervals and their basis elements.\n\t */\n\tpublic static PersistenceBasisInterval[] computePersistentCohomologyZigZag(SimplexStream stream, int prime) {\n\t\tboolean DEBUGGING = false;\n\t\tif(prime != p)\n\t\t\tsetBaseModulus(prime);\n\n\t\t// compute all coboundaries, and set them in the simplex chain properties\n\n\t\tVector<Simplex> simplices = new Vector<Simplex>(stream.size());\n\t\t{\n\t\t\tMap<Simplex,Chain> coboundary = new LinkedHashMap<Simplex,Chain>();\n\t\t\tIterator<Simplex> sIt = stream.iterator();\n\t\t\twhile(sIt.hasNext()) {\n\t\t\t\tSimplex s = sIt.next();\n\t\t\t\t//\t\t\t\tSystem.out.println(s);\n\t\t\t\tcoboundary.put(s, new Chain(prime));\n\t\t\t\tChain boundary = s.boundary(prime);\n\t\t\t\tfor(Simplex t : boundary.simplices) {\n\t\t\t\t\tcoboundary.put(t,coboundary.get(t).add(new Chain(p,1,s),boundary.coefficientOf(t)));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor(Simplex s : coboundary.keySet()) {\n\t\t\t\ts.clearChain();\n\t\t\t\ts.setChain(coboundary.get(s));\n\t\t\t\tsimplices.add(s);\n\t\t\t}\n\t\t}\n\n\n\t\t//\t\tSystem.out.printf(\"*************************\\n\");\n\t\t/*  go through the algorithm  */\n\n\t\t// We need lists for the cocycles and coboundaries\n\t\tLinkedList<ListItem> bases = new LinkedList<ListItem>();\n\t\tLinkedList<PersistenceBasisInterval.Int> intervals = new LinkedList<PersistenceBasisInterval.Int>();\n\n\t\tif(DEBUGGING) System.out.printf(\"# simplices: %d\\n\", simplices.size());\n\n\t\tfor(Simplex s : simplices) {\n\t\t\tif(DEBUGGING)\n\t\t\t\tSystem.out.println(s);\n\t\t\tListIterator<ListItem> wIt = bases.listIterator();\n\t\t\tListItem w=null;\n\t\t\t// Find first coboundary with nonzero coefficient for s\n\t\t\twhile(wIt.hasNext()) {\n\t\t\t\tw = wIt.next();\n\t\t\t\tif(w.coboundary.coefficientOf(s) != 0) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(DEBUGGING) System.out.printf(\"\\tFound %s, %s\\n\", w!=null?w.cocycle:\"null\", w!=null?w.coboundary:\"null\");\n\n\t\t\tif(w == null || w.coboundary.coefficientOf(s) == 0) {\n\t\t\t\t// We are starting an interval.\n\t\t\t\tListItem nextItem = new ListItem();\n\t\t\t\tnextItem.cocycle = new Chain(prime,1,s);\n\t\t\t\tnextItem.coboundary = s.chain();\n\t\t\t\tnextItem.findex = s.findex();\n\t\t\t\tbases.addFirst(nextItem);\n\t\t\t\tif(DEBUGGING)\n\t\t\t\t\tSystem.out.printf(\"\\tAdded to bases:\\n\\t\\tcocycle:\\t%s\\n\\t\\tcoboundary:\\t%s\\n\\t\\tfindex:\\t%d\\n\",\n\t\t\t\t\t\t\tnextItem.cocycle, nextItem.coboundary, nextItem.findex);\n\t\t\t} else { \n\t\t\t\tassert(w.coboundary.coefficientOf(s) != 0);\n\t\t\t\t// We are finishing an interval.\n\t\t\t\t// There is a z* which is the first to contain s. Also, idx points to z* and the \n\t\t\t\t// current value of dz*.\n\n\t\t\t\t// Remove w from bases, and then adjust all the rest.\n\t\t\t\twIt.remove();\n\n\t\t\t\tint dzstarC = w.coboundary.coefficientOf(s);\n\n\t\t\t\twhile(wIt.hasNext()) {\n\t\t\t\t\tListItem z = wIt.next();\n\t\t\t\t\tChain zc = z.cocycle;\n\t\t\t\t\tChain dz = z.coboundary;\n\t\t\t\t\tif(DEBUGGING)\n\t\t\t\t\t\tSystem.out.printf(\"\\tConsidering %s and %s\\n\", zc, dz);\n\t\t\t\t\tif(dz.coefficientOf(s)!=0) {\n\t\t\t\t\t\tif(DEBUGGING)\n\t\t\t\t\t\t\tSystem.out.printf(\"\\tAdding to %s and %s:\\n\\t%s and %s\\n\", zc, dz,\n\t\t\t\t\t\t\t\t\tw.cocycle, w.coboundary); \n\n\t\t\t\t\t\tz.cocycle = zc.add(w.cocycle,(pInverses[dzstarC]*(prime-dz.coefficientOf(s)))%prime);\n\t\t\t\t\t\tz.coboundary = dz.add(w.coboundary,(pInverses[dzstarC]*(prime-dz.coefficientOf(s)))%prime);\n\t\t\t\t\t\tif(DEBUGGING)\n\t\t\t\t\t\t\tSystem.out.printf(\"\\tResult of addition:\\n\\t%s and %s\\n\", z.cocycle, z.coboundary);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Now, construct the persistence interval\n\t\t\t\tif(w.findex != s.findex() && w.cocycle.maxS().dimension() < stream.maxDimension()) {\n\t\t\t\t\tPersistenceBasisInterval.Int pi = new PersistenceBasisInterval.Int(w.cocycle,w.findex,s.findex());\n\t\t\t\t\tintervals.add(pi);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(DEBUGGING)\n\t\t\tSystem.out.printf(\"# infinite bases: %d\\n\", bases.size());\n\t\tListIterator<ListItem> wIt = bases.listIterator();\n\t\twhile(wIt.hasNext()) {\n\t\t\tListItem nextItem = wIt.next();\n\t\t\tif(nextItem.cocycle.maxS().dimension() < stream.maxDimension()) {\n\t\t\t\tPersistenceBasisInterval.Int pi = new PersistenceBasisInterval.Int(nextItem.cocycle, nextItem.findex);\n\t\t\t\tintervals.add(pi);\n\t\t\t}\n\t\t}\n\n\t\tVector<PersistenceBasisInterval> rets = new Vector<PersistenceBasisInterval>();\n\t\tfor(PersistenceBasisInterval.Int pi : intervals) {\n\t\t\tPersistenceBasisInterval.Float newpi = stream.convertInterval(pi);\n\t\t\tif(newpi.start != newpi.end)\n\t\t\t\trets.add(newpi);\n\t\t}\n\n\t\tPersistenceBasisInterval[] retpi = new PersistenceBasisInterval[rets.size()];\n\t\tint i = 0;\n\t\tfor(PersistenceBasisInterval pi : rets) {\n\t\t\tretpi[i++] = pi;\n\t\t}\n\n\t\treturn retpi;\n\t}\n\n\tpublic static PersistenceBasisInterval[] computePersistentCohomologyZigZag(SimplexStream stream) {\n\t\treturn computePersistentCohomologyZigZag(stream,11);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/PersistenceBasisInterval.java",
    "content": "package edu.stanford.math.plex;\n\n/**\n * <code>PersistenceBasisInterval</code> instances encode a dimension and a\n * duration (e.g., start and end times) as well as a basis element for each \n * interval. The integer start/end times are\n * used internally in the Persistence class, but these may be converted to\n * form that uses doubles for start/end.\n *\n */\nabstract public class PersistenceBasisInterval \nimplements Comparable<PersistenceBasisInterval> {\n\n\t/**\n\t * The dimension of the PersistenceBasisInterval.\n\t */\n\tpublic final int dimension;\n\n\t/**\n\t * Is this PersistenceBasisInterval semi-infinite in extent?\n\t *\n\t * <p>\n\t * @return True or false depending on whether or not the right endpoint\n\t * is infinite.\n\t */\n\tpublic abstract boolean infiniteExtent();\n\n\t/**\n\t * Return the start/endpoints as double[].\n\t *\n\t * <p>\n\t * @return double[] describing the start and end points of the interval.\n\t */\n\tpublic abstract double[] toDouble();\n\n\t/**\n\t * The basis representing the interval.\n\t *\n\t * <p>\n\t * @return Chain the associated basis element.\n\t */\n\tpublic abstract Chain basis();\n\n\t/**\n\t * Conversion to PersistenceInterval\n\t *\n\t * <p>\n\t * @return PersistenceInterval\n\t */\n\tpublic abstract PersistenceInterval toPersistenceInterval();\n\n\t// used just by subclasses\n\tprotected PersistenceBasisInterval(int d) {\n\t\tassert(d >= 0);\n\t\tdimension = d;\n\t}\n\n\t/**\n\t * Represent a PersistenceBasisInterval as a String. \n\t *\n\t * <p>\n\t * @return     A string that describes a PersistenceBasisInterval.\n\t */\n\tpublic String toString() { \n\t\tif (this instanceof PersistenceBasisInterval.Float) {\n\t\t\tPersistenceBasisInterval.Float tmp = (PersistenceBasisInterval.Float) this;\n\t\t\treturn tmp.toString();\n\t\t} else {\n\t\t\tPersistenceBasisInterval.Int tmp = (PersistenceBasisInterval.Int) this;\n\t\t\treturn tmp.toString();\n\t\t}\n\t}\n\n\tpublic static class Int extends PersistenceBasisInterval {\n\n\t\tpublic static int MAX_END = 0x7fffffff;\n\t\tpublic final int start;\n\t\tpublic final int end;\n\t\tpublic final Chain basisElement;\n\n\t\t// don't use\n\t\tprotected Int() { super(0); start = 0; end = 0; basisElement = null; }\n\n\t\tpublic Int(Chain basisElement, int start, int end) {\n\t\t\tsuper(basisElement.maxS().dimension());\n\t\t\tassert((start >= 0) && (end >= start));\n\t\t\tthis.start = start;\n\t\t\tthis.end = end;\n\t\t\tthis.basisElement = basisElement;\n\t\t}\n\n\t\tpublic Int(Chain basisElement, int start) {\n\t\t\tsuper(basisElement.maxS().dimension());\n\t\t\tassert((start >= 0) && (MAX_END > start));\n\t\t\tthis.start = start;\n\t\t\tthis.end = MAX_END;\n\t\t\tthis.basisElement = basisElement;\n\t\t}\n\n\t\t/**\n\t\t * Is this PersistenceBasisInterval semi-infinite in extent?\n\t\t *\n\t\t * <p>\n\t\t * @return     True or false depending on the right endpoint.\n\t\t */\n\t\tpublic boolean infiniteExtent() {\n\t\t\treturn end == MAX_END;\n\t\t}\n\n\t\t/**\n\t\t * Represent a PersistenceBasisInterval.Int as a String.\n\t\t *\n\t\t * <p>\n\t\t * @return     A string that describes a PersistenceBasisInterval.Int.\n\t\t */\n\t\tpublic String toString() { \n\t\t\tif (end == MAX_END)\n\t\t\t\treturn String.format(\"[%d: (%d,inf)] %s\", \n\t\t\t\t\t\tdimension, start, basisElement.toString());\n\t\t\telse\n\t\t\t\treturn String.format(\"[%d: (%d,%d)] %s\", \n\t\t\t\t\t\tdimension, start, end, basisElement.toString());\n\t\t}\n\n\t\tpublic PersistenceInterval toPersistenceInterval() {\n\t\t\treturn (PersistenceInterval) new\n\t\t\tPersistenceInterval.Int(dimension,start,end); \n\t\t}\n\n\t\t/**\n\t\t * Represent a PersistenceBasisInterval.Int as a double[].\n\t\t *\n\t\t * <p>\n\t\t * @return     A double[] that describes the endpoints.\n\t\t */\n\t\tpublic double[] toDouble() { \n\t\t\tif (end == MAX_END)\n\t\t\t\treturn new double[] { (double) start, Double.POSITIVE_INFINITY };\n\t\t\telse\n\t\t\t\treturn new double[] { (double) start, (double) end };\n\t\t}\n\n\t\t/**\n\t\t * Retrieves the basis element of an interval.\n\t\t *\n\t\t * <p>\n\t\t * @return   The Chain object representing the stored basis element.\n\t\t */\n\t\tpublic Chain basis() {\n\t\t\treturn basisElement;\n\t\t}\n\n\t\t/**\n\t\t * Overrides Object hashcode.\n\t\t *\n\t\t * <p>\n\t\t * @return     CRC hash of the slots set.\n\t\t *\n\t\t */\n\t\tpublic int hashCode() {\n\t\t\tint hash32 = CRC.hash32(dimension, 0);\n\t\t\thash32 = CRC.hash32(start, hash32);\n\t\t\treturn CRC.hash32(end, hash32);\n\t\t}\n\n\t\t/**\n\t\t * Are two persistence intervals equivalent. Overrides Object equal.\n\t\t *\n\t\t * <p>\n\t\t * @param      obj   object to compare.\n\t\t * @return true or false, depending on whether or not the\n\t\t * PersistenceBasisInterval is equivalent to obj.\n\t\t *\n\t\t */\n\t\tpublic boolean equals(Object obj) {\n\t\t\tif (!(obj instanceof PersistenceBasisInterval.Int))\n\t\t\t\treturn false;\n\t\t\tPersistenceBasisInterval.Int p = (PersistenceBasisInterval.Int) obj;\n\t\t\treturn ((p.dimension == dimension) &&\n\t\t\t\t\t(p.start == start) &&\n\t\t\t\t\t(p.end == end) &&\n\t\t\t\t\t(p.basis().equals(basisElement)));\n\t\t}\n\n\t\t/**\n\t\t * Implements Comparable interface.\n\t\t *\n\t\t * <p>\n\t\t * @param      p    PersistenceBasisInterval to compare.\n\t\t * @return     negative, 0, or positive, if this <, =, resp. > than p.\n\t\t *\n\t\t */\n\t\tpublic int compareTo(PersistenceBasisInterval p) {\n\t\t\tif (p instanceof PersistenceBasisInterval.Float)\n\t\t\t\treturn -1;\n\t\t\tPersistenceBasisInterval.Int pi = (PersistenceBasisInterval.Int) p;\n\t\t\tif (dimension != pi.dimension)\n\t\t\t\treturn (dimension - pi.dimension);\n\t\t\tif (start != pi.start)\n\t\t\t\treturn (start - pi.start);\n\t\t\treturn (end - pi.end);\n\t\t}\n\t}\n\n\n\tpublic static class Float extends PersistenceBasisInterval {\n\n\t\tpublic static double MAX_END = Double.POSITIVE_INFINITY;\n\t\tpublic final double start;\n\t\tpublic final double end;\n\t\tpublic final Chain basisElement;\n\n\t\t// don't use\n\t\tprotected Float() { super(0); start = 0; end = 0; basisElement = null; }\n\n\t\tpublic Float(Chain basisElement, double start, double end) {\n\t\t\tsuper(basisElement.maxS().dimension());\n\t\t\tassert((start >= 0) && (end >= start));\n\t\t\tthis.start = start;\n\t\t\tthis.end = end;\n\t\t\tthis.basisElement = basisElement;\n\t\t}\n\n\t\tpublic Float(Chain basisElement, double start) {\n\t\t\tsuper(basisElement.maxS().dimension());\n\t\t\tassert((start >= 0) && (MAX_END > start));\n\t\t\tthis.start = start;\n\t\t\tthis.end = MAX_END;\n\t\t\tthis.basisElement = basisElement;\n\t\t}\n\n\t\t/**\n\t\t * Is this PersistenceBasisInterval semi-infinite in extent?\n\t\t *\n\t\t * <p>\n\t\t * @return     True or false depending on the right endpoint.\n\t\t */\n\t\tpublic boolean infiniteExtent() {\n\t\t\treturn end == MAX_END;\n\t\t}\n\n\t\t/**\n\t\t * Represent a PersistenceBasisInterval.Float as a String.\n\t\t *\n\t\t * <p>\n\t\t * @return     A string that describes a PersistenceBasisInterval.\n\t\t */\n\t\tpublic String toString() { \n\t\t\tif (end == MAX_END)\n\t\t\t\treturn String.format(\"[%d: (%f,inf) %s]\", \n\t\t\t\t\t\tdimension, start, basisElement.toString());\n\t\t\telse\n\t\t\t\treturn String.format(\"[%d: (%f,%f)] %s\", \n\t\t\t\t\t\tdimension, start, end, basisElement.toString());\n\t\t}\n\n\t\tpublic PersistenceInterval toPersistenceInterval() {\n\t\t\treturn (PersistenceInterval) new \n\t\t\tPersistenceInterval.Float(dimension, start, end);\n\t\t}\n\n\t\t/**\n\t\t * Represent a PersistenceBasisInterval.Int as a double[].\n\t\t *\n\t\t * <p>\n\t\t * @return     A double[] that describes the endpoints.\n\t\t */\n\t\tpublic double[] toDouble() { \n\t\t\tif (end == MAX_END)\n\t\t\t\treturn new double[] { start, Double.POSITIVE_INFINITY };\n\t\t\telse\n\t\t\t\treturn new double[] { start, end };\n\t\t}\n\n\t\t/**\n\t\t * Retrieves the basis element of an interval.\n\t\t *\n\t\t * <p>\n\t\t * @return   The Chain object representing the stored basis element.\n\t\t */\n\t\tpublic Chain basis() {\n\t\t\treturn basisElement;\n\t\t}\n\n\t\t/**\n\t\t * Overrides Object hashcode.\n\t\t *\n\t\t * <p>\n\t\t * @return     CRC hash of the slots set.\n\t\t *\n\t\t */\n\t\tpublic int hashCode() {\n\t\t\tint hash32 = CRC.hash32(dimension, 0);\n\t\t\thash32 = CRC.hash32((int)start, hash32);\n\t\t\treturn CRC.hash32((int)end, hash32);\n\t\t}\n\n\t\t/**\n\t\t * Are two persistence intervals equivalent. Overrides Object equal.\n\t\t *\n\t\t * <p>\n\t\t * @param      obj   object to compare.\n\t\t * @return true or false, depending on whether or not the\n\t\t * PersistenceBasisInterval is equivalent to obj.\n\t\t *\n\t\t */\n\t\tpublic boolean equals(Object obj) {\n\t\t\tif (!(obj instanceof PersistenceBasisInterval.Float))\n\t\t\t\treturn false;\n\t\t\tPersistenceBasisInterval.Float p = (PersistenceBasisInterval.Float) obj;\n\t\t\treturn ((p.dimension == dimension) &&\n\t\t\t\t\t(p.start == start) &&\n\t\t\t\t\t(p.end == end) &&\n\t\t\t\t\t(p.basis().equals(basisElement)));\n\t\t}\n\n\t\t/**\n\t\t * Implements Comparable interface.\n\t\t *\n\t\t * <p>\n\t\t * @param      p    PersistenceBasisInterval to compare.\n\t\t * @return     negative, 0, or positive, if this <, =, resp. > than p.\n\t\t *\n\t\t */\n\t\tpublic int compareTo(PersistenceBasisInterval p) {\n\t\t\tif (p instanceof PersistenceBasisInterval.Int)\n\t\t\t\treturn 1;\n\t\t\tPersistenceBasisInterval.Float pf = (PersistenceBasisInterval.Float) p;\n\t\t\tif (dimension != pf.dimension)\n\t\t\t\treturn (dimension - pf.dimension);\n\t\t\tif (start != pf.start)\n\t\t\t\treturn (start < pf.start)?-1:1;\n\t\t\tif (end != pf.end)\n\t\t\t\treturn (end < pf.end)?-1:1;\n\t\t\treturn 0;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/PersistenceInterval.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * <code>PersistenceInterval</code> instances encode a dimension and a\r\n * duration (e.g., start and end times). The integer start/end times are\r\n * used internally in the Persistence class, but these may be converted to\r\n * form that uses doubles for start/end.\r\n *\r\n * @version $Id$\r\n */\r\nabstract public class PersistenceInterval implements Comparable<PersistenceInterval> {\r\n\r\n\t/**\r\n\t * The dimension of the PersistenceInterval.\r\n\t */\r\n\tpublic final int dimension;\r\n\r\n\t/**\r\n\t * Is this PersistenceInterval semi-infinite in extent?\r\n\t *\r\n\t * <p>\r\n\t * @return True or false depending on whether or not the right endpoint\r\n\t * is infinite.\r\n\t */\r\n\tpublic abstract boolean infiniteExtent();\r\n\r\n\t/**\r\n\t * Return the start/endpoints as double[].\r\n\t *\r\n\t * <p>\r\n\t * @return double[] describing the start and end points of the interval.\r\n\t */\r\n\tpublic abstract double[] toDouble();\r\n\r\n\t// used just by subclasses\r\n\tprivate PersistenceInterval(int d) {\r\n\t\tassert(d >= 0);\r\n\t\tdimension = d;\r\n\t}\r\n\r\n\t/**\r\n\t * Represent a PersistenceInterval as a String. \r\n\t *\r\n\t * <p>\r\n\t * @return     A string that describes a PersistenceInterval.\r\n\t */\r\n\tpublic String toString() { \r\n\t\tif (this instanceof PersistenceInterval.Float) {\r\n\t\t\tPersistenceInterval.Float tmp = (PersistenceInterval.Float) this;\r\n\t\t\treturn tmp.toString();\r\n\t\t} else {\r\n\t\t\tPersistenceInterval.Int tmp = (PersistenceInterval.Int) this;\r\n\t\t\treturn tmp.toString();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static class Int extends PersistenceInterval {\r\n\r\n\t\tpublic static final int MAX_END = 0x7fffffff;\r\n\t\tpublic final int start;\r\n\t\tpublic final int end;\r\n\r\n\t\t// don't use\r\n\t\t//private Int() { super(0); start = 0; end = 0; }\r\n\r\n\t\tpublic Int(int dimension, int start, int end) {\r\n\t\t\tsuper(dimension);\r\n\t\t\tassert((start >= 0) && (end >= start));\r\n\t\t\tthis.start = start;\r\n\t\t\tthis.end = end;\r\n\t\t}\r\n\r\n\t\tpublic Int(int dimension, int start) {\r\n\t\t\tsuper(dimension);\r\n\t\t\tassert((start >= 0) && (MAX_END > start));\r\n\t\t\tthis.start = start;\r\n\t\t\tthis.end = MAX_END;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Is this PersistenceInterval semi-infinite in extent?\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     True or false depending on the right endpoint.\r\n\t\t */\r\n\t\tpublic boolean infiniteExtent() {\r\n\t\t\treturn end == MAX_END;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Represent a PersistenceInterval.Int as a String.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     A string that describes a PersistenceInterval.Int.\r\n\t\t */\r\n\t\tpublic String toString() { \r\n\t\t\tif (end == MAX_END)\r\n\t\t\t\treturn String.format(\"[%d: (%d,inf)]\", dimension, start);\r\n\t\t\telse\r\n\t\t\t\treturn String.format(\"[%d: (%d,%d)]\", dimension, start, end);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Represent a PersistenceInterval.Int as a double[].\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     A double[] that describes the endpoints.\r\n\t\t */\r\n\t\tpublic double[] toDouble() { \r\n\t\t\tif (end == MAX_END)\r\n\t\t\t\treturn new double[] { (double) start, Double.POSITIVE_INFINITY };\r\n\t\t\telse\r\n\t\t\t\treturn new double[] { (double) start, (double) end };\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Overrides Object hashcode.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     CRC hash of the slots set.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic int hashCode() {\r\n\t\t\tint hash32 = CRC.hash32(dimension, 0);\r\n\t\t\thash32 = CRC.hash32(start, hash32);\r\n\t\t\treturn CRC.hash32(end, hash32);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Are two persistence intervals equivalent. Overrides Object equal.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @param      obj   object to compare.\r\n\t\t * @return true or false, depending on whether or not the\r\n\t\t * PersistenceInterval is equivalent to obj.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic boolean equals(Object obj) {\r\n\t\t\tif (!(obj instanceof PersistenceInterval.Int))\r\n\t\t\t\treturn false;\r\n\t\t\tPersistenceInterval.Int p = (PersistenceInterval.Int) obj;\r\n\t\t\treturn ((p.dimension == dimension) &&\r\n\t\t\t\t\t(p.start == start) &&\r\n\t\t\t\t\t(p.end == end));\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Implements Comparable interface.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @param      p    PersistenceInterval to compare.\r\n\t\t * @return     negative, 0, or positive, if this <, =, resp. > than p.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic int compareTo(PersistenceInterval p) {\r\n\t\t\tif (p instanceof PersistenceInterval.Float)\r\n\t\t\t\treturn -1;\r\n\t\t\tPersistenceInterval.Int pi = (PersistenceInterval.Int) p;\r\n\t\t\tif (dimension != pi.dimension)\r\n\t\t\t\treturn (dimension - pi.dimension);\r\n\t\t\tif (start != pi.start)\r\n\t\t\t\treturn (start - pi.start);\r\n\t\t\treturn (end - pi.end);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic static class Float extends PersistenceInterval {\r\n\r\n\t\tpublic static final double MAX_END = Double.POSITIVE_INFINITY;\r\n\t\tpublic final double start;\r\n\t\tpublic final double end;\r\n\r\n\t\t// don't use\r\n\t\t//private Float() { super(0); start = 0; end = 0; }\r\n\r\n\t\tpublic Float(int dimension, double start, double end) {\r\n\t\t\tsuper(dimension);\r\n\t\t\tassert((start >= 0) && (end >= start));\r\n\t\t\tthis.start = start;\r\n\t\t\tthis.end = end;\r\n\t\t}\r\n\r\n\t\tpublic Float(int dimension, double start) {\r\n\t\t\tsuper(dimension);\r\n\t\t\tassert((start >= 0) && (MAX_END > start));\r\n\t\t\tthis.start = start;\r\n\t\t\tthis.end = MAX_END;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Is this PersistenceInterval semi-infinite in extent?\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     True or false depending on the right endpoint.\r\n\t\t */\r\n\t\tpublic boolean infiniteExtent() {\r\n\t\t\treturn end == MAX_END;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Represent a PersistenceInterval.Float as a String.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     A string that describes a PersistenceInterval.\r\n\t\t */\r\n\t\tpublic String toString() { \r\n\t\t\tif (end == MAX_END)\r\n\t\t\t\treturn String.format(\"[%d: (%f,inf)]\", dimension, start);\r\n\t\t\telse\r\n\t\t\t\treturn String.format(\"[%d: (%f,%f)]\", dimension, start, end);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Represent a PersistenceInterval.Int as a double[].\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     A double[] that describes the endpoints.\r\n\t\t */\r\n\t\tpublic double[] toDouble() { \r\n\t\t\tif (end == MAX_END)\r\n\t\t\t\treturn new double[] { start, Double.POSITIVE_INFINITY };\r\n\t\t\telse\r\n\t\t\t\treturn new double[] { start, end };\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Overrides Object hashcode.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     CRC hash of the slots set.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic int hashCode() {\r\n\t\t\tint hash32 = CRC.hash32(dimension, 0);\r\n\t\t\thash32 = CRC.hash32((int)start, hash32);\r\n\t\t\treturn CRC.hash32((int)end, hash32);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Are two persistence intervals equivalent. Overrides Object equal.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @param      obj   object to compare.\r\n\t\t * @return true or false, depending on whether or not the\r\n\t\t * PersistenceInterval is equivalent to obj.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic boolean equals(Object obj) {\r\n\t\t\tif (!(obj instanceof PersistenceInterval.Float))\r\n\t\t\t\treturn false;\r\n\t\t\tPersistenceInterval.Float p = (PersistenceInterval.Float) obj;\r\n\t\t\treturn ((p.dimension == dimension) &&\r\n\t\t\t\t\t(p.start == start) &&\r\n\t\t\t\t\t(p.end == end));\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Implements Comparable interface.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @param      p    PersistenceInterval to compare.\r\n\t\t * @return     negative, 0, or positive, if this <, =, resp. > than p.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic int compareTo(PersistenceInterval p) {\r\n\t\t\tif (p instanceof PersistenceInterval.Int)\r\n\t\t\t\treturn 1;\r\n\t\t\tPersistenceInterval.Float pf = (PersistenceInterval.Float) p;\r\n\t\t\tif (dimension != pf.dimension)\r\n\t\t\t\treturn (dimension - pf.dimension);\r\n\t\t\tif (start != pf.start)\r\n\t\t\t\treturn (start < pf.start)?-1:1;\r\n\t\t\tif (end != pf.end)\r\n\t\t\t\treturn (end < pf.end)?-1:1;\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Plex.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport java.io.File;\r\nimport java.io.FileInputStream;\r\nimport java.io.IOException;\r\nimport java.io.InputStreamReader;\r\nimport java.io.Reader;\r\nimport java.io.StreamTokenizer;\r\nimport java.util.ArrayList;\r\nimport java.util.Arrays;\r\nimport java.util.Random;\r\n\r\n/**\r\n * The <code>Plex</code> class provides some utility functions that don't\r\n * have a clearly defined home, and some entry points into plex library\r\n * code that are especially useful when in matlab. It is (apparently)\r\n * impossible in matlab to execute code like <code>new PlexClass()</code>,\r\n * so we provide static methods for creating Plex objects in matlab. The\r\n * naming convention for these methods is that the constructor for\r\n * instances of <code>PlexClass</code> will be named\r\n * <code>PlexClass()</code>, and its argument spectrum will be whatever the\r\n * usual form (or forms) of the associated constuctor are.\r\n *\r\n * @version $Id$\r\n */\r\npublic class Plex {\r\n\r\n\tprotected static Random rand = new Random();\r\n\r\n\t// Compute the size of the intersection of v1 and v2, assuming that no\r\n\t// elements appear in either v1 or v2 more than once. This method has the\r\n\t// advantage that it doesn't need the arguments to sorted. If the sets\r\n\t// are already sorted or we actually want the intersection, see below.\r\n\tpublic static int intersection_count(int[] v1, int[] v2) {\r\n\t\tint[] tmp = new int[v1.length + v2.length];\r\n\t\tif (tmp.length == 0)\r\n\t\t\treturn 0;\r\n\t\tint tmp_counter = 0;\r\n\t\tfor (int i = 0; i < v1.length; i++)\r\n\t\t\ttmp[tmp_counter++] = v1[i];\r\n\t\tfor (int i = 0; i < v2.length; i++)\r\n\t\t\ttmp[tmp_counter++] = v2[i];\r\n\t\tassert(tmp_counter == tmp.length);\r\n\t\tArrays.sort(tmp);\r\n\r\n\t\tint intersection_counter = 0;\r\n\t\tint current_tmpval = tmp[0];\r\n\t\tint current_hits = 1;\r\n\t\tfor (int i = 1; i < tmp.length; i++) {\r\n\t\t\tint x = tmp[i];\r\n\t\t\tif (x == current_tmpval)\r\n\t\t\t\tcurrent_hits++;\r\n\t\t\telse {\r\n\t\t\t\tif (current_hits > 1) {\r\n\t\t\t\t\tassert(current_hits == 2);\r\n\t\t\t\t\tintersection_counter++;\r\n\t\t\t\t}\r\n\t\t\t\tcurrent_hits = 1;\r\n\t\t\t\tcurrent_tmpval = x;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn intersection_counter;\r\n\t}\r\n\r\n\t/**\r\n\t * Compute the overlap size for two sorted arrays using the zipper algorithm.\r\n\t *\r\n\t * @param      v1  First sorted array.\r\n\t * @param      v2  Second sorted array.\r\n\t * @return     The number of common elements of v1 and v2.\r\n\t *\r\n\t */\r\n\tpublic static int sorted_intersection_count(int[] v1, int[] v2) {\r\n\t\tint count = 0;\r\n\r\n\t\tint i = 0;\r\n\t\tint i_max = v1.length-1;\r\n\r\n\t\tint j = 0;\r\n\t\tint j_max = v2.length-1;\r\n\r\n\t\tif ((i > i_max) || (j > j_max))\r\n\t\t\treturn count;\r\n\r\n\t\tint max_xi = v1[i_max];\r\n\t\tint max_xj = v2[j_max];\r\n\r\n\t\tint xi = v1[i];\r\n\t\tif (xi > max_xj) return count;\r\n\t\tint xj = v2[j];\r\n\t\tif (xj > max_xi) return count;\r\n\r\n\t\twhile (true) {\r\n\t\t\tif (xi == xj) {\r\n\t\t\t\tcount++;\r\n\t\t\t\ti++;\r\n\t\t\t\tj++;\r\n\t\t\t\tif ((i > i_max) || (j > j_max))\r\n\t\t\t\t\treturn count;\r\n\t\t\t\telse {\r\n\t\t\t\t\txi = v1[i];\r\n\t\t\t\t\tif (xi > max_xj) return count;\r\n\t\t\t\t\txj = v2[j];\r\n\t\t\t\t\tif (xj > max_xi) return count;\r\n\t\t\t\t}\r\n\t\t\t} else if (xi < xj) {\r\n\t\t\t\ti++;\r\n\t\t\t\txi = v1[i];\r\n\t\t\t\tif (xi > max_xj) return count;\r\n\t\t\t} else {\r\n\t\t\t\tj++;\r\n\t\t\t\txj = v2[j];\r\n\t\t\t\tif (xj > max_xi) return count;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Take subset_size distinct entries from initial segment of length\r\n\t * set_size in set[] and put them in the initial segment of subset[]. The\r\n\t * ordering of the entries is preserved -- that is, if set[i] and\r\n\t * set[i+d] both go into subset, the index of set[i] is less than that of\r\n\t * set[i+d].  <p>\r\n\t * @param      set an int[] from which to select.\r\n\t * @param      set_size  an int specifying how many entries to use.\r\n\t * @param      subset an int[] in which to deposit the selections.\r\n\t * @param      subset_size an int specifying how many entries to select.\r\n\t */\r\n\tpublic static void random_subset(int[] set, int set_size, \r\n\t\t\tint[] subset, int subset_size) {\r\n\t\tif (subset_size > set_size)\r\n\t\t\tthrow new IllegalArgumentException(\"Requested subset is larger than argument set.\");\r\n\t\tif (subset_size > subset.length)\r\n\t\t\tthrow new IllegalArgumentException(\"Requested subset is larger than storage given.\");\r\n\t\tif (set_size > set.length)\r\n\t\t\tthrow new IllegalArgumentException(\"Set storage smaller than argument size.\");\r\n\t\tif (subset_size <= 0)\r\n\t\t\treturn;\r\n\r\n\t\tint[] tmp = new int[set_size];\r\n\t\trandom_permutation(tmp);\r\n\t\tfor (int i = 0; i < subset_size; i++) {\r\n\t\t\tsubset[i] = tmp[i];\r\n\t\t}\r\n\t\tArrays.sort(subset, 0, subset_size);\r\n\t\tfor (int i = 0; i < subset_size; i++) {\r\n\t\t\tsubset[i] = set[subset[i]];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Take subset.length distinct entries from set[], and put them in\r\n\t * subset[]. \r\n\t * <p>\r\n\t * @param      set an int[] from which to select.\r\n\t * @param      subset an int[] in which to deposit the selections.\r\n\t */\r\n\tpublic static void random_subset(int[] set, int[] subset) {\r\n\t\trandom_subset(set, set.length, subset, subset.length);\r\n\t}\r\n\r\n\t/**\r\n\t * Take subset_size distinct entries from the integers 1 through N,\r\n\t * and put them in the initial segment of subset[].\r\n\t * <p>\r\n\t * @param      N  an int specifying the range from which to choose the subset.\r\n\t * @param      subset an int[] in which to deposit the selections.\r\n\t * @param      subset_size  an int specifying how many entries to use.\r\n\t */\r\n\tpublic static void random_subset(int N, int[] subset, int subset_size) {\r\n\t\tif (subset_size > subset.length)\r\n\t\t\tthrow new IllegalArgumentException(\"Requested subset is larger than storage given.\");\r\n\t\tif (subset.length <= 0)\r\n\t\t\treturn;\r\n\t\tint[] tmp = new int[N];\r\n\t\trandom_permutation(tmp);\r\n\t\t// The entries of tmp range from 0 to N-1, so we need to add 1 to each of them.\r\n\t\tfor (int i = 0; i < subset_size; i++) {\r\n\t\t\tsubset[i] = tmp[i]+1;\r\n\t\t}\r\n\t\tArrays.sort(subset, 0, subset_size);\r\n\t}\r\n\r\n\t/**\r\n\t * Take subset.length distinct entries from the integers 1 through N,\r\n\t * and put them in subset[].\r\n\t * <p>\r\n\t * @param      N  an int specifying the range from which to choose the subset.\r\n\t * @param      subset an int[] in which to deposit the selections.\r\n\t */\r\n\tpublic static void random_subset(int N, int[] subset) {\r\n\t\trandom_subset(N, subset, subset.length);\r\n\t}\r\n\r\n\t// confirm that this is a permutation\r\n\tprotected static boolean is_permutation (int[] perm) {\r\n\t\tint[] tmp = new int[perm.length];\r\n\t\tfor (int i = 0; i < perm.length; i++)\r\n\t\t\ttmp[perm[i]]++;\r\n\t\tfor (int i = 0; i < perm.length; i++) {\r\n\t\t\tif (tmp[i] != 1)\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Make a random permutation of the integers 0 through perm.length-1\r\n\t * and put them in perm.\r\n\t * <p>\r\n\t * @param      perm  an int[] to hold a random permutation.\r\n\t */\r\n\tpublic static void random_permutation(int[] perm) {\r\n\t\tif (perm.length <= 0)\r\n\t\t\treturn;\r\n\t\t// start with the identity\r\n\t\tfor (int i = 0; i < perm.length; i++)\r\n\t\t\tperm[i] = i;\r\n\t\tfor (int current = perm.length; current > 0; current--) {\r\n\t\t\tint swap_to = rand.nextInt(current);\r\n\t\t\tint swap_from = current - 1;\r\n\t\t\tint tmp = perm[swap_to];\r\n\t\t\tperm[swap_to] = perm[swap_from];\r\n\t\t\tperm[swap_from] = tmp;\r\n\t\t}\r\n\t\tassert(is_permutation(perm));\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of int and make a string.\r\n\t * <p>\r\n\t * @param      x  an int[] we want to examine.\r\n\t * @param      max_entries  The maximum number of entries we wish to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(int[] x, int max_entries) {\r\n\t\tif (x == null)\r\n\t\t\treturn \"<null>\";\r\n\t\tint max = Math.min(max_entries, x.length);\r\n\t\tString start = \"{\";\r\n\t\tif (max >= 1)\r\n\t\t\tstart = start + \" \" + x[0];\r\n\t\tfor (int i = 1; i < max; i++) {\r\n\t\t\tstart = start + \", \" + x[i];\r\n\t\t}\r\n\t\tif (max < x.length)\r\n\t\t\tstart = start + \" ...\";\r\n\t\treturn start + \" }\";\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of int and make a string.\r\n\t * <p>\r\n\t * @param      x  an int[] we want to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(int[] x) {\r\n\t\treturn toString(x, 100);\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of byte and make a string.\r\n\t * <p>\r\n\t * @param      x  an byte[] we want to examine.\r\n\t * @param      max_entries  The maximum number of entries we wish to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(byte[] x, int max_entries) {\r\n\t\tif (x == null)\r\n\t\t\treturn \"<null>\";\r\n\t\tint max = Math.min(max_entries, x.length);\r\n\t\tString start = \"{\";\r\n\t\tif (max >= 1)\r\n\t\t\tstart = start + \" \" + x[0];\r\n\t\tfor (int i = 1; i < max; i++) {\r\n\t\t\tstart = start + \", \" + x[i];\r\n\t\t}\r\n\t\tif (max < x.length)\r\n\t\t\tstart = start + \" ...\";\r\n\t\treturn start + \" }\";\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of byte and make a string.\r\n\t * <p>\r\n\t * @param      x  an byte[] we want to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(byte[] x) {\r\n\t\treturn toString(x, 100);\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of int[] and make a string.\r\n\t * <p>\r\n\t * @param      x  an int[][] we want to examine.\r\n\t * @param      max_entries  The maximum number of entries we wish to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(int[][] x, int max_entries) {\r\n\t\tint max = Math.min(max_entries, x.length);\r\n\t\tString start = \"{\";\r\n\t\tif (max >= 1)\r\n\t\t\tstart = start + \" \" + toString(x[0], max_entries) + \"\\n\";\r\n\t\tfor (int i = 1; i < max; i++) {\r\n\t\t\tstart = start + \", \" + toString(x[i], max_entries) + \"\\n\";\r\n\t\t}\r\n\t\tif (max < x.length)\r\n\t\t\tstart = start + \" ...\";\r\n\t\treturn start + \" }\";\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Take an int[][] and make a string.\r\n\t * <p>\r\n\t * @param      x  an int[][] we want to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(int[][] x) {\r\n\t\treturn toString(x, 100);\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of double and make a string.\r\n\t * <p>\r\n\t * @param      x  a double[] we want to examine.\r\n\t * @param      max_entries  The maximum number of entries we wish to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(double[] x, int max_entries) {\r\n\t\tif (x == null)\r\n\t\t\treturn \"<null>\";\r\n\t\tint max = Math.min(max_entries, x.length);\r\n\t\tString start = \"{\";\r\n\t\tif (max >= 1)\r\n\t\t\tstart = start + String.format(\" %.3g\", x[0]);\r\n\t\tfor (int i = 1; i < max; i++) {\r\n\t\t\tstart = start + String.format(\", %.3g\", x[i]);\r\n\t\t}\r\n\t\tif (max < x.length)\r\n\t\t\tstart = start + \" ...\";\r\n\t\treturn start + \" }\";\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of double and make a string.\r\n\t * <p>\r\n\t * @param      x  a double[] we want to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(double[] x) {\r\n\t\treturn toString(x, 100);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Take an array of double[] and make a string.\r\n\t * <p>\r\n\t * @param      x  an double[][] we want to examine.\r\n\t * @param      max_entries  The maximum number of entries we wish to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(double[][] x, int max_entries) {\r\n\t\tint max = Math.min(max_entries, x.length);\r\n\t\tString start = \"{\";\r\n\t\tif (max >= 1)\r\n\t\t\tstart = start + \" \" + toString(x[0], max_entries) + \"\\n\";\r\n\t\tfor (int i = 1; i < max; i++) {\r\n\t\t\tstart = start + \", \" + toString(x[i], max_entries) + \"\\n\";\r\n\t\t}\r\n\t\tif (max < x.length)\r\n\t\t\tstart = start + \" ...\";\r\n\t\treturn start + \" }\";\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Take an double[][] and make a string.\r\n\t * <p>\r\n\t * @param      x  an double[][] we want to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(double[][] x) {\r\n\t\treturn toString(x, 100);\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Take an array of long and make a string.\r\n\t * <p>\r\n\t * @param      x  a long[] we want to examine.\r\n\t * @param      max_entries  The maximum number of entries we wish to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(long[] x, int max_entries) {\r\n\t\tint max = Math.min(max_entries, x.length);\r\n\t\tString start = \"[ \";\r\n\t\tfor (int i = 0; i < max; i++) {\r\n\t\t\tstart = start + \" \" + x[i];\r\n\t\t}\r\n\t\tif (max < x.length)\r\n\t\t\tstart = start + \" ...\";\r\n\t\treturn start + \" ]\";\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of long and make a string.\r\n\t * <p>\r\n\t * @param      x  a long[] we want to examine.\r\n\t * @return     A String instance that \"looks like\" x.\r\n\t */\r\n\tpublic static String toString(long[] x) {\r\n\t\treturn toString(x, 100);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Take subset_size distinct entries from the integers 0 through N-1,\r\n\t * and put them in the initial segment of subset[].\r\n\t * <p>\r\n\t * @param      N  an int specifying the range from which to choose the subset.\r\n\t * @param      subset an int[] in which to deposit the selections.\r\n\t * @param      subset_size  an int specifying how many entries to use.\r\n\t */\r\n\tpublic static void random_index_subset(int N, int[] subset, int subset_size) {\r\n\t\tif (subset_size > subset.length)\r\n\t\t\tthrow new IllegalArgumentException(\"Requested subset is larger than storage given.\");\r\n\t\tif (subset.length <= 0)\r\n\t\t\treturn;\r\n\r\n\t\tint min_value = subset_size-1;\r\n\t\tint max_value = N-1;\r\n\t\tint current_index = subset_size - 1;\r\n\t\tint select_value = min_value;\r\n\t\twhile (current_index >= 0) {\r\n\t\t\tif (max_value > min_value) \r\n\t\t\t\tselect_value = min_value + rand.nextInt(1 + (max_value - min_value));\r\n\t\t\telse \r\n\t\t\t\tselect_value = min_value;\r\n\t\t\tsubset[current_index] = select_value;\r\n\t\t\tassert((select_value >= 0) && (select_value <= N-1));\r\n\t\t\tassert((current_index >= (subset_size-1)) || \r\n\t\t\t\t\t(subset[current_index] < subset[current_index+1]));\r\n\t\t\tcurrent_index--;\r\n\t\t\tmax_value = select_value-1;\r\n\t\t\tmin_value--;\r\n\t\t}\r\n\t\tassert(current_index == -1);\r\n\t}\r\n\r\n\t// Compare two int[] arguments, returning negative if less, 0 if equal,\r\n\t// and positive if greater so that we can use it in binary search.\r\n\tstatic int comparePtArrays (int[] pts1, int[] pts2) {\r\n\t\tint len1 = pts1.length;\r\n\t\tint len2 = pts2.length;\r\n\t\tint count = (len2 > len1)?len2:len1;\r\n\t\tfor (int i = 0; i < count; i++) {\r\n\t\t\tif (pts1[i] != pts2[i])\r\n\t\t\t\treturn (pts1[i] - pts2[i]);\r\n\t\t}\r\n\t\treturn (len1 - len2);\r\n\t}\r\n\r\n\t// Compare two int[] arguments, returning TRUE if equal, else FALSE.\r\n\tstatic boolean equalPtArrays (int[] pts1, int[] pts2) {\r\n\t\tif (pts1 == pts2)\r\n\t\t\treturn true;\r\n\t\telse if ((pts1 == null) || (pts2 == null))\r\n\t\t\treturn false;\r\n\t\telse if (pts1.length != pts2.length)\r\n\t\t\treturn false;\r\n\t\telse {\r\n\t\t\tfor (int i = 0; i < pts1.length; i++) {\r\n\t\t\t\tif (pts1[i] != pts2[i])\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\t// Find the first index i such that arg >= pts[i]. Returns -1 for failure.\r\n\t// We start from argument \"lo\", which is \r\n\tprotected static int firstSmallerPtIndex (int arg, int lo, int[] pts) {\r\n\t\t// Binary search.\r\n\t\tint hi = pts.length - 1;\r\n\r\n\t\tif ((lo > hi) || (pts[hi] > arg))\r\n\t\t\treturn -1;\r\n\t\telse if (arg >= pts[lo])\r\n\t\t\treturn lo;\r\n\t\telse {\r\n\t\t\t// Do a binary search. At the top of the loop, we always have\r\n\t\t\t// that (pts[lo] > arg), lo != hi, and (arg >= pts[hi]).\r\n\t\t\twhile (lo < hi) {\r\n\t\t\t\tint mid = (lo + hi)/2;\r\n\r\n\t\t\t\tassert(lo < hi);\r\n\t\t\t\tassert(pts[lo] > arg);\r\n\t\t\t\tassert(pts[hi] <= arg);\r\n\r\n\t\t\t\tif (mid == lo)\r\n\t\t\t\t\treturn hi;\r\n\t\t\t\telse if (pts[mid] > arg)\r\n\t\t\t\t\tlo = mid;\r\n\t\t\t\telse\r\n\t\t\t\t\thi = mid;\r\n\t\t\t}\r\n\t\t\t// should never get here\r\n\t\t\tassert(false);\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t}\r\n\r\n\t// Returns TRUE if ipts is a subset of jpts.\r\n\tprotected static boolean ptArrayIsSubset (int[] ipts, int[] jpts) {\r\n\t\tint j = 0;\r\n\r\n\t\tfor (int i = 0; i < ipts.length; i++) {\r\n\t\t\tif ((ipts.length - jpts.length) > (i - j))\r\n\t\t\t\t// this the same as (ipts.length-i) > (jpts.length-j), which\r\n\t\t\t\t// would mean that we have more points to find than we have\r\n\t\t\t\t// places to look for them\r\n\t\t\t\treturn false;\r\n\r\n\t\t\tj = firstSmallerPtIndex (ipts[i], j, jpts);\r\n\t\t\tif ((j < 0) || (ipts[i] != jpts[j]))\r\n\t\t\t\t// jpts is decreasing, so if the first entry is too small,\r\n\t\t\t\t// we'll never find a match\r\n\t\t\t\treturn false;\r\n\t\t\telse\r\n\t\t\t\tj++;            \r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * An array of Betti numbers (int[]) boxed up for convenience.\r\n\t */\r\n\tpublic static class BettiNumbers {\r\n\t\tprotected int[] numbers;\r\n\r\n\t\t// make sure the numbers array is okay.\r\n\t\tstatic protected boolean init_okay(int[] init) {\r\n\t\t\tfor (int i = 0; i < init.length; i++) {\r\n\t\t\t\tif (init[i] < 0)\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif ((init.length == 0) || (init[init.length-1] == 0))\r\n\t\t\t\treturn false;\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// unused\r\n\t\tprotected BettiNumbers() { numbers = null; }\r\n\r\n\t\t/**\r\n\t\t * Encapsulate a verified array of Betti numbers.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @param      init an int[] of betti numbers.\r\n\t\t * @exception  IllegalArgumentException \r\n\t\t */        \r\n\t\tpublic BettiNumbers(int[] init) {\r\n\t\t\tif (!init_okay(init))\r\n\t\t\t\tthrow new IllegalArgumentException(\"Bad betti numbers\");\r\n\t\t\tnumbers = new int[init.length];\r\n\t\t\tfor(int i = 0; i < init.length; i++)\r\n\t\t\t\tnumbers[i] = init[i];\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Make BettiNumbers printable.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return      String form of an array of Betti numbers.\r\n\t\t */        \r\n\t\tpublic String toString() {\r\n\t\t\tString base = \"BN{\";\r\n\t\t\tfor (int i = 0; i < numbers.length-1; i++) {\r\n\t\t\t\tbase = base + String.format(\"%d, \", numbers[i]);\r\n\t\t\t}\r\n\t\t\tbase = base + String.format(\"%d}\", numbers[numbers.length-1]);\r\n\t\t\treturn base;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Determine if two instances of BettiNumbers are equal.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * param  obj    Object to check equality against.\r\n\t\t * @return      True if equal, else false.\r\n\t\t */        \r\n\t\tpublic boolean equals(Object obj) {\r\n\t\t\tif (!(obj instanceof BettiNumbers))\r\n\t\t\t\treturn false;\r\n\t\t\tBettiNumbers b = (BettiNumbers) obj;\r\n\t\t\treturn Plex.equalPtArrays(numbers, b.numbers);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Summarize the semi-infinite PersistenceIntervals.\r\n\t *\r\n\t * <p>\r\n\t * @param      coll  A collection of PersistenceIntervals.\r\n\t * @return     An instance of Plex.BettiNumbers.\r\n\t */\r\n\tpublic static BettiNumbers FilterInfinite(PersistenceInterval[] coll) {\r\n\t\tint max_dimension = 0;\r\n\t\tfor (PersistenceInterval i : coll) {\r\n\t\t\tif (i.infiniteExtent() && (i.dimension > max_dimension))\r\n\t\t\t\tmax_dimension = i.dimension;\r\n\t\t}\r\n\t\tint[] results = new int[max_dimension+1];\r\n\t\tfor (PersistenceInterval i : coll) {\r\n\t\t\tif (i.infiniteExtent())\r\n\t\t\t\tresults[i.dimension]++;\r\n\t\t}\r\n\t\treturn new BettiNumbers(results);\r\n\t}\r\n\r\n\t/**\r\n\t * Summarize the semi-infinite PersistenceBasisIntervals.\r\n\t *\r\n\t * <p>\r\n\t * @param coll A collection of PersistenceBasisIntervals.\r\n\t * @return An isntance of Plex.BettiNumbers.\r\n\t */\r\n\tpublic static BettiNumbers FilterInfinite(PersistenceBasisInterval[] coll) {\r\n\t\tint max_dimension = 0;\r\n\t\tfor(PersistenceBasisInterval i : coll) {\r\n\t\t\tif (i.infiniteExtent() && (i.dimension > max_dimension))\r\n\t\t\t\tmax_dimension = i.dimension;\r\n\t\t}\r\n\t\tint[] results = new int[max_dimension+1];\r\n\t\tfor(PersistenceBasisInterval i : coll) {\r\n\t\t\tif (i.infiniteExtent())\r\n\t\t\t\tresults[i.dimension]++;\r\n\t\t}\r\n\t\treturn new BettiNumbers(results);\r\n\t}\r\n\r\n\t/**\r\n\t * Create an empty SimplexStream.Stack.\r\n\t *\r\n\t * <p> The object returned from this method can be used to create a new\r\n\t * SimplexStream from the contents of another one, or using an\r\n\t * Interator<Simplex> constructed from such a stream.  <p>\r\n\t *\r\n\t * @param      max_findex   Largest filtration index used by entries in this stream.\r\n\t * @param      max_dimension Maximum dimension of Simplex instances stored in this stream.\r\n\t * @return    An empty SimplexStream.Stack.\r\n\t *\r\n\t */\r\n\tpublic static SimplexStream.Stack SimplexStack(int max_findex, int max_dimension) {\r\n\t\treturn new SimplexStream.Stack(max_findex, max_dimension);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Create a Persistence instance.\r\n\t *\r\n\t * <p> Used to calculate persistent homology; e.g., p.computeIntervals(stream).\r\n\t *\r\n\t * @return    A new Persistence instance.\r\n\t *\r\n\t */\r\n\tpublic static Persistence Persistence () {\r\n\t\treturn new Persistence();\r\n\t}\r\n\r\n\t/**\r\n\t * Create a PersistenceBasis instance.\r\n\t *\r\n\t * <p> Used to calculate persistent homology returning bases for the resulting intervals;\r\n\t * e.g., p.computeIntervals(stream).\r\n\t *\r\n\t * @return    A new PersistenceBasis instance.\r\n\t *\r\n\t */\r\n\tpublic static PersistenceBasis PersistenceBasis () {\r\n\t\treturn new PersistenceBasis();\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Create a random EuclideanArrayData instance.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      num_pts  How many points.\r\n\t * @param      dimension Dimension of the space.\r\n\t * @return    A randomly generated EuclideanArrayData instance.\r\n\t *\r\n\t */\r\n\tpublic static EuclideanArrayData  EuclideanArrayData(int num_pts, int dimension) {\r\n\t\treturn new EuclideanArrayData(num_pts, dimension);\r\n\t}\r\n\r\n\t/**\r\n\t * Create a EuclideanArrayData instance from a data array.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param     data  The data.\r\n\t * @param     dimension  The dimension of the data.\r\n\t * @return    EuclideanArrayData instance encapsulating the argument data.\r\n\t *\r\n\t */\r\n\tpublic static EuclideanArrayData EuclideanArrayData(double[] data, int dimension) {\r\n\t\treturn new EuclideanArrayData(data, dimension);\r\n\t}\r\n\r\n\t/**\r\n\t * Create a EuclideanArrayData instance from a double[][].\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param     data  The data.\r\n\t * @return    EuclideanArrayData instance encapsulating the argument data.\r\n\t *\r\n\t */\r\n\tpublic static EuclideanArrayData EuclideanArrayData(double[][] data) {\r\n\t\treturn new EuclideanArrayData(data);\r\n\t}\r\n\r\n\t/**\r\n\t * Create a EuclideanArrayData instance from a text file containing a\r\n\t * distance matrix.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param     filename  The name of the datafile.\r\n\t * @return    EuclideanArrayData instance encapsulating the argument data.\r\n\t *\r\n\t */\r\n\tpublic static EuclideanArrayData EuclideanArrayData(String filename) {\r\n\t\treturn new EuclideanArrayData(readMatrix(filename));\r\n\t}\r\n\r\n\t/**\r\n\t * Read a double[][] from a stream. The format is fairly general, where\r\n\t * the elements are separated by whitespace and all the elements for each\r\n\t * row appear on a single line, and the last row is followed by a blank\r\n\t * line.\r\n\t * @param input A Reader instance.\r\n\t * @return The matrix as a double[][].\r\n\t */\r\n\tpublic static double[][] readMatrix(Reader input) {\r\n\t\ttry {\r\n\t\t\tStreamTokenizer tokenizer= new StreamTokenizer(input);\r\n\r\n\t\t\t// Although StreamTokenizer will parse numbers, it doesn't recognize\r\n\t\t\t// scientific notation (E or D); however, Double.valueOf does.\r\n\t\t\t// The strategy here is to disable StreamTokenizer's number parsing.\r\n\t\t\t// We'll only get whitespace delimited words, EOL's and EOF's.\r\n\t\t\t// These words should all be numbers, for Double.valueOf to parse.\r\n\r\n\t\t\ttokenizer.resetSyntax();\r\n\t\t\ttokenizer.wordChars(0,255);\r\n\t\t\ttokenizer.whitespaceChars(0, ' ');\r\n\t\t\ttokenizer.eolIsSignificant(true);\r\n\t\t\tArrayList<Double> first_row = new ArrayList<Double>();\r\n\t\t\tArrayList<double[]> all_rows = new ArrayList<double[]>();\r\n\r\n\t\t\t// Ignore initial empty lines\r\n\t\t\twhile (tokenizer.nextToken() == StreamTokenizer.TT_EOL);\r\n\t\t\tif (tokenizer.ttype == StreamTokenizer.TT_EOF)\r\n\t\t\t\tthrow new java.io.IOException(\"Unexpected EOF on matrix read.\");\r\n\t\t\tdo {\r\n\t\t\t\tfirst_row.add(Double.valueOf(tokenizer.sval)); // Read & store 1st row.\r\n\t\t\t} while (tokenizer.nextToken() == StreamTokenizer.TT_WORD);\r\n\r\n\t\t\tint n = first_row.size();  // Now we've got the number of columns!\r\n\t\t\tdouble row[] = new double[n];\r\n\t\t\tfor (int j=0; j<n; j++)  // extract the elements of the 1st row.\r\n\t\t\t\trow[j]=first_row.get(j).doubleValue();\r\n\t\t\tfirst_row.clear();\r\n\t\t\tall_rows.add(row);  // Now process the rows\r\n\t\t\twhile (tokenizer.nextToken() == StreamTokenizer.TT_WORD) {\r\n\t\t\t\t// While non-empty lines\r\n\t\t\t\tall_rows.add(row = new double[n]);\r\n\t\t\t\tint j = 0;\r\n\t\t\t\tdo {\r\n\t\t\t\t\tif (j >= n) throw new java.io.IOException\r\n\t\t\t\t\t(\"Row \" + all_rows.size() + \" is too long.\");\r\n\t\t\t\t\trow[j++] = Double.valueOf(tokenizer.sval).doubleValue();\r\n\t\t\t\t} while (tokenizer.nextToken() == StreamTokenizer.TT_WORD);\r\n\t\t\t\tif (j < n) throw new java.io.IOException\r\n\t\t\t\t(\"Row \" + all_rows.size() + \" is too short.\");\r\n\t\t\t}\r\n\t\t\tdouble[][] A = all_rows.toArray(new double[all_rows.size()][]);\r\n\t\t\treturn A;\r\n\t\t} catch(IOException e) {\r\n\t\t\t// Make this a RuntimeException so this is easier to call from\r\n\t\t\t// the interpreter.\r\n\t\t\tthrow new IllegalStateException(e.getMessage());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Read a double[][] from a file. The format is fairly general, where\r\n\t * the elements are separated by whitespace and all the elements for each\r\n\t * row appear on a single line, and the last row is followed by a blank\r\n\t * line.\r\n\t * @param inputFilename An input file.\r\n\t * @return The matrix as a double[][].\r\n\t */\r\n\tpublic static double[][] readMatrix(String inputFilename) {\r\n\t\tInputStreamReader reader = null;\r\n\t\ttry {\r\n\t\t\treader = \r\n\t\t\t\tnew InputStreamReader(new FileInputStream(new File(inputFilename)));\r\n\t\t} catch(IOException e) {\r\n\t\t\t// Make this a RuntimeException so this is easier to call from\r\n\t\t\t// the interpreter.\r\n\t\t\tthrow new IllegalStateException(\"Failed opening matrix file \\\"\" +\r\n\t\t\t\t\tinputFilename + \"\\\": \" + e.getMessage());\r\n\t\t} \r\n\r\n\t\ttry {\r\n\t\t\treturn readMatrix(reader);\r\n\t\t} catch(IllegalStateException e) {\r\n\t\t\t// Catch and rethrow so we get the filename in it\r\n\t\t\tthrow new IllegalStateException(\"Failed reading matrix from file \\\"\" +\r\n\t\t\t\t\tinputFilename + \"\\\": \" + e.getMessage());\r\n\t\t}\r\n\t}\r\n\r\n\t// make sure that the matrix is square\r\n\tprotected static boolean d_okay(double[][] d) {\r\n\t\tfor(int i = 0; i < d.length; i++) {\r\n\t\t\tif (d.length != d[i].length)\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Create a DistanceData instance.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      d  The distance matrix\r\n\t * @return    A DistanceData instance.\r\n\t *\r\n\t */\r\n\tpublic static DistanceData  DistanceData(double[][] d) {\r\n\t\tassert d_okay(d);\r\n\t\treturn new DistanceData(d);\r\n\t}\r\n\r\n\t/**\r\n\t * Create a Torus with a given granulatity.\r\n\t * <p>\r\n\t *\r\n\t * @param      n   Split the Torus into n^^d squares, return the corners.\r\n\t * @return    PointData for a d-dimensional Torus.\r\n\t *\r\n\t */\r\n\tpublic static Torus Torus (int n, int d) {\r\n\t\treturn new Torus(n, d);\r\n\t}\r\n\r\n\t/**\r\n\t * Make a stream of the simplices in a Rips complex for given data set.\r\n\t * <p>\r\n\t * @param      delta Granularity to apply to the underlying metric. \r\n\t * @param      max_distance   Maximum edge length we will consider.\r\n\t * @param      max_d   Maximum dimension of Simplex instances we construct.\r\n\t * @param      data   Metric data to use in constructing stream.\r\n\t *\r\n\t * @return    A SimplexStream.Stack containing the Rips complex.\r\n\t */\r\n\tpublic static RipsStream RipsStream(double delta, int max_d, \r\n\t\t\tdouble max_distance, PointData data) {\r\n\t\treturn new RipsStream(delta, max_d, max_distance, data);\r\n\t}\r\n\r\n\t/**\r\n\t * Make an empty ExplicitStream. These are normally populated \"by hand\".\r\n\t * <p>\r\n\t *\r\n\t * @return    An empty ExplicitStream.\r\n\t */\r\n\tpublic static ExplicitStream ExplicitStream() {\r\n\t\treturn new ExplicitStream();\r\n\t}\r\n\r\n\t/**\r\n\t * Convert a SimplexStream into an explicit one.\r\n\t *\r\n\t * <p>\r\n\t * @param      str A SimplexStream instance.\r\n\t * @return     An ExplicitStream with equivalent Simplex entries.\r\n\t *\r\n\t */\r\n\tpublic static ExplicitStream makeExplicit(SimplexStream str) {\r\n\t\treturn ExplicitStream.makeExplicit(str);\r\n\t}\r\n\r\n\t/**\r\n\t * Make a new SimplexTable.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      limit   An upper bound on the number of simplices that \r\n\t *         will be interned in the table.\r\n\t *\r\n\t * @return    An empty SimplexTable.\r\n\t *\r\n\t * @see        edu.stanford.math.plex.SimplexTable#SimplexTable\r\n\t */\r\n\tpublic static SimplexTable SimplexTable (int limit) {\r\n\t\treturn new SimplexTable(limit);\r\n\t}\r\n\r\n\t/**\r\n\t * Make a stream of the simplices in a Witness complex for data.\r\n\t * <p>\r\n\t * @param      delta Granularity to apply to the underlying metric.\r\n\t * @param      max_d   Maximum dimension of Simplex instances we construct.\r\n\t * @param      R   Maximum R we will use.\r\n\t * @param      landmarks Indices of points to use as landmarks. The\r\n\t *                        simplices constructed will use the landmark\r\n\t *                        indices, rather than the indices into data.\r\n\t * @param      data   Metric data to use in constructing stream.\r\n\t *\r\n\t * @return    A WitnessStream for the given data.\r\n\t */\r\n\tpublic static WitnessStream WitnessStream(double delta, int max_d, double R, \r\n\t\t\tint[] landmarks, PointData data) {\r\n\t\treturn new WitnessStream(delta, max_d, R, landmarks, data);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Make a stream of the simplices in a lazy Witness complex for data.\r\n\t * <p>\r\n\t * @param      delta Granularity to apply to the underlying metric.\r\n\t * @param      max_d   Maximum dimension of Simplex instances we construct.\r\n\t * @param      R   Maximum R we will use.\r\n\t * @param      nu     See <i>Topological estimation using witness complexes</i>, above.\r\n\t * @param      landmarks Indices of points to use as landmarks. The\r\n\t *                        simplices constructed will use the landmark\r\n\t *                        indices, rather than the indices into data.\r\n\t * @param      data   Metric data to use in constructing stream.\r\n\t *\r\n\t * @return    A LazyWitnessStream for the given data.\r\n\t */\r\n\tpublic static LazyWitnessStream LazyWitnessStream(double delta, int max_d, \r\n\t\t\tdouble R, int nu, int[] landmarks, \r\n\t\t\tPointData data) {\r\n\t\treturn new LazyWitnessStream(delta, max_d, R, nu, landmarks, data);\r\n\t}\r\n\r\n\t// Get rid of really short PersistenceInterval.Float instances.\r\n\tprotected static PersistenceInterval.Float[] filter_pintervals\r\n\t(PersistenceInterval.Float[] vec, double delta) {\r\n\t\tint return_len = 0;\r\n\t\tfor (int i = 0; i < vec.length; i++) {\r\n\t\t\tPersistenceInterval.Float p = vec[i];\r\n\t\t\tif (Math.abs(p.start - p.start) > delta)\r\n\t\t\t\treturn_len++;\r\n\t\t}\r\n\t\tPersistenceInterval.Float[] return_value = \r\n\t\t\tnew PersistenceInterval.Float[return_len];\r\n\t\treturn_len = 0;\r\n\t\tfor (int i = 0; i < vec.length; i++) {\r\n\t\t\tPersistenceInterval.Float p = vec[i];\r\n\t\t\tif (Math.abs(p.start - p.start) > delta)\r\n\t\t\t\treturn_value[return_len++] = vec[i];\r\n\t\t}\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t/**\r\n\t * Are two PersistenceInterval.Float[] arguments sufficiently equal?\r\n\t *\r\n\t * <p>\r\n\t * @param      arg1 PersistenceInterval.Float[].\r\n\t * @param      arg2 PersistenceInterval.Float[].\r\n\t * @param      delta double\r\n\t * @return     true if the arguments are equivalent up the precision of the stream and delta.\r\n\t *\r\n\t */\r\n\tpublic static boolean equalPersistenceIntervals(PersistenceInterval.Float[] arg1, \r\n\t\t\tPersistenceInterval.Float[] arg2, \r\n\t\t\tdouble delta) {\r\n\t\tif (arg1 == arg2)\r\n\t\t\treturn true; \r\n\t\telse {\r\n\t\t\targ1 = filter_pintervals(arg1, delta);\r\n\t\t\targ2 = filter_pintervals(arg2, delta);\r\n\t\t\tif (arg1.length != arg2.length)\r\n\t\t\t\treturn false;\r\n\t\t\tfor (int i = 0; i < arg1.length; i++) {\r\n\t\t\t\tPersistenceInterval.Float p1 = arg1[i];\r\n\t\t\t\tPersistenceInterval.Float p2 = arg2[i];\r\n\t\t\t\tif ((Math.abs(p1.start - p2.start) > 1.5 * delta) ||\r\n\t\t\t\t\t\t(Math.abs(p1.end - p2.end) > 1.5 * delta))\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t// Find the smallest \"two decimal digit\" double >= arg.\r\n\tprotected static double normalizeUpperBound(double arg) {\r\n\t\tif (arg < 1.0) {\r\n\t\t\tdouble current = .1;\r\n\t\t\twhile (current > arg) {\r\n\t\t\t\tcurrent *= .1;\r\n\t\t\t}\r\n\t\t\treturn (current * normalizeUpperBound(arg/current));\r\n\t\t} else if (arg > 10.0) {\r\n\t\t\tdouble current = 10.0;\r\n\t\t\twhile (current < arg) {\r\n\t\t\t\tcurrent *= 10.0;\r\n\t\t\t}\r\n\t\t\treturn (current * normalizeUpperBound(arg/current));\r\n\t\t} else {\r\n\t\t\tassert((arg >= 1.0) || (arg <= 10.0));\r\n\t\t\tif ((arg == 1.0) || (arg == 10.0))\r\n\t\t\t\treturn arg;\r\n\t\t\telse \r\n\t\t\t\treturn ((double)(((int)(10.0*arg)) + 1))/10.0;\r\n\t\t}\r\n\t}\r\n\r\n\t// Convert arg into ordered and sorted-by-dimension double[2], suitable for\r\n\t// printing.\r\n\tprotected static double[][][] printable_intervals(PersistenceInterval[] arg) {\r\n\t\tPersistenceInterval[][] pi_tmp;\r\n\t\tdouble[][][] print_copy;\r\n\t\t{\r\n\t\t\tint[] dimensions = new int[0];\r\n\t\t\tint max_dimension = -1;\r\n\t\t\tfor (int i = 0; i < arg.length; i++) {\r\n\t\t\t\tif (arg[i].dimension >= dimensions.length) {\r\n\t\t\t\t\tint[] new_dimensions = new int[Math.max(arg[i].dimension+1, 2*dimensions.length)];\r\n\t\t\t\t\tfor (int j = 0; j < dimensions.length; j++) {\r\n\t\t\t\t\t\tnew_dimensions[j] = dimensions[j];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdimensions = new_dimensions;\r\n\t\t\t\t}\r\n\t\t\t\tmax_dimension = Math.max(max_dimension, arg[i].dimension);\r\n\t\t\t\tdimensions[arg[i].dimension]++;\r\n\t\t\t}\r\n\t\t\tpi_tmp = new PersistenceInterval[max_dimension+1][];\r\n\t\t\tprint_copy = new double[max_dimension+1][][];\r\n\t\t\tfor (int i = 0; i < pi_tmp.length; i++) {\r\n\t\t\t\tpi_tmp[i] = new PersistenceInterval[dimensions[i]];\r\n\t\t\t}\r\n\t\t}\r\n\t\t{\r\n\t\t\tint[] counters = new int[pi_tmp.length];\r\n\t\t\tfor (int i = 0; i < arg.length; i++) {\r\n\t\t\t\tint d = arg[i].dimension;\r\n\t\t\t\tpi_tmp[d][counters[d]++] = arg[i];\r\n\t\t\t}\r\n\t\t\tfor (int i = 0; i < pi_tmp.length; i++) {\r\n\t\t\t\tArrays.sort(pi_tmp[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (int i = 0; i < pi_tmp.length; i++) {\r\n\t\t\tprint_copy[i] = new double[pi_tmp[i].length][];\r\n\t\t\tfor (int j = 0; j < pi_tmp[i].length; j++) {\r\n\t\t\t\tprint_copy[i][j] = pi_tmp[i][j].toDouble();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn print_copy;\r\n\t}\r\n\r\n\t/**\r\n\t * Plot an array of Plex barcodes (that is, a PersistenceInterval[]).\r\n\t *\r\n\t * <p>\r\n\t * @param      arg PersistenceInterval[].\r\n\t * @param      label A String to use as the label.\r\n\t * @param upperBound A limit on the plot width. This limit is not strict.\r\n\t *                   The actual plotted range will be at least this size,\r\n\t *                   and no larger than 10% greater.\r\n\t */\r\n\tpublic static void plot(PersistenceInterval[] arg, String label, double upperBound) {\r\n\t\tdouble[][][] print_tmp = printable_intervals(arg);\r\n\t\tfor (int i = 0; i < print_tmp.length; i++) {\r\n\t\t\tif (print_tmp[i].length > 0) {\r\n\t\t\t\tBCPlot.doPlot(String.format(\"%s: Dimension %d\", label, i),\r\n\t\t\t\t\t\tprint_tmp[i], normalizeUpperBound(upperBound));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Plot an array of Plex barcodes computed with bases.\r\n\t *\r\n\t * <p>\r\n\t * @param arg PersistenceBasisInterval[].\r\n\t * @param label A string to use as a label.\r\n\t * @param upperBound A limit on the plot width. This limit is not strict.\r\n\t *            The actual plotted range will be at least this size, and \r\n\t *            no larger than 10% greater.\r\n\t */\r\n\tpublic static void plot(PersistenceBasisInterval[] arg,\r\n\t\t\tString label, \r\n\t\t\tdouble upperBound) {\r\n\t\tPersistenceInterval[] newarg = new PersistenceInterval[arg.length];\r\n\t\tfor(int i = 0; i < arg.length; i++)\r\n\t\t\tnewarg[i] = arg[i].toPersistenceInterval();\r\n\t\tplot(newarg, label, upperBound);\r\n\t}\r\n\r\n\t/**\r\n\t * Make a scatterplot of a PersistenceInterval[].\r\n\t *\r\n\t * <p>\r\n\t * @param      arg PersistenceInterval[].\r\n\t * @param      label A String to use as the label.\r\n\t * @param upperBound A limit on the plot width. This limit is not strict.\r\n\t *                   The actual plotted range will be at least this size,\r\n\t *                   and no larger than 10% greater.\r\n\t */\r\n\tpublic static void scatter(PersistenceInterval[] arg, String label, double upperBound) {\r\n\t\tdouble[][][] print_tmp = printable_intervals(arg);\r\n\t\tfor (int i = 0; i < print_tmp.length; i++) {\r\n\t\t\tif (print_tmp[i].length > 0) {\r\n\t\t\t\tBCPlot.doScatter(String.format(\"%s: Dimension %d\", label, i),\r\n\t\t\t\t\t\tprint_tmp[i], normalizeUpperBound(upperBound));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/** \r\n\t * Make a scatterplot of a PersistenceBasisInterval[].\r\n\t *\r\n\t * <p>\r\n\t * @param   arg PersistenceBasisInterval[].\r\n\t * @param      label A String to use as the label.\r\n\t * @param upperBound A limit on the plot width. This limit is not strict.\r\n\t *                    The actual plotted range will be at least this size,\r\n\t *                    and no larger than 10% greater.\r\n\t */\r\n\tpublic static void scatter(PersistenceBasisInterval[] arg,\r\n\t\t\tString label,\r\n\t\t\tdouble upperBound) {\r\n\t\tPersistenceInterval[] newarg = new PersistenceInterval[arg.length];\r\n\t\tfor(int i = 0; i < arg.length; i++) \r\n\t\t\tnewarg[i] = arg[i].toPersistenceInterval();\r\n\t\tscatter(newarg, label, upperBound);\r\n\t}\r\n\r\n\tprotected static boolean useMessageWindow = false;\r\n\r\n\t/**\r\n\t * Use a PlexMessageWindow for messages?\r\n\t *\r\n\t * <p>\r\n\t * @param      flag Set useMessageWindow.\r\n\t */\r\n\tpublic static void useMessageWindow(boolean flag) {\r\n\t\tuseMessageWindow = flag;\r\n\t}\r\n\r\n\t/**\r\n\t * Should we use a PlexMessageWindow for messages?\r\n\t *\r\n\t * <p>\r\n\t * @return true if a PlexMessageWindow is preferable, else false.\r\n\t */\r\n\tpublic static boolean useMessageWindow() {\r\n\t\treturn useMessageWindow;\r\n\t}\r\n\r\n\t/**\r\n\t * Make a Plex message window.\r\n\t *\r\n\t * <p>\r\n\t * @param      title Window title.\r\n\t * @return     A PlexMessageWindow instance.\r\n\t */\r\n\tpublic static PlexMessageWindow messageWindow(String title) {\r\n\t\treturn new PlexMessageWindow(title);\r\n\t}\r\n\r\n\t/**\r\n\t * Entry point to Plex from the java interpreter. \r\n\t *\r\n\t * <p> This stub will, when time permits, be turned into something that\r\n\t * allows users to make some non-trivial use of Plex from the java\r\n\t * launcher.  \r\n\t * <p>\r\n\t *\r\n\t * @param      args   Strings that will need to be parsed.\r\n\t *\r\n\t */\r\n\tpublic static void main(String[] args) {\r\n\t\tSimplexStream stream = TmpStream.PaperTestCase();\r\n\t\tPersistence P = new Persistence();\r\n\t\tPersistenceInterval[] intervals = P.computeIntervals(stream);\r\n\t\tfor (PersistenceInterval i : intervals) {\r\n\t\t\tSystem.out.printf(\"%s\\n\", i.toString());\r\n\t\t}\r\n\t\tplot(intervals, \"Main Test\", 26.23);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/PlexMessageWindow.java",
    "content": "package edu.stanford.math.plex;\r\nimport java.awt.BorderLayout;\r\n\r\nimport javax.swing.JFrame;\r\nimport javax.swing.JScrollPane;\r\nimport javax.swing.JTextPane;\r\nimport javax.swing.text.BadLocationException;\r\nimport javax.swing.text.DefaultStyledDocument;\r\nimport javax.swing.text.Style;\r\nimport javax.swing.text.StyleConstants;\r\nimport javax.swing.text.StyleContext;\r\nimport javax.swing.text.StyledDocument;\r\n\r\n/**\r\n * A <code>PlexMessageWindow</code> instance is a scrollable text window in\r\n * which we can insert messages.\r\n *\r\n * @version $Id$\r\n */\r\npublic class PlexMessageWindow {\r\n\r\n\tprotected JFrame frame;\r\n\tprotected StyledDocument document;\r\n\tprotected StyleContext context;\r\n\tprotected Style style;\r\n\tprotected JTextPane textPane;\r\n\tprotected JScrollPane scrollPane;\r\n\r\n\t/**\r\n\t * Create a new PlexMessageWindow with the given title.\r\n\t * <p>\r\n\t * @param      title Title string for the window.\r\n\t */\r\n\tpublic PlexMessageWindow(String title) {\r\n\t\tframe = new JFrame(title);\r\n\t\tframe.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);\r\n\t\tcontext = new StyleContext();\r\n\t\tdocument = new DefaultStyledDocument(context);\r\n\t\tstyle = context.getStyle(StyleContext.DEFAULT_STYLE);\r\n\t\tStyleConstants.setAlignment(style, StyleConstants.ALIGN_LEFT);\r\n\t\tStyleConstants.setFontSize(style, 14);\r\n\t\t//StyleConstants.setSpaceAbove(style, 1);\r\n\t\t//StyleConstants.setSpaceBelow(style, 1);\r\n\t\ttextPane = new JTextPane(document);\r\n\t\ttextPane.setEditable(false);\r\n\t\tscrollPane = new JScrollPane(textPane);\r\n\t\tframe.add(scrollPane, BorderLayout.CENTER);\r\n\t\tframe.setSize(300, 150);\r\n\t}\r\n\r\n\t/**\r\n\t * Print a message string in the window.\r\n\t * <p>\r\n\t * @param      messageString  String to print.\r\n\t */\r\n\tpublic void message(String messageString) {\r\n\t\tfinal String msg = messageString;\r\n\t\tjavax.swing.SwingUtilities.invokeLater\r\n\t\t(new Runnable() {\r\n\t\t\tpublic void run() {\r\n\t\t\t\ttry {\r\n\t\t\t\t\ttextPane.setEditable(true);\r\n\t\t\t\t\tdocument.insertString(document.getLength(), msg, style);\r\n\t\t\t\t\tframe.setVisible(true);\r\n\t\t\t\t} catch (BadLocationException e) {\r\n\t\t\t\t\tthrow new IllegalStateException(\"Failed to display message: \" + \r\n\t\t\t\t\t\t\tmsg);\r\n\t\t\t\t}\r\n\t\t\t\ttextPane.setEditable(false);\r\n\t\t\t}   \r\n\t\t});\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/PlexSort.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * The <code>PlexSort</code> class provides a sorting routine that I'd prefer\r\n * was part of the standard libraries.\r\n *\r\n * @version $Id$\r\n */\r\npublic class PlexSort {\r\n\r\n\t/**\r\n\t * Instances of the <code>Comp</code> inner class are used as comparison\r\n\t * closures for the sorting routine <code>comp_sort</code>. In addition\r\n\t * to the obvious uses, such as sorting in decreasing order, using\r\n\t * closures allows us to sort arrays of points by increasing or\r\n\t * decreasing density (or any other real-valued function on the points).\r\n\t * There are also some slightly non-obvious applications, which we\r\n\t * probably won't use here, such a computing the inverse of a permutation\r\n\t * stored in an array p[]. If p is [1,2,0] -- that is, the permutation\r\n\t * mapping 0->1, 1->2, 2->0, then let x = [0,1,2], and sort the entries\r\n\t * of x[i] so that x[i] is less than x[j] iff p[x[i]] < p[x[j]]. Then the\r\n\t * sorted contents of x are [2,0,1]. This is the inverse of p[].\r\n\t *\r\n\t */\r\n\tpublic static abstract class Comp {\r\n\t\t/**\r\n\t\t * Compare two int arguments, and return an integer less than, equal\r\n\t\t * to, or greater than 0, depending on whether i is respectively less,\r\n\t\t * equivalent, or greater than, j.\r\n\t\t *\r\n\t\t * @param      i The first argument.\r\n\t\t * @param      j The second argument.\r\n\t\t * @return     an int that is -/0/+ -- intuitively, return (i-j) for \r\n\t\t *             an increasing sort.\r\n\t\t */\r\n\t\tpublic abstract int fn(int i, int j);\r\n\t}\r\n\r\n\tpublic static abstract class CompL {\r\n\t\t/**\r\n\t\t * Compare two long arguments, and return an integer less than, equal\r\n\t\t * to, or greater than 0, depending on whether i is respectively less,\r\n\t\t * equivalent, or greater than, j.\r\n\t\t *\r\n\t\t * @param      i The first argument.\r\n\t\t * @param      j The second argument.\r\n\t\t * @return     an int that is -/0/+ -- intuitively, return (i-j) for \r\n\t\t *             an increasing sort.\r\n\t\t */\r\n\t\tpublic abstract int fn(long i, long j);\r\n\t}\r\n\r\n\tpublic static abstract class CompObj {\r\n\t\t/**\r\n\t\t * Compare two object arguments, and return an integer less than, equal\r\n\t\t * to, or greater than 0, depending on whether i is respectively less,\r\n\t\t * equivalent, or greater than, j.\r\n\t\t *\r\n\t\t * @param      o1 The first argument.\r\n\t\t * @param      o2 The second argument.\r\n\t\t * @return     an int that is -/0/+ -- intuitively, return (i-j) for \r\n\t\t *             an increasing sort.\r\n\t\t */\r\n\t\tpublic abstract int fn(Object o1 , Object o2);\r\n\t}\r\n\r\n\t// Exchange contents of x[i] and x[j].\r\n\tprivate static void swap(int[] x, int i, int j) {\r\n\t\tint tmp = x[i];\r\n\t\tx[i] = x[j];\r\n\t\tx[j] = tmp;\r\n\t}\r\n\r\n\t// Returns the index of the median of the three argument entries.\r\n\tprivate static int med3(int[] x, int a, int b, int c, Comp comp) {\r\n\t\tint xa = x[a];\r\n\t\tint xb = x[b];\r\n\t\tint xc = x[c];\r\n\t\treturn ((comp.fn(xa, xb) < 0)?\r\n\t\t\t\t((comp.fn(xb, xc) < 0)?b:((comp.fn(xa, xc)<0)?c:a)):\r\n\t\t\t\t\t((comp.fn(xb, xc) > 0)?b:((comp.fn(xa, xc)>0)?c:a)));\r\n\t}\r\n\r\n\t// Exchange subintervals [i, i+(len-1)] and [j, j+(len-1)] in x[]; \r\n\tprivate static void swapfunc(int[] x, int i, int j, int len) {\r\n\t\tint stop = j + len;\r\n\t\twhile (j < stop) {\r\n\t\t\tint tmp = x[i];\r\n\t\t\tx[i] = x[j];\r\n\t\t\tx[j] = tmp;\r\n\t\t\ti++;\r\n\t\t\tj++;\r\n\t\t}\r\n\t}\r\n\r\n\t// Exchange contents of x[i] and x[j].\r\n\tprivate static void swap(long[] x, int i, int j) {\r\n\t\tlong tmp = x[i];\r\n\t\tx[i] = x[j];\r\n\t\tx[j] = tmp;\r\n\t}\r\n\r\n\t// Returns the index of the median of the three argument entries.\r\n\tprivate static int med3(long[] x, int a, int b, int c, CompL comp) {\r\n\t\tlong xa = x[a];\r\n\t\tlong xb = x[b];\r\n\t\tlong xc = x[c];\r\n\t\treturn ((comp.fn(xa, xb) < 0)?\r\n\t\t\t\t((comp.fn(xb, xc) < 0)?b:((comp.fn(xa, xc)<0)?c:a)):\r\n\t\t\t\t\t((comp.fn(xb, xc) > 0)?b:((comp.fn(xa, xc)>0)?c:a)));\r\n\t}\r\n\r\n\t// Exchange subintervals [i, i+(len-1)] and [j, j+(len-1)] in x[]; \r\n\tprivate static void swapfunc(long[] x, int i, int j, int len) {\r\n\t\tint stop = j + len;\r\n\t\twhile (j < stop) {\r\n\t\t\tlong tmp = x[i];\r\n\t\t\tx[i] = x[j];\r\n\t\t\tx[j] = tmp;\r\n\t\t\ti++;\r\n\t\t\tj++;\r\n\t\t}\r\n\t}\r\n\r\n\t// Exchange contents of x[i] and x[j].\r\n\tprivate static void swap(Object[] x, int i, int j) {\r\n\t\tObject tmp = x[i];\r\n\t\tx[i] = x[j];\r\n\t\tx[j] = tmp;\r\n\t}\r\n\r\n\t// Returns the index of the median of the three argument entries.\r\n\tprivate static int med3(Object[] x, int a, int b, int c, CompObj comp) {\r\n\t\tObject xa = x[a];\r\n\t\tObject xb = x[b];\r\n\t\tObject xc = x[c];\r\n\t\treturn ((comp.fn(xa, xb) < 0)?\r\n\t\t\t\t((comp.fn(xb, xc) < 0)?b:((comp.fn(xa, xc)<0)?c:a)):\r\n\t\t\t\t\t((comp.fn(xb, xc) > 0)?b:((comp.fn(xa, xc)>0)?c:a)));\r\n\t}\r\n\r\n\t// Exchange subintervals [i, i+(len-1)] and [j, j+(len-1)] in x[]; \r\n\tprivate static void swapfunc(Object[] x, int i, int j, int len) {\r\n\t\tint stop = j + len;\r\n\t\twhile (j < stop) {\r\n\t\t\tObject tmp = x[i];\r\n\t\t\tx[i] = x[j];\r\n\t\t\tx[j] = tmp;\r\n\t\t\ti++;\r\n\t\t\tj++;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sort a subarray of an int[] using a comparison function. The sort is\r\n\t * not stable, but it uses no extra storage, and seems to be faster in\r\n\t * practice then even insertion sort, although it doesn't have that\r\n\t * algorithm's guarantee of optimal worst-case behavior. <p>\r\n\t *\r\n\t * This code is copied with trivial alterations from \"Engineering a Sort\r\n\t * Function\", by Bentley and McIlroy. I have no idea why there isn't\r\n\t * something like this already available in the class java.util.Arrays --\r\n\t * apparently the sort routines in that class are based on the same\r\n\t * paper, but support for a comparison function has been removed.\r\n\t *\r\n\t * @param      x int[] to sort.\r\n\t * @param      start Beginning of subarray to sort.\r\n\t * @param      len Length of the subarray of x to sort.\r\n\t * @param      comp PlexSort.Comp instance to use in sorting.\r\n\t *\r\n\t */\r\n\tpublic static void comp_sort(int[] x, int start, int len, Comp comp) {\r\n\r\n\t\tif (len < 7) {\r\n\t\t\t// Use insertion sort on the smallest arrays.\r\n\t\t\tfor (int i = start; i< len + start; i++)\r\n\t\t\t\tfor (int j = i; (j > start) && (comp.fn(x[j-1], x[j]) > 0); j--) {\r\n\t\t\t\t\tswap(x, j, j-1);\r\n\t\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Partition on the middle entry for small arrays.\r\n\t\tint pm = start + len/2;       \r\n\t\tif (len > 7) {\r\n\t\t\tint p_bot = start;\r\n\t\t\tint p_top = start + len - 1;\r\n\t\t\tif (len > 40) {     \r\n\t\t\t\t// For big arrays, use the pseudomedian of 9 entries.\r\n\t\t\t\tint psm_incr = len/8;\r\n\t\t\t\tp_bot = med3(x, p_bot, p_bot+psm_incr, p_bot+(2*psm_incr), comp);\r\n\t\t\t\tpm = med3(x, pm-psm_incr, pm, pm+psm_incr, comp);\r\n\t\t\t\tp_top = med3(x, p_top-(2*psm_incr), p_top-psm_incr, p_top, comp);\r\n\t\t\t}\r\n\t\t\t// For mid-size arrays, use the pseudomedian of 3 entries.\r\n\t\t\tpm = med3(x, p_bot, pm, p_top, comp); \r\n\t\t}\r\n\t\tint partition_value = x[pm];\r\n\r\n\t\tint pa = start, pb = pa;\r\n\t\tint pc = start + len - 1, pd = pc;\r\n\t\twhile(true) {\r\n\t\t\tint comp_val;\r\n\t\t\twhile ((pb <= pc) && \r\n\t\t\t\t\t((comp_val = comp.fn(x[pb], partition_value)) <= 0)) {\r\n\t\t\t\tif (comp_val == 0) {\r\n\t\t\t\t\tswap(x, pa, pb);\r\n\t\t\t\t\tpa++;\r\n\t\t\t\t}\r\n\t\t\t\tpb++;\r\n\t\t\t}\r\n\t\t\twhile ((pc >= pb) && \r\n\t\t\t\t\t((comp_val = comp.fn(x[pc], partition_value)) >= 0)) {\r\n\t\t\t\tif (comp_val == 0) {\r\n\t\t\t\t\tswap(x, pc, pd);\r\n\t\t\t\t\tpd--;\r\n\t\t\t\t}\r\n\t\t\t\tpc--;\r\n\t\t\t}\r\n\t\t\tif (pb > pc)\r\n\t\t\t\tbreak;\r\n\t\t\tswap(x, pb, pc);\r\n\t\t\tpb++;\r\n\t\t\tpc--;\r\n\t\t}\r\n\r\n\t\tint pn = start + len;\r\n\t\tint s;\r\n\r\n\t\ts = Math.min(pa-start, pb-pa);  \r\n\t\tswapfunc(x, start, pb-s, s);\r\n\r\n\t\ts = Math.min(pd-pc, pn-pd-1);  \r\n\t\tswapfunc(x, pb, pn-s, s);\r\n\r\n\t\tif ((s = pb-pa) > 1)\r\n\t\t\tcomp_sort(x, start, s, comp);\r\n\t\tif ((s = pd-pc) > 1)\r\n\t\t\tcomp_sort(x, pn-s, s, comp);\r\n\t}\r\n\r\n\t/**\r\n\t * Same as comp_sort(int[], int, int, Comp), but for arrays of long.\r\n\t */\r\n\tpublic static void comp_sort(long[] x, int start, int len, CompL comp) {\r\n\r\n\t\tif (len < 7) {\r\n\t\t\t// Use insertion sort on the smallest arrays.\r\n\t\t\tfor (int i = start; i< len + start; i++)\r\n\t\t\t\tfor (int j = i; (j > start) && (comp.fn(x[j-1], x[j]) > 0); j--) {\r\n\t\t\t\t\tswap(x, j, j-1);\r\n\t\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Partition on the middle entry for small arrays.\r\n\t\tint pm = start + len/2;       \r\n\t\tif (len > 7) {\r\n\t\t\tint p_bot = start;\r\n\t\t\tint p_top = start + len - 1;\r\n\t\t\tif (len > 40) {     \r\n\t\t\t\t// For big arrays, use the pseudomedian of 9 entries.\r\n\t\t\t\tint psm_incr = len/8;\r\n\t\t\t\tp_bot = med3(x, p_bot, p_bot+psm_incr, p_bot+(2*psm_incr), comp);\r\n\t\t\t\tpm = med3(x, pm-psm_incr, pm, pm+psm_incr, comp);\r\n\t\t\t\tp_top = med3(x, p_top-(2*psm_incr), p_top-psm_incr, p_top, comp);\r\n\t\t\t}\r\n\t\t\t// For mid-size arrays, use the pseudomedian of 3 entries.\r\n\t\t\tpm = med3(x, p_bot, pm, p_top, comp); \r\n\t\t}\r\n\t\tlong partition_value = x[pm];\r\n\r\n\t\tint pa = start, pb = pa;\r\n\t\tint pc = start + len - 1, pd = pc;\r\n\t\twhile(true) {\r\n\t\t\tint comp_val;\r\n\t\t\twhile ((pb <= pc) && \r\n\t\t\t\t\t((comp_val = comp.fn(x[pb], partition_value)) <= 0)) {\r\n\t\t\t\tif (comp_val == 0) {\r\n\t\t\t\t\tswap(x, pa, pb);\r\n\t\t\t\t\tpa++;\r\n\t\t\t\t}\r\n\t\t\t\tpb++;\r\n\t\t\t}\r\n\t\t\twhile ((pc >= pb) && \r\n\t\t\t\t\t((comp_val = comp.fn(x[pc], partition_value)) >= 0)) {\r\n\t\t\t\tif (comp_val == 0) {\r\n\t\t\t\t\tswap(x, pc, pd);\r\n\t\t\t\t\tpd--;\r\n\t\t\t\t}\r\n\t\t\t\tpc--;\r\n\t\t\t}\r\n\t\t\tif (pb > pc)\r\n\t\t\t\tbreak;\r\n\t\t\tswap(x, pb, pc);\r\n\t\t\tpb++;\r\n\t\t\tpc--;\r\n\t\t}\r\n\r\n\t\tint pn = start + len;\r\n\t\tint s;\r\n\r\n\t\ts = Math.min(pa-start, pb-pa);  \r\n\t\tswapfunc(x, start, pb-s, s);\r\n\r\n\t\ts = Math.min(pd-pc, pn-pd-1);  \r\n\t\tswapfunc(x, pb, pn-s, s);\r\n\r\n\t\tif ((s = pb-pa) > 1)\r\n\t\t\tcomp_sort(x, start, s, comp);\r\n\t\tif ((s = pd-pc) > 1)\r\n\t\t\tcomp_sort(x, pn-s, s, comp);\r\n\t}\r\n\r\n\t/**\r\n\t * Same as comp_sort(int[], int, int, Comp), but for arrays of Object.\r\n\t */\r\n\tpublic static void comp_sort(Object[] x, int start, int len, CompObj comp) {\r\n\r\n\t\tif (len < 7) {\r\n\t\t\t// Use insertion sort on the smallest arrays.\r\n\t\t\tfor (int i = start; i< len + start; i++)\r\n\t\t\t\tfor (int j = i; (j > start) && (comp.fn(x[j-1], x[j]) > 0); j--) {\r\n\t\t\t\t\tswap(x, j, j-1);\r\n\t\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Partition on the middle entry for small arrays.\r\n\t\tint pm = start + len/2;       \r\n\t\tif (len > 7) {\r\n\t\t\tint p_bot = start;\r\n\t\t\tint p_top = start + len - 1;\r\n\t\t\tif (len > 40) {     \r\n\t\t\t\t// For big arrays, use the pseudomedian of 9 entries.\r\n\t\t\t\tint psm_incr = len/8;\r\n\t\t\t\tp_bot = med3(x, p_bot, p_bot+psm_incr, p_bot+(2*psm_incr), comp);\r\n\t\t\t\tpm = med3(x, pm-psm_incr, pm, pm+psm_incr, comp);\r\n\t\t\t\tp_top = med3(x, p_top-(2*psm_incr), p_top-psm_incr, p_top, comp);\r\n\t\t\t}\r\n\t\t\t// For mid-size arrays, use the pseudomedian of 3 entries.\r\n\t\t\tpm = med3(x, p_bot, pm, p_top, comp); \r\n\t\t}\r\n\t\tObject partition_value = x[pm];\r\n\r\n\t\tint pa = start, pb = pa;\r\n\t\tint pc = start + len - 1, pd = pc;\r\n\t\twhile(true) {\r\n\t\t\tint comp_val;\r\n\t\t\twhile ((pb <= pc) && \r\n\t\t\t\t\t((comp_val = comp.fn(x[pb], partition_value)) <= 0)) {\r\n\t\t\t\tif (comp_val == 0) {\r\n\t\t\t\t\tswap(x, pa, pb);\r\n\t\t\t\t\tpa++;\r\n\t\t\t\t}\r\n\t\t\t\tpb++;\r\n\t\t\t}\r\n\t\t\twhile ((pc >= pb) && \r\n\t\t\t\t\t((comp_val = comp.fn(x[pc], partition_value)) >= 0)) {\r\n\t\t\t\tif (comp_val == 0) {\r\n\t\t\t\t\tswap(x, pc, pd);\r\n\t\t\t\t\tpd--;\r\n\t\t\t\t}\r\n\t\t\t\tpc--;\r\n\t\t\t}\r\n\t\t\tif (pb > pc)\r\n\t\t\t\tbreak;\r\n\t\t\tswap(x, pb, pc);\r\n\t\t\tpb++;\r\n\t\t\tpc--;\r\n\t\t}\r\n\r\n\t\tint pn = start + len;\r\n\t\tint s;\r\n\r\n\t\ts = Math.min(pa-start, pb-pa);  \r\n\t\tswapfunc(x, start, pb-s, s);\r\n\r\n\t\ts = Math.min(pd-pc, pn-pd-1);  \r\n\t\tswapfunc(x, pb, pn-s, s);\r\n\r\n\t\tif ((s = pb-pa) > 1)\r\n\t\t\tcomp_sort(x, start, s, comp);\r\n\t\tif ((s = pd-pc) > 1)\r\n\t\t\tcomp_sort(x, pn-s, s, comp);\r\n\t}\r\n\r\n\t/**\r\n\t * Take an array of indices and sort them by the values in an array.\r\n\t * <p>\r\n\t * @param      indices An int[] of indices to be sorted.\r\n\t * @param      start The first entry in indices to be sort.\r\n\t * @param      end  The first entry in indices to not be sorted.\r\n\t * @param      vals An array of integer values against which to sort indices.\r\n\t * @param reverse A boolean which, if true, causes the indices to be\r\n\t * sorted into decreasing order.\r\n\t */\r\n\tpublic static void sort(int[] indices, int start, int end, \r\n\t\t\tfinal int[] vals, boolean reverse) {\r\n\t\tif (reverse) {\r\n\t\t\tcomp_sort(indices, start, end-start, \r\n\t\t\t\t\tnew Comp() {\r\n\t\t\t\tpublic int fn(int i, int j) { \r\n\t\t\t\t\treturn (vals[j]-vals[i]);\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t} else {\r\n\t\t\tcomp_sort(indices, start, end-start, \r\n\t\t\t\t\tnew Comp() {\r\n\t\t\t\tpublic int fn(int i, int j) { \r\n\t\t\t\t\treturn (vals[i]-vals[j]);\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static void sort(int[] indices, int start, int end, \r\n\t\t\tfinal double[] vals, boolean reverse) {\r\n\t\tif (reverse) {\r\n\t\t\tcomp_sort(indices, start, end-start, \r\n\t\t\t\t\tnew Comp() {\r\n\t\t\t\tpublic int fn(int i, int j) { \r\n\t\t\t\t\tif (vals[i] > vals[j])\r\n\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\telse if (vals[i] < vals[j])\r\n\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\treturn 0; \r\n\t\t\t\t} \r\n\t\t\t} );\r\n\t\t} else {\r\n\t\t\tcomp_sort(indices, start, end-start, \r\n\t\t\t\t\tnew Comp() {\r\n\t\t\t\tpublic int fn(int i, int j) { \r\n\t\t\t\t\tif (vals[i] < vals[j])\r\n\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\telse if (vals[i] > vals[j])\r\n\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static void sort(int[] indices, final int[] vals, boolean reverse) {\r\n\t\tsort(indices, 0, indices.length, vals, reverse);\r\n\t}\r\n\r\n\tpublic static void sort(int[] indices, final int[] vals) {\r\n\t\tsort(indices, 0, indices.length, vals, false);\r\n\t}\r\n\r\n\tpublic static void reverse_sort(int[] indices, final int[] vals) {\r\n\t\tsort(indices, 0, indices.length, vals, true);\r\n\t}\r\n\r\n\tpublic static void sort(int[] indices, final double[] vals, boolean reverse) {\r\n\t\tsort(indices, 0, indices.length, vals, reverse);\r\n\t}\r\n\r\n\tpublic static void sort(int[] indices, final double[] vals) {\r\n\t\tsort(indices, 0, indices.length, vals, false);\r\n\t}\r\n\r\n\tpublic static void reverse_sort(int[] indices, final double[] vals) {\r\n\t\tsort(indices, 0, indices.length, vals, true);\r\n\t}\r\n\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/PointData.java",
    "content": "package edu.stanford.math.plex;\r\nimport java.util.Arrays;\r\nimport java.util.Iterator;\r\nimport java.util.Random;\r\n\r\n/**\r\n * A <code>PointData</code> instance encodes distance information for a\r\n * data set.\r\n *\r\n * @version $Id$\r\n */\r\npublic abstract class PointData {\r\n\r\n\r\n\tprotected static Random rand = null;\r\n\r\n\t/**\r\n\t * Distance between 2 points.\r\n\t * <p>\r\n\t *\r\n\t * @param      p1   index of the first point\r\n\t * @param      p2   index of the second point\r\n\t * @return     distance between the two points.\r\n\t */    \r\n\tabstract public double distance(int p1, int p2);\r\n\r\n\t/**\r\n\t * The number of points in this data set. \r\n\t * \r\n\t * <p> Indexing begins from 1, not 0, which means that the points go\r\n\t * from 1 to count(), inclusive. It is acceptable for an implementation\r\n\t * to allow points to be added.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     The number of points in the data set.\r\n\t */    \r\n\tabstract public int count();\r\n\r\n\r\n\t/**\r\n\t * Return true if the new point is good enough to be added to the current\r\n\t * set of points. Here, \"good enough\" means distinct from the other\r\n\t * points, but this can be overridden by subclasses.\r\n\t *\r\n\t * @param      pt Point under consideration.\r\n\t * @param      other_pts Points to compare with new points.\r\n\t * @param      other_pts_count How many other points.\r\n\t * @return     true if new pt is good enough, else false.\r\n\t */    \r\n\tboolean good_enough_point (int pt, int[] other_pts, int other_pts_count) {\r\n\t\tfor (int i = 0; i < other_pts_count; i++) {\r\n\t\t\tif (other_pts[i] == pt)\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Return a sorted array of distinct indices for \"random points\" in the\r\n\t * metric space.  <p>\r\n\t *\r\n\t * @param      number_of_points How many points we want.\r\n\t * @return     An array of indices for the random points.\r\n\t */    \r\n\tpublic int[] random_points(int number_of_points) {\r\n\t\tif (rand == null)\r\n\t\t\trand = new Random();\r\n\t\tint max_pt = count();\r\n\t\tint[] return_value = new int[number_of_points];\r\n\t\tint i = 0;\r\n\t\tboolean all_good = true;\r\n\t\twhile (true) {\r\n\t\t\twhile (i < number_of_points) {\r\n\t\t\t\tint pt = 1 + rand.nextInt(max_pt);\r\n\t\t\t\tif (good_enough_point(pt, return_value, i))\r\n\t\t\t\t\treturn_value[i++] = pt;\r\n\t\t\t}\r\n\t\t\tArrays.sort(return_value);\r\n\t\t\tall_good = true;\r\n\t\t\tfor (i = 1; i < number_of_points; i++) {\r\n\t\t\t\tif (return_value[i-1] == return_value[i]) {\r\n\t\t\t\t\treturn_value[i] = 1 + max_pt + i;\r\n\t\t\t\t\tall_good = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (all_good) \r\n\t\t\t\treturn return_value;\r\n\t\t\telse\r\n\t\t\t\tArrays.sort(return_value);\r\n\t\t\ti = number_of_points;\r\n\t\t\twhile (return_value[i-1] > max_pt) {\r\n\t\t\t\ti--;\r\n\t\t\t\tassert (i > 0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * <code>NSpace</code> instances also provide dimension information.\r\n\t */\r\n\tpublic abstract static class NSpace extends PointData {\r\n\t\t/**\r\n\t\t * Dimension of the space.\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @return     dimension of the space.\r\n\t\t */    \r\n\t\tabstract public int dimension();\r\n\t\tabstract public double coordinate(int p, int i);\r\n\t\tpublic double xi(int p, int i) {\r\n\t\t\treturn coordinate(p, i-1);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static class Discrete extends PointData {\r\n\t\tprotected final int N;\r\n\r\n\t\tprotected static class DSS extends SimplexStream {\r\n\t\t\tprotected SimplexStream ss;\r\n\t\t\tprotected int max_dimension;\r\n\t\t\tprotected int num_pts;\r\n\r\n\t\t\tpublic boolean hasNext() {\r\n\t\t\t\treturn ss.hasNext();\r\n\t\t\t}\r\n\r\n\t\t\tpublic Simplex next() {\r\n\t\t\t\treturn ss.next();\r\n\t\t\t}\r\n\r\n\t\t\tpublic int size() {\r\n\t\t\t\treturn ss.size();\r\n\t\t\t}\r\n\r\n\t\t\tpublic int maxDimension() {\r\n\t\t\t\treturn max_dimension;\r\n\t\t\t}\r\n\r\n\t\t\t/**\r\n\t\t\t * Make an iterator for the stream.\r\n\t\t\t * <p>\r\n\t\t\t *\r\n\t\t\t * @return  Iterator<Simplex> instance for the stream.\r\n\t\t\t *\r\n\t\t\t * @see        java.util.Iterator\r\n\t\t\t */\r\n\t\t\tpublic Iterator<Simplex> iterator() {\r\n\t\t\t\treturn ss.iterator();\r\n\t\t\t}\r\n\r\n\t\t\tprotected DSS() {\r\n\t\t\t\tss = null;\r\n\t\t\t\tmax_dimension = 0;\r\n\t\t\t}\r\n\r\n\t\t\tpublic DSS(SimplexStream s, int n, int max_d) {\r\n\t\t\t\tss = s;\r\n\t\t\t\tnum_pts = n;\r\n\t\t\t\tmax_dimension = max_d;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Distance between 2 points.\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @param      p1   index of the first point\r\n\t\t * @param      p2   index of the second point\r\n\t\t * @return     distance between the two points.\r\n\t\t */    \r\n\t\tpublic double distance(int p1, int p2) {\r\n\t\t\tif (p1 == p2)\r\n\t\t\t\treturn 0.0;\r\n\t\t\telse \r\n\t\t\t\treturn 1.0;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * The number of points in this data set. \r\n\t\t * \r\n\t\t * <p> Indexing begins from 1, not 0, which means that the points go\r\n\t\t * from 1 to count(), inclusive. It is acceptable for an implementation\r\n\t\t * to allow points to be added.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @return     The number of points in the data set.\r\n\t\t */    \r\n\t\tpublic int count() {\r\n\t\t\treturn N;\r\n\t\t}\r\n\r\n\t\tprotected Discrete() {\r\n\t\t\tN = 0;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Make a PointData.Discrete with N points.\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @param    n The number of points in the discrete set.\r\n\t\t */\r\n\t\tpublic Discrete(int n) {\r\n\t\t\tN = n;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Make an instance of the boundary of the canonical (D+1)-Simplex.\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @param    d The dimension of the \"sphere-like\" simplicial complex.\r\n\t\t */\r\n\t\tpublic static SimplexStream DSphere(int d) {\r\n\t\t\tPointData p = new Discrete(d+2);\r\n\t\t\tRipsStream r = new RipsStream(2.0, d, 2.0, p);\r\n\t\t\tassert r.verify();\r\n\t\t\treturn (SimplexStream) new DSS(r, d+2, d+1);\r\n\t\t}\r\n\r\n\r\n\t\tpublic static SimplexStream DSphereKskeleton(int d, int k) {\r\n\t\t\tPointData p = new Discrete(d+2);\r\n\t\t\tRipsStream r = new RipsStream(2.0, k, 2.0, p);\r\n\t\t\tassert r.verify(); \r\n\t\t\treturn (SimplexStream) new DSS(r, d+2, k+1);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * <code>Predicate</code> instances are used weed out points that are\r\n\t * uninteresting in a given context (e.g., density too low or high).\r\n\t */\r\n\tpublic static abstract class Predicate {\r\n\r\n\t\t/**\r\n\t\t * Underlying PointData for the predicate.\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @return A PointData instance.\r\n\t\t *\r\n\t\t */\r\n\t\tabstract public PointData data();\r\n\r\n\t\t/**\r\n\t\t * Is the point i interesting to this predicate?\r\n\t\t *\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @param      i  The index of the point being considered.\r\n\t\t * @return True if we care about the point here, else false.\r\n\t\t *\r\n\t\t */\r\n\t\tabstract public boolean use(int i);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/RDirectBufferData.java",
    "content": "package edu.stanford.math.plex;\nimport java.nio.ByteBuffer;\nimport java.nio.ByteOrder;\nimport java.nio.DoubleBuffer;\n\n\n/**\n * The <code>RDirectBufferData</code> is a mechanism for transforming an R\n * distance matrix into a PointData.\n *\n * @version $Id$\n */\npublic class RDirectBufferData extends PointData {\n  \n  /**\n   * Max number of points.\n   */\n  protected final int p_max;\n\n  protected final DoubleBuffer distanceBuffer;\n\t\t  \n  /**\n   * Use a pre-allocated buffer of doubles as the distance matrix.\n   * The ByteBuffer passed to the constructor will be viewed as a\n   * DoubleBuffer, which will let us use the capacity function to get the\n   * max entry. \n   *\n   * <p>\n   *\n   * @param count The upper bound on i. i is 1-indexed\n   * @param buf ByteBuffer instance to be used.\n   *\n   */\n  public RDirectBufferData(int count, ByteBuffer buf) {\n    buf = buf.order(ByteOrder.nativeOrder());\n    distanceBuffer = buf.asDoubleBuffer();\n    p_max = count;\n    if(count > Math.sqrt(distanceBuffer.capacity()))\n      throw new IllegalArgumentException\n        (\"Specified count, \" + count + \", exceeds capacity of data, \" +\n         (int)Math.sqrt(distanceBuffer.capacity()) + \".\");\n  }\n\n  /**\n   * Return the distance between the two points using the external\n   * data, which is stored as 0-based columns.\n   *\n   * <p>\n   *\n   * @param     p1   the first point\n   * @param     p2   the second point\n   * @return    the distance between p1 and p2\n   */\n  public double distance(int p1, int p2) {\n    if(p1 == p2)\n      return 0.0;\n    return distanceBuffer.get(p_max*(p2-1) + (p1-1));\n  }\n\n  public int count() {\n    return p_max;\n  }\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/RipsStream.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static edu.stanford.math.plex.WitnessStream.HUGE;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.Arrays;\r\nimport java.util.Iterator;\r\n\r\n/**\r\n * A <code>RipsStream</code> instance is SimplexStream whose elements are\r\n * the simplices of the Rips complex of a PointData instance. The\r\n * implementation of this class is quite similar to that of\r\n * LazyWitnessStream.\r\n *\r\n * @see        edu.stanford.math.plex.LazyWitnessStream\r\n * @see        edu.stanford.math.plex.WitnessStream\r\n *\r\n * @version $Id$\r\n */\r\npublic class RipsStream extends SimplexStream {\r\n\r\n\t/**\r\n\t * The PointData underlying this Rips complex.\r\n\t *\r\n\t */\r\n\tpublic final PointData pdata;\r\n\r\n\t/**\r\n\t * The granularity used in assigning filtration indices to simplices.\r\n\t *\r\n\t * <p> A simplex in a Rips complex is regarded as coming into existence\r\n\t * when the \"last\" of its edges does some. Specifically, we assign a\r\n\t * <i> persistence parameter</i> to each Simplex which is the the\r\n\t * maximum of the persistence parameters assigned to each of the\r\n\t * component edges. The most obvious way to do that is to use the\r\n\t * length of an admissible edge as the persistence parameter of that\r\n\t * edge. (Actually, since the persistence parameters must be integers,\r\n\t * the appropriate index into a sorted array of edge lengths is\r\n\t * used. And recall that we allow there to be a maximum length of the\r\n\t * edges that we consider.) Since this can result in an set of\r\n\t * persistence indices that grows quadratically in the number of\r\n\t * points, we allow the user to control this growth by specifying a\r\n\t * positive granularity. In this case the filtration index of an edge\r\n\t * is the floor of the ratio of the edge length divided by the\r\n\t * granularity. This means that we know that the filtration indices\r\n\t * will never exceed the floor of the ratio of the max edge length\r\n\t * divided by the granularity.\r\n\t *\r\n\t */\r\n\tpublic final double granularity;\r\n\r\n\t/**\r\n\t * The maximum dimension of a Simplex that will be admitted to the complex.\r\n\t */\r\n\tpublic final int maxDimension;\r\n\r\n\t/**\r\n\t * The maximum length of an edge that will be admitted to the\r\n\t * complex. Currently protected.\r\n\t */\r\n\tpublic final double edge_length_limit;\r\n\r\n\r\n\tprotected double[] lengths_array;\r\n\tprotected SimplexStream.Stack stack;\r\n\r\n\t/**\r\n\t * Is there a next Simplex in the stream?\r\n\t *\r\n\t * <p>\r\n\t * @return     Return true if the stream is not yet empty.\r\n\t *\r\n\t */\r\n\tpublic boolean hasNext() {\r\n\t\treturn stack.hasNext();\r\n\t}\r\n\r\n\t/**\r\n\t * Next Simplex in the stream.\r\n\t *\r\n\t * <p>\r\n\t * @return     Return the smallest remaining Simplex instance.\r\n\t *\r\n\t */\r\n\tpublic Simplex next() {\r\n\t\treturn stack.next();\r\n\t}\r\n\r\n\t/**\r\n\t * Constructor for RipsStream.\r\n\t *\r\n\t * <p>\r\n\t * Make a stream of the simplices in a Rips complex for data.\r\n\t * <p>\r\n\t * @param      double delta Granularity to apply to the underlying metric.\r\n\t * @param      int max_d   Maximum dimension of Simplex instances we construct.\r\n\t * @param      double max_length   Maximum edge we will allow.\r\n\t * @param      PointData data   Metric data to use in constructing stream.\r\n\t *\r\n\t */\r\n\tRipsStream(double delta, int max_d, double max_length, PointData data) {\r\n\t\tassert delta >= 0.0;\r\n\t\tgranularity = delta;\r\n\t\tedge_length_limit = max_length;\r\n\t\tpdata = data;\r\n\t\tmaxDimension = max_d;\r\n\t\tstack = find_simplices(max_length, max_d, data);\r\n\t}\r\n\r\n\t/**\r\n\t * How many simplices are in the stream?\r\n\t *\r\n\t * <p>\r\n\t * @return     The number of simplices in the stream.\r\n\t *\r\n\t */\r\n\tpublic int size() {\r\n\t\treturn stack.size();\r\n\t}\r\n\r\n\t/**\r\n\t * Max dimension of simplices in the stream.\r\n\t *\r\n\t * <p>\r\n\t * @return     Max dimension of simplices in the stream.\r\n\t *\r\n\t */\r\n\tpublic int maxDimension() {\r\n\t\treturn stack.maxDimension();\r\n\t}\r\n\r\n\t/**\r\n\t * Convert a filtration index into a persistence parameter (i.e., double)\r\n\t * -- gets overloaded by some subclasses.\r\n\t *\r\n\t * <p>\r\n\t * @param      fi Filtration index to convert.\r\n\t * @return     double persistence parameter.\r\n\t *\r\n\t */\r\n\tpublic double convert_filtration_index(int fi) {\r\n\t\tif (granularity > 0.0) \r\n\t\t\treturn granularity * fi;\r\n\t\telse \r\n\t\t\treturn lengths_array[fi];\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Make an iterator for the stream.\r\n\t * <p>\r\n\t *\r\n\t * @return  Iterator<Simplex> instance for the stream.\r\n\t *\r\n\t * @see        java.util.Iterator\r\n\t */\r\n\tpublic Iterator<Simplex> iterator() {\r\n\t\treturn stack.iterator();\r\n\t}\r\n\r\n\t/**\r\n\t * Make an iterator for the stream elements of fixed dimension.\r\n\t * <p>\r\n\t *\r\n\t * @param      d dimension of simplices of interest.\r\n\t * @return  Iterator<Simplex> instance for the stream.\r\n\t *\r\n\t * @see        java.util.Iterator\r\n\t */\r\n\tpublic Iterator<Simplex> iterator(int d) {\r\n\t\treturn stack.iterator(d);\r\n\t}\r\n\r\n\t/**\r\n\t * Return simplices of specified dimension that compare \"favorably\" with\r\n\t * a given findex.  <p>\r\n\t *\r\n\t * @param      dimension dimenion of interest.\r\n\t * @param      test_index findex we are comparing against.\r\n\t * @param      ct Type of comparison to use.\r\n\t * @return  Simplex[] of matching simplices.\r\n\t */\r\n\tpublic Simplex[] matchingSimplices(int dimension, int test_index, \r\n\t\t\tComparisonType ct) {\r\n\t\tIterator<Simplex> iter = iterator(dimension);\r\n\t\tArrayList<Simplex> results = new ArrayList<Simplex>();\r\n\t\twhile(iter.hasNext()) {\r\n\t\t\tSimplex n = iter.next();\r\n\t\t\tboolean push_it = false;\r\n\t\t\tswitch(ct) {\r\n\t\t\tcase LT:\r\n\t\t\t\tpush_it = (n.findex() < test_index);\r\n\t\t\t\tbreak;\r\n\t\t\tcase LE:\r\n\t\t\t\tpush_it = (n.findex() <= test_index);\r\n\t\t\t\tbreak;\r\n\t\t\tcase EQ:\r\n\t\t\t\tpush_it = (n.findex() == test_index);\r\n\t\t\t\tbreak;\r\n\t\t\tcase GE:\r\n\t\t\t\tpush_it = (n.findex() >= test_index);\r\n\t\t\t\tbreak;\r\n\t\t\tcase GT:\r\n\t\t\t\tpush_it = (n.findex() > test_index);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (push_it)\r\n\t\t\t\tresults.add(n);\r\n\t\t}\r\n\t\t// extract results, put into Simplex[]\r\n\t\t                                     {\r\n\t\t                                    \t Simplex[] return_value = \r\n\t\t                                    \t\t new Simplex[results.size()];\r\n\t\t                                    \t int counter = 0;\r\n\t\t                                    \t for(Simplex s : results) \r\n\t\t                                    \t\t return_value[counter++] = s;\r\n\t\t                                    \t // I contend we don't need to sort -- Arrays.sort(return_value);\r\n\t\t                                    \t return return_value;\r\n\t\t                                     }\r\n\t}\r\n\r\n\t/**\r\n\t * Return simplices of specified dimension that compare \"favorably\" with\r\n\t * a given length.  <p>\r\n\t *\r\n\t * @param      dimension dimenion of interest.\r\n\t * @param      test_len length we are comparing against.\r\n\t * @param      ct Type of comparison to use.\r\n\t * @return  Simplex[] of matching simplices.\r\n\t */\r\n\tpublic Simplex[] matchingSimplices(int dimension, double test_len, \r\n\t\t\tComparisonType ct) {\r\n\t\tint test_index = 0;\r\n\t\tif (lengths_array == null)\r\n\t\t\t// if we have no lengths_array, just make it into an findex in the\r\n\t\t\t// usual way\r\n\t\t\ttest_index = (int)(Math.floor(test_len/granularity));\r\n\t\telse {\r\n\t\t\t// translate into findex via the lengths_array\r\n\t\t\ttest_index = Arrays.binarySearch(lengths_array, test_len);\r\n\t\t\tif (test_index < 0) {\r\n\t\t\t\ttest_index = (-test_index) - 1;\r\n\t\t\t\t// not present -- test_index is now the insertion point for test_len,\r\n\t\t\t\t// so we have to examine the ct argument\r\n\t\t\t\tswitch(ct) {\r\n\t\t\t\tcase LT:\r\n\t\t\t\tcase GE:\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LE:\r\n\t\t\t\t\tct = ComparisonType.LT;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase GT:\r\n\t\t\t\t\tct = ComparisonType.GE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase EQ:\r\n\t\t\t\t\treturn new Simplex[0];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn matchingSimplices(dimension, test_index, ct);\r\n\t}\r\n\r\n\t// don't use\r\n\tprotected RipsStream() {\r\n\t\tedge_length_limit = 0.0;\r\n\t\tgranularity = 0.0;\r\n\t\tmaxDimension = 0;\r\n\t\tpdata = null;\r\n\t}\r\n\r\n\t//\r\n\t// The following package-protected static members are used by\r\n\t// LazyWitnessStream.\r\n\t//\r\n\r\n\t// Get from (i,j) to the index of the edge_info for the edge from i->j.\r\n\tstatic int edge_index(int i, int j, int n) {\r\n\t\tassert((i > 0) && (i < j) && (j <= n));\r\n\t\treturn (((n * (n - 1)) - ((n - i + 1) * (n - i))) / 2) + (j - (i + 1));\r\n\t}\r\n\r\n\t// Test function.\r\n\tstatic boolean check_edge_index(int n) {\r\n\t\tint index_limit = (n * (n-1))/2;\r\n\t\tint prev_index = -1;\r\n\t\t// System.out.printf(\"\\n\\n\");\r\n\t\tfor (int i = 1; i <= n; i++) {\r\n\t\t\tfor (int j = i+1; j <= n; j++) {\r\n\t\t\t\tint current_index = edge_index(i, j, n);\r\n\t\t\t\t// System.out.printf(\" %d = edge_index(%d, %d, %d)\\n\", \r\n\t\t\t\t// current_index, i, j, n);\r\n\t\t\t\tassert(current_index == (1 + prev_index));\r\n\t\t\t\tassert(current_index < index_limit);\r\n\t\t\t\tassert(current_index >= 0);\r\n\t\t\t\tprev_index = current_index;\r\n\t\t\t}\r\n\t\t}\r\n\t\tassert(index_limit == (1 + prev_index));\r\n\t\t//System.out.printf(\" >>>>>> LIMIT = %d, last index = %d\\n\", \r\n\t\t// index_limit, prev_index);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tstatic int all_edges_present(int[] verts, \r\n\t\t\tint[] edge_info, int n) {\r\n\t\tint last_vert = verts[verts.length - 1];\r\n\t\tint max_findex = 0;\r\n\t\tfor (int i = 0; i < verts.length - 1; i++) {\r\n\t\t\tint f_ij = edge_info[edge_index(verts[i], last_vert, n)];\r\n\t\t\tif (f_ij < 0)\r\n\t\t\t\treturn -1;\r\n\t\t\telse if (f_ij > max_findex)\r\n\t\t\t\tmax_findex = f_ij;\r\n\t\t}\r\n\t\treturn max_findex;\r\n\t}\r\n\r\n\t//\r\n\t// The previous package-protected static members are used by\r\n\t// LazyWitnessStream.\r\n\t//\r\n\r\n\t// The algorithm here is quite simple. We build a SimplexStream.stack\r\n\t// and push all of the Points into it. We then make a queue for storing\r\n\t// Simplices as they are built, and note the beginning (via something\r\n\t// we call a Head). We then we make the edges that are short\r\n\t// enough, adding those to the queue. While adding the edges, we record\r\n\t// the distance information in an array (which we think of as the upper\r\n\t// half of a distance matrix). This \"matrix\" stores the findex for the\r\n\t// edge from i->j (i < j) or -1 if there is no edge. We then note the\r\n\t// \"end of the 1-dimensional simplices\" with another Head. Then,\r\n\t// at any point we have Head instances that mark the beginning and\r\n\t// end of the simplices of dimension k. We then iterate over each\r\n\t// Simplex s of dimension k, and for each p > max(s.vertices()), we\r\n\t// check to see if all the edges from p to each vertex exist. If they\r\n\t// do, then we create a new Simplex of dimension k+1 (and if k+1 isn't\r\n\t// the max dimension, we enqueue the new Simplex). This procedure means\r\n\t// that we examine only the possible combinations of vertices in each\r\n\t// dimension of interest, and we only examine a combination once\r\n\t// (because we look at sorted lists).\r\n\tprotected SimplexStream.Stack find_simplices(double max_dist, \r\n\t\t\tint max_dimension, \r\n\t\t\tPointData data) {\r\n\t\tif (max_dimension < 0)\r\n\t\t\treturn null;\r\n\r\n\t\t// Recall that \"count\" means that the points are indexed from 1 to N, inclusive.\r\n\t\tint N = data.count();\r\n\t\tint[] edge_info = new int[(N * (N - 1)) / 2];\r\n\t\tint max_findex;\r\n\t\tif (granularity > 0.0) {\r\n\t\t\tmax_findex = (int)(Math.floor(max_dist/granularity));\r\n\t\t} else {\r\n\t\t\tmax_findex = ((N * (N - 1)) / 2);\r\n\t\t}\r\n\t\t// Construct the tail of the queue -- we add any simplices of less\r\n\t\t// than max dimension to this queue, so that we can go over go over\r\n\t\t// them again in a later pass\r\n\t\tSimplexStream.Tail q = new SimplexStream.Tail();\r\n\t\t// Final repository for the elements of the Rips complex.\r\n\t\tSimplexStream.Stack stack = new SimplexStream.Stack(max_findex, max_dimension);\r\n\r\n\t\t// Fill in the edge_info array with -1's, which indicate \"no edge\".\r\n\t\tfor (int i = 0; i < edge_info.length; i++)\r\n\t\t\tedge_info[i] = -1;\r\n\r\n\t\t// Add all of the points to the stack.\r\n\t\tfor (int i = 1; i <= N; i++)\r\n\t\t\tstack.push(Simplex.makePoint(i, 0));\r\n\r\n\t\t// If max_dimension is 0, we just want the points.\r\n\t\tif (max_dimension < 1)\r\n\t\t\treturn stack;\r\n\r\n\t\t// Remember the start of dimension k, where in this case, k=1.\r\n\t\tSimplexStream.Head last_dim_start = new SimplexStream.Head(q);\r\n\r\n\t\t// Process the edges. We both enqueue them, and create the\r\n\t\t// edge_info[] which we use to bootstrap from dimension k to\r\n\t\t// dimension k+1.\r\n\t\tif (granularity == 0.0) {\r\n\t\t\tdouble[] edge_lens = new double[(N * (N - 1)) / 2];\r\n\t\t\tint lengths_counter = 1;\r\n\r\n\t\t\t// for granularity == 0 we sort the lengths and use the index into\r\n\t\t\t// the sorted array of lengths as the filtration index\r\n\t\t\tfor (int i = 1; i <= N; i++) {\r\n\t\t\t\tfor (int j = i+1; j <= N; j++) {\r\n\t\t\t\t\tdouble dij = data.distance(i, j);\r\n\t\t\t\t\tif (dij <= max_dist) {\r\n\t\t\t\t\t\tedge_lens[edge_index(i, j, N)] = dij;\r\n\t\t\t\t\t\tlengths_counter++;\r\n\t\t\t\t\t} else \r\n\t\t\t\t\t\tedge_lens[edge_index(i, j, N)] = HUGE;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Copy the non-HUGE lengths into the lengths_array (leaving a 0 in\r\n\t\t\t// the first entry), and sort it -- we will use the index of dij in\r\n\t\t\t// lengths_array as the persistence index for the corresponding edge\r\n\t\t\t// simplex. We don't bother looking for duplicate lengths, because\r\n\t\t\t// these will occur with probability 0 in real data.\r\n\t\t\tlengths_array = new double[lengths_counter];\r\n\t\t\tlengths_counter = 1;\r\n\t\t\tfor (int i = 0; i < edge_lens.length; i++) {\r\n\t\t\t\tif (edge_lens[i] != HUGE)\r\n\t\t\t\t\tlengths_array[lengths_counter++] = edge_lens[i];\r\n\t\t\t}\r\n\t\t\tArrays.sort(lengths_array);\r\n\r\n\t\t\t// Use binary search to find the index to which the dij value\r\n\t\t\t// was moved during sorting. If the performance of this\r\n\t\t\t// matters, it would be possible to write a version of the sort\r\n\t\t\t// routine that keeps a map of the permutation performed by the\r\n\t\t\t// sort, but that seems unlikely to matter here.\r\n\t\t\tfor (int i = 1; i <= N; i++) {\r\n\t\t\t\tfor (int j = i+1; j <= N; j++) {\r\n\t\t\t\t\tint index = edge_index(i, j, N);\r\n\t\t\t\t\tdouble dij = edge_lens[index];\r\n\t\t\t\t\tif (dij < HUGE) {\r\n\t\t\t\t\t\tint pindex = Arrays.binarySearch(lengths_array, dij);\r\n\t\t\t\t\t\tassert lengths_array[pindex] == dij;\r\n\t\t\t\t\t\tedge_info[index] = pindex;\r\n\t\t\t\t\t\tSimplex s = Simplex.makeEdge(i, j, pindex);\r\n\t\t\t\t\t\tstack.push(s);\r\n\t\t\t\t\t\tq = q.enqueue(s);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfor (int i = 1; i <= N; i++) {\r\n\t\t\t\tfor (int j = i+1; j <= N; j++) {\r\n\t\t\t\t\tdouble dij = data.distance(i, j);\r\n\t\t\t\t\tif (dij <= max_dist) {\r\n\t\t\t\t\t\tint f_ij = (int)(Math.floor(dij/granularity));\r\n\t\t\t\t\t\tedge_info[edge_index(i, j, N)] = f_ij;\r\n\t\t\t\t\t\tSimplex s = Simplex.makeEdge(i, j, f_ij);\r\n\t\t\t\t\t\tstack.push(s);\r\n\t\t\t\t\t\tq = q.enqueue(s);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// We are ready to construct the higher dimensional data. Since we\r\n\t\t// already have the edges, we begin with 2-dimensional simplexes,\r\n\t\t// and continue until we have constructed those of max_dimension.\r\n\t\tint current_dimension = 2;\r\n\t\twhile (current_dimension <= max_dimension) {\r\n\t\t\t// we start processing at last_dim_start\r\n\t\t\tSimplexStream.Head current = last_dim_start;\r\n\t\t\t// At this point all simplices of current_dimension-1 have been\r\n\t\t\t// added to the queue (and none of current_dimension), so we\r\n\t\t\t// stop processing for this dimension when current reaches end.\r\n\t\t\tSimplexStream.Head end = new SimplexStream.Head(q);\r\n\t\t\t// Remember end as last_dim_start, for the next iteration\r\n\t\t\tlast_dim_start = end;\r\n\t\t\t// We construct a scratch array in which to store any potential\r\n\t\t\t// vertex sets for possible simplices of dimension\r\n\t\t\t// current_dimension.\r\n\t\t\tint[] verts = new int[current_dimension + 1];\r\n\r\n\t\t\twhile (current.lessThan(end)) {\r\n\t\t\t\t// Until current reaches end, extract simplices and copy\r\n\t\t\t\t// their vertices into the scratch array.\r\n\t\t\t\tSimplex face = current.nextEntry();\r\n\t\t\t\tassert(face.dimension() == (current_dimension-1));\r\n\t\t\t\tface.vertices(verts);\r\n\t\t\t\t// We know that any k dimensional simplex that we can admit\r\n\t\t\t\t// must have all of its faces in the list of k-1 simplices\r\n\t\t\t\t// (a simplex cannot belong to a complex unless all of its\r\n\t\t\t\t// faces belong, too). That means that any possible k\r\n\t\t\t\t// simplex [x1,...,x(k+1)] must have the face [x1,...,xk]\r\n\t\t\t\t// in the list. So we see that we can get to any possible k\r\n\t\t\t\t// simplex by adding a vertex \"onto the end\" (that is, the\r\n\t\t\t\t// new vertex is larger than any of the existing ones) of a\r\n\t\t\t\t// k-1 simplex. Further, it is easy to see that adding onto\r\n\t\t\t\t// the end of 2 distinct k-1 simplices can never yield the\r\n\t\t\t\t// same k simplex. So if we just add onto the end of the\r\n\t\t\t\t// simplices in the previous dimension, we will see all\r\n\t\t\t\t// potential k simplices precisely once. So if verts is\r\n\t\t\t\t// [v1,...,vk, <junk>], then we are interested in any\r\n\t\t\t\t// possible simplex [v1,...,vk,x] with x > vk. In this case\r\n\t\t\t\t// we merely need to check if (v1, x),...,(v1, k) are\r\n\t\t\t\t// edges. If so, [v1,...,vk,x] is a simplex, and its\r\n\t\t\t\t// \"diameter\" is the max of diam([v1,...,vk]) and the\r\n\t\t\t\t// lengths of the edges (v1,x),...(vk,x).\r\n\t\t\t\tint largest_v = verts[current_dimension-1];\r\n\t\t\t\tfor (int new_last = largest_v + 1; new_last <= N; new_last++) {\r\n\t\t\t\t\tverts[current_dimension] = new_last;\r\n\t\t\t\t\tint f_new = all_edges_present(verts, edge_info, N);\r\n\t\t\t\t\tif (f_new >= 0) {\r\n\t\t\t\t\t\tSimplex newSimplex = \r\n\t\t\t\t\t\t\tSimplex.getSimplex(verts, Math.max(face.findex(), f_new));\r\n\t\t\t\t\t\tstack.push(newSimplex);\r\n\t\t\t\t\t\tif (current_dimension < max_dimension)\r\n\t\t\t\t\t\t\t// if the dimension of newSimplex isn't maximal,\r\n\t\t\t\t\t\t\t// then we put it in the queue\r\n\t\t\t\t\t\t\tq = q.enqueue(newSimplex);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Make sure that if we are exiting we have processed all\r\n\t\t\t// simplices in q.\r\n\t\t\tassert((current_dimension < max_dimension) || \r\n\t\t\t\t\t(last_dim_start.eql(new SimplexStream.Head(q))));\r\n\t\t\tcurrent_dimension++;\r\n\t\t}\r\n\r\n\t\treturn stack;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Simplex.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * A <code>Simplex</code> is the basic unit for simplicial homology\r\n * calculations, literally. That is, the module in which simplicial\r\n * homology is defined is the free module over all simplices, so a simplex\r\n * is actually a basis element for this module. Formally, simplices are\r\n * elements of a set S of non-empty finite subsets of a set X which have\r\n * the property that if B is an element of S, and A is a non-empty subset\r\n * of B, then A is an element of S. Intuitively, if you imagine that the\r\n * points of X are in some n-dimensional Euclidean space, then a simplex is\r\n * that subset of Euclidean space that is given by the affine combinations\r\n * of its \"corners\". For instance, if B is the triangle given by corners\r\n * {a, b, c} is one of our simplices, then we require that the edge (line\r\n * segment) given by {a, c} is also a simplex. While we can describe this\r\n * relationship in a purely combinatorial fashion, the \"meaning\" is given\r\n * by the choice of simplices S, and this methodology used here always\r\n * makes some use of geometric techniques (e.g., metric spaces).\r\n *\r\n * <p> For reasons of efficiency, we use more than one encoding for\r\n * simplices, instead of using the obvious \"array of vertices\". The reason\r\n * for this is that these encodings of simplices can be much smaller, and\r\n * the code to manage them much faster, than if we use the obvious\r\n * implementation. We make <code>Simplex</code> an abstract class, instead\r\n * of an interface, both because code written to this class will be\r\n * slightly faster than if it were an interface, and because the root class\r\n * is a convenient repository for some utilities needed by the extension\r\n * classes, and for \"global information\" such as the characteristic of the\r\n * base field.\r\n *\r\n * <p> All but the most naive encoding must have, either implicitly or\r\n * explicitly, limits on the allowed dimension and number of landmarks that\r\n * can be used to construct simplices. By default all limits will either be\r\n * the explicit in the representation of the simplex or will be implicitly\r\n * the largest values that are feasible for that representation. See the\r\n * specific implementations for more details on this point.\r\n *\r\n * <p> The vertex set of any simplex depends on the context -- that is, for\r\n * a Simplex s, s.vertices() is an array of integers of limited size, and\r\n * the meaning of those integers will depend on the source of the Simplex\r\n * s.  The data sets we operate on frequently have millions of points (and\r\n * we hope to push these even further in the future), but we only construct\r\n * simplices from much smaller sets, often representative subsets we call\r\n * \"landmark sets\". Since we are able to restrict landmarks to be in the\r\n * thousands, or even hundreds, we use a smaller number of bits to encode\r\n * the vertex sets for a simplex, often by \"indirecting\" through an array\r\n * of landmark indices to some much larger data set. Thus, a vertex of 10\r\n * encoded within an instance of <code>Simplex</code> generally refers to\r\n * the point whose index is the 10th entry in some landmark set, not the\r\n * 10th point in the full data set.\r\n *\r\n * @author Harlan Sexton\r\n * @version 0.1\r\n *\r\n */\r\nabstract public class Simplex implements Comparable<Simplex> {\r\n\r\n\t/**\r\n\t * The filtration index of the Simplex.  <p> Theoretically this could\r\n\t * be abstract, but in all of the implementations we use this value is\r\n\t * hard enough to find that it makes sense to cache it in the\r\n\t * instance. Also, doing it this way allows us to make it effectively\r\n\t * final without forcing the implementations to compute it during\r\n\t * instance creation. We also get rid of the table T[] in the algorithm\r\n\t * (see {@link edu.stanford.math.plex.Persistence} and references therein) by storing the\r\n\t * reduced boundary chain directly in the Simplex instance. This is\r\n\t * simpler, faster, and may even be smaller (it depends on what\r\n\t * percentage of slots in T[] actually got filled).\r\n\t */    \r\n\tprotected int _findex = -1;\r\n\tprotected Chain _chain;\r\n\r\n\t/**\r\n\t * Set the findex value, provided it hasn't already been done.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the findex value.\r\n\t *\r\n\t */    \r\n\tpublic int setfindex (int i) {\r\n\t\tassert(_findex < 0);\r\n\t\tif (_findex < 0) \r\n\t\t\t_findex = i;\r\n\t\treturn _findex;\r\n\t}\r\n\r\n\t/**\r\n\t * Decrement the findex value -- this is a hack that should ONLY be used\r\n\t * if you know what you are doing. Changing the findex of a Simplex\r\n\t * already in a stream is a disaster.  <p>\r\n\t *\r\n\t *\r\n\t * @return     the findex value.\r\n\t *\r\n\t */    \r\n\tpublic int decrement_findex () {\r\n\t\tif (_findex < 0) \r\n\t\t\t_findex--;\r\n\t\treturn _findex;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Set the chain value, provided it hasn't already been set.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the chain value.\r\n\t * @exception IllegalStateException when setChain() has already been\r\n\t *             called without an intervening clearChain() call.\r\n\t *\r\n\t */    \r\n\tpublic Chain setChain (Chain c) {\r\n\t\tif (_chain != null)\r\n\t\t\tthrow new IllegalStateException(\"Simplex \" + this.toString() + \r\n\t\t\t\t\t\"already has chain entry: \" + \r\n\t\t\t\t\t_chain.toString());\r\n\t\t_chain = c;\r\n\t\treturn _chain;\r\n\t}\r\n\r\n\t/**\r\n\t * Clear the chain value; used when we reuse the elementes in a stream.\r\n\t * <p>\r\n\t *\r\n\t */    \r\n\tpublic void clearChain () {\r\n\t\t_chain = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the findex value. Should be as fast as if the slot were accessible.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the findex value.\r\n\t *\r\n\t */    \r\n\tpublic int findex () {\r\n\t\treturn _findex;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the chain value. Should be as fast as if the slot were accessible.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the chain value.\r\n\t *\r\n\t */    \r\n\tpublic Chain chain () {\r\n\t\treturn _chain;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the dimension of self.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     int, the dimension (i.e., 1 more than the number of vertices) of the simplex.\r\n\t *\r\n\t */    \r\n\tabstract public int dimension();\r\n\r\n\t/**\r\n\t * Make a \"blank\" copy of the Simplex -- equivalent to getSimplex(this.vertices()).\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     the copied instance.\r\n\t *\r\n\t */    \r\n\tabstract public Simplex copy();\r\n\r\n\t/**\r\n\t * Returns the indices of self as an array.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @return     an int[] of indices into the LandmarkIndexArray.\r\n\t *\r\n\t */    \r\n\tabstract public int[] vertices();\r\n\r\n\t/**\r\n\t * Returns the indices of self as an array.\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @param verts An int[] in which to store the vertices -- it must be at\r\n\t *               at least as long as the number of vertices.\r\n\t * @return     an int[] of indices into the LandmarkIndexArray.\r\n\t *\r\n\t */    \r\n\tabstract public int[] vertices(int verts[]);\r\n\r\n\r\n\r\n\t/**\r\n\t * Is this a subset of s?\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @param s The simplex to which to compare this.\r\n\t * @return     True if this is a subset of s, else false.\r\n\t */    \r\n\tpublic boolean subset(Simplex s) {\r\n\t\tint stop = dimension();\r\n\t\tint s_stop = s.dimension();\r\n\t\tif (stop > s_stop)\r\n\t\t\treturn false;\r\n\t\treturn subset(s, new int[stop+1], new int[s_stop+1]);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Is this a subset of s?\r\n\t * <p>\r\n\t *\r\n\t *\r\n\t * @param s The simplex to which to compare this.\r\n\t * @param v An int[] in which to put the vertices of this -- must be at\r\n\t *           least as long as the number of vertices.\r\n\t * @param sv An int[] in which to put the vertices of s  -- must be at\r\n\t *           least as long as the number of vertices of s.\r\n\t * @return     True if this is a subset of s, else false.\r\n\t */    \r\n\tpublic boolean subset(Simplex s, int[] v, int[] sv) {\r\n\t\tint stop = dimension();\r\n\t\tint s_stop = s.dimension();\r\n\t\tif (stop > s_stop)\r\n\t\t\treturn false;\r\n\t\tvertices(v);\r\n\t\ts.vertices(sv);\r\n\t\tint current = 0;\r\n\t\tint s_current = 0;\r\n\t\twhile (current <= stop) {\r\n\t\t\tint to_find = v[current++];\r\n\t\t\twhile(s_current <= s_stop) {\r\n\t\t\t\tif (sv[s_current++] == to_find)\r\n\t\t\t\t\tbreak;\r\n\t\t\t\telse if (s_current > s_stop)\r\n\t\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tassert(current == (stop+1));\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Overrides Object hashcode.\r\n\t *\r\n\t * <p>\r\n\t * @return     CRC hash of the vertex set.\r\n\t *\r\n\t */\r\n\tpublic int hashCode() {\r\n\t\treturn CRC.hash32(this.vertices());\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Overrides Object equals. \r\n\t *\r\n\t * <p>\r\n\t * This test is equivalent to an equality test on the vertices.\r\n\t * <p>\r\n\t * @param      obj   object to compare.\r\n\t * @return     true or false, depending on whether or not the Simplex is = to obj.\r\n\t *\r\n\t */\r\n\tpublic boolean equals(Object obj) {\r\n\t\tif (!(obj instanceof Simplex))\r\n\t\t\treturn false;\r\n\t\tSimplex s = (Simplex) obj;\r\n\t\tint this_dimension = this.dimension();\r\n\t\tint s_dimension = s.dimension();\r\n\t\tif (s_dimension == this_dimension)\r\n\t\t\treturn (0 == Plex.comparePtArrays(this.vertices(), s.vertices()));\r\n\t\telse \r\n\t\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Implements Comparable interface.\r\n\t *\r\n\t * <p>\r\n\t * This test is equivalent to lexicographic comparison of the vertex arrays.\r\n\t *<p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     negative, 0, or positive, if this <, =, resp. > than s.\r\n\t *\r\n\t */\r\n\tpublic int compareTo(Simplex s) {\r\n\t\tint this_dimension = this.dimension();\r\n\t\tint s_dimension = s.dimension();\r\n\t\tif (s_dimension != this_dimension)\r\n\t\t\treturn (this_dimension - s_dimension);\r\n\t\telse \r\n\t\t\treturn Plex.comparePtArrays(this.vertices(), s.vertices());\r\n\t}\r\n\r\n\t// The seq() and slt() methods are used to perform Chain and\r\n\t// Persistence operations. For instance, simplices in a Chain are\r\n\t// sorted so that arithmetic on Chains is linear in the size of the\r\n\t// instances. The findex() of a simplex is an essential part of the\r\n\t// ordering in the Persistence algorithm, but we don't regard it as\r\n\t// intrinsic to the Simplex otherwise. (The presence of an findex slot\r\n\t// in Simplex is for caching purposes, not because it is essential to\r\n\t// the definition of the type.) Therefore, compareTo(), hash() and\r\n\t// equals() ignore the value of the findex, and changing the findex\r\n\t// slot of a Simplex instance won't change its location in a\r\n\t// hashtable. In particular, it means that we can use a hashtable to\r\n\t// record the findex values of instances of Simplex, if we wish\r\n\t// (although I have no plans to do that at the moment except in initial\r\n\t// test code). To be explicit, the contract for slt() is that it sort\r\n\t// first on findex, second on dimension, and then after that,\r\n\t// lexicographically on vertices. The contract for a.seq(b) is that it\r\n\t// be functionally equivalent to !(a.slt(b) || b.slt(a)) in the places\r\n\t// that it is used, but as an optimization, in the places where slt()\r\n\t// and seq() are called, we can suppose that if the vertices for a and\r\n\t// b are the same, then their findex() values are the same, too.\r\n\r\n\t/**\r\n\t * Simplex Less Than. Used internally in Persistence and Chain\r\n\t * code. Not the same as compareTo.\r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true if less than, else false.\r\n\t *\r\n\t */\r\n\tabstract boolean slt(Simplex s);\r\n\r\n\t/**\r\n\t * Simplex EQuals. Used internally in Persistence and Chain code. \r\n\t *\r\n\t * <p>\r\n\t * @param      s   Simplex to compare.\r\n\t * @return     true is equal, else false.\r\n\t *\r\n\t */\r\n\tabstract boolean seq(Simplex s);\r\n\r\n\r\n\t/**\r\n\t * Get the simplex for a given set of vertices. \r\n\t *\r\n\t * <p>\r\n\t * @param      vertices   The vertex set.\r\n\t * @return     A simplex for that set of vertices.\r\n\t */\r\n\tpublic static Simplex getSimplex (int[] vertices) {\r\n\t\tif (vertices.length <= 2)\r\n\t\t\treturn Packed2Simplex.makeSimplex(vertices);\r\n\t\telse if (vertices.length <= 4)\r\n\t\t\treturn Packed4Simplex.makeSimplex(vertices);\r\n\t\telse if (vertices.length <= 6)\r\n\t\t\treturn Packed6Simplex.makeSimplex(vertices);\r\n\t\telse if (vertices.length <= 8)\r\n\t\t\treturn Packed8Simplex.makeSimplex(vertices);\r\n\t\t// we may make a Packed10Simplex, or larger, someday\r\n\t\telse\r\n\t\t\tthrow \r\n\t\t\tnew IllegalArgumentException(\"Simplices with more than 7 dimensions are not supported.\");\r\n\t}\r\n\r\n\t/**\r\n\t * Get the simplex for a given set of vertices, including setting findex. \r\n\t *\r\n\t * <p>\r\n\t * @param      vertices   The vertex set.\r\n\t * @param      findex   The Filtration index.\r\n\t * @return     A simplex for that set of vertices.\r\n\t */\r\n\tpublic static Simplex getSimplex (int[] vertices, int findex) {\r\n\t\tSimplex s = getSimplex(vertices);\r\n\t\ts.setfindex(findex);\r\n\t\treturn s;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the simplex for an already verified array of vertices. \r\n\t *\r\n\t * <p>\r\n\t * @param      vertices   The vertex set.\r\n\t * @return     A simplex for that set of vertices.\r\n\t */\r\n\tpublic static Simplex getSimplexPresorted (int[] vertices) {\r\n\t\tif (vertices.length <= 2)\r\n\t\t\treturn Packed2Simplex.makeSimplexPresorted(vertices);\r\n\t\telse if (vertices.length <= 4)\r\n\t\t\treturn Packed4Simplex.makeSimplexPresorted(vertices);\r\n\t\telse if (vertices.length <= 6)\r\n\t\t\treturn Packed6Simplex.makeSimplexPresorted(vertices);\r\n\t\telse if (vertices.length <= 8)\r\n\t\t\treturn Packed8Simplex.makeSimplexPresorted(vertices);\r\n\t\t// we may make a Packed10Simplex, or larger, someday\r\n\t\telse\r\n\t\t\tthrow \r\n\t\t\tnew IllegalArgumentException(\"Simplices with more than 7 dimensions are not supported.\");\r\n\t}\r\n\r\n\t/**\r\n\t * Get the simplex for an already verified array of vertices, including\r\n\t * setting findex.\r\n\t *\r\n\t * <p>\r\n\t * @param      vertices   The vertex set.\r\n\t * @param      findex   The Filtration index.\r\n\t * @return     A simplex for that set of vertices.\r\n\t */\r\n\tpublic static Simplex getSimplexPresorted(int[] vertices, int findex) {\r\n\t\tSimplex s = getSimplexPresorted(vertices);\r\n\t\ts.setfindex(findex);\r\n\t\treturn s;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the edge for a pair of vertices. \r\n\t *\r\n\t * <p>\r\n\t * @param      v1   One vertex.\r\n\t * @param      v2   Another vertex.\r\n\t * @return     A 1-simplex, or edge.\r\n\t */\r\n\tpublic static Simplex makeEdge (int v1, int v2, int findex) {\r\n\t\tSimplex s = Packed2Simplex.makeEdge(v1, v2);\r\n\t\ts.setfindex(findex);\r\n\t\treturn s;\r\n\t}\r\n\r\n\t/**\r\n\t * Turn a vertex into a 0-simplex. \r\n\t *\r\n\t * <p>\r\n\t * @param      v   The vertex.\r\n\t * @return     A 0-simplex, or point.\r\n\t */\r\n\tpublic static Simplex makePoint (int v, int findex) {\r\n\t\tSimplex s = Packed2Simplex.makePoint(v);\r\n\t\ts.setfindex(findex);\r\n\t\treturn s;\r\n\t}\r\n\r\n\t/**\r\n\t * Add a vertex to a simplex.\r\n\t *\r\n\t * <p> I can't recall why this method exists, so the implementation is\r\n\t * the easiest one I can think of.\r\n\t * @param      v   A vertex to adjoin.\r\n\t * @return     The new simplex.\r\n\t */\r\n\tpublic Simplex addVertex(int v) {\r\n\t\tint[] v_old = vertices();\r\n\t\tint[] v_new = new int[v_old.length+1];\r\n\t\tfor (int i = 0; i < v_old.length; i++)\r\n\t\t\tv_new[i] = v_old[i];\r\n\t\tv_new[v_old.length] = v;\r\n\t\treturn Simplex.getSimplex(v_new);\r\n\t}\r\n\r\n\t/**\r\n\t * Add a vertex to a simplex, and set the findex.\r\n\t *\r\n\t * <p>\r\n\t * @param      v   A vertex to adjoin.\r\n\t * @param      f   The new findex.\r\n\t * @return     The new simplex.\r\n\t */\r\n\tpublic Simplex addVertex (int v, int f) {\r\n\t\tSimplex s = this.addVertex(v);\r\n\t\ts.setfindex(f);\r\n\t\treturn s;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Represent a Simplex as a String.\r\n\t *\r\n\t * <p>\r\n\t * @return     A string that describes a Simplex.\r\n\t */\r\n\tpublic String toString() { \r\n\t\tint[] vertices = this.vertices();\r\n\t\tString base = \"<\";\r\n\t\tif (_findex >= 0)\r\n\t\t\tbase = String.format(\"<(%d)\", _findex);\r\n\t\tif (vertices.length == 0)\r\n\t\t\treturn base + \">\";\r\n\t\telse if (_findex >= 0)\r\n\t\t\tbase = base + \" \";\r\n\t\tfor (int i = 0; i < vertices.length-1; i++) {\r\n\t\t\tbase = base + String.format(\"%d, \", vertices[i]);\r\n\t\t}\r\n\t\tbase = base + String.format(\"%d>\", vertices[vertices.length-1]);\r\n\t\treturn base;\r\n\t}\r\n\r\n\t/**\r\n\t * Sort a set of vertices into increasing order, as needed for some\r\n\t * Simplex operations.  We use the bubblesort algorithm, since that is\r\n\t * fastest for very short arrays, which is what we have in practice.\r\n\t *\r\n\t * <p>\r\n\t * @param      vertices   The vertex set.\r\n\t * @return     The sorted vertices.\r\n\t */\r\n\tpublic static int[] vertex_sort (int[] vertices) {\r\n\r\n\t\tif ((vertices.length <= 1))\r\n\t\t\treturn vertices;\r\n\r\n\t\tfor (int j = vertices.length - 1; j > 0; j--) {\r\n\t\t\tfor (int i = 0; i < j; i++) {\r\n\t\t\t\tif (vertices[i+1] < vertices[i]) {\r\n\t\t\t\t\tint dummy = vertices[i];\r\n\t\t\t\t\tvertices[i] = vertices[i+1];\r\n\t\t\t\t\tvertices[i+1] = dummy;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn vertices;\r\n\t}\r\n\r\n\t/**\r\n\t * Sort an array of double into increasing order, as needed for some\r\n\t * Simplex operations.  We use the bubblesort algorithm, since that is\r\n\t * fastest for very short arrays, which is what we have in practice.\r\n\t *\r\n\t * <p>\r\n\t * @param      distances   An array of double to be sorted..\r\n\t * @return     The sorted array.\r\n\t */\r\n\tpublic static double[] dist_sort (double[] distances) {\r\n\r\n\t\tif ((distances.length <= 1))\r\n\t\t\treturn distances;\r\n\r\n\t\tfor (int j = distances.length - 1; j > 0; j--) {\r\n\t\t\tfor (int i = 0; i < j; i++) {\r\n\t\t\t\tif (distances[i+1] < distances[i]) {\r\n\t\t\t\t\tdouble dummy = distances[i];\r\n\t\t\t\t\tdistances[i] = distances[i+1];\r\n\t\t\t\t\tdistances[i+1] = dummy;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn distances;\r\n\t}\r\n\r\n\t/**\r\n\t * Sort a set of vertices into decreasing order, as needed for some\r\n\t * Simplex operations.  We use the bubblesort algorithm, since that is\r\n\t * fastest for very short arrays, which is what we have in practice.\r\n\t *\r\n\t * <p>\r\n\t * @param      vertices   The vertex set.\r\n\t * @return     The reverse sorted vertices.\r\n\t */\r\n\tpublic static int[] simplex_reverse_sort (int[] vertices) {\r\n\r\n\t\tif (vertices.length <= 1)\r\n\t\t\treturn vertices;\r\n\r\n\t\tfor (int j = vertices.length - 1; j > 0; j--) {\r\n\t\t\tfor (int i = 0; i < j; i++) {\r\n\t\t\t\tif (vertices[i+1] > vertices[i]) {\r\n\t\t\t\t\tint dummy = vertices[i];\r\n\t\t\t\t\tvertices[i] = vertices[i+1];\r\n\t\t\t\t\tvertices[i+1] = dummy;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn vertices;\r\n\t}\r\n\r\n\t/**\r\n\t * Sort, in place and using \"persistence order\", an array of\r\n\t * simplices. Null entries will be pushed to the end of the array -- that\r\n\t * is, null is considered to be larger than any non-null Simplex.\r\n\t */\r\n\tpublic static void persistence_sort(Simplex[] sarray) {\r\n\t\tPlexSort.comp_sort((Object[])sarray, 0, sarray.length, \r\n\t\t\t\tnew PlexSort.CompObj() {\r\n\t\t\tpublic int fn(Object o1, Object o2) { \r\n\t\t\t\tif (o1 == o2)\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\tif (o1 == null)\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\tif (o2 == null)\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\tSimplex s1 = (Simplex)o1;\r\n\t\t\t\tSimplex s2 = (Simplex)o2;\r\n\t\t\t\tif (s1.slt(s2))\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\telse if (s2.slt(s1))\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\telse\r\n\t\t\t\t\treturn 0;\r\n\t\t\t}\r\n\t\t} );\r\n\t}\r\n\r\n\t/**\r\n\t * Return an array of simplices that describes the boundary. The sign\r\n\t * associated with a face is -1 to the power of the index of that face in\r\n\t * the array. There is a static class method in Chain that will convert\r\n\t * an array of this type into a Chain for use in homology calculations.\r\n\t *\r\n\t * <p>\r\n\t * @return     [face0, face1, ...]\r\n\t */\r\n\tabstract public Simplex[] boundaryArray();\r\n\r\n\t/**\r\n\t * Return the boundary of a simplex as a chain over a given characteristic.\r\n\t * <p>\r\n\t * @param p The characteristic\r\n\t * @return A chain representing the boundary.\r\n\t */\r\n\r\n\tpublic Chain boundary(int p) {\r\n\t\tSimplex[] boundarySimplices = this.boundaryArray();\r\n\t\tif(boundarySimplices == null)\r\n\t\t\tboundarySimplices = new Simplex[0];\r\n\t\tint[] boundaryCoefficients = new int[boundarySimplices.length];\r\n\t\tint sign = 1;\r\n\t\tfor(int i=0; i<boundaryCoefficients.length; i++) {\r\n\t\t\tboundaryCoefficients[i] = (sign>0)?sign:p+sign;\r\n\t\t\tsign *= -1;\r\n\t\t}\r\n\t\treturn new Chain(p,boundaryCoefficients,boundarySimplices);\r\n\t}\r\n\r\n\r\n\t//\r\n\t// Test code \r\n\t// \r\n\t// The code below this point is for testing purposes only.\r\n\t//\r\n\r\n\t/**\r\n\t * Return a random Simplex. A test function.\r\n\t *\r\n\t * <p>\r\n\t * @return     A \"random\" Simplex.\r\n\t */\r\n\tstatic Simplex random() { \r\n\t\tint length = (int) Math.floor((Math.random() * 9.0));\r\n\t\tif (length > 8)\r\n\t\t\tlength = 8;\r\n\t\tif (length < 1)\r\n\t\t\tlength = 1;\r\n\t\tint[] vertices = new int[length];\r\n\t\tfor(int i = 0; i < length; i++) {\r\n\t\t\tint x = 1 + (int) Math.floor((Math.random() * 1000.0));\r\n\t\t\tvertices[i] = x;\r\n\t\t}\r\n\t\tvertex_sort(vertices);\r\n\t\tfor(int i = 0; i < length-1; i++) {\r\n\t\t\tif (vertices[i] == vertices[i+1]) {\r\n\t\t\t\tfor(int j = i+1; j < length; j++) {\r\n\t\t\t\t\tvertices[j]++;\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn getSimplexPresorted(vertices);\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/SimplexFaceIterator.java",
    "content": "package edu.stanford.math.plex;\r\n\r\n/**\r\n * The <code>SimplexFaceIterator</code> class.\r\n *\r\n * <p>A <code>SimplexFaceIterator</code> instance makes an iterator that\r\n * returns all of the faces of a Simplex (specified via a Simplex or a\r\n * SimplexHandle) in a given dimension range. It also keeps track of the\r\n * sign of the last one returned, so that this can be used to compute the\r\n * boundary of a simplex. \r\n *\r\n * @version $Id$\r\n */\r\npublic class SimplexFaceIterator {\r\n\r\n\tprotected int signOfLast;\r\n\t// The number of elements in the counter and current arrays -- the size\r\n\t// of the subsets that we are iterating over.\r\n\tprotected final int k;\r\n\t// The number of elements in the vertices set -- the size of the\r\n\t// superset whose k-sets we are iterating over.\r\n\tprotected final int N;\r\n\t// The actual vertex set that we are iterating over.\r\n\tprotected final int[] vertices;\r\n\t// The k-length array of indices (that is , 0,...,N-1).\r\n\tprotected final int[] counter;\r\n\t// The current \"vertex subset\".\r\n\tprotected final int[] current;\r\n\r\n\r\n\t// Are there any more elements?\r\n\tpublic boolean hasNext() {\r\n\t\treturn ((counter[k-1] < (N - 1)) || (counter[0] < (N - k)));\r\n\t}\r\n\r\n\t// This is a little tricky. We want a way to iterate over all of the\r\n\t// subsets of the vertex set, and return simplices for each of those\r\n\t// subsets. (These subsets are the lower dimensional faces of the\r\n\t// simplex.) If we consider the set with N elements to be {0,...,N-1},\r\n\t// then the k subsets of N are given by all possible {x0<...<x(k-1)}, so we\r\n\t// can enumerate this with a k vector where we iterate over all\r\n\t// possible such arrangements of values. It doesn't particularly matter\r\n\t// what order we use, so we generate the sets lexicographically since\r\n\t// this seems simplest to understand. Clearly the first subset in this\r\n\t// ordering will be [0,...,(k-1)], and for any subset S = [x0,....x(k-1)] where\r\n\t// x(k-1)<N, the next subset is [x0,...,x(k-1)+1]. In fact, for any S =\r\n\t// [x0,...,xj,..,x(k-1)], the next subset is [x0,...,x(j-1)] adjoined to\r\n\t// the next subset for [xj,...,x(k-1)]. Notice that we can consider\r\n\t// [xj,...,x(k-1)] just as a subset of {xj,...,N} (the xi are increasing).\r\n\t// Since the last entry in {xj,...,N} will be [(N-j)+1,...,N-1,N], all\r\n\t// we need to do to find the next entry after S is to find a j so that\r\n\t// [xj,...,x(k-1)] is not of that form. That is, we find the last subscript\r\n\t// j such that xj < N-(k-j). If there is no such index, then S =\r\n\t// [N-k,...,N-1] -- in other words, S is the last subset. If there is\r\n\t// such a j, then the next subset is [1+xj,2+xj,...] adjoined to\r\n\t// [x0,...,x(j-1)]. Therefore, if are any subsets, that is, if N>k>0,\r\n\t// we set an array we use as a \"counter\" to the initial value of\r\n\t// [0,...,k-2,k-2] (that is, the last entry is one less than it should\r\n\t// be), that when we ask for the first time for the \"next\" set, we get\r\n\t// the first set. \r\n\t//\r\n\t// In practice our vertex sets are given as an array of indices\r\n\t// V[]=[v0,v1,...,v(N-1)], so the k-subsets are actually enumerated by\r\n\t// enumerating the indices -- that is we enumerate [x0,...,x(k-1)] in the\r\n\t// set [0,...N-1], and then the sets {V[x0],...,V[x(k-1)]} iterate over\r\n\t// all k-sets of V. This is the reason that the code here is using\r\n\t// 0-based counting.\r\n\r\n\t/**\r\n\t * Get the next face in an iteration of all faces of dimension k.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     vertices for the next k-face.\r\n\t *\r\n\t */\r\n\tpublic int[] next () {\r\n\t\tint i;\r\n\t\tif (counter[k-1] < (N-1))\r\n\t\t\tcounter[k-1]++;\r\n\t\telse {\r\n\t\t\tfor (i = k-2; i >= 0; i--) {\r\n\t\t\t\tif (counter[i] < ((N-k)+i)) {\r\n\t\t\t\t\tint base = counter[i] + 1;\r\n\t\t\t\t\tfor (int j = i; j < k; j++)\r\n\t\t\t\t\t\tcounter[j] = base++;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (i = 0; i < k; i++)\r\n\t\t\tcurrent[i] = vertices[counter[i]];\r\n\t\tsignOfLast = -signOfLast;\r\n\t\treturn current;\r\n\t}\r\n\r\n\r\n\tprotected SimplexFaceIterator() {\r\n\t\t// do not use\r\n\t\tk = 0;\r\n\t\tN = 0;\r\n\t\tcounter = null;\r\n\t\tcurrent = null;\r\n\t\tvertices = null;\r\n\t\tsignOfLast = 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Construct a new iterator for faces of a simplex given by an array.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      vertices   An int[] specifying the vertices.\r\n\t * @param dimension Dimension of the faces we care about.\r\n\t *\r\n\t */\r\n\tpublic SimplexFaceIterator(int[] vertices, int dimension) {\r\n\t\tif ((dimension >= 0) && (vertices.length > dimension)) {\r\n\t\t\tk = dimension + 1;\r\n\t\t\tN = vertices.length;\r\n\r\n\t\t\tif ((k+1) == N)\r\n\t\t\t\tsignOfLast = -1;\r\n\t\t\telse\r\n\t\t\t\tsignOfLast = 0;\r\n\r\n\t\t\tthis.vertices = vertices;\r\n\t\t\tcounter = new int[k];\r\n\t\t\tfor (int i = 0; i < k-1; i++)\r\n\t\t\t\tcounter[i] = i;\r\n\t\t\tcounter[k-1] = k-2;\r\n\t\t\tcurrent = new int[k];\r\n\t\t} else {\r\n\t\t\tk = 1;\r\n\t\t\tN = 1;\r\n\t\t\tcounter = new int[1];\r\n\t\t\tcurrent = new int[1];\r\n\t\t\tthis.vertices = null;\r\n\t\t\tsignOfLast = 0;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Construct a new iterator for the faces specified dimension.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      s   Simplex whose faces are of interest.\r\n\t * @param dimension Dimension of the faces we care about (often\r\n\t *        dimension of the simplex - 1).\r\n\t *\r\n\t */\r\n\tpublic SimplexFaceIterator(Simplex s, int dimension) {\r\n\t\tthis(s.vertices(), dimension);\r\n\t}\r\n\r\n\t/**\r\n\t * Return the dimension of the faces generated by this iterator.\r\n\t */    \r\n\tpublic int getDimension() {\r\n\t\treturn k - 1;\r\n\t}\r\n\r\n\t/**\r\n\t * Return the sign of the last face -- only useful when codimension is 1.\r\n\t */    \r\n\tpublic int getSignOfLast() {\r\n\t\treturn signOfLast;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/SimplexStream.java",
    "content": "\r\npackage edu.stanford.math.plex;\r\n\r\nimport java.util.Iterator;\r\nimport java.util.NoSuchElementException;\r\n\r\n/**\r\n * An instance of the abstract class <code>SimplexStream</code> provides\r\n * the simplices of a filtered complex in lexicographic order on\r\n * persistence index and dimension. The ordering is unspecified beyond that\r\n * point, and may even vary from instance to instance. The reason that\r\n * SimplexStream has both <code>hasNext()</code> and <code>next()</code>\r\n * methods <em>and</em> implements the <code>Iterable</code> interface is\r\n * that the internal iteration methods are allowed to be destructive. That\r\n * is, it is possible (and in fact does happen) that\r\n * <code>stream.next()</code> will remove simplices from\r\n * <code>stream</code>, making it impossible to use this method to iterate\r\n * over <code>stream</code> a second time. Therefore, unless you are\r\n * prepared to <em>consume</em> the stream, use the <code>Iterable</code>\r\n * interface.\r\n *\r\n * @version $Id$\r\n */\r\n\r\npublic abstract class SimplexStream \r\nimplements Iterable<Simplex>, Iterator<Simplex> {\r\n\r\n\t/**\r\n\t * Is there a next Simplex in the stream?\r\n\t *\r\n\t * <p>\r\n\t * @return     Return true if the stream is not yet empty.\r\n\t *\r\n\t */\r\n\tpublic abstract boolean hasNext();\r\n\r\n\t/**\r\n\t * Next Simplex in the stream.\r\n\t *\r\n\t * <p>\r\n\t * @return     Return the smallest remaining Simplex instance.\r\n\t *\r\n\t */\r\n\tpublic abstract Simplex next();\r\n\r\n\t/**\r\n\t * Unsupported remove() operation.\r\n\t *\r\n\t * @exception UnsupportedOperationException \r\n\t */\r\n\tpublic void remove() {\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n\t/**\r\n\t * How many simplices are in the stream?\r\n\t *\r\n\t * <p>\r\n\t * @return     The number of simplices in the stream.\r\n\t *\r\n\t */\r\n\tpublic abstract int size();\r\n\r\n\t/**\r\n\t * Max dimension of simplices in the stream.\r\n\t *\r\n\t * <p>\r\n\t * @return     Max dimension of simplices in the stream.\r\n\t *\r\n\t */\r\n\tpublic abstract int maxDimension();\r\n\r\n\t/**\r\n\t * Convert a PersistenceInterval into Float format in a stream-specific manner.\r\n\t *\r\n\t * <p>\r\n\t * @param      p PersistenceInterval to convert.\r\n\t * @return     Converted PersistenceInterval.Float.\r\n\t *\r\n\t */\r\n\tpublic PersistenceInterval.Float convertInterval(PersistenceInterval p) {\r\n\t\tif (p instanceof PersistenceInterval.Float)\r\n\t\t\treturn (PersistenceInterval.Float) p;\r\n\t\telse {\r\n\t\t\tPersistenceInterval.Int pi = (PersistenceInterval.Int) p;\r\n\t\t\tdouble start = convert_filtration_index(pi.start);\r\n\t\t\tdouble end = p.infiniteExtent()?\r\n\t\t\t\t\tPersistenceInterval.Float.MAX_END:\r\n\t\t\t\t\t\tconvert_filtration_index(pi.end);\r\n\t\t\treturn new PersistenceInterval.Float(pi.dimension, start, end);\r\n\t\t} \r\n\t}\r\n\r\n\t/**\r\n\t * convert a PersistenceBasisInterval into Float format in a stream-specific manner.\r\n\t *\r\n\t * <p>\r\n\t * @param    p PersistenceBasisInterval to convert.\r\n\t * @return   Converted PersistenceBasisInterval.Float.\r\n\t */\r\n\tpublic PersistenceBasisInterval.Float convertInterval(PersistenceBasisInterval p) {\r\n\t\tif(p instanceof PersistenceBasisInterval.Float)\r\n\t\t\treturn (PersistenceBasisInterval.Float) p;\r\n\t\telse {\r\n\t\t\tPersistenceBasisInterval.Int pbi = (PersistenceBasisInterval.Int) p;\r\n\t\t\tPersistenceInterval.Int pii = \r\n\t\t\t\tnew PersistenceInterval.Int(pbi.dimension, pbi.start, pbi.end);\r\n\t\t\tPersistenceInterval.Float pif = convertInterval(pii);\r\n\t\t\treturn new PersistenceBasisInterval.Float(pbi.basisElement,\r\n\t\t\t\t\tpif.start, pif.end);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Convert a filtration index into a persistence parameter (i.e., double)\r\n\t * -- gets overloaded by some subclasses.\r\n\t *\r\n\t * <p>\r\n\t * @param      fi Filtration index to convert.\r\n\t * @return     double persistence parameter.\r\n\t *\r\n\t */\r\n\tpublic double convert_filtration_index(int fi) {\r\n\t\treturn (double) fi;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Check the stream as much as possible.\r\n\t *\r\n\t * <p>\r\n\t * @return     True if the stream is consistent, else false.\r\n\t *\r\n\t */\r\n\tpublic boolean verify() {\r\n\t\tSimplexTable faces = new SimplexTable(size());\r\n\t\tfor(Simplex s : this) {\r\n\t\t\tSimplex[] bdy = s.boundaryArray();\r\n\t\t\tif (bdy != null) {\r\n\t\t\t\tfor(Simplex f : bdy) {\r\n\t\t\t\t\tSimplex tmp = faces.get(f);\r\n\t\t\t\t\tif ((tmp == null) || (tmp.findex() > s.findex()))\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfaces.put(s);\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic enum ComparisonType { LT, LE, EQ, GE, GT };\r\n\r\n\t// As we are constructing the stream contents, we need to temporarily\r\n\t// store simplices in a FIFO queue. Since we want to deal with the case\r\n\t// where we have a LOT of simplices in the stream, we make some\r\n\t// special-purpose classes with a very small amounts of overhead. NOTE:\r\n\t// The FIFO queue functionality requires using both the Tail, to\r\n\t// which objects are added, and the Head, from which they are\r\n\t// extracted.\r\n\r\n\t/**\r\n\t * An instance of <code>Tail</code> provides the FI part of a FIFO\r\n\t * queue. To retrieve the enqueued simplices in FO order, attach a\r\n\t * <code>Head</code> to this instance.\r\n\t */\r\n\tpublic static class Tail {\r\n\r\n\t\tstatic final int ENTRIES_DEFAULT_LENGTH = 100;\r\n\t\tSimplex[] entries;\r\n\t\tint current;\r\n\t\tTail next;\r\n\r\n\t\t// make an empty SimplexStream.Segment with the default length\r\n\t\tpublic Tail() {\r\n\t\t\tentries = new Simplex[ENTRIES_DEFAULT_LENGTH];\r\n\t\t\tcurrent = 0;\r\n\t\t\tnext = null;\r\n\t\t}\r\n\r\n\t\t// make an empty SimplexStream.Segment with the given length\r\n\t\tpublic Tail(int len) {\r\n\t\t\tentries = new Simplex[len];\r\n\t\t\tcurrent = 0;\r\n\t\t\tnext = null;\r\n\t\t}\r\n\r\n\t\tpublic String toString() {\r\n\t\t\treturn String.format(\"[QT(%d:%d): {%d}%s]\",\r\n\t\t\t\t\tcurrent, entries.length, \r\n\t\t\t\t\tSystem.identityHashCode(entries),\r\n\t\t\t\t\t(next != null)?(\"->\"+next.toString()):\"\");\r\n\t\t}\r\n\r\n\t\tpublic Tail enqueue(Simplex s) {\r\n\t\t\tif (current < entries.length) {\r\n\t\t\t\tassert(next == null);\r\n\t\t\t\tentries[current++] = s;\r\n\t\t\t\treturn this;\r\n\t\t\t} else {\r\n\t\t\t\tnext = new Tail(entries.length);\r\n\t\t\t\tnext.entries[next.current++] = s;\r\n\t\t\t\treturn next;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * A <code>Head</code> provides the FO part of a FIFO queue when\r\n\t * attached to a <code>Tail</code> to which simplices have been\r\n\t * enqueued.\r\n\t *\r\n\t */\r\n\tpublic static class Head {\r\n\r\n\t\tSimplex[] entries;\r\n\t\tint current;\r\n\t\tTail orig;\r\n\r\n\t\t// don't use\r\n\t\tprotected Head() {\r\n\t\t}\r\n\r\n\t\t// make a head for a Tail\r\n\t\tpublic Head(Tail q) {\r\n\t\t\tentries = q.entries;\r\n\t\t\tcurrent = q.current;\r\n\t\t\torig = q;\r\n\t\t}\r\n\r\n\t\t// Duplicate a Head. Note that interating with a copy has no effect\r\n\t\t// on the original, and no effect on the underlying Tail.\r\n\t\tpublic Head copy() {\r\n\t\t\tHead tmp = new Head();\r\n\t\t\ttmp.entries = entries;\r\n\t\t\ttmp.current = current;\r\n\t\t\ttmp.orig = orig;\r\n\t\t\treturn tmp;\r\n\t\t}\r\n\r\n\t\tpublic String toString() {\r\n\t\t\treturn String.format(\"[QH(%d:%d): {%d} (%s)]\",\r\n\t\t\t\t\tcurrent, entries.length, \r\n\t\t\t\t\tSystem.identityHashCode(entries),\r\n\t\t\t\t\torig.toString());\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the next entry from the underlying Queue.\r\n\t\t *\r\n\t\t * <p> \r\n\t\t * This only works is we don't outrun the underlying Tail.\r\n\t\t * <p>\r\n\t\t * @return     next Simplex in the Queue.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic Simplex nextEntry() {\r\n\t\t\tif (current == entries.length) {\r\n\t\t\t\t// System.out.printf(\"nextEntry() for %s\\n\", toString());\r\n\t\t\t\tTail n = orig.next;\r\n\t\t\t\tentries = n.entries;\r\n\t\t\t\tcurrent = 0;\r\n\t\t\t\torig = n;\r\n\t\t\t}\r\n\t\t\treturn entries[current++];\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Compare one Head to another.\r\n\t\t *\r\n\t\t * <p> This is a very fast comparison that will only work if both\r\n\t\t * Head instances are heads for the same Tail. \r\n\t\t * <p>\r\n\t\t * @param      q  Head to compare\r\n\t\t * @return     true if this is prior to q, else false.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic boolean lessThan (Head q) {\r\n\t\t\treturn ((entries != q.entries) || (current < q.current));\r\n\t\t}\r\n\r\n\r\n\t\t/**\r\n\t\t * Check equality of Head with another.\r\n\t\t *\r\n\t\t * <p> This is used only by assertions.\r\n\t\t * <p>\r\n\t\t * @param      q  Head to compare\r\n\t\t * @return     true if this is equal to q, else false.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic boolean eql(Head q) {\r\n\t\t\treturn ((entries == q.entries) || (current == q.current));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * <code>Stack</code> is a multiway segmented stack for sorted storage\r\n\t * of simplices.\r\n\t *\r\n\t * <p> The class <code>SimplexStream.Stack</code> provides a simple,\r\n\t * fast, scalable implementation of SimplexStream. Instances are arrays\r\n\t * of segmented stacks of simplices, simplices are less than,\r\n\t * equivalent, or greater than one another (for the purposes of the\r\n\t * Persistence computations) if and only if the corresponding indices\r\n\t * for their segmented stacks are <, ==, or >. In addition, the next()\r\n\t * method drops references to the segments as soon as possible, which\r\n\t * means that the stack consumes progressively less memory as its\r\n\t * contents are processed.\r\n\t */\r\n\tpublic static class Stack extends SimplexStream {\r\n\r\n\t\t// Rather like the Queue code above, but this is even simpler --\r\n\t\t// the building block of a segmented stack.\r\n\t\tprotected static class Segment {\r\n\t\t\tprotected final Simplex[] entries;\r\n\t\t\tprotected int current;\r\n\t\t\tprotected Segment next;\r\n\r\n\t\t\t// don't use\r\n\t\t\tprotected Segment() {\r\n\t\t\t\tentries = null;\r\n\t\t\t\tcurrent = 0;\r\n\t\t\t\tnext = null;\r\n\t\t\t}\r\n\r\n\t\t\t// make an empty SimplexStream.Segment with a specified length\r\n\t\t\tprotected Segment(int len) {\r\n\t\t\t\tentries = new Simplex[len];\r\n\t\t\t\tcurrent = 0;\r\n\t\t\t\tnext = null;\r\n\t\t\t}\r\n\r\n\t\t\tpublic String toString() {\r\n\t\t\t\treturn String.format(\"[Seg(%d:%d): {%d}%s]\",\r\n\t\t\t\t\t\tcurrent, entries.length, \r\n\t\t\t\t\t\tSystem.identityHashCode(entries),\r\n\t\t\t\t\t\t(next != null)?(\"->\"+next.toString()):\"\");\r\n\t\t\t}\r\n\r\n\t\t\tprotected Segment push(Simplex s) {\r\n\t\t\t\tif (current < entries.length) {\r\n\t\t\t\t\tentries[current++] = s;\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tSegment tmp = new Segment(entries.length);\r\n\t\t\t\t\ttmp.next = this;\r\n\t\t\t\t\ttmp.entries[tmp.current++] = s;\r\n\t\t\t\t\treturn tmp;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tprotected static int STACK_SEGMENT_LENGTH = 10;\r\n\r\n\t\tprotected final Segment[] segments;\r\n\t\tprotected final int findex_bound;\r\n\t\tprotected final int dimension_bound;\r\n\t\tprotected final int segment_length;\r\n\t\tprotected int size;\r\n\r\n\t\tprotected int segments_index;\r\n\t\tprotected int simplex_index;\r\n\r\n\t\t// don't use\r\n\t\tprotected Stack() {\r\n\t\t\tsegment_length = 0;\r\n\t\t\tsegments = null;\r\n\t\t\tdimension_bound = 0;\r\n\t\t\tfindex_bound = 0;\r\n\t\t\tsegments_index = 0;\r\n\t\t\tsimplex_index = 0;\r\n\t\t\tsize = 0;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Constructor for Stack.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * Make a multi-way stack that automatically sorts simplices.\r\n\t\t * <p>\r\n\t\t * @param      max_findex Maximum Filtration Index we'll use.\r\n\t\t * @param      max_d Maximum dimension of a Simplex to be pushed.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic Stack(int max_findex, int max_d) {\r\n\t\t\tsegment_length = STACK_SEGMENT_LENGTH;\r\n\t\t\tdimension_bound = (max_d + 1);\r\n\t\t\tfindex_bound = (max_findex + 1);\r\n\t\t\tsegments = new Segment[dimension_bound * findex_bound];\r\n\t\t\tsegments_index = 0;\r\n\t\t\tsimplex_index = 0;\r\n\t\t\tsize = 0;\r\n\t\t}\r\n\r\n\t\tpublic String toString() {\r\n\t\t\treturn String.format(\"[STK(%d,%d): %d/%d, si=%d/%d]\",\r\n\t\t\t\t\tdimension_bound, findex_bound, \r\n\t\t\t\t\tsegments_index, segments.length,\r\n\t\t\t\t\tsimplex_index, segment_length);\r\n\t\t}\r\n\r\n\t\tprotected int simplexIndex(Simplex s) {\r\n\t\t\tassert((s.findex() < findex_bound) && (s.dimension() < dimension_bound));\r\n\t\t\treturn (s.findex() * dimension_bound) + s.dimension();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Push a Simplex into the stream.\r\n\t\t *\r\n\t\t * <p> Add the Simplex s to the stream so that it will be retrieved\r\n\t\t * in the proper order. \r\n\t\t * <p>\r\n\t\t * @param      s  Simplex instance to push.\r\n\t\t * @return     s\r\n\t\t *\r\n\t\t */\r\n\t\tpublic Simplex push(Simplex s) {\r\n\t\t\tint index = simplexIndex(s);\r\n\t\t\tsize++;\r\n\t\t\tif (segments[index] == null) \r\n\t\t\t\tsegments[index] = new Segment(segment_length);\r\n\t\t\tsegments[index] = (segments[index]).push(s);\r\n\t\t\treturn s;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * How many simplices are in the stream?\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     The number of simplices in the stream.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic int size() {\r\n\t\t\treturn size;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Max dimension of simplices in the stream.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     Max dimension of simplices in the stream.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic int maxDimension() {\r\n\t\t\treturn (dimension_bound - 1);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Is there a next Simplex in the stream?\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     Return true if the stream is not yet empty.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic boolean hasNext() {\r\n\t\t\tif (segments[segments_index] != null) {\r\n\t\t\t\tif (simplex_index < segments[segments_index].current)\r\n\t\t\t\t\treturn true;\r\n\t\t\t\telse {\r\n\t\t\t\t\tsimplex_index = 0;\r\n\t\t\t\t\tSegment next = segments[segments_index].next;\r\n\t\t\t\t\tsegments[segments_index] = next;\r\n\t\t\t\t\tif (next != null) {\r\n\t\t\t\t\t\tassert(0 < next.current);\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tassert(segments[segments_index] == null);\r\n\t\t\tassert(simplex_index == 0);\r\n\r\n\t\t\twhile ((segments_index < segments.length) && \r\n\t\t\t\t\t(segments[segments_index] == null))\r\n\t\t\t\tsegments_index++;\r\n\r\n\t\t\tif (segments_index == segments.length)\r\n\t\t\t\treturn false;\r\n\r\n\t\t\tassert(segments[segments_index] != null);\r\n\t\t\tassert(0 < segments[segments_index].current);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Return the next Simplex in the stream. This operations\r\n\t\t * <em>removes</em> the simplex returned from the stream, so\r\n\t\t * repeated iterations are impossible with the method.\r\n\t\t *\r\n\t\t * <p>\r\n\t\t * @return     The smallest remaining Simplex instance.\r\n\t\t *\r\n\t\t */\r\n\t\tpublic Simplex next() {\r\n\t\t\tSegment seg = segments[segments_index];\r\n\t\t\tSimplex s;\r\n\t\t\tif (seg != null) {\r\n\t\t\t\tif (simplex_index < seg.current) {\r\n\t\t\t\t\ts = seg.entries[simplex_index];\r\n\t\t\t\t\tseg.entries[simplex_index++] = null;\r\n\t\t\t\t\tassert(size > 0);\r\n\t\t\t\t\tsize--;\r\n\t\t\t\t\treturn s;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsimplex_index = 0;\r\n\t\t\t\t\tseg = segments[segments_index] = segments[segments_index].next;\r\n\t\t\t\t\tif (seg != null) {\r\n\t\t\t\t\t\tassert(0 < seg.current);\r\n\t\t\t\t\t\ts = seg.entries[simplex_index];\r\n\t\t\t\t\t\tseg.entries[simplex_index++] = null;\r\n\t\t\t\t\t\tassert(size > 0);\r\n\t\t\t\t\t\tsize--;\r\n\t\t\t\t\t\treturn s;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tassert(segments[segments_index] == null);\r\n\t\t\tassert(simplex_index == 0);\r\n\r\n\t\t\twhile ((segments_index < segments.length) && \r\n\t\t\t\t\t((seg = segments[segments_index]) == null))\r\n\t\t\t\tsegments_index++;\r\n\r\n\t\t\tif (segments_index == segments.length)\r\n\t\t\t\treturn null;\r\n\r\n\t\t\tassert(segments[segments_index] != null);\r\n\t\t\tassert(0 < seg.current);\r\n\t\t\ts = seg.entries[simplex_index];\r\n\t\t\tseg.entries[simplex_index++] = null;\r\n\t\t\tassert(size > 0);\r\n\t\t\tsize--;\r\n\t\t\treturn s;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Instances provide Iterator<Simplex> for non-destructive\r\n\t\t * iterating over Stack entries. That is, repeated iteration over a\r\n\t\t * Stack instance is possible with multiple instances of this\r\n\t\t * class.\r\n\t\t */\r\n\t\tprotected static class StackIterator implements Iterator<Simplex> {\r\n\t\t\tprotected Segment[] segments;\r\n\t\t\tprotected int segments_index;\r\n\t\t\tprotected Segment current_seg;\r\n\t\t\tprotected int simplex_index;\r\n\t\t\tprotected int fixed_dimension;\r\n\t\t\tprotected final int dimension_bound;\r\n\r\n\t\t\tprotected StackIterator() {\r\n\t\t\t\tsegments = null;\r\n\t\t\t\tsegments_index = 0;\r\n\t\t\t\tcurrent_seg = null;\r\n\t\t\t\tsimplex_index = 0;\r\n\t\t\t\tfixed_dimension = -1;\r\n\t\t\t\tdimension_bound = 0;\r\n\t\t\t}\r\n\r\n\t\t\tpublic StackIterator(Stack stack) {\r\n\t\t\t\tsegments = stack.segments;\r\n\t\t\t\tsegments_index = 0;\r\n\t\t\t\tcurrent_seg = null;\r\n\t\t\t\tsimplex_index = 0;\r\n\t\t\t\tfixed_dimension = -1;\r\n\t\t\t\tdimension_bound = stack.dimension_bound;\r\n\t\t\t}\r\n\r\n\t\t\tpublic StackIterator(Stack stack, int dimension) {\r\n\t\t\t\tsegments = stack.segments;\r\n\t\t\t\tsegments_index = -1;\r\n\t\t\t\tcurrent_seg = null;\r\n\t\t\t\tsimplex_index = 0;\r\n\t\t\t\tif ((dimension < 0) || (dimension >= stack.dimension_bound))\r\n\t\t\t\t\tthrow new IllegalArgumentException(dimension + \r\n\t\t\t\t\t\t\t\" must be >= 0 and <= \" + \r\n\t\t\t\t\t\t\tstack.dimension_bound); \r\n\t\t\t\tfixed_dimension = dimension;\r\n\t\t\t\tdimension_bound = stack.dimension_bound;\r\n\t\t\t}\r\n\r\n\t\t\t/**\r\n\t\t\t * Returns <tt>true</tt> if the iterator has more simplices.\r\n\t\t\t *\r\n\t\t\t * @return <tt>true</tt> if the iterator has more simplices, else\r\n\t\t\t * <tt>false</tt>.\r\n\t\t\t */\r\n\t\t\tpublic boolean hasNext() {\r\n\t\t\t\twhile(true) {\r\n\t\t\t\t\twhile (current_seg == null) {\r\n\t\t\t\t\t\tif (segments_index >= segments.length)\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (fixed_dimension >= 0) {\r\n\t\t\t\t\t\t\t\tif (segments_index < 0)\r\n\t\t\t\t\t\t\t\t\tsegments_index = fixed_dimension;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tsegments_index += dimension_bound;\r\n\t\t\t\t\t\t\t\tif (segments_index >= segments.length)\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tcurrent_seg = segments[segments_index];\r\n\t\t\t\t\t\t\t} else\r\n\t\t\t\t\t\t\t\tcurrent_seg = segments[segments_index++];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\twhile (current_seg != null) {\r\n\t\t\t\t\t\twhile ((simplex_index < current_seg.current) &&\r\n\t\t\t\t\t\t\t\t(current_seg.entries[simplex_index] == null))\r\n\t\t\t\t\t\t\tsimplex_index++;\r\n\t\t\t\t\t\tif (simplex_index < current_seg.current)\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tsimplex_index = 0;\r\n\t\t\t\t\t\t\tcurrent_seg = current_seg.next;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/**\r\n\t\t\t * Returns the next Simplex in the iteration of the Stack.\r\n\t\t\t * Used in concert with the {@link #hasNext()} method returns\r\n\t\t\t * return each Simplex in the Stack exactly once. Does\r\n\t\t\t * <em>not</em> have any side effects on the stream.\r\n\t\t\t * <p>\r\n\t\t\t * @return the next Simplex in the Stack.\r\n\t\t\t * @exception NoSuchElementException Stack has no more elements.\r\n\t\t\t */\r\n\t\t\tpublic Simplex next() {\r\n\t\t\t\twhile(true) {\r\n\t\t\t\t\twhile (current_seg == null) {\r\n\t\t\t\t\t\tif (segments_index >= segments.length)\r\n\t\t\t\t\t\t\tthrow new NoSuchElementException();\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (fixed_dimension >= 0) {\r\n\t\t\t\t\t\t\t\tif (segments_index < 0)\r\n\t\t\t\t\t\t\t\t\tsegments_index = fixed_dimension;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tsegments_index += dimension_bound;\r\n\t\t\t\t\t\t\t\tif (segments_index >= segments.length)\r\n\t\t\t\t\t\t\t\t\tthrow new NoSuchElementException();\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tcurrent_seg = segments[segments_index];\r\n\t\t\t\t\t\t\t} else\r\n\t\t\t\t\t\t\t\tcurrent_seg = segments[segments_index++];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\twhile (current_seg != null) {\r\n\t\t\t\t\t\twhile ((simplex_index < current_seg.current) &&\r\n\t\t\t\t\t\t\t\t(current_seg.entries[simplex_index] == null))\r\n\t\t\t\t\t\t\tsimplex_index++;\r\n\t\t\t\t\t\tif (simplex_index < current_seg.current) {\r\n\t\t\t\t\t\t\treturn current_seg.entries[simplex_index++];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsimplex_index = 0;\r\n\t\t\t\t\t\t\tcurrent_seg = current_seg.next;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/**\r\n\t\t\t * Unsupported remove() operation.\r\n\t\t\t *\r\n\t\t\t * @exception UnsupportedOperationException \r\n\t\t\t */\r\n\t\t\tpublic void remove() {\r\n\t\t\t\tthrow new UnsupportedOperationException();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Make a non-destructive iterator for the Stack.\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @return  Iterator<Simplex> instance for the stack.\r\n\t\t *\r\n\t\t * @see        java.util.Iterator\r\n\t\t */\r\n\t\tpublic Iterator<Simplex> iterator() {\r\n\t\t\treturn new StackIterator(this);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Make a non-destructive iterator for fixed dimensional entries in the Stack.\r\n\t\t * <p>\r\n\t\t *\r\n\t\t * @param      d  dimension of entries we want to iterate over\r\n\t\t * @return  Iterator<Simplex> instance for the stack.\r\n\t\t *\r\n\t\t * @see        java.util.Iterator\r\n\t\t */\r\n\t\tpublic Iterator<Simplex> iterator(int d) {\r\n\t\t\treturn new StackIterator(this, d);\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/SimplexTable.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport java.util.Iterator;\r\nimport java.util.NoSuchElementException;\r\n\r\n/**\r\n * A <code>SimplexTable</code> is an interning table for instances of\r\n * Simplex. That is, the simplices in the table are both key and\r\n * value. There is no removal operation, and putting a simplex equivalent\r\n * to one already in the table throws an IllegalArgumentException. The\r\n * largest table we can make will hold around 976M simplices. Attempting to\r\n * add a simplex to table that is full throwns an IllegalStateException.\r\n *\r\n * @version $Id$\r\n */\r\npublic class SimplexTable implements Iterable<Simplex> {\r\n\r\n\t// The simplest possible hashtable. We don't support removing things,\r\n\t// and an attempt to put a Simplex twice will throw an\r\n\t// IllegalArgumentException.\r\n\r\n\tprotected int size = 0;\r\n\tprotected int entry_limit = 0;\r\n\tprotected int mask = 0;\r\n\tprotected Simplex[] table;\r\n\tprotected static final double LOAD_FACTOR = 1.4;\r\n\tprotected int MAX_TABLE_SIZE = (1 << 30);\r\n\tprotected int MAX_ENTRY_LIMIT = (int) Math.floor(MAX_TABLE_SIZE / LOAD_FACTOR);\r\n\r\n\t// don't use\r\n\tprotected SimplexTable() {}\r\n\r\n\r\n\t/**\r\n\t * Make a new SimplexTable.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * You must make sure that limit is as large as the number of simplices\r\n\t * you will be storing in the table, as the table will <em>NOT</em>\r\n\t * grow, and attempting to add simplices past the limit throws an\r\n\t * exception which isn't caught in the Persistence algorithm.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      limit   An upper bound on the number of simplices that \r\n\t *         will be interned in the table -- must be less than or equal \r\n\t *        to MAX_ENTRY_LIMIT (which is about 976M).\r\n\t *\r\n\t * @exception  IllegalArgumentException \r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\tpublic SimplexTable(int limit) {\r\n\t\tentry_limit = limit;\r\n\t\tint required_table_limit = (int)Math.floor((LOAD_FACTOR * limit) + 1.0);\r\n\t\tif (required_table_limit > MAX_TABLE_SIZE)\r\n\t\t\tthrow new IllegalArgumentException(\"SimplexTable size too large: \" + \r\n\t\t\t\t\tlimit + \" (max=\" + \r\n\t\t\t\t\tMAX_ENTRY_LIMIT + \")\");\r\n\t\tint table_size  = 1;\r\n\t\twhile (table_size < required_table_limit) \r\n\t\t\ttable_size <<= 1;\r\n\t\tif ((table_size - 1)/LOAD_FACTOR > entry_limit)\r\n\t\t\tentry_limit = (int)((table_size - 1)/LOAD_FACTOR);\r\n\t\tassert(table_size <= MAX_TABLE_SIZE);\r\n\t\ttable = new Simplex[table_size];\r\n\t\tmask = table_size - 1;\r\n\t}\r\n\r\n\t// The obvious way to grow a table -- it isn't clear that there is any\r\n\t// point in trying to be more clever here.\r\n\tprotected void grow_table(int newLimit) {\r\n\t\tif (newLimit > entry_limit) {\r\n\t\t\tSimplexTable tmp_table = new SimplexTable(newLimit);\r\n\t\t\t// transfer the contents of the table to the tmp new one\r\n\t\t\tfor (int i = 0; i < table.length; i++) {\r\n\t\t\t\tSimplex tmp = table[i];\r\n\t\t\t\tif (tmp != null)\r\n\t\t\t\t\ttmp_table.put(tmp);\r\n\t\t\t}\r\n\t\t\t// clear the old array and copy the slots of the new table into the old one\r\n\t\t\tfor (int i = 0; i < table.length; i++)\r\n\t\t\t\ttable[i] = null;\r\n\t\t\tsize = tmp_table.size;\r\n\t\t\ttable = tmp_table.table;\r\n\t\t\tentry_limit = tmp_table.entry_limit;\r\n\t\t\tmask = tmp_table.mask;\r\n\t\t\ttmp_table.table = null;\r\n\t\t\ttmp_table.size = 0;\r\n\t\t\ttmp_table.entry_limit = 0;\r\n\t\t\ttmp_table.mask = 0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * The number of simplices that have been interned.\r\n\t * <p>\r\n\t * @return     the number of simplices put in the table.\r\n\t */\r\n\tpublic int size() {\r\n\t\treturn size;\r\n\t}\r\n\r\n\t/**\r\n\t * The number of simplices that can be interned before growing the table.\r\n\t * <p>\r\n\t * @return     the number of simplices that can be put in the table before growing it.\r\n\t */\r\n\tpublic int limit() {\r\n\t\treturn entry_limit;\r\n\t}\r\n\r\n\t/**\r\n\t * Get the interned version of the Simplex s.\r\n\t *\r\n\t * <p> Because the CRC hashing -- which we use for simplices -- is\r\n\t * good, we just mask the hash code for our initial index. We keep the\r\n\t * table sufficiently empty that we don't get a lot of false hits, so\r\n\t * we reprobe with increment 1 to improve locality of reference in\r\n\t * these (potentially) very large tables. <p>\r\n\t *\r\n\t * @param      s   The simplex for which we want an interned version.\r\n\t * @return     An interned version of s, or null if there is none.\r\n\t */\r\n\tpublic Simplex get(Simplex s) {\r\n\t\tint hash = s.hashCode();\r\n\t\tint index = hash & mask;\r\n\t\tint reprobe_index = index;\r\n\t\tdo {\r\n\t\t\tSimplex si = table[reprobe_index];\r\n\t\t\tif (si == null)\r\n\t\t\t\t// it's a miss\r\n\t\t\t\treturn null;\r\n\t\t\tif (si.seq(s))\r\n\t\t\t\t// it's a hit\r\n\t\t\t\treturn si;         \r\n\t\t\treprobe_index++;\r\n\t\t\tif (reprobe_index >= mask)\r\n\t\t\t\treprobe_index = 0;\r\n\t\t} while (reprobe_index != index);\r\n\r\n\t\t// we checked everything\r\n\t\treturn null;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Intern a Simplex.\r\n\t *\r\n\t * <p> Intern s in the table. When used by the Persistence algorithm, s\r\n\t * should be a Simplex from the SimplexStream, which means that it will\r\n\t * the filtration index set. An attempt to intern the same simplex twice\r\n\t * throws an exception. <p>\r\n\t *\r\n\t * @param      s   the Simplex to intern\r\n\t * @return     the interned Simplex.\r\n\t *\r\n\t * @exception  IllegalStateException when attempting to grow too big.\r\n\t * @exception  IllegalArgumentException when attempting to put a Simplex twice.\r\n\t *\r\n\t */\r\n\tpublic Simplex put(Simplex s) {\r\n\t\tint hash = s.hashCode();\r\n\t\tint index = hash & mask;\r\n\t\tint reprobe_index = index;\r\n\t\tif (size >= entry_limit) \r\n\t\t\tgrow_table(2 * entry_limit);\r\n\t\tdo {\r\n\t\t\tSimplex si = table[reprobe_index];\r\n\t\t\tif (si == null) {\r\n\t\t\t\t// a blank space for our Simplex.\r\n\t\t\t\tsize++;\r\n\t\t\t\ttable[reprobe_index] = s;\r\n\t\t\t\treturn s;\r\n\t\t\t}\r\n\t\t\tif (si.seq(s)) \r\n\t\t\t\tthrow new IllegalArgumentException(\"SimplexTable duplicate put: \" + \r\n\t\t\t\t\t\ts.toString());\r\n\t\t\treprobe_index++;\r\n\t\t\tif (reprobe_index >= mask)\r\n\t\t\t\treprobe_index = 0;\r\n\t\t} while (reprobe_index != index);\r\n\r\n\t\t// this shouldn't happen\r\n\t\tthrow new IllegalStateException(\"SimplexTable implementation error\");\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Return the interned version of a Simplex.\r\n\t *\r\n\t * <p> Like put(), except no error if something is already in the table. <p>\r\n\t *\r\n\t * @param      s   the Simplex key\r\n\t * @return     the interned Simplex.\r\n\t *\r\n\t * @exception  IllegalStateException when attempting to grow too big.\r\n\t *\r\n\t */\r\n\tpublic Simplex getInterned(Simplex s) {\r\n\t\tint hash = s.hashCode();\r\n\t\tint index = hash & mask;\r\n\t\tint reprobe_index = index;\r\n\t\tif (size >= entry_limit) \r\n\t\t\tgrow_table(2 * entry_limit);\r\n\t\tdo {\r\n\t\t\tSimplex si = table[reprobe_index];\r\n\t\t\tif (si == null) {\r\n\t\t\t\t// a blank space for our Simplex.\r\n\t\t\t\tsize++;\r\n\t\t\t\ttable[reprobe_index] = s;\r\n\t\t\t\treturn s;\r\n\t\t\t}\r\n\t\t\tif (si.seq(s)) \r\n\t\t\t\treturn si;\r\n\r\n\t\t\treprobe_index++;\r\n\t\t\tif (reprobe_index >= mask)\r\n\t\t\t\treprobe_index = 0;\r\n\t\t} while (reprobe_index != index);\r\n\r\n\t\t// this shouldn't happen\r\n\t\tthrow new IllegalStateException(\"SimplexTable implementation error\");\r\n\t}\r\n\r\n\t/**\r\n\t * Make an iterator for the table.\r\n\t * <p>\r\n\t *\r\n\t * @return  Iterator<Simplex> instance for the table.\r\n\t *\r\n\t * @see        java.util.Iterator\r\n\t */\r\n\tpublic Iterator<Simplex> iterator() {\r\n\t\treturn new SimpleTableIterator(this);\r\n\t}\r\n\r\n\t/**\r\n\t * Instances provide Iterator<Simplex> for non-destructive iterating\r\n\t * over entries. That is, repeated iteration over an SimplexTable\r\n\t * instance is possible with multiple instances of this class.\r\n\t */\r\n\tprotected static class SimpleTableIterator implements Iterator<Simplex> {\r\n\t\tprotected int current_index;\r\n\t\tprotected int current_count;\r\n\t\tprotected final int start_size;\r\n\t\tprotected final Simplex[] vec;\r\n\t\tprotected final SimplexTable parent;\r\n\r\n\t\tprotected SimpleTableIterator(SimplexTable tbl) {\r\n\t\t\tcurrent_index = -1;\r\n\t\t\tcurrent_count = 0;\r\n\t\t\tstart_size = tbl.size;\r\n\t\t\tvec = tbl.table;\r\n\t\t\tparent = tbl;\r\n\t\t}\r\n\r\n\t\t// Are the parent stream and the iterator consistent?\r\n\t\tprotected boolean parent_is_consistent() {\r\n\t\t\treturn ((parent.table == vec) && (parent.size == start_size));\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Returns <tt>true</tt> if the iterator has more simplices.\r\n\t\t *\r\n\t\t * @return <tt>true</tt> if the iterator has more simplices, else\r\n\t\t * <tt>false</tt>.\r\n\t\t */\r\n\t\tpublic boolean hasNext() {\r\n\t\t\tif (!parent_is_consistent())\r\n\t\t\t\treturn false;\r\n\t\t\telse\r\n\t\t\t\treturn (current_count < start_size);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Returns the next Simplex in the iteration over the table.\r\n\t\t * Used in concert with the {@link #hasNext()} method returns\r\n\t\t * return each Simplex in the table exactly once. Does\r\n\t\t * <em>not</em> have any side effects on the table.\r\n\t\t * <p>\r\n\t\t * @return the next Simplex in the table.\r\n\t\t * @exception NoSuchElementException table has no more elements.\r\n\t\t */\r\n\t\tpublic Simplex next() {\r\n\t\t\tif (!parent_is_consistent())\r\n\t\t\t\tthrow new\r\n\t\t\t\tIllegalStateException(\"The parent SimplexTable (\" + parent.toString() +\r\n\t\t\t\t\") has changed since this iterator was created.\");\r\n\t\t\tif (current_count >= start_size)\r\n\t\t\t\tthrow new NoSuchElementException();\r\n\t\t\tSimplex tmp = vec[++current_index];\r\n\t\t\twhile (tmp == null)\r\n\t\t\t\ttmp = vec[++current_index];\r\n\t\t\tcurrent_count++;\r\n\t\t\treturn tmp;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Unsupported remove() operation.\r\n\t\t *\r\n\t\t * @exception UnsupportedOperationException \r\n\t\t */\r\n\t\tpublic void remove() {\r\n\t\t\tthrow new UnsupportedOperationException();\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/TmpStream.java",
    "content": "\r\npackage edu.stanford.math.plex;\r\n\r\nimport java.util.Iterator;\r\nimport java.util.NoSuchElementException;\r\n\r\n/**\r\n * The <code>TmpStream</code> class. Test code. The <code>next()</code>\r\n * methods for instances of this class do <em>not</em> remove simplices\r\n * from the stream.\r\n *\r\n * @version $Id$\r\n */\r\npublic class TmpStream extends SimplexStream implements Iterable<Simplex>, Iterator<Simplex> {\r\n\r\n\tfinal Simplex[] simplices;\r\n\tprivate int current_index;\r\n\tprivate int end_index;\r\n\tprivate int max_dimension;\r\n\r\n\t// explicitly construct the example witness complex from the paper by\r\n\t// A. Zomorodian and G. Carlsson, \"Computing persistent homology,\"\r\n\t// <i>Discrete and Computational Geometry</i>, 33 (2), pp. 247-274.\r\n\tstatic Simplex[] PaperComplex() {\r\n\t\tSimplex[] return_value = new Simplex[11];\r\n\t\tint current = 0;\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {2}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {3}, 1);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4}, 1);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 2}, 1);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {2, 3}, 1);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {3, 4}, 2);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 4}, 2);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 3}, 3);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 2, 3}, 4);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 3, 4}, 5);\r\n\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\t// explicitly make a 2-d Torus.\r\n\tprivate static Simplex[] TorusComplex() {\r\n\t\tSimplex[] return_value = new Simplex[54];\r\n\t\tint current = 0;\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {2}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {3}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {5}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {6}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {7}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {8}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {9}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 2}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 3}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {2, 3}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 4}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {2, 5}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {3, 6}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 6}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {2, 4}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {3, 5}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4, 5}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4, 6}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {5, 6}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4, 7}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4, 9}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {5, 7}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {5, 8}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {6, 8}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {6, 9}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {7, 9}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {8, 9}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {7, 1}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {7, 3}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {7, 8}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {8, 1}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {8, 2}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {9, 2}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {9, 3}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 2, 4}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {2, 4, 5}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {2, 3, 5}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {3, 5, 6}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 4, 6}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {1, 3, 6}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4, 5, 7}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {5, 7, 8}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {5, 6, 8}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {6, 8, 9}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4, 7, 9}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {4, 6, 9}, 0);\r\n\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {7, 8, 1}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {8, 1, 2}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {8, 9, 2}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {9, 2, 3}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {7, 1, 3}, 0);\r\n\t\treturn_value[current++] = Simplex.getSimplex(new int[] {7, 9, 3}, 0);\r\n\r\n\t\tassert current == return_value.length;\r\n\t\treturn return_value;\r\n\t}\r\n\r\n\r\n\t// don't use\r\n\t//private TmpStream() { simplices = null; }\r\n\r\n\tpublic TmpStream(Simplex[] entries) {\r\n\t\tsimplices = entries;\r\n\t\tcurrent_index = 0;\r\n\t\t{\r\n\t\t\tint max_d = 0;\r\n\t\t\tint index = 0;\r\n\t\t\tSimplex s;\r\n\t\t\twhile((index < simplices.length) && ((s = simplices[index++]) != null)) {\r\n\t\t\t\tif (max_d < s.dimension())\r\n\t\t\t\t\tmax_d = s.dimension();\r\n\t\t\t\tmax_dimension = max_d + 1;\r\n\t\t\t}\r\n\t\t\tend_index = index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns <tt>true</tt> if the stream has more simplices.\r\n\t *\r\n\t * @return <tt>true</tt> if the stream has more simplices, else\r\n\t * <tt>false</tt>.\r\n\t */\r\n\tpublic boolean hasNext() {\r\n\t\treturn (current_index < end_index);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns the next Simplex in the iteration of the Stack.\r\n\t * Used in concert with the {@link #hasNext()} method returns\r\n\t * return each Simplex in the Stack exactly once.\r\n\t * <p>\r\n\t * @return the next Simplex in the Stack.\r\n\t * @exception NoSuchElementException Stack has no more elements.\r\n\t */\r\n\tpublic Simplex next() {\r\n\t\tif (current_index < end_index) \r\n\t\t\treturn simplices[current_index++];\r\n\t\telse\r\n\t\t\tthrow new NoSuchElementException();\r\n\t}\r\n\r\n\t/**\r\n\t * Unsupported remove() operation.\r\n\t *\r\n\t * @exception UnsupportedOperationException \r\n\t */\r\n\tpublic void remove() {\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n\tpublic int size() {\r\n\t\treturn (end_index - current_index);\r\n\t}\r\n\r\n\tpublic int maxDimension() {\r\n\t\treturn max_dimension;\r\n\t}\r\n\r\n\tpublic Iterator<Simplex> iterator() {\r\n\t\treturn (Iterator<Simplex>) new TmpStream(simplices);\r\n\t}\r\n\r\n\tpublic static TmpStream PaperTestCase() {\r\n\t\treturn new TmpStream(PaperComplex());\r\n\t}\r\n\tpublic static TmpStream Torus() {\r\n\t\treturn new TmpStream(TorusComplex());\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/Torus.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static java.lang.Math.PI;\r\nimport static java.lang.Math.cos;\r\nimport static java.lang.Math.sin;\r\nimport static java.lang.Math.sqrt;\r\n\r\n/**\r\n * A <code>Torus</code> instance is  discrete simulation of a d-dimensional torus. For testing.\r\n *\r\n * <p>Simplest implementation of a d-dimensional torus. Intended for testing.\r\n *\r\n * @version $Id$\r\n */\r\n\r\npublic class Torus extends PointData.NSpace {\r\n\r\n\tstatic final double COORD_LIMIT = 2.0 * PI;\r\n\r\n\tfinal double[] points;\r\n\tfinal int dimensions;\r\n\r\n\t/**\r\n\t * The number of dimensions of the space.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the dimension of the data.\r\n\t */\r\n\tpublic int dimension() {\r\n\t\treturn dimensions;\r\n\t}\r\n\r\n\t/**\r\n\t * i-th coordinate of point p;\r\n\t *\r\n\t * <p>\r\n\t * @param      p   the point\r\n\t * @param      i   the coordinate index\r\n\t * @return     i-th coordinate\r\n\t */\r\n\tpublic double coordinate(int p, int i) {\r\n\t\tint p_base = dimensions * p;\r\n\t\tif ((i >= dimensions) || (i < 0))\r\n\t\t\tthrow new IllegalArgumentException(\"Coordinate index \" + i + \r\n\t\t\t\t\t\"must be in range [0, \" + \r\n\t\t\t\t\t(dimensions-1) + \"].\");\r\n\t\tif ((i % 1) == 1) \r\n\t\t\treturn sin(points[p_base + i]);\r\n\t\telse\r\n\t\t\treturn cos(points[p_base + i]);\r\n\t}\r\n\r\n\t/**\r\n\t * The number of data points.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @return     the number of points\r\n\t */\r\n\tpublic int count() {\r\n\t\tif (points != null)\r\n\t\t\treturn (points.length/dimensions)-1;\r\n\t\telse\r\n\t\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * Toroidal distance.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      p1   the first point\r\n\t * @param      p2   the second point\r\n\t * @return     the distance between p1 and p2 on the torus.\r\n\t */\r\n\tpublic double distance (int p1, int p2) {\r\n\t\tif (p1 == p2)\r\n\t\t\treturn 0.0;\r\n\t\telse if ((p1 == 0) || (p2 == 0))\r\n\t\t\treturn Double.MAX_VALUE;\r\n\t\telse {\r\n\t\t\tint p1_base = dimensions * p1;\r\n\t\t\tint p2_base = dimensions * p2;\r\n\t\t\tdouble accum = 0.0;\r\n\t\t\tfor (int i = 0; i < dimensions; i++) {\r\n\t\t\t\tdouble p1ix = cos(points[p1_base + i]);\r\n\t\t\t\tdouble p1iy = sin(points[p1_base + i]);\r\n\t\t\t\tdouble p2ix = cos(points[p2_base + i]);\r\n\t\t\t\tdouble p2iy = sin(points[p2_base + i]);\r\n\t\t\t\taccum  += (((p1ix - p2ix) * (p1ix - p2ix)) + \r\n\t\t\t\t\t\t((p1iy - p2iy) * (p1iy - p2iy)));\r\n\t\t\t}\r\n\t\t\treturn sqrt(accum);\r\n\t\t}\r\n\t}\r\n\r\n\t// Make sure that the data and dimension arguments are not absurd.\r\n\tprivate boolean pointsAreConsistent(double[] data, int dimension) {\r\n\t\tif (dimension < 1)\r\n\t\t\treturn false;\r\n\t\tif ((data.length % dimension) != 0)\r\n\t\t\treturn false;\r\n\t\tif (data.length <= dimension)\r\n\t\t\treturn false;\r\n\t\tfor (int i = 0; i < dimension; i++) {\r\n\t\t\tif (data[i] != 0.0)\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Make a Torus with a given data array.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param     data double[] of point data.\r\n\t */\r\n\tpublic Torus(double[] data, int d) {\r\n\t\tpoints = data;\r\n\t\tdimensions = d;\r\n\t\tassert pointsAreConsistent(data, dimensions);\r\n\t}\r\n\r\n\t// exponentiation of integers\r\n\tprivate int expt(int n, int k) {\r\n\t\tassert (n >= 0) && (k >= 0);\r\n\t\tif (k == 0) {\r\n\t\t\treturn 1;\r\n\t\t} else if (n == 0) {\r\n\t\t\treturn 0;\r\n\t\t} else {\r\n\t\t\tint accum = 1;\r\n\t\t\tfor (int i = 0; i < k; i++) {\r\n\t\t\t\tassert (accum > 0) && ((n * accum) > 0);\r\n\t\t\t\taccum = n * accum;\r\n\t\t\t}\r\n\t\t\treturn accum;\r\n\t\t}\r\n\t}\r\n\r\n\t// Increment a d-dimensional array of points so that we systematically\r\n\t// go through all of the points in an incr-length grid.\r\n\tprivate boolean incr_pt(double[] pt, double incr) {\r\n\t\tfor (int i = 0; i < pt.length; i++) {\r\n\t\t\tif ((incr + pt[i]) < COORD_LIMIT) {\r\n\t\t\t\tpt[i] += incr; \r\n\t\t\t\t// clear the previous indices\r\n\t\t\t\twhile(i > 0) pt[--i] = 0.0;\r\n\t\t\t\treturn true;\r\n\t\t\t} \r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Make an n-way grid on the unit Torus.\r\n\t *\r\n\t * <p>\r\n\t *\r\n\t * @param      n   grid size parameter\r\n\t */\r\n\tpublic Torus(int n, int d) {\r\n\t\tassert (n > 0) && (d > 0);\r\n\t\tint pt_counter = expt(n, d);\r\n\t\tdouble[] data = new double[d * (pt_counter + 1)];\r\n\t\tdouble[] pt = new double[d];\r\n\t\tdouble incr = COORD_LIMIT/((double) n);\r\n\t\tfor (int i = 1; i <= pt_counter; i++) {\r\n\t\t\tfor (int j = 0; j < d; j++) {\r\n\t\t\t\tdata[(d * i) + j] = pt[j];\r\n\t\t\t}\r\n\t\t\tboolean success = incr_pt(pt, incr);\r\n\t\t\tassert (i == pt_counter) || success;\r\n\t\t}\r\n\t\tassert(pointsAreConsistent(data, d));\r\n\t\tpoints = data;\r\n\t\tdimensions = d;\r\n\t}\r\n\r\n\t// Argless constructor for this class Test use only.\r\n\tpublic Torus() {\r\n\t\tdouble[] data = new double[] {0, 0, 0, 0, .5, .5, 0, .5, .5, 0, \r\n\t\t\t\t.25, 0, 0, .25, .25, .25, .25, .5};\r\n\t\tdimensions = 2;\r\n\t\tassert(pointsAreConsistent(data, dimensions));\r\n\t\tpoints = data;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex/WitnessStream.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport java.util.Arrays;\r\nimport java.util.HashSet;\r\nimport java.util.Iterator;\r\nimport java.util.Random;\r\n\r\n/**\r\n * A <code>WitnessStream</code> is an iterable Witness complex.\r\n *\r\n * <p>A WitnessStream is a SimplexStream whose elements are the simplices\r\n * of the Witness complex of a PointData instance.  That is, a simplex is\r\n * added to the complex only each face is present and a witness is found\r\n * for the entire simplex.  The details of this construction are described\r\n * in <i>Topological estimation using witness complexes</i>, Vin de Silva\r\n * and Gunnar Carlsson, Symposium on Point-Based Graphics, ETH, Zurich,\r\n * Switzerland, June 2-4, 2004. \r\n *\r\n * @see        edu.stanford.math.plex.LazyWitnessStream\r\n *\r\n * @version $Id$\r\n */\r\npublic class WitnessStream extends SimplexStream {\r\n\r\n\t/**\r\n\t * Randomly choose a subset of a given PointData for use as landmarks.\r\n\t *\r\n\t * <p>\r\n\t * @param      data PointData from which to choose landmarks.\r\n\t * @param      L number of landmarks to choose.\r\n\t * @return     An int[] containing indices of the landmarks.\r\n\t *\r\n\t */\r\n\tpublic static int[] makeRandomLandmarks(PointData data, int L) {\r\n\t\tassert(L <= data.count());\r\n\t\tint N = data.count();\r\n\t\t// landmarks[0] is always 0\r\n\t\tint[] landmarks = new int[L+1];\r\n\t\tHashSet<Integer> used = new HashSet<Integer>(L);\r\n\t\tRandom rand = new Random();\r\n\t\tfor(int counter = 1; counter < landmarks.length; ){\r\n\t\t\tint possible = rand.nextInt(N) + 1;\r\n\t\t\tInteger pInteger = new Integer(possible);\r\n\t\t\tif (!used.contains(pInteger)) {\r\n\t\t\t\tused.add(pInteger);\r\n\t\t\t\tlandmarks[counter++] = possible;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn landmarks;\r\n\t}\r\n\r\n\t/**\r\n\t * Estimate Rmax for a given PointData and landmark set.\r\n\t *\r\n\t * <p>\r\n\t * @param      data The entire data set.\r\n\t * @param      landmarks The landmark set.\r\n\t * @return     The max/min of the landmarks to points distances.\r\n\t *\r\n\t */\r\n\tpublic static double estimateRmax(PointData data, int[] landmarks) {\r\n\t\tint L = landmarks.length - 1;\r\n\t\tint N = data.count();\r\n\t\tdouble Rmax = 0.0;\r\n\r\n\t\tfor (int n = 1; n <= N; n++) {\r\n\t\t\t// for each point, find the closest landmark\r\n\t\t\tdouble m_n = HUGE;\r\n\t\t\tfor (int l = 1; l <= L; l++) {\r\n\t\t\t\tm_n = min(m_n, data.distance(landmarks[l], n));\r\n\t\t\t}\r\n\t\t\t// then take the max over all points of the closest landmark\r\n\t\t\tRmax = max(m_n, Rmax);\r\n\t\t}\r\n\t\treturn Rmax;\r\n\t}\r\n\r\n\t// the pdata, landmarks and granularity can't change, but we (may)\r\n\t// allow the limit to increase, which can result in more simplices\r\n\t// being added.\r\n\tprotected final PointData pdata;\r\n\tprotected final double granularity;\r\n\tprotected final int maxDimension;\r\n\tprotected final int[] landmarks;\r\n\tprotected double maxR;\r\n\tprotected SimplexStream.Stack stack;\r\n\r\n\t/**\r\n\t * Is there a next Simplex in the stream?\r\n\t *\r\n\t * <p>\r\n\t * @return     Return true if the stream is not yet empty.\r\n\t *\r\n\t */\r\n\tpublic boolean hasNext() {\r\n\t\treturn stack.hasNext();\r\n\t}\r\n\r\n\t/**\r\n\t * Next Simplex in the stream.\r\n\t *\r\n\t * <p>\r\n\t * @return     Return the smallest remaining Simplex instance.\r\n\t *\r\n\t */\r\n\tpublic Simplex next() {\r\n\t\treturn stack.next();\r\n\t}\r\n\r\n\t/**\r\n\t * Constructor for WitnessStream.\r\n\t *\r\n\t * <p>\r\n\t * Make a stream of the simplices in a Witness complex for data.\r\n\t * <p>\r\n\t * @param      delta Granularity to apply to the underlying metric.\r\n\t * @param      max_d   Maximum dimension of Simplex instances we construct.\r\n\t * @param      R   Maximum R we will use.\r\n\t * @param      landmarks Indices of points to use as landmarks. The\r\n\t *                        simplices constructed will use the landmark\r\n\t *                        indices, rather than the indices into data.\r\n\t * @param      PointData data   Metric data to use in constructing stream.\r\n\t *\r\n\t */\r\n\tWitnessStream(double delta, int max_d, double R, \r\n\t\t\tint[] landmarks, PointData data) {\r\n\t\tassert delta > 0.0;\r\n\t\tgranularity = delta;\r\n\t\tthis.landmarks = landmarks;\r\n\t\tmaxR = R;\r\n\t\tpdata = data;\r\n\t\tmaxDimension = max_d;\r\n\t\tstack = find_simplices(delta, R, max_d, landmarks, data);\r\n\t}\r\n\r\n\t/**\r\n\t * How many simplices are in the stream?\r\n\t *\r\n\t * <p>\r\n\t * @return     The number of simplices in the stream.\r\n\t *\r\n\t */\r\n\tpublic int size() {\r\n\t\treturn stack.size();\r\n\t}\r\n\r\n\t/**\r\n\t * Max dimension of simplices in the stream.\r\n\t *\r\n\t * <p>\r\n\t * @return     Max dimension of simplices in the stream.\r\n\t *\r\n\t */\r\n\tpublic int maxDimension() {\r\n\t\treturn stack.maxDimension();\r\n\t}\r\n\r\n\t/**\r\n\t * Convert a filtration index into a persistence parameter (i.e., double)\r\n\t * -- gets overloaded by some subclasses.\r\n\t *\r\n\t * <p>\r\n\t * @param      fi Filtration index to convert.\r\n\t * @return     double persistence parameter.\r\n\t *\r\n\t */\r\n\tpublic double convert_filtration_index(int fi) {\r\n\t\treturn granularity * fi;\r\n\t}\r\n\r\n\t/**\r\n\t * Make an iterator for the stream.\r\n\t * <p>\r\n\t *\r\n\t * @return  Iterator<Simplex> instance for the stream.\r\n\t *\r\n\t * @see        java.util.Iterator\r\n\t */\r\n\tpublic Iterator<Simplex> iterator() {\r\n\t\treturn stack.iterator();\r\n\t}\r\n\r\n\t// don't use\r\n\tprotected WitnessStream() {\r\n\t\tgranularity = 0.0;\r\n\t\tmaxDimension = 0;\r\n\t\tlandmarks = null;\r\n\t\tpdata = null;\r\n\t}\r\n\r\n\r\n\t// Implementation note: In the code below, L is the number of landmarks\r\n\t// and N is the number of data points. To make the code match the\r\n\t// papers a bit more, we have the indices go from 1 to L (or N),\r\n\t// instead of from 0 to L-1 (or N-1), which would be the normal way in\r\n\t// C (and hence C++ and Java). So the 0-th entry of things in nothing,\r\n\t// and when we make arrays that get indexed directly, they are 1\r\n\t// longer. When we index matrices we create a 1-array and then have an\r\n\t// indexing function that adjusts the arguments (that is, we can make\r\n\t// the 1-array exactly the right length). Since Java should inline\r\n\t// these indexing functions, and the compiler can't deal with 2-arrays\r\n\t// of fixed size (as it would in C or C++), I chose to implement\r\n\t// matrices this way.\r\n\t//\r\n\t// When there is at most one of each, I use l as the index over\r\n\t// landmarks and n as the index over data. (I have found it hard to\r\n\t// tell l from 1 in the code a couple of times while writing it, so\r\n\t// don't feel bad if you make the same mistake reading it.)\r\n\r\n\r\n\t// Get from (n,k) to the index of m(n, k). See the paper referenced\r\n\t// above for meaning of m[]. The k index is an ordinal, not any of the\r\n\t// l/n/d values that we've mentioned up to now.\r\n\tprotected static int m_index(int n, int k, int N) {\r\n\t\tassert((k > 0) && (1 <= n) && (n <= N));\r\n\t\treturn ((k-1) * N) + (n-1);\r\n\t}\r\n\r\n\t//\r\n\t// The following package-protected static members are used by\r\n\t// LazyWitnessStream.\r\n\t//\r\n\r\n\t// Compute distance matrix entry for given landmark/data_point.\r\n\tstatic double distance_ln(int l, int n, int[] landmarks, PointData data) {\r\n\t\tif (landmarks[l] == n)\r\n\t\t\t// exclude the landmark from consideration\r\n\t\t\t//return HUGE;\r\n\t\t\treturn 0;\r\n\t\telse\r\n\t\t\treturn data.distance(landmarks[l], n);\r\n\t}\r\n\r\n\tstatic final double HUGE = Double.MAX_VALUE/2; \r\n\r\n\t// D[] index for the distance from landmark l to data point n.\r\n\tstatic int D_index(int l, int n, int L, int N) {\r\n\t\tassert((l > 0) && (l <= L) && (n > 0) && (n <= N));\r\n\t\treturn ((l-1) * N) + (n-1);\r\n\t}\r\n\r\n\r\n\tstatic double min(double x, double y) {\r\n\t\tif (x < y)\r\n\t\t\treturn x;\r\n\t\telse\r\n\t\t\treturn y;\r\n\t}\r\n\r\n\tstatic double max(double x, double y) {\r\n\t\tif (x > y)\r\n\t\t\treturn x;\r\n\t\telse\r\n\t\t\treturn y;\r\n\t}\r\n\r\n\tstatic int max(int x, int y) {\r\n\t\tif (x > y)\r\n\t\t\treturn x;\r\n\t\telse\r\n\t\t\treturn y;\r\n\t}\r\n\r\n\t//\r\n\t// The preceding package-protected static methods are used by\r\n\t// LazyWitnessStream.\r\n\t//\r\n\r\n\r\n\t// The algorithm here is a bit different than the the one for Rips\r\n\t// complexes, but it is still an iterative process in increasing\r\n\t// dimension of the simplices being constructed. A (non-lazy) Witness\r\n\t// complex contains a simplex s iff the complex contains each of the\r\n\t// faces of s, and there is a witness for s itself. The idea is to\r\n\t// start off adding the landmarks, and building the distance matrix, as\r\n\t// we do in LazyWitnessStream. However, after that we construct an\r\n\t// array m[][] of double[max_dimension] of the 1st, 2nd,\r\n\t// ... max_dimension-th smallest distances for each of the 1<=n<=N pts\r\n\t// in data.  Then, we construct the edge set just as for\r\n\t// LazyWitnessStream with nu=2. Now, at each step for dim = d, we have\r\n\t// the d-1 dimensional simplices, each with there filtration indices\r\n\t// set, stored in the queue. We then create an intering table for this\r\n\t// set of d-1 dimensional \"faces\", and iterate over the d-dimensional\r\n\t// simplices just as in RipsStream or LazyWitnessStream. However, the\r\n\t// first step in processing a d-dimensional simplex is to compute its\r\n\t// boundary, and confirm that each face is in the interning table. If\r\n\t// this succeeds we will return the maximum filtration index of all of\r\n\t// the faces. If it fails, we go onto the next d-dimensional simplex,\r\n\t// but if it succeeds, we must find the 1<=n<=N with the smallest\r\n\t// max(dist(i, p1), ... dist(i, pd)). We take this value, subtract from\r\n\t// it the entry in m[k-1][i] (the k-th smallest distance, indexed from\r\n\t// 0 to max_dimension-1). If this difference Rs is <= R_max, we accept\r\n\t// the simplex, and the filtration index is the maximum of the maximum\r\n\t// of the faces and floor(max(Rs, 0.0)/delta).  Note that this\r\n\t// iteration is more expensive both because it is necessary to\r\n\t// construct m[][], but also because the last step of acceptance\r\n\t// requires O(k*N) operations. I see no way of avoiding this.\r\n\tprotected SimplexStream.Stack \r\n\tfind_simplices(double delta, double R_max, int max_dimension, \r\n\t\t\tint[] landmarks, PointData data) {\r\n\r\n\t\t// Recall that we never use 0 as a simplex index, so landmarks[0]\r\n\t\t// should be empty\r\n\t\tassert(landmarks[0] == 0);\r\n\t\t// there is no point doing this unless 1 < L <= N and max_dimension <= L.\r\n\t\tassert((1 < (landmarks.length-1)) && \r\n\t\t\t\t(max_dimension <= (landmarks.length-1)) && \r\n\t\t\t\t((landmarks.length-1) < data.count()));\r\n\r\n\t\tif (max_dimension < 0)\r\n\t\t\treturn null;\r\n\r\n\t\t// The landmarks are indexed from 1 to L, inclusive, and since 0 is excluded,\r\n\t\t// L = landmarks.length-1.\r\n\t\tint L = landmarks.length - 1;\r\n\t\tint max_findex = (int)(Math.floor(R_max/granularity));\r\n\t\t// Construct the tail of the queue -- we add any simplices of\r\n\t\t// dimension d < max_dimension to this queue, so that we can\r\n\t\t// iterate over them them in constructing the simplices of\r\n\t\t// dimension d+1.\r\n\t\tSimplexStream.Tail q = new SimplexStream.Tail();\r\n\t\t// Final repository for the elements of the Witness complex.\r\n\t\tSimplexStream.Stack stack = \r\n\t\t\tnew SimplexStream.Stack(max_findex, max_dimension);\r\n\t\t// Recall that \"count\" means that the points are indexed from 1 to\r\n\t\t// N, inclusive.\r\n\t\tint N = data.count();\r\n\t\t// we can think of this as 2-dimensional, but it's (supposed to me)\r\n\t\t// simpler and faster to convert the two indices to a single one\r\n\t\t// via an index function, so that's what we'll do\r\n\t\tdouble[] m = new double[N * (max_dimension+1)];\r\n\t\tdouble[] D = new double[L * N];\r\n\r\n\t\t// fill in the distance matrix\r\n\t\tfor (int l = 1; l <= L; l++)\r\n\t\t\tfor (int n = 1; n <= N; n++)\r\n\t\t\t\tD[D_index(l, n, L, N)] = distance_ln(l, n, landmarks, data);\r\n\r\n\r\n\t\t// Add all of the landmark Points (0-simplices) to the stack.\r\n\t\tfor (int l = 1; l <= L; l++)\r\n\t\t\tstack.push(Simplex.makePoint(l, 0));\r\n\r\n\t\t// If max_dimension is 0, we just want the Points.\r\n\t\tif (max_dimension < 1)\r\n\t\t\treturn stack;\r\n\r\n\t\t// Remember the start of dimension k, where in this case, k=1.\r\n\t\tSimplexStream.Head last_dim_start = new SimplexStream.Head(q);\r\n\t\t// Remember how many d-1 dimensional simplices are being\r\n\t\t// made. These are the faces of the d dimensional simplices, and we\r\n\t\t// want to intern all possible faces to make checking faster. See\r\n\t\t// below for more details.\r\n\t\tint faces_to_intern = 0;\r\n\r\n\t\t// construct the metric info m[] and process the edges\r\n\t\t{\r\n\t\t\t// Now we make m[] -- we want the smallest max_dimension\r\n\t\t\t// entries from each column of D.\r\n\t\t\t{\r\n\t\t\t\tdouble[] m_tmp = new double[L+1];\r\n\r\n\t\t\t\tfor (int n = 1; n <= N; n++) {\r\n\t\t\t\t\tfor (int l = 1; l <= L; l++) \r\n\t\t\t\t\t\tm_tmp[l] = D[D_index(l, n, L, N)];\r\n\t\t\t\t\t// sort the initial contents of m_tmp -- it might be\r\n\t\t\t\t\t// faster to do this by hand, but it is a tiny amount\r\n\t\t\t\t\t// of the time spent in this function, and when I tried\r\n\t\t\t\t\t// once to do it by hand, I messed it up\r\n\t\t\t\t\tArrays.sort(m_tmp);\r\n\t\t\t\t\tassert(m_tmp[0] == 0.0);\r\n\r\n\t\t\t\t\t// copy the contents of m_tmp into m\r\n\t\t\t\t\tfor(int d = 1; d <= max_dimension+1; d++) {\r\n\t\t\t\t\t\tassert(m_tmp[d] < HUGE/2.0);\r\n\t\t\t\t\t\tm[m_index(n, d, N)] = m_tmp[d];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Process the edges. Unlike RipsStream and LazyWitnessStream,\r\n\t\t\t// there is no special preprocessing going on at this step. The\r\n\t\t\t// only special thing about this case is that we know that ALL\r\n\t\t\t// of the faces of the edges (that is, all the vertices) are in\r\n\t\t\t// the complex, so we can skip the \"intern the k-1 dimensional\r\n\t\t\t// simplices and then see if they exist\" step here. But other\r\n\t\t\t// than that, the process of admitting an edge is the same as\r\n\t\t\t// the higher dimensional cases. We keep it here because we\r\n\t\t\t// need to start the dimensional iteration someplace, and\r\n\t\t\t// because it emphasizes the similarities between building this\r\n\t\t\t// type of complex and the lazy version. Here i and j are the\r\n\t\t\t// landmark indices -- this seemed better than using l1 and l2.\r\n\t\t\tfor (int i = 1; i <= L; i++) {\r\n\t\t\t\tfor (int j = i+1; j <= L; j++) {\r\n\t\t\t\t\t// compute the R at which the edge comes into existence\r\n\t\t\t\t\t// without the m[] adjustment\r\n\t\t\t\t\tdouble e_ij = HUGE;\r\n\t\t\t\t\tassert(e_ij >= 0.0);\r\n\t\t\t\t\tfor (int n = 1; n <= N; n++) {\r\n\t\t\t\t\t\tdouble tmp_ijn = \r\n\t\t\t\t\t\t\tmax(D[D_index(i, n, L, N)], D[D_index(j, n, L, N)]) - \r\n\t\t\t\t\t\t\tm[m_index(n, 2, N)];\r\n\t\t\t\t\t\tassert(tmp_ijn >= 0.0);\r\n\t\t\t\t\t\te_ij = min(e_ij, tmp_ijn);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// if the edge appears early enough, create it, and\r\n\t\t\t\t\t// then push and enqueue it\r\n\t\t\t\t\tif (e_ij <= R_max) {\r\n\t\t\t\t\t\tint f_ij = (int)(Math.floor(e_ij/granularity));\r\n\t\t\t\t\t\tSimplex s = Simplex.makeEdge(i, j, f_ij);\r\n\t\t\t\t\t\tstack.push(s);\r\n\t\t\t\t\t\tq = q.enqueue(s);\r\n\t\t\t\t\t\t// count the edges -- these will be all possible\r\n\t\t\t\t\t\t// faces for the triangles, and we will be able to\r\n\t\t\t\t\t\t// immediately exclude any triangle whose boundary\r\n\t\t\t\t\t\t// has an edge not in this set\r\n\t\t\t\t\t\tfaces_to_intern++;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// We are ready to construct the higher dimensional data. Since we\r\n\t\t// already have the edges, we begin with 2-dimensional simplexes,\r\n\t\t// and continue until we have constructed those of max_dimension.\r\n\t\tint current_dimension = 2;\r\n\t\twhile (current_dimension <= max_dimension) {\r\n\t\t\t// we start processing at last_dim_start\r\n\t\t\tSimplexStream.Head current = last_dim_start;\r\n\t\t\tSimplexStream.Head interning_current = current.copy();\r\n\t\t\t// At this point all simplices of current_dimension-1 have been\r\n\t\t\t// added to the queue (and none of current_dimension), so we\r\n\t\t\t// stop processing for this dimension when current reaches end.\r\n\t\t\tSimplexStream.Head end = new SimplexStream.Head(q);\r\n\t\t\t// Remember end as last_dim_start, for the next iteration\r\n\t\t\tlast_dim_start = end;\r\n\t\t\t// We construct a scratch array in which to store any potential\r\n\t\t\t// vertex sets for possible simplices of dimension\r\n\t\t\t// current_dimension.\r\n\t\t\tint[] verts = new int[current_dimension + 1];\r\n\t\t\t// Make a table of all of the current_dimension-1 faces -- for\r\n\t\t\t// any constructed current_dimension simplex, we can quickly\r\n\t\t\t// check that all of its faces are present by taking the\r\n\t\t\t// boundary and verifying that each face is in the table.\r\n\t\t\tSimplexTable faces = new SimplexTable(faces_to_intern);\r\n\t\t\t// to avoid repeatedly looking up distances for the faces vertices,\r\n\t\t\t// we make an array in which to cache these values\r\n\t\t\tdouble[] face_R = new double[N+1];\r\n\t\t\t// indicate whether this has been initialize for this face\r\n\t\t\tboolean face_R_initialized = false;\r\n\r\n\t\t\t// reset the counter\r\n\t\t\tfaces_to_intern = 0;\r\n\r\n\t\t\twhile (interning_current.lessThan(end)) {\r\n\t\t\t\t// Until interning_current reaches end, extract simplices\r\n\t\t\t\t// and put them in the faces table.\r\n\t\t\t\tSimplex face = interning_current.nextEntry();\r\n\t\t\t\tfaces.put(face);\r\n\t\t\t}\r\n\r\n\t\t\twhile (current.lessThan(end)) {\r\n\t\t\t\t// Until current reaches end, extract simplices and copy\r\n\t\t\t\t// their vertices into the scratch array.\r\n\t\t\t\tSimplex face = current.nextEntry();\r\n\t\t\t\tassert(face.dimension() == (current_dimension-1));\r\n\t\t\t\tface.vertices(verts);\r\n\r\n\t\t\t\tface_R_initialized = false;\r\n\r\n\t\t\t\t// We know that any d dimensional simplex that we can admit\r\n\t\t\t\t// must have all of its faces in the list of d-1 simplices\r\n\t\t\t\t// (a simplex cannot belong to a complex unless all of its\r\n\t\t\t\t// faces belong, too). That means that any possible d\r\n\t\t\t\t// simplex [x1,...,x(d+1)] must have the face [x1,...,xd]\r\n\t\t\t\t// in the list. So we see that we can get to any possible d\r\n\t\t\t\t// simplex by adding a vertex \"onto the end\" (that is, the\r\n\t\t\t\t// new vertex is larger than any of the existing ones) of a\r\n\t\t\t\t// d-1 simplex. Further, it is easy to see that adding onto\r\n\t\t\t\t// the end of 2 distinct d-1 simplices can never yield the\r\n\t\t\t\t// same d simplex. So if we just add onto the end of the\r\n\t\t\t\t// simplices in the previous dimension, we will see all\r\n\t\t\t\t// potential d simplices precisely once. So if verts is\r\n\t\t\t\t// [x1,...,xd, <junk>], then we are interested in any\r\n\t\t\t\t// possible simplex [x1,...,xd,x] with x > xd. In this case\r\n\t\t\t\t// we must first take [x1,...,xd,x].boundary() and see if\r\n\t\t\t\t// all of the entries are in the faces table (although, of\r\n\t\t\t\t// course, we could ignore the first entry). Then if all\r\n\t\t\t\t// faces are present, we have to search for the smallest R\r\n\t\t\t\t// for which a witness exists for the the simplex. If that\r\n\t\t\t\t// R is less than R_max, then the simplex is added, and\r\n\t\t\t\t// it's filtration index is the min of the filtration\r\n\t\t\t\t// indices of the faces and floor(R/granularity).\r\n\t\t\t\tint largest_v = verts[current_dimension-1];\r\n\t\t\t\tfor (int new_last = largest_v + 1; new_last <= L; new_last++) {\r\n\t\t\t\t\tverts[current_dimension] = new_last;\r\n\t\t\t\t\tSimplex possible = Simplex.getSimplexPresorted(verts);\r\n\t\t\t\t\tSimplex[] bdy = possible.boundaryArray();\r\n\t\t\t\t\tint max_face_fi = 0;\r\n\t\t\t\t\tfor(int fi = 0; fi < bdy.length; fi++) {\r\n\t\t\t\t\t\tSimplex interned_face = faces.get(bdy[fi]);\r\n\t\t\t\t\t\tif (interned_face != null)\r\n\t\t\t\t\t\t\tmax_face_fi = max(max_face_fi, interned_face.findex());\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tmax_face_fi = -1;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (max_face_fi >= 0) {\r\n\t\t\t\t\t\tdouble possible_R = HUGE;\r\n\t\t\t\t\t\t// Look for a witness for \"possible\" -- this part\r\n\t\t\t\t\t\t// of the code is where a large majority of the time is\r\n\t\t\t\t\t\t// spent. Is there some better way to do this?\r\n\r\n\t\t\t\t\t\tif (!face_R_initialized) {\r\n\t\t\t\t\t\t\t// this hack seems to save about 30% of the time\r\n\t\t\t\t\t\t\t// initialize face_R for the new face\r\n\t\t\t\t\t\t\tfor (int n = 1; n <= N; n++) {\r\n\t\t\t\t\t\t\t\tdouble R_n = 0.0;\r\n\t\t\t\t\t\t\t\tfor(int vi = 0; vi < current_dimension; vi++)\r\n\t\t\t\t\t\t\t\t\tR_n = max(R_n, D[D_index(verts[vi], n, L, N)]);\r\n\t\t\t\t\t\t\t\tface_R[n] = R_n;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tface_R_initialized = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfor (int n = 1; n <= N; n++) {\r\n\t\t\t\t\t\t\tdouble R_n =\r\n\t\t\t\t\t\t\t\tmax(face_R[n], \r\n\t\t\t\t\t\t\t\t\t\tD[D_index(verts[current_dimension], n, L, N)]);\r\n\t\t\t\t\t\t\tR_n -= m[m_index(n, current_dimension+1, N)];\r\n\t\t\t\t\t\t\tassert(R_n >= 0.0);\r\n\t\t\t\t\t\t\tpossible_R = min(possible_R, R_n);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (possible_R <= R_max) {\r\n\t\t\t\t\t\t\tpossible.setfindex(max(max_face_fi, \r\n\t\t\t\t\t\t\t\t\t(int)Math.floor(possible_R/delta)));\r\n\t\t\t\t\t\t\tstack.push(possible);\r\n\t\t\t\t\t\t\tif (current_dimension < max_dimension) {\r\n\t\t\t\t\t\t\t\t// if the dimension of possible isn't\r\n\t\t\t\t\t\t\t\t// maximal, then we put it in the queue and\r\n\t\t\t\t\t\t\t\t// count it for interning the next time\r\n\t\t\t\t\t\t\t\tq = q.enqueue(possible);\r\n\t\t\t\t\t\t\t\tfaces_to_intern++;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Make sure that if we are exiting we have processed all\r\n\t\t\t// simplices in q.\r\n\t\t\tassert((current_dimension < max_dimension) || \r\n\t\t\t\t\t(last_dim_start.eql(new SimplexStream.Head(q))));\r\n\t\t\tcurrent_dimension++;\r\n\t\t}\r\n\r\n\t\treturn stack;\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/api/FilteredStreamInterface.java",
    "content": "package edu.stanford.math.plex4.api;\r\n\r\nimport edu.stanford.math.plex.EuclideanArrayData;\r\nimport edu.stanford.math.plex.Plex;\r\nimport edu.stanford.math.plex.RipsStream;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.interop.Plex3Stream;\r\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\r\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitCellStream;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\r\nimport edu.stanford.math.plex4.streams.impl.LazyWitnessStream;\r\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\r\nimport edu.stanford.math.plex4.streams.impl.WitnessStream;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\n\r\npublic class FilteredStreamInterface {\r\n\tpublic static ExplicitSimplexStream createExplicitSimplexStream() {\r\n\t\treturn new ExplicitSimplexStream();\r\n\t}\r\n\t\r\n\tpublic static ExplicitSimplexStream createExplicitSimplexStream(double maxFiltrationValue) {\r\n\t\treturn new ExplicitSimplexStream(maxFiltrationValue);\r\n\t}\r\n\r\n\tpublic static ExplicitCellStream createExplicitCellStream() {\r\n\t\treturn new ExplicitCellStream();\r\n\t}\r\n\t\r\n\tpublic static ExplicitCellStream createExplicitCellStream(double maxFiltrationValue) {\r\n\t\treturn new ExplicitCellStream(maxFiltrationValue);\r\n\t}\r\n\r\n\tpublic static VietorisRipsStream<double[]> createPlex4VietorisRipsStream(double[][] points, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\r\n\t\tAbstractSearchableMetricSpace<double[]> metricSpace = new EuclideanMetricSpace(points);\r\n\t\tVietorisRipsStream<double[]> stream = new VietorisRipsStream<double[]>(metricSpace, maxFiltrationValue, maxDimension, numDivisions);\r\n\t\tstream.finalizeStream();\r\n\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tpublic static <T> VietorisRipsStream<T> createPlex4VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\t\tVietorisRipsStream<T> stream = new VietorisRipsStream<T>(metricSpace, maxFiltrationValue, maxDimension, numDivisions);\r\n\t\tstream.finalizeStream();\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\tpublic static VietorisRipsStream<double[]> createPlex4VietorisRipsStream(double[][] points, int maxDimension, double[] filtrationValues) {\r\n\r\n\t\tAbstractSearchableMetricSpace<double[]> metricSpace = new EuclideanMetricSpace(points);\r\n\t\tVietorisRipsStream<double[]> stream = new VietorisRipsStream<double[]>(metricSpace, filtrationValues, maxDimension);\r\n\t\tstream.finalizeStream();\r\n\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tpublic static <T> VietorisRipsStream<T> createPlex4VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, int maxDimension, double[] filtrationValues) {\r\n\t\tVietorisRipsStream<T> stream = new VietorisRipsStream<T>(metricSpace, filtrationValues, maxDimension);\r\n\t\tstream.finalizeStream();\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tpublic static AbstractFilteredStream<Simplex> createPlex3VietorisRipsStream(double[][] points, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\r\n\t\tEuclideanArrayData pData = Plex.EuclideanArrayData(points);\t\t\r\n\t\tRipsStream plex3RipsStream = Plex.RipsStream(maxFiltrationValue / numDivisions, maxDimension, maxFiltrationValue, pData);\r\n\t\tAbstractFilteredStream<Simplex> stream = new Plex3Stream(plex3RipsStream);\r\n\t\tstream.finalizeStream();\r\n\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tpublic static LazyWitnessStream<double[]> createPlex4LazyWitnessStream(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\t\tLazyWitnessStream<double[]> stream = new LazyWitnessStream<double[]>(selector.getUnderlyingMetricSpace(), selector, maxDimension, maxFiltrationValue, numDivisions);\r\n\t\tstream.finalizeStream();\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tpublic static AbstractFilteredStream<Simplex> createPlex3LazyWitnessStream(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\r\n\t\tEuclideanArrayData pData = Plex.EuclideanArrayData(selector.getUnderlyingMetricSpace().getPoints());\r\n\t\tedu.stanford.math.plex.LazyWitnessStream plex3WitnessStream = Plex.LazyWitnessStream(maxFiltrationValue / numDivisions, maxDimension, maxFiltrationValue, 2, convertTo1Based(selector.getLandmarkPoints()), pData);\r\n\t\tAbstractFilteredStream<Simplex> stream = new Plex3Stream(plex3WitnessStream, selector.getLandmarkPoints());\r\n\t\tstream.finalizeStream();\r\n\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tpublic static WitnessStream<double[]> createPlex4WitnessStream(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\t\tWitnessStream<double[]> stream = new WitnessStream<double[]>(selector.getUnderlyingMetricSpace(), selector, maxDimension, maxFiltrationValue, numDivisions);\r\n\t\tstream.finalizeStream();\r\n\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tpublic static AbstractFilteredStream<Simplex> createPlex3WitnessStream(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\r\n\t\tEuclideanArrayData pData = Plex.EuclideanArrayData(selector.getUnderlyingMetricSpace().getPoints());\r\n\t\tedu.stanford.math.plex.WitnessStream plex3WitnessStream = Plex.WitnessStream(maxFiltrationValue / numDivisions, maxDimension, maxFiltrationValue, convertTo1Based(selector.getLandmarkPoints()), pData);\r\n\t\tAbstractFilteredStream<Simplex> stream = new Plex3Stream(plex3WitnessStream, selector.getLandmarkPoints());\r\n\t\tstream.finalizeStream();\r\n\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tprivate static int[] convertTo1Based(int[] array) {\r\n\t\tint[] result = new int[array.length + 1];\r\n\t\tresult[0] = 0;\r\n\t\tfor (int i = 0; i < array.length; i++) {\r\n\t\t\tresult[i + 1] = array[i] + 1;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/api/PersistenceAlgorithmInterface.java",
    "content": "package edu.stanford.math.plex4.api;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport org.apache.commons.math.fraction.Fraction;\r\n\r\nimport edu.stanford.math.plex4.autogen.homology.BooleanAbsoluteHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.BooleanClassicalHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.BooleanRelativeHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.IntAbsoluteHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.IntClassicalHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.IntRelativeHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.ObjectAbsoluteHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.ObjectClassicalHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.ObjectRelativeHomology;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Cell;\r\nimport edu.stanford.math.plex4.homology.chain_basis.CellComparator;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPair;\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm;\r\nimport edu.stanford.math.plex4.interop.Plex3PersistenceAlgorithm;\r\nimport edu.stanford.math.primitivelib.algebraic.impl.ModularIntField;\r\nimport edu.stanford.math.primitivelib.algebraic.impl.RationalField;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\n\r\npublic class PersistenceAlgorithmInterface {\r\n\t\r\n\tprivate static IntAbstractField intField = ModularIntField.getInstance(2);\r\n\tprivate static ObjectAbstractField<Fraction> fractionField = RationalField.getInstance();\r\n\t\r\n\t/*\r\n\t * Simplicial Homology.\r\n\t */\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<Simplex> getPlex3SimplicialAbsoluteHomology(int maxDimension) {\r\n\t\treturn new Plex3PersistenceAlgorithm(maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Simplex, BooleanSparseFormalSum<Simplex>> getBooleanSimplicialAbsoluteHomology(int maxDimension) {\r\n\t\treturn new BooleanAbsoluteHomology<Simplex>(SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Simplex, IntSparseFormalSum<Simplex>> getIntSimplicialAbsoluteHomology(int maxDimension) {\r\n\t\treturn new IntAbsoluteHomology<Simplex>(intField, SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Simplex, ObjectSparseFormalSum<Fraction, Simplex>> getRationalSimplicialAbsoluteHomology(int maxDimension) {\r\n\t\treturn new ObjectAbsoluteHomology<Fraction, Simplex>(fractionField, SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<Simplex> getBooleanSimplicialClassicalHomology(int maxDimension) {\r\n\t\treturn new BooleanClassicalHomology<Simplex>(SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<Simplex> getIntSimplicialClassicalHomology(int maxDimension) {\r\n\t\treturn new IntClassicalHomology<Simplex>(intField, SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<Simplex> getRationalSimplicialClassicalHomology(int maxDimension) {\r\n\t\treturn new ObjectClassicalHomology<Fraction, Simplex>(fractionField, SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Simplex, BooleanSparseFormalSum<Simplex>> getBooleanSimplicialRelativeHomology(int maxDimension) {\r\n\t\treturn new BooleanRelativeHomology<Simplex>(SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Simplex, IntSparseFormalSum<Simplex>> getIntSimplicialRelativeHomology(int maxDimension) {\r\n\t\treturn new IntRelativeHomology<Simplex>(intField, SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Simplex, ObjectSparseFormalSum<Fraction, Simplex>> getRationalSimplicialRelativeHomology(int maxDimension) {\r\n\t\treturn new ObjectRelativeHomology<Fraction, Simplex>(fractionField, SimplexComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static List<AbstractPersistenceAlgorithm<Simplex>> getAllPlex4SimplicialAbsoluteHomologyAlgorithms(int maxDimension) {\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> list = new ArrayList<AbstractPersistenceAlgorithm<Simplex>>();\r\n\t\t\r\n\t\tlist.add(getBooleanSimplicialAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getIntSimplicialAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getRationalSimplicialAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getBooleanSimplicialClassicalHomology(maxDimension));\r\n\t\tlist.add(getIntSimplicialClassicalHomology(maxDimension));\r\n\t\t\r\n\t\treturn list;\r\n\t}\r\n\t\r\n\tpublic static List<AbstractPersistenceAlgorithm<Simplex>> getAllSimplicialAbsoluteHomologyAlgorithms(int maxDimension) {\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> list = getAllPlex4SimplicialAbsoluteHomologyAlgorithms(maxDimension);\r\n\t\tlist.add(getPlex3SimplicialAbsoluteHomology(maxDimension));\r\n\t\treturn list;\r\n\t}\r\n\t\r\n\t/*\r\n\t * Cellular Homology.\r\n\t */\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Cell, BooleanSparseFormalSum<Cell>> getBooleanCellularAbsoluteHomology(int maxDimension) {\r\n\t\treturn new BooleanAbsoluteHomology<Cell>(CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Cell, IntSparseFormalSum<Cell>> getIntCellularAbsoluteHomology(int maxDimension) {\r\n\t\treturn new IntAbsoluteHomology<Cell>(intField, CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Cell, ObjectSparseFormalSum<Fraction, Cell>> getRationalCellularAbsoluteHomology(int maxDimension) {\r\n\t\treturn new ObjectAbsoluteHomology<Fraction, Cell>(fractionField, CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<Cell> getBooleanCellularClassicalHomology(int maxDimension) {\r\n\t\treturn new BooleanClassicalHomology<Cell>(CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<Cell> getIntCellularClassicalHomology(int maxDimension) {\r\n\t\treturn new IntClassicalHomology<Cell>(intField, CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<Cell> getRationalCellularClassicalHomology(int maxDimension) {\r\n\t\treturn new ObjectClassicalHomology<Fraction, Cell>(fractionField, CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Cell, BooleanSparseFormalSum<Cell>> getBooleanCellularRelativeHomology(int maxDimension) {\r\n\t\treturn new BooleanRelativeHomology<Cell>(CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Cell, IntSparseFormalSum<Cell>> getIntCellularRelativeHomology(int maxDimension) {\r\n\t\treturn new IntRelativeHomology<Cell>(intField, CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<Cell, ObjectSparseFormalSum<Fraction, Cell>> getRationalCellularRelativeHomology(int maxDimension) {\r\n\t\treturn new ObjectRelativeHomology<Fraction, Cell>(fractionField, CellComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static List<AbstractPersistenceAlgorithm<Cell>> getAllCellularAbsoluteHomologyAlgorithms(int maxDimension) {\r\n\t\tList<AbstractPersistenceAlgorithm<Cell>> list = new ArrayList<AbstractPersistenceAlgorithm<Cell>>();\r\n\t\t\r\n\t\tlist.add(getBooleanCellularAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getIntCellularAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getRationalCellularAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getBooleanCellularClassicalHomology(maxDimension));\r\n\t\tlist.add(getIntCellularClassicalHomology(maxDimension));\r\n\t\t\r\n\t\treturn list;\r\n\t}\r\n\t\r\n\t/*\r\n\t * Simplex Pair Homology.\r\n\t */\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<SimplexPair, BooleanSparseFormalSum<SimplexPair>> getBooleanSimplexPairAbsoluteHomology(int maxDimension) {\r\n\t\treturn new BooleanAbsoluteHomology<SimplexPair>(SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<SimplexPair, IntSparseFormalSum<SimplexPair>> getIntSimplexPairAbsoluteHomology(int maxDimension) {\r\n\t\treturn new IntAbsoluteHomology<SimplexPair>(intField, SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<SimplexPair, ObjectSparseFormalSum<Fraction, SimplexPair>> getRationalSimplexPairAbsoluteHomology(int maxDimension) {\r\n\t\treturn new ObjectAbsoluteHomology<Fraction, SimplexPair>(fractionField, SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<SimplexPair> getBooleanSimplexPairClassicalHomology(int maxDimension) {\r\n\t\treturn new BooleanClassicalHomology<SimplexPair>(SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<SimplexPair> getIntSimplexPairClassicalHomology(int maxDimension) {\r\n\t\treturn new IntClassicalHomology<SimplexPair>(intField, SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceAlgorithm<SimplexPair> getRationalSimplexPairClassicalHomology(int maxDimension) {\r\n\t\treturn new ObjectClassicalHomology<Fraction, SimplexPair>(fractionField, SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<SimplexPair, BooleanSparseFormalSum<SimplexPair>> getBooleanSimplexPairRelativeHomology(int maxDimension) {\r\n\t\treturn new BooleanRelativeHomology<SimplexPair>(SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<SimplexPair, IntSparseFormalSum<SimplexPair>> getIntSimplexPairRelativeHomology(int maxDimension) {\r\n\t\treturn new IntRelativeHomology<SimplexPair>(intField, SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static AbstractPersistenceBasisAlgorithm<SimplexPair, ObjectSparseFormalSum<Fraction, SimplexPair>> getRationalSimplexPairRelativeHomology(int maxDimension) {\r\n\t\treturn new ObjectRelativeHomology<Fraction, SimplexPair>(fractionField, SimplexPairComparator.getInstance(), 0, maxDimension);\r\n\t}\r\n\t\r\n\tpublic static List<AbstractPersistenceAlgorithm<SimplexPair>> getAllSimplexPairAbsoluteHomologyAlgorithms(int maxDimension) {\r\n\t\tList<AbstractPersistenceAlgorithm<SimplexPair>> list = new ArrayList<AbstractPersistenceAlgorithm<SimplexPair>>();\r\n\t\t\r\n\t\tlist.add(getBooleanSimplexPairAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getIntSimplexPairAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getRationalSimplexPairAbsoluteHomology(maxDimension));\r\n\t\tlist.add(getBooleanSimplexPairClassicalHomology(maxDimension));\r\n\t\tlist.add(getIntSimplexPairClassicalHomology(maxDimension));\r\n\t\t\r\n\t\treturn list;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/api/Plex4.java",
    "content": "package edu.stanford.math.plex4.api;\n\nimport java.io.IOException;\nimport java.util.Comparator;\n\nimport org.apache.commons.math.fraction.Fraction;\n\nimport edu.stanford.math.plex4.autogen.homology.BooleanClassicalHomology;\nimport edu.stanford.math.plex4.autogen.homology.IntAbsoluteHomology;\nimport edu.stanford.math.plex4.autogen.homology.ObjectAbsoluteHomology;\nimport edu.stanford.math.plex4.autogen.homology.ObjectPersistenceAlgorithm;\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\nimport edu.stanford.math.plex4.homology.chain_basis.Cell;\nimport edu.stanford.math.plex4.homology.chain_basis.CellComparator;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPair;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.io.BarcodeWriter;\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\nimport edu.stanford.math.plex4.metric.landmark.ExplicitLandmarkSelector;\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\nimport edu.stanford.math.plex4.metric.landmark.MaxMinLandmarkSelector;\nimport edu.stanford.math.plex4.metric.landmark.RandomLandmarkSelector;\nimport edu.stanford.math.plex4.metric.utility.MetricUtility;\nimport edu.stanford.math.plex4.streams.derived.HomStream;\nimport edu.stanford.math.plex4.streams.impl.ExplicitCellStream;\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\nimport edu.stanford.math.plex4.streams.impl.LazyWitnessStream;\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\nimport edu.stanford.math.plex4.streams.impl.WitnessStream;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.primitivelib.algebraic.impl.ModularIntField;\nimport edu.stanford.math.primitivelib.algebraic.impl.RationalField;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.DoubleMatrixConverter;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.DoubleVectorConverter;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPairComparator;\nimport edu.stanford.math.primitivelib.collections.utility.ReversedComparator;\n\n/**\n * This class contains static functions that are designed to be callable\n * from Matlab.\n * \n * @author Andrew Tausz\n *\n */\npublic class Plex4 {\n\t/**\n\t * The default number of divisions for the filtered complexes.\n\t */\n\tprivate static int DEFAULT_NUM_DIVISIONS = 20;\n\t\n\t/**\n\t * Empty main function for convenience only.\n\t * @param args\n\t */\n\tpublic static void main(String[] args) {}\n\t\n\t/**\n\t * This function creates a new EuclideanMetricSpace object.\n\t * \n\t * @param points the array of points to include in the metric space\n\t * @return a new EuclideanMetricSpace object containing the supplied points\n\t */\n\tpublic static EuclideanMetricSpace createEuclideanMetricSpace(double[][] points) {\n\t\treturn new EuclideanMetricSpace(points);\n\t}\n\t\n\t/**\n\t * This function estimates the diameter of a metric space. The diameter is defined\n\t * as the maximum pairwise distance within the space.\n\t * \n\t * @param metricSpace the metric space\n\t * @return the estimated diameter\n\t */\n\tpublic static double estimateDiameter(AbstractIntMetricSpace metricSpace) {\n\t\treturn MetricUtility.estimateDiameter(metricSpace);\n\t}\n\t\n\t/**\n\t * This function creates a new ExplicitSimplexStream object.\n\t * \n\t * @return a new ExplicitSimplexStream\n\t */\n\tpublic static ExplicitSimplexStream createExplicitSimplexStream() {\n\t\treturn new ExplicitSimplexStream();\n\t}\n\t\n\tpublic static ExplicitSimplexStream createExplicitSimplexStream(double maxFiltrationValue) {\n\t\treturn new ExplicitSimplexStream(maxFiltrationValue);\n\t}\n\t\n\t/**\n\t * This function creates a new ExplicitCellStream object.\n\t * \n\t * @return a new ExplicitCellStream\n\t */\n\tpublic static ExplicitCellStream createExplicitCellStream() {\n\t\treturn new ExplicitCellStream();\n\t}\n\t\n\tpublic static ExplicitCellStream createExplicitCellStream(double maxFiltrationValue) {\n\t\treturn new ExplicitCellStream(maxFiltrationValue);\n\t}\n\t\n\t/**\n\t * This function creates a Vietoris-Rips complex given a point cloud.\n\t * \n\t * @param points the points in the data set \n\t * @param maxDimension the maximum simplicial dimension in the complex\n\t * @param maxFiltrationValue the maximum filtration value\n\t * @param numDivisions the number of divisions to use in the filtration\n\t * @return a new VietorisRipsStream object\n\t */\n\tpublic static VietorisRipsStream<double[]> createVietorisRipsStream(double[][] points, int maxDimension, double maxFiltrationValue, int numDivisions) {\n\t\treturn FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension, maxFiltrationValue, numDivisions);\n\t}\n\t\n\t/**\n\t * This function creates a Vietoris-Rips complex given a point cloud. It uses 20\n\t * as the default number of divisions.\n\t * \n\t * @param points the points in the data set \n\t * @param maxDimension the maximum simplicial dimension in the complex\n\t * @param maxFiltrationValue the maximum filtration value\n\t * @return a new VietorisRipsStream object\n\t */\n\tpublic static VietorisRipsStream<double[]> createVietorisRipsStream(double[][] points, int maxDimension, double maxFiltrationValue) {\n\t\treturn FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension, maxFiltrationValue, DEFAULT_NUM_DIVISIONS);\n\t}\n\t\n\t/**\n\t * This function creates a Vietoris-Rips complex from a metric space.\n\t * \n\t * @param <T>\n\t * @param metricSpace the metric space\n\t * @param maxDimension the maximum simplicial dimension in the complex\n\t * @param maxFiltrationValue the maximum filtration value\n\t * @param numDivisions the number of divisions to use in the filtration\n\t * @return a new VietorisRipsStream object\n\t */\n\tpublic static <T> VietorisRipsStream<T> createVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, int maxDimension, double maxFiltrationValue, int numDivisions) {\n\t\treturn FilteredStreamInterface.createPlex4VietorisRipsStream(metricSpace, maxDimension, maxFiltrationValue, numDivisions);\n\t}\n\t\n\t/**\n\t * This function creates a Vietoris-Rips complex given a metric space. It uses 20\n\t * as the default number of divisions.\n\t * \n\t * @param metricSpace the metric space\n\t * @param maxDimension the maximum simplicial dimension in the complex\n\t * @param maxFiltrationValue the maximum filtration value\n\t * @return a new VietorisRipsStream object\n\t */\n\tpublic static <T> VietorisRipsStream<T> createVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, int maxDimension, double maxFiltrationValue) {\n\t\treturn FilteredStreamInterface.createPlex4VietorisRipsStream(metricSpace, maxDimension, maxFiltrationValue, DEFAULT_NUM_DIVISIONS);\n\t}\n\t\n\t/**\n\t * This function creates a Vietoris-Rips complex given a point cloud.\n\t * \n\t * @param points the points in the data set \n\t * @param maxDimension the maximum simplicial dimension in the complex\n\t * @param filtrationValues the set of filtration values to use\n\t * @return a new VietorisRipsStream object\n\t */\n\tpublic static VietorisRipsStream<double[]> createVietorisRipsStream(double[][] points, int maxDimension, double[] filtrationValues) {\n\t\treturn FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension, filtrationValues);\n\t}\n\n\t/**\n\t * This function creates a Vietoris-Rips complex from a metric space.\n\t * \n\t * @param <T>\n\t * @param metricSpace the metric space\n\t * @param maxDimension the maximum simplicial dimension in the complex\n\t * @param filtrationValues the set of filtration values to use\n\t * @return a new VietorisRipsStream object\n\t */\n\tpublic static <T> VietorisRipsStream<T> createVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, int maxDimension, double[] filtrationValues) {\n\t\treturn FilteredStreamInterface.createPlex4VietorisRipsStream(metricSpace, maxDimension, filtrationValues);\n\t}\n\t\n\t/**\n\t * This function create a new lazy-witness stream given a point cloud.\n\t * \n\t * @param selector the landmark selection\n\t * @param maxDimension the maximum simplicial dimension in the complex \n\t * @param maxFiltrationValue the maximum filtration value\n\t * @param numDivisions the number of divisions to use in the filtration\n\t * @return a new LazyWitnessStream object\n\t */\n\tpublic static LazyWitnessStream<double[]> createLazyWitnessStream(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) {\n\t\treturn FilteredStreamInterface.createPlex4LazyWitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions);\n\t}\n\t\n\t/**\n\t * This function create a new witness stream given a point cloud. It uses 20\n\t * as the default number of divisions.\n\t * \n\t * @param selector the landmark selection\n\t * @param maxDimension the maximum simplicial dimension in the complex \n\t * @param maxFiltrationValue the maximum filtration value\n\t * @return a new LazyWitnessStream object\n\t */\n\tpublic static WitnessStream<double[]> createWitnessStream(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue) {\n\t\treturn FilteredStreamInterface.createPlex4WitnessStream(selector, maxDimension, maxFiltrationValue, DEFAULT_NUM_DIVISIONS);\n\t}\n\t\n\t/**\n\t * This function create a new witness stream given a point cloud.\n\t * \n\t * @param selector the landmark selection\n\t * @param maxDimension the maximum simplicial dimension in the complex \n\t * @param maxFiltrationValue the maximum filtration value\n\t * @param numDivisions the number of divisions to use in the filtration\n\t * @return a new LazyWitnessStream object\n\t */\n\tpublic static WitnessStream<double[]> createWitnessStream(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) {\n\t\treturn FilteredStreamInterface.createPlex4WitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions);\n\t}\n\t\n\t/**\n\t * This function create a new lazy-witness stream given a point cloud. It uses 20\n\t * as the default number of divisions.\n\t * \n\t * @param selector the landmark selection\n\t * @param maxDimension the maximum simplicial dimension in the complex \n\t * @param maxFiltrationValue the maximum filtration value\n\t * @return a new LazyWitnessStream object\n\t */\n\tpublic static LazyWitnessStream<double[]> createLazyWitnessStream(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue) {\n\t\treturn FilteredStreamInterface.createPlex4LazyWitnessStream(selector, maxDimension, maxFiltrationValue, DEFAULT_NUM_DIVISIONS);\n\t}\n\t\n\t/**\n\t * This function creates a new max-min landmark selector on a point cloud.\n\t * \n\t * @param points the data set\n\t * @param numLandmarkPoints the number of points to include in the selection\n\t * @return a new MaxMinLandmarkSelector\n\t */\n\tpublic static MaxMinLandmarkSelector<double[]> createMaxMinSelector(double[][] points, int numLandmarkPoints) {\n\t\treturn new MaxMinLandmarkSelector<double[]>(new EuclideanMetricSpace(points), numLandmarkPoints);\n\t}\n\t\n\t/**\n\t * This function creates a new max-min landmark selector on a point cloud.\n\t * \n\t * @param points the data set\n\t * @param numLandmarkPoints the number of points to include in the selection\n\t * @param firstPoint the initial point in the landmark set\n\t * @return a new MaxMinLandmarkSelector\n\t */\n\tpublic static MaxMinLandmarkSelector<double[]> createMaxMinSelector(double[][] points, int numLandmarkPoints, int firstPoint) {\n\t\treturn new MaxMinLandmarkSelector<double[]>(new EuclideanMetricSpace(points), numLandmarkPoints, firstPoint);\n\t}\n\t\n\t/**\n\t * This function creates a new random landmark point selector on a point cloud.\n\t * \n\t * @param points the data set\n\t * @param numLandmarkPoints the number of points to include in the selection\n\t * @return a new RandomLandmarkSelector\n\t */\n\tpublic static RandomLandmarkSelector<double[]> createRandomSelector(double[][] points, int numLandmarkPoints) {\n\t\treturn new RandomLandmarkSelector<double[]>(new EuclideanMetricSpace(points), numLandmarkPoints);\n\t}\n\t\n\t/**\n\t * This function creates a new max-min landmark selector on an abstract metric space.\n\t * \n\t * @param <T> the underlying type of the metric space\n\t * @param metricSpace the metric space to select from\n\t * @param numLandmarkPoints the number of points to include in the selection\n\t * @return a new MaxMinLandmarkSelector\n\t */\n\tpublic static <T> MaxMinLandmarkSelector<T> createMaxMinSelector(AbstractSearchableMetricSpace<T> metricSpace, int numLandmarkPoints) {\n\t\treturn new MaxMinLandmarkSelector<T>(metricSpace, numLandmarkPoints);\n\t}\n\t\n\t/**\n\t * This function creates a new max-min landmark selector on an abstract metric space.\n\t * \n\t * @param <T> the underlying type of the metric space\n\t * @param metricSpace the metric space to select from\n\t * @param numLandmarkPoints the number of points to include in the selection\n\t * @param firstPoint the initial point in the landmark set\n\t * @return a new MaxMinLandmarkSelector\n\t */\n\tpublic static <T> MaxMinLandmarkSelector<T> createMaxMinSelector(AbstractSearchableMetricSpace<T> metricSpace, int numLandmarkPoints, int firstPoint) {\n\t\treturn new MaxMinLandmarkSelector<T>(metricSpace, numLandmarkPoints, firstPoint);\n\t}\n\t\n\t/**\n\t * This function creates a new randomized landmark selector on an abstract metric space.\n\t * \n\t * @param <T> the underlying type of the metric space\n\t * @param metricSpace the metric space to select from\n\t * @param numLandmarkPoints the number of points to include in the selection\n\t * @return a new RandomLandmarkSelector\n\t */\n\tpublic static <T> RandomLandmarkSelector<T> createRandomSelector(AbstractSearchableMetricSpace<T> metricSpace, int numLandmarkPoints) {\n\t\treturn new RandomLandmarkSelector<T>(metricSpace, numLandmarkPoints);\n\t}\n\t\n\t/**\n\t * This function creates a new explicit landmark selector on a point cloud.\n\t * \n\t * @param points the data set\n\t * @param landmarkPoints the set of landmark points\n\t * @return a new ExplicitLandmarkSelector\n\t */\n\tpublic static ExplicitLandmarkSelector<double[]> createExplicitSelector(double[][] points, int[] landmarkPoints) {\n\t\treturn new ExplicitLandmarkSelector<double[]>(new EuclideanMetricSpace(points), landmarkPoints);\n\t}\n\t\n\t/**\n\t * This function creates a new explicit landmark selector on an abstract metric space.\n\t * \n\t * @param metricSpace the metric space to select from\n\t * @param landmarkPoints the set of landmark points\n\t * @return a new ExplicitLandmarkSelector\n\t */\n\tpublic static <T> ExplicitLandmarkSelector<T> createExplicitSelector(AbstractSearchableMetricSpace<T> metricSpace, int[] landmarkPoints) {\n\t\treturn new ExplicitLandmarkSelector<T>(metricSpace, landmarkPoints);\n\t}\n\t\n\t/**\n\t * This function returns the default (absolute) simplicial persistent homology algorithm.\n\t *  \n\t * @param maxDimension the maximum dimension the algorithm should compute homology for\n\t * @return the default simplicial homology algorithm\n\t */\n\tpublic static AbstractPersistenceAlgorithm<Simplex> getDefaultSimplicialAlgorithm(int maxDimension) {\n\t\treturn new BooleanClassicalHomology<Simplex>(SimplexComparator.getInstance(), 0, maxDimension);\n\t}\n\t\n\tpublic static AbstractPersistenceAlgorithm<SimplexPair> getDefaultSimplicialPairAlgorithm(int maxDimension) {\n\t\t//return new IntAbsoluteHomology<SimplexPair>(ModularIntField.getInstance(2), SimplexPairComparator.getInstance(), 0, maxDimension);\n\t\treturn new BooleanClassicalHomology<SimplexPair>(SimplexPairComparator.getInstance(), 0, maxDimension);\n\t}\n\t\n\t/**\n\t * This function returns the default (absolute) cellular persistent homology algorithm.\n\t *  \n\t * @param maxDimension the maximum dimension the algorithm should compute homology for\n\t * @return the default cellular homology algorithm\n\t */\n\tpublic static AbstractPersistenceAlgorithm<Cell> getDefaultCellularAlgorithm(int maxDimension) {\n\t\treturn new BooleanClassicalHomology<Cell>(CellComparator.getInstance(), 0, maxDimension);\n\t}\n\t\n\t/**\n\t * This function returns a cellular persistence algorithm over the finite field Z/pZ.\n\t * \n\t * @param maxDimension the maximum dimension the algorithm should compute homology for \n\t * @param prime the order of the underlying finite field\n\t * @return a cellular homology algorithm over Z/pZ\n\t */\n\tpublic static AbstractPersistenceAlgorithm<Cell> getModularCellularAlgorithm(int maxDimension, int prime) {\n\t\treturn new IntAbsoluteHomology<Cell>(ModularIntField.getInstance(prime), CellComparator.getInstance(), 0, maxDimension);\n\t}\n\t\n\t/**\n\t * This function returns a simplicial persistence algorithm over the finite field Z/pZ.\n\t * \n\t * @param maxDimension the maximum dimension the algorithm should compute homology for \n\t * @param prime the order of the underlying finite field\n\t * @return a simpliciald homology algorithm over Z/pZ\n\t */\n\tpublic static AbstractPersistenceAlgorithm<Simplex> getModularSimplicialAlgorithm(int maxDimension, int prime) {\n\t\treturn new IntAbsoluteHomology<Simplex>(ModularIntField.getInstance(prime), SimplexComparator.getInstance(), 0, maxDimension);\n\t}\n\t\n\t/**\n\t * This function returns a simplicial persistence algorithm over the the rational numbers.\n\t * \n\t * @param maxDimension the maximum dimension the algorithm should compute homology for \n\t * @return a simplicial homology algorithm over the rational numbers\n\t */\n\tpublic static ObjectAbsoluteHomology<Fraction, Simplex> getRationalSimplicialAlgorithm(int maxDimension) {\n\t\treturn new ObjectAbsoluteHomology<Fraction, Simplex>(RationalField.getInstance(), SimplexComparator.getInstance(), 0, maxDimension);\n\t}\n\t\n\t/**\n\t * This function returns a cellular persistence algorithm over the the rational numbers.\n\t * \n\t * @param maxDimension the maximum dimension the algorithm should compute homology for \n\t * @return a cellular homology algorithm over the rational numbers\n\t */\n\tpublic static AbstractPersistenceAlgorithm<Cell> getRationalCellularAlgorithm(int maxDimension) {\n\t\treturn new ObjectAbsoluteHomology<Fraction, Cell>(RationalField.getInstance(), CellComparator.getInstance(), 0, maxDimension);\n\t}\n\t\n\t/**\n\t * This function creates an images of a collection of barcodes and writes it to a file.\n\t * \n\t * @param collection the collection of barcodes\n\t * @param caption the caption for the image\n\t * @param endPoint the maximum endpoint\n\t * @throws IOException \n\t */\n\tpublic static <G> void createBarcodePlot(PersistenceInvariantDescriptor<Interval<Double>, G> collection, String caption, double endPoint) throws IOException {\n\t\tBarcodeWriter writer = BarcodeWriter.getInstance();\n\t\t\n\t\tfor (int dimension: collection.getDimensions()) {\n\t\t\tString imageFilename = caption + \"_\" + dimension;\n\t\t\tString path = imageFilename + \".\" + writer.getExtension();\n\t\t\twriter.writeToFile(collection, dimension, endPoint, caption, path);\n\t\t}\n\t}\n\t\n\t/**\n\t * This function creates a new hom stream from two given filtered streams.\n\t * \n\t * @param <T> basis type for the first complex\n\t * @param <U> the basis type for the second complex\n\t * @param domainStream the domain complex\n\t * @param codomainStream the codomain complex\n\t * @return a new hom complex stream\n\t */\n\tpublic static <T, U> HomStream<T, U> createHomStream(AbstractFilteredStream<T> domainStream, AbstractFilteredStream<U> codomainStream) {\n\t\treturn new HomStream<T, U>(domainStream, codomainStream);\n\t}\n\t\n\t/**\n\t * This function creates a persistent homology algorithm over the rationals for computing homology of simplicial hom complexes.\n\t * @return a persistent homology algorithm\n\t */\n\tpublic static ObjectPersistenceAlgorithm<Fraction, ObjectObjectPair<Simplex, Simplex>> getRationalHomAlgorithm() {\n\t\tComparator<ObjectObjectPair<Simplex, Simplex>> comparator = new ObjectObjectPairComparator<Simplex, Simplex>(new ReversedComparator<Simplex>(SimplexComparator.getInstance()), SimplexComparator.getInstance());\n\t\tObjectPersistenceAlgorithm<Fraction, ObjectObjectPair<Simplex, Simplex>> algorithm = new ObjectAbsoluteHomology<Fraction, ObjectObjectPair<Simplex, Simplex>>(RationalField.getInstance(), comparator, 0, 1);\n\t\treturn algorithm;\n\t}\n\t\n\t/**\n\t * This function creates a matrix converter object for converting between formal sums, sparse and dense matrices.\n\t * \n\t * @param domainStream the stream which provides the basis elements for the domain\n\t * @param codomainStream the stream which provides the basis elements for the codomain\n\t * @return a DoubleMatrixConverter\n\t */\n\tpublic static DoubleMatrixConverter<Simplex, Simplex> createHomMatrixConverter(AbstractFilteredStream<Simplex> domainStream, AbstractFilteredStream<Simplex> codomainStream) {\n\t\treturn new DoubleMatrixConverter<Simplex, Simplex>(domainStream, codomainStream);\n\t}\n\t\n\t/**\n\t * This function creates a vector converter for converting between formal sums, and sparse and dense arrays.\n\t * @param stream the stream which provides the basis elements\n\t * @return a DoubleVectorConverter\n\t */\n\tpublic static DoubleVectorConverter<Simplex> createMatrixConverter(AbstractFilteredStream<Simplex> stream) {\n\t\treturn new DoubleVectorConverter<Simplex>(stream);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/BooleanAbsoluteHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\n\r\n\r\n\r\n\r\n\r\npublic class BooleanAbsoluteHomology<U> extends BooleanPersistentHomology<U> {\r\n\t\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic BooleanAbsoluteHomology(Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, BooleanSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getAnnotatedIntervals(RV_pair, stream, true);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, BooleanSparseFormalSum<U>>> RV_pair,\r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getIntervals(RV_pair, stream, true);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/BooleanClassicalHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.streams.utility.FilteredComparator;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanPrimitiveFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\r\nimport gnu.trove.THashMap;\r\nimport gnu.trove.THashSet;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * <p>This class performs the persistent homology algorithm as outlined in\r\n * the paper \"Computing Persistent Homology\" by Zomorodian and Carlsson.</p>\r\n * \r\n * <p>boolean the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n *\r\n * @author autogen\r\n *\r\n * \r\n */\r\npublic class BooleanClassicalHomology<U> extends AbstractPersistenceAlgorithm<U> {\r\n\t\tprivate final BooleanPrimitiveFreeModule<U> chainModule;\r\n\tprivate final Comparator<U> basisComparator;\r\n\tprivate final int maxDimension;\r\n\tprivate final int minDimension;\r\n\t\r\n\tprivate THashSet<U> markedSimplices = null;\r\n\tprivate THashMap<U, BooleanSparseFormalSum<U>> T = null;\r\n\tprivate Comparator<U> filteredComparator = null;\r\n\t\r\n\t\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic BooleanClassicalHomology(Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.chainModule = new BooleanPrimitiveFreeModule<U>();\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t\t\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\t\t\r\n\t\tthis.filteredComparator = new FilteredComparator<U>(stream, this.basisComparator);\r\n\t\tthis.markedSimplices = new THashSet<U>();\r\n\t\tthis.T = new THashMap<U, BooleanSparseFormalSum<U>>();\r\n\t\t\r\n\t\tfor (U simplex : stream) {\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(simplex) > maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(simplex) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t * Translation from paper:\r\n\t\t\t * \r\n\t\t\t * sigma_j = simplex\r\n\t\t\t * sigma_i = d.maxObject();\r\n\t\t\t * \r\n\t\t\t */\r\n\r\n\t\t\tthis.T.remove(simplex);\r\n\t\t\t\r\n\t\t\tBooleanSparseFormalSum<U> d = this.removePivotRows(simplex, stream);\r\n\t\t\t\r\n\t\t\tif (d.isEmpty()) {\r\n\t\t\t\tthis.markedSimplices.add(simplex);\r\n\t\t\t} else {\r\n\t\t\t\tU sigma_j = simplex;\r\n\t\t\t\tU sigma_i = getMaximumObject(d);\r\n\t\t\t\tint k = stream.getDimension(sigma_i);\r\n\t\t\t\t\r\n\t\t\t\t// store j and d in U[i]\r\n\t\t\t\tthis.T.put(sigma_i, d);\r\n\t\t\t\t\r\n\t\t\t\t// store interval\r\n\t\t\t\tint index_i = stream.getFiltrationIndex(sigma_i);\r\n\t\t\t\tint index_j = stream.getFiltrationIndex(sigma_j);\r\n\t\t\t\t\r\n\t\t\t\tassert (index_i <= index_j);\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t// don't store intervals that are simultaneously created and destroyed\r\n\t\t\t\tif ((index_j - index_i > 0) && k < maxDimension) {\r\n\t\t\t\t\tbarcodeCollection.addInterval(k, index_i, index_j);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfor (U simplex : this.markedSimplices) {\r\n\t\t\tif (!this.T.containsKey(simplex) || this.T.get(simplex).isEmpty()) {\r\n\t\t\t\tint k = stream.getDimension(simplex);\r\n\t\t\t\tif (k < maxDimension) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(k, stream.getFiltrationIndex(simplex));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\t\tthis.T = null;\r\n\t\tthis.markedSimplices = null;\r\n\t\tthis.filteredComparator = null;\r\n\t\t\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\t\r\n\tprivate BooleanSparseFormalSum<U> removePivotRows(U simplex, AbstractFilteredStream<U> stream) {\r\n\t\tBooleanSparseFormalSum<U> d = chainModule.createNewSum(stream.getBoundaryCoefficients(simplex), stream.getBoundary(simplex));\r\n\r\n\t\t\t\tU current = null;\r\n\t\tfor (Iterator<U> iterator = d.iterator(); iterator.hasNext(); ) {\r\n\t\t\tcurrent = iterator.next();\r\n\t\t\tif (!this.markedSimplices.contains(current)) {\r\n\t\t\t\titerator.remove();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\t\t\r\n\t\tU sigma_i = null;\r\n\t\t\t\tboolean q = false;\r\n\t\t\t\twhile (!d.isEmpty()) {\r\n\t\t\tsigma_i = getMaximumObject(d);\r\n\t\t\t\r\n\t\t\tif (!this.T.containsKey(sigma_i) || this.T.get(sigma_i).isEmpty()) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tq = T.get(sigma_i).getCoefficient(sigma_i);\r\n\t\t\t\r\n\t\t\t\t\t\tif (q == false) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tchainModule.accumulate(d, T.get(sigma_i), q);\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\treturn d;\r\n\t}\r\n\r\n\t\r\n\tprivate U getMaximumObject(BooleanSparseFormalSum<U> chain) {\r\n\t\tU maxObject = null;\r\n\t\t\r\n\t\t\t\tU current = null;\r\n\t\tfor (Iterator<U> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\tcurrent = iterator.next();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(current, maxObject) > 0) {\r\n\t\t\t\tmaxObject = current;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\treturn maxObject;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/BooleanPersistenceAlgorithm.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.streams.utility.FilteredComparator;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanPrimitiveFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * This class defines the functionality for a persistence algorithm with underlying\r\n * field type being boolean and underlying basis element type being U.\r\n * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm\r\n * and the actual implementations of the persistent homology/cohomology algorithms.\r\n * \r\n * <p>boolean the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n * \r\n * @author autogen\r\n *\r\n */\r\npublic abstract class BooleanPersistenceAlgorithm<U> extends AbstractPersistenceBasisAlgorithm<U, BooleanSparseFormalSum<U>> {\r\n\t\t\r\n\t/**\r\n\t * This objects performs the chain computations.\r\n\t */\r\n\tprotected final BooleanPrimitiveFreeModule<U> chainModule;\r\n\t\r\n\t/**\r\n\t * This comparator defines the ordering on the basis elements.\r\n\t */\r\n\tprotected final Comparator<U> basisComparator;\r\n\t\r\n\t/**\r\n\t * This comparator provides the dictionary ordering on filtration value - basis element\r\n\t * pairs.\r\n\t */\r\n\tprotected Comparator<U> filteredComparator = null;\r\n\r\n\t/**\r\n\t * This stores the minimum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int minDimension = 0;\r\n\t\r\n\t/**\r\n\t * This stores the maximum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int maxDimension = 2;\t\r\n\r\n\t\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic BooleanPersistenceAlgorithm(Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.chainModule = new BooleanPrimitiveFreeModule<U>();\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function simply updates the filtered comparator to the one induced by the given filtered stream.\r\n\t * \r\n\t * @param stream the AbstractFilteredStream that provides the filtration index information\r\n\t */\r\n\tprotected void initializeFilteredComparator(AbstractFilteredStream<U> stream) {\r\n\t\tthis.filteredComparator = new FilteredComparator<U>(stream, this.basisComparator);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the free module used for the arithmetic computations.\r\n\t * \r\n\t * @return the free module over chains in U\r\n\t */\r\n\tpublic BooleanPrimitiveFreeModule<U> getChainModule() {\r\n\t\treturn this.chainModule;\r\n\t}\r\n\t\r\n\t\t\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\treturn this.computeIntervalsImpl(stream);\r\n\t}\r\n\r\n\tpublic AnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>> computeAnnotatedIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\treturn this.computeAnnotatedIntervalsImpl(stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function provides the implementation of computeIntervals.\r\n\t * \r\n\t * @param stream the filtered chain complex \r\n\t * @return the persistence intervals of the given complex\r\n\t */\r\n\tprotected abstract BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<U> stream);\r\n\t\r\n\t/**\r\n\t * This function provides the implementation of computeAnnotatedIntervals.\r\n\t * \r\n\t * @param stream the filtered chain complex\r\n\t * @return the augmented persistence intervals\r\n\t */\r\n\tprotected abstract AnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>> computeAnnotatedIntervalsImpl(AbstractFilteredStream<U> stream);\r\n\t\r\n\t/**\r\n\t * This function computes the operation low_A(j) as described in the paper. Note that if\r\n\t * the chain is empty (for example the column contains only zeros), then this function\r\n\t * returns null.\r\n\t * \r\n\t * @param chain the chain to search\r\n\t * @return  the lowest element of the chain\r\n\t */\r\n\tprotected U low(BooleanSparseFormalSum<U> chain) {\r\n\t\r\n\t\tU maxObject = null;\r\n\t\t\r\n\t\t\t\tU current = null;\r\n\t\tfor (Iterator<U> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\tcurrent = iterator.next();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(current, maxObject) > 0) {\r\n\t\t\t\tmaxObject = current;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\treturn maxObject;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/BooleanPersistentHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\nimport java.util.Set;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\nimport gnu.trove.THashSet;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * This class defines the functionality for a persistence algorithm with underlying\r\n * field type being boolean and underlying basis element type being U.\r\n * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm\r\n * and the actual implementations of the persistent homology/cohomology algorithms.\r\n *  \r\n * <p>boolean the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n * \r\n * @author autogen\r\n *\r\n */\r\npublic abstract class BooleanPersistentHomology<U> extends BooleanPersistenceAlgorithm<U> {\r\n\r\n\t\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic BooleanPersistentHomology(Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>> computeAnnotatedIntervalsImpl(AbstractFilteredStream<U> stream) {\r\n\t\treturn this.getAnnotatedIntervals(this.pHcol(stream), stream);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<U> stream) {\r\n\t\treturn this.getIntervals(this.pHcol(stream), stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function implements the pHcol algorithm described in the paper. It computes the decomposition\r\n\t * R = D * V, where D is the boundary matrix, R is reduced, and is invertible and upper triangular.\r\n\t * This function returns the pair (R, V). Note that in our implementation, we represent a matrix by\r\n\t * a hash map which maps a generating object to a formal sum which corresponds to a column in the matrix.\r\n\t * Note that this is simply a sparse representation of a linear transformation on a vector space with\r\n\t * free basis consisting of elements of type U.\r\n\t * \r\n\t * @param stream the filtered chain complex which provides elements in increasing filtration order\r\n\t * @return a ObjectObjectPair containing the matrices R and V\r\n\t */\r\n\tprivate ObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, THashMap<U, BooleanSparseFormalSum<U>>> pHcol(AbstractFilteredStream<U> stream) {\r\n\r\n\t\tTHashMap<U, BooleanSparseFormalSum<U>> R = new THashMap<U, BooleanSparseFormalSum<U>>();\r\n\t\tTHashMap<U, BooleanSparseFormalSum<U>> V = new THashMap<U, BooleanSparseFormalSum<U>>();\r\n\r\n\t\t/**\r\n\t\t * This maps a simplex to the set of columns containing the key as its low value.\r\n\t\t */\r\n\t\tTHashMap<U, THashSet<U>> lowMap = new THashMap<U, THashSet<U>>();\r\n\r\n\t\tfor (U i : stream) {\r\n\t\t\t/*\r\n\t\t\t * Do not process simplices of higher dimension than maxDimension.\r\n\t\t\t */\r\n\t\t\tif (stream.getDimension(i) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(i) > this.maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// initialize V to be the identity matrix\r\n\t\t\t\t\t\tV.put(i, this.chainModule.createNewSum(i));\r\n\t\t\t\r\n\t\t\t// form the column R[i] which equals the boundary of the current simplex.\r\n\t\t\t// store the column as a column in R\r\n\t\t\tR.put(i, chainModule.createNewSum(stream.getBoundaryCoefficients(i), stream.getBoundary(i)));\r\n\r\n\t\t\t// compute low_R(i)\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\r\n\t\t\t// if the boundary of i is empty, then continue to next iteration since there\r\n\t\t\t// is nothing to process\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tTHashSet<U> matchingLowSimplices = lowMap.get(low_R_i);\r\n\t\t\twhile (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) {\r\n\t\t\t\tIterator<U> iterator = matchingLowSimplices.iterator();\r\n\t\t\t\t/**\r\n\t\t\t\t * TODO: Is this the right thing to do???\r\n\t\t\t\t * Ie. should the iterator.next go at the end of the loop?\r\n\t\t\t\t */\r\n\t\t\t\tU j = iterator.next();\r\n\r\n\t\t\t\t\t\t\t\tassert (R.get(j).getCoefficient(low_R_i) == true);\r\n\t\t\t\tboolean negative_c = R.get(i).getCoefficient(low_R_i);\r\n\t\t\t\t\t\t\t\t//R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j))));\r\n\t\t\t\t//V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j))));\r\n\t\t\t\tthis.chainModule.accumulate(R.get(i), R.get(j), negative_c);\r\n\t\t\t\tthis.chainModule.accumulate(V.get(i), V.get(j), negative_c);\r\n\r\n\t\t\t\t// remove old low_R(i) entry\r\n\t\t\t\t//lowMap.get(low_R_i).remove(i);\r\n\r\n\t\t\t\t// recompute low_R(i)\r\n\t\t\t\tlow_R_i = this.low(R.get(i));\r\n\r\n\t\t\t\tmatchingLowSimplices = lowMap.get(low_R_i);\r\n\t\t\t}\r\n\r\n\t\t\t// store the low value in the map\r\n\t\t\tif (low_R_i != null) {\r\n\t\t\t\tif (!lowMap.containsKey(low_R_i)) {\r\n\t\t\t\t\tlowMap.put(low_R_i, new THashSet<U>());\r\n\t\t\t\t}\r\n\t\t\t\tlowMap.get(low_R_i).add(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// at this point we have computed the decomposition R = D * V\r\n\t\t// we return the pair (R, V)\r\n\r\n\t\treturn new ObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, THashMap<U, BooleanSparseFormalSum<U>>>(R, V);\r\n\t}\r\n\t\r\n\tprotected abstract AnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>> getAnnotatedIntervals(ObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, BooleanSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream);\r\n\r\n\tprotected abstract BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, BooleanSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream);\r\n\r\n\tprotected AnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, BooleanSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream, \r\n\t\t\tboolean absolute) {\r\n\t\t\t\r\n\t\tAnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>> barcodeCollection = new AnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>>();\r\n\r\n\t\tTHashMap<U, BooleanSparseFormalSum<U>> R = RV_pair.getFirst();\r\n\t\tTHashMap<U, BooleanSparseFormalSum<U>> V = RV_pair.getSecond();\r\n\r\n\t\tSet<U> births = new THashSet<U>();\r\n\r\n\t\tfor (U i: stream) {\r\n\t\t\tif (!R.containsKey(i)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\t\tbirths.add(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// simplex i kills low_R_i\r\n\t\t\t\tbirths.remove(low_R_i);\r\n\t\t\t\tbirths.remove(i);\r\n\t\t\t\tint start = stream.getFiltrationIndex(low_R_i);\r\n\t\t\t\tint end = stream.getFiltrationIndex(i);\r\n\t\t\t\tif (end > start) {\r\n\t\t\t\t\tif (absolute) {\r\n\t\t\t\t\t\tdimension = stream.getDimension(low_R_i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdimension = stream.getDimension(i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(dimension, start, end, V.get(i));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the elements in birth are the ones that are never killed\r\n\t\t// these correspond to semi-infinite intervals\r\n\t\tfor (U i: births) {\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\tif (absolute) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbarcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\r\n\tprotected BarcodeCollection<Integer> getIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, BooleanSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream, \r\n\t\t\tboolean absolute) {\r\n\t\t\t\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\r\n\t\tTHashMap<U, BooleanSparseFormalSum<U>> R = RV_pair.getFirst();\r\n\r\n\t\tSet<U> births = new THashSet<U>();\r\n\r\n\t\tfor (U i: stream) {\r\n\t\t\tif (!R.containsKey(i)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\t\tbirths.add(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// simplex i kills low_R_i\r\n\t\t\t\tbirths.remove(low_R_i);\r\n\t\t\t\tbirths.remove(i);\r\n\t\t\t\tint start = stream.getFiltrationIndex(low_R_i);\r\n\t\t\t\tint end = stream.getFiltrationIndex(i);\r\n\t\t\t\tif (end > start) {\r\n\t\t\t\t\tif (absolute) {\r\n\t\t\t\t\t\tdimension = stream.getDimension(low_R_i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(stream.getDimension(low_R_i), start, end);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdimension = stream.getDimension(i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(dimension, start, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the elements in birth are the ones that are never killed\r\n\t\t// these correspond to semi-infinite intervals\r\n\t\tfor (U i: births) {\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\tif (absolute) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbarcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/BooleanRelativeHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\n\r\n\r\n\r\n\r\n\r\npublic class BooleanRelativeHomology<U> extends BooleanPersistentHomology<U> {\r\n\t\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic BooleanRelativeHomology(Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, BooleanSparseFormalSum<U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, BooleanSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getAnnotatedIntervals(RV_pair, stream, false);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, BooleanSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, BooleanSparseFormalSum<U>>> RV_pair,\r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getIntervals(RV_pair, stream, false);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/IntAbsoluteHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\n\r\n\r\n\r\n\r\n\r\npublic class IntAbsoluteHomology<U> extends IntPersistentHomology<U> {\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type int\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic IntAbsoluteHomology(IntAbstractField field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, IntSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getAnnotatedIntervals(RV_pair, stream, true);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, IntSparseFormalSum<U>>> RV_pair,\r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getIntervals(RV_pair, stream, true);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/IntClassicalHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.streams.utility.FilteredComparator;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\r\nimport gnu.trove.THashMap;\r\nimport gnu.trove.THashSet;\r\nimport gnu.trove.TObjectIntIterator;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * <p>This class performs the persistent homology algorithm as outlined in\r\n * the paper \"Computing Persistent Homology\" by Zomorodian and Carlsson.</p>\r\n * \r\n * <p>int the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n *\r\n * @author autogen\r\n *\r\n * \r\n */\r\npublic class IntClassicalHomology<U> extends AbstractPersistenceAlgorithm<U> {\r\n\t\tprotected final IntAbstractField field;\r\n\t\tprivate final IntAlgebraicFreeModule<U> chainModule;\r\n\tprivate final Comparator<U> basisComparator;\r\n\tprivate final int maxDimension;\r\n\tprivate final int minDimension;\r\n\t\r\n\tprivate THashSet<U> markedSimplices = null;\r\n\tprivate THashMap<U, IntSparseFormalSum<U>> T = null;\r\n\tprivate Comparator<U> filteredComparator = null;\r\n\t\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type int\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic IntClassicalHomology(IntAbstractField field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.field = field;\r\n\t\tthis.chainModule = new IntAlgebraicFreeModule<U>(this.field);\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t\t\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\t\t\r\n\t\tthis.filteredComparator = new FilteredComparator<U>(stream, this.basisComparator);\r\n\t\tthis.markedSimplices = new THashSet<U>();\r\n\t\tthis.T = new THashMap<U, IntSparseFormalSum<U>>();\r\n\t\t\r\n\t\tfor (U simplex : stream) {\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(simplex) > maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(simplex) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t * Translation from paper:\r\n\t\t\t * \r\n\t\t\t * sigma_j = simplex\r\n\t\t\t * sigma_i = d.maxObject();\r\n\t\t\t * \r\n\t\t\t */\r\n\r\n\t\t\tthis.T.remove(simplex);\r\n\t\t\t\r\n\t\t\tIntSparseFormalSum<U> d = this.removePivotRows(simplex, stream);\r\n\t\t\t\r\n\t\t\tif (d.isEmpty()) {\r\n\t\t\t\tthis.markedSimplices.add(simplex);\r\n\t\t\t} else {\r\n\t\t\t\tU sigma_j = simplex;\r\n\t\t\t\tU sigma_i = getMaximumObject(d);\r\n\t\t\t\tint k = stream.getDimension(sigma_i);\r\n\t\t\t\t\r\n\t\t\t\t// store j and d in U[i]\r\n\t\t\t\tthis.T.put(sigma_i, d);\r\n\t\t\t\t\r\n\t\t\t\t// store interval\r\n\t\t\t\tint index_i = stream.getFiltrationIndex(sigma_i);\r\n\t\t\t\tint index_j = stream.getFiltrationIndex(sigma_j);\r\n\t\t\t\t\r\n\t\t\t\tassert (index_i <= index_j);\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t// don't store intervals that are simultaneously created and destroyed\r\n\t\t\t\tif ((index_j - index_i > 0) && k < maxDimension) {\r\n\t\t\t\t\tbarcodeCollection.addInterval(k, index_i, index_j);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfor (U simplex : this.markedSimplices) {\r\n\t\t\tif (!this.T.containsKey(simplex) || this.T.get(simplex).isEmpty()) {\r\n\t\t\t\tint k = stream.getDimension(simplex);\r\n\t\t\t\tif (k < maxDimension) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(k, stream.getFiltrationIndex(simplex));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\t\tthis.T = null;\r\n\t\tthis.markedSimplices = null;\r\n\t\tthis.filteredComparator = null;\r\n\t\t\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\t\r\n\tprivate IntSparseFormalSum<U> removePivotRows(U simplex, AbstractFilteredStream<U> stream) {\r\n\t\tIntSparseFormalSum<U> d = chainModule.createNewSum(stream.getBoundaryCoefficients(simplex), stream.getBoundary(simplex));\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t// remove unmarked terms from d\r\n\t\tfor (TObjectIntIterator<U> iterator = d.iterator(); iterator.hasNext(); ) {\r\n\t\t\titerator.advance();\r\n\t\t\tif (!this.markedSimplices.contains(iterator.key())) {\r\n\t\t\t\titerator.remove();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\tU sigma_i = null;\r\n\t\t\t\tint q = this.field.getZero();\r\n\t\t\t\twhile (!d.isEmpty()) {\r\n\t\t\tsigma_i = getMaximumObject(d);\r\n\t\t\t\r\n\t\t\tif (!this.T.containsKey(sigma_i) || this.T.get(sigma_i).isEmpty()) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tq = T.get(sigma_i).getCoefficient(sigma_i);\r\n\t\t\t\r\n\t\t\t\t\t\tif (field.isZero(q)) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tchainModule.accumulate(d, T.get(sigma_i), field.invert(q));\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\treturn d;\r\n\t}\r\n\r\n\t\r\n\tprivate U getMaximumObject(IntSparseFormalSum<U> chain) {\r\n\t\tU maxObject = null;\r\n\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\tfor (TObjectIntIterator<U> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\titerator.advance();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(iterator.key(), maxObject) > 0) {\r\n\t\t\t\tmaxObject = iterator.key();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\treturn maxObject;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/IntPersistenceAlgorithm.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.streams.utility.FilteredComparator;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\r\nimport gnu.trove.TObjectIntIterator;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * This class defines the functionality for a persistence algorithm with underlying\r\n * field type being int and underlying basis element type being U.\r\n * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm\r\n * and the actual implementations of the persistent homology/cohomology algorithms.\r\n * \r\n * <p>int the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n * \r\n * @author autogen\r\n *\r\n */\r\npublic abstract class IntPersistenceAlgorithm<U> extends AbstractPersistenceBasisAlgorithm<U, IntSparseFormalSum<U>> {\r\n\t\t/**\r\n\t * This is the field over which we perform the arithmetic computations.\r\n\t */\r\n\tprotected final IntAbstractField field;\r\n\t\t\r\n\t/**\r\n\t * This objects performs the chain computations.\r\n\t */\r\n\tprotected final IntAlgebraicFreeModule<U> chainModule;\r\n\t\r\n\t/**\r\n\t * This comparator defines the ordering on the basis elements.\r\n\t */\r\n\tprotected final Comparator<U> basisComparator;\r\n\t\r\n\t/**\r\n\t * This comparator provides the dictionary ordering on filtration value - basis element\r\n\t * pairs.\r\n\t */\r\n\tprotected Comparator<U> filteredComparator = null;\r\n\r\n\t/**\r\n\t * This stores the minimum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int minDimension = 0;\r\n\t\r\n\t/**\r\n\t * This stores the maximum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int maxDimension = 2;\t\r\n\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type int\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic IntPersistenceAlgorithm(IntAbstractField field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.field = field;\r\n\t\tthis.chainModule = new IntAlgebraicFreeModule<U>(this.field);\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function simply updates the filtered comparator to the one induced by the given filtered stream.\r\n\t * \r\n\t * @param stream the AbstractFilteredStream that provides the filtration index information\r\n\t */\r\n\tprotected void initializeFilteredComparator(AbstractFilteredStream<U> stream) {\r\n\t\tthis.filteredComparator = new FilteredComparator<U>(stream, this.basisComparator);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the free module used for the arithmetic computations.\r\n\t * \r\n\t * @return the free module over chains in U\r\n\t */\r\n\tpublic IntAlgebraicFreeModule<U> getChainModule() {\r\n\t\treturn this.chainModule;\r\n\t}\r\n\t\r\n\t\t/**\r\n\t * This function returns the field over which the homology is computed.\r\n\t * \r\n\t * @return the field over type int\r\n\t */\r\n\tpublic IntAbstractField getField() {\r\n\t\treturn this.field;\r\n\t}\r\n\t\t\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\treturn this.computeIntervalsImpl(stream);\r\n\t}\r\n\r\n\tpublic AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> computeAnnotatedIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\treturn this.computeAnnotatedIntervalsImpl(stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function provides the implementation of computeIntervals.\r\n\t * \r\n\t * @param stream the filtered chain complex \r\n\t * @return the persistence intervals of the given complex\r\n\t */\r\n\tprotected abstract BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<U> stream);\r\n\t\r\n\t/**\r\n\t * This function provides the implementation of computeAnnotatedIntervals.\r\n\t * \r\n\t * @param stream the filtered chain complex\r\n\t * @return the augmented persistence intervals\r\n\t */\r\n\tprotected abstract AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> computeAnnotatedIntervalsImpl(AbstractFilteredStream<U> stream);\r\n\t\r\n\t/**\r\n\t * This function computes the operation low_A(j) as described in the paper. Note that if\r\n\t * the chain is empty (for example the column contains only zeros), then this function\r\n\t * returns null.\r\n\t * \r\n\t * @param chain the chain to search\r\n\t * @return  the lowest element of the chain\r\n\t */\r\n\tprotected U low(IntSparseFormalSum<U> chain) {\r\n\t\r\n\t\tU maxObject = null;\r\n\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\tfor (TObjectIntIterator<U> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\titerator.advance();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(iterator.key(), maxObject) > 0) {\r\n\t\t\t\tmaxObject = iterator.key();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\treturn maxObject;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/IntPersistentHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\nimport java.util.Set;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\nimport gnu.trove.THashSet;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * This class defines the functionality for a persistence algorithm with underlying\r\n * field type being int and underlying basis element type being U.\r\n * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm\r\n * and the actual implementations of the persistent homology/cohomology algorithms.\r\n *  \r\n * <p>int the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n * \r\n * @author autogen\r\n *\r\n */\r\npublic abstract class IntPersistentHomology<U> extends IntPersistenceAlgorithm<U> {\r\n\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type int\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic IntPersistentHomology(IntAbstractField field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> computeAnnotatedIntervalsImpl(AbstractFilteredStream<U> stream) {\r\n\t\treturn this.getAnnotatedIntervals(this.pHcol(stream), stream);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<U> stream) {\r\n\t\treturn this.getIntervals(this.pHcol(stream), stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function implements the pHcol algorithm described in the paper. It computes the decomposition\r\n\t * R = D * V, where D is the boundary matrix, R is reduced, and is invertible and upper triangular.\r\n\t * This function returns the pair (R, V). Note that in our implementation, we represent a matrix by\r\n\t * a hash map which maps a generating object to a formal sum which corresponds to a column in the matrix.\r\n\t * Note that this is simply a sparse representation of a linear transformation on a vector space with\r\n\t * free basis consisting of elements of type U.\r\n\t * \r\n\t * @param stream the filtered chain complex which provides elements in increasing filtration order\r\n\t * @return a ObjectObjectPair containing the matrices R and V\r\n\t */\r\n\tprivate ObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, THashMap<U, IntSparseFormalSum<U>>> pHcol(AbstractFilteredStream<U> stream) {\r\n\r\n\t\tTHashMap<U, IntSparseFormalSum<U>> R = new THashMap<U, IntSparseFormalSum<U>>();\r\n\t\tTHashMap<U, IntSparseFormalSum<U>> V = new THashMap<U, IntSparseFormalSum<U>>();\r\n\r\n\t\t/**\r\n\t\t * This maps a simplex to the set of columns containing the key as its low value.\r\n\t\t */\r\n\t\tTHashMap<U, THashSet<U>> lowMap = new THashMap<U, THashSet<U>>();\r\n\r\n\t\tfor (U i : stream) {\r\n\t\t\t/*\r\n\t\t\t * Do not process simplices of higher dimension than maxDimension.\r\n\t\t\t */\r\n\t\t\tif (stream.getDimension(i) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(i) > this.maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// initialize V to be the identity matrix\r\n\t\t\t\t\t\tV.put(i, this.chainModule.createNewSum(this.field.valueOf(1), i));\r\n\t\t\t\r\n\t\t\t// form the column R[i] which equals the boundary of the current simplex.\r\n\t\t\t// store the column as a column in R\r\n\t\t\tR.put(i, chainModule.createNewSum(stream.getBoundaryCoefficients(i), stream.getBoundary(i)));\r\n\r\n\t\t\t// compute low_R(i)\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\r\n\t\t\t// if the boundary of i is empty, then continue to next iteration since there\r\n\t\t\t// is nothing to process\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tTHashSet<U> matchingLowSimplices = lowMap.get(low_R_i);\r\n\t\t\twhile (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) {\r\n\t\t\t\tIterator<U> iterator = matchingLowSimplices.iterator();\r\n\t\t\t\t/**\r\n\t\t\t\t * TODO: Is this the right thing to do???\r\n\t\t\t\t * Ie. should the iterator.next go at the end of the loop?\r\n\t\t\t\t */\r\n\t\t\t\tU j = iterator.next();\r\n\r\n\t\t\t\t\t\t\t\tint c = field.divide(R.get(i).getCoefficient(low_R_i), R.get(j).getCoefficient(low_R_i));\r\n\t\t\t\tint negative_c = field.negate(c);\r\n\t\t\t\t\t\t\t\t//R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j))));\r\n\t\t\t\t//V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j))));\r\n\t\t\t\tthis.chainModule.accumulate(R.get(i), R.get(j), negative_c);\r\n\t\t\t\tthis.chainModule.accumulate(V.get(i), V.get(j), negative_c);\r\n\r\n\t\t\t\t// remove old low_R(i) entry\r\n\t\t\t\t//lowMap.get(low_R_i).remove(i);\r\n\r\n\t\t\t\t// recompute low_R(i)\r\n\t\t\t\tlow_R_i = this.low(R.get(i));\r\n\r\n\t\t\t\tmatchingLowSimplices = lowMap.get(low_R_i);\r\n\t\t\t}\r\n\r\n\t\t\t// store the low value in the map\r\n\t\t\tif (low_R_i != null) {\r\n\t\t\t\tif (!lowMap.containsKey(low_R_i)) {\r\n\t\t\t\t\tlowMap.put(low_R_i, new THashSet<U>());\r\n\t\t\t\t}\r\n\t\t\t\tlowMap.get(low_R_i).add(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// at this point we have computed the decomposition R = D * V\r\n\t\t// we return the pair (R, V)\r\n\r\n\t\treturn new ObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, THashMap<U, IntSparseFormalSum<U>>>(R, V);\r\n\t}\r\n\t\r\n\tprotected abstract AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getAnnotatedIntervals(ObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, IntSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream);\r\n\r\n\tprotected abstract BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, IntSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream);\r\n\r\n\tprotected AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, IntSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream, \r\n\t\t\tboolean absolute) {\r\n\t\t\t\r\n\t\tAnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> barcodeCollection = new AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>>();\r\n\r\n\t\tTHashMap<U, IntSparseFormalSum<U>> R = RV_pair.getFirst();\r\n\t\tTHashMap<U, IntSparseFormalSum<U>> V = RV_pair.getSecond();\r\n\r\n\t\tSet<U> births = new THashSet<U>();\r\n\r\n\t\tfor (U i: stream) {\r\n\t\t\tif (!R.containsKey(i)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\t\tbirths.add(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// simplex i kills low_R_i\r\n\t\t\t\tbirths.remove(low_R_i);\r\n\t\t\t\tbirths.remove(i);\r\n\t\t\t\tint start = stream.getFiltrationIndex(low_R_i);\r\n\t\t\t\tint end = stream.getFiltrationIndex(i);\r\n\t\t\t\tif (end > start) {\r\n\t\t\t\t\tif (absolute) {\r\n\t\t\t\t\t\tdimension = stream.getDimension(low_R_i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdimension = stream.getDimension(i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(dimension, start, end, V.get(i));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the elements in birth are the ones that are never killed\r\n\t\t// these correspond to semi-infinite intervals\r\n\t\tfor (U i: births) {\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\tif (absolute) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbarcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\r\n\tprotected BarcodeCollection<Integer> getIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, IntSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream, \r\n\t\t\tboolean absolute) {\r\n\t\t\t\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\r\n\t\tTHashMap<U, IntSparseFormalSum<U>> R = RV_pair.getFirst();\r\n\r\n\t\tSet<U> births = new THashSet<U>();\r\n\r\n\t\tfor (U i: stream) {\r\n\t\t\tif (!R.containsKey(i)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\t\tbirths.add(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// simplex i kills low_R_i\r\n\t\t\t\tbirths.remove(low_R_i);\r\n\t\t\t\tbirths.remove(i);\r\n\t\t\t\tint start = stream.getFiltrationIndex(low_R_i);\r\n\t\t\t\tint end = stream.getFiltrationIndex(i);\r\n\t\t\t\tif (end > start) {\r\n\t\t\t\t\tif (absolute) {\r\n\t\t\t\t\t\tdimension = stream.getDimension(low_R_i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(stream.getDimension(low_R_i), start, end);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdimension = stream.getDimension(i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(dimension, start, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the elements in birth are the ones that are never killed\r\n\t\t// these correspond to semi-infinite intervals\r\n\t\tfor (U i: births) {\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\tif (absolute) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbarcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/IntRelativeHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\n\r\n\r\n\r\n\r\n\r\npublic class IntRelativeHomology<U> extends IntPersistentHomology<U> {\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type int\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic IntRelativeHomology(IntAbstractField field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, IntSparseFormalSum<U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getAnnotatedIntervals(RV_pair, stream, false);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, IntSparseFormalSum<U>>, \r\n\t\t\tTHashMap<U, IntSparseFormalSum<U>>> RV_pair,\r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getIntervals(RV_pair, stream, false);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/ObjectAbsoluteHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\n\r\n\r\n\r\n\r\n\r\npublic class ObjectAbsoluteHomology<F, U> extends ObjectPersistentHomology<F, U> {\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type F\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic ObjectAbsoluteHomology(ObjectAbstractField<F> field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, \r\n\t\t\tTHashMap<U, ObjectSparseFormalSum<F, U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getAnnotatedIntervals(RV_pair, stream, true);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, \r\n\t\t\tTHashMap<U, ObjectSparseFormalSum<F, U>>> RV_pair,\r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getIntervals(RV_pair, stream, true);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/ObjectClassicalHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\nimport java.util.Map;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.streams.utility.FilteredComparator;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\nimport gnu.trove.THashMap;\r\nimport gnu.trove.THashSet;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * <p>This class performs the persistent homology algorithm as outlined in\r\n * the paper \"Computing Persistent Homology\" by Zomorodian and Carlsson.</p>\r\n * \r\n * <p>F the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n *\r\n * @author autogen\r\n *\r\n * \r\n */\r\npublic class ObjectClassicalHomology<F, U> extends AbstractPersistenceAlgorithm<U> {\r\n\t\tprotected final ObjectAbstractField<F> field;\r\n\t\tprivate final ObjectAlgebraicFreeModule<F, U> chainModule;\r\n\tprivate final Comparator<U> basisComparator;\r\n\tprivate final int maxDimension;\r\n\tprivate final int minDimension;\r\n\t\r\n\tprivate THashSet<U> markedSimplices = null;\r\n\tprivate THashMap<U, ObjectSparseFormalSum<F, U>> T = null;\r\n\tprivate Comparator<U> filteredComparator = null;\r\n\t\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type F\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic ObjectClassicalHomology(ObjectAbstractField<F> field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.field = field;\r\n\t\tthis.chainModule = new ObjectAlgebraicFreeModule<F, U>(this.field);\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t\t\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\t\t\r\n\t\tthis.filteredComparator = new FilteredComparator<U>(stream, this.basisComparator);\r\n\t\tthis.markedSimplices = new THashSet<U>();\r\n\t\tthis.T = new THashMap<U, ObjectSparseFormalSum<F, U>>();\r\n\t\t\r\n\t\tfor (U simplex : stream) {\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(simplex) > maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(simplex) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t * Translation from paper:\r\n\t\t\t * \r\n\t\t\t * sigma_j = simplex\r\n\t\t\t * sigma_i = d.maxObject();\r\n\t\t\t * \r\n\t\t\t */\r\n\r\n\t\t\tthis.T.remove(simplex);\r\n\t\t\t\r\n\t\t\tObjectSparseFormalSum<F, U> d = this.removePivotRows(simplex, stream);\r\n\t\t\t\r\n\t\t\tif (d.isEmpty()) {\r\n\t\t\t\tthis.markedSimplices.add(simplex);\r\n\t\t\t} else {\r\n\t\t\t\tU sigma_j = simplex;\r\n\t\t\t\tU sigma_i = getMaximumObject(d);\r\n\t\t\t\tint k = stream.getDimension(sigma_i);\r\n\t\t\t\t\r\n\t\t\t\t// store j and d in U[i]\r\n\t\t\t\tthis.T.put(sigma_i, d);\r\n\t\t\t\t\r\n\t\t\t\t// store interval\r\n\t\t\t\tint index_i = stream.getFiltrationIndex(sigma_i);\r\n\t\t\t\tint index_j = stream.getFiltrationIndex(sigma_j);\r\n\t\t\t\t\r\n\t\t\t\tassert (index_i <= index_j);\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t// don't store intervals that are simultaneously created and destroyed\r\n\t\t\t\tif ((index_j - index_i > 0) && k < maxDimension) {\r\n\t\t\t\t\tbarcodeCollection.addInterval(k, index_i, index_j);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfor (U simplex : this.markedSimplices) {\r\n\t\t\tif (!this.T.containsKey(simplex) || this.T.get(simplex).isEmpty()) {\r\n\t\t\t\tint k = stream.getDimension(simplex);\r\n\t\t\t\tif (k < maxDimension) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(k, stream.getFiltrationIndex(simplex));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\t\tthis.T = null;\r\n\t\tthis.markedSimplices = null;\r\n\t\tthis.filteredComparator = null;\r\n\t\t\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\t\r\n\tprivate ObjectSparseFormalSum<F, U> removePivotRows(U simplex, AbstractFilteredStream<U> stream) {\r\n\t\tObjectSparseFormalSum<F, U> d = chainModule.createNewSum(stream.getBoundaryCoefficients(simplex), stream.getBoundary(simplex));\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\tfor (Iterator<Map.Entry<U, F>> iterator = d.iterator(); iterator.hasNext(); ) {\r\n\t\t\tMap.Entry<U, F> entry = iterator.next();\r\n\t\t\t\r\n\t\t\tif (!this.markedSimplices.contains(entry.getKey())) {\r\n\t\t\t\titerator.remove();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\tU sigma_i = null;\r\n\t\t\t\tF q = this.field.getZero();\r\n\t\t\t\twhile (!d.isEmpty()) {\r\n\t\t\tsigma_i = getMaximumObject(d);\r\n\t\t\t\r\n\t\t\tif (!this.T.containsKey(sigma_i) || this.T.get(sigma_i).isEmpty()) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tq = T.get(sigma_i).getCoefficient(sigma_i);\r\n\t\t\t\r\n\t\t\t\t\t\tif (field.isZero(q)) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tchainModule.accumulate(d, T.get(sigma_i), field.invert(q));\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\treturn d;\r\n\t}\r\n\r\n\t\r\n\tprivate U getMaximumObject(ObjectSparseFormalSum<F, U> chain) {\r\n\t\tU maxObject = null;\r\n\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\tfor (Iterator<Map.Entry<U, F>> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\tMap.Entry<U, F> entry = iterator.next();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(entry.getKey(), maxObject) > 0) {\r\n\t\t\t\tmaxObject = entry.getKey();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\treturn maxObject;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/ObjectPersistenceAlgorithm.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\nimport java.util.Map;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.streams.utility.FilteredComparator;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * This class defines the functionality for a persistence algorithm with underlying\r\n * field type being F and underlying basis element type being U.\r\n * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm\r\n * and the actual implementations of the persistent homology/cohomology algorithms.\r\n * \r\n * <p>F the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n * \r\n * @author autogen\r\n *\r\n */\r\npublic abstract class ObjectPersistenceAlgorithm<F, U> extends AbstractPersistenceBasisAlgorithm<U, ObjectSparseFormalSum<F, U>> {\r\n\t\t/**\r\n\t * This is the field over which we perform the arithmetic computations.\r\n\t */\r\n\tprotected final ObjectAbstractField<F> field;\r\n\t\t\r\n\t/**\r\n\t * This objects performs the chain computations.\r\n\t */\r\n\tprotected final ObjectAlgebraicFreeModule<F, U> chainModule;\r\n\t\r\n\t/**\r\n\t * This comparator defines the ordering on the basis elements.\r\n\t */\r\n\tprotected final Comparator<U> basisComparator;\r\n\t\r\n\t/**\r\n\t * This comparator provides the dictionary ordering on filtration value - basis element\r\n\t * pairs.\r\n\t */\r\n\tprotected Comparator<U> filteredComparator = null;\r\n\r\n\t/**\r\n\t * This stores the minimum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int minDimension = 0;\r\n\t\r\n\t/**\r\n\t * This stores the maximum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int maxDimension = 2;\t\r\n\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type F\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic ObjectPersistenceAlgorithm(ObjectAbstractField<F> field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.field = field;\r\n\t\tthis.chainModule = new ObjectAlgebraicFreeModule<F, U>(this.field);\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function simply updates the filtered comparator to the one induced by the given filtered stream.\r\n\t * \r\n\t * @param stream the AbstractFilteredStream that provides the filtration index information\r\n\t */\r\n\tprotected void initializeFilteredComparator(AbstractFilteredStream<U> stream) {\r\n\t\tthis.filteredComparator = new FilteredComparator<U>(stream, this.basisComparator);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the free module used for the arithmetic computations.\r\n\t * \r\n\t * @return the free module over chains in U\r\n\t */\r\n\tpublic ObjectAlgebraicFreeModule<F, U> getChainModule() {\r\n\t\treturn this.chainModule;\r\n\t}\r\n\t\r\n\t\t/**\r\n\t * This function returns the field over which the homology is computed.\r\n\t * \r\n\t * @return the field over type F\r\n\t */\r\n\tpublic ObjectAbstractField<F> getField() {\r\n\t\treturn this.field;\r\n\t}\r\n\t\t\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\treturn this.computeIntervalsImpl(stream);\r\n\t}\r\n\r\n\tpublic AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>> computeAnnotatedIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\treturn this.computeAnnotatedIntervalsImpl(stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function provides the implementation of computeIntervals.\r\n\t * \r\n\t * @param stream the filtered chain complex \r\n\t * @return the persistence intervals of the given complex\r\n\t */\r\n\tprotected abstract BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<U> stream);\r\n\t\r\n\t/**\r\n\t * This function provides the implementation of computeAnnotatedIntervals.\r\n\t * \r\n\t * @param stream the filtered chain complex\r\n\t * @return the augmented persistence intervals\r\n\t */\r\n\tprotected abstract AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>> computeAnnotatedIntervalsImpl(AbstractFilteredStream<U> stream);\r\n\t\r\n\t/**\r\n\t * This function computes the operation low_A(j) as described in the paper. Note that if\r\n\t * the chain is empty (for example the column contains only zeros), then this function\r\n\t * returns null.\r\n\t * \r\n\t * @param chain the chain to search\r\n\t * @return  the lowest element of the chain\r\n\t */\r\n\tprotected U low(ObjectSparseFormalSum<F, U> chain) {\r\n\t\r\n\t\tU maxObject = null;\r\n\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\tfor (Iterator<Map.Entry<U, F>> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\tMap.Entry<U, F> entry = iterator.next();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(entry.getKey(), maxObject) > 0) {\r\n\t\t\t\tmaxObject = entry.getKey();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\treturn maxObject;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/ObjectPersistentHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\nimport java.util.Set;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\nimport gnu.trove.THashSet;\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * This class defines the functionality for a persistence algorithm with underlying\r\n * field type being F and underlying basis element type being U.\r\n * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm\r\n * and the actual implementations of the persistent homology/cohomology algorithms.\r\n *  \r\n * <p>F the underlying type of the coefficient field</p>\r\n * <p>U the underlying basis type</p>\r\n * \r\n * @author autogen\r\n *\r\n */\r\npublic abstract class ObjectPersistentHomology<F, U> extends ObjectPersistenceAlgorithm<F, U> {\r\n\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type F\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic ObjectPersistentHomology(ObjectAbstractField<F> field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>> computeAnnotatedIntervalsImpl(AbstractFilteredStream<U> stream) {\r\n\t\treturn this.getAnnotatedIntervals(this.pHcol(stream), stream);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<U> stream) {\r\n\t\treturn this.getIntervals(this.pHcol(stream), stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function implements the pHcol algorithm described in the paper. It computes the decomposition\r\n\t * R = D * V, where D is the boundary matrix, R is reduced, and is invertible and upper triangular.\r\n\t * This function returns the pair (R, V). Note that in our implementation, we represent a matrix by\r\n\t * a hash map which maps a generating object to a formal sum which corresponds to a column in the matrix.\r\n\t * Note that this is simply a sparse representation of a linear transformation on a vector space with\r\n\t * free basis consisting of elements of type U.\r\n\t * \r\n\t * @param stream the filtered chain complex which provides elements in increasing filtration order\r\n\t * @return a ObjectObjectPair containing the matrices R and V\r\n\t */\r\n\tprivate ObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, THashMap<U, ObjectSparseFormalSum<F, U>>> pHcol(AbstractFilteredStream<U> stream) {\r\n\r\n\t\tTHashMap<U, ObjectSparseFormalSum<F, U>> R = new THashMap<U, ObjectSparseFormalSum<F, U>>();\r\n\t\tTHashMap<U, ObjectSparseFormalSum<F, U>> V = new THashMap<U, ObjectSparseFormalSum<F, U>>();\r\n\r\n\t\t/**\r\n\t\t * This maps a simplex to the set of columns containing the key as its low value.\r\n\t\t */\r\n\t\tTHashMap<U, THashSet<U>> lowMap = new THashMap<U, THashSet<U>>();\r\n\r\n\t\tfor (U i : stream) {\r\n\t\t\t/*\r\n\t\t\t * Do not process simplices of higher dimension than maxDimension.\r\n\t\t\t */\r\n\t\t\tif (stream.getDimension(i) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(i) > this.maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// initialize V to be the identity matrix\r\n\t\t\t\t\t\tV.put(i, this.chainModule.createNewSum(this.field.valueOf(1), i));\r\n\t\t\t\r\n\t\t\t// form the column R[i] which equals the boundary of the current simplex.\r\n\t\t\t// store the column as a column in R\r\n\t\t\tR.put(i, chainModule.createNewSum(stream.getBoundaryCoefficients(i), stream.getBoundary(i)));\r\n\r\n\t\t\t// compute low_R(i)\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\r\n\t\t\t// if the boundary of i is empty, then continue to next iteration since there\r\n\t\t\t// is nothing to process\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tTHashSet<U> matchingLowSimplices = lowMap.get(low_R_i);\r\n\t\t\twhile (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) {\r\n\t\t\t\tIterator<U> iterator = matchingLowSimplices.iterator();\r\n\t\t\t\t/**\r\n\t\t\t\t * TODO: Is this the right thing to do???\r\n\t\t\t\t * Ie. should the iterator.next go at the end of the loop?\r\n\t\t\t\t */\r\n\t\t\t\tU j = iterator.next();\r\n\r\n\t\t\t\t\t\t\t\tF c = field.divide(R.get(i).getCoefficient(low_R_i), R.get(j).getCoefficient(low_R_i));\r\n\t\t\t\tF negative_c = field.negate(c);\r\n\t\t\t\t\t\t\t\t//R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j))));\r\n\t\t\t\t//V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j))));\r\n\t\t\t\tthis.chainModule.accumulate(R.get(i), R.get(j), negative_c);\r\n\t\t\t\tthis.chainModule.accumulate(V.get(i), V.get(j), negative_c);\r\n\r\n\t\t\t\t// remove old low_R(i) entry\r\n\t\t\t\t//lowMap.get(low_R_i).remove(i);\r\n\r\n\t\t\t\t// recompute low_R(i)\r\n\t\t\t\tlow_R_i = this.low(R.get(i));\r\n\r\n\t\t\t\tmatchingLowSimplices = lowMap.get(low_R_i);\r\n\t\t\t}\r\n\r\n\t\t\t// store the low value in the map\r\n\t\t\tif (low_R_i != null) {\r\n\t\t\t\tif (!lowMap.containsKey(low_R_i)) {\r\n\t\t\t\t\tlowMap.put(low_R_i, new THashSet<U>());\r\n\t\t\t\t}\r\n\t\t\t\tlowMap.get(low_R_i).add(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// at this point we have computed the decomposition R = D * V\r\n\t\t// we return the pair (R, V)\r\n\r\n\t\treturn new ObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, THashMap<U, ObjectSparseFormalSum<F, U>>>(R, V);\r\n\t}\r\n\t\r\n\tprotected abstract AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>> getAnnotatedIntervals(ObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, \r\n\t\t\tTHashMap<U, ObjectSparseFormalSum<F, U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream);\r\n\r\n\tprotected abstract BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, \r\n\t\t\tTHashMap<U, ObjectSparseFormalSum<F, U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream);\r\n\r\n\tprotected AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, \r\n\t\t\tTHashMap<U, ObjectSparseFormalSum<F, U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream, \r\n\t\t\tboolean absolute) {\r\n\t\t\t\r\n\t\tAnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>> barcodeCollection = new AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>>();\r\n\r\n\t\tTHashMap<U, ObjectSparseFormalSum<F, U>> R = RV_pair.getFirst();\r\n\t\tTHashMap<U, ObjectSparseFormalSum<F, U>> V = RV_pair.getSecond();\r\n\r\n\t\tSet<U> births = new THashSet<U>();\r\n\r\n\t\tfor (U i: stream) {\r\n\t\t\tif (!R.containsKey(i)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\t\tbirths.add(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// simplex i kills low_R_i\r\n\t\t\t\tbirths.remove(low_R_i);\r\n\t\t\t\tbirths.remove(i);\r\n\t\t\t\tint start = stream.getFiltrationIndex(low_R_i);\r\n\t\t\t\tint end = stream.getFiltrationIndex(i);\r\n\t\t\t\tif (end > start) {\r\n\t\t\t\t\tif (absolute) {\r\n\t\t\t\t\t\tdimension = stream.getDimension(low_R_i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdimension = stream.getDimension(i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(dimension, start, end, V.get(i));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the elements in birth are the ones that are never killed\r\n\t\t// these correspond to semi-infinite intervals\r\n\t\tfor (U i: births) {\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\tif (absolute) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbarcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\r\n\tprotected BarcodeCollection<Integer> getIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, \r\n\t\t\tTHashMap<U, ObjectSparseFormalSum<F, U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream, \r\n\t\t\tboolean absolute) {\r\n\t\t\t\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\r\n\t\tTHashMap<U, ObjectSparseFormalSum<F, U>> R = RV_pair.getFirst();\r\n\r\n\t\tSet<U> births = new THashSet<U>();\r\n\r\n\t\tfor (U i: stream) {\r\n\t\t\tif (!R.containsKey(i)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tU low_R_i = this.low(R.get(i));\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\t\tbirths.add(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// simplex i kills low_R_i\r\n\t\t\t\tbirths.remove(low_R_i);\r\n\t\t\t\tbirths.remove(i);\r\n\t\t\t\tint start = stream.getFiltrationIndex(low_R_i);\r\n\t\t\t\tint end = stream.getFiltrationIndex(i);\r\n\t\t\t\tif (end > start) {\r\n\t\t\t\t\tif (absolute) {\r\n\t\t\t\t\t\tdimension = stream.getDimension(low_R_i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(stream.getDimension(low_R_i), start, end);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdimension = stream.getDimension(i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(dimension, start, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the elements in birth are the ones that are never killed\r\n\t\t// these correspond to semi-infinite intervals\r\n\t\tfor (U i: births) {\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\tif (absolute) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbarcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/autogen/homology/ObjectRelativeHomology.java",
    "content": "package edu.stanford.math.plex4.autogen.homology;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport gnu.trove.THashMap;\r\n\r\n\r\n\r\n\r\n\r\npublic class ObjectRelativeHomology<F, U> extends ObjectPersistentHomology<F, U> {\r\n\t\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type F\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic ObjectRelativeHomology(ObjectAbstractField<F> field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<F, U>> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, \r\n\t\t\tTHashMap<U, ObjectSparseFormalSum<F, U>>> RV_pair, \r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getAnnotatedIntervals(RV_pair, stream, false);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<U, ObjectSparseFormalSum<F, U>>, \r\n\t\t\tTHashMap<U, ObjectSparseFormalSum<F, U>>> RV_pair,\r\n\t\t\tAbstractFilteredStream<U> stream) {\r\n\t\t\t\r\n\t\treturn this.getIntervals(RV_pair, stream, false);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/bottleneck/BottleneckDistance.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\n\nimport java.util.ArrayList;\nimport java.util.Arrays;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.primitivelib.utility.Infinity;\n\npublic class BottleneckDistance {\n\t\n\tpublic static List<Interval<Double>> truncate(List<Interval<Double>> A, double minimumValue, double maximumValue) {\n\t\tList<Interval<Double>> result = new ArrayList<Interval<Double>>();\n\t\t\n\t\tdouble start, end;\n\t\t\n\t\tfor (Interval<Double> interval: A) {\n\t\t\tif (interval.isLeftInfinite()) {\n\t\t\t\tstart = minimumValue;\n\t\t\t} else {\n\t\t\t\tstart = Math.max(minimumValue, interval.getStart());\n\t\t\t}\n\t\t\t\n\t\t\tif (interval.isRightInfinite()) {\n\t\t\t\tend = maximumValue;\n\t\t\t} else {\n\t\t\t\tend = Math.min(maximumValue, interval.getEnd());\n\t\t\t}\n\t\t\t\n\t\t\tresult.add(Interval.makeFiniteRightOpenInterval(start, end));\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static List<Interval<Double>> filterLargest(List<Interval<Double>> A, int N) {\n\t\tif (A.size() <= N) {\n\t\t\treturn A;\n\t\t}\n\t\t\n\t\tdouble[] diagonalDistances = new double[A.size()];\n\t\t\n\t\tfor (int i = 0; i < A.size(); i++) {\n\t\t\tInterval<Double> interval = A.get(i);\n\t\t\tdiagonalDistances[i] = BottleneckDistance.distanceToDiagonal(interval);\n\t\t}\n\t\t\n\t\tArrays.sort(diagonalDistances);\n\t\t\n\t\tdouble minimumDiagonalDistance = diagonalDistances[diagonalDistances.length - N];\n\t\t\n\t\tList<Interval<Double>> result = new ArrayList<Interval<Double>>();\n\t\t\n\t\tfor (int i = 0; i < A.size(); i++) {\n\t\t\tInterval<Double> interval = A.get(i);\n\t\t\tdouble distance = BottleneckDistance.distanceToDiagonal(interval);\n\t\t\t\n\t\t\tif (distance >= minimumDiagonalDistance) {\n\t\t\t\tresult.add(interval);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n  public static double computeBottleneckDistance(double[][] A, double[][] B) {\n    \n    List<Interval<Double>> intA = new ArrayList<Interval<Double>>();\n    List<Interval<Double>> intB = new ArrayList<Interval<Double>>();\n    \n    for(double[] element : A) {\n      intA.add(Interval.makeFiniteClosedInterval(element[0], element[1]));\n    }\n    \n    for(double[] element : B) {\n      intB.add(Interval.makeFiniteClosedInterval(element[0], element[1]));\n    }\n\n    return computeBottleneckDistance(intA, intB);\n  }\n  \n\tpublic static double computeBottleneckDistance(List<Interval<Double>> A, List<Interval<Double>> B) {\n\t\t\n\t\tint a = A.size();\n\t\tint b = B.size();\n\t\t\n\t\tint n = a + b;\n\t\t\n\t\tWeightedBipartiteGraph graph = new WeightedBipartiteGraph(n);\n\t\t\n\t\tdouble distance = 0;\n\t\t\n\t\tfor (int i = 0; i < a; i++) {\n\t\t\tfor (int j = 0; j < b; j++) {\n\t\t\t\tdistance = BottleneckDistance.distance(A.get(i), B.get(j));\n\t\t\t\tgraph.addEdge(i, j, distance);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfor (int i = 0; i < a; i++) {\n\t\t\tdistance = BottleneckDistance.distanceToDiagonal(A.get(i));\n\t\t\tgraph.addEdge(i, b + i, distance);\n\t\t}\n\t\t\n\t\tfor (int j = 0; j < b; j++) {\n\t\t\tdistance = BottleneckDistance.distanceToDiagonal(B.get(j));\n\t\t\tgraph.addEdge(a + j, j, distance);\n\t\t}\n\t\t\n\t\tfor (int i = 0; i < a; i++) {\n\t\t\tfor (int j = 0; j < b; j++) {\n\t\t\t\tgraph.addEdge(a + j, b + i, 0);\n\t\t\t}\n\t\t}\n\t\t\n\t\tdouble bottleneckDistance = graph.computePerfectMatchingThreshold();\n\t\t\n\t\treturn bottleneckDistance;\n\t}\n\t\n\tstatic double distanceToDiagonal(Interval<Double> A) {\n\t\tif (!A.isLeftInfinite() && !A.isRightInfinite()) {\n\t\t\treturn 0.5 * Math.abs(A.getEnd() - A.getStart());\n\t\t}\n\t\t\n\t\treturn Infinity.Double.getPositiveInfinity();\n\t}\n\t\n\tstatic double distance(Interval<Double> A, Interval<Double> B) {\n\t\tif (!A.isLeftInfinite() && !B.isRightInfinite() && !A.isRightInfinite() && !B.isRightInfinite()) {\n\t\t\tdouble startDifference = Math.abs(A.getStart() - B.getStart());\n\t\t\tdouble endDifference = Math.abs(A.getEnd() - B.getEnd());\n\t\t\treturn Math.max(startDifference, endDifference);\n\t\t}\n\t\t\n\t\tif (A.isLeftInfinite() && B.isLeftInfinite() && !A.isRightInfinite() && !B.isRightInfinite()) {\n\t\t\treturn Math.abs(A.getEnd() - B.getEnd());\n\t\t}\n\t\t\n\t\tif (!A.isLeftInfinite() && !B.isLeftInfinite() && A.isRightInfinite() && B.isRightInfinite()) {\n\t\t\treturn Math.abs(A.getStart() - B.getStart());\n\t\t}\n\t\t\n\t\treturn Infinity.Double.getPositiveInfinity();\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/bottleneck/FlowEdge.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\n\npublic class FlowEdge {\n\tprivate final int source;\n\tprivate final int dest;\n\tprivate int capacity;\n\t\n\tprivate FlowEdge reverseEdge = null;\n\t\n\tpublic FlowEdge(int source, int dest, int capacity) {\n\t\tthis.source = source;\n\t\tthis.dest = dest;\n\t\tthis.capacity = capacity;\n\t}\n\n\tpublic int getCapacity() {\n\t\treturn capacity;\n\t}\n\n\tpublic void setCapacity(int capacity) {\n\t\tthis.capacity = capacity;\n\t}\n\n\tpublic int getSource() {\n\t\treturn source;\n\t}\n\n\tpublic int getDest() {\n\t\treturn dest;\n\t}\n\n\t@Override\n\tpublic int hashCode() {\n\t\tfinal int prime = 31;\n\t\tint result = 1;\n\t\tresult = prime * result + dest;\n\t\tresult = prime * result + source;\n\t\treturn result;\n\t}\n\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\tFlowEdge other = (FlowEdge) obj;\n\t\tif (dest != other.dest)\n\t\t\treturn false;\n\t\tif (source != other.source)\n\t\t\treturn false;\n\t\treturn true;\n\t}\n\n\tpublic FlowEdge getReverseEdge() {\n\t\treturn reverseEdge;\n\t}\n\n\tpublic void setReverseEdge(FlowEdge reverseEdge) {\n\t\tthis.reverseEdge = reverseEdge;\n\t}\n\n\t@Override\n\tpublic String toString() {\n\t\tStringBuilder builder = new StringBuilder();\n\t\tbuilder.append(\"[\");\n\t\tbuilder.append(source);\n\t\tbuilder.append(\",\");\n\t\tbuilder.append(dest);\n\t\tbuilder.append(\" (\");\n\t\tbuilder.append(capacity);\n\t\tbuilder.append(\")\");\n\t\tbuilder.append(\"]\");\n\t\treturn builder.toString();\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/bottleneck/FlowNetwork.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\n\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectIntPair;\nimport gnu.trove.THashSet;\nimport gnu.trove.TIntObjectHashMap;\nimport gnu.trove.TObjectIntHashMap;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.Set;\n\npublic class FlowNetwork {\n\tTIntObjectHashMap<Set<FlowEdge>> eminatingEdges = new TIntObjectHashMap<Set<FlowEdge>>();\n\t\n\tTObjectIntHashMap<FlowEdge> flowValues = new TObjectIntHashMap<FlowEdge>();\n\t\n\tpublic void addEdge(int source, int destination, int weight) {\n\t\tFlowEdge forwardEdge = new FlowEdge(source, destination, weight);\n\t\tif (!this.eminatingEdges.containsKey(source)) {\n\t\t\tthis.eminatingEdges.put(source, new THashSet<FlowEdge>());\n\t\t}\n\t\t\n\t\tthis.eminatingEdges.get(source).add(forwardEdge);\n\t\t\n\t\tFlowEdge backwardEdge = new FlowEdge(destination, source, 0);\n\t\tif (!this.eminatingEdges.containsKey(destination)) {\n\t\t\tthis.eminatingEdges.put(destination, new THashSet<FlowEdge>());\n\t\t}\n\t\t\n\t\tthis.eminatingEdges.get(destination).add(backwardEdge);\n\t\t\n\t\tthis.flowValues.put(forwardEdge, 0);\n\t\tthis.flowValues.put(backwardEdge, 0);\n\t\t\n\t\tforwardEdge.setReverseEdge(backwardEdge);\n\t\tbackwardEdge.setReverseEdge(forwardEdge);\n\t}\n\t\n\tprotected Set<FlowEdge> getEdges(int source) {\n\t\treturn this.eminatingEdges.get(source);\n\t}\n\t\n\tprotected int getFlow(FlowEdge edge) {\n\t\treturn this.flowValues.get(edge);\n\t}\n\t\n\tprotected void incrementFlow(FlowEdge edge, int increment) {\n\t\tif (!this.flowValues.containsKey(edge)) {\n\t\t\tthis.flowValues.put(edge, increment);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tthis.flowValues.put(edge, this.flowValues.get(edge) + increment);\n\t}\n\t\n\tpublic int maxFlow(int source, int sink) {\n\t\tList<ObjectIntPair<FlowEdge>> path = this.findPath(source, sink, new ArrayList<ObjectIntPair<FlowEdge>>());\n\t\twhile (path != null && !path.isEmpty()) {\n\t\t\tint flow = this.minValue(path);\n\t\t\tfor (ObjectIntPair<FlowEdge> pair: path) {\n\t\t\t\tthis.incrementFlow(pair.getFirst(), flow);\n\t\t\t\tthis.incrementFlow(pair.getFirst().getReverseEdge(), -flow);\n\t\t\t}\n\t\t\t\n\t\t\tpath = this.findPath(source, sink, new ArrayList<ObjectIntPair<FlowEdge>>());\n\t\t}\n\t\t\n\t\tint sum = 0;\n\t\tfor (FlowEdge edge: this.getEdges(source)) {\n\t\t\tsum += this.getFlow(edge);\n\t\t}\n\t\t\n\t\treturn sum;\n\t}\n\t\n\tprotected List<ObjectIntPair<FlowEdge>> findPath(int source, int sink, List<ObjectIntPair<FlowEdge>> path) {\n\t\tif (source == sink) {\n\t\t\treturn path;\n\t\t}\n\t\t\n\t\tfor (FlowEdge edge: this.getEdges(source)) {\n\t\t\tint residual = edge.getCapacity() - this.getFlow(edge);\n\t\t\tObjectIntPair<FlowEdge> pair = new ObjectIntPair<FlowEdge>(edge, residual);\n\t\t\tif (residual > 0 && !this.contains(path, pair)) {\n\t\t\t\tpath.add(pair);\n\t\t\t\tList<ObjectIntPair<FlowEdge>> result = this.findPath(edge.getDest(), sink, path);\n\t\t\t\tif (result != null && !result.isEmpty()) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\tpath.remove(path.size() - 1);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn null;\n\t}\n\t\n\tprotected <T> int minValue(List<ObjectIntPair<T>> list) {\n\t\tint index = 0;\n\t\tint minValue = 0;\n\t\tfor (ObjectIntPair<T> element: list) {\n\t\t\tif (index == 0 || element.getSecond() < minValue) {\n\t\t\t\tminValue = element.getSecond();\n\t\t\t}\n\t\t\tindex++;\n\t\t}\n\t\treturn minValue;\n\t}\n\t\n\tprotected <T> boolean contains(Iterable<T> collection, T edge) {\n\t\tfor (T t: collection) {\n\t\t\tif (t.equals(edge)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn false;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/bottleneck/FordFulkerson.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\r\n\r\n/**\r\n * \r\n * The Ford-Fulkerson Algorithm\r\n * \r\n * \r\n * @author Tim Harrington\r\n * @date Mar 12, 2009\r\n * \r\n * \r\n *       NOTICE: This is from\r\n *       http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.java\r\n *       File: Maxflow.java based on Ford-Fulkerson Method Copyright (C) 1997,\r\n *       1998 K. Ikeda\r\n */\r\n\r\npublic class FordFulkerson {\r\n\r\n\tint n, m;\r\n\tint snode, tnode; /* start node, terminate node */\r\n\tint step;\r\n\tFordFulkersonNode[] v;\r\n\tFordFulkersonEdge[] e;\r\n\r\n\t/**\r\n\t * Inputs a graph to compute max flow/min cut for. The source node must be\r\n\t * v[0] and the sink must be v[v.length-1].\r\n\t * \r\n\t * @param v\r\n\t * @param e\r\n\t */\r\n\tpublic int maxFlow(FordFulkersonNode[] v, FordFulkersonEdge[] e, int snode,\r\n\t\t\tint tnode) {\r\n\t\tthis.v = v;\r\n\t\tthis.e = e;\r\n\t\tthis.m = e.length;\r\n\t\tthis.n = v.length;\r\n\t\tthis.snode = snode;\r\n\t\tthis.tnode = tnode;\r\n\t\trdb();\r\n\t\tsolve();\r\n\t\tint flow = 0;\r\n\t\tfor (int i = 0; i < e.length; i++) {\r\n\t\t\tif (e[i].rndd_minus == tnode) {\r\n\t\t\t\tflow += e[i].flow;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn flow;\r\n\t}\r\n\r\n\tprotected void solve() {\r\n\t\t// initialize\r\n\t\tfor (int i = 0; i < m; i++)\r\n\t\t\te[i].flow = 0;\r\n\t\tstpath();\r\n\t\tstep = 1;\r\n\t\t// find the max flow/min cut\r\n\t\twhile (step != 0) {\r\n\t\t\tif (step == 1) {\r\n\t\t\t\t/* mark an s-t path */\r\n\t\t\t\tif (v[tnode].dist < 0)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tfor (int i = tnode; v[i].prev >= 0; i = v[i].prev) {\r\n\t\t\t\t\te[v[i].p_edge].st++;\r\n\t\t\t\t}\r\n\t\t\t\t/* check the outcome */\r\n\t\t\t\tif (v[tnode].dist < 0) {\r\n\t\t\t\t\tstep = 0;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstep = 2;\r\n\t\t\t\t}\r\n\t\t\t} else if (step == 2) {\r\n\t\t\t\t/* augment the flow */\r\n\t\t\t\tint i, j, a, f;\r\n\r\n\t\t\t\tf = v[tnode].l;\r\n\t\t\t\tfor (i = tnode; (j = v[i].prev) >= 0; i = j) {\r\n\t\t\t\t\ta = v[i].p_edge;\r\n\t\t\t\t\tif (e[a].rndd_minus == i)\r\n\t\t\t\t\t\te[a].flow += f;\r\n\t\t\t\t\telse if (e[a].rndd_plus == i)\r\n\t\t\t\t\t\te[a].flow -= f;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* find an s-t path */\r\n\t\t\t\tstpath();\r\n\r\n\t\t\t\t/* set the next step */\r\n\t\t\t\tstep = 1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected void rdb() {\r\n\t\tint i, k;\r\n\t\tfor (i = 0; i < n; i++)\r\n\t\t\tv[i].delta_plus = v[i].delta_minus = -1;\r\n\t\tfor (i = 0; i < m; i++)\r\n\t\t\te[i].delta_plus = e[i].delta_minus = -1;\r\n\t\tfor (i = 0; i < m; i++) {\r\n\t\t\tk = e[i].rndd_plus;\r\n\t\t\tif (v[k].delta_plus == -1)\r\n\t\t\t\tv[k].delta_plus = i;\r\n\t\t\telse {\r\n\t\t\t\tk = v[k].delta_plus;\r\n\t\t\t\twhile (e[k].delta_plus >= 0)\r\n\t\t\t\t\tk = e[k].delta_plus;\r\n\t\t\t\te[k].delta_plus = i;\r\n\t\t\t}\r\n\t\t\tk = e[i].rndd_minus;\r\n\t\t\tif (v[k].delta_minus == -1)\r\n\t\t\t\tv[k].delta_minus = i;\r\n\t\t\telse {\r\n\t\t\t\tk = v[k].delta_minus;\r\n\t\t\t\twhile (e[k].delta_minus >= 0)\r\n\t\t\t\t\tk = e[k].delta_minus;\r\n\t\t\t\te[k].delta_minus = i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected void stpath() {\r\n\t\tint u[] = new int[1000], ni, no;\r\n\t\tint i, j, d;\r\n\r\n\t\tfor (i = 0; i < n; i++) {\r\n\t\t\tv[i].prev = v[i].dist = -1;\r\n\t\t\tv[i].l = 0;\r\n\t\t}\r\n\t\tfor (i = 0; i < m; i++)\r\n\t\t\te[i].st = -1;\r\n\t\tni = no = 0;\r\n\t\td = 0;\r\n\t\tu[ni] = snode;\r\n\t\tv[snode].dist = 0;\r\n\t\tj = v[snode].delta_plus;\r\n\t\ti = 0;\r\n\t\twhile (j >= 0) {\r\n\t\t\tif (i < e[j].capacity)\r\n\t\t\t\ti = e[j].capacity;\r\n\t\t\tj = e[j].delta_plus;\r\n\t\t}\r\n\t\tv[snode].l = i;\r\n\r\n\t\tfor (; no <= ni; no++) {\r\n\t\t\td = v[u[no]].dist;\r\n\t\t\tfor (j = v[u[no]].delta_plus; j >= 0; j = e[j].delta_plus) {\r\n\t\t\t\tif (e[j].capacity - e[j].flow == 0)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\ti = e[j].rndd_minus;\r\n\t\t\t\tif (v[i].dist < 0) {\r\n\t\t\t\t\tv[i].dist = d + 1;\r\n\t\t\t\t\tv[i].prev = u[no];\r\n\t\t\t\t\tv[i].p_edge = j;\r\n\t\t\t\t\tv[i].l = Math.min(v[u[no]].l, e[j].capacity - e[j].flow);\r\n\t\t\t\t\te[j].st++;\r\n\t\t\t\t\tu[++ni] = i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (j = v[u[no]].delta_minus; j >= 0; j = e[j].delta_minus) {\r\n\t\t\t\tif (e[j].flow == 0)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\ti = e[j].rndd_plus;\r\n\t\t\t\tif (v[i].dist < 0) {\r\n\t\t\t\t\tv[i].dist = d + 1;\r\n\t\t\t\t\tv[i].prev = u[no];\r\n\t\t\t\t\tv[i].p_edge = j;\r\n\t\t\t\t\tv[i].l = Math.min(v[u[no]].l, e[j].flow);\r\n\t\t\t\t\te[j].st++;\r\n\t\t\t\t\tu[++ni] = i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/bottleneck/FordFulkersonEdge.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\r\n\r\n/**\r\n * @author Tim Harrington\r\n * @date Mar 12, 2009\r\n *\r\n * This is from\r\n * http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.java File:\r\n * Maxflow.java based on Ford-Fulkerson Method Copyright (C) 1997, 1998 K. Ikeda\r\n */\r\npublic class FordFulkersonEdge {\r\n\tpublic int rndd_plus; /* initial vertex of this edge */\r\n\tpublic int rndd_minus; /* terminal vertex of this edge */\r\n\tpublic int delta_plus; /* edge starts from rndd_plus */\r\n\tpublic int delta_minus; /* edge terminates at rndd_minus */\r\n\tpublic int capacity; /* capacity */\r\n\tpublic int flow; /* flow */\r\n\tpublic int st;\r\n\r\n\t/*\r\n\t * This field is used to store extra information about the edge and is not\r\n\t * used by the max flow algorithm\r\n\t */\r\n\tpublic double bottleneck = 0;\r\n\r\n\t/**\r\n\t * @param rndd_plus\r\n\t * @param rndd_minus\r\n\t * @param capacity\r\n\t */\r\n\tpublic FordFulkersonEdge(int rndd_plus, int rndd_minus, int capacity) {\r\n\t\tthis.rndd_plus = rndd_plus;\r\n\t\tthis.rndd_minus = rndd_minus;\r\n\t\tthis.capacity = capacity;\r\n\t}\r\n\r\n\tpublic FordFulkersonEdge(int rndd_plus, int rndd_minus, int capacity,\r\n\t\t\tdouble bottleneck) {\r\n\t\tthis.rndd_plus = rndd_plus;\r\n\t\tthis.rndd_minus = rndd_minus;\r\n\t\tthis.capacity = capacity;\r\n\t\tthis.bottleneck = bottleneck;\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\t// return \"from=\"+this.rndd_plus + \" to=\"+this.rndd_plus+\r\n\t\t// \" cap=\"+this.capacity + \" bn=\"+this.bottleneck;\r\n\t\treturn Double.toString(this.bottleneck);\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/bottleneck/FordFulkersonNode.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\r\n\r\n/**\r\n * @author Tim Harrington\r\n * @date Mar 12, 2009\r\n *\r\n * This is from\r\n * http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.java File:\r\n * Maxflow.java based on Ford-Fulkerson Method Copyright (C) 1997, 1998 K. Ikeda\r\n */\r\n\r\npublic class FordFulkersonNode {\r\n\tpublic int delta_plus; /* edge starts from this node */\r\n\tpublic int delta_minus; /* edge terminates at this node */\r\n\tpublic int dist; /* distance from the start node */\r\n\tpublic int prev; /* previous node of the shortest path */\r\n\tpublic int p_edge;\r\n\tpublic int l;\r\n\tpublic String name;\r\n\r\n\tpublic FordFulkersonNode(String name) {\r\n\t\tthis.name = name;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"FordFulkersonNode [delta_minus=\" + delta_minus + \", delta_plus=\" + delta_plus + \", dist=\" + dist + \", l=\" + l + \", \"\r\n\t\t\t\t+ (name != null ? \"name=\" + name + \", \" : \"\") + \"p_edge=\" + p_edge + \", prev=\" + prev + \"]\";\r\n\t}\r\n}"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/bottleneck/WeightedBipartiteGraph.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\n\nimport gnu.trove.THashSet;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.List;\nimport java.util.Set;\n\npublic class WeightedBipartiteGraph {\n\tclass WeightedEdge {\n\t\tpublic int source;\n\t\tpublic int destination;\n\t\tpublic double weight;\n\t}\n\n\tprivate final Set<WeightedEdge> edges = new THashSet<WeightedEdge>();\n\tprivate final List<Double> weights = new ArrayList<Double>();\n\n\tprivate final int partitionSize;\n\n\tpublic WeightedBipartiteGraph(int partitionSize) {\n\t\tthis.partitionSize = partitionSize;\n\t}\n\n\tpublic void addEdge(int source, int destination, double weight) {\n\t\tWeightedEdge edge = new WeightedEdge();\n\t\tedge.source = source;\n\t\tedge.destination = destination;\n\t\tedge.weight = weight;\n\n\t\tthis.edges.add(edge);\n\t\tthis.weights.add(weight);\n\t}\n\n\tpublic WeightedBipartiteGraph filterByMaximum(double maximumWeight) {\n\t\tWeightedBipartiteGraph graph = new WeightedBipartiteGraph(this.partitionSize);\n\n\t\tfor (WeightedEdge edge : this.edges) {\n\t\t\tif (edge.weight <= maximumWeight) {\n\t\t\t\tgraph.edges.add(edge);\n\t\t\t\tgraph.weights.add(edge.weight);\n\t\t\t}\n\t\t}\n\n\t\treturn graph;\n\t}\n\n\t/*\n\t * public int computeMaximumCardinalityMatching() { FlowNetwork network =\n\t * new FlowNetwork();\n\t * \n\t * for (WeightedEdge edge : this.edges) { int normalizedSourceIndex =\n\t * edge.source; int normalizedDestinationIndex = this.partitionSize +\n\t * edge.destination; network.addEdge(normalizedSourceIndex,\n\t * normalizedDestinationIndex, 1); }\n\t * \n\t * int masterSourceIndex = -1; int masterSinkIndex = -2;\n\t * \n\t * for (int i = 0; i < this.partitionSize; i++) {\n\t * network.addEdge(masterSourceIndex, i, 1);\n\t * network.addEdge(this.partitionSize + i, masterSinkIndex, 1); }\n\t * \n\t * return network.maxFlow(masterSourceIndex, masterSinkIndex); }\n\t */\n\n\tpublic int computeMaximumCardinalityMatching() {\n\t\tint n = 2 * this.partitionSize + 2;\n\t\tint size1 = this.partitionSize;\n\t\tint size2 = this.partitionSize;\n\n\t\t// the source and sink index\n\t\tint source = 0;\n\t\tint sink = size1 + size2 + 1;\n\t\t// nodes\n\t\tFordFulkersonNode v[] = new FordFulkersonNode[n];\n\t\t// edges\n\t\tList<FordFulkersonEdge> e = new ArrayList<FordFulkersonEdge>();\n\n\t\t// create the nodes\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tif (i == 0) {\n\t\t\t\t// source node\n\t\t\t\tv[i] = new FordFulkersonNode(\"source\");\n\t\t\t} else if (i <= this.partitionSize) {\n\t\t\t\tv[i] = new FordFulkersonNode(\"b1.\" + i);\n\t\t\t} else if (i <= this.partitionSize + this.partitionSize) {\n\t\t\t\tv[i] = new FordFulkersonNode(\"b2.\" + i);\n\t\t\t} else {\n\t\t\t\tv[i] = new FordFulkersonNode(\"sink\");\n\t\t\t}\n\t\t}\n\n\t\t// create edges to the source node\n\t\tfor (int i = 1; i <= size1; i++) {\n\t\t\te.add(new FordFulkersonEdge(source, i, 1));\n\t\t}\n\t\t// create edges to the sink node\n\t\tfor (int i = size1 + 1; i <= size1 + size2; i++) {\n\t\t\te.add(new FordFulkersonEdge(i, sink, 1));\n\t\t}\n\n\t\tfor (WeightedEdge edge : this.edges) {\n\t\t\tint i = edge.source + 1;\n\t\t\tint j = edge.destination + size1 + 1;\n\n\t\t\te.add(new FordFulkersonEdge(i, j, 1, edge.weight));\n\n\t\t\t// int normalizedSourceIndex = edge.source;\n\t\t\t// int normalizedDestinationIndex = this.partitionSize +\n\t\t\t// edge.destination;\n\t\t\t// network.addEdge(normalizedSourceIndex,\n\t\t\t// normalizedDestinationIndex, 1);\n\t\t}\n\n\t\t/*\n\t\tCollections.sort(e, new Comparator<FordFulkersonEdge>() {\n\t\t\t// this sorts the FlowEdges in descending order with respect\n\t\t\t// to the bottleneck field\n\t\t\tpublic int compare(FordFulkersonEdge a, FordFulkersonEdge b) {\n\t\t\t\treturn -Double.compare(a.bottleneck, b.bottleneck);\n\t\t\t}\n\t\t});*/\n\n\t\tFordFulkerson ff = new FordFulkerson();\n\t\t\n\t\tFordFulkersonEdge[] edges;\n\t\tedges = e.toArray(new FordFulkersonEdge[e.size()]);\n\t\t// compute the max flow\n\t\tint maxflow = ff.maxFlow(v, edges, source, sink);\n\t\t\n\t\treturn maxflow;\n\t}\n\n\tpublic boolean hasPerfectMatching() {\n\t\tint maximumMatchingCardinality = this.computeMaximumCardinalityMatching();\n\t\treturn (maximumMatchingCardinality == this.partitionSize);\n\t}\n\n\t/**\n\t * This function computes the smallest value, v, that when the current\n\t * bipartite graph is filtered by v, a perfect matching exists.\n\t * \n\t * If no perfect matching exists for all filtration values, it returns -1.\n\t * \n\t * @return\n\t */\n\tpublic double computePerfectMatchingThreshold() {\n\t\tCollections.sort(this.weights);\n\n\t\tif (!this.hasPerfectMatching()) {\n\t\t\treturn -1;\n\t\t}\n\n\t\t// minimumValidIndex stores the index for which there is a known perfect\n\t\t// matching\n\t\tint minimumValidIndex = this.weights.size() - 1;\n\n\t\t// check to see if there is a perfect matching with the minimum weight\n\t\tif (this.filterByMaximum(this.weights.get(0)).hasPerfectMatching()) {\n\t\t\treturn this.weights.get(0);\n\t\t}\n\n\t\tint maximumInvalidIndex = 0;\n\n\t\tint currentIndex = 0;\n\t\tdouble currentWeight = 0;\n\n\t\twhile (minimumValidIndex > maximumInvalidIndex + 1) {\n\t\t\tcurrentIndex = (maximumInvalidIndex + minimumValidIndex) / 2;\n\t\t\tcurrentWeight = this.weights.get(currentIndex);\n\t\t\tif (this.filterByMaximum(currentWeight).hasPerfectMatching()) {\n\t\t\t\tminimumValidIndex = currentIndex;\n\t\t\t} else {\n\t\t\t\tmaximumInvalidIndex = currentIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn this.weights.get(minimumValidIndex);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/examples/CellComplexOperations.java",
    "content": "package edu.stanford.math.plex4.examples;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Cell;\nimport edu.stanford.math.plex4.streams.impl.ExplicitCellStream;\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayMath;\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayQuery;\n\n/**\n * This class contains utility functions for working with cell complexes.\n * \n * @author Andrew Tausz\n *\n */\npublic class CellComplexOperations {\n\t\n\t/**\n\t * This function produces a cell complex that is the disjoint union of two cell complexes.\n\t * \n\t * @param stream1 the first cell complex\n\t * @param stream2 the second cell complex\n\t * @return the disjoint union of the supplied complexes\n\t */\n\tpublic static ExplicitCellStream disjointUnion(ExplicitCellStream stream1, ExplicitCellStream stream2) {\n\t\tExplicitCellStream union = new ExplicitCellStream();\n\n\t\tfor (Cell cell: stream1) {\n\t\t\tunion.addElement(cell, stream1.getFiltrationIndex(cell));\n\t\t}\n\t\t\n\t\tfor (Cell cell: stream2) {\n\t\t\tunion.addElement(cell, stream2.getFiltrationIndex(cell));\n\t\t}\n\t\t\n\t\treturn union;\n\t}\n\t\n\t/**\n\t * This function collapses the points in the supplied array to a single point.\n\t * \n\t * @param stream the cell complex\n\t * @param vertices the vertices to identify\n\t */\n\tpublic static void identifyPoints(ExplicitCellStream stream, int[] vertices) {\n\t\tint new_vertex_index = IntArrayMath.min(vertices);\n\t\t\n\t\tList<Cell> removalList = new ArrayList<Cell>();\n\t\t\n\t\tfor (Cell cell: stream) {\n\t\t\tint cellId = cell.getCellId();\n\t\t\tif (cell.getDimension() == 0) {\t\t\t\t\n\t\t\t\t// make sure to not add points that collapse\n\t\t\t\tif ((cellId != new_vertex_index) && (IntArrayQuery.contains(vertices, cellId))) {\n\t\t\t\t\t// remove cell\n\t\t\t\t\tremovalList.add(cell);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// the dimension is greater than 0 - we need to make sure that the boundary is also \"collapsed\"\n\t\t\t\tint[] boundary = cell.getBoundaryIds();\n\t\t\t\tfor (int i = 0; i < boundary.length; i++) {\n\t\t\t\t\tif (boundary[i] != new_vertex_index && IntArrayQuery.contains(vertices, boundary[i])) {\n\t\t\t\t\t\tcell.getBoundaryIds()[i] = new_vertex_index;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tfor (Cell cell: removalList) {\n\t\t\tstream.removeElementIfPresent(cell);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/examples/CellStreamExamples.java",
    "content": "package edu.stanford.math.plex4.examples;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Cell;\nimport edu.stanford.math.plex4.streams.impl.ExplicitCellStream;\n\n/**\n * This class contains various static functions for producing cell complexes.\n * \n * @author Andrew Tausz\n *\n */\npublic class CellStreamExamples {\n\n\t/**\n\t * This function returns the filtered cell complex which is the running example in the\n\t * paper \"Dualities in Persistent (Co)homology\" by de Silva, Morozov and Johansson.\n\t * \n\t * @return a filtered cell stream\n\t */\n\tpublic static ExplicitCellStream getMorozovJohanssonExample() {\n\t\tExplicitCellStream stream = new ExplicitCellStream();\n\n\t\tCell vertex_1 = new Cell();\n\t\tCell vertex_2 = new Cell();\n\t\tCell edge_3 = new Cell(1, new Cell[]{vertex_1, vertex_2});\n\t\tCell edge_4 = new Cell(1, new Cell[]{vertex_1, vertex_2});\n\t\tCell face_5 = new Cell(2, new Cell[]{edge_3, edge_4});\n\t\tCell face_6 = new Cell(2, new Cell[]{edge_3, edge_4});\n\n\t\tstream.addElement(vertex_1, 1);\n\t\tstream.addElement(vertex_2, 2);\n\t\tstream.addElement(edge_3, 3);\n\t\tstream.addElement(edge_4, 4);\n\t\tstream.addElement(face_5, 5);\n\t\tstream.addElement(face_6, 6);\n\n\t\tstream.finalizeStream();\n\n\t\treturn stream;\n\t}\n\n\t/**\n\t * This function returns a cell decomposition of the n-sphere. The decomposition contains\n\t * 1 n-cell with its boundary glued to a single point.\n\t * \n\t * @param dimension the dimension of the sphere to produce\n\t * @return a cellular sphere of the specified dimension\n\t */\n\tpublic static ExplicitCellStream getCellularSphere(int dimension) {\n\t\tExplicitCellStream stream = new ExplicitCellStream();\n\n\t\tint v = stream.addNewVertex();\n\t\tstream.attachNewCellToPoint(dimension, v);\n\n\t\tstream.finalizeStream();\n\n\t\treturn stream;\n\t}\n\n\t/**\n\t * This function returns a static cell complex containing a torus.\n\t * \n\t * @return a cellular torus\n\t */\n\tpublic static ExplicitCellStream getCellularTorus() {\n\t\tExplicitCellStream stream = new ExplicitCellStream();\n\n\t\tint v = stream.addNewVertex();\n\t\tint e_1 = stream.attachNewCellToPoint(1, v);\n\t\tint e_2 = stream.attachNewCellToPoint(1, v);\n\t\tstream.attachNewCell(2, new int[]{e_1, e_2, e_1, e_2}, new int[]{1, 1, -1, -1});\n\n\t\tstream.finalizeStream();\n\n\t\treturn stream;\n\t}\n\n\t/**\n\t * This function returns a cellular Klein bottle.\n\t * \n\t * @return a cellular Klein bottle\n\t */\n\tpublic static ExplicitCellStream getCellularKleinBottle() {\n\t\tExplicitCellStream stream = new ExplicitCellStream();\n\n\t\tint v = stream.addNewVertex();\n\t\tint e_1 = stream.attachNewCellToPoint(1, v);\n\t\tint e_2 = stream.attachNewCellToPoint(1, v);\n\t\tstream.attachNewCell(2, new int[]{e_1, e_2, e_1, e_2}, new int[]{1, -1, -1, -1});\n\n\t\tstream.finalizeStream();\n\n\t\treturn stream;\n\t}\n\n\t/**\n\t * This function returns a cell decomposition of RP^2 (the real projective plane).\n\t * \n\t * @return a cellular RP^2\n\t */\n\tpublic static ExplicitCellStream getCellularRP2() {\n\t\tExplicitCellStream stream = new ExplicitCellStream();\n\n\t\tint v = stream.addNewVertex();\n\t\tint e_1 = stream.attachNewCellToPoint(1, v);\n\t\tint e_2 = stream.attachNewCellToPoint(1, v);\n\t\tstream.attachNewCell(2, new int[]{e_1, e_2, e_1, e_2}, new int[]{1, 1, 1, 1});\n\n\t\tstream.finalizeStream();\n\n\t\treturn stream;\n\t}\n\n\t/**\n\t * This function returns a cell decomposition of the Mobius band.\n\t * \n\t * @return a cellular mobius band\n\t */\n\tpublic static ExplicitCellStream getCellularMobiusBand() {\n\t\tExplicitCellStream stream = new ExplicitCellStream();\n\n\t\tint v_1 = stream.addNewVertex();\n\t\tint v_2 = stream.addNewVertex();\n\t\tint e_1 = stream.attachNewCell(1, new int[]{v_2, v_1});\n\t\tint e_2 = stream.attachNewCell(1, new int[]{v_2, v_1});\n\t\tint e_3 = stream.attachNewCell(1, new int[]{v_1, v_2});\n\t\tstream.attachNewCell(2, new int[]{e_1, e_3, e_1, e_2}, new int[]{1, 1, 1, -1});\n\n\t\tstream.finalizeStream();\n\n\t\treturn stream;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/examples/DeSilvaMorozovJohanssonExample.java",
    "content": "package edu.stanford.math.plex4.examples;\r\n\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Cell;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitCellStream;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\n\r\n/**\r\n * This class contains the cell complex example contained in the paper\r\n * \"Dualities in persistent (co)homology\" by Vin de Silva, Dmitriy Morozov and Mikael\r\n * Vejdemo-Johansson.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <R>\r\n */\r\npublic class DeSilvaMorozovJohanssonExample<R> {\r\n\t\r\n\tprivate final ObjectAbstractField<R> field;\r\n\tprivate final ObjectAlgebraicFreeModule<R, Cell> module;\r\n\tprivate final ExplicitCellStream cellComplex;\r\n\t\r\n\tprivate final AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>> absoluteHomologyBarcodes = new AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>>();\r\n\tprivate final AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>> relativeHomologyBarcodes = new AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>>();\r\n\tprivate final AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>> absoluteCohomologyBarcodes = new AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>>();\r\n\tprivate final AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>> relativeCohomologyBarcodes = new AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>>();\r\n\t\r\n\t/**\r\n\t * This constructor initializes the class with the specified field.\r\n\t * \r\n\t * @param field the field over which to perform the algebraic operations\r\n\t */\r\n\tpublic DeSilvaMorozovJohanssonExample(ObjectAbstractField<R> field) {\r\n\t\tthis.field = field;\r\n\t\tthis.module = new ObjectAlgebraicFreeModule<R, Cell>(this.field);\r\n\t\tthis.cellComplex = this.initialize();\r\n\t}\r\n\t\r\n\tprivate ExplicitCellStream initialize() {\r\n\t\tExplicitCellStream stream = new ExplicitCellStream();\r\n\t\t\r\n\t\tCell vertex_1 = new Cell();\r\n\t\tCell vertex_2 = new Cell();\r\n\t\tCell edge_3 = new Cell(1, new Cell[]{vertex_1, vertex_2});\r\n\t\tCell edge_4 = new Cell(1, new Cell[]{vertex_1, vertex_2});\r\n\t\tCell face_5 = new Cell(2, new Cell[]{edge_3, edge_4});\r\n\t\tCell face_6 = new Cell(2, new Cell[]{edge_3, edge_4});\r\n\r\n\t\tstream.addElement(vertex_1, 1);\r\n\t\tstream.addElement(vertex_2, 2);\r\n\t\tstream.addElement(edge_3, 3);\r\n\t\tstream.addElement(edge_4, 4);\r\n\t\tstream.addElement(face_5, 5);\r\n\t\tstream.addElement(face_6, 6);\r\n\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\tthis.absoluteHomologyBarcodes.addRightInfiniteInterval(0, 1, module.createNewSum(field.getOne(), vertex_1));\r\n\t\tthis.absoluteHomologyBarcodes.addInterval(0, 2, 3, module.subtract(vertex_1, vertex_2));\r\n\t\tthis.absoluteHomologyBarcodes.addInterval(1, 4, 5, module.subtract(edge_3, edge_4));\r\n\t\tthis.absoluteHomologyBarcodes.addRightInfiniteInterval(2, 6, module.subtract(face_6, face_5));\r\n\t\t\r\n\t\tthis.relativeHomologyBarcodes.addLeftInfiniteInterval(0, 1, module.createNewSum(field.getOne(), vertex_1));\r\n\t\tthis.relativeHomologyBarcodes.addInterval(1, 2, 3, module.createNewSum(field.getOne(), edge_3));\r\n\t\tthis.relativeHomologyBarcodes.addInterval(2, 4, 5, module.createNewSum(field.getOne(), face_5));\r\n\t\tthis.relativeHomologyBarcodes.addLeftInfiniteInterval(2, 6, module.subtract(face_6, face_5));\r\n\t\t\r\n\t\tthis.absoluteCohomologyBarcodes.addRightInfiniteInterval(0, 1, module.add(vertex_1, vertex_2));\r\n\t\tthis.absoluteCohomologyBarcodes.addInterval(0, 2, 3, module.createNewSum(field.getOne(), vertex_2));\r\n\t\tthis.absoluteCohomologyBarcodes.addInterval(1, 4, 5, module.createNewSum(field.getOne(), edge_4));\r\n\t\tthis.absoluteCohomologyBarcodes.addRightInfiniteInterval(2, 6, module.createNewSum(field.getOne(), face_6));\r\n\t\t\r\n\t\tthis.relativeCohomologyBarcodes.addLeftInfiniteInterval(0, 1, module.add(vertex_1, vertex_2));\r\n\t\tthis.relativeCohomologyBarcodes.addInterval(1, 2, 3, module.multiply(-1, module.add(edge_3, vertex_2)));\r\n\t\tthis.relativeCohomologyBarcodes.addInterval(2, 4, 5, module.multiply(-1, module.add(face_6, face_5)));\r\n\t\tthis.relativeCohomologyBarcodes.addLeftInfiniteInterval(2, 6, module.createNewSum(field.getOne(), face_6));\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the cell complex.\r\n\t * \r\n\t * @return the cell complex of the example\r\n\t */\r\n\tpublic ExplicitCellStream getCellComplex() {\r\n\t\treturn this.cellComplex;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the correct absolute homology barcodes along with the generators.\r\n\t * \r\n\t * @return the barcodes and generators for absolute homology\r\n\t */\r\n\tpublic AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>> getAbsoluteHomologyBarcodes() {\r\n\t\treturn this.absoluteHomologyBarcodes;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the correct relative homology barcodes along with the generators.\r\n\t * \r\n\t * @return the barcodes and generators for relative homology\r\n\t */\r\n\tpublic AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>> getRelativeHomologyBarcodes() {\r\n\t\treturn this.relativeHomologyBarcodes;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the correct absolute cohomology barcodes along with the generators.\r\n\t * \r\n\t * @return the barcodes and generators for absolute cohomology\r\n\t */\r\n\tpublic AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>> getAbsoluteCohomologyBarcodes() {\r\n\t\treturn this.absoluteCohomologyBarcodes;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the correct relative cohomology barcodes along with the generators.\r\n\t * \r\n\t * @return the barcodes and generators for relative cohomology\r\n\t */\r\n\tpublic AnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<R, Cell>> getRelativeCohomologyBarcodes() {\r\n\t\treturn this.relativeCohomologyBarcodes;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/examples/PointCloudExamples.java",
    "content": "package edu.stanford.math.plex4.examples;\r\n\r\nimport java.util.Arrays;\r\n\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\r\n\r\n/**\r\n * This static class contains various functions which produce \r\n * examples of point cloud data sets.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class PointCloudExamples {\r\n\t/**\r\n\t * This produces the house example in the tutorial by Henry Adams.\r\n\t * \r\n\t * @return the requested point cloud\r\n\t */\r\n\tpublic static double[][] getHouseExample() {\r\n\t\tdouble[][] points = new double[][]{new double[]{-1, 0}, \r\n\t\t\t\tnew double[]{1, 0},\r\n\t\t\t\tnew double[]{1, 2},\r\n\t\t\t\tnew double[]{-1, 2},\r\n\t\t\t\tnew double[]{0, 3}};\r\n\r\n\t\treturn points;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function produces a square in the plane.\r\n\t * \r\n\t * @return the requested point cloud\r\n\t */\r\n\tpublic static double[][] getSquare() {\r\n\t\tdouble[][] points = new double[][]{new double[]{0, 0}, \r\n\t\t\t\tnew double[]{0, 1},\r\n\t\t\t\tnew double[]{1, 0},\r\n\t\t\t\tnew double[]{1, 1}};\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a point set containing n equally spaced points on a\r\n\t * circle.\r\n\t * \r\n\t * @param n\r\n\t * @return the requested point cloud\r\n\t */\r\n\tpublic static double[][] getEquispacedCirclePoints(int n) {\r\n\t\tdouble[][] points = new double[n][2];\r\n\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tpoints[i][0] = Math.cos(2 * Math.PI * ((double) i / (double) n));\r\n\t\t\tpoints[i][1] = Math.sin(2 * Math.PI * ((double) i / (double) n));\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a point set containing n randomly selected points,\r\n\t * ordered clockwise on a circle.\r\n\t * \r\n\t * @param n\r\n\t * @return the requested point cloud\r\n\t */\r\n\tpublic static double[][] getRandomCirclePoints(int n) {\r\n\t\tdouble[][] points = new double[n][2];\r\n\r\n\t\tdouble[] random = RandomUtility.uniformArray(n);\r\n\t\tArrays.sort(random);\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tdouble phi = 2 * Math.PI * random[i];\r\n\t\t\tpoints[i][0] = Math.cos(phi);\r\n\t\t\tpoints[i][1] = Math.sin(phi);\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the vertices of an octahedron.\r\n\t * \r\n\t * @return the requested point cloud\r\n\t */\r\n\tpublic static double[][] getOctahedronVertices() {\r\n\t\tdouble[][] points = new double[6][3];\r\n\r\n\t\tpoints[0] = new double[]{1, 0, 0};\r\n\t\tpoints[1] = new double[]{0, -1, 0};\r\n\t\tpoints[2] = new double[]{-1, 0, 0};\r\n\t\tpoints[3] = new double[]{0, 1, 0};\r\n\t\tpoints[4] = new double[]{0, 0, 1};\r\n\t\tpoints[5] = new double[]{0, 0, -1};\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the vertices of an tetrahedron.\r\n\t * \r\n\t * @return the requested point cloud\r\n\t */\r\n\tpublic static double[][] getTetrahedronVertices() {\r\n\t\tdouble[][] points = new double[4][3];\r\n\r\n\t\tpoints[0] = new double[]{0, 0, 1};\r\n\t\tpoints[1] = new double[]{0.943, 0, -0.333};\r\n\t\tpoints[2] = new double[]{-0.471, 0.816, -0.333};\r\n\t\tpoints[3] = new double[]{-0.471, -0.816, -0.333};\r\n\t\t\r\n\t\treturn points;\r\n\t}\r\n\r\n\r\n\tpublic static double[][] getAnnulusVertices(int width, int length) {\r\n\t\tdouble[][] points = new double[width * length][2];\r\n\t\tdouble radius;\r\n\t\tdouble angle;\r\n\t\tint index = 0;\r\n\t\tfor (int radialIndex = 0; radialIndex < width; radialIndex++) {\r\n\t\t\tif (width == 1) {\r\n\t\t\t\tradius = 1;\r\n\t\t\t} else {\r\n\t\t\t\tradius = 1 + ((double) radialIndex) / ((double) width - 1);\r\n\t\t\t}\r\n\t\t\tfor (int angularIndex = 0; angularIndex < length; angularIndex++) {\r\n\t\t\t\tangle = 2 * Math.PI * ((double) angularIndex) / ((double) length);\r\n\t\t\t\tpoints[index][0] = radius * Math.cos(angle);\r\n\t\t\t\tpoints[index][1] = radius * Math.sin(angle);\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\tpublic static double[][] getIcosahedronVertices() {\r\n\t\tdouble[][] points = new double[12][3];\r\n\r\n\t\tpoints[0] = new double[]{ 0.000, 0.000, 1.000 };\r\n\t\tpoints[1] = new double[]{ 0.894, 0.000, 0.447 };\r\n\t\tpoints[2] = new double[]{ 0.276, 0.851, 0.447 };\r\n\t\tpoints[3] = new double[]{-0.724, 0.526, 0.447 };\r\n\t\tpoints[4] = new double[]{-0.724, -0.526, 0.447 };\r\n\t\tpoints[5] = new double[]{ 0.276, -0.851, 0.447 };\r\n\t\tpoints[6] = new double[]{ 0.724, 0.526, -0.447 };\r\n\t\tpoints[7] = new double[]{-0.276, 0.851, -0.447 };\r\n\t\tpoints[8] = new double[]{-0.894, 0.000, -0.447 };\r\n\t\tpoints[9] = new double[]{-0.276, -0.851, -0.447 };\r\n\t\tpoints[10] = new double[]{ 0.724, -0.526, -0.447 };\r\n\t\tpoints[11] = new double[]{ 0.000, 0.000, -1.000 };\r\n\r\n\t\t\r\n\t\treturn points;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns n uniformly random point on the d-dimensional sphere as a subset\r\n\t * of R^{d+1}.\r\n\t * \r\n\t * @param n the number of points to generate\r\n\t * @param d the dimension of the sphere to generate on\r\n\t * @return n points in (d+1)-dimensional Euclidean space uniformly distributed on the d-sphere\r\n\t */\r\n\tpublic static double[][] getRandomSpherePoints(int n, int d) {\r\n\t\tdouble[][] points = new double[n][];\r\n\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tpoints[i] = RandomUtility.normalArray(d + 1);\r\n\t\t\tpoints[i] = DoubleArrayMath.scalarMultiply(points[i], 1.0 / DoubleArrayMath.norm(points[i], 2));\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns n points distributed to a standard Gaussian distribution in d-dimensional\r\n\t * Euclidean space.\r\n\t * \r\n\t * @param n the number of points to generate\r\n\t * @param d the dimension of the space to generate in\r\n\t * @return n Gaussian points in R^d\r\n\t */\r\n\tpublic static double[][] getGaussianPoints(int n, int d) {\r\n\t\tdouble[][] points = new double[n][];\r\n\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tpoints[i] = RandomUtility.normalArray(d);\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns non-uniformly generated points on the torus in R^3.\r\n\t * \r\n\t * @param n the number of points to generate\r\n\t * @param r the inner radius\r\n\t * @param R the outer radius\r\n\t * @return randomly generated points on the torus in R^3\r\n\t */\r\n\tpublic static double[][] getRandomTorusPoints(int n, double r, double R) {\r\n\t\tdouble[][] points = new double[n][3];\r\n\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tdouble u = RandomUtility.nextUniform() * 2 * Math.PI;\r\n\t\t\tdouble v = RandomUtility.nextUniform() * 2 * Math.PI;\r\n\t\t\tpoints[i][0] = (R + r * Math.cos(v)) * Math.cos(u);\r\n\t\t\tpoints[i][1] = (R + r * Math.cos(v)) * Math.sin(u);\r\n\t\t\tpoints[i][2] = r * Math.sin(v);\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\tpublic static double[][] getRandomTrefoilKnotPoints(int n) {\r\n\t\tdouble[][] points = new double[n][3];\r\n\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tdouble t = RandomUtility.nextUniform() * 2 * Math.PI;\r\n\t\t\tpoints[i][0] = (2 + Math.cos(3 * t)) * Math.cos(2 * t);\r\n\t\t\tpoints[i][1] = (2 + Math.cos(3 * t)) * Math.sin(2 * t);\r\n\t\t\tpoints[i][2] = Math.sin(3 * t);\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns uniformly distributed points on the space S^k x ... x S^k.\r\n\t * Special cases of this include the 2-torus S^1 x S^1 in R^4, as well as the sphere S^k.\r\n\t * \r\n\t * @param numPoints the number of points to generate\r\n\t * @param sphereDimension the sphere dimension (ie. the k in S^k x ... x S^k)\r\n\t * @param numFactors the number of factors in the product S^k x ... x S^k\r\n\t * @return uniformly generated points on the set S^k x ... x S^k\r\n\t */\r\n\tpublic static double[][] getRandomSphereProductPoints(int numPoints, int sphereDimension, int numFactors) {\r\n\t\tint dimension = (sphereDimension + 1) * numFactors;\r\n\t\tdouble[][] points = new double[numPoints][];\r\n\r\n\t\tfor (int i = 0; i < numPoints; i++) {\r\n\t\t\tpoints[i] = RandomUtility.normalArray(dimension);\r\n\t\t\tfor (int N = 0; N < numFactors; N++) {\r\n\t\t\t\tdouble sum = 0;\r\n\t\t\t\tfor (int j = 0; j < sphereDimension + 1; j++) {\r\n\t\t\t\t\tsum += points[i][N * (sphereDimension + 1) + j] * points[i][N * (sphereDimension + 1) + j];\r\n\t\t\t\t}\r\n\t\t\t\tsum = Math.sqrt(sum);\r\n\t\t\t\tfor (int j = 0; j < sphereDimension + 1; j++) {\r\n\t\t\t\t\tpoints[i][N * (sphereDimension + 1) + j] /= sum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns randomly generated points on a figure-8 in the plane. This consists\r\n\t * of two circles - one translated up by 1 unit, and the other translated down by 1 unit.\r\n\t * \r\n\t * @param n the number of points to generate\r\n\t * @return randomly generated points on a figure-8.\r\n\t */\r\n\tpublic static double[][] getRandomFigure8Points(int n) {\r\n\t\tint m = n / 2;\r\n\t\tdouble[][] points = new double[n][2];\r\n\r\n\t\tfor (int i = 0; i < m; i++) {\r\n\t\t\tpoints[i] = RandomUtility.normalArray(2);\r\n\t\t\tpoints[i] = DoubleArrayMath.scalarMultiply(points[i], 1.0 / DoubleArrayMath.norm(points[i], 2));\r\n\r\n\t\t\t// translate by +1 vertically\r\n\t\t\tpoints[i][1] += 1;\r\n\t\t}\r\n\r\n\t\tfor (int i = m; i < n; i++) {\r\n\t\t\tpoints[i] = RandomUtility.normalArray(2);\r\n\t\t\tpoints[i] = DoubleArrayMath.scalarMultiply(points[i], 1.0 / DoubleArrayMath.norm(points[i], 2));\r\n\r\n\t\t\t// translate by -1 vertically\r\n\t\t\tpoints[i][1] -= 1;\r\n\t\t}\t\t\r\n\r\n\t\treturn points;\r\n\t}\r\n\t\r\n\tpublic static double[][] getDisjointPatches(int n) {\r\n\t\tdouble[][] points = new double[n][2];\r\n\t\tdouble shift = 0;\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tshift = (i % 2 == 0 ? 0 : 2);\r\n\t\t\tpoints[i] = RandomUtility.normalArray(2);\r\n\t\t\tpoints[i][1] += shift;\r\n\t\t}\r\n\t\t\r\n\t\treturn points;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/examples/SimplexStreamExamples.java",
    "content": "package edu.stanford.math.plex4.examples;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitStream;\r\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayGeneration;\r\nimport edu.stanford.math.primitivelib.autogen.pair.IntIntPair;\r\n\r\n/**\r\n * This class contains various functions for producing examples of \r\n * filtered and static simplicial complexes. Note that we use the term\r\n * static complex to refer to the fact that all filtration values are zero.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class SimplexStreamExamples {\r\n\t/**\r\n\t * This function returns a filtered simplicial complex which is shown in \r\n\t * Figure 1 of the paper \"Computing Persistent Homology\" by Zomorodian and Carlsson.\r\n\t * \r\n\t * @return a filtered simplex stream\r\n\t */\r\n\tpublic static ExplicitStream<Simplex> getZomorodianCarlssonExample() {\r\n\t\tExplicitStream<Simplex> stream = new ExplicitStream<Simplex>(SimplexComparator.getInstance());\r\n\r\n\t\tstream.addElement(new Simplex(new int[]{0}), 0);\r\n\t\tstream.addElement(new Simplex(new int[]{1}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[]{2}), 1);\r\n\t\tstream.addElement(new Simplex(new int[]{3}), 1);\r\n\t\tstream.addElement(new Simplex(new int[]{0, 1}), 1);\r\n\t\tstream.addElement(new Simplex(new int[]{1, 2}), 1);\r\n\r\n\t\tstream.addElement(new Simplex(new int[]{2, 3}), 2);\r\n\t\tstream.addElement(new Simplex(new int[]{3, 0}), 2);\r\n\r\n\t\tstream.addElement(new Simplex(new int[]{0, 2}), 3);\r\n\r\n\t\tstream.addElement(new Simplex(new int[]{0, 1, 2}), 4);\r\n\r\n\t\tstream.addElement(new Simplex(new int[]{0, 2, 3}), 5);\r\n\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a filtered triangle where each simplex enters at a new filtration index.\r\n\t * \r\n\t * @return a filtered triangle\r\n\t */\r\n\tpublic static ExplicitStream<Simplex> getFilteredTriangle() {\r\n\t\tExplicitStream<Simplex> stream = new ExplicitStream<Simplex>(SimplexComparator.getInstance());\r\n\r\n\t\tstream.addElement(new Simplex(new int[]{0}), 1);\r\n\t\tstream.addElement(new Simplex(new int[]{1}), 2);\r\n\t\tstream.addElement(new Simplex(new int[]{2}), 3);\r\n\t\tstream.addElement(new Simplex(new int[]{0, 1}), 4);\r\n\t\tstream.addElement(new Simplex(new int[]{1, 2}), 5);\r\n\t\tstream.addElement(new Simplex(new int[]{0, 2}), 6);\r\n\t\tstream.addElement(new Simplex(new int[]{0, 1, 2}), 7);\r\n\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a simplicial triangle (which happens\r\n\t * to be equal to a simplicial 1-sphere).\r\n\t * \r\n\t * @return a simplicial triangle\r\n\t */\r\n\tpublic static ExplicitStream<Simplex> getTriangle() {\r\n\t\treturn getSimplicialSphere(1);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a simplicial tetrahedron (which happens\r\n\t * to be equal to a simplicial 2-sphere).\r\n\t * \r\n\t * @return a simplicial tetrahedron\r\n\t */\r\n\tpublic static ExplicitStream<Simplex> getTetrahedron() {\r\n\t\treturn getSimplicialSphere(2);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a static simplicial complex containing an n-sphere.\r\n\t * \r\n\t * @param dimension the dimension of the sphere to produce\r\n\t * @return a simplicial sphere\r\n\t */\r\n\tpublic static ExplicitStream<Simplex> getSimplicialSphere(int dimension) {\r\n\t\tExplicitStream<Simplex> stream = new ExplicitStream<Simplex>(SimplexComparator.getInstance());\r\n\r\n\t\tstream.addElement(new Simplex(IntArrayGeneration.range(0, dimension + 2)), 0);\r\n\t\tstream.ensureAllFaces();\r\n\t\tstream.removeElementIfPresent(new Simplex(IntArrayGeneration.range(0, dimension + 2)));\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a simplicial 2-torus. This construction was taken from the \r\n\t * original version of Javaplex. Note that the complex returned is static meaning that\r\n\t * all filtration values are zero.\r\n\t * \r\n\t * @return a simplicial complex containing a 2-torus.\r\n\t */\r\n\tpublic static ExplicitStream<Simplex> getTorus() {\r\n\t\tExplicitStream<Simplex> stream = new ExplicitStream<Simplex>(SimplexComparator.getInstance());\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {1}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {3}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {5}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {6}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {7}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {8}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {9}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {1, 2}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {1, 3}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 3}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {1, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 5}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {3, 6}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {1, 6}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {3, 5}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {4, 5}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {4, 6}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {5, 6}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {4, 7}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {4, 9}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {5, 7}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {5, 8}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {6, 8}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {6, 9}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {7, 9}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {8, 9}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {7, 1}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {7, 3}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {7, 8}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {8, 1}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {8, 2}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {9, 2}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {9, 3}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {1, 2, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 4, 5}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 3, 5}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {3, 5, 6}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {1, 4, 6}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {1, 3, 6}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {4, 5, 7}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {5, 7, 8}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {5, 6, 8}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {6, 8, 9}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {4, 7, 9}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {4, 6, 9}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {7, 8, 1}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {8, 1, 2}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {8, 9, 2}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {9, 2, 3}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {7, 1, 3}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {7, 9, 3}), 0);\r\n\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a simplicial circle with m vertices in it.\r\n\t * It requires that m >= 3.\r\n\t * \r\n\t * @param m the number of vertices in the circle\r\n\t * @return a simplicial circle with m vertices\r\n\t */\r\n\tpublic static ExplicitStream<Simplex> getCircle(int m) {\r\n\t\tExceptionUtility.verifyGreaterThanOrEqual(m, 3);\r\n\t\t\r\n\t\tExplicitStream<Simplex> stream = new ExplicitStream<Simplex>(SimplexComparator.getInstance());\r\n\r\n\t\tfor (int i = 0; i < m; i++) {\r\n\t\t\tstream.addElement(new Simplex(new int[]{i}), 0);\r\n\t\t\tstream.addElement(new Simplex(new int[]{i, (i + 1) % m}), 0);\r\n\t\t}\r\n\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a simplicial octahedron.\r\n\t * \r\n\t * @return a simplicial octahedron.\r\n\t */\r\n\tpublic static ExplicitStream<Simplex> getOctahedron() {\r\n\t\tExplicitStream<Simplex> stream = new ExplicitStream<Simplex>(SimplexComparator.getInstance());\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {0}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {1}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {3}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {5}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {0, 1}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {0, 3}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {0, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {0, 5}), 0);\r\n\t\t\r\n\t\tstream.addElement(new Simplex(new int[] {1, 2}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {1, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {1, 5}), 0);\r\n\t\t\r\n\t\tstream.addElement(new Simplex(new int[] {2, 3}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 5}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {3, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {3, 5}), 0);\r\n\r\n\t\tstream.addElement(new Simplex(new int[] {0, 1, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {1, 2, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 3, 4}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {0, 3, 4}), 0);\r\n\t\t\r\n\t\tstream.addElement(new Simplex(new int[] {0, 1, 5}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {1, 2, 5}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {2, 3, 5}), 0);\r\n\t\tstream.addElement(new Simplex(new int[] {0, 3, 5}), 0);\r\n\t\t\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\tpublic static ExplicitSimplexStream getIcosahedron() {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\t\r\n\t\t// add vertices\r\n\t\tfor (int i = 0; i < 12; i++) {\r\n\t\t\tstream.addVertex(i);\r\n\t\t}\r\n\t\t\r\n\t\t// add faces\r\n\t\tstream.addElement(new int[]{0, 1, 2});\r\n\t\tstream.addElement(new int[]{0, 2, 3});\r\n\t\tstream.addElement(new int[]{0, 3, 4});\r\n\t\tstream.addElement(new int[]{0, 4, 5});\r\n\t\tstream.addElement(new int[]{0, 5, 1});\r\n\t\tstream.addElement(new int[]{11, 6, 7});\r\n\t\tstream.addElement(new int[]{11, 7, 8});\r\n\t\tstream.addElement(new int[]{11, 8, 9});\r\n\t\tstream.addElement(new int[]{11, 9, 10});\r\n\t\tstream.addElement(new int[]{11, 10, 6});\r\n\t\tstream.addElement(new int[]{1, 2, 6});\r\n\t\tstream.addElement(new int[]{2, 3, 7});\r\n\t\tstream.addElement(new int[]{3, 4, 8});\r\n\t\tstream.addElement(new int[]{4, 5, 9});\r\n\t\tstream.addElement(new int[]{5, 1, 10});\r\n\t\tstream.addElement(new int[]{6, 7, 2});\r\n\t\tstream.addElement(new int[]{7, 8, 3});\r\n\t\tstream.addElement(new int[]{8, 9, 4});\r\n\t\tstream.addElement(new int[]{9, 10, 5});\r\n\t\tstream.addElement(new int[]{10, 6, 1});\r\n\r\n\t\t// add edges\r\n\t\tstream.ensureAllFaces();\r\n\t\t\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\tpublic static ExplicitSimplexStream getAnnulus(int width, int length) {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\t\r\n\t\tint vertexIndex = 0;\r\n\t\tint neighborIndex0 = 0;\r\n\t\tint neighborIndex1 = 0;\r\n\t\tint neighborIndex2 = 0;\r\n\t\tfor (int radialIndex = 0; radialIndex < width; radialIndex++) {\r\n\t\t\tfor (int angularIndex = 0; angularIndex < length; angularIndex++) {\r\n\t\t\t\tstream.addVertex(vertexIndex);\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif (angularIndex == length - 1) {\r\n\t\t\t\t\tneighborIndex0 = vertexIndex - length + 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tneighborIndex0 = vertexIndex + 1;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tstream.addElement(new int[]{vertexIndex, neighborIndex0});\r\n\t\t\t\t\r\n\t\t\t\tif (radialIndex < width - 1) {\r\n\t\t\t\t\tneighborIndex1 = vertexIndex + length;\r\n\t\t\t\t\tstream.addElement(new int[]{vertexIndex, neighborIndex1});\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (angularIndex == length - 1) {\r\n\t\t\t\t\t\tneighborIndex2 = vertexIndex + 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tneighborIndex2 = vertexIndex + length + 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstream.addElement(new int[]{vertexIndex, neighborIndex2});\r\n\t\t\t\t\t\r\n\t\t\t\t\tstream.addElement(new int[]{vertexIndex, neighborIndex1, neighborIndex2});\r\n\t\t\t\t\tstream.addElement(new int[]{vertexIndex, neighborIndex0, neighborIndex2});\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tvertexIndex++;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function produces a simplicial complex from a given undirected graph. The resulting\r\n\t * complex contains the same vertices and edges as the given graph.\r\n\t * \r\n\t * @param graph the graph to convert to a simplicial complex\r\n\t * @return a simplicial complex containing the same vertices and edges as the given graph\r\n\t */\r\n\tpublic static ExplicitSimplexStream createGraphComplex(AbstractUndirectedGraph graph) {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\t\r\n\t\tint n = graph.getNumVertices();\r\n\t\t\r\n\t\t// add vertices\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tstream.addVertex(i);\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t// add edges\r\n\t\tfor (IntIntPair pair: graph) {\r\n\t\t\tstream.addElement(new int[]{pair.getFirst(), pair.getSecond()});\r\n\t\t}\r\n\t\t\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function produces a simplicial complex from the adjacency matrix of a given graph.\r\n\t * The resulting complex contains the same vertices and edges as the given graph.\r\n\t * \r\n\t * @param adjacencyMatrix the adjacency matrix of the graph to convert to a simplicial complex\r\n\t * @return a simplicial complex containing the same vertices and edges as the given graph\r\n\t */\r\n\tpublic static ExplicitSimplexStream createGraphComplex(int[][] adjacencyMatrix) {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\t\r\n\t\tint n = adjacencyMatrix.length;\r\n\t\t\r\n\t\t// add vertices\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tstream.addVertex(i);\r\n\t\t}\r\n\t\t\r\n\t\t// add edges\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tfor (int j = 0; j < i; j++) {\r\n\t\t\t\tif (adjacencyMatrix[i][j] != 0) {\r\n\t\t\t\t\tstream.addElement(new int[]{i, j});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tstream.finalizeStream();\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/examples/SimplicialComplexOperations.java",
    "content": "package edu.stanford.math.plex4.examples;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayMath;\n\n/**\n * This class contains various functions for creating new simplicial complexes out of old ones.\n * \n * @author Andrew Tausz\n *\n */\npublic class SimplicialComplexOperations {\n\t/**\n\t * This function computes the cone of a given filtered simplicial complex.\n\t * \n\t * @param simplexStream the simplicial complex to compute the cone of\n\t * @param vertexFiltrationIndex the filtration index of the vertex point of the cone\n\t * @return the cone of the simplicial complex\n\t */\n\tpublic static AbstractFilteredStream<Simplex> computeCone(AbstractFilteredStream<Simplex> simplexStream, int vertexFiltrationIndex) {\n\t\tExplicitSimplexStream coneStream = new ExplicitSimplexStream();\n\t\tint maxFiltrationIndex = Integer.MIN_VALUE;\n\t\tint maxVertexIndex = Integer.MIN_VALUE;\n\t\t\n\t\t// add the existing simplices\n\t\tfor (Simplex simplex: simplexStream) {\n\t\t\tint filtrationIndex = simplexStream.getFiltrationIndex(simplex);\n\t\t\tconeStream.addElement(simplex, filtrationIndex);\n\t\t\tif (simplex.getDimension() == 0 && (simplex.getVertices()[0] > maxVertexIndex)) {\n\t\t\t\tmaxVertexIndex = simplex.getVertices()[0];\n\t\t\t}\n\t\t\tif (filtrationIndex > maxFiltrationIndex) {\n\t\t\t\tmaxFiltrationIndex = filtrationIndex;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// add the new cone vertex\n\t\tint coneVertexIndex = maxVertexIndex + 1;\n\t\tconeStream.addVertex(coneVertexIndex, vertexFiltrationIndex);\n\t\t\n\t\t// add the coned simplices\n\t\tfor (Simplex simplex: simplexStream) {\n\t\t\tint filtrationIndex = simplexStream.getFiltrationIndex(simplex);\n\t\t\tint[] vertices = simplex.getVertices();\n\t\t\tint[] newVertices = HomologyUtility.appendToArray(vertices, coneVertexIndex);\n\t\t\tconeStream.addElement(newVertices, Math.max(filtrationIndex, vertexFiltrationIndex));\n\t\t}\n\t\t\n\t\treturn coneStream;\n\t}\n\t\n\t/**\n\t * This function computes the suspension of a given filtered simplicial complex.\n\t * \n\t * @param simplexStream the simplicial complex to compute the suspension of\n\t * @param vertexFiltrationIndex the filtration index of the two newly added vertices\n\t * @return the suspension of the given simplicial complex\n\t */\n\tpublic static AbstractFilteredStream<Simplex> computeSuspension(AbstractFilteredStream<Simplex> simplexStream, int vertexFiltrationIndex) {\n\t\tExplicitSimplexStream suspensionStream = new ExplicitSimplexStream();\n\t\tint maxFiltrationIndex = Integer.MIN_VALUE;\n\t\tint maxVertexIndex = Integer.MIN_VALUE;\n\t\t\n\t\t// add the existing simplices\n\t\tfor (Simplex simplex: simplexStream) {\n\t\t\tint filtrationIndex = simplexStream.getFiltrationIndex(simplex);\n\t\t\tsuspensionStream.addElement(simplex, filtrationIndex);\n\t\t\tif (simplex.getDimension() == 0 && (simplex.getVertices()[0] > maxVertexIndex)) {\n\t\t\t\tmaxVertexIndex = simplex.getVertices()[0];\n\t\t\t}\n\t\t\tif (filtrationIndex > maxFiltrationIndex) {\n\t\t\t\tmaxFiltrationIndex = filtrationIndex;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// add the new 2 new vertices\n\t\tint coneVertexIndex1 = maxVertexIndex + 1;\n\t\tint coneVertexIndex2 = coneVertexIndex1 + 1;\n\t\tsuspensionStream.addVertex(coneVertexIndex1, vertexFiltrationIndex);\n\t\tsuspensionStream.addVertex(coneVertexIndex2, vertexFiltrationIndex);\n\t\t\n\t\t// add the coned simplices on both sides\n\t\tfor (Simplex simplex: simplexStream) {\n\t\t\tint filtrationIndex = simplexStream.getFiltrationIndex(simplex);\n\t\t\tint[] vertices = simplex.getVertices();\n\t\t\t\n\t\t\tint[] newVertices1 = HomologyUtility.appendToArray(vertices, coneVertexIndex1);\n\t\t\tsuspensionStream.addElement(newVertices1, Math.max(filtrationIndex, vertexFiltrationIndex));\n\t\t\t\n\t\t\tint[] newVertices2 = HomologyUtility.appendToArray(vertices, coneVertexIndex2);\n\t\t\tsuspensionStream.addElement(newVertices2, Math.max(filtrationIndex, vertexFiltrationIndex));\n\t\t}\n\t\t\n\t\treturn suspensionStream;\n\t}\n\t\n\t/**\n\t * This function computes the disjoint union of two filtered simplicial complex.\n\t * \n\t * @param stream1 the first simplicial complex\n\t * @param stream2 the second simplicial complex\n\t * @return the disjoint union of the two simplicial complexes\n\t */\n\tpublic static AbstractFilteredStream<Simplex> computeDisjointUnion(AbstractFilteredStream<Simplex> stream1, AbstractFilteredStream<Simplex> stream2) {\n\t\tExplicitSimplexStream unionStream = new ExplicitSimplexStream();\n\t\t\n\t\tint maxFiltrationIndex = Integer.MIN_VALUE;\n\t\tint maxVertexIndex = Integer.MIN_VALUE;\n\t\t\n\t\t// add the simplices from the first streams\n\t\tfor (Simplex simplex: stream1) {\n\t\t\tint filtrationIndex = stream1.getFiltrationIndex(simplex);\n\t\t\tunionStream.addElement(simplex, filtrationIndex);\n\t\t\tif (simplex.getDimension() == 0 && (simplex.getVertices()[0] > maxVertexIndex)) {\n\t\t\t\tmaxVertexIndex = simplex.getVertices()[0];\n\t\t\t}\n\t\t\tif (filtrationIndex > maxFiltrationIndex) {\n\t\t\t\tmaxFiltrationIndex = filtrationIndex;\n\t\t\t}\n\t\t}\n\t\t\n\t\tint translation = maxVertexIndex + 1;\n\t\t\n\t\t// add the simplices from the second stream - make sure to translated indices\n\t\tfor (Simplex simplex: stream2) {\n\t\t\tint filtrationIndex = stream2.getFiltrationIndex(simplex);\n\t\t\tint[] vertices = simplex.getVertices();\n\t\t\tunionStream.addElement(IntArrayMath.scalarAdd(vertices, translation), filtrationIndex);\n\t\t}\n\t\t\n\t\treturn unionStream;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/generation/GeneratorDriver.java",
    "content": "package edu.stanford.math.plex4.generation;\r\n\r\nimport java.util.List;\r\nimport java.util.Vector;\r\n\r\nimport edu.stanford.math.primitivelib.generation.ClassSpecifier;\r\nimport edu.stanford.math.primitivelib.generation.JavaCodeGenerator;\r\n\r\n/**\r\n * This class contains functions for creating auto-generated code. In particular it generates the homology algorithms\r\n * for different underlying types (int, boolean, object) from template files in the templates folder.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class GeneratorDriver {\r\n\tprivate static List<ClassSpecifier> classSpecifiers = new Vector<ClassSpecifier>();\r\n\tprivate static String basePackageName = \"edu.stanford.math.plex4.autogen\";\r\n\tprivate static String baseSourceDirectory = \"src/java\";\r\n\tprivate static String templateDirectory = \"templates/\";\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\taddHomologyClasses();\r\n\t\tgenerateClasses();\r\n\t}\r\n\r\n\tprivate static void addHomologyClasses() {\r\n\t\tVector<String> types = new Vector<String>();\r\n\t\ttypes.add(\"int\");\r\n\t\ttypes.add(\"boolean\");\r\n\t\ttypes.add(\"F\");\r\n\t\tString[] classes = new String[]{\"PersistenceAlgorithm\", \"PersistentHomology\", \"AbsoluteHomology\", \"RelativeHomology\", \"ClassicalHomology\"};\r\n\t\tString packageId = \"homology\";\r\n\r\n\t\tfor (String type: types) {\r\n\t\t\tVector<String> templateTypes = new Vector<String>();\r\n\t\t\ttemplateTypes.add(type);\r\n\t\t\tfor (String classTag: classes) {\r\n\t\t\t\tClassSpecifier specifier = new ClassSpecifier(packageId, classTag, templateTypes);\r\n\t\t\t\tspecifier.addGenericType(\"U\");\r\n\t\t\t\tclassSpecifiers.add(specifier);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate static void generateClasses() {\r\n\t\tJavaCodeGenerator generator = new JavaCodeGenerator(basePackageName, templateDirectory, baseSourceDirectory);\r\n\t\tgenerator.generateClasses(classSpecifiers);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/AbstractUndirectedGraph.java",
    "content": "package edu.stanford.math.plex4.graph;\n\nimport java.io.Serializable;\nimport java.util.Iterator;\n\nimport edu.stanford.math.primitivelib.autogen.pair.IntIntPair;\nimport gnu.trove.TIntHashSet;\n\n/**\n * This interface abstracts the functionality of an unweighted graph.\n * The graph must be undirected. The vertices of the graph\n * are labeled {0, ..., n - 1}, where n is the number of vertices.\n * \n * @author Andrew Tausz\n *\n */\npublic interface AbstractUndirectedGraph extends Iterable<IntIntPair>, Serializable {\n\t\n\t/**\n\t * Gets the number of vertices in the graph.\n\t * \n\t * @return the number of vertices in the graph\n\t */\n\tpublic int getNumVertices();\n\t\n\t/**\n\t * Gets the number of edges in the graph.\n\t * \n\t * @return the number of edges in the graph\n\t */\n\tpublic int getNumEdges();\n\t\n\t/**\n\t * This function returns true if the edge (i, j) is in the graph,\n\t * and false otherwise.\n\t * \n\t * @param i the first vertex of the edge\n\t * @param j the second vertex of the edge\n\t * @return true if (i, j) is an edge in the graph and false otherwise\n\t */\n\tpublic boolean containsEdge(int i, int j);\n\t\n\t/**\n\t * This function adds the edge (i, j) to the graph.\n\t * \n\t * @param i the first vertex of the edge to add\n\t * @param j the second vertex of the edge to add\n\t */\n\tpublic void addEdge(int i, int j);\n\t\n\t/**\n\t * This function removes the edge (i, j) from the graph.\n\t * \n\t * @param i the first vertex of the edge to add\n\t * @param j the second vertex of the edge to add\n\t */\n\tpublic void removeEdge(int i, int j);\n\t\n\t/**\n\t * This function returns the set of neighbors of vertex i in the graph\n\t * which have indices less than i.\n\t * \n\t * @param i the vertex to query\n\t * @return the set of j such that j < i and i ~ j\n\t */\n\tpublic TIntHashSet getLowerNeighbors(int i);\n\t\n\t/**\n\t * This function returns an edge iterator that allows the user to \n\t * iterate over the set of edges in the graph.\n\t * \n\t * @return an Iterator<IntIntPair>\n\t */\n\tpublic Iterator<IntIntPair> iterator();\n\t\n\tpublic int getDegree(int v);\n\tpublic int[] getNeighbors(int v);\n\tpublic int[] getDegreeSequence();\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/AbstractWeightedUndirectedGraph.java",
    "content": "package edu.stanford.math.plex4.graph;\n\n/**\n * This interface defines functionality for a weighted graph.\n * The graph may be directed or undirected.\n * \n * @author Andrew Tausz\n *\n */\npublic interface AbstractWeightedUndirectedGraph extends AbstractUndirectedGraph {\n\t/**\n\t * This function returns the weight of the edge (i, j).\n\t * \n\t * @param i the index of the first vertex of the edge\n\t * @param j the index of the second vertex of the edge\n\t * @return the weight of the edge (i, j)\n\t */\n\tpublic double getWeight(int i, int j);\n\t\n\t/**\n\t * This function adds an edge with specified weight.\n\t * \n\t * @param i the index of the first vertex of the edge\n\t * @param j the index of the second vertex of the edge\n\t * @param weight the weight of the edge\n\t */\n\tpublic void addEdge(int i, int j, double weight);\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/UndirectedListEdgeIterator.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.graph;\r\n\r\nimport java.util.Iterator;\r\n\r\nimport edu.stanford.math.primitivelib.autogen.pair.IntIntPair;\r\nimport gnu.trove.TIntDoubleHashMap;\r\nimport gnu.trove.TIntHashSet;\r\nimport gnu.trove.TIntIterator;\r\nimport gnu.trove.TIntObjectHashMap;\r\nimport gnu.trove.TIntObjectIterator;\r\n\r\n/**\r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class UndirectedListEdgeIterator implements Iterator<IntIntPair> {\r\n\tprivate final TIntObjectHashMap<TIntHashSet> adjacencySets;\r\n\r\n\t/**\r\n\t * This iterates through the different adjacency lists.\r\n\t */\r\n\tprivate TIntObjectIterator<TIntHashSet> listIterator;\r\n\r\n\t/**\r\n\t * This iterates through a particular adjacency list. Ie. given a vertex,\r\n\t * this iterates through the lower-neighbors of the vertex.\r\n\t */\r\n\tprivate TIntIterator elementIterator;\r\n\r\n\tpublic UndirectedListEdgeIterator(TIntObjectHashMap<TIntHashSet> adjacencySets) {\r\n\t\tthis.adjacencySets = adjacencySets;\r\n\t\tthis.listIterator = this.adjacencySets.iterator();\r\n\t\tthis.listIterator.advance();\r\n\t\tthis.elementIterator = this.listIterator.value().iterator();\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.util.Iterator#hasNext()\r\n\t */\r\n\tpublic boolean hasNext() {\r\n\t\tif (this.listIterator.hasNext()) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn this.elementIterator.hasNext();\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.util.Iterator#next()\r\n\t */\r\n\tpublic IntIntPair next() {\r\n\t\tif (!this.elementIterator.hasNext()) {\r\n\t\t\tthis.listIterator.advance();\r\n\t\t\tthis.elementIterator = this.listIterator.value().iterator();\r\n\t\t}\r\n\r\n\t\tint j = this.listIterator.key();\r\n\t\tint i = this.elementIterator.next();\r\n\t\treturn new IntIntPair(i, j);\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.util.Iterator#remove()\r\n\t */\r\n\tpublic void remove() {\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/UndirectedListGraph.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.graph;\n\nimport edu.stanford.math.primitivelib.autogen.pair.IntIntPair;\nimport gnu.trove.TIntHashSet;\nimport gnu.trove.TIntIntHashMap;\nimport gnu.trove.TIntIntIterator;\nimport gnu.trove.TIntObjectHashMap;\n\nimport java.util.Iterator;\n\n/**\n * This class implements the functionality of an undirected graph. It uses an\n * adjacency list data structure. That is, for each vertex u, it stores the set\n * of vertices {v_1, .., v_k} such that u is connected to v_i and v_i < u.\n * \n * For example consider the following graph: <code>\n * 0 -- 1\n * |\t|\n * 2 -- 3 -- 4\n * </code>\n * \n * The following storage scheme is used: 1: {0} 2: {0} 3: {1, 2} 4: {3}\n * \n * \n * @author Andrew Tausz\n * \n */\npublic class UndirectedListGraph implements AbstractUndirectedGraph {\n\tprivate static final long serialVersionUID = -6877203803491057242L;\n\n\t/**\n\t * This is the adjacency set structure\n\t */\n\tprivate final TIntObjectHashMap<TIntHashSet> adjacencySets;\n\n\tprivate final TIntIntHashMap degrees = new TIntIntHashMap();\n\t\n\t/**\n\t * Stores the number of vertices in the graph - must be prespecified\n\t */\n\tprivate final int numVertices;\n\n\t/**\n\t * Constructor which initializes the graph to consist of disconnected\n\t * vertices. The number of vertices is initialized to numVertices.\n\t * \n\t * @param numVertices\n\t *            the number of vertices to initialize the graph with\n\t */\n\tpublic UndirectedListGraph(int numVertices) {\n\t\tthis.numVertices = numVertices;\n\t\tthis.adjacencySets = new TIntObjectHashMap<TIntHashSet>();\n\t}\n\t\n\tpublic UndirectedListGraph(final int numVertices, final TIntObjectHashMap<TIntHashSet> adjacencySets) {\n\t\tthis.numVertices = numVertices;\n\t\tthis.adjacencySets = adjacencySets;\n\t}\n\t\n\t/**\n\t * This constructor initializes the graph with the contents of another\n\t * graph.\n\t * \n\t * @param graph\n\t *            the graph to initialize with\n\t */\n\tpublic UndirectedListGraph(AbstractUndirectedGraph graph) {\n\t\tthis.numVertices = graph.getNumVertices();\n\t\tthis.adjacencySets = new TIntObjectHashMap<TIntHashSet>();\n\n\t\tfor (IntIntPair edge : graph) {\n\t\t\tthis.addEdge(edge.getFirst(), edge.getSecond());\n\t\t}\n\t}\n\n\t/**\n\t * Constructor which initializes the graph to contain the edges given in the\n\t * specified adjacency matrix.\n\t * \n\t * @param adjacencyMatrix\n\t *            the adjacency matrix to initialize with\n\t */\n\tpublic UndirectedListGraph(int[][] adjacencyMatrix) {\n\t\tint n = adjacencyMatrix.length;\n\t\tthis.numVertices = n;\n\t\tthis.adjacencySets = new TIntObjectHashMap<TIntHashSet>();\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tfor (int j = 0; j < i; j++) {\n\t\t\t\tif (adjacencyMatrix[i][j] != 0) {\n\t\t\t\t\tthis.addEdge(i, j);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * (non-Javadoc)\n\t * \n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#addEdge(int, int)\n\t */\n\tpublic void addEdge(int i, int j) {\n\t\t\n\t\tif (this.containsEdge(i, j)) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tint x = (i < j ? i : j);\n\t\tint y = (i < j ? j : i);\n\t\tif (!this.adjacencySets.containsKey(y)) {\n\t\t\tthis.adjacencySets.put(y, new TIntHashSet());\n\t\t}\n\t\tthis.adjacencySets.get(y).add(x);\n\t\t\n\t\tif (!this.degrees.containsKey(x)) {\n\t\t\tthis.degrees.put(x, 0);\n\t\t}\n\t\tif (!this.degrees.containsKey(y)) {\n\t\t\tthis.degrees.put(y, 0);\n\t\t}\n\t\tthis.degrees.put(x, this.degrees.get(x) + 1);\n\t\tthis.degrees.put(y, this.degrees.get(y) + 1);\n\t}\n\n\t/*\n\t * (non-Javadoc)\n\t * \n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#containsEdge(int,\n\t * int)\n\t */\n\tpublic boolean containsEdge(int i, int j) {\n\t\tint x = (i < j ? i : j);\n\t\tint y = (i < j ? j : i);\n\t\tif (!this.adjacencySets.containsKey(y)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.adjacencySets.get(y).contains(x);\n\t}\n\n\t/*\n\t * (non-Javadoc)\n\t * \n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#getNumEdges()\n\t */\n\tpublic int getNumEdges() {\n\t\t// use the fact that: sum deg_j = 2 * |E|\n\t\t\n\t\tint degreeSum = 0;\n\t\t\n\t\tTIntIntIterator iter = this.degrees.iterator();\n\t\t\n\t\twhile(iter.hasNext()) {\n\t\t\titer.advance();\n\t\t\tdegreeSum += iter.value();\n\t\t}\n\t\t\n\t\treturn (degreeSum / 2);\n\t}\n\n\t/*\n\t * (non-Javadoc)\n\t * \n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#getNumVertices()\n\t */\n\tpublic int getNumVertices() {\n\t\treturn this.numVertices;\n\t}\n\n\t/*\n\t * (non-Javadoc)\n\t * \n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#removeEdge(int, int)\n\t */\n\tpublic void removeEdge(int i, int j) {\n\t\tint x = (i < j ? i : j);\n\t\tint y = (i < j ? j : i);\n\t\tif (!this.adjacencySets.containsKey(y)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.adjacencySets.get(y).remove(x);\n\t\tif (this.adjacencySets.get(y).isEmpty()) {\n\t\t\tthis.adjacencySets.remove(y);\n\t\t}\n\t\tthis.degrees.put(x, this.degrees.get(x) - 1);\n\t\tthis.degrees.put(y, this.degrees.get(y) - 1);\n\t}\n\n\t/**\n\t * This function returns the set of neighbors of vertex i in the graph which\n\t * have indices less than i.\n\t * \n\t * @param i\n\t *            the vertex to query\n\t * @return the set of j such that j < i and i ~ j\n\t */\n\tpublic TIntHashSet getLowerNeighbors(int i) {\n\t\tif (this.adjacencySets.contains(i)) {\n\t\t\treturn this.adjacencySets.get(i);\n\t\t} else {\n\t\t\treturn new TIntHashSet();\n\t\t}\n\t}\n\n\tpublic Iterator<IntIntPair> iterator() {\n\t\treturn new UndirectedListEdgeIterator(this.adjacencySets);\n\t}\n\n\tpublic int getDegree(int v) {\n\t\treturn this.degrees.get(v);\n\t}\n\t\n\tpublic int[] getDegreeSequence() {\n\t\tint[] sequence = new int[this.numVertices];\n\t\t\n\t\tfor (int i = 0; i < this.numVertices; i++) {\n\t\t\tsequence[i] = this.degrees.get(i);\n\t\t}\n\t\t\n\t\treturn sequence;\n\t}\n\n\tpublic int[] getNeighbors(int v) {\n\t\tTIntHashSet set = new TIntHashSet();\n\t\tset.addAll(this.getLowerNeighbors(v).toArray());\n\t\t\n\t\tfor (int i = v + 1; i < this.numVertices; i++) {\n\t\t\tif (this.adjacencySets.containsKey(i)) {\n\t\t\t\tif (this.adjacencySets.get(i).contains(v)) {\n\t\t\t\t\tset.add(i);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn set.toArray();\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/UndirectedWeightedListGraph.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.graph;\n\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\nimport edu.stanford.math.primitivelib.autogen.pair.IntIntPair;\nimport gnu.trove.TIntDoubleHashMap;\nimport gnu.trove.TIntDoubleIterator;\nimport gnu.trove.TIntHashSet;\nimport gnu.trove.TIntIntHashMap;\nimport gnu.trove.TIntObjectHashMap;\nimport gnu.trove.TIntObjectIterator;\n\nimport java.util.HashSet;\nimport java.util.Iterator;\nimport java.util.Set;\n\n/**\n * This class implements the functionality of an undirected weighted graph.\n * It uses an adjacency list representation. See the class\n * UndirectedListGraph for more information about the internal representation.\n * \n * @author Andrew Tausz\n *\n */\npublic class UndirectedWeightedListGraph implements AbstractWeightedUndirectedGraph {\n\tprivate static final long serialVersionUID = -4885036152039543245L;\n\tprivate final TIntObjectHashMap<TIntDoubleHashMap> adjacencySets = new TIntObjectHashMap<TIntDoubleHashMap>();\n\tprivate final int numVertices;\n\tprivate final TIntIntHashMap degrees = new TIntIntHashMap();\n\t\n\t/**\n\t * Constructor which initializes the graph to consist of disconnected\n\t * vertices. The number of vertices is initialized to numVertices.\n\t * \n\t * @param numVertices the number of vertices to initialize the graph with\n\t */\n\tpublic UndirectedWeightedListGraph(int numVertices) {\n\t\tthis.numVertices = numVertices;\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex_plus.graph.AbstractWeightedGraph#addEdge(int, int, double)\n\t */\n\tpublic void addEdge(int i, int j, double weight) {\n\t\tExceptionUtility.verifyIndex(this.numVertices, i);\n\t\tExceptionUtility.verifyIndex(this.numVertices, j);\n\t\tint x = (i < j ? i : j);\n\t\tint y = (i < j ? j : i);\n\t\tif (!this.adjacencySets.containsKey(y)) {\n\t\t\tthis.adjacencySets.put(y, new TIntDoubleHashMap());\n\t\t}\n\t\tthis.adjacencySets.get(y).put(x, weight);\n\t\t\n\t\tif (!this.degrees.containsKey(x)) {\n\t\t\tthis.degrees.put(x, 0);\n\t\t}\n\t\tif (!this.degrees.containsKey(y)) {\n\t\t\tthis.degrees.put(y, 0);\n\t\t}\n\t\tthis.degrees.put(x, this.degrees.get(x) + 1);\n\t\tthis.degrees.put(y, this.degrees.get(y) + 1);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex_plus.graph.AbstractWeightedGraph#getWeight(int, int)\n\t */\n\tpublic double getWeight(int i, int j) {\n\t\tExceptionUtility.verifyIndex(this.numVertices, i);\n\t\tExceptionUtility.verifyIndex(this.numVertices, j);\n\t\tint x = (i < j ? i : j);\n\t\tint y = (i < j ? j : i);\n\t\tif (!this.adjacencySets.containsKey(y)) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn this.adjacencySets.get(y).get(x);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#addEdge(int, int)\n\t */\n\tpublic void addEdge(int i, int j) {\n\t\tthis.addEdge(i, j, 1);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#containsEdge(int, int)\n\t */\n\tpublic boolean containsEdge(int i, int j) {\n\t\treturn (this.getWeight(i, j) != 0);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#getNumEdges()\n\t */\n\tpublic int getNumEdges() {\n\t\tint sum = 0;\n\t\tfor(int k : degrees.getValues())\n\t\t\tsum += k;\n\t\treturn(sum/2);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#getNumVertices()\n\t */\n\tpublic int getNumVertices() {\n\t\treturn this.numVertices;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex_plus.graph.AbstractGraph#removeEdge(int, int)\n\t */\n\tpublic void removeEdge(int i, int j) {\n\t\tExceptionUtility.verifyIndex(this.numVertices, i);\n\t\tExceptionUtility.verifyIndex(this.numVertices, j);\n\t\tint x = (i < j ? i : j);\n\t\tint y = (i < j ? j : i);\n\t\tif (!this.adjacencySets.containsKey(y)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.adjacencySets.get(y).remove(x);\n\t}\n\t\n\t/**\n\t * This function returns the set of neighbors of vertex i in the graph\n\t * which have indices less than i.\n\t * \n\t * @param i the vertex to query\n\t * @return the set of j such that j < i and i ~ j\n\t */\n\tpublic TIntHashSet getLowerNeighbors(int i) {\n\t\tExceptionUtility.verifyIndex(this.numVertices, i);\n\t\tif (this.adjacencySets.contains(i)) {\n\t\t\tint [] array = this.adjacencySets.get(i).keys();\n\t\t\treturn new TIntHashSet(array);\n\t\t} else {\n\t\t\treturn new TIntHashSet();\n\t\t}\n\t}\n\n\tpublic TIntObjectHashMap<TIntHashSet> getUnweightedAdjacencySets() {\n\t\tTIntObjectHashMap<TIntHashSet> result = new TIntObjectHashMap<TIntHashSet>();\n\t\t\n\t\tTIntObjectIterator<TIntDoubleHashMap> iterator = adjacencySets.iterator();\n\t\t\n\t\twhile(iterator.hasNext()) {\n\t\t\titerator.advance();\n\t\t\t\n\t\t\tint i = iterator.key();\n\t\t\tTIntDoubleHashMap value = iterator.value();\n\t\t\t\n\t\t\tTIntDoubleIterator iterator2 = value.iterator();\n\t\t\t\n\t\t\tTIntHashSet neighbors = new TIntHashSet();\n\t\t\t\n\t\t\twhile(iterator2.hasNext()) {\n\t\t\t\titerator2.advance();\n\t\t\t\t\n\t\t\t\tint j = iterator2.key();\n\t\t\t\tneighbors.add(j);\n\t\t\t}\n\t\t\t\n\t\t\tresult.put(i, neighbors);\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic UndirectedListGraph toUnweightedGraph() {\n\t\treturn new UndirectedListGraph(this.numVertices, this.getUnweightedAdjacencySets());\n\t}\n\t\n\tpublic Iterator<IntIntPair> iterator() {\n\t\treturn new UndirectedListEdgeIterator(this.getUnweightedAdjacencySets());\n\t}\n\n\tpublic int getDegree(int v) {\n\t\treturn this.degrees.get(v);\n\t}\n\t\n\tpublic int[] getDegreeSequence() {\n\t\tint[] sequence = new int[this.numVertices];\n\t\t\n\t\tfor (int i = 0; i < this.numVertices; i++) {\n\t\t\tsequence[i] = this.degrees.get(i);\n\t\t}\n\t\t\n\t\treturn sequence;\n\t}\n\n\tpublic int[] getNeighbors(int v) {\n\t\tTIntHashSet set = new TIntHashSet();\n\t\tset.addAll(this.getLowerNeighbors(v).toArray());\n\t\t\n\t\tfor (int i = v + 1; i < this.numVertices; i++) {\n\t\t\tif (this.adjacencySets.containsKey(i)) {\n\t\t\t\tif (this.adjacencySets.get(i).containsKey(v)) {\n\t\t\t\t\tset.add(i);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn set.toArray();\n\t}\n\t\n\tpublic Set<Double> getWeights() {\n\t\tSet<Double> weights = new HashSet<Double>();\n\t\tfor (Object x : adjacencySets.getValues())\n\t\t\tfor (Double weight : ((TIntDoubleHashMap) x).getValues())\n\t\t\t\tweights.add(weight);\n\t\treturn weights;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/io/GraphDotWriter.java",
    "content": "package edu.stanford.math.plex4.graph.io;\r\n\r\nimport java.io.BufferedWriter;\r\nimport java.io.FileWriter;\r\nimport java.io.IOException;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.io.ObjectWriter;\r\nimport edu.stanford.math.primitivelib.autogen.pair.IntIntPair;\r\n\r\npublic class GraphDotWriter implements ObjectWriter<AbstractUndirectedGraph> {\r\n\r\n\tpublic void writeToFile(AbstractUndirectedGraph object, String path) throws IOException {\r\n\t\tBufferedWriter writer = null;\r\n\t\t\r\n\t\ttry {\r\n\t\t\twriter = new BufferedWriter(new FileWriter(path, false));\r\n\t\t\t\r\n\t\t\twriter.write(\"graph {\");\r\n\t\t\twriter.newLine();\r\n\t\t\t\r\n\t\t\tfor (IntIntPair edge : object) {\r\n\t\t\t\twriter.write(edge.getFirst() +  \" -- \" + edge.getSecond() + \";\");\r\n\t\t\t\twriter.newLine();\r\n\t\t\t}\r\n\t\t\r\n\t\t\twriter.write(\"}\");\r\n\t\t\twriter.newLine();\r\n\t\t\t\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\tif (writer != null) {\r\n\t\t\t\twriter.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic String getExtension() {\r\n\t\treturn \".dot\";\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/metric/GraphMetricFactory.java",
    "content": "package edu.stanford.math.plex4.graph.metric;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\r\n\r\n/**\r\n * This interface defines the functionality of a factory which creates a metric space on a \r\n * given graph.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic interface GraphMetricFactory {\r\n\t\r\n\t/**\r\n\t * This function produces a finite metric space on the vertex set of a given graph.\r\n\t * \r\n\t * @param graph the graph whose vertex set forms the point set of the metric space\r\n\t * @return a metric space created from the graph\r\n\t */\r\n\tpublic AbstractIntMetricSpace createMetricSpace(AbstractUndirectedGraph graph);\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/metric/ShortestPathMetric.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.graph.metric;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.graph.utility.GraphUtility;\r\nimport edu.stanford.math.plex4.metric.impl.ExplicitMetricSpace;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\r\n\r\n/**\r\n * This class produces a metric space that is defined by the shortest-path distance\r\n * between vertices in a graph. It implements the GraphMetricFactory interface, meaning\r\n * that it produces a metric space, but is not a metric space.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class ShortestPathMetric implements GraphMetricFactory {\r\n\tprivate static final ShortestPathMetric instance = new ShortestPathMetric();\r\n\tprivate ShortestPathMetric(){}\r\n\t\r\n\tpublic static ShortestPathMetric getInstance() {\r\n\t\treturn instance;\r\n\t}\r\n\t\r\n\tpublic AbstractIntMetricSpace createMetricSpace(AbstractUndirectedGraph graph) {\r\n\t\treturn new ExplicitMetricSpace(GraphUtility.computeShortestPaths(graph));\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/BAGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayMath;\r\n\r\n/**\r\n * Implements a Barabasi-Albert (BA) random graph model.\r\n * \r\n * From Wikipedia: The Barabasi-Albert (BA) model is an algorithm for generating\r\n * random scale-free networks using a preferential attachment mechanism.\r\n * Scale-free networks are widely observed in natural and man-made systems,\r\n * including the Internet, the world wide web, citation networks, and some\r\n * social networks.\r\n * \r\n * @author Tim Harrington\r\n * @date Feb 7, 2009\r\n * \r\n */\r\npublic class BAGraph extends GraphInstanceGenerator {\r\n\tprivate static final long serialVersionUID = -2891811948996610346L;\r\n\tprotected int nParam;\r\n\tprotected int mParam;\r\n\r\n\tpublic BAGraph(int n, int m) {\r\n\t\tthis.nParam = n;\r\n\t\tthis.mParam = m;\r\n\t}\r\n\r\n\t/**\r\n\t * This algorithm makes a power law graph with n nodes. First it makes a\r\n\t * connected starter graph with m nodes. Then it adds new nodes with up to m\r\n\t * edges to existing nodes. An edge to node i is added with probability\r\n\t * \r\n\t * p_i = \\frac{k_i}{\\displaystyle\\sum_j k_j},\r\n\t * \r\n\t * where k_j is the degree of node j.\r\n\t * \r\n\t * @param dataDimension\r\n\t *            the size of the graph\r\n\t * @param numDataPoints\r\n\t *            the number of potential edges to add at each step where m<<n\r\n\t */\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(this.nParam);\r\n\r\n\t\tgraph = this.makeStarterGraph(this.mParam, graph);\r\n\r\n\t\tfor (int j = this.mParam; j < this.nParam; j++) { // j is the index of\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// the next node to\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// connect\r\n\r\n\t\t\t// add m edges from j to the existing graph\r\n\t\t\tfor (int k = 0; k < this.mParam; k++) {\r\n\t\t\t\t// get the degree sequence of the first j-1 nodes\r\n\t\t\t\tint[] d = java.util.Arrays.copyOfRange(graph.getDegreeSequence(), 0, j);\r\n\t\t\t\tif (d.length != j)\r\n\t\t\t\t\tthrow new IllegalStateException(); // sanity check\r\n\r\n\t\t\t\t// choose the next node to connect to\r\n\t\t\t\tdouble[] p = getProbabilityPartition(d);\r\n\t\t\t\tdouble x = RandomUtility.nextUniform();\r\n\t\t\t\tint i = whichSegmentHasX(p, x);\r\n\r\n\t\t\t\t// connect to that node\r\n\t\t\t\tgraph.addEdge(j, i);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the segment i such that x is in [p[i],p[i+1]]. The partition p\r\n\t * has n+1 values representing n segments. Therefore the returned value will\r\n\t * always be between 0 and n-1.\r\n\t * \r\n\t * @param p\r\n\t * @param x\r\n\t * @return\r\n\t */\r\n\tprotected int whichSegmentHasX(double[] p, double x) {\r\n\r\n\t\tfor (int i = 0; i < p.length - 1; i++) {\r\n\t\t\tif (x <= p[i + 1]) {\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if the code ever reaches this point then there is a bug\r\n\t\tthrow new IllegalStateException();\r\n\t}\r\n\r\n\t/**\r\n\t * Constructs a partition p of [0,1] such that p[i+1]-p[i] is proportional\r\n\t * to the degree of node i in the list d. The return value p satisfies p[i]\r\n\t * <= p[i+1], p[0]==0, and p[end] = 1.\r\n\t * \r\n\t * @param d\r\n\t * @return\r\n\t */\r\n\tprotected double[] getProbabilityPartition(int[] d) {\r\n\t\tdouble[] p = new double[d.length + 1];\r\n\t\tp[0] = 0d;\r\n\r\n\t\t/*\r\n\t\t * Add 1 to each element of d so that nodes with degree zero have a\r\n\t\t * chance at being used for an edge\r\n\t\t */\r\n\t\tint[] dplus1 = IntArrayMath.scalarAdd(d, 1);\r\n\t\tdouble sum = IntArrayMath.sum(dplus1);\r\n\r\n\t\t/*\r\n\t\t * Construct the partition with each segment proportional to the degree\r\n\t\t * of the corresponding node.\r\n\t\t */\r\n\t\tfor (int i = 1; i <= d.length; i++) {\r\n\t\t\tdouble deg = d[i - 1];\r\n\t\t\tp[i] = p[i - 1] + deg / sum;\r\n\t\t}\r\n\r\n\t\t// correct rounding errors\r\n\t\tp[p.length - 1] = 1;\r\n\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Make a starter graph, in this case a line\r\n\t * \r\n\t * TODO: what kind of starter graph??\r\n\t * \r\n\t * @param numDataPoints\r\n\t * @return degree sum of the starter graph\r\n\t */\r\n\tprotected AbstractUndirectedGraph makeStarterGraph(int size, AbstractUndirectedGraph graph) {\r\n\t\tfor (int j = 0; j < size; j++) {\r\n\t\t\tfor (int i = 0; i < size; i++) {\r\n\t\t\t\tif (i == j)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\tgraph.addEdge(j, i);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"PreferentialAttachment(\" + this.nParam + \",\" + this.mParam + \")\";\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/BinaryHierarchicalGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\n\r\n/**\r\n * Makes a random hierarchical graph by considering points P = {1,2,...,n} and\r\n * partitions C_{i,j}, where j is the granularity. C_{i,j+1} refines C_{i,j}.\r\n * The probability of an edge between p_1 and p_2 is a function of the largest\r\n * value of j such that there exists C_{i,j} with p_1,p_2 in C_{i,j}.\r\n * \r\n * This is a first attempt approximation to see how PLEX characterizes graphs\r\n * with structure like this.\r\n * \r\n * @author Tim Harrington\r\n * @date Feb 8, 2009\r\n * \r\n */\r\npublic class BinaryHierarchicalGraph extends GraphInstanceGenerator {\r\n\r\n\tprivate static final long serialVersionUID = 830228704317022605L;\r\n\r\n\t/**\r\n\t * Stores the probabilities that govern edge creation at each hierarchy\r\n\t * level.\r\n\t */\r\n\tdouble[] probabilities;\r\n\r\n\tprotected int numNodes;\r\n\tprotected int k; // the k that satisfies [2^k <= n < 2^{k+1}]\r\n\tprotected double maxProbability;\r\n\r\n\t// set to true to turn on debugging messages\r\n\tprotected boolean debugFlag = false;\r\n\r\n\t/**\r\n\t * @param n\r\n\t *            the number of nodes\r\n\t */\r\n\tpublic BinaryHierarchicalGraph(int n) {\r\n\t\tthis.numNodes = n;\r\n\t\tthis.maxProbability = 1;\r\n\t}\r\n\r\n\t/**\r\n\t * @param n\r\n\t *            the number of nodes in the graph\r\n\t * @param maxProbability\r\n\t *            the maximum edge probability\r\n\t */\r\n\tpublic BinaryHierarchicalGraph(int n, double maxProbability) {\r\n\t\tthis.numNodes = n;\r\n\t\tthis.maxProbability = maxProbability;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a HierarchicalGraph without any edges. Convenience method for use\r\n\t * by classes that extend HierarchicalGraph\r\n\t * \r\n\t * @param n\r\n\t *            the number of nodes\r\n\t * @param dummy\r\n\t *            a dummy variable used to force this constructor to be used\r\n\t */\r\n\tprotected BinaryHierarchicalGraph(int n, boolean dummy) {\r\n\t\tthis.numNodes = n;\r\n\t\tthis.maxProbability = 1;\r\n\t}\r\n\r\n\tpublic double[] getProbabilities() {\r\n\t\treturn probabilities;\r\n\t}\r\n\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\treturn this.construct(this.maxProbability);\r\n\t}\r\n\r\n\t/**\r\n\t * Construct the Hierarchical graph.\r\n\t * \r\n\t * As an approximation, this algorithm considers a binary tree with n nodes,\r\n\t * labeled 1,2,..,n in a BFS. For example,\r\n\t * \r\n\t * 1 / \\ 3 2 / \\ / \\ 7 6 5 4 ...\r\n\t * \r\n\t * Only the leaves of the tree are associated with nodes. To build a binary\r\n\t * tree with n leaves it takes 2^m nodes, where m=floor(ln(n)/ln(2)).\r\n\t * \r\n\t * The probability of edge (a,b) existing is a function of the depth of the\r\n\t * first common ancestor in the tree. For example, if D = maxDepth then\r\n\t * \r\n\t * i,j-depth probability of (i,j) in E 1 p=[1/D]^q 2 p=[2/D]^q 3 p=[3/D]^q\r\n\t * ... D-1 p=[(D-1)/D]^q D p=[D/D]^q\r\n\t * \r\n\t */\r\n\tprotected AbstractUndirectedGraph construct(double maxProbability) {\r\n\r\n\t\tint n = this.numNodes;\r\n\r\n\t\t/*\r\n\t\t * We want to construct the smallest binary tree of size 2^d-1 such that\r\n\t\t * there are at least n leaves. That is, we need to find the k that\r\n\t\t * satisfies [2^k <= n < 2^{k+1}]. For example,\r\n\t\t * \r\n\t\t * 1 k=0 if n=1 / \\ 3 2 k=1 if n=2 / \\ / \\ 7 6 5 4 k=2 if n=3,..,4\r\n\t\t * .............. k=3 if n=5,..,8 ................ k=4 if n=9,..,16\r\n\t\t */\r\n\r\n\t\tint k = getTreeDepth(n);\r\n\t\tdouble[] probabilities;\r\n\t\t// Construct one probability for each common ancestor depth d=1..k-1.\r\n\t\tprobabilities = getProbabilities(k, maxProbability);\r\n\t\t// debug(DoubleArrayReaderWriter.toMatlabString(probabilities));\r\n\t\t// Get the index range i=n0,n0+1,...,n1-1,n1 of the leaves of the\r\n\t\t// binary tree that correspond to the nodes we are interested in.\r\n\t\tint n0 = (int) Math.pow(2d, k);\r\n\t\tint n1 = n0 + n; // get last index value in last row\r\n\t\tdebug(\"The range of leaf nodes is i=\" + n0 + \",...,\" + n1);\r\n\r\n\t\tthis.probabilities = probabilities;\r\n\t\t// Construct the edges\r\n\t\treturn constructEdges(n0, n1, k, probabilities);\r\n\t}\r\n\r\n\t/**\r\n\t * We need one probability for each potential common ancestor depth\r\n\t * d=1..k-1. They are constructed here.\r\n\t * \r\n\t * @param k\r\n\t *            a value such that (2^k <= n <= (2^{k+1})-1)\r\n\t * @param dampingFactor\r\n\t *            a scaling factor in the open set (0,1)\r\n\t * @return\r\n\t */\r\n\tprotected double[] getProbabilities(int k, double dampingFactor) {\r\n\t\t// The size is k since the possible depths are d=0,1,..,k-1\r\n\t\tdouble[] probs = new double[k];\r\n\t\tdouble denom = k;\r\n\t\tfor (int d = 0; d < k; d++) {\r\n\t\t\tdenom = Math.exp(k - d) / Math.exp(1);\r\n\t\t\tprobs[d] = (1 / denom) * dampingFactor;\r\n\t\t}\r\n\t\treturn probs;\r\n\t}\r\n\r\n\t/**\r\n\t * Construct the edges of the graph using probabilities in the array probs.\r\n\t * \r\n\t * @param n0\r\n\t *            the starting index of the binary tree leaves\r\n\t * @param n1\r\n\t *            the ending index of the binary tree leaves\r\n\t * @param k\r\n\t *            a value such that [2^k <= n < 2^{k+1}]\r\n\t * @param probs\r\n\t *            an array of probabilities for each common ancestor depth\r\n\t */\r\n\tprotected AbstractUndirectedGraph constructEdges(int n0, int n1, int k, double[] probs) {\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(numNodes);\r\n\r\n\t\t// Construct a binary tree to compute common ancestors.\r\n\t\tint size = ((int) Math.pow(2, k + 1)) - 1;\r\n\t\tBinaryTree bt = new BinaryTree(size);\r\n\r\n\t\t// Construct the edges\r\n\t\tdouble p;\r\n\t\tint d;\r\n\t\tfor (int i = n0; i < n1; i++) {\r\n\t\t\tfor (int j = i + 1; j < n1; j++) {\r\n\t\t\t\td = bt.commonAncestorDepth(i, j);\r\n\t\t\t\tdebug(\"(\" + i + \",\" + j + \") common depth is \" + d);\r\n\t\t\t\tp = probs[d];\r\n\t\t\t\tif (p == 0)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\tif (p == 1 || RandomUtility.nextBernoulli(p) == 1) {\r\n\t\t\t\t\tgraph.addEdge(i - n0, j - n0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t/**\r\n\t * We want to construct the smallest binary tree of size 2^{d+1}-1 (d>0)\r\n\t * such that there are at least n leaves. That is, we need to find k that\r\n\t * satisfies 2^k <= n < 2^{k+1} To do this we solve for k and let d=ceil(k).\r\n\t * \r\n\t * @return the value of k that satisfies [2^k <= n < 2^{k+1}].\r\n\t */\r\n\tprotected int getTreeDepth(int n) {\r\n\t\t// solve for n = 2^{k+1} - 2^k\r\n\t\tdouble k = Math.log(n) / Math.log(2);\r\n\t\tint depth = (int) Math.ceil(k);\r\n\t\tdebug(\"Tree depth is \" + depth + \".\");\r\n\t\treturn depth;\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"Hierarchical(\" + this.numNodes + \")\";\r\n\t}\r\n\r\n\tprotected void debug(String msg) {\r\n\t\tif (debugFlag) {\r\n\t\t\tSystem.out.println(msg);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/BinaryTree.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\n\r\n/**\r\n * Implements a binary tree of nodes labeled 1,2,...,n.\r\n * \r\n * @author Tim Harrington\r\n * @date Feb 8, 2009\r\n */\r\npublic class BinaryTree {\r\n\r\n\t/*\r\n     * In binary there is a structure to the labels:  \r\n     * \r\n     *          1\r\n     *        /   \\\r\n     *       /     \\\r\n     *      11      10     \r\n     *     /  \\    /  \\\r\n     *   111 110  101 100\r\n     *   \r\n     * I utilize this structure heavily in the following methods.\r\n     * \r\n     */\r\n\r\n\r\n\tprotected int n;\r\n\r\n\tpublic BinaryTree(int n) {\r\n\t\tthis.n = n;\r\n\t}\r\n\r\n\t/**\r\n\t * @return the depth of the deepest node in the tree\r\n\t */\r\n\tpublic int getMaxDepth() {\r\n\t\tint level = 0;\r\n\t\twhile (n >> level != 0) {\r\n\t\t\tlevel++;\r\n\t\t}\r\n\t\treturn level;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the depth of a node in a breadth-first labeled binary tree rooted\r\n\t * at 1. The depth of node 1 is 0.\r\n\t * \r\n\t * @param i\r\n\t *            node label\r\n\t * @return the depth of node i in the tree\r\n\t */\r\n\tpublic int getDepth(int i) {\r\n\t\tint level = 0;\r\n\t\twhile (i >> level != 0) {\r\n\t\t\tlevel++;\r\n\t\t}\r\n\t\treturn level - 1;\r\n\t}\r\n\r\n\t/**\r\n\t * @param i\r\n\t *            node label\r\n\t * @param j\r\n\t *            node label\r\n\t * @return the label of the first common ancestor in the tree\r\n\t */\r\n\tpublic int getCommonAncestor(int i, int j) {\r\n\t\t/* Case 1: i==j */\r\n\t\tif (i == j)\r\n\t\t\treturn i;\r\n\r\n\t\tint x = Math.min(i, j);\r\n\t\tint y = Math.max(i, j);\r\n\t\tint xD = this.getDepth(x);\r\n\t\tint yD = this.getDepth(y);\r\n\r\n\t\t/* Case 2: i!=j */\r\n\r\n\t\t/* Case 2.1: depth(i)==depth(j) */\r\n\t\tif (xD == yD) {\r\n\t\t\tint level = 0;\r\n\t\t\twhile (i >> level != j >> level) {\r\n\t\t\t\tlevel++;\r\n\t\t\t}\r\n\t\t\treturn i >> level;\r\n\t\t}\r\n\r\n\t\t/* Case 2.2: depth(i)!=depth(j) */\r\n\r\n\t\t/* Case 2.2.1: x is an ancestor of y */\r\n\t\tint temp = y >> yD - xD;\r\n\t\tif (x == temp)\r\n\t\t\treturn x;\r\n\r\n\t\t/* Case 2.2.2: x is not an ancestor of y */\r\n\t\tint level = 0;\r\n\t\twhile (x >> level != y >> (yD - xD + level)) {\r\n\t\t\tlevel++;\r\n\t\t}\r\n\t\treturn x >> level;\r\n\t}\r\n\r\n\t/**\r\n\t * @param i\r\n\t *            node label\r\n\t * @param j\r\n\t *            node label\r\n\t * @return tree depth of the first common ancestor of i and j\r\n\t */\r\n\tpublic int commonAncestorDepth(int i, int j) {\r\n\t\tint k = this.getCommonAncestor(i, j);\r\n\t\treturn this.getDepth(k);\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/BinaryTreeGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\n\r\n/**\r\n * @author Tim Harrington\r\n * @date Apr 1, 2009\r\n * \r\n */\r\npublic class BinaryTreeGraph extends GraphInstanceGenerator {\r\n\tprivate static final long serialVersionUID = 379015239255681800L;\r\n\tprotected int n;\r\n\r\n\tpublic BinaryTreeGraph(int n) {\r\n\t\tthis.n = n;\r\n\t}\r\n\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(n);\r\n\t\tint maxDepth = 0;\r\n\t\twhile (n >> maxDepth != 0) {\r\n\t\t\tmaxDepth++;\r\n\t\t}\r\n\r\n\t\t/*\r\n         *  Construct a binary tree by walking the left edge 1,2,4,8,...\r\n         *  At the i-th level, iterate k from 2^i to 2^(i+1) and add an \r\n         *  edge to the two children of k for each k. For example, at \r\n         *  level 1 iterate from k=2 to k=3 and: \r\n         *      for k=2 add (2,4) and (2,5) to the graph\r\n         *      for k=3 add (3,6) and (3,7) to the graph\r\n         *  Alternatively,\r\n         *      for k=2 add (2,2<<1) and (2,2<<1|1) to the graph\r\n         *      for k=3 add (3,3<<1) and (3,3<<1|1) to the graph\r\n         *  \r\n         *         1         \r\n         *       /   \\\r\n         *      3     2      \r\n         *     / \\   / \\\r\n         *    7  6  5   4\r\n         *    ... \r\n         */ \r\n\r\n\t\touter: for (int i = 0; i < maxDepth; i++) {\r\n\t\t\tfor (int j = (1 << i); j < (1 << (i + 1)); j++) {\r\n\t\t\t\tint k = j << 1;\r\n\t\t\t\tif (k > n)\r\n\t\t\t\t\tbreak outer;\r\n\t\t\t\tgraph.addEdge(j - 1, k - 1);\r\n\t\t\t\tint l = (j << 1) | 1;\r\n\t\t\t\tif (l > n)\r\n\t\t\t\t\tbreak outer;\r\n\t\t\t\tgraph.addEdge(j - 1, l - 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"BinaryTreeGraph(\" + this.n + \")\";\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/CircleGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\n\r\n/**\r\n * Class that represents a graph with a circle \"shape\"\r\n * \r\n * @author Tim Harrington\r\n * @date Dec 20, 2008\r\n */\r\npublic class CircleGraph extends GraphInstanceGenerator {\r\n\r\n\tprivate static final long serialVersionUID = -3618903660728579100L;\r\n\tprotected int numNodes; // each node is connected to k neighbours\r\n\tprotected int numNeighbors; // probability of rewiring each edge\r\n\tprotected double rewiringProbability;\r\n\tprotected int numRewired;\r\n\r\n\tpublic CircleGraph(int numNodes, int numNeighbors,\r\n\t\t\tdouble rewiringProbability) {\r\n\t\tthis.numNodes = numNodes;\r\n\t\tthis.numNeighbors = numNeighbors - numNeighbors % 2;\r\n\t\tthis.rewiringProbability = rewiringProbability;\r\n\t}\r\n\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(numNodes);\r\n\t\treturn this.generateWithRewiring(graph);\r\n\t}\r\n\r\n\t/**\r\n\t * @param dataDimension\r\n\t * @param p\r\n\t * @param k\r\n\t */\r\n\tprotected AbstractUndirectedGraph generateWithRewiring(AbstractUndirectedGraph graph) {\r\n\t\tint n = this.numNodes;\r\n\r\n\t\tfor (int i = 0; i < this.numNodes; i++) {\r\n\t\t\tfor (int j = 0; j < this.numNeighbors / 2; j++) {\r\n\t\t\t\tif (RandomUtility.nextBernoulli(this.rewiringProbability) == 1) { // rewire\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// the\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// connection\r\n\t\t\t\t\tthis.numRewired += 1;\r\n\t\t\t\t\tint randNode = RandomUtility.nextUniformInt(0, n - 1);\r\n\t\t\t\t\twhile (randNode == i) { // don't allow randNode to equal i\r\n\t\t\t\t\t\trandNode = RandomUtility.nextUniformInt(0, n - 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tgraph.addEdge(i, randNode);\r\n\t\t\t\t} else { // don't rewire the connection\r\n\t\t\t\t\t// check if we need to wrap the indices around\r\n\t\t\t\t\tif (i + j + 1 > n - 1) { // we need to\r\n\t\t\t\t\t\tgraph.addEdge(i, i + j + 1 - n);\r\n\t\t\t\t\t} else { // we don't need to\r\n\t\t\t\t\t\tgraph.addEdge(i, i + j + 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t\r\n\t\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn new String(\"CircleGraph(\" + this.numNodes + \", \" + this.numNeighbors + \", \" + this.rewiringProbability + \")\");\r\n\t}\r\n\r\n\t/**\r\n\t * @param dataDimension\r\n\t * @param k\r\n\t */\r\n\t/*\r\n\t * protected void generateWithoutRewiring(int n, int k) { for (int i=0; i<n;\r\n\t * i++) { for (int j=0; j<(k-k%2)/2; j++) { // check if we need to wrap the\r\n\t * indices around if (i+j+1>n-1) { // we need to graph.addEdge(i,i+j+1-n); }\r\n\t * else { // we don't need to graph.addEdge(i,i+j+1); } } } }\r\n\t */\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see edu.stanford.cme.smallworld.ArtificialNetwork#generateNeighbors()\r\n\t */\r\n\t/*\r\n\t * @Override public void generateNeighbors() { int n = this.getNodeCount();\r\n\t * double p = this.getRewireProb(); int k = this.getNeighborCount(); if\r\n\t * (Math.min(p,1-p) != 0) { this.generateWithRewiring(n, p, k); } else {\r\n\t * this.generateWithoutRewiring(n, k); } }\r\n\t */\r\n\tpublic String correctBettiSequence() {\r\n\t\treturn \"BN{1, 1}\";\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/ClusteredERGraph.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.graph.random;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.Formatter;\r\nimport java.util.List;\r\nimport java.util.Locale;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\n\r\n/**\r\n * Makes a clustered graph by connecting a specified number of clusters (i.e. \r\n * ErdosRenyi graphs) in a specified way.\r\n * \r\n * @author Tim Harrington\r\n * @date Oct 15, 2009\r\n */\r\npublic class ClusteredERGraph extends GraphInstanceGenerator {\r\n\r\n\tprivate static final long serialVersionUID = -1685211333671788823L;\r\n\t// variables for defining the clusters\r\n\tint[] clusterSizes; // how many nodes in each cluster\r\n\tdouble[] clusterParams; // the ER-parameter for each cluster\r\n\t\r\n\t// variables for specifiying how the clusters should be connected\r\n\tList<Integer> srcClusters = new ArrayList<Integer>();\r\n\tList<Integer> destClusters = new ArrayList<Integer>();\r\n\tList<Integer> edgeCounts = new ArrayList<Integer>(); // as a % of nodes in source cluster\r\n\r\n\t// node count\r\n\tint n = 0;\r\n\t\r\n\tpublic ClusteredERGraph(int clusterCount) {\r\n\t\tthis.clusterSizes = new int[clusterCount];\r\n\t\tthis.clusterParams = new double[clusterCount];\r\n\t}\r\n\t\r\n\t/**\r\n\t * Warning: No input validation is performed. \r\n\t * \r\n\t * @param index\r\n\t * @param size\r\n\t * @param param\r\n\t */\r\n\tpublic void defineCluster(int index, int size, double param) {\r\n\t\tn += size;\r\n\t\tclusterSizes[index] = size;\r\n\t\tclusterParams[index] = param;\r\n\t}\r\n\r\n\t/**\r\n\t * Warning: No input validation is performed. \r\n\t * \r\n\t * @param srcIndex\r\n\t * @param destIndex\r\n\t * @param param\r\n\t */\r\n\tpublic void linkClusters(int srcIndex, int destIndex, int edgeCount) {\r\n\t\tsrcClusters.add(Integer.valueOf(srcIndex));\r\n\t\tdestClusters.add(Integer.valueOf(destIndex));\r\n\t\tedgeCounts.add(Integer.valueOf(edgeCount));\r\n\t}\r\n\t\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(n);\r\n\t\t\r\n\t\t// store the cluster starting points\r\n\t\tint[] startingPoints = new int[clusterSizes.length];\r\n\t\t\r\n\t\t// make the clusters\r\n\t\tint start = 0; // stores the next cluster starting point\r\n\t\tfor (int i=0; i<clusterSizes.length; i++) {\r\n\t\t\tmakeClusterInPlace(graph,start,start+clusterSizes[i],clusterParams[i]);\r\n\t\t\tstartingPoints[i] = start;\r\n\t\t\tstart += clusterSizes[i];\r\n\t\t}\r\n\t\t\r\n\t\t// link the clusters\r\n\t\tint srcId;\r\n\t\tint dstId;\r\n\t\tfor (int j=0; j<srcClusters.size(); j++) {\r\n\t\t\tsrcId = srcClusters.get(j); \r\n\t\t\tdstId = destClusters.get(j);\r\n\t\t\tlinkClustersInPlace(graph,\r\n\t\t\t\t\tstartingPoints[srcId],startingPoints[srcId]+ clusterSizes[srcId],\r\n\t\t\t\t\tstartingPoints[dstId],startingPoints[dstId]+ clusterSizes[dstId],\r\n\t\t\t\t\tedgeCounts.get(j));\r\n\t\t}\r\n\t\t\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t/**\r\n\t * @param graph graph to add edges to\r\n\t * @param srcStart Start of the source cluster range (inclusive)\r\n\t * @param srcEnd End of the source cluster range (exlusive)\r\n\t * @param dstStart Start of the dest cluster range (inclusive)\r\n\t * @param dstEnd End of the dest cluster range (exlusive)\r\n\t * @param edgeCount number of edges to randomly make\r\n\t */\r\n\tprotected void linkClustersInPlace(AbstractUndirectedGraph graph, int srcStart, int srcEnd, \r\n\t\t\tint dstStart, int dstEnd, int edgeCount) {\r\n\t\tint src;\r\n\t\tint dst;\r\n\t\tfor (int i=0; i<edgeCount; i++) {\r\n\t\t\tsrc = getRandomIntInRange(srcStart,srcEnd);\r\n\t\t\tdst = getRandomIntInRange(dstStart,dstEnd);\r\n\t\t\tgraph.addEdge(src,dst);\r\n\t\t}\r\n    }\r\n\r\n\t/**\r\n\t * @param x0 start of range (inclusive)\r\n\t * @param x1 end of range (exclusive)\r\n\t * @return a random integer in [x0,x1) \r\n\t */\r\n\tprotected int getRandomIntInRange(int x0, int x1) {\r\n\t\treturn RandomUtility.nextUniformInt(x0,x1-1);\r\n\t}\r\n\t\r\n\t/**\r\n\t * @param graph the graph to add edges to\r\n\t * @param startNode the first node in the cluster (inclusive)\r\n\t * @param endNode one greater than the last node in the cluster\r\n\t * @param p edge probability\r\n\t */\r\n\tprotected void makeClusterInPlace(AbstractUndirectedGraph graph, int startNode, \r\n\t\t\tint endNode, double p) {\r\n\t\tfor (int i = startNode; i < endNode; i++) {\r\n\t\t\tfor (int j = startNode; j < endNode; j++) {\r\n\t\t\t\t// don't make loops\r\n\t\t\t\tif (i == j)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t// add edge with probability p\r\n\t\t\t\tif (RandomUtility.nextBernoulli(p) == 1) {\r\n\t\t\t\t\tgraph.addEdge(i, j);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic String explain() {\r\n\t\tStringBuilder sb = new StringBuilder();\r\n\t\tFormatter f = new Formatter(sb, Locale.US);\r\n\t\tsb.append(\"[\");\r\n\t\tfor (int i=0; i<clusterSizes.length; i++) {\r\n\t\t\tf.format(\"{%s,%s}\",clusterSizes[i],clusterParams[i]);\r\n\t\t\tif (i==clusterSizes.length-1) {\r\n\t\t\t\tsb.append(\"|\");\r\n\t\t\t} else {\r\n\t\t\t\tsb.append(\",\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (int i=0; i<srcClusters.size(); i++) {\r\n\t\t\tf.format(\"{%s,%s,%s}\",srcClusters.get(i),\r\n\t\t\t\t\tdestClusters.get(i),edgeCounts.get(i));\r\n\t\t\tif (i==srcClusters.size()-1) {\r\n\t\t\t\tsb.append(\"]\");\r\n\t\t\t} else {\r\n\t\t\t\tsb.append(\",\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tf.close();\r\n\t\treturn sb.toString();\r\n\t}\r\n\r\n\t@Override\r\n    public String toString() {\r\n\t    return \"ClusteredERGraph(\" + explain() + \")\";\r\n    }\r\n\t\r\n\t\r\n\t\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/ErdosRenyiGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport java.text.DecimalFormat;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\n\r\n/**\r\n * Implements the Erdos-Renyi G(n,p) model.\r\n * \r\n * From Wikipedia: In the G(n, p) model, a graph is thought to be constructed by\r\n * connecting nodes randomly. Each edge is included in the graph with\r\n * probability p, with the presence or absence of any two distinct edges in the\r\n * graph being independent.\r\n * \r\n * @author Tim Harrington\r\n * @date Dec 22, 2008\r\n * \r\n */\r\npublic class ErdosRenyiGraph extends GraphInstanceGenerator {\r\n\t\r\n\tprivate static final long serialVersionUID = 8667419683575090941L;\r\n\tprotected int n;\r\n\tprotected double p;\r\n\r\n\t/**\r\n\t * @param n\r\n\t * @param k\r\n\t */\r\n\tpublic ErdosRenyiGraph(int n, double p) {\r\n\t\tthis.n = n;\r\n\t\tthis.p = p;\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(n);\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tfor (int j = 0; j < n; j++) {\r\n\t\t\t\t// don't make loops\r\n\t\t\t\tif (i == j)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t// add edge with probability p\r\n\t\t\t\tif (RandomUtility.nextBernoulli(p) == 1) {\r\n\t\t\t\t\tgraph.addEdge(i, j);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\tDecimalFormat df = new DecimalFormat(\"#.###\");\r\n\t\treturn \"ErdosRenyi(\" + n + \",\" + df.format(p) + \")\";\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/ForestFireGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport java.util.Random;\r\n\r\nimport cern.jet.random.AbstractDistribution;\r\nimport cern.jet.random.Distributions;\r\nimport cern.jet.random.Uniform;\r\nimport cern.jet.random.engine.RandomEngine;\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport gnu.trove.TIntArrayList;\r\n\r\n/**\r\n * This class creates a random graph generated from the forest fire model. This\r\n * is described on page 50 of \"Community Structure in Large Networks\", by\r\n * Mahoney, et al. See http://arxiv.org/abs/0810.1355\r\n * \r\n * @author Andrew Tausz\r\n * @date February 7, 2009\r\n */\r\npublic class ForestFireGraph extends GraphInstanceGenerator {\r\n\r\n\tprivate static final long serialVersionUID = -872184123268309649L;\r\n\tprotected double forwardBurningProbability;\r\n\tprotected double backwardBurningProbability;\r\n\tprotected RandomEngine randomEngine = AbstractDistribution\r\n\t\t\t.makeDefaultGenerator();\r\n\tprotected Uniform uniformGenerator = new Uniform(this.randomEngine);\r\n\tprotected int nodeCount;\r\n\r\n\tpublic ForestFireGraph(int n, double forwardBurningProbability,\r\n\t\t\tdouble backwardBurningProbability) {\r\n\t\tthis.nodeCount = n;\r\n\t\tthis.forwardBurningProbability = forwardBurningProbability;\r\n\t\tthis.backwardBurningProbability = backwardBurningProbability;\r\n\t}\r\n\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(this.nodeCount);\r\n\t\t\r\n\t\tboolean[] nodeAdded = new boolean[this.nodeCount];\r\n\t\tint currentNode = 0;\r\n\r\n\t\tfor (int t = 0; t < this.nodeCount; t++) {\r\n\t\t\t// select a node not in the graph\r\n\t\t\twhile (nodeAdded[currentNode] == true) {\r\n\t\t\t\tcurrentNode++;\r\n\t\t\t}\r\n\t\t\t// if we are in the first step, just go to the next iteration\r\n\t\t\tif (t == 0) {\r\n\t\t\t\tnodeAdded[currentNode] = true;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t// add a connection between the new node and a random node in the\r\n\t\t\t// existing graph\r\n\t\t\tint v = currentNode;\r\n\t\t\tint w = uniformGenerator.nextIntFromTo(0, t - 1);\r\n\t\t\tgraph.addEdge(v, w);\r\n\t\t\tnodeAdded[currentNode] = true;\r\n\t\t\tgraph = this.burnNodes(v, w, t, graph);\r\n\t\t}\r\n\r\n\t\treturn graph;\r\n\t}\r\n\r\n\tprivate AbstractUndirectedGraph burnNodes(int v, int w, int t, AbstractUndirectedGraph graph) {\r\n\t\tdouble px = this.forwardBurningProbability\r\n\t\t\t\t/ (1 - this.forwardBurningProbability);\r\n\t\tdouble py = this.backwardBurningProbability\r\n\t\t\t\t/ (1 - this.backwardBurningProbability);\r\n\t\tint x = Distributions.nextGeometric(px, this.randomEngine);\r\n\t\tint y = Distributions.nextGeometric(py, this.randomEngine);\r\n\t\tx = Math.min(x, graph.getDegree(w));\r\n\t\ty = Math.min(y, graph.getDegree(w));\r\n\t\tint[] neighborsSet = graph.getNeighbors(w);\r\n\t\tTIntArrayList neighbors = new TIntArrayList();\r\n\t\tneighbors.add(neighborsSet);\r\n\r\n\t\tint count = 0;\r\n\t\tneighbors.shuffle(new Random());\r\n\t\tint neighbor;\r\n\r\n\t\tfor (int neighborIndex = 0; neighborIndex < neighbors.size(); neighborIndex++) {\r\n\t\t\tneighbor = neighbors.get(neighborIndex);\r\n\t\t\r\n\t\t\tif (!graph.containsEdge(v, neighbor) && (neighbor != v)) {\r\n\t\t\t\tgraph.addEdge(v, neighbor);\r\n\t\t\t\t// this.BurnNodes(v, neighbor, t);\r\n\t\t\t}\r\n\t\t\tcount++;\r\n\t\t\tif (count >= x) break;\r\n\t\t}\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"ForestFire(\" + this.nodeCount + \",\"\r\n\t\t\t\t+ this.forwardBurningProbability + \",\"\r\n\t\t\t\t+ this.backwardBurningProbability + \")\";\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/GraphInstanceGenerator.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport java.io.Serializable;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.graph.UndirectedListGraph;\r\n\r\n/**\r\n * This class abstracts the construction of graphs.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic abstract class GraphInstanceGenerator implements Serializable {\r\n\tprivate static final long serialVersionUID = 6049123403450474191L;\r\n\r\n\tpublic enum ImplementationType {\r\n\t\tadjacencyList, matrix, compact\r\n\t}\r\n\r\n\tprotected ImplementationType implementationType;\r\n\tprotected AbstractUndirectedGraph graphImplementation;\r\n\r\n\tpublic GraphInstanceGenerator() {\r\n\t\tthis.implementationType = ImplementationType.adjacencyList;\r\n\t}\r\n\r\n\tpublic GraphInstanceGenerator(ImplementationType implementationType) {\r\n\t\tthis.implementationType = implementationType;\r\n\t}\r\n\r\n\tpublic void setImplementationType(ImplementationType implementationType) {\r\n\t\tthis.implementationType = implementationType;\r\n\t}\r\n\r\n\tprotected AbstractUndirectedGraph initializeGraph(int numNodes) {\r\n\t\tif (this.implementationType == ImplementationType.adjacencyList) {\r\n\t\t\treturn new UndirectedListGraph(numNodes);\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic abstract AbstractUndirectedGraph generate();\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/HierarchicalERGraph.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.graph.random;\r\n\r\n/**\r\n * @author Tim Harrington\r\n * @date May 6, 2009\r\n * \r\n */\r\npublic class HierarchicalERGraph extends BinaryHierarchicalGraph {\r\n\r\n\tprivate static final long serialVersionUID = 3491552989916440763L;\r\n\tprotected int rootedGraphSize;\r\n\tprotected int hgLeafCount;\r\n\tprotected double erParameter;\r\n\r\n\t/**\r\n\t * Note: n and m should each be a power of 2\r\n\t * \r\n\t * @param n\r\n\t *            - the number of hierarchical graph leaves (this parameter is\r\n\t *            rounded up to the nearest power of 2)\r\n\t * @param m\r\n\t *            - the size of the ER graph rooted at each hierarchical graph\r\n\t *            leaf (this parameter is rounded up to the nearest power of 2)\r\n\t * @param maxProbability\r\n\t * @param erParameter\r\n\t */\r\n\tpublic HierarchicalERGraph(int n, int m, double maxProbability,\r\n\t\t\tdouble erParameter) {\r\n\t\tsuper(roundUpToPowerOf2(n) * roundUpToPowerOf2(m), true);\r\n\t\tthis.rootedGraphSize = roundUpToPowerOf2(m);\r\n\t\tthis.hgLeafCount = roundUpToPowerOf2(n);\r\n\t\tthis.erParameter = erParameter;\r\n\t\tthis.maxProbability = maxProbability;\r\n\t}\r\n\r\n\tprotected static int roundUpToPowerOf2(int m) {\r\n\t\tdouble p = Math.ceil(Math.log(m) / Math.log(2));\r\n\t\treturn (int) Math.pow(2, p);\r\n\t}\r\n\r\n\t/**\r\n\t * We need one probability for each potential common ancestor depth\r\n\t * d=1..k-1. They are constructed here.\r\n\t * \r\n\t * The ER graphs that are rooted at a leaf in the hierarchical graph are\r\n\t * treated as additional j levels of hierarchy. Therefore, the probability\r\n\t * annotations for the last j levels is set to a constant to simulate the ER\r\n\t * construction.\r\n\t * \r\n\t * @param k\r\n\t *            a value such that (2^k <= n <= (2^{k+1})-1)\r\n\t * @param dampingFactor\r\n\t *            a scaling factor in the open set (0,1)\r\n\t * @return\r\n\t */\r\n\tprotected double[] getProbabilities(int k, double dampingFactor) {\r\n\t\tdouble[] probs = new double[k];\r\n\r\n\t\t// Get the number of levels that correspond to each rooted HR graph\r\n\t\tint rLevels = k - getTreeDepth(this.hgLeafCount);\r\n\t\tint hLevels = k - rLevels;\r\n\r\n\t\t/*\r\n\t\t * The first hLevels positions in the array probs are used to store the\r\n\t\t * probability annotations corresponding to the hierarchical graph\r\n\t\t * leaves. The last rLevels (rooted levels) are used to store the\r\n\t\t * Erdos-Renyi parameter.\r\n\t\t */\r\n\r\n\t\t// The size is k since the possible depths are d=0,1,..,k-1\r\n\t\tdouble denom = 0;\r\n\t\tfor (int i = 0; i < hLevels; i++) {\r\n\t\t\tdenom = Math.exp(hLevels - i) / Math.exp(1);\r\n\t\t\tprobs[i] = (1 / denom) * dampingFactor;\r\n\t\t}\r\n\r\n\t\tfor (int j = 0; j < rLevels; j++) {\r\n\t\t\tprobs[hLevels + j] = this.erParameter;\r\n\t\t}\r\n\r\n\t\treturn probs;\r\n\t}\r\n\r\n\tprotected int getERHierarchyLevelCount(int totalLevels) {\r\n\t\treturn totalLevels - getTreeDepth(this.hgLeafCount);\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"HierarchicalER(\" + this.hgLeafCount + \",\"\r\n\t\t\t\t+ this.rootedGraphSize + \",\" + this.maxProbability + \",\"\r\n\t\t\t\t+ this.erParameter + \")\";\r\n\t}\r\n\r\n\tpublic double getErParameter() {\r\n\t\treturn erParameter;\r\n\t}\r\n\r\n\tpublic int getHgLeafCount() {\r\n\t\treturn hgLeafCount;\r\n\t}\r\n\r\n\tpublic int getRootedGraphSize() {\r\n\t\treturn rootedGraphSize;\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/KNearestNeighborsGraph.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\r\n\r\n\r\n/**\r\n * Generates n random points in [0,1]^d and connects each point to its k-nearest\r\n * neighbors\r\n * \r\n * @author Andrew Tausz\r\n */\r\n\r\npublic class KNearestNeighborsGraph extends ManifoldGraph {\r\n\r\n\tprivate static final long serialVersionUID = 8103387342329387307L;\r\n\r\n\tpublic KNearestNeighborsGraph(int size, int dimension, int k) {\r\n\t\tsuper(size, dimension, k);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected double distance(double[] x, double[] y) {\r\n\t\treturn DoubleArrayMath.distance(x, y);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected void generatePoints() {\r\n\t\tthis.generateUniformPoints();\r\n\t}\r\n\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"CubeKNN(\" + this.size + \",\" + this.dimension + \",\" + this.k + \")\";\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/ManifoldGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayQuery;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayQuery;\r\n\r\n/**\r\n * This class is used to create a k-nearest neighbors graph on a manifold.\r\n * It is abstract, and subclasses are required to implement the metric\r\n * on the manifold.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic abstract class ManifoldGraph extends GraphInstanceGenerator {\r\n\r\n\tprivate static final long serialVersionUID = -5873098569927731498L;\r\n\tprotected double points[][];\r\n\tint size;\r\n\tint dimension;\r\n\tint k;\r\n\t\r\n\t/**\r\n\t * Constructor for the ManifoldGraph class.\r\n\t * \r\n\t * @param size the number of points in the graph\r\n\t * @param dimension the dimension of the manifold\r\n\t * @param k the number of points to connect to \r\n\t */\r\n\tprotected ManifoldGraph(int size, int dimension, int k) {\r\n\t\tthis.size = size;\r\n\t\tthis.dimension = dimension;\r\n\t\tthis.k = k;\r\n\t}\r\n\t\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\t// generate random points the manifold\r\n\t\tthis.generatePoints();\r\n\t\t\r\n\t\t// construct graph\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(this.size);\r\n\t\t\r\n\t\t// connect each point to its k closest neighbors\r\n\t\tfor (int i = 0; i < this.size; i++) {\r\n\t\t\tint[] nearestNeighbors = this.getNearestNeighbors(i);\r\n\t\t\t\r\n\t\t\tfor (int j = 0; j < k; j++) {\r\n\t\t\t\tgraph.addEdge(i, nearestNeighbors[j]);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn graph;\r\n\t}\r\n\t\r\n\t\r\n\t/**\r\n\t * This function generates points on the d-dimensional cube [0, 1]^d.\r\n\t * It is intended for manifolds represented by squares (or cubes) with\r\n\t * their edges identified some way.\r\n\t */\r\n\tprotected void generateUniformPoints() {\r\n\t\tthis.points = RandomUtility.uniformMatrix(this.size, this.dimension);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function must generate the set of random points on the manifold.\r\n\t */\r\n\tprotected abstract void generatePoints();\r\n\t\r\n\t/**\r\n\t * This function must implement the distance function on the manifold.\r\n\t * \r\n\t * @param x the first point\r\n\t * @param y the second point\r\n\t * @return the distance between x and y in the manifold\r\n\t */\r\n\tprotected abstract double distance(double[] x, double[] y);\r\n\t\r\n\t/**\r\n\t * This function gets the indices of the k nearest neighbors\r\n\t * to the point at the specified index.\r\n\t * \r\n\t * @param index the index of the point \r\n\t * @return the indices of the k nearest neighbors \r\n\t */\r\n\tprotected int[] getNearestNeighbors(int index) {\r\n\t\tdouble[] x = this.points[index];\r\n\t\tdouble[] distances = new double[this.size];\r\n\t\tint[] nearestNeighbors = new int[this.k];\r\n\t\t\r\n\t\tfor (int i = 0; i < this.size; i++) {\r\n\t\t\tdistances[i] = this.distance(x, this.points[i]);\r\n\t\t}\r\n\t\tnearestNeighbors = DoubleArrayQuery.getMinimumIndices(distances, k + 1);\r\n\t\tnearestNeighbors = IntArrayQuery.removeElement(nearestNeighbors, index);\r\n\t\t\r\n\t\treturn nearestNeighbors;\r\n\t}\r\n\t\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/PrescribedDegrees.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayManipulation;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayMath;\r\n\r\n/**\r\n * Implements a random prescribed degree graph by the algorithm presented in\r\n * J.Blitstein and P.Diaconis\r\n * \r\n * @author Santiago Akle\r\n * @author Tim Harrington\r\n * \r\n */\r\npublic class PrescribedDegrees extends GraphInstanceGenerator {\r\n\r\n\tprivate static final long serialVersionUID = -5243083558152110213L;\r\n\tprotected int[] degreeSequence;\r\n\tprotected int numNodes;\r\n\r\n\tpublic PrescribedDegrees(int[] degreeSequence) {\r\n\t\t// sort the degree sequence\r\n\t\tint[] ds = IntArrayManipulation.sortDescending(degreeSequence);\r\n\r\n\t\t// check if the degree sequence is graphical\r\n\t\tif (!isGraphical(ds)) {\r\n\t\t\tthrow new IllegalArgumentException(\"Infeasible degree sequence\");\r\n\t\t}\r\n\r\n\t\tthis.degreeSequence = ds;\r\n\t\tthis.numNodes = this.degreeSequence.length;\r\n\t}\r\n\r\n\t/**\r\n\t * Implements \"Sequential Algorithm For Random Graph with Given Degrees\"\r\n\t * from \"A SEQUENTIAL IMPORTANCE SAMPLING ALGORITHM FOR GENERATING RANDOM\r\n\t * GRAPHS WITH PRESCRIBED DEGREES\" By Joseph Blitzstein and Persi Diaconis\r\n\t * \r\n\t * @param argd\r\n\t */\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(this.numNodes);\r\n\r\n\t\t// copy the array so we can change it\r\n\t\tint[] d = java.util.Arrays.copyOf(this.degreeSequence,\r\n\t\t\t\tthis.degreeSequence.length);\r\n\r\n\t\t// Initialize variables\r\n\t\tdouble[] p;\r\n\t\tdouble x;\r\n\t\tint[] candidateList;\r\n\t\tint node0 = 0, node1 = 0, i = 0;\r\n\r\n\t\t// STEP 2\r\n\t\twhile (IntArrayMath.max(d) > 0) { // while there are still edges to add\r\n\r\n\t\t\t// STEP 3\r\n\t\t\tnode0 = minPositivePosition(d);\r\n\t\t\t//System.out.println(\"NEW OUTER LOOP ITERATION (node0=\" + node0 + \")\");\r\n\r\n\t\t\twhile (d[node0] > 0) { // while node0 needs a higher degree in the\r\n\t\t\t\t\t\t\t\t\t// graph\r\n\r\n\t\t\t\t// STEP 4\r\n\t\t\t\tcandidateList = getCandidateList(d, node0, graph);\r\n\t\t\t\t//System.out.println(\"candidate list: \" + ArrayUtility.toMatlabString(candidateList));\r\n\r\n\t\t\t\t// STEP 5\r\n\t\t\t\tp = getProbabilityPartition(candidateList);\r\n\t\t\t\tx = RandomUtility.nextUniform();\r\n\t\t\t\ti = whichSegmentHasX(p, x);\r\n\t\t\t\tnode1 = candidateList[i];\r\n\r\n\t\t\t\t// STEP 6\r\n\t\t\t\t//System.out.println(\"adding edge: (\" + node0 + \",\" + node1 + \")\");\r\n\t\t\t\tgraph.addEdge(node0, node1);\r\n\r\n\t\t\t\td = multiMinus(d, node0, node1);\r\n\t\t\t\t//System.out.println(\"updated degree sequence: \" + ArrayUtility.toMatlabString(d));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn graph;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks the Erdos-Gallai criteria for a particular value of k.\r\n\t * \r\n\t * @param d\r\n\t * @param k\r\n\t * @return\r\n\t */\r\n\tprotected static boolean erdosGallaiCriteria(int[] d, int k) {\r\n\t\tint n = d.length;\r\n\r\n\t\tint leftSum = 0;\r\n\t\tfor (int i = 1; i <= k; i++) {\r\n\t\t\tleftSum += d[i - 1];\r\n\t\t}\r\n\r\n\t\tint rightSum = k * (k - 1);\r\n\t\tfor (int i = k + 1; i <= n; i++) {\r\n\t\t\trightSum += Math.min(k, d[i - 1]);\r\n\t\t}\r\n\r\n\t\treturn (leftSum <= rightSum);\r\n\t}\r\n\r\n\t/**\r\n\t * Determines if a degree sequence is realizable using the Erdos-Gallai\r\n\t * Criteria\r\n\t * \r\n\t * @param degreeSequence\r\n\t * @return True if there exists at least one graph with this degree\r\n\t *         sequence.\r\n\t */\r\n\tpublic static boolean isGraphical(int[] d) {\r\n\t\t// check that all entries are nonnegative\r\n\t\tfor (int j = 0; j < d.length; j++) {\r\n\t\t\tif (d[j] < 0)\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// check that sum_{i} d[i] = 0 mod 2\r\n\t\tint sum = 0;\r\n\t\tfor (int j = 0; j < d.length; j++) {\r\n\t\t\tsum += d[j];\r\n\t\t}\r\n\t\tif (sum % 2 != 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// check the Erdos-Gallai criteria\r\n\t\tfor (int k = 1; k <= d.length; k++) {\r\n\t\t\tif (!erdosGallaiCriteria(d, k))\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the segment i such that x is in [p[i],p[i+1]]. The partition p\r\n\t * has n+1 values representing n segments. Therefore the returned value will\r\n\t * always be between 0 and n-1.\r\n\t * \r\n\t * @param p\r\n\t * @param x\r\n\t * @return\r\n\t */\r\n\tprotected int whichSegmentHasX(double[] p, double x) {\r\n\r\n\t\tfor (int i = 0; i < p.length - 1; i++) {\r\n\t\t\tif (x <= p[i + 1]) {\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if the code ever reaches this point then there is a bug\r\n\t\tthrow new IllegalStateException();\r\n\t}\r\n\r\n\t/**\r\n\t * Computes the set of j!=i such that multiminus(d,i,j) is graphical and\r\n\t * (i,j) is not already an edge.\r\n\t * \r\n\t * @param d\r\n\t * @param i\r\n\t * @return\r\n\t */\r\n\tprotected int[] getCandidateList(int[] d, int i, AbstractUndirectedGraph graph) {\r\n\t\tint m = -1;\r\n\t\tint[] list = new int[d.length];\r\n\t\tfor (int k = 0; k < d.length; k++) {\r\n\t\t\tif (k == i)\r\n\t\t\t\tcontinue;\r\n\t\t\tif (isGraphical(IntArrayManipulation.sortDescending(multiMinus(d, i, k)))) {\r\n\t\t\t\tif (!graph.containsEdge(i, k)) {\r\n\t\t\t\t\tm++;\r\n\t\t\t\t\tlist[m] = k;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tint[] retval = java.util.Arrays.copyOfRange(list, 0, m + 1);\r\n\t\treturn retval;\r\n\t}\r\n\r\n\t/**\r\n\t * Constructs a partition p of [0,1] such that p[i+1]-p[i] is proportional\r\n\t * to the degree of node i in the list d. The return value p satisfies p[i]\r\n\t * <= p[i+1], p[0]==0, and p[end] = 1.\r\n\t * \r\n\t * @param d\r\n\t *            degree sequence\r\n\t * @return\r\n\t */\r\n\tprotected double[] getProbabilityPartition(int[] d) {\r\n\t\tdouble[] p = new double[d.length + 1];\r\n\t\tp[0] = 0d;\r\n\r\n\t\t/*\r\n\t\t * Add 1 to each element of d so that nodes with degree zero have a\r\n\t\t * chance at being used for an edge\r\n\t\t */\r\n\t\tint[] dplus1 = IntArrayMath.scalarAdd(d, 1);\r\n\t\tdouble sum = IntArrayMath.sum(dplus1);\r\n\r\n\t\t/*\r\n\t\t * Construct the partition with each segment proportional to the degree\r\n\t\t * of the corresponding node.\r\n\t\t */\r\n\t\tfor (int i = 1; i <= d.length; i++) {\r\n\t\t\tdouble deg = d[i - 1];\r\n\t\t\tp[i] = p[i - 1] + deg / sum;\r\n\t\t}\r\n\r\n\t\t// correct rounding errors\r\n\t\tp[p.length - 1] = 1;\r\n\r\n\t\treturn p;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the array ds with 1 subtracted from the i-th element and 1\r\n\t * subtracted from the j-th element.\r\n\t * \r\n\t * @param ds\r\n\t * @param i\r\n\t * @param j\r\n\t * @return\r\n\t */\r\n\tprotected int[] multiMinus(int[] ds, int i, int j) {\r\n\t\tint[] retval = java.util.Arrays.copyOfRange(ds, 0, ds.length);\r\n\t\tretval[i] -= 1;\r\n\t\tretval[j] -= 1;\r\n\t\treturn retval;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the first index of the smallest positive element or -1 if there\r\n\t * are no positive entries\r\n\t * \r\n\t * @param arr\r\n\t * @return\r\n\t */\r\n\tpublic static int minPositivePosition(int[] arr) {\r\n\t\tint i = -1;\r\n\t\tfor (int j = 1; j < arr.length; j++) {\r\n\t\t\tif (((arr[j] > 0) && i == -1)\r\n\t\t\t\t\t|| (i >= 0 && ((arr[j] < arr[i])) && arr[j] > 0)) {\r\n\t\t\t\ti = j;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn i;\r\n\t}\r\n\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"PrescribedDegreeGraph\";\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/RandomGeometricGraph.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\n\r\n/**\r\n * Generates n random points in [0,1]^d and connects an edge between points x\r\n * and y if d(x,y)<r.\r\n * \r\n * @author Tim Harrington\r\n * @date Mar 8, 2009\r\n */\r\n\r\npublic class RandomGeometricGraph extends GraphInstanceGenerator {\r\n\r\n\tprivate static final long serialVersionUID = -6990717409349574954L;\r\n\tprotected int numNodes;\r\n\tprotected int dimension;\r\n\tdouble radius;\r\n\r\n\t/**\r\n\t * @param n\r\n\t *            the number of nodes\r\n\t * @param d\r\n\t *            the dimension of unit cube to uniformly put points in\r\n\t * @param r\r\n\t *            the radius used to determine if an edge between points exists\r\n\t */\r\n\tpublic RandomGeometricGraph(int n, int d, double r) {\r\n\t\tthis.numNodes = n;\r\n\t\tthis.dimension = d;\r\n\t\tthis.radius = r;\r\n\r\n\t}\r\n\r\n\t@Override\r\n\tpublic AbstractUndirectedGraph generate() {\r\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(numNodes);\r\n\t\t\r\n\t\tdouble[][] points = new double[this.numNodes][this.dimension];\r\n\t\tfor (int i = 0; i < this.numNodes; i++) {\r\n\t\t\tfor (int j = 0; j < this.dimension; j++) {\r\n\t\t\t\tpoints[i][j] = RandomUtility.nextUniform();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdouble dist;\r\n\t\tfor (int i = 0; i < this.numNodes; i++) {\r\n\t\t\tfor (int j = 0; j < this.numNodes; j++) {\r\n\t\t\t\tif (i == j)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\tdist = distance(points[i], points[j]);\r\n\t\t\t\tif (dist < this.radius) {\r\n\t\t\t\t\tgraph.addEdge(i, j);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn graph;\r\n\t}\r\n\r\n\tprotected double distance(double[] x, double[] y) {\r\n\t\tdouble dist = 0;\r\n\t\tfor (int j = 0; j < x.length; j++) {\r\n\t\t\tdist += (x[j] - y[j]) * (x[j] - y[j]);\r\n\t\t}\r\n\t\tdist = Math.sqrt(dist);\r\n\t\treturn dist;\r\n\t}\r\n\r\n\t/*\r\n\t * (non-Javadoc)\r\n\t * \r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"RandomGeometric(\" + this.numNodes + \",\" + this.dimension + \",\" + this.radius + \")\";\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/SphereGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\r\nimport edu.stanford.math.plex4.utility.MathUtility;\r\n\r\n/**\r\n * @author Andrew Tausz\r\n * \r\n */\r\npublic class SphereGraph extends ManifoldGraph {\r\n\r\n\r\n\tprivate static final long serialVersionUID = 2433480265430826207L;\r\n\r\n\tpublic SphereGraph(int size, int k) {\r\n\t\tsuper(size, 2, k);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected double distance(double[] x, double[] y) {\r\n\t\treturn MathUtility.greatCircleDistance(x, y);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected void generatePoints() {\r\n\t\tthis.points = PointCloudExamples.getRandomSpherePoints(this.size, 2);\r\n\t}\r\n\t\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"SphereKNN(\" + this.size + \",\" + this.dimension + \",\" + this.k + \")\";\r\n\t}\r\n}"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/StochasticBlockmodel.java",
    "content": "package edu.stanford.math.plex4.graph.random;\n\nimport java.text.DecimalFormat;\n\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\nimport edu.stanford.math.plex4.utility.RandomUtility;\n\npublic class StochasticBlockmodel extends GraphInstanceGenerator {\n\n\tprivate static final long serialVersionUID = -4992866715916257875L;\n\tprotected final double[][] probabilityMatrix;\n\tprotected final int n;\n\n\tpublic StochasticBlockmodel(int n, double[][] probabilityMatrix) {\n\t\tthis.probabilityMatrix = probabilityMatrix;\n\t\tthis.n = n;\n\t}\n\n\t@Override\n\tpublic AbstractUndirectedGraph generate() {\n\n\t\tAbstractUndirectedGraph graph = this.initializeGraph(n);\n\n\t\t// number of classes\n\t\tint c = probabilityMatrix.length;\n\n\t\tint[] classAssignments = new int[this.n];\n\n\t\t// randomly generate classes\n\t\tfor (int i = 0; i < this.n; i++) {\n\t\t\tclassAssignments[i] = (int) Math.floor(c * RandomUtility.nextUniform());\n\t\t}\n\n\t\tfor (int i = 0; i < this.n; i++) {\n\t\t\tint c_i = classAssignments[i];\n\t\t\tfor (int j = i + 1; j < this.n; j++) {\n\t\t\t\tint c_j = classAssignments[j];\n\n\t\t\t\tdouble p = this.probabilityMatrix[c_i][c_j];\n\t\t\t\t// add edge with probability p\n\t\t\t\tif (RandomUtility.nextBernoulli(p) == 1) {\n\t\t\t\t\tgraph.addEdge(i, j);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn graph;\n\t}\n\n\t@Override\n\tpublic String toString() {\n\t\tStringBuilder builder = new StringBuilder();\n\n\t\tint c = probabilityMatrix.length;\n\n\t\tDecimalFormat df = new DecimalFormat(\"#.###\");\n\n\t\tfor (int i = 0; i < c; i++) {\n\t\t\tif (i > 0) {\n\t\t\t\tbuilder.append(\";\");\n\t\t\t}\n\t\t\tfor (int j = i; j < c; j++) {\n\t\t\t\tif (j > i) {\n\t\t\t\t\tbuilder.append(\",\");\n\t\t\t\t}\n\n\t\t\t\tbuilder.append(df.format(this.probabilityMatrix[i][j]));\n\t\t\t}\n\t\t}\n\n\t\treturn \"StochasticBlock(\" + this.n + \",[\" + builder.toString() + \"])\";\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/random/TorusGraph.java",
    "content": "package edu.stanford.math.plex4.graph.random;\r\n\r\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\r\n\r\npublic class TorusGraph extends ManifoldGraph {\r\n\r\n\tprivate static final long serialVersionUID = 101044478862814881L;\r\n\r\n\tpublic TorusGraph(int size, int dimension, int k) {\r\n\t\tsuper(size, dimension, k);\r\n\t}\r\n\t\r\n\tpublic TorusGraph(int size, int k) {\r\n\t\tsuper(size, 2, k);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected double distance(double[] x, double[] y) {\r\n\t\tdouble distance = DoubleArrayMath.distance(x, y);\r\n\t\t\r\n\t\tfor (int d = 0; d < this.dimension; d++) {\r\n\t\t\t// shift up by 1 in dimension\r\n\t\t\ty[d] += 1;\r\n\t\t\tdistance = Math.min(distance, DoubleArrayMath.distance(x, y, 2));\r\n\t\t\ty[d] -= 1;\r\n\t\t\t\r\n\t\t\t// shift down by 1 in dimension\r\n\t\t\ty[d] -= 1;\r\n\t\t\tdistance = Math.min(distance, DoubleArrayMath.distance(x, y, 2));\r\n\t\t\ty[d] += 1;\r\n\t\t}\r\n\t\t\r\n\t\treturn distance;\r\n\t}\r\n\r\n\t@Override\r\n\tprotected void generatePoints() {\r\n\t\tthis.generateUniformPoints();\r\n\t}\r\n\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn \"TorusKNN(\" + this.size + \",\" + this.dimension + \",\" + this.k + \")\";\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/graph/utility/GraphUtility.java",
    "content": "package edu.stanford.math.plex4.graph.utility;\r\n\r\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\r\nimport edu.stanford.math.plex4.graph.AbstractWeightedUndirectedGraph;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\r\nimport edu.stanford.math.plex4.streams.impl.GeometricSimplexStream;\r\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility;\r\nimport edu.stanford.math.primitivelib.autogen.matrix.DoubleSparseMatrix;\r\nimport edu.stanford.math.primitivelib.autogen.matrix.IntSparseMatrix;\r\nimport edu.stanford.math.primitivelib.autogen.pair.IntIntPair;\r\nimport edu.stanford.math.primitivelib.utility.Infinity;\r\n\r\n/**\r\n * This class contains various static functions for manipulating graphs.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class GraphUtility {\r\n\t\r\n\tpublic static GeometricSimplexStream toGeometricSimplexStream(AbstractUndirectedGraph graph, double[][] points) {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\tint n = graph.getNumVertices();\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tstream.addVertex(i);\r\n\t\t}\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tstream.addElement(new int[]{i, j}, 0);\r\n\t\t}\r\n\t\t\r\n\t\treturn new GeometricSimplexStream(stream, points);\r\n\t}\r\n\t\r\n\tpublic static ExplicitSimplexStream toSimplexStream(AbstractUndirectedGraph graph) {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\tint n = graph.getNumVertices();\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tstream.addVertex(i);\r\n\t\t}\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tstream.addElement(new int[]{i, j}, 0);\r\n\t\t}\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\t\r\n\t/**\r\n\t * This function computes all of the distances between pairs of vertices using\r\n\t * the Floyd-Warshall algorithm.\r\n\t *\r\n\t * @param graph the graph\r\n\t * @return the matrix of path lengths between each pair of vertices\r\n\t */\r\n\tpublic static double[][] computeShortestPaths(AbstractUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tdouble[][] pathLengths = DoubleArrayUtility.createMatrix(n, n);\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tfor (int j = 0; j < n; j++) {\r\n\t\t\t\tif (graph.containsEdge(i, j)) {\r\n\t\t\t\t\tpathLengths[i][j] = 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpathLengths[i][j] = Infinity.Double.getPositiveInfinity();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfor (int k = 0; k < n; k++) {\r\n\t\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\t\tfor (int j = 0; j < n; j++) {\r\n\t\t\t\t\tpathLengths[i][j] = Math.min(pathLengths[i][j], pathLengths[i][k] + pathLengths[k][j]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tpathLengths[i][i] = 0;\r\n\t\t}\r\n\t\t\r\n\t\treturn pathLengths;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the adjacency matrix of the given graph.\r\n\t * \r\n\t * @param graph the graph to compute the adjacency matrix of\r\n\t * @return the adjacency matrix of the graph\r\n\t */\r\n\tpublic static int[][] getAdjacencyMatrix(AbstractUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tint[][] matrix = new int[n][n];\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tmatrix[i][j] = 1;\r\n\t\t\tmatrix[j][i] = 1;\r\n\t\t}\r\n\t\t\r\n\t\treturn matrix;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the adjacency matrix of the given graph.\r\n\t * It returns the result as a sparse matrix.\r\n\t * \r\n\t * @param graph the graph to compute the adjacency matrix of\r\n\t * @return the adjacency matrix of the graph\r\n\t */\r\n\tpublic static IntSparseMatrix getSparseAdjacencyMatrix(AbstractUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tIntSparseMatrix matrix = new IntSparseMatrix(n, n);\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tmatrix.set(i, j, 1);\r\n\t\t\tmatrix.set(j, i, 1);\r\n\t\t}\r\n\t\t\r\n\t\treturn matrix;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the adjacency matrix of the given graph.\r\n\t * \r\n\t * @param graph the graph to compute the adjacency matrix of\r\n\t * @return the adjacency matrix of the graph\r\n\t */\r\n\tpublic static double[][] getAdjacencyMatrix(AbstractWeightedUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tdouble[][] matrix = new double[n][n];\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tdouble w = graph.getWeight(i, j);\r\n\t\t\tmatrix[i][j] = w;\r\n\t\t\tmatrix[j][i] = w;\r\n\t\t}\r\n\t\t\r\n\t\treturn matrix;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the adjacency matrix of the given graph.\r\n\t * \r\n\t * @param graph the graph to compute the adjacency matrix of\r\n\t * @return the adjacency matrix of the graph\r\n\t */\r\n\tpublic static DoubleSparseMatrix getSparseAdjacencyMatrix(AbstractWeightedUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tDoubleSparseMatrix matrix = new DoubleSparseMatrix(n, n);\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tdouble w = graph.getWeight(i, j);\r\n\t\t\tmatrix.set(i, j, w);\r\n\t\t\tmatrix.set(j, i, w);\r\n\t\t}\r\n\t\t\r\n\t\treturn matrix;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the Laplacian matrix of a graph.\r\n\t * \r\n\t * @param graph the graph\r\n\t * @return the Laplacian matrix of the graph\r\n\t */\r\n\tpublic static int[][] getLaplacianMatrix(AbstractUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tint[][] matrix = new int[n][n];\r\n\t\tint[] degrees = new int[n];\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tmatrix[i][j] = -1;\r\n\t\t\tmatrix[j][i] = -1;\r\n\t\t\tdegrees[i]++;\r\n\t\t\tdegrees[j]++;\r\n\t\t}\r\n\t\t\r\n\t\tfor (int k = 0; k < n; k++) {\r\n\t\t\tmatrix[k][k] = degrees[k];\r\n\t\t}\r\n\t\t\r\n\t\treturn matrix;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the Laplacian matrix of a graph.\r\n\t * \r\n\t * @param graph the graph\r\n\t * @return the Laplacian matrix of the graph\r\n\t */\r\n\tpublic static IntSparseMatrix getSparseLaplacianMatrix(AbstractUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tIntSparseMatrix matrix = new IntSparseMatrix(n, n);\r\n\t\tint[] degrees = new int[n];\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tmatrix.set(i, j, -1);\r\n\t\t\tmatrix.set(j, i, -1);\r\n\t\t\tdegrees[i]++;\r\n\t\t\tdegrees[j]++;\r\n\t\t}\r\n\t\t\r\n\t\tfor (int k = 0; k < n; k++) {\r\n\t\t\tmatrix.set(k, k, degrees[k]);\r\n\t\t}\r\n\t\t\r\n\t\treturn matrix;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the Laplacian matrix of a graph.\r\n\t * \r\n\t * @param graph the graph\r\n\t * @return the Laplacian matrix of the graph\r\n\t */\r\n\tpublic static double[][] getLaplacianMatrix(AbstractWeightedUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tdouble[][] matrix = new double[n][n];\r\n\t\tdouble[] degrees = new double[n];\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tdouble w = graph.getWeight(i, j);\r\n\t\t\tmatrix[i][j] = -w;\r\n\t\t\tmatrix[j][i] = -w;\r\n\t\t\tdegrees[i] += w;\r\n\t\t\tdegrees[j] += w;\r\n\t\t}\r\n\t\t\r\n\t\tfor (int k = 0; k < n; k++) {\r\n\t\t\tmatrix[k][k] = degrees[k];\r\n\t\t}\r\n\t\t\r\n\t\treturn matrix;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the Laplacian matrix of a graph.\r\n\t * \r\n\t * @param graph the graph\r\n\t * @return the Laplacian matrix of the graph\r\n\t */\r\n\tpublic static DoubleSparseMatrix getSparseLaplacianMatrix(AbstractWeightedUndirectedGraph graph) {\r\n\t\tint n = graph.getNumVertices();\r\n\t\tDoubleSparseMatrix matrix = new DoubleSparseMatrix(n, n);\r\n\t\tdouble[] degrees = new double[n];\r\n\t\t\r\n\t\tfor (IntIntPair edge: graph) {\r\n\t\t\tint i = edge.getFirst();\r\n\t\t\tint j = edge.getSecond();\r\n\t\t\tdouble w = graph.getWeight(i, j);\r\n\t\t\tmatrix.set(i, j, -w);\r\n\t\t\tmatrix.set(j, i, -w);\r\n\t\t\tdegrees[i] += w;\r\n\t\t\tdegrees[j] += w;\r\n\t\t}\r\n\t\t\r\n\t\tfor (int k = 0; k < n; k++) {\r\n\t\t\tmatrix.set(k, k, degrees[k]);\r\n\t\t}\r\n\t\t\r\n\t\treturn matrix;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/barcodes/AnnotatedBarcodeCollection.java",
    "content": "package edu.stanford.math.plex4.homology.barcodes;\n\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class AnnotatedBarcodeCollection<T extends Comparable<T>, G> extends PersistenceInvariantDescriptor<Interval<T>, G> {\n\tprotected boolean useLeftClosedDefault = true;\n\tprotected boolean useRightClosedDefault = false;\n\n\t/**\n\t * This function sets the property that determines whether the left endpoint\n\t * of created intervals is closed or not.\n\t * \n\t * @param value\n\t */\n\tpublic void setLeftClosedDefault(boolean value) {\n\t\tthis.useLeftClosedDefault = value;\n\t}\n\n\t/**\n\t * This function sets the property that determines whether the right endpoint\n\t * of created intervals is closed or not.\n\t * \n\t * @param value\n\t */\n\tpublic void setRightClosedDefault(boolean value) {\n\t\tthis.useRightClosedDefault = value;\n\t}\n\n\t/**\n\t * This function adds the specified finite interval (start, end} at the\n\t * supplied dimension. The curly braces are meant to indicate that the\n\t * closedness of the end points depends on the default state of the class.\n\t * \n\t * @param dimension the dimension to add to\n\t * @param start the starting point of the interval\n\t * @param end the ending point of the interval\n\t * @param generatingCycle the generating cycle\n\t */\n\tpublic void addInterval(int dimension, T start, T end, G generatingCycle) {\n\t\tthis.addInterval(dimension, Interval.makeInterval(start, end, useLeftClosedDefault, useRightClosedDefault, false, false), generatingCycle);\n\t}\n\n\t/**\n\t * This function adds the specified semi-infinite interval {start, infinity}\n\t * at the supplied dimension. The curly braces are meant to indicate that the\n\t * closedness of the end points depends on the default state of the class.\n\t * \n\t * @param dimension the dimension to add to\n\t * @param start the starting point of the interval\n\t * @param generatingCycle the generating cycle\n\t */\n\tpublic void addRightInfiniteInterval(int dimension, T start, G generatingCycle) {\n\t\tthis.addInterval(dimension, Interval.makeInterval(start, null, useLeftClosedDefault, useRightClosedDefault, false, true), generatingCycle);\n\t}\n\n\t/**\n\t * This function adds the specified semi-infinite interval {-infinity, end}\n\t * at the supplied dimension. The curly braces are meant to indicate that the\n\t * closedness of the end points depends on the default state of the class.\n\t * \n\t * @param dimension the dimension to add to\n\t * @param end the ending point of the interval\n\t * @param generatingCycle the generating cycle\n\t */\n\tpublic void addLeftInfiniteInterval(int dimension, T end, G generatingCycle) {\n\t\tthis.addInterval(dimension, Interval.makeInterval(null, end, useLeftClosedDefault, useRightClosedDefault, true, false), generatingCycle);\n\t}\n\n\tpublic AnnotatedBarcodeCollection<T, G> getInfiniteIntervals() {\n\t\tAnnotatedBarcodeCollection<T, G> result = new AnnotatedBarcodeCollection<T, G>();\n\n\t\tfor (Integer dimension: this.intervals.keySet()) {\n\t\t\tList<Interval<T>> intervalList = this.intervals.get(dimension);\n\t\t\tList<G> generatorList = this.generators.get(dimension);\n\n\t\t\tfor (int i = 0; i < intervalList.size(); i++) {\n\t\t\t\tInterval<T> interval = intervalList.get(i);\n\t\t\t\tG generator = generatorList.get(i);\n\n\t\t\t\tif (interval.isInfinite()) {\n\t\t\t\t\tresult.addInterval(dimension, interval, generator);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic Map<Integer, Integer> getBettiNumbersMap(T point) {\n\t\tMap<Integer, Integer> result = new HashMap<Integer, Integer>();\n\n\t\tfor (Integer dimension: this.intervals.keySet()) {\n\t\t\tList<Interval<T>> intervalList = this.intervals.get(dimension);\n\t\t\tint count = 0;\n\n\t\t\tfor (Interval<T> interval: intervalList) {\n\t\t\t\tif (interval.containsPoint(point)) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (count > 0) {\n\t\t\t\tresult.put(dimension, count);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic AnnotatedBarcodeCollection<T, G> filterByMaxDimension(int maxDimension) {\n\t\tAnnotatedBarcodeCollection<T, G> result = new AnnotatedBarcodeCollection<T, G>();\n\t\tresult.useLeftClosedDefault = this.useLeftClosedDefault;\n\t\tresult.useRightClosedDefault = this.useRightClosedDefault;\n\t\t\n\t\tfor (Integer dimension: this.intervals.keySet()) {\n\t\t\tif (dimension > maxDimension) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tList<Interval<T>> intervalList = this.intervals.get(dimension);\n\t\t\tList<G> generatorList = this.generators.get(dimension);\n\n\t\t\tfor (int i = 0; i < intervalList.size(); i++) {\n\t\t\t\tInterval<T> interval = intervalList.get(i);\n\t\t\t\tG generator = generatorList.get(i);\n\n\t\t\t\tresult.addInterval(dimension, interval, generator);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\t\n\tpublic AnnotatedBarcodeCollection<T, G> filterPositiveMeasureIntervals() {\n\t\tAnnotatedBarcodeCollection<T, G> result = new AnnotatedBarcodeCollection<T, G>();\n\t\tresult.useLeftClosedDefault = this.useLeftClosedDefault;\n\t\tresult.useRightClosedDefault = this.useRightClosedDefault;\n\t\t\n\t\tfor (Integer dimension: this.intervals.keySet()) {\n\t\t\tList<Interval<T>> intervalList = this.intervals.get(dimension);\n\t\t\tList<G> generatorList = this.generators.get(dimension);\n\n\t\t\tfor (int i = 0; i < intervalList.size(); i++) {\n\t\t\t\tInterval<T> interval = intervalList.get(i);\n\t\t\t\tG generator = generatorList.get(i);\n\t\t\t\t\n\t\t\t\tif (interval.isInfinite()) {\n\t\t\t\t\tresult.addInterval(dimension, interval, generator);\n\t\t\t\t} else {\n\t\t\t\t\tif (interval.getStart().compareTo(interval.getEnd()) < 0) {\n\t\t\t\t\t\tresult.addInterval(dimension, interval, generator);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\t\n\tpublic static <G> AnnotatedBarcodeCollection<Integer, G> filterEvenIntervals(AnnotatedBarcodeCollection<Integer, G> collection) {\n\t\tAnnotatedBarcodeCollection<Integer, G> result = new AnnotatedBarcodeCollection<Integer, G>();\n\t\tresult.useLeftClosedDefault = collection.useLeftClosedDefault;\n\t\tresult.useRightClosedDefault = collection.useRightClosedDefault;\n\t\t\n\t\tfor (Integer dimension: collection.intervals.keySet()) {\n\t\t\tList<Interval<Integer>> intervalList = collection.intervals.get(dimension);\n\t\t\tList<G> generatorList = collection.generators.get(dimension);\n\n\t\t\tfor (int i = 0; i < intervalList.size(); i++) {\n\t\t\t\tInterval<Integer> interval = intervalList.get(i);\n\t\t\t\tG generator = generatorList.get(i);\n\t\t\t\t\n\t\t\t\tif (interval.isLeftInfinite() && interval.isRightInfinite()) {\n\t\t\t\t\tresult.addInterval(dimension, interval, generator);\n\t\t\t\t} else if (interval.isLeftInfinite()) {\n\t\t\t\t\tresult.addInterval(dimension, Interval.makeInterval(null, interval.getEnd() / 2, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator);\n\t\t\t\t} else if (interval.isRightInfinite()) {\n\t\t\t\t\tresult.addInterval(dimension, Interval.makeInterval(interval.getStart() / 2, null, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator);\n\t\t\t\t} else {\n\t\t\t\t\tif (interval.getStart().equals(interval.getEnd())) {\n\t\t\t\t\t\t// of form [x, x]\n\t\t\t\t\t\tInteger x = interval.getStart();\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (x % 2 == 0) {\n\t\t\t\t\t\t\tresult.addInterval(dimension, Interval.makeInterval(interval.getStart() / 2, interval.getEnd() / 2, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// of form [x, y]\n\t\t\t\t\t\tInteger x = interval.getStart();\n\t\t\t\t\t\tInteger y = interval.getEnd();\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (x % 2 == 0) {\n\t\t\t\t\t\t\t// starts at even\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (y % 2 == 1) {\n\t\t\t\t\t\t\t\ty = ((y - 1) / 2);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ty = y / 2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tresult.addInterval(dimension, Interval.makeInterval(x, y, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// starts at odd\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (y == x + 1) {\n\t\t\t\t\t\t\t\t// don't do anything\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (y % 2 == 1) {\n\t\t\t\t\t\t\t\t\ty = ((y - 1) / 2);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ty = y / 2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tresult.addInterval(dimension, Interval.makeInterval(x, y, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite()), generator);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/barcodes/BarcodeCollection.java",
    "content": "package edu.stanford.math.plex4.homology.barcodes;\n\nimport java.util.List;\n\npublic class BarcodeCollection<T extends Comparable<T>> extends AnnotatedBarcodeCollection<T, Object> {\n\n\t/**\n\t * This function adds the specified finite interval (start, end} at the\n\t * supplied dimension. The curly braces are meant to indicate that the\n\t * closedness of the end points depends on the default state of the class.\n\t * \n\t * @param dimension the dimension to add to\n\t * @param start the starting point of the interval\n\t * @param end the ending point of the interval\n\t */\n\tpublic void addInterval(int dimension, T start, T end) {\n\t\tthis.addInterval(dimension, Interval.makeInterval(start, end, useLeftClosedDefault, useRightClosedDefault, false, false), null);\n\t}\n\n\t/**\n\t * This function adds the specified semi-infinite interval {start, infinity}\n\t * at the supplied dimension. The curly braces are meant to indicate that the\n\t * closedness of the end points depends on the default state of the class.\n\t * \n\t * @param dimension the dimension to add to\n\t * @param start the starting point of the interval\n\t */\n\tpublic void addRightInfiniteInterval(int dimension, T start) {\n\t\tthis.addInterval(dimension, Interval.makeInterval(start, null, useLeftClosedDefault, useRightClosedDefault, false, true), null);\n\t}\n\n\t/**\n\t * This function adds the specified semi-infinite interval {-infinity, end}\n\t * at the supplied dimension. The curly braces are meant to indicate that the\n\t * closedness of the end points depends on the default state of the class.\n\t * \n\t * @param dimension the dimension to add to\n\t * @param end the ending point of the interval\n\t */\n\tpublic void addLeftInfiniteInterval(int dimension, T end) {\n\t\tthis.addInterval(dimension, Interval.makeInterval(null, end, useLeftClosedDefault, useRightClosedDefault, true, false), null);\n\t}\n\t\n\tpublic void addInterval(int dimension, Interval<T> interval) {\n\t\tthis.addInterval(dimension, interval, null);\n\t}\n\t\n\tpublic static <T extends Comparable<T>, G> BarcodeCollection<T> forgetGeneratorType(AnnotatedBarcodeCollection<T, G> annotatedBarcodeCollection) {\t\n\t\tBarcodeCollection<T> barcodeCollection = new BarcodeCollection<T>();\n\t\tbarcodeCollection.setLeftClosedDefault(annotatedBarcodeCollection.useLeftClosedDefault);\n\t\tbarcodeCollection.setRightClosedDefault(annotatedBarcodeCollection.useRightClosedDefault);\n\t\t\n\t\tfor (Integer dimension: annotatedBarcodeCollection.intervals.keySet()) {\n\t\t\tList<Interval<T>> intervalList = annotatedBarcodeCollection.intervals.get(dimension);\n\n\t\t\tfor (Interval<T> interval: intervalList) {\n\t\t\t\tbarcodeCollection.addInterval(dimension, interval);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn barcodeCollection;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/barcodes/BarcodeUtility.java",
    "content": "package edu.stanford.math.plex4.homology.barcodes;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.Comparator;\nimport java.util.List;\n\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport edu.stanford.math.primitivelib.utility.Infinity;\n\npublic class BarcodeUtility {\n\n\t/**\n\t * This function returns an array containing the set of endpoint of the\n\t * intervals.\n\t * \n\t * @param <G>\n\t * @param collection\n\t *            the barcode collection\n\t * @param dimension\n\t *            the dimension at which to get the endpoints\n\t * @param skipInfiniteIntervals\n\t *            boolean flag indicating whether to skip infinite intervals\n\t * @return an n x 2 array of doubles containing the endpoints of the\n\t *         intervals\n\t */\n\tpublic static <G> double[][] getEndpoints(AnnotatedBarcodeCollection<Double, G> collection, int dimension, boolean skipInfiniteIntervals) {\n\t\tList<Interval<Double>> list = collection.getIntervalsAtDimension(dimension);\n\t\tCollections.sort(list);\n\t\tCollections.reverse(list);\n\t\treturn getEndpoints(list, dimension, skipInfiniteIntervals);\n\t}\n\n\t/**\n\t * This function returns an array containing the set of endpoint of the\n\t * intervals.\n\t * \n\t * @param <G>\n\t * @param intervals\n\t *            the list of intervals\n\t * @param dimension\n\t *            the dimension at which to get the endpoints\n\t * @param skipInfiniteIntervals\n\t *            boolean flag indicating whether to skip infinite intervals\n\t * @return an n x 2 array of doubles containing the endpoints of the\n\t *         intervals\n\t */\n\tpublic static double[][] getEndpoints(List<Interval<Double>> intervals, int dimension, boolean skipInfiniteIntervals) {\n\n\t\tList<double[]> endpointList = new ArrayList<double[]>();\n\n\t\tfor (Interval<Double> interval : intervals) {\n\t\t\tif (interval.isInfinite() && skipInfiniteIntervals) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tdouble start, end;\n\n\t\t\tif (interval.isLeftInfinite() && interval.isRightInfinite()) {\n\t\t\t\tstart = Double.NEGATIVE_INFINITY;\n\t\t\t\tend = Double.POSITIVE_INFINITY;\n\t\t\t} else if (interval.isLeftInfinite()) {\n\t\t\t\tstart = Double.NEGATIVE_INFINITY;\n\t\t\t\tend = interval.getEnd();\n\t\t\t} else if (interval.isRightInfinite()) {\n\t\t\t\tstart = interval.getStart();\n\t\t\t\tend = Double.POSITIVE_INFINITY;\n\t\t\t} else {\n\t\t\t\tstart = interval.getStart();\n\t\t\t\tend = interval.getEnd();\n\t\t\t}\n\n\t\t\tendpointList.add(new double[] { start, end });\n\t\t}\n\n\t\tdouble[][] endpointArray = new double[endpointList.size()][];\n\t\tfor (int i = 0; i < endpointList.size(); i++) {\n\t\t\tendpointArray[i] = endpointList.get(i);\n\t\t}\n\n\t\treturn endpointArray;\n\t}\n\n\tpublic static List<Interval<Double>> getLongestBarcodes(List<Interval<Double>> intervals, int k) {\n\t\tif (k >= intervals.size()) {\n\t\t\treturn intervals;\n\t\t}\n\t\t\n\t\tArrayList<Interval<Double>> intervalsCopy = new ArrayList<Interval<Double>>(intervals);\n\t\tCollections.sort(intervalsCopy, IntervalLengthComparator.getInstance());\n\t\tCollections.reverse(intervalsCopy);\n\n\t\tArrayList<Interval<Double>> result = new ArrayList<Interval<Double>>();\n\n\t\tfor (int i = 0; i < k; i++) {\n\t\t\tresult.add(intervalsCopy.get(i));\n\t\t}\n\n\t\tintervalsCopy = null;\n\n\t\treturn result;\n\t}\n\n\tpublic static <G> List<ObjectObjectPair<Interval<Double>, G>> getLongestAnnotatedBarcodes(List<ObjectObjectPair<Interval<Double>, G>> intervals, int k) {\n\n\t\tif (k >= intervals.size()) {\n\t\t\treturn intervals;\n\t\t}\n\t\t\n\t\tfinal IntervalLengthComparator intervalComparator = IntervalLengthComparator.getInstance();\n\n\t\tComparator<ObjectObjectPair<Interval<Double>, G>> comparator = new Comparator<ObjectObjectPair<Interval<Double>, G>>() {\n\n\t\t\tpublic int compare(ObjectObjectPair<Interval<Double>, G> o1, ObjectObjectPair<Interval<Double>, G> o2) {\n\t\t\t\treturn intervalComparator.compare(o1.getFirst(), o2.getFirst());\n\t\t\t}\n\t\t};\n\n\t\tArrayList<ObjectObjectPair<Interval<Double>, G>> intervalsCopy = new ArrayList<ObjectObjectPair<Interval<Double>, G>>(intervals);\n\t\tCollections.sort(intervalsCopy, comparator);\n\t\tCollections.reverse(intervalsCopy);\n\n\t\tArrayList<ObjectObjectPair<Interval<Double>, G>> result = new ArrayList<ObjectObjectPair<Interval<Double>, G>>();\n\n\t\tfor (int i = 0; i < k; i++) {\n\t\t\tresult.add(intervalsCopy.get(i));\n\t\t}\n\n\t\tintervalsCopy = null;\n\n\t\treturn result;\n\t}\n\t\n\tpublic static double getLength(Interval<Double> interval) {\n\t\tif (interval.isInfinite()) {\n\t\t\treturn Infinity.Double.getPositiveInfinity();\n\t\t}\n\t\t\n\t\treturn (interval.getEnd() - interval.getStart());\n\t}\n\t\n\t/**\n\t * Given a collection of intervals, this function returns those intervals with length greater than or equal to the minimum specified.\n\t * \n\t * @param intervals the set of intervals\n\t * @param minimumLength the minimum length\n\t * @return those intervals longer than minimumLength\n\t */\n\tpublic static List<Interval<Double>> filterIntervalsByMinimumLength(Iterable<Interval<Double>> intervals, double minimumLength) {\n\t\tArrayList<Interval<Double>> filteredIntervals = new ArrayList<Interval<Double>>();\n\t\t\n\t\tfor (Interval<Double> interval: intervals) {\n\t\t\tif (getLength(interval) >= minimumLength) {\n\t\t\t\tfilteredIntervals.add(interval);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn filteredIntervals;\n\t}\n\t\n\t/**\n\t * Given a collection of intervals object pairs, this function returns those intervals with length greater than or equal to the minimum specified.\n\t * \n\t * @param intervals the set of intervals\n\t * @param minimumLength the minimum length\n\t * @return those intervals longer than minimumLength\n\t */\n\tpublic static <G> List<ObjectObjectPair<Interval<Double>, G>> filterIntervalPairsByMinimumLength(Iterable<ObjectObjectPair<Interval<Double>, G>> intervals, double minimumLength) {\n\t\tArrayList<ObjectObjectPair<Interval<Double>, G>> result = new ArrayList<ObjectObjectPair<Interval<Double>, G>>();\n\t\t\n\t\tfor (ObjectObjectPair<Interval<Double>, G> pair: intervals) {\n\t\t\tInterval<Double> interval = pair.getFirst();\n\t\t\tif (getLength(interval) >= minimumLength) {\n\t\t\t\tresult.add(pair);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/barcodes/Interval.java",
    "content": "package edu.stanford.math.plex4.homology.barcodes;\n\nimport java.io.Serializable;\n\n//import edu.stanford.math.primitivelib.utility.Infinity;\n\n/**\n * This class implements the functionality of an interval of values of any comparable type. It supports\n * finite, semi-infinite, and infinite intervals with open or closed end points. \n * \n * @author Andrew Tausz\n *\n * @param <T> the underlying type - e.g. most likely Integer, Double, or Float\n */\npublic class Interval<T extends Comparable<T>> implements Comparable<Interval<T>>, Serializable {\n\t/**\n\t * \n\t */\n\tprivate static final long serialVersionUID = -3434702188482864510L;\n\tprivate final T start, end;\n\tprivate final boolean isLeftClosed, isRightClosed;\n\tprivate final boolean isLeftInfinite, isRightInfinite;\n\n\t/**\n\t * This function returns a finite closed interval.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @param end\n\t * @return a finite closed interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeFiniteClosedInterval(T start, T end) {\n\t\treturn new Interval<T>(start, end, true, true, false, false);\n\t}\n\n\t/**\n\t * This function returns a finite right-open interval.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @param end\n\t * @return a finite right-open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeFiniteRightOpenInterval(T start, T end) {\n\t\treturn new Interval<T>(start, end, true, false, false, false);\n\t}\n\n\t/**\n\t * This function returns a finite left-open interval.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @param end\n\t * @return a finite left-open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeFiniteLeftOpenInterval(T start, T end) {\n\t\treturn new Interval<T>(start, end, false, true, false, false);\n\t}\n\n\t/**\n\t * This function returns a finite open interval.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @param end\n\t * @return a finite open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeFiniteOpenInterval(T start, T end) {\n\t\treturn new Interval<T>(start, end, false, false, false, false);\n\t}\n\n\t/**\n\t * This function returns a right-infinite closed interval.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @return a right-infinite closed interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeRightInfiniteClosedInterval(T start) {\n\t\treturn new Interval<T>(start, null, true, true, false, true);\n\t}\n\n\t/**\n\t * This function returns a right-infinite right-open interval.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @return a right-infinite right-open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeRightInfiniteRightOpenInterval(T start) {\n\t\treturn new Interval<T>(start, null, true, false, false, true);\n\t}\n\n\t/**\n\t * This function returns a right-infinite left-open interval.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @return a right-infinite left-open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeRightInfiniteLeftOpenInterval(T start) {\n\t\treturn new Interval<T>(start, null, false, true, false, true);\n\t}\n\n\t/**\n\t * This function returns a right-infinite open interval.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @return a right-infinite open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeRightInfiniteOpenInterval(T start) {\n\t\treturn new Interval<T>(start, null, false, false, false, true);\n\t}\n\n\t/**\n\t * This function returns a left-infinite closed interval.\n\t * \n\t * @param <T>\n\t * @param end\n\t * @return a left-infinite closed interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeLeftInfiniteClosedInterval(T end) {\n\t\treturn new Interval<T>(null, end, true, true, true, false);\n\t}\n\n\t/**\n\t * This function returns a left-infinite right-open interval.\n\t * \n\t * @param <T>\n\t * @param end\n\t * @return a left-infinite right-open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeLeftInfiniteRightOpenInterval(T end) {\n\t\treturn new Interval<T>(null, end, true, false, true, false);\n\t}\n\n\t/**\n\t * This function returns a left-infinite left-open interval.\n\t * \n\t * @param <T>\n\t * @param end\n\t * @return a left-infinite left-open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeLeftInfiniteLeftOpenInterval(T end) {\n\t\treturn new Interval<T>(null, end, false, true, true, false);\n\t}\n\n\t/**\n\t * This function returns a left-infinite open interval.\n\t * \n\t * @param <T>\n\t * @param end\n\t * @return a left-infinite open interval\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeLeftInfiniteOpenInterval(T end) {\n\t\treturn new Interval<T>(null, end, false, false, true, false);\n\t}\n\n\t/**\n\t * This function returns an interval with the desired parameters.\n\t * \n\t * @param <T>\n\t * @param start\n\t * @param end\n\t * @param isLeftClosed\n\t * @param isRightClosed\n\t * @param isLeftInfinite\n\t * @param isRightInfinite\n\t * @return an interval specified by the given parameters\n\t */\n\tpublic static <T extends Comparable<T>> Interval<T> makeInterval(T start, T end, boolean isLeftClosed, boolean isRightClosed, boolean isLeftInfinite, boolean isRightInfinite) {\n\t\treturn new Interval<T>(start, end, isLeftClosed, isRightClosed, isLeftInfinite, isRightInfinite);\n\t}\n\n\t/**\n\t * This private constructor initializes the interval with all of its parameters.\n\t * \n\t * @param start\n\t * @param end\n\t * @param isLeftClosed\n\t * @param isRightClosed\n\t * @param isLeftInfinite\n\t * @param isRightInfinite\n\t */\n\tprivate Interval(T start, T end, boolean isLeftClosed, boolean isRightClosed, boolean isLeftInfinite, boolean isRightInfinite) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.isLeftClosed = isLeftClosed;\n\t\tthis.isRightClosed = isRightClosed;\n\t\tthis.isLeftInfinite = isLeftInfinite;\n\t\tthis.isRightInfinite = isRightInfinite;\n\t}\n\n\t/**\n\t * This function returns the start of the interval.\n\t * \n\t * @return the starting point\n\t */\n\tpublic T getStart() {\n\t\treturn start;\n\t}\n\n\t/**\n\t * This function returns the end of the interval.\n\t * \n\t * @return the end point\n\t */\n\tpublic T getEnd() {\n\t\treturn end;\n\t}\n\n\t/**\n\t * This function indicates whether the interval is closed on the left.\n\t * \n\t * @return true if the interval is closed on the left, and false otherwise\n\t */\n\tpublic boolean isLeftClosed() {\n\t\treturn isLeftClosed;\n\t}\n\n\t/**\n\t * This function indicates whether the interval is closed on the right.\n\t * \n\t * @return true if the interval is closed on the right, and false otherwise\n\t */\n\tpublic boolean isRightClosed() {\n\t\treturn isRightClosed;\n\t}\n\n\t/**\n\t * This function indicates whether the interval is left-infinite.\n\t * \n\t * @return true if the interval is left-infinite and false otherwise\n\t */\n\tpublic boolean isLeftInfinite() {\n\t\treturn isLeftInfinite;\n\t}\n\n\t/**\n\t * This function indicates whether the interval is right-infinite.\n\t * \n\t * @return true if the interval is right-infinite and false otherwise\n\t */\n\tpublic boolean isRightInfinite() {\n\t\treturn isRightInfinite;\n\t}\n\n\t/**\n\t * This function indicates whether the interval is infinite (either left or\n\t * right infinite, or both).\n\t * \n\t * @return true if the interval is infinite, and false otherwise\n\t */\n\tpublic boolean isInfinite() {\n\t\treturn isLeftInfinite || isRightInfinite;\n\t}\n\t\n\t/**\n\t * This function determines whether the given point is a member of \n\t * the interval.\n\t * \n\t * @param point the point to test\n\t * @return true if the point is in the interval and false otherwise\n\t */\n\tpublic boolean containsPoint(T point) {\n\t\tif (!this.isLeftInfinite) {\n\t\t\tif (this.isLeftClosed && (point.compareTo(this.start) < 0)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!this.isLeftClosed && (point.compareTo(this.start) <= 0)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (!this.isRightInfinite) {\n\t\t\tif (this.isRightClosed && (point.compareTo(this.end) > 0)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!this.isRightClosed && (point.compareTo(this.end) >= 0)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t@Override\n\tpublic String toString() {\n\t\tStringBuilder builder = new StringBuilder();\n\n\t\tif (this.isLeftClosed) {\n\t\t\tbuilder.append(\"[\");\n\t\t} else {\n\t\t\tbuilder.append(\"(\");\n\t\t}\n\n\t\tif (this.isLeftInfinite) {\n\t\t\tbuilder.append(\"-infinity\");\n\t\t} else {\n\t\t\tbuilder.append(start.toString());\n\t\t}\n\n\t\tbuilder.append(\", \");\n\n\t\tif (this.isRightInfinite) {\n\t\t\tbuilder.append(\"infinity\");\n\t\t} else {\n\t\t\tbuilder.append(end.toString());\n\t\t}\n\n\t\tif (this.isRightClosed) {\n\t\t\tbuilder.append(\"]\");\n\t\t} else {\n\t\t\tbuilder.append(\")\");\n\t\t}\n\n\t\treturn builder.toString();\n\t}\n\n\t@Override\n\tpublic int hashCode() {\n\t\tfinal int prime = 31;\n\t\tint result = 1;\n\t\tresult = prime * result + ((end == null) ? 0 : end.hashCode());\n\t\tresult = prime * result + (isLeftClosed ? 1231 : 1237);\n\t\tresult = prime * result + (isLeftInfinite ? 1231 : 1237);\n\t\tresult = prime * result + (isRightClosed ? 1231 : 1237);\n\t\tresult = prime * result + (isRightInfinite ? 1231 : 1237);\n\t\tresult = prime * result + ((start == null) ? 0 : start.hashCode());\n\t\treturn result;\n\t}\n\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\tInterval<?> other = (Interval<?>) obj;\n\t\tif (end == null) {\n\t\t\tif (other.end != null)\n\t\t\t\treturn false;\n\t\t} else if (!end.equals(other.end))\n\t\t\treturn false;\n\t\tif (isLeftClosed != other.isLeftClosed)\n\t\t\treturn false;\n\t\tif (isLeftInfinite != other.isLeftInfinite)\n\t\t\treturn false;\n\t\tif (isRightClosed != other.isRightClosed)\n\t\t\treturn false;\n\t\tif (isRightInfinite != other.isRightInfinite)\n\t\t\treturn false;\n\t\tif (start == null) {\n\t\t\tif (other.start != null)\n\t\t\t\treturn false;\n\t\t} else if (!start.equals(other.start))\n\t\t\treturn false;\n\t\treturn true;\n\t}\n\n\tpublic int compareTo(Interval<T> arg0) {\n\t\t\n\t\t// First try to compare ends - the interval that ends later is \"bigger\"\n\t\t// If the ends cannot be compared, compare the starts\n\t\t\n\t\tint endComparison = 0;\n\t\t\n\t\tif (this.isRightInfinite && arg0.isRightInfinite) {\n\t\t\tendComparison = 0;\n\t\t} else if (this.isRightInfinite && !arg0.isRightInfinite) {\n\t\t\tendComparison = 1;\n\t\t} else if (!this.isRightInfinite && arg0.isRightInfinite) {\n\t\t\tendComparison = -1;\n\t\t} else {\n\t\t\t// both right-finite\n\t\t\tendComparison = this.end.compareTo(arg0.end);\n\t\t}\n\t\t\n\t\tif (endComparison != 0) {\n\t\t\treturn endComparison;\n\t\t}\n\t\t\n\t\tint startComparison = 0;\n\t\t\n\t\tif (this.isLeftInfinite && arg0.isLeftInfinite) {\n\t\t\tstartComparison = 0;\n\t\t} else if (this.isLeftInfinite && !arg0.isLeftInfinite) {\n\t\t\tstartComparison = -1;\n\t\t} else if (!this.isLeftInfinite && arg0.isLeftInfinite) {\n\t\t\tstartComparison = 1;\n\t\t} else {\n\t\t\tstartComparison = this.start.compareTo(arg0.start);\n\t\t}\n\t\t\n\t\treturn startComparison;\n\t}\n\t\n\tpublic int compareTo2(Interval<T> arg0) {\n\t\tint type = getTypeCode(this);\n\t\tint otherType = getTypeCode(arg0);\n\n\t\tif (type > otherType) {\n\t\t\treturn 1;\n\t\t} else if (type < otherType) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (type == 4) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (type == 3) {\n\t\t\treturn this.end.compareTo(arg0.end);\n\t\t}\n\n\t\tif (type == 2) {\n\t\t\treturn this.start.compareTo(arg0.start);\n\t\t}\n\n\t\tint comparison = this.start.compareTo(arg0.start);\n\t\tif (comparison != 0) {\n\t\t\treturn comparison;\n\t\t}\n\n\t\treturn this.end.compareTo(arg0.end);\n\t}\n\n\tprivate static <T extends Comparable<T>> int getTypeCode(Interval<T> interval) {\n\t\tif (interval.isLeftInfinite && interval.isRightInfinite) {\n\t\t\treturn 4;\n\t\t}\n\n\t\tif (interval.isLeftInfinite) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (interval.isRightInfinite) {\n\t\t\treturn 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/barcodes/IntervalLengthComparator.java",
    "content": "package edu.stanford.math.plex4.homology.barcodes;\n\nimport java.util.Comparator;\n\npublic class IntervalLengthComparator implements Comparator<Interval<Double>> {\n\t\n\tprivate static IntervalLengthComparator instance = new IntervalLengthComparator();\n\tprivate IntervalLengthComparator() {}\n\t\n\tpublic static IntervalLengthComparator getInstance() {\n\t\treturn instance;\n\t}\n\t\n\tpublic int compare(Interval<Double> arg0, Interval<Double> arg1) {\n\t\tif (arg0.isInfinite() && arg1.isInfinite()) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (arg0.isInfinite()) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (arg1.isInfinite()) {\n\t\t\treturn -1;\n\t\t}\n\n\t\t// both finite\n\n\t\tDouble length0 = arg0.getEnd() - arg0.getStart();\n\t\tDouble length1 = arg1.getEnd() - arg1.getStart();\n\t\tif (length0 < length1) {\n\t\t\treturn -1;\n\t\t} else if (length0 > length1) {\n\t\t\treturn 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/barcodes/PersistenceInvariantDescriptor.java",
    "content": "package edu.stanford.math.plex4.homology.barcodes;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.HashMap;\nimport java.util.Iterator;\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Map.Entry;\nimport java.util.Set;\n\nimport edu.stanford.math.plex4.utility.ComparisonUtility;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\n\n/**\n * This class is designed to store persistence algorithm invariants for each dimension, with additional information\n * about the generators. It is primarily designed to be used in the case where the persistence invariant type (I) \n * is an interval type, and the generator type (G) is the type of cycles.\n * \n * @author Andrew Tausz\n *\n * @param <I> the persistence invariant type - ie. the interval type\n * @param <G> the generator type\n */\npublic class PersistenceInvariantDescriptor<I, G> implements Iterable<Entry<Integer, List<ObjectObjectPair<I, G>>>> {\n\tprotected final Map<Integer, List<I>> intervals = new HashMap<Integer, List<I>>();\n\tprotected final Map<Integer, List<G>> generators = new HashMap<Integer, List<G>>();\n\tprotected final Map<Integer, List<ObjectObjectPair<I, G>>> intervalGeneratorPairs = new HashMap<Integer, List<ObjectObjectPair<I, G>>>();\n\n\tpublic PersistenceInvariantDescriptor() {}\n\t\n\t/**\n\t * This function adds an interval and generator at the specified dimension to the\n\t * collection.\n\t * \n\t * @param dimension the dimension at which to add\n\t * @param interval the interval\n\t * @param generator the generator\n\t */\n\tpublic void addInterval(int dimension, I interval, G generator) {\n\t\tif (!this.intervals.containsKey(dimension)) {\n\t\t\tthis.intervals.put(dimension, new ArrayList<I>());\n\t\t}\n\t\t\n\t\tif (!this.generators.containsKey(dimension)) {\n\t\t\tthis.generators.put(dimension, new ArrayList<G>());\n\t\t}\n\t\t\n\t\tif (!this.intervalGeneratorPairs.containsKey(dimension)) {\n\t\t\tthis.intervalGeneratorPairs.put(dimension, new ArrayList<ObjectObjectPair<I, G>>());\n\t\t}\n\n\t\tthis.intervals.get(dimension).add(interval);\n\t\tthis.generators.get(dimension).add(generator);\n\t\tthis.intervalGeneratorPairs.get(dimension).add(new ObjectObjectPair<I, G>(interval, generator));\n\t}\n\t\n\t/**\n\t * This function returns an array of integers indicating the cardinality of the barcodes at each dimension.\n\t * \n\t * @return an array indicating the cardinality of each barcode at each dimension\n\t */\n\tpublic int[] getBettiSequence() {\n\t\tint[] result = null;\n\n\t\tint maxDimension = 0;\n\n\t\tfor (Integer dimension: this.intervals.keySet()) {\n\t\t\tif (dimension > maxDimension) {\n\t\t\t\tmaxDimension = dimension;\n\t\t\t}\n\t\t}\n\n\t\tresult = new int[maxDimension + 1];\n\n\t\tfor (Integer dimension: this.intervals.keySet()) {\n\t\t\tresult[dimension] = this.intervals.get(dimension).size();\n\t\t}\n\n\t\treturn result;\n\t}\n\t\n\t/**\n\t * This function returns a string representation of the set of betti numbers.\n\t * \n\t * @return a string showing a pretty version of the betti numbers\n\t */\n\tpublic String getBettiNumbers() {\n\t\tStringBuilder builder = new StringBuilder();\t\n\t\t\n\t\tbuilder.append(\"{\");\n\t\t\n\t\tint i = 0;\n\t\tfor (Integer dimension: this.intervals.keySet()) {\n\t\t\tint b = this.intervals.get(dimension).size();\n\t\t\t\n\t\t\tif (i > 0) {\n\t\t\t\tbuilder.append(\", \");\n\t\t\t}\n\t\t\t\n\t\t\tbuilder.append(String.format(\"%d: %d\", dimension, b));\n\t\t\t\n\t\t\ti++;\n\t\t}\n\t\t\n\t\tbuilder.append(\"}\");\n\t\t\n\t\t\n\t\treturn builder.toString();\n\t}\n\t\n\t@Override\n\tpublic String toString() {\n\t\tStringBuilder builder = new StringBuilder();\n\n\t\tfor (Integer dimension: this.intervals.keySet()) {\n\t\t\tList<I> intervalList = this.intervals.get(dimension);\n\t\t\tList<G> generatorList = this.generators.get(dimension);\n\t\t\t\n\t\t\tbuilder.append(String.format(\"Dimension: %d\\n\", dimension));\n\t\t\t\n\t\t\tassert (intervalList.size() == generatorList.size());\n\t\t\t\n\t\t\tfor (int i = 0; i < intervalList.size(); i++) {\n\t\t\t\tI interval = intervalList.get(i);\n\t\t\t\tG generator = generatorList.get(i);\n\t\t\t\t\n\t\t\t\tif (generator != null) {\n\t\t\t\t\tbuilder.append(interval.toString());\n\t\t\t\t\tbuilder.append(\": \");\n\t\t\t\t\tbuilder.append(generator.toString());\n\t\t\t\t\tbuilder.append(\"\\n\");\n\t\t\t\t} else {\n\t\t\t\t\tbuilder.append(interval.toString());\n\t\t\t\t\tbuilder.append(\"\\n\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn builder.toString();\n\t}\n\t\n\t/**\n\t * This function returns an iterator for traversing the intervals. Each element returned\n\t * by the iterator is a pair consisting of the dimension, and the list of intervals at\n\t * that dimension.\n\t * \n\t * @return an iterator for the intervals\n\t */\n\tpublic Iterator<Entry<Integer, List<I>>> getIntervalIterator() {\n\t\treturn this.intervals.entrySet().iterator();\n\t}\n\t\n\t/**\n\t * This function returns an iterator for traversing the generators. Each element returned\n\t * by the iterator is a pair consisting of the dimension, and the list of generators at\n\t * that dimension.\n\t * \n\t * @return an iterator for the generators\n\t */\n\tpublic Iterator<Entry<Integer, List<G>>> getGeneratorIterator() {\n\t\treturn this.generators.entrySet().iterator();\n\t}\n\t\n\t/**\n\t * This function returns an iterator for traversing the interval-generator pairs. Each \n\t * element returned by the iterator is a pair consisting of the dimension, and the list of \n\t * interval-generator pairs at that dimension.\n\t * \n\t * @return an iterator for the generators\n\t */\n\tpublic Iterator<Entry<Integer, List<ObjectObjectPair<I, G>>>> getIntervalGeneratorPairIterator() {\n\t\treturn this.intervalGeneratorPairs.entrySet().iterator();\n\t}\n\t\n\t/**\n\t * This function returns the set of dimensions at which there are intervals.\n\t * \n\t * @return the set of dimensions.\n\t */\n\tpublic Set<Integer> getDimensions() {\n\t\treturn this.intervals.keySet();\n\t}\n\t\n\t/**\n\t * This function returns the set of intervals at a specified dimension.\n\t * \n\t * @param dimension the dimension to get the intervals at\n\t * @return the intervals at the given dimension\n\t */\n\tpublic List<I> getIntervalsAtDimension(int dimension) {\n\t\tif (this.intervals.containsKey(dimension)) {\n\t\t\treturn this.intervals.get(dimension);\n\t\t} else {\n\t\t\treturn new ArrayList<I>();\n\t\t}\n\t}\n\t\n\t/**\n\t * This function returns the set of generators at a specified dimension.\n\t * \n\t * @param dimension the dimension to get the generators at\n\t * @return the generators at the given dimension\n\t */\n\tpublic List<G> getGeneratorsAtDimension(int dimension) {\n\t\tif (this.generators.containsKey(dimension)) {\n\t\t\treturn this.generators.get(dimension);\n\t\t} else {\n\t\t\treturn new ArrayList<G>();\n\t\t}\n\t}\n\t\n\t/**\n\t * This function returns the set of interval-generator pairs at a specified dimension.\n\t * \n\t * @param dimension the dimension to get the interval-generator pairs at\n\t * @return the interval-generator pairs at the given dimension\n\t */\n\tpublic List<ObjectObjectPair<I, G>> getIntervalGeneratorPairsAtDimension(int dimension) {\n\t\tif (this.intervalGeneratorPairs.containsKey(dimension)) {\n\t\t\treturn this.intervalGeneratorPairs.get(dimension);\n\t\t} else {\n\t\t\treturn new ArrayList<ObjectObjectPair<I, G>>();\n\t\t}\n\t}\n\n\t/* (non-Javadoc)\n\t * @see java.lang.Object#hashCode()\n\t */\n\t@Override\n\tpublic int hashCode() {\n\t\tfinal int prime = 31;\n\t\tint result = 1;\n\t\tresult = prime * result + ((generators == null) ? 0 : generators.hashCode());\n\t\tresult = prime * result + ((intervalGeneratorPairs == null) ? 0 : intervalGeneratorPairs.hashCode());\n\t\tresult = prime * result + ((intervals == null) ? 0 : intervals.hashCode());\n\t\treturn result;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see java.lang.Object#equals(java.lang.Object)\n\t */\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\tPersistenceInvariantDescriptor<?, ?> other = (PersistenceInvariantDescriptor<?, ?>) obj;\n\t\tif (generators == null) {\n\t\t\tif (other.generators != null)\n\t\t\t\treturn false;\n\t\t} else if (!mapSetEquals(this.generators, other.generators))\n\t\t\treturn false;\n\t\tif (intervalGeneratorPairs == null) {\n\t\t\tif (other.intervalGeneratorPairs != null)\n\t\t\t\treturn false;\n\t\t} else if (!mapSetEquals(this.intervalGeneratorPairs, other.intervalGeneratorPairs))\n\t\t\treturn false;\n\t\tif (intervals == null) {\n\t\t\tif (other.intervals != null)\n\t\t\t\treturn false;\n\t\t} else if (!mapSetEquals(this.intervals, other.intervals))\n\t\t\treturn false;\n\t\treturn true;\n\t}\n\n\tpublic Iterator<Entry<Integer, List<ObjectObjectPair<I, G>>>> iterator() {\n\t\treturn this.getIntervalGeneratorPairIterator();\n\t}\n\n\t/**\n\t * This function computes the union of two collections of persistence invariants.\n\t * \n\t * @param <I> the persistence invariant type - ie. the interval type\n\t * @param <G> the generator type\n\t * @param a the first collection\n\t * @param b the second collection\n\t * @return the union of the two collections\n\t */\n\t@SuppressWarnings(\"unchecked\")\n\tpublic static <I, G> PersistenceInvariantDescriptor<I, G> union(final PersistenceInvariantDescriptor<I, G> a, final PersistenceInvariantDescriptor<I, G> b) {\n\t\t\n\t\t// attempt to instantiate as low as possible\n\t\tPersistenceInvariantDescriptor<I, G> c = null;\n\t\ttry {\n\t\t\tc = a.getClass().newInstance();\n\t\t} catch (InstantiationException e) {\n\t\t\te.printStackTrace();\n\t\t\treturn null;\n\t\t} catch (IllegalAccessException e) {\n\t\t\te.printStackTrace();\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tfor (Iterator<Entry<Integer, List<ObjectObjectPair<I, G>>>> iterator = a.getIntervalGeneratorPairIterator(); iterator.hasNext(); ) {\n\t\t\tEntry<Integer, List<ObjectObjectPair<I, G>>> entry = iterator.next();\n\t\t\tInteger dimension = entry.getKey();\n\t\t\tList<ObjectObjectPair<I, G>> values = entry.getValue();\n\t\t\tfor (ObjectObjectPair<I, G> pair: values) {\n\t\t\t\tc.addInterval(dimension, pair.getFirst(), pair.getSecond());\n\t\t\t}\n\t\t}\n\t\t\n\t\tfor (Iterator<Entry<Integer, List<ObjectObjectPair<I, G>>>> iterator = b.getIntervalGeneratorPairIterator(); iterator.hasNext(); ) {\n\t\t\tEntry<Integer, List<ObjectObjectPair<I, G>>> entry = iterator.next();\n\t\t\tInteger dimension = entry.getKey();\n\t\t\tList<ObjectObjectPair<I, G>> values = entry.getValue();\n\t\t\tfor (ObjectObjectPair<I, G> pair: values) {\n\t\t\t\tc.addInterval(dimension, pair.getFirst(), pair.getSecond());\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn c;\n\t}\n\n\t/**\n\t * This function tests for equality of two maps where the value types are lists. It\n\t * tests whether the values are equal as sets. In other words, it ignores the order\n\t * of the elements.\n\t * \n\t * @param <X>\n\t * @param a the first map\n\t * @param b the second map\n\t * @return true if the maps have equal keys and values (up to re-ordering)\n\t */\n\tprivate static <X> boolean mapSetEquals(Map<Integer, List<X>> a, Map<?, ?> b) {\n\t\tSet<?> a_keys = a.keySet();\n\t\tSet<?> b_keys = b.keySet();\n\t\t\n\t\tif (!ComparisonUtility.setEquals(a_keys, b_keys)) {\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\tfor (Object key: a_keys) {\n\t\t\tCollection<?> a_collection = a.get(key);\n\t\t\t\n\t\t\tObject b_object = b.get(key);\n\t\t\t\n\t\t\tif (!(b_object instanceof List<?>)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t\n\t\t\tList<?> b_collection = (List<?>) b_object;\n\n\t\t\tif (!ComparisonUtility.setEquals(a_collection, b_collection)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t\n\t\t\n\t\treturn true;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/chain_basis/Cell.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.homology.chain_basis;\r\n\r\nimport java.util.Arrays;\r\nimport java.util.Collection;\r\n\r\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\r\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\r\nimport edu.stanford.math.primitivelib.utility.CRC;\r\n\r\n/**\r\n * This class implements the functionality of a cell within a CW complex.\r\n * A CW complex can be described as follows:\r\n * <ol>\r\n * <li>Start with a discrete set X_0 consisting of the 0-cells</li>\r\n * <li>Inductively form the n-skeleton by attaching n-cells e_a via the\r\n * maps phi_a: S^(n-1) -> X_{n-1} which map the boundary of e_a into the\r\n * n-1 skeleton of X.</li>\r\n * </ol>\r\n * \r\n * <p>To define a cell within the CW complex, we require its dimensionality,\r\n * its boundary, and the degrees of the map attaching map followed by a \r\n * quotient map. The user of this class is advised to be familiar with\r\n * cellular homology, as described in (for example) section 2.2 of the \r\n * book \"Algebraic Topology\" by Allen Hatcher.</p>\r\n * \r\n * <p>The required input degrees are the degrees of the composite map\r\n * S_a^{n-1}</p>\r\n * \r\n * <p>For example, we will construct a torus using a cell complex.\r\n * <ul> \r\n * <li>Start with 1 0-cell, called v.</li>\r\n * <li>Add 2 1-cells, a and b, each with boundary glued to the 0-cell. The degree\r\n * of such a mapping is zero.</li>\r\n * <li>Add a 2-cell with boundary elements (a, b, a, b), and degrees (1, -1, 1, -1)</li>\r\n * </ul>\r\n * This corresponds to the familiar construction of a square with opposite edges\r\n * identified.</p>\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class Cell implements PrimitiveBasisElement {\r\n\t/**\r\n\t * This holds the class-wide cell counter.\r\n\t */\r\n\tprivate static int cellIdCounter;\r\n\t\r\n\t/**\r\n\t * This array holds the contents of the boundary elements of the cell.\r\n\t */\r\n\tprivate final PrimitiveBasisElement[] boundaryArray;\r\n\t\r\n\t/**\r\n\t * This holds the cell ids of the boundary elements.\r\n\t */\r\n\tprivate final int[] boundaryIds;\r\n\t\r\n\t/**\r\n\t * This array holds the coefficients of the boundary. These are equal\r\n\t * to the degrees of the composite attaching maps.\r\n\t */\r\n\tprivate final int[] boundaryCoefficients;\r\n\t\r\n\t/**\r\n\t * This holds the cached hash code to prevent recomputing.\r\n\t */\r\n\tprivate final int cachedHashCode;\r\n\t\r\n\t/**\r\n\t * Stores the dimension of the cell.\r\n\t */\r\n\tprivate final int dimension;\r\n\t\r\n\t/**\r\n\t * Stores the unique identifier of the cell.\r\n\t */\r\n\tprivate final int cellId;\r\n\t\r\n\t/**\r\n\t * This constructor initializes the cell to be a 0-cell (a vertex),\r\n\t * with the default cellId as the vertex index.\r\n\t * \r\n\t */\r\n\tpublic Cell() {\r\n\t\tthis.boundaryArray = new PrimitiveBasisElement[0];\r\n\t\tthis.boundaryCoefficients = new int[0];\r\n\t\tthis.boundaryIds = new int[0];\r\n\t\tthis.dimension = 0;\r\n\t\tthis.cellId = cellIdCounter++;\r\n\t\t\r\n\t\t// precompute hashcode\r\n\t\tthis.cachedHashCode = CRC.hash32(new int[]{this.cellId});\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor initializes a cell to be an n-cell with n > 0. Such a cell\r\n\t * is specified by its boundary elements. The degrees of the attaching maps\r\n\t * for this constructor are taken to be the default [1, -1, 1, -1, ...].\r\n\t * \r\n\t * @param dimension the geometric dimension of the cell\r\n\t * @param boundaryElements an array containing the objects in the boundary\r\n\t */\r\n\tpublic Cell(int dimension, Collection<Cell> boundaryElements) {\r\n\t\tthis(dimension, boundaryElements.toArray(new PrimitiveBasisElement[0]), HomologyUtility.getDefaultBoundaryCoefficients(boundaryElements.size()), getCellIds(boundaryElements));\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor initializes the cell to be an n-cell with n > 0. It allows the specification\r\n\t * of the boundary elements as well as the attaching degrees.\r\n\t * \r\n\t * @param dimension  the geometric dimension of the cell\r\n\t * @param boundaryElements an array containing the objects in the boundary\r\n\t * @param attachingDegrees the degrees of the attaching maps to the boundary objects\r\n\t */\r\n\tpublic Cell(int dimension, Collection<Cell> boundaryElements, int[] attachingDegrees) {\r\n\t\tthis(dimension, boundaryElements.toArray(new PrimitiveBasisElement[0]), attachingDegrees, getCellIds(boundaryElements));\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor initializes a cell to be an n-cell with n > 0. Such a cell\r\n\t * is specified by its boundary elements. The degrees of the attaching maps\r\n\t * for this constructor are taken to be the default [1, -1, 1, -1, ...].\r\n\t * \r\n\t * @param dimension the geometric dimension of the cell\r\n\t * @param boundaryElements an array containing the objects in the boundary\r\n\t */\r\n\tpublic Cell(int dimension, Cell[] boundaryElements) {\r\n\t\tthis(dimension, boundaryElements, HomologyUtility.getDefaultBoundaryCoefficients(boundaryElements.length), getCellIds(boundaryElements));\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor initializes the cell to be a n-cell with n > 0. Such a \r\n\t * cell is specified by its boundary elements, the degrees of the attaching\r\n\t * maps to those elements and its dimension.\r\n\t * \r\n\t * @param dimension the geometric dimension of the cell\r\n\t * @param boundaryElements an array containing the objects in the boundary\r\n\t * @param attachingDegrees the degrees of the attaching maps to the boundary objects\r\n\t * @param boundaryIds the cell ids of the boundary elements\r\n\t */\r\n\tprivate Cell(int dimension, PrimitiveBasisElement[] boundaryElements, int[] attachingDegrees, int[] boundaryIds) {\r\n\t\tExceptionUtility.verifyNonNull(boundaryElements);\r\n\t\tExceptionUtility.verifyEqual(boundaryElements.length, attachingDegrees.length);\r\n\t\tthis.boundaryArray = boundaryElements;\r\n\t\tthis.boundaryCoefficients = attachingDegrees;\r\n\t\tthis.boundaryIds = boundaryIds;\r\n\t\tthis.cellId = cellIdCounter++;\r\n\t\tthis.dimension = dimension;\r\n\t\tthis.cachedHashCode = this.precomputeHashCode();\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function produces an array containing the cell id's of the supplied\r\n\t * collection of cells.\r\n\t * \r\n\t * @param boundaryElements the collection of cells\r\n\t * @return an array holding the cell id's\r\n\t */\r\n\tprivate static int[] getCellIds(Collection<Cell> boundaryElements) {\r\n\t\tint[] id_array = new int[boundaryElements.size()];\r\n\t\tint i = 0;\r\n\t\t\r\n\t\tfor (Cell cell: boundaryElements) {\r\n\t\t\tid_array[i] = cell.getCellId();\r\n\t\t\ti++;\r\n\t\t}\r\n\t\t\r\n\t\treturn id_array;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function produces an array containing the cell id's of the supplied\r\n\t * array of cells\r\n\t * \r\n\t * @param boundaryElements\r\n\t * @return an array holding the cell id's\r\n\t */\r\n\tprivate static int[] getCellIds(Cell[] boundaryElements) {\r\n\t\tint[] id_array = new int[boundaryElements.length];\r\n\t\tint i = 0;\r\n\t\t\r\n\t\tfor (Cell cell: boundaryElements) {\r\n\t\t\tid_array[i] = cell.getCellId();\r\n\t\t\ti++;\r\n\t\t}\r\n\t\t\r\n\t\treturn id_array;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the cell ids of the boundary elements.\r\n\t * \r\n\t * @return an array containing the cell ids of the boundary elements.\r\n\t */\r\n\tpublic int[] getBoundaryIds() {\r\n\t\treturn this.boundaryIds;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the unique identifier of the cell.\r\n\t * \r\n\t * @return the cellId of the cell\r\n\t */\r\n\tpublic int getCellId() {\r\n\t\treturn this.cellId;\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getBoundaryArray()\r\n\t */\r\n\tpublic PrimitiveBasisElement[] getBoundaryArray() {\r\n\t\treturn this.boundaryArray;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getDimension()\r\n\t */\r\n\tpublic int getDimension() {\r\n\t\treturn this.dimension;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getBoundaryCoefficients()\r\n\t */\r\n\tpublic int[] getBoundaryCoefficients() {\r\n\t\treturn this.boundaryCoefficients;\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\tpublic String toString() {\r\n\t\treturn (\"[\" + Integer.toString(this.cellId) + \"]\");\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Object#hashCode()\r\n\t */\r\n\tpublic int hashCode() {\r\n\t\treturn this.cachedHashCode;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Object#equals(java.lang.Object)\r\n\t */\r\n\tpublic boolean equals(Object obj) {\r\n\t\tif (this == obj)\r\n\t\t\treturn true;\r\n\t\tif (obj == null)\r\n\t\t\treturn false;\r\n\t\tif (!(obj instanceof Cell))\r\n\t\t\treturn false;\r\n\t\tCell other = (Cell) obj;\r\n\t\tif (!Arrays.equals(boundaryArray, other.boundaryArray))\r\n\t\t\treturn false;\r\n\t\tif (cachedHashCode != other.cachedHashCode)\r\n\t\t\treturn false;\r\n\t\tif (cellId != other.cellId)\r\n\t\t\treturn false;\r\n\t\tif (dimension != other.dimension)\r\n\t\t\treturn false;\r\n\t\treturn true;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function checks to see if the cell has been glued to boundary\r\n\t * elements all of the same dimension.\r\n\t */\r\n\tpublic void verifyDimension() {\r\n\t\tif (this.boundaryArray.length == 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tint boundaryDimension = this.boundaryArray[0].getDimension();\r\n\t\tfor(int i = 1; i < this.boundaryArray.length; i++) {\r\n\t\t\tif (this.boundaryArray[i].getDimension() != boundaryDimension) {\r\n\t\t\t\tthrow new IllegalArgumentException(\"Cell boundary elements are of unequal dimension.\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function precomputes the hash code of the object. Note that this\r\n\t * is acceptable to do since the object is completely immutable - all fields\r\n\t * are final.\r\n\t * \r\n\t * @return the hashcode of the cell\r\n\t */\r\n\tprivate int precomputeHashCode() {\r\n\t\tint[] boundaryHashCodes = new int[this.boundaryArray.length + 1];\r\n\r\n\t\tfor (int i = 0; i < this.boundaryArray.length; i++) {\r\n\t\t\tboundaryHashCodes[i] = this.boundaryArray[i].hashCode();\r\n\t\t}\r\n\t\tboundaryHashCodes[this.boundaryArray.length] = this.cellId;\r\n\t\treturn CRC.hash32(boundaryHashCodes);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/chain_basis/CellComparator.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.homology.chain_basis;\r\n\r\nimport java.util.Comparator;\r\n\r\n/**\r\n * This class provides functionality for comparing two cells within a CW complex.\r\n * The comparison mechanism first compares the dimensions of the cells. If the \r\n * dimensions are equal then it looks at the cellId values. This class\r\n * implements the Comparator interface, and follows a singleton design pattern.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class CellComparator implements Comparator<Cell> {\r\n\t/**\r\n\t * This is the single instantiation of the class.\r\n\t */\r\n\tprivate static CellComparator instance = new CellComparator();\t\r\n\t\r\n\t/**\r\n\t * Private constructor to prevent instantiation.\r\n\t */\r\n\tprivate CellComparator() {}\r\n\t\r\n\t/**\r\n\t * This static function returns the one instance of the class.\r\n\t * \r\n\t * @return the instance of the class\r\n\t */\r\n\tpublic static CellComparator getInstance() {\r\n\t\treturn instance;\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)\r\n\t */\r\n\tpublic int compare(Cell arg0, Cell arg1) {\r\n\t\tint cell0dimension = arg0.getDimension();\r\n\t\tint cell1dimension = arg1.getDimension();\r\n\t\t\r\n\t\t/*\r\n\t\t * Compare dimension.\r\n\t\t */\r\n\t\tif (cell0dimension != cell1dimension) {\r\n\t\t\treturn (cell0dimension - cell1dimension);\r\n\t\t}\r\n\t\t\r\n\t\t/*\r\n\t\t * At this point, they have the same dimension,\r\n\t\t * so compare the cellId's.\r\n\t\t */\r\n\t\treturn (arg0.getCellId() - arg1.getCellId());\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/chain_basis/PrimitiveBasisElement.java",
    "content": "package edu.stanford.math.plex4.homology.chain_basis;\n\n\n/**\n * This interface defines the functionality of a primitive basis element type\n * for a chain complex. The two main implementing classes are designed to be\n * the Simplex and Cell classes. We refer to these as \"primitive\" basis types\n * since they are not built from other any other types. Whereas, we may also\n * construct a chain complex on a basis consisting of objects derived from other\n * basis types. An example of this is when we construct the tensor product of\n * two chain complexes - the basis type consists of tensors of elements.\n * \n * We require that the implementing class provide the hashCode and equals functions.\n * \n * @author Andrew Tausz\n *\n */\npublic interface PrimitiveBasisElement {\n\t\n\t/**\n\t * This function returns the dimension of the basis element. Note that this\n\t * is the actual geometric dimension of the simplex or cell. For example, for\n\t * a simplex this would be one less than the number of indices in it.\n\t * \n\t * @return the geometric dimension of this object\n\t */\n\tpublic int getDimension();\n\t\n\t/**\n\t * This function returns the boundary of the current basis element. As with\n\t * the dimension, this actually obtains the geometric boundary of this object.\n\t * Note that this function only returns the the objects in the boundary, but\n\t * not their coefficients.\n\t * \n\t * @return the boundary of the current object\n\t */\n\tpublic PrimitiveBasisElement[] getBoundaryArray();\n\t\n\t/**\n\t * This function returns the coefficients of the elements of the boundary array.\n\t * It is implemented as a separate function, since this interface is designed \n\t * to be agnostic to its algebraic environment.\n\t * \n\t * In the case of the Simplex class this will return the array consisting of\n\t * alternating signs [1, -1, 1, ...]. However, in the case of the Cell class\n\t * it will return the degrees of the composite attaching maps used to compute\n\t * cellular homology.\n\t * \n\t * @return the coefficients of the boundary elements\n\t */\n\tpublic int[] getBoundaryCoefficients();\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/chain_basis/Simplex.java",
    "content": "package edu.stanford.math.plex4.homology.chain_basis;\r\n\r\nimport java.util.Arrays;\r\n\r\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\r\nimport edu.stanford.math.primitivelib.utility.CRC;\r\n\r\n/**\r\n * <p>This class implements the functionality of a simplex. A simplex\r\n * is an n-dimensional polytope which is the convex hull of its \r\n * vertices. For our purposes, we simply represent a simplex by its\r\n * vertices which are labeled by integers. For example, a 2-simplex \r\n * could be [0, 5, 9].</p>\r\n * \r\n * <p>The vertices of a simplex are specified by non-negative integers. It uses\r\n * an array implementation to store the indices of the vertices of the \r\n * simplex.</p> \r\n * \r\n * <p>This class is designed to be a standard implementation of the \r\n * PrimitiveBasisElement interface. It is also immutable and implements \r\n * value semantics.</p> \r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class Simplex implements PrimitiveBasisElement {\r\n\t/**\r\n\t * This stores the actual vertices of the simplex.\r\n\t */\r\n\tprivate final int[] vertices;\r\n\r\n\t/**\r\n\t * Stored cache of the hash code to prevent recomputing it.\r\n\t */\r\n\tprivate final int cachedHashCode;\r\n\r\n\t/**\r\n\t * This constructor initializes the simplex from a supplied array\r\n\t * of integers.\r\n\t * \r\n\t * @param vertices the vertices to \r\n\t */\r\n\tpublic Simplex(final int[] vertices) {\r\n\r\n\t\t// store the vertices\r\n\t\tthis.vertices = vertices.clone();\r\n\r\n\t\t// make sure that the vertices are sorted\r\n\t\tArrays.sort(this.vertices);\r\n\r\n\t\t// compute the hash code via CRC hashing\r\n\t\tthis.cachedHashCode = CRC.hash32(this.getVertices());\r\n\t}\r\n\t\r\n\tpublic static Simplex makeSimplex(int... args) {\r\n\t\treturn new Simplex(args);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getDimension()\r\n\t */\r\n\tpublic int getDimension() {\r\n\t\treturn (this.vertices.length - 1);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns an array containing the vertices of the simplex.\r\n\t * \r\n\t * @return an array containing the vertices of the simplex\r\n\t */\r\n\tpublic int[] getVertices() {\r\n\t\treturn this.vertices;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getBoundaryArray()\r\n\t */\r\n\tpublic Simplex[] getBoundaryArray() {\r\n\t\t// if this a point, return an empty array\r\n\t\tif (this.getDimension() == 0) {\r\n\t\t\treturn new Simplex[0];\r\n\t\t}\r\n\r\n\t\tSimplex[] boundaryArray = new Simplex[this.vertices.length];\t\t\r\n\t\tfor (int i = 0; i < this.vertices.length; i++) {\r\n\t\t\tboundaryArray[i] = new Simplex(HomologyUtility.removeIndex(this.vertices, i));\r\n\t\t}\r\n\t\treturn boundaryArray;\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement#getBoundaryCoefficients()\r\n\t */\r\n\tpublic int[] getBoundaryCoefficients() {\r\n\t\tif (this.vertices.length == 1) {\r\n\t\t\treturn HomologyUtility.getDefaultBoundaryCoefficients(0);\r\n\t\t}\r\n\t\treturn HomologyUtility.getDefaultBoundaryCoefficients(this.vertices.length);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Object#equals(java.lang.Object)\r\n\t */\r\n\tpublic boolean equals(Object obj) {\r\n\t\tif (obj == this) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (!(obj instanceof Simplex)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tSimplex o = (Simplex) obj;\r\n\t\tif (this.cachedHashCode != o.cachedHashCode) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn (HomologyUtility.compareIntArrays(this.getVertices(), o.getVertices()) == 0);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Object#hashCode()\r\n\t */\r\n\tpublic int hashCode() {\r\n\t\treturn this.cachedHashCode;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Object#toString()\r\n\t */\r\n\tpublic String toString() {\r\n\t\tStringBuilder builder = new StringBuilder();\r\n\t\tbuilder.append('[');\r\n\t\tint[] vertices = this.getVertices();\r\n\t\tfor (int i = 0; i < vertices.length; i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tbuilder.append(',');\r\n\t\t\t}\r\n\t\t\tbuilder.append(vertices[i]);\r\n\t\t}\r\n\t\tbuilder.append(']');\r\n\t\treturn builder.toString();\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/chain_basis/SimplexComparator.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.homology.chain_basis;\n\nimport java.util.Comparator;\n\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\n\n/**\n * This class defines the standard ordering on the Simplex class and\n * implements the Comparator<Simplex> interface. The ordering of the\n * simplices is done first by dimension. If two simplices have the\n * same dimension, their vertices are then compared in lexicographical \n * order. \n * \n * This class implements the singleton design pattern. Thus it cannot\n * be instantiated. Instead the user must call the static getInstance()\n * function in order to get the actual instance for use. \n * \n * Examples:\n * [4, 5, 7] > [9, 10];\n * [1, 2, 3] > [1, 2, 2];\n * [1, 2, 3] < [1, 3, 2];\n * \n * \n * @author Andrew Tausz\n *\n */\npublic class SimplexComparator implements Comparator<Simplex> {\n\t\n\t/**\n\t * This is the single instantiation of the class.\n\t */\n\tprivate static final SimplexComparator instance = new SimplexComparator();\t\n\t\n\t/**\n\t * Private constructor to prevent instantiation.\n\t */\n\tprivate SimplexComparator() {}\n\t\n\t/**\n\t * This static function returns the one instance of the class.\n\t * \n\t * @return the instance of the class\n\t */\n\tpublic static SimplexComparator getInstance() {\n\t\treturn instance;\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)\n\t */\n\tpublic int compare(Simplex o1, Simplex o2) {\t\t\n\t\t// call the compareIntArrays function which actually performs the comparison\n\t\treturn HomologyUtility.compareIntArrays(o1.getVertices(), o2.getVertices());\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/chain_basis/SimplexPair.java",
    "content": "package edu.stanford.math.plex4.homology.chain_basis;\r\n\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\n\r\npublic class SimplexPair extends ObjectObjectPair<Simplex, Simplex> implements PrimitiveBasisElement {\r\n\r\n\tpublic SimplexPair(Simplex first, Simplex second) {\r\n\t\tsuper(first, second);\r\n\t}\r\n\t\r\n\tpublic SimplexPair(int[] first, int[] second) {\r\n\t\tsuper(new Simplex(first), new Simplex(second));\r\n\t}\r\n\t\r\n\tpublic SimplexPair(ObjectObjectPair<Simplex, Simplex> pair) {\r\n\t\tsuper(pair);\r\n\t}\r\n\t\r\n\tpublic static SimplexPair createPair(Simplex first, Simplex second) {\r\n\t\treturn new SimplexPair(first, second);\r\n\t}\r\n\t\r\n\tpublic static SimplexPair createPair(int first, int second) {\r\n\t\treturn new SimplexPair(Simplex.makeSimplex(first), Simplex.makeSimplex(second));\r\n\t}\r\n\t\r\n\tpublic static SimplexPair createPair(int[] first, int[] second) {\r\n\t\treturn new SimplexPair(Simplex.makeSimplex(first), Simplex.makeSimplex(second));\r\n\t}\r\n\r\n\tpublic PrimitiveBasisElement[] getBoundaryArray() {\r\n\t\tSimplex[] firstBoundary = this.first.getBoundaryArray();\r\n\t\tSimplex[] secondBoundary = this.second.getBoundaryArray();\r\n\t\tSimplexPair[] boundary = new SimplexPair[firstBoundary.length + secondBoundary.length];\r\n\t\t\r\n\t\tint i = 0;\r\n\t\tfor (Simplex d_sigma: firstBoundary) {\r\n\t\t\tboundary[i] = new SimplexPair(d_sigma, this.second);\r\n\t\t\ti++;\r\n\t\t}\r\n\t\t\r\n\t\tfor (Simplex d_tau: secondBoundary) {\r\n\t\t\tboundary[i] = new SimplexPair(this.first, d_tau);\r\n\t\t\ti++;\r\n\t\t}\r\n\t\t\r\n\t\treturn boundary;\r\n\t}\r\n\r\n\tpublic int[] getBoundaryCoefficients() {\r\n\t\tint[] firstBoundary = this.first.getBoundaryCoefficients();\r\n\t\tint[] secondBoundary = this.second.getBoundaryCoefficients();\r\n\t\tint[] boundary = new int[firstBoundary.length + secondBoundary.length];\r\n\t\t\r\n\t\tfor (int i = 0; i < firstBoundary.length; i++) {\r\n\t\t\tboundary[i] = firstBoundary[i];\r\n\t\t}\r\n\t\t\r\n\t\tint multiplier = (this.first.getDimension() % 2 == 0 ? 1 : -1);\r\n\t\t\r\n\t\tfor (int i = 0; i < secondBoundary.length; i++) {\r\n\t\t\tboundary[i + firstBoundary.length] = multiplier * secondBoundary[i];\r\n\t\t}\r\n\t\t\r\n\t\treturn boundary;\r\n\t}\r\n\r\n\tpublic int getDimension() {\r\n\t\treturn first.getDimension() + second.getDimension();\r\n\t}\r\n\t\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/chain_basis/SimplexPairComparator.java",
    "content": "package edu.stanford.math.plex4.homology.chain_basis;\r\n\r\nimport java.util.Comparator;\r\n\r\npublic class SimplexPairComparator implements Comparator<SimplexPair> {\r\n\r\n\tprivate static final SimplexComparator simplexComparator = SimplexComparator.getInstance(); \r\n\t\r\n\t/**\r\n\t * This is the single instantiation of the class.\r\n\t */\r\n\tprivate static final SimplexPairComparator instance = new SimplexPairComparator();\t\r\n\t\r\n\t/**\r\n\t * Private constructor to prevent instantiation.\r\n\t */\r\n\tprivate SimplexPairComparator() {}\r\n\t\r\n\t/**\r\n\t * This static function returns the one instance of the class.\r\n\t * \r\n\t * @return the instance of the class\r\n\t */\r\n\tpublic static SimplexPairComparator getInstance() {\r\n\t\treturn instance;\r\n\t}\r\n\t\r\n\tpublic int compare(SimplexPair arg0, SimplexPair arg1) {\r\n\t\tint dim0 = arg0.getDimension();\r\n\t\tint dim1 = arg1.getDimension();\r\n\t\t\r\n\t\tif (dim0 > dim1) {\r\n\t\t\treturn 1;\r\n\t\t} else if (dim0 < dim1) {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\t\r\n\t\tint comparison = simplexComparator.compare(arg0.getFirst(), arg1.getFirst());\r\n\t\tif (comparison != 0) {\r\n\t\t\treturn comparison;\r\n\t\t}\r\n\t\t\r\n\t\treturn simplexComparator.compare(arg0.getSecond(), arg1.getSecond());\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/filtration/ExternalConverter.java",
    "content": "package edu.stanford.math.plex4.homology.filtration;\n\nimport java.util.Arrays;\n\n/**\n * <p>\n * This class implements a conversion between filtration values and filtration\n * indices that is given as an argument at instantiation of the converter. The\n * given filtration values array will be sorted.\n * </p>\n * \n * @author Mikael Vejdemo-Johansson\n * \n */\npublic class ExternalConverter extends FiltrationConverter {\n\tprivate final double[] fvalues;\n\tprivate int n;\n\tprivate double maxfv;\n\tprivate double minfv;\n\n\tpublic ExternalConverter(double[] fvalues) {\n\t\tthis.fvalues = fvalues.clone();\n\t\tArrays.sort(this.fvalues);\n\t\tthis.n = this.fvalues.length;\n\t\tthis.maxfv = this.fvalues[this.n - 1];\n\t\tthis.minfv = this.fvalues[0];\n\t}\n\n\t/**\n\t * This function computes the index based on a filtration value.\n\t * \n\t * @param filtrationValue\n\t *            the value to convert\n\t * @return the filtration index of the given value\n\t */\n\tpublic int getFiltrationIndex(double filtrationValue) {\n\t\tif (filtrationValue <= this.minfv) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (filtrationValue >= this.maxfv)\n\t\t\treturn this.n - 1;\n\n\t\tint index = Arrays.binarySearch(this.fvalues, filtrationValue);\n\n\t\tif (index < 0) {\n\t\t\tindex = (-index) - 2;\n\t\t}\n\n\t\treturn index;\n\t}\n\n\t/**\n\t * This function computes the filtration value from a filtration index.\n\t * \n\t * @param filtrationIndex\n\t *            the index to convert\n\t * @return the filtration value for the particular index\n\t */\n\tpublic double getFiltrationValue(int filtrationIndex) {\n\t\tif (filtrationIndex < 0) {\n\t\t\treturn this.fvalues[0];\n\t\t}\n\n\t\tif (filtrationIndex >= this.fvalues.length) {\n\t\t\treturn this.fvalues[this.fvalues.length - 1];\n\t\t}\n\n\t\treturn this.fvalues[filtrationIndex];\n\t}\n\n\t/*\n\t * (non-Javadoc)\n\t * \n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#\n\t * computeInducedFiltrationValue(double, double)\n\t */\n\tpublic double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) {\n\t\treturn Math.max(filtrationValue1, filtrationValue2);\n\t}\n\n\t/**\n\t * This function returns the filtration at index 0.\n\t * \n\t * @return the filtration at index 0\n\t */\n\tpublic double getInitialFiltrationValue() {\n\t\treturn this.fvalues[0];\n\t}\n}"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/filtration/FiltrationConverter.java",
    "content": "package edu.stanford.math.plex4.homology.filtration;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\nimport edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction;\n\n\n\n/**\n * This interface defines a mapping between filtration values and filtration indices.\n * \n * @author Andrew Tausz\n *\n */\npublic abstract class FiltrationConverter implements ObjectObjectFunction<Interval<Integer>, Interval<Double>> {\n\t\n\t/**\n\t * This function computes the index based on a filtration value.\n\t * \n\t * @param filtrationValue the value to convert\n\t * @return the filtration index of the given value\n\t */\n\tpublic abstract int getFiltrationIndex(double filtrationValue);\n\t\n\t/**\n\t * This function computes the filtration value from a filtration index.\n\t * \n\t * @param filtrationIndex the index to convert\n\t * @return the filtration value for the particular index\n\t */\n\tpublic abstract double getFiltrationValue(int filtrationIndex);\n\t\n\t/**\n\t * This function computes the filtration value that is consistent with the\n\t * ordering of filtration indices. For example, for filtration values that are\n\t * increasing with filtration indices, this should be the max function.\n\t * \n\t * @param filtrationValue1\n\t * @param filtrationValue2\n\t * @return the filtration value that is induced by two filtration values\n\t */\n\tpublic abstract double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2);\n\t\n\t/**\n\t * This function returns the filtration at index 0.\n\t * \n\t * @return the filtration at index 0\n\t */\n\tpublic abstract double getInitialFiltrationValue();\n\t\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> invariantDescriptor) {\n\t\treturn FiltrationUtility.transform(invariantDescriptor, this);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#transformInterval(edu.stanford.math.plex4.homology.barcodes.IntHalfOpenInterval)\n\t */\n\tpublic Interval<Double> evaluate(Interval<Integer> interval) {\n\t\tif (interval.isLeftInfinite() && interval.isRightInfinite()) {\n\t\t\treturn Interval.makeInterval(null, null, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite());\n\t\t}\n\t\t\n\t\tif (interval.isLeftInfinite()) {\n\t\t\treturn Interval.makeInterval(null, this.getFiltrationValue(interval.getEnd()), interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite());\n\t\t}\n\t\t\n\t\tif (interval.isRightInfinite()) {\n\t\t\treturn Interval.makeInterval(this.getFiltrationValue(interval.getStart()), null, interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite());\n\t\t}\n\t\t\n\t\treturn Interval.makeInterval(this.getFiltrationValue(interval.getStart()), this.getFiltrationValue(interval.getEnd()), interval.isLeftClosed(), interval.isRightClosed(), interval.isLeftInfinite(), interval.isRightInfinite());\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/filtration/FiltrationUtility.java",
    "content": "package edu.stanford.math.plex4.homology.filtration;\n\nimport java.util.Iterator;\nimport java.util.List;\nimport java.util.Map.Entry;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\nimport edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\n\n/**\n * This class contains various static functions that aid in the transformation between objects\n * defined in terms of filtration indices to objects defined in terms of filtration values.\n * \n * @author Andrew Tausz\n *\n */\npublic class FiltrationUtility {\n\t\n\t@SuppressWarnings(\"unchecked\")\n\tpublic static <G, X, Y> PersistenceInvariantDescriptor<Y, G> transform(PersistenceInvariantDescriptor<X, G> invariantDescriptor, ObjectObjectFunction<X, Y> converter) {\n\t\tPersistenceInvariantDescriptor<Y, G> result = null;\n\t\t\n\t\ttry {\n\t\t\tresult = invariantDescriptor.getClass().newInstance();\n\t\t} catch (InstantiationException e) {\n\t\t\te.printStackTrace();\n\t\t\treturn null;\n\t\t} catch (IllegalAccessException e) {\n\t\t\te.printStackTrace();\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tfor (Iterator<Entry<Integer, List<ObjectObjectPair<X, G>>>> iterator = invariantDescriptor.getIntervalGeneratorPairIterator(); iterator.hasNext(); ) {\n\t\t\tEntry<Integer, List<ObjectObjectPair<X, G>>> entry = iterator.next();\n\t\t\tInteger dimension = entry.getKey();\n\t\t\tfor (ObjectObjectPair<X, G> pair: entry.getValue()) {\n\t\t\t\tY transformedObject = converter.evaluate(pair.getFirst());\n\t\t\t\tG generator = pair.getSecond();\n\t\t\t\tresult.addInterval(dimension, transformedObject, generator);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static <G> PersistenceInvariantDescriptor<Interval<Double>, G> transformByIdentity(PersistenceInvariantDescriptor<Interval<Integer>, G> invariantDescriptor) {\n\t\tIdentityConverter converter = IdentityConverter.getInstance();\n\t\treturn transform(invariantDescriptor, converter);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/filtration/IdentityConverter.java",
    "content": "package edu.stanford.math.plex4.homology.filtration;\n\n\n\n/**\n * This class defines a filtration value conversion which simply defines the filtration\n * value to be equal to the filtration index. (i.e. f_i = i)\n * \n * @author Andrew Tausz\n *\n */\npublic class IdentityConverter extends FiltrationConverter {\n\n\t/**\n\t * This is the single instance of the class\n\t */\n\tprivate static IdentityConverter instance = new IdentityConverter();\n\t\n\t/**\n\t * Private constructor to prevent instantiation.\n\t */\n\tprivate IdentityConverter(){}\n\t\n\t/**\n\t * This returns the single instance of the class.\n\t * \n\t * @return the single instance of the class\n\t */\n\tpublic static IdentityConverter getInstance() {\n\t\treturn instance;\n\t}\n\t\n\t@Override\n\tpublic int getFiltrationIndex(double filtrationValue) {\n\t\treturn (int) filtrationValue;\n\t}\n\n\t@Override\n\tpublic double getFiltrationValue(int filtrationIndex) {\n\t\treturn filtrationIndex;\n\t}\n\n\t@Override\n\tpublic double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) {\n\t\treturn Math.max(filtrationValue1, filtrationValue2);\n\t}\n\n\t@Override\n\tpublic double getInitialFiltrationValue() {\n\t\treturn 0;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/filtration/IncreasingLinearConverter.java",
    "content": "package edu.stanford.math.plex4.homology.filtration;\n\n\n\n/**\n * <p>This class implements a conversion between filtration values and filtration\n * indices that is linear and increasing. If we let f_k be the filtration value\n * at index k and N is the number of divisions, then this mapping satisfies:\n * <ul>\n * <li>f_k = min + k * delta</li>\n * <li>f_0 = min</li>\n * <li>f_{N-1} = max</li>\n * </ul>\n * </p>\n * \n * @author Andrew Tausz\n *\n */\npublic class IncreasingLinearConverter extends FiltrationConverter {\n\t/*\n\t * f_k = min + delta * k\n\t * f_0 = min\n\t * f_{N-1} = max\n\t * Therefore:\n\t * delta = (max - min) / (delta - 1)\n\t * k = (f_k - min) / delta\n\t * \n\t */\n\t\n\t/**\n\t * The number of divisions of the range [min, max)\n\t */\n\tprivate final int numDivisions;\n\t\n\t/**\n\t * The minimum filtration value, aka. min.\n\t */\n\tprivate final double minFiltrationValue;\n\t\n\t/**\n\t * The maximum filtration value, aka. max.\n\t */\n\tprivate final double maxFiltrationValue;\n\t\n\t/**\n\t * The granularity, or spacing between filtration values.\n\t */\n\tprivate final double delta;\n\t\n\t/**\n\t * This constructor initializes the object with the number of divisions in the range, and the\n\t * minimum and maximum values.\n\t * \n\t * @param numDivisions the number of divisions to use in the range\n\t * @param minFiltrationValue the minimum filtration value\n\t * @param maxFiltrationValue the maximum filtration value\n\t */\n\tpublic IncreasingLinearConverter(int numDivisions, double minFiltrationValue, double maxFiltrationValue) {\n\t\tthis.numDivisions = numDivisions;\n\t\tthis.minFiltrationValue = minFiltrationValue;\n\t\tthis.maxFiltrationValue = maxFiltrationValue;\n\t\tthis.delta = (this.maxFiltrationValue - this.minFiltrationValue) / (double) (this.numDivisions);\n\t}\n\t\n\t/**\n\t * This initializes the object with a default minimum filtration value of zero.\n\t * \n\t * @param numDivisions the number of divisions in the range\n\t * @param maxFiltrationValue the maximum filtration value\n\t */\n\tpublic IncreasingLinearConverter(int numDivisions, double maxFiltrationValue) {\n\t\tthis(numDivisions, 0, maxFiltrationValue);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getFiltrationIndex(double)\n\t */\n\tpublic int getFiltrationIndex(double filtrationValue) {\n\t\tif (this.delta == 0) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn (int) ((filtrationValue - this.minFiltrationValue) / this.delta);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getFiltrationValue(int)\n\t */\n\tpublic double getFiltrationValue(int filtrationIndex) {\n\t\treturn (this.minFiltrationValue + this.delta * filtrationIndex);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#computeInducedFiltrationValue(double, double)\n\t */\n\tpublic double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) {\n\t\treturn Math.max(filtrationValue1, filtrationValue2);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getInitialFiltrationValue()\n\t */\n\tpublic double getInitialFiltrationValue(){\n\t\treturn this.minFiltrationValue;\n\t}\n\t\n\t/**\n\t * @return the number of divisions\n\t */\n\tpublic int getNumDivisions() {\n\t\treturn numDivisions;\n\t}\n\n\t/**\n\t * @return the minimum filtration value\n\t */\n\tpublic double getMinFiltrationValue() {\n\t\treturn minFiltrationValue;\n\t}\n\n\t/**\n\t * @return the maximum filtration value\n\t */\n\tpublic double getMaxFiltrationValue() {\n\t\treturn maxFiltrationValue;\n\t}\n\n\t/**\n\t * @return the spacing between the points\n\t */\n\tpublic double getDelta() {\n\t\treturn delta;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/filtration/StaticConverter.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.homology.filtration;\n\n\n/**\n * This class implements the FiltrationConverter interface for static complexes. \n * It simply sets all of the filtration values and indices to 0.\n * \n * @author Andrew Tausz\n *\n */\npublic class StaticConverter extends FiltrationConverter {\n\t/**\n\t * This is the single instance of the class\n\t */\n\tprivate static StaticConverter instance = new StaticConverter();\n\t\n\t/**\n\t * Private constructor to prevent instantiation.\n\t */\n\tprivate StaticConverter(){}\n\t\n\t/**\n\t * This returns the single instance of the class.\n\t * \n\t * @return the single instance of the class\n\t */\n\tpublic static StaticConverter getInstance() {\n\t\treturn instance;\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getFiltrationIndex(double)\n\t */\n\tpublic int getFiltrationIndex(double filtrationValue) {\n\t\treturn 0;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getFiltrationValue(int)\n\t */\n\tpublic double getFiltrationValue(int filtrationIndex) {\n\t\treturn 0;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#computeInducedFiltrationValue(double, double)\n\t */\n\tpublic double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) {\n\t\treturn 0;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.filtration.FiltrationConverter#getInitialFiltrationValue()\n\t */\n\tpublic double getInitialFiltrationValue() {\n\t\treturn 0;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/interfaces/AbstractPersistenceAlgorithm.java",
    "content": "package edu.stanford.math.plex4.homology.interfaces;\n\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\n\n/**\n * This interface defines the functionality of a persistence algorithm. Namely it is a mapping\n * which takes a filtered chain complex to a barcode collection.\n * \n * @author Andrew Tausz\n *\n * @param <T> the underlying basis type of the filtered chain complex\n */\npublic abstract class AbstractPersistenceAlgorithm<T> {\n\t/**\n\t * This function computes the persistence index intervals of a filtered chain complex.\n\t * In other words, it returns intervals corresponding to the internal filtration\n\t * indices of the basis elements. \n\t * \n\t * @param stream the filtered chain complex \n\t * @return the persistence intervals of the given complex\n\t */\n\tpublic abstract BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<T> stream);\n\t\n\t/**\n\t * This function computes the persistence intervals of a filtered chain complex.\n\t * \n\t * @param stream the filtered chain complex \n\t * @return the persistence intervals of the given complex\n\t */\n\tpublic BarcodeCollection<Double> computeIntervals(AbstractFilteredStream<T> stream) {\n\t\tBarcodeCollection<Integer> integerIntervals = this.computeIndexIntervals(stream);\n\t\treturn (BarcodeCollection<Double>) stream.transform(integerIntervals);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/interfaces/AbstractPersistenceBasisAlgorithm.java",
    "content": "package edu.stanford.math.plex4.homology.interfaces;\n\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\n\n/**\n * This interface defines the functionality of a persistence algorithm that also produces generators\n * for each calculated interval.\n * \n * @author Andrew Tausz\n *\n * @param <T> the underlying basis type of the filtered chain complex\n * @param <B> the type of the generators of the persistence intervals\n */\npublic abstract class AbstractPersistenceBasisAlgorithm<T, B> extends AbstractPersistenceAlgorithm<T> {\n\t\n\t/**\n\t * This function computes the augmented persistence index intervals for a supplied filtered chain complex.\n\t * The augmented persistence intervals are the same as the regular persistence intervals, except that\n\t * each interval is annotated with a generator of type B. Note that it returns intervals corresponding \n\t * to the internal filtration indices of the basis elements. \n\t * \n\t * @param stream the filtered chain complex\n\t * @return the augmented persistence intervals\n\t */\n\tpublic abstract AnnotatedBarcodeCollection<Integer, B> computeAnnotatedIndexIntervals(AbstractFilteredStream<T> stream);\n\t\n\t/**\n\t * This function computes the augmented persistence intervals for a supplied filtered chain complex.\n\t * The augmented persistence intervals are the same as the regular persistence intervals, except that\n\t * each interval is annotated with a generator of type B.\n\t * \n\t * @param stream the filtered chain complex\n\t * @return the augmented persistence intervals\n\t */\n\tpublic AnnotatedBarcodeCollection<Double, B> computeAnnotatedIntervals(AbstractFilteredStream<T> stream) {\n\t\tAnnotatedBarcodeCollection<Integer, B> integerIntervals = this.computeAnnotatedIndexIntervals(stream);\n\t\treturn (AnnotatedBarcodeCollection<Double, B>) stream.transform(integerIntervals);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/nonautogen/DisjointSetSystem.java",
    "content": "package edu.stanford.math.plex4.homology.nonautogen;\n\n@Deprecated\npublic class DisjointSetSystem {\n\tint capacity = 16;\n\tint size = 0;\n\tint[] parents = null;\n\tint[] ranks = null;\n\t\n\tpublic DisjointSetSystem(int size) {\n\t\twhile (capacity < size) {\n\t\t\tcapacity *= 2;\n\t\t}\n\t\t\n\t\tthis.size = size;\n\t\tthis.parents = new int[capacity];\n\t\tthis.ranks = new int[capacity];\n\t\tfor (int i = 0; i < this.size; i++) {\n\t\t\tthis.parents[i] = i;\n\t\t}\n\t}\n\t\n\tpublic DisjointSetSystem(DisjointSetSystem set) {\n\t\tthis.capacity = set.capacity;\n\t\tthis.size = set.size;\n\t\tthis.parents = new int[capacity];\n\t\tthis.ranks = new int[capacity];\n\t\tfor (int i = 0; i < this.size; i++) {\n\t\t\tthis.parents[i] = set.parents[i];\n\t\t\tthis.ranks[i] = set.ranks[i];\n\t\t}\n\t}\n\t\n\tpublic void grow(int newSize) {\n\t\tint newCapacity = capacity;\n\t\twhile (newCapacity < newSize) {\n\t\t\tnewCapacity *= 2;\n\t\t}\n\t\t\n\t\tif (newCapacity != this.capacity) {\n\t\t\tint[] newParents = new int[newCapacity];\n\t\t\tint[] newRanks = new int[newCapacity];\n\t\t\t\n\t\t\tfor (int i = 0; i < this.size; i++) {\n\t\t\t\tnewParents[i] = this.parents[i];\n\t\t\t\tnewRanks[i] = this.ranks[i];\n\t\t\t}\n\t\t\t\n\t\t\tthis.parents = newParents;\n\t\t\tthis.ranks = newRanks;\n\t\t\tthis.capacity = newCapacity;\n\t\t}\n\t\t\n\t\tthis.size = newSize;\n\t}\n\t\n\t/**\n\t * Returns the index of the representative\n\t * @param index\n\t * @return the index of the representative\n\t */\n\tpublic int find(int index) {\n\t\tif (parents[index] == index) {\n\t\t\treturn index;\n\t\t} else {\n\t\t\tparents[index] = find(parents[index]);\n\t\t\treturn parents[index];\n\t\t}\n\t}\n\t\n\tpublic void union(int x, int y) {\n\t\tint xRoot = this.find(x);\n\t\tint yRoot = this.find(y);\n\t\tif (ranks[xRoot] > ranks[yRoot]) {\n\t\t\tparents[yRoot] = xRoot;\n\t\t} else if (ranks[xRoot] < ranks[yRoot]) {\n\t\t\tparents[xRoot] = yRoot;\n\t\t} else if (xRoot != yRoot) {\n\t\t\tparents[yRoot] = xRoot;\n\t\t\tranks[xRoot]++;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/nonautogen/PersistentCohomologyPrototype.java",
    "content": "package edu.stanford.math.plex4.homology.nonautogen;\n\nimport java.util.Comparator;\nimport java.util.HashMap;\nimport java.util.HashSet;\nimport java.util.Map;\nimport java.util.Set;\n\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.streams.derived.DualStream;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.plex4.streams.utility.FilteredComparator;\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntVectorConverter;\nimport edu.stanford.math.primitivelib.autogen.matrix.IntSparseVector;\nimport edu.stanford.math.primitivelib.autogen.matrix.IntVectorEntry;\nimport gnu.trove.TIntHashSet;\nimport gnu.trove.TIntIntHashMap;\nimport gnu.trove.TIntIntIterator;\nimport gnu.trove.TIntObjectHashMap;\nimport gnu.trove.TIntObjectIterator;\nimport gnu.trove.TObjectIntHashMap;\nimport gnu.trove.TObjectIntIterator;\n\npublic class PersistentCohomologyPrototype<U> extends AbstractPersistenceAlgorithm<U> {\n\t/**\n\t * This is the field over which we perform the arithmetic computations.\n\t */\n\tprotected final IntAbstractField field;\n\n\t/**\n\t * This objects performs the chain computations.\n\t */\n\tprotected final IntAlgebraicFreeModule<U> chainModule;\n\n\t/**\n\t * This comparator defines the ordering on the basis elements.\n\t */\n\tprotected final Comparator<U> basisComparator;\n\n\t/**\n\t * This comparator provides the dictionary ordering on filtration value - basis element\n\t * pairs.\n\t */\n\tprotected Comparator<U> filteredComparator = null;\n\n\t/**\n\t * This stores the minimum dimension for which to compute (co)homology.\n\t */\n\tprotected int minDimension = 0;\n\n\t/**\n\t * This stores the maximum dimension for which to compute (co)homology.\n\t */\n\tprotected int maxDimension = 2;\t\n\n\t/**\n\t * This constructor initializes the object with a field and a comparator on the basis type.\n\t * \n\t * @param field a field structure on the type int\n\t * @param basisComparator a comparator on the basis type U\n\t * @param minDimension the minimum dimension to compute \n\t * @param maxDimension the maximum dimension to compute\n\t */\n\tpublic PersistentCohomologyPrototype(IntAbstractField field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\n\t\tthis.field = field;\n\t\tthis.chainModule = new IntAlgebraicFreeModule<U>(this.field);\n\t\tthis.basisComparator = basisComparator;\n\t\tthis.minDimension = minDimension;\n\t\tthis.maxDimension = maxDimension;\n\t}\n\n\t/**\n\t * This function simply updates the filtered comparator to the one induced by the given filtered stream.\n\t * \n\t * @param stream the AbstractFilteredStream that provides the filtration index information\n\t */\n\tprotected void initializeFilteredComparator(AbstractFilteredStream<U> stream) {\n\t\tthis.filteredComparator = new FilteredComparator<U>(stream, this.basisComparator);\n\t}\n\n\t/**\n\t * This function returns the free module used for the arithmetic computations.\n\t * \n\t * @return the free module over chains in U\n\t */\n\tpublic IntAlgebraicFreeModule<U> getChainModule() {\n\t\treturn this.chainModule;\n\t}\n\n\t/**\n\t * This function returns the field over which the homology is computed.\n\t * \n\t * @return the field over type int\n\t */\n\tpublic IntAbstractField getField() {\n\t\treturn this.field;\n\t}\n\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<U> stream) {\n\t\tthis.initializeFilteredComparator(stream);\n\t\treturn this.pCohMatrix(stream);\n\t}\n\n\tprivate BarcodeCollection<Integer> pCohMatrix(AbstractFilteredStream<U> stream) {\n\t\tAbstractFilteredStream<U> dualStream = new DualStream<U>(stream);\n\t\tIntVectorConverter<U> vectorConverter = new IntVectorConverter<U>(stream);\n\t\tdualStream.finalizeStream();\n\n\t\tBarcodeCollection<Integer> collection = new BarcodeCollection<Integer>();\n\t\tcollection.setLeftClosedDefault(true);\n\t\tcollection.setRightClosedDefault(false);\n\t\t\n\t\t//List<IntSparseFormalSum<U>> Z = new ArrayList<IntSparseFormalSum<U>>();\n\t\t//List<U> birth = new ArrayList<U>();\n\n\t\t//Set<U> live_cocycle_indices = new HashSet<U>();\n\t\t//Map<U, IntSparseFormalSum<U>> cocycles = new HashMap<U, IntSparseFormalSum<U>>();\n\t\t//Map<U, IntSparseFormalSum<U>> cocycleCoboundaries = new HashMap<U, IntSparseFormalSum<U>>();\n\n\t\tTIntHashSet live_cocycle_indices = new TIntHashSet();\n\t\tTIntObjectHashMap<IntSparseVector> cocycles = new TIntObjectHashMap<IntSparseVector>();\n\t\tTIntObjectHashMap<IntSparseVector> cocycleCoboundaries = new TIntObjectHashMap<IntSparseVector>();\n\n\t\tTIntIntHashMap coefficients = new TIntIntHashMap();\n\t\tfor (U sigma_k : stream) {\n\t\t\tint dim_sigma_k = stream.getDimension(sigma_k);\n\t\t\t\n\t\t\t/*\n\t\t\t * Do not process simplices of higher dimension than maxDimension.\n\t\t\t */\n\t\t\tif (dim_sigma_k < this.minDimension) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (dim_sigma_k > this.maxDimension + 1) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t\n\t\t\tint j = -1;\n\t\t\tint c_j = 0;\n\t\t\tint k = vectorConverter.getIndex(sigma_k);\n\t\t\t\n\t\t\tcoefficients.clear();\n\n\t\t\tfor (TIntObjectIterator<IntSparseVector> iterator = cocycleCoboundaries.iterator(); iterator.hasNext(); ) {\n\t\t\t\titerator.advance();\n\t\t\t\tIntSparseVector d_alpha_i = iterator.value();\n\t\t\t\tint i = iterator.key();\n\t\t\t\tint c_i = d_alpha_i.get(k);\n\t\t\t\tif (!field.isZero(c_i)) {\n\t\t\t\t\tcoefficients.put(i, c_i);\n\t\t\t\t\tif (i > j) {\n\t\t\t\t\t\tj = i;\n\t\t\t\t\t\tc_j = c_i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (j < 0) {\n\t\t\t\tlive_cocycle_indices.add(k);\n\t\t\t\tcocycles.put(k, vectorConverter.toSparseVector(chainModule.createNewSum(sigma_k)));\n\t\t\t\tcocycleCoboundaries.put(k, vectorConverter.toSparseVector(chainModule.createNewSum(dualStream.getBoundaryCoefficients(sigma_k), dualStream.getBoundary(sigma_k))));\n\t\t\t} else {\n\t\t\t\tIntSparseVector alpha_j = cocycles.get(j);\n\t\t\t\tIntSparseVector d_alpha_j = cocycleCoboundaries.get(j);\n\t\t\t\tlive_cocycle_indices.remove(j);\n\t\t\t\tcocycles.remove(j);\n\t\t\t\tcocycleCoboundaries.remove(j);\n\n\t\t\t\tfor (TIntIntIterator cIterator = coefficients.iterator(); cIterator.hasNext(); ) {\n\t\t\t\t\tcIterator.advance();\n\t\t\t\t\tint i = cIterator.key();\n\t\t\t\t\tif (i == j) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tint c_i = cIterator.value();\n\t\t\t\t\tint q = field.negate(field.divide(c_i, c_j));\n\n\t\t\t\t\taccumulate(cocycles.get(i), alpha_j, q, this.field);\n\t\t\t\t\taccumulate(cocycleCoboundaries.get(i), d_alpha_j, q, this.field);\n\t\t\t\t\t\n\t\t\t\t\tif (cocycles.get(i).isEmpty()) {\n\t\t\t\t\t\tcocycles.remove(i);\n\t\t\t\t\t\tcocycleCoboundaries.remove(i);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tU sigma_j = vectorConverter.getBasisElement(j);\n\t\t\t\tint index_j = stream.getFiltrationIndex(sigma_j);\n\t\t\t\tint index_k = stream.getFiltrationIndex(sigma_k);\n\t\t\t\tint dimension = stream.getDimension(sigma_j);\n\t\t\t\tif (index_k > index_j && dimension < maxDimension) {\n\t\t\t\t\tcollection.addInterval(dimension, index_j, index_k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (TIntObjectIterator<IntSparseVector> iterator = cocycleCoboundaries.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\t\t\tint i = iterator.key();\n\t\t\tU sigma_i = vectorConverter.getBasisElement(i);\n\t\t\tint dimension = stream.getDimension(sigma_i);\n\t\t\tif (dimension < maxDimension) {\n\t\t\t\tcollection.addRightInfiniteInterval(dimension, stream.getFiltrationIndex(sigma_i));\n\t\t\t}\n\t\t}\n\n\n\t\treturn collection;\n\t}\n\n\t@SuppressWarnings(\"unused\")\n\tprivate BarcodeCollection<Integer> pCoh(AbstractFilteredStream<U> stream) {\n\t\tAbstractFilteredStream<U> dualStream = new DualStream<U>(stream);\n\t\tdualStream.finalizeStream();\n\t\t//Timing.stopAndDisplay(\"Constructed dual stream\");\n\t\t//Timing.restart();\n\t\tBarcodeCollection<Integer> collection = new BarcodeCollection<Integer>();\n\t\tcollection.setLeftClosedDefault(true);\n\t\tcollection.setRightClosedDefault(false);\n\t\t\n\t\t//List<IntSparseFormalSum<U>> Z = new ArrayList<IntSparseFormalSum<U>>();\n\t\t//List<U> birth = new ArrayList<U>();\n\n\t\tSet<U> live_cocycle_indices = new HashSet<U>();\n\t\tMap<U, IntSparseFormalSum<U>> cocycles = new HashMap<U, IntSparseFormalSum<U>>();\n\t\tMap<U, IntSparseFormalSum<U>> cocycleCoboundaries = new HashMap<U, IntSparseFormalSum<U>>();\n\n\t\tfor (U sigma_k : stream) {\n\t\t\t/*\n\t\t\t * Do not process simplices of higher dimension than maxDimension.\n\t\t\t */\n\t\t\tif (stream.getDimension(sigma_k) < this.minDimension) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (stream.getDimension(sigma_k) > this.maxDimension + 1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tTObjectIntHashMap<U> coefficients = new TObjectIntHashMap<U>();\n\t\t\tU j = null;\n\t\t\tint c_j = 0;\n\n\t\t\tint dim_sigma_k = stream.getDimension(sigma_k);\n\n\t\t\tfor (U i: live_cocycle_indices) {\n\t\t\t\tIntSparseFormalSum<U> d_alpha_i = cocycleCoboundaries.get(i);\n\t\t\t\tint dim_i = stream.getDimension(i);\n\n\t\t\t\tif ((dim_i + 1 == dim_sigma_k) && d_alpha_i.containsObject(sigma_k)) {\n\t\t\t\t\tint c_i = d_alpha_i.getCoefficient(sigma_k);\n\t\t\t\t\tcoefficients.put(i, c_i);\n\t\t\t\t\tif (j == null || (this.filteredComparator.compare(i, j) > 0)) {\n\t\t\t\t\t\tj = i;\n\t\t\t\t\t\tc_j = c_i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (j == null) {\n\t\t\t\tlive_cocycle_indices.add(sigma_k);\n\t\t\t\tcocycles.put(sigma_k, chainModule.createNewSum(sigma_k));\n\t\t\t\tcocycleCoboundaries.put(sigma_k, chainModule.createNewSum(dualStream.getBoundaryCoefficients(sigma_k), dualStream.getBoundary(sigma_k)));\n\t\t\t} else {\n\t\t\t\tIntSparseFormalSum<U> alpha_j = cocycles.get(j);\n\t\t\t\tIntSparseFormalSum<U> d_alpha_j = cocycleCoboundaries.get(j);\n\t\t\t\tlive_cocycle_indices.remove(j);\n\t\t\t\tcocycles.remove(j);\n\t\t\t\tcocycleCoboundaries.remove(j);\n\n\t\t\t\tfor (TObjectIntIterator<U> cIterator = coefficients.iterator(); cIterator.hasNext(); ) {\n\t\t\t\t\tcIterator.advance();\n\t\t\t\t\tU i = cIterator.key();\n\t\t\t\t\tif (i.equals(j)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tint c_i = cIterator.value();\n\t\t\t\t\tint q = field.negate(field.divide(c_i, c_j));\n\t\t\t\t\tchainModule.accumulate(cocycles.get(i), alpha_j, q);\n\t\t\t\t\tchainModule.accumulate(cocycleCoboundaries.get(i), d_alpha_j, q);\n\t\t\t\t\t\n\t\t\t\t\tif (cocycles.get(i).isEmpty()) {\n\t\t\t\t\t\tcocycles.remove(i);\n\t\t\t\t\t\tcocycleCoboundaries.remove(i);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tint index_j = stream.getFiltrationIndex(j);\n\t\t\t\tint index_k = stream.getFiltrationIndex(sigma_k);\n\t\t\t\tint dimension = stream.getDimension(j);\n\t\t\t\tif (index_k > index_j && dimension < maxDimension) {\n\t\t\t\t\tcollection.addInterval(stream.getDimension(j), index_j, index_k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (U i: live_cocycle_indices) {\n\t\t\tint dimension = stream.getDimension(i);\n\t\t\tif (dimension < maxDimension) {\n\t\t\t\tcollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\n\t\t\t}\n\t\t}\n\n\t\treturn collection;\n\t}\n\n\tprivate void accumulate(IntSparseVector a, IntSparseVector b, int c, IntAbstractField field) {\n\t\tfor (IntVectorEntry pair: b) {\n\t\t\tint index = pair.getIndex();\n\t\t\tint value = pair.getValue();\n\t\t\ta.set(index, field.add(a.get(index), field.multiply(value, c)));\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/utility/HomologyUtility.java",
    "content": "package edu.stanford.math.plex4.homology.utility;\r\n\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport gnu.trove.TIntHashSet;\r\nimport gnu.trove.TIntIterator;\r\n\r\n/**\r\n * This class contains static utility functions to aid\r\n * the homology computations.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class HomologyUtility {\r\n\t/**\r\n\t * This array caches the standard sequence of boundary coefficients. We \r\n\t * construct a cache since we do not want to keep re-creating arrays with\r\n\t * coefficients [1, -1, 1, -1, ...], therefore we construct them once.\r\n\t */\r\n\tprivate static int[][] defaultBoundaryCoefficients = null;\r\n\t\r\n\t/**\r\n\t * This stores the maximum coefficient array size stored in the cache.\r\n\t */\r\n\tprivate static int defaultCoefficientCacheSize = 10;\r\n\t\r\n\t/**\r\n\t * This function initializes the set of default boundary coefficients. It\r\n\t * constructs an array of the form\r\n\t * [[],\r\n\t *  [1],\r\n\t *  [1, -1],\r\n\t *  [1, -1, 1]\r\n\t *  [1, -1, 1, -1],\r\n\t *  ... ]\r\n\t */\r\n\tprivate static void initializeDefaultBoundaryCoefficients() {\r\n\t\tdefaultBoundaryCoefficients = new int[defaultCoefficientCacheSize][];\r\n\t\tfor (int i = 0; i < defaultCoefficientCacheSize; i++) {\r\n\t\t\tdefaultBoundaryCoefficients[i] = new int[i];\r\n\t\t\tfor (int j = 0; j < i; j++) {\r\n\t\t\t\tdefaultBoundaryCoefficients[i][j] = (j % 2 == 0 ? 1 : -1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the standard sequence of boundary coefficients\r\n\t * used in simplicial homology, defined by c_i = (-1)^i. For small values\r\n\t * of the desired length, it returns a precomputed array. This optimization\r\n\t * is performed because this operation is done very often during homology\r\n\t * and cohomology calculations. Also, almost all calls to this function will\r\n\t * involve small values of the argument length, since most of the homological\r\n\t * features of interest are in low dimensions. Nevertheless, this function\r\n\t * will return the desired sequence even if the cache is not populated with\r\n\t * the desired array.\r\n\t * \r\n\t * @param length the length of the array to get\r\n\t * @return an array of with specified length containing the numbers (-1)^i\r\n\t */\r\n\tpublic static int[] getDefaultBoundaryCoefficients(int length) {\r\n\t\t\r\n\t\t// initialize cache if necessary\r\n\t\tif (defaultBoundaryCoefficients == null) {\r\n\t\t\tinitializeDefaultBoundaryCoefficients();\r\n\t\t}\r\n\t\t\r\n\t\t// return coefficients from cache if they exist\r\n\t\tif (length < defaultCoefficientCacheSize) {\r\n\t\t\treturn defaultBoundaryCoefficients[length];\r\n\t\t}\r\n\t\t\r\n\t\t// the desired length exceeds that of those stored\r\n\t\t// in the cache - in this case just construct it\r\n\t\t\r\n\t\tint[] boundaryCoefficients = new int[length];\r\n\r\n\t\tfor (int i = 0; i < length; i++) {\r\n\t\t\tboundaryCoefficients[i] = (i % 2 == 0 ? 1 : -1);\r\n\t\t}\r\n\t\t\r\n\t\treturn boundaryCoefficients;\r\n\t}\r\n\r\n\t/**\r\n\t * This function performs a comparison of two arrays of ints. It \r\n\t * returns a positive value if the first array is greater than the\r\n\t * second, a negative value if the first array is less than the \r\n\t * second, and zero if they are equal. The comparison is done as \r\n\t * follows. First the lengths are compared. If they are unequal, then\r\n\t * it returns the comparison of the lengths. If the array lengths\r\n\t * are equal, it performs a dictionary comparison starting from the\r\n\t * 0-th entry in the arrays.\r\n\t * \r\n\t * @param array1 the first array parameter\r\n\t * @param array2 the second array parameter\r\n\t * @return 1 if array1 > array2, 0 if array1 == array2, -1 if array1 < array2\r\n\t */\r\n\tpublic static int compareIntArrays (int[] array1, int[] array2) {\r\n\t\tint length1 = array1.length;\r\n\t\tint length2 = array2.length;\r\n\t\tif (length1 > length2) {\r\n\t\t\treturn 1;\r\n\t\t} else if (length1 < length2) {\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t\tfor (int i = 0; i < length1; i++) {\r\n\t\t\tif (array1[i] != array2[i])\r\n\t\t\t\treturn (array1[i] - array2[i]);\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a new array which contains the same entries as the\r\n\t * supplied array except that the element at the specified index has been\r\n\t * removed and the proceeding elements have been shifted down by one.\r\n\t * \r\n\t * @param array\r\n\t * @param index\r\n\t * @return the array with the element at the specified index removed\r\n\t */\r\n\tpublic static int[] removeIndex(final int[] array, int index) {\r\n\t\tint[] result = new int[array.length - 1];\r\n\t\tint newIndex = 0;\r\n\t\tint oldIndex = 0;\r\n\t\twhile (oldIndex < array.length) {\r\n\t\t\tif (oldIndex == index) {\r\n\t\t\t\toldIndex++;\r\n\t\t\t} else {\r\n\t\t\t\tresult[newIndex] = array[oldIndex];\r\n\t\t\t\tnewIndex++;\r\n\t\t\t\toldIndex++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function appends the argument newValue to the end of the\r\n\t * supplied array. It does not modify the passed in array.\r\n\t * \r\n\t * @param array the array to append to\r\n\t * @param newValue the value to append\r\n\t * @return the supplied array with newValue appended\r\n\t */\r\n\tpublic static int[] appendToArray(int[] array, int newValue) {\r\n\t\tint[] result = new int[array.length + 1];\r\n\t\tfor (int i = 0; i < array.length; i++) {\r\n\t\t\tresult[i] = array[i];\r\n\t\t}\r\n\t\tresult[array.length] = newValue;\r\n\t\treturn result;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the first k entries of the supplied array.\r\n\t * \r\n\t * @param array\r\n\t * @param k\r\n\t * @return the subarray array[0, ..., k]\r\n\t */\r\n\tpublic static int[] lowerEntries(int[] array, int k) {\r\n\t\tint[] result = new int[k + 1];\r\n\t\tfor (int i = 0; i <= k; i++) {\r\n\t\t\tresult[i] = array[i];\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the last entries of the supplied array\r\n\t * starting from the index k.\r\n\t * \r\n\t * @param array\r\n\t * @param k\r\n\t * @return the subarray array[k, ..., array.length - 1]\r\n\t */\r\n\tpublic static int[] upperEntries(int[] array, int k) {\r\n\t\tint n = array.length;\r\n\t\tint[] result = new int[n - k];\r\n\t\tfor (int i = k; i < n; i++) {\r\n\t\t\tresult[i - k] = array[i];\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the intersection between two sets of \r\n\t * integers.\r\n\t * \r\n\t * @param set1 the first set\r\n\t * @param set2 the second set\r\n\t * @return a TIntSet containing elements common to both input sets\r\n\t */\r\n\tpublic static TIntHashSet computeIntersection(TIntHashSet set1, TIntHashSet set2) {\r\n\t\tTIntHashSet smallerSet = null;\r\n\t\tTIntHashSet largerSet = null;\r\n\t\t\r\n\t\t/*\r\n\t\t * Let's identify the smaller and larger sets,\r\n\t\t * so that we only need to iterate through the smaller one.\r\n\t\t */\r\n\t\tif (set1.size() < set2.size()) {\r\n\t\t\tsmallerSet = set1;\r\n\t\t\tlargerSet = set2;\r\n\t\t} else {\r\n\t\t\tsmallerSet = set2;\r\n\t\t\tlargerSet = set1;\r\n\t\t}\r\n\t\t\r\n\t\tTIntHashSet intersection = new TIntHashSet();\r\n\t\t\r\n\t\tTIntIterator iterator = smallerSet.iterator();\r\n\t\twhile (iterator.hasNext()) {\r\n\t\t\tint element = iterator.next();\r\n\t\t\tif (largerSet.contains(element)) {\r\n\t\t\t\tintersection.add(element);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn intersection;\r\n\t}\r\n\r\n\tpublic static Simplex convertIndices(Simplex simplex, int[] conversionArray) {\r\n\t\treturn Simplex.makeSimplex(HomologyUtility.convertIndices(simplex.getVertices(), conversionArray));\r\n\t}\r\n\r\n\tpublic static int[] convertIndices(int[] vertices, int[] conversionArray) {\r\n\t\tint[] newVertices = new int[vertices.length];\r\n\t\t\r\n\t\tfor (int i = 0; i < vertices.length; i++) {\r\n\t\t\tnewVertices[i] = conversionArray[vertices[i]];\r\n\t\t}\r\n\t\t\r\n\t\treturn newVertices;\r\n\t}\r\n\r\n\tpublic static int[] deconvertIndices(int[] vertices, int[] conversionArray) {\r\n\t\tint[] newVertices = new int[vertices.length];\r\n\t\t\r\n\t\tfor (int i = 0; i < vertices.length; i++) {\r\n\t\t\tfor (int j = 0; j < conversionArray.length; j++) {\r\n\t\t\t\tif (conversionArray[j] == vertices[i]) {\r\n\t\t\t\t\tnewVertices[i] = j;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn newVertices;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/AbstractHomologyTracker.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag;\n\n\n\npublic interface AbstractHomologyTracker<K, I extends Comparable<I>, U, G> {\n\tpublic void add(U sigma, K index);\n\tpublic void remove(U sigma, K index);\n\t\n\tpublic AbstractPersistenceTracker<K, I, G> getState();\n\t\n\tpublic boolean isBoundary(G generator);\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/AbstractPersistenceTracker.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag;\n\nimport java.util.Map;\n\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\n\npublic interface AbstractPersistenceTracker<K, I extends Comparable<I>, G> {\n\tpublic AnnotatedBarcodeCollection<I, G> getInactiveGenerators();\n\tpublic Map<K, IntervalDescriptor<I, G>> getActiveGenerators();\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/BasisTrackingUtility.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.Comparator;\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Set;\n\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport gnu.trove.THashMap;\nimport gnu.trove.THashSet;\nimport gnu.trove.TObjectIntIterator;\n\n/**\n * This class contains various static functions for assisting with zigzag homology computations.\n * \n * @author Andrew Tausz\n *\n */\npublic class BasisTrackingUtility {\n\t\n\t/**\n\t * This function creates a new formal sum from the given set of coefficients and objects.\n\t * \n\t * @param <X>\n\t * @param coefficients the array of coefficients\n\t * @param objects the array of basis elements - they must be of type X\n\t * @return a formal sum containing the given coefficients and basis elements\n\t */\n\t@SuppressWarnings(\"unchecked\")\n\tpublic static <X extends PrimitiveBasisElement> IntSparseFormalSum<X> createNewSum(int[] coefficients, PrimitiveBasisElement[] objects) {\n\t\tIntSparseFormalSum<X> result = new IntSparseFormalSum<X>();\n\t\t\n\t\tfor (int i = 0; i < coefficients.length; i++) {\n\t\t\tresult.put(coefficients[i], (X) objects[i]);\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\t\n\t/**\n\t * This function computes the operation low_A(j) as described in the paper. Note that if\n\t * the chain is empty (for example the column contains only zeros), then this function\n\t * returns null.\n\t * \n\t * @param <X> the underlying type of the basis elements in the chain\n\t * @param chain the chain\n\t * @param comparator the comparator to use\n\t * @return the lowest element in the chain\n\t */\n\tpublic static <X> X low(IntSparseFormalSum<X> chain, Comparator<X> comparator) {\n\n\t\tX maxObject = null;\n\n\t\tif (chain == null) {\n\t\t\t//System.out.println(\"stop\");\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (TObjectIntIterator<X> iterator = chain.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\t\t\tif (maxObject == null || comparator.compare(iterator.key(), maxObject) > 0) {\n\t\t\t\tmaxObject = iterator.key();\n\t\t\t}\n\t\t}\n\n\t\treturn maxObject;\n\t}\n\n\t/**\n\t * This function performs matrix multiplication. The matrix is represented by a sparse set of sparse columns. In other\n\t * words, this function computes the linear combination of the columns in the specified map with coefficients given by the\n\t * vector v. In the matrix m, the keys represent the column labels, and the values are the columns at that particular index.\n\t * \n\t * @param <X>\n\t * @param <Y>\n\t * @param m the matrix as a list of columns\n\t * @param v the vector\n\t * @param field the field over which to perform the computations\n\t * @return the matrix vector product\n\t */\n\tpublic static <X, Y> IntSparseFormalSum<Y> multiply(Map<X, IntSparseFormalSum<Y>> m, IntSparseFormalSum<X> v, IntAbstractField field) {\n\t\tIntSparseFormalSum<Y> result = new IntSparseFormalSum<Y>();\n\t\tIntAlgebraicFreeModule<Y> YChainModule = new IntAlgebraicFreeModule<Y>(field);\n\n\t\tfor (TObjectIntIterator<X> iterator = v.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\n\t\t\tint coefficient = iterator.value();\n\t\t\tX object = iterator.key();\n\t\t\tIntSparseFormalSum<Y> column = m.get(object);\n\t\t\tif (column != null) {\n\t\t\t\tYChainModule.accumulate(result, column, coefficient);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * This function performs matrix-matrix multiplication. The matrices are represented by a sparse set of sparse columns.\n\t * \n\t * @param <X>\n\t * @param <Y>\n\t * @param <Z>\n\t * @param a the first matrix\n\t * @param b the second matrix\n\t * @param field the field over which to perform the computations\n\t * @return the matrix-matrix product a*b\n\t */\n\tpublic static <X, Y, Z> Map<Z, IntSparseFormalSum<Y>> multiply(Map<X, IntSparseFormalSum<Y>> a, Map<Z, IntSparseFormalSum<X>> b, IntAbstractField field) {\n\t\tMap<Z, IntSparseFormalSum<Y>> result = new THashMap<Z, IntSparseFormalSum<Y>>();\n\n\t\tfor (Z col: b.keySet()) {\n\t\t\tresult.put(col, multiply(a, b.get(col), field));\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * This function finds the index of the first column such that the column's low value is the value specified. If no\n\t * such column exists, it returns -1.\n\t * \n\t * @param <Y>\n\t * @param m the set of columns to search\n\t * @param low the low value to search for\n\t * @param comparator the comparator which performs the comparison within type Y\n\t * @return the index of the first column with the given low, and -1 if no such column exists\n\t */\n\tpublic static <Y> int findColumnWithGivenLow(List<IntSparseFormalSum<Y>> m, Y low, Comparator<Y> comparator) {\n\n\t\tfor (int i = 0; i < m.size(); i++) {\n\t\t\tIntSparseFormalSum<Y> column = m.get(i);\n\t\t\tY columnLow = low(column, comparator);\n\t\t\tif (columnLow != null && low.equals(columnLow)) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\t/**\n\t * This function finds the index of the first column such that the column's low value is the value specified. If no\n\t * such column exists, it returns null.\n\t * \n\t * @param <X>\n\t * @param <Y>\n\t * @param m the set of columns to search\n\t * @param low the low value to search for\n\t * @param comparator the comparator which performs the comparison within type Y\n\t * @return the index of the first column with the given low, and null if no such column exists\n\t */\n\tpublic static <X, Y> X findColumnWithGivenLow(Map<X, IntSparseFormalSum<Y>> m, Y low, Comparator<Y> comparator) {\n\n\t\tfor (X columnIndex: m.keySet()) {\n\t\t\tIntSparseFormalSum<Y> column = m.get(columnIndex);\n\t\t\tY columnLow = low(column, comparator);\n\t\t\tif (columnLow != null && low.equals(columnLow)) {\n\t\t\t\treturn columnIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * This function computes the boundary of a given chain, by linear extension.\n\t * \n\t * @param <X>\n\t * @param chain the chain to compute the boundary of\n\t * @param chainModule the module that performs the computations\n\t * @return the boundary of the given chain\n\t */\n\tpublic static <X extends PrimitiveBasisElement> IntSparseFormalSum<X> computeBoundary(IntSparseFormalSum<X> chain, IntAlgebraicFreeModule<X> chainModule) {\n\t\tIntSparseFormalSum<X> result = new IntSparseFormalSum<X>();\n\n\t\tif (chain == null) {\n\t\t\tSystem.out.println(\"null chain\");\n\t\t}\n\t\t\n\t\tfor (TObjectIntIterator<X> iterator = chain.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\n\t\t\tIntSparseFormalSum<X> boundary = createNewSum(iterator.key().getBoundaryCoefficients(), iterator.key().getBoundaryArray());\n\t\t\tchainModule.accumulate(result, boundary, iterator.value());\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * This function returns the lowest index such that the given element is found in the chain at that index. If no such\n\t * index is found, it returns null.\n\t * \n\t * @param <X>\n\t * @param <Y>\n\t * @param m the set of chains\n\t * @param element the element to search for\n\t * @param comparator provides comparison for the indices of m\n\t * @return the lowest index of the chains containing the given element\n\t */\n\tpublic static <X, Y> X findFirstIndexContainingElement(Map<X, IntSparseFormalSum<Y>> m, Y element, Comparator<X> comparator) {\n\t\tX index = null;\n\t\tSet<X> candidates = new THashSet<X>();\n\n\t\tfor (X key: m.keySet()) {\n\t\t\tif (m.get(key).containsObject(element)) {\n\t\t\t\tcandidates.add(key);\n\t\t\t}\n\t\t}\n\n\t\tfor (X candidate: candidates) {\n\t\t\tif (index == null || comparator.compare(candidate, index) < 0) {\n\t\t\t\tindex = candidate;\n\t\t\t}\n\t\t}\n\n\t\treturn index;\n\t}\n\t\n\t/**\n\t * This function returns the greatest index such that the given element is found in the chain at that index. If no such\n\t * index is found, it returns null.\n\t * \n\t * @param <X>\n\t * @param <Y>\n\t * @param m the set of chains\n\t * @param element the element to search for\n\t * @param comparator provides comparison for the indices of m\n\t * @return the greatest index of the chains containing the given element\n\t */\n\tpublic static <X, Y> X findLastIndexContainingElement(Map<X, IntSparseFormalSum<Y>> m, Y element, Comparator<X> comparator) {\n\t\tX index = null;\n\t\tSet<X> candidates = new THashSet<X>();\n\n\t\tfor (X key: m.keySet()) {\n\t\t\tif (m.get(key).containsObject(element)) {\n\t\t\t\tcandidates.add(key);\n\t\t\t}\n\t\t}\n\n\t\tfor (X candidate: candidates) {\n\t\t\tif (index == null || comparator.compare(candidate, index) > 0) {\n\t\t\t\tindex = candidate;\n\t\t\t}\n\t\t}\n\n\t\treturn index;\n\t}\n\n\t/**\n\t * This function returns the set of indices such that the chains at the indices contain the given element. The indices\n\t * are returned in sorted order. In the event that no indices are found, it returns the empty list.\n\t * \n\t * @param <X>\n\t * @param <Y>\n\t * @param m the set of chains\n\t * @param element the element to search for\n\t * @param comparator provides comparison for the indices of m\n\t * @return the ascending set of indices containing the element\n\t */\n\tpublic static <X, Y> List<X> getAscendingIndicesContainingElement(Map<X, IntSparseFormalSum<Y>> m, Y element, Comparator<X> comparator) {\n\t\tList<X> list = new ArrayList<X>();\n\n\t\tfor (X key: m.keySet()) {\n\t\t\tif (m.get(key).containsObject(element)) {\n\t\t\t\tlist.add(key);\n\t\t\t}\n\t\t}\n\t\t\n\t\tCollections.sort(list, comparator);\n\n\t\treturn list;\n\t}\n\t\n\t\n\tpublic static <X, Y> List<X> getAscendingIndicesWithGivenLow(Map<X, IntSparseFormalSum<Y>> m, Y element, Comparator<X> comparator, Comparator<Y> comparatorY) {\n\t\tList<X> list = new ArrayList<X>();\n\n\t\tfor (X key: m.keySet()) {\n\t\t\tY low = low(m.get(key), comparatorY);\n\t\t\tif (low != null && low.equals(element)) {\n\t\t\t\tlist.add(key);\n\t\t\t}\n\t\t}\n\t\t\n\t\tCollections.sort(list, comparator);\n\n\t\treturn list;\n\t}\n\t\n\tpublic static <X, Y> List<X> getAscendingIndices(Map<X, Y> m, Comparator<X> comparator) {\n\t\tList<X> list = new ArrayList<X>();\n\n\t\tlist.addAll(m.keySet());\n\t\tCollections.sort(list, comparator);\n\n\t\treturn list;\n\t}\n\n\tpublic static <X> int getPrependIndex(Map<Integer, X> m) {\n\t\tif(m.keySet().isEmpty()) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tint minimumIndex = Integer.MAX_VALUE;\n\n\t\tfor (int index: m.keySet()) {\n\t\t\tif (index < minimumIndex) {\n\t\t\t\tminimumIndex = index;\n\t\t\t}\n\t\t}\n\n\t\treturn minimumIndex - 1;\n\t}\n\n\tpublic static <X> int getAppendIndex(Map<Integer, X> m) {\n\t\tif(m.keySet().isEmpty()) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tint maximumIndex = Integer.MIN_VALUE;\n\n\t\tfor (int index: m.keySet()) {\n\t\t\tif (index > maximumIndex) {\n\t\t\t\tmaximumIndex = index;\n\t\t\t}\n\t\t}\n\n\t\treturn maximumIndex + 1;\n\t}\n\n\tpublic static <X> int prependColumn(Map<Integer, X> m, X col) {\n\t\tint index = getPrependIndex(m);\n\t\tm.put(index, col);\n\t\treturn index;\n\t}\n\n\tpublic static <X> int appendColumn(Map<Integer, X> m, X col) {\n\t\tint index = getAppendIndex(m);\n\t\tm.put(index, col);\n\t\treturn index;\n\t}\n\n\tpublic static <X> void writeRow(Map<X, IntSparseFormalSum<Integer>> m, IntSparseFormalSum<X> row, int rowIndex) {\n\t\tfor (TObjectIntIterator<X> iterator = row.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\t\t\tX key = iterator.key();\n\n\t\t\tif (!m.containsKey(key)) {\n\t\t\t\tm.put(key, new IntSparseFormalSum<Integer>());\n\t\t\t}\n\n\t\t\tm.get(key).put(iterator.value(), rowIndex);\n\t\t}\n\t}\n\t\n\tpublic static <X, Y> IntSparseFormalSum<X> getRow(Map<X, IntSparseFormalSum<Y>> m, Y row) {\n\t\tIntSparseFormalSum<X> result = new IntSparseFormalSum<X>();\n\t\t\n\t\tfor (X colIndex: m.keySet()) {\n\t\t\tIntSparseFormalSum<Y> col = m.get(colIndex);\n\t\t\tif (col.containsObject(row)) {\n\t\t\t\tresult.put(col.getCoefficient(row), colIndex);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n\tpublic static <X, Y> ObjectObjectPair<IntSparseFormalSum<X>, IntSparseFormalSum<Y>> reduce(Map<X, IntSparseFormalSum<Y>> M, IntSparseFormalSum<Y> column, Comparator<Y> comparator, IntAlgebraicFreeModule<Y> chainModule) {\n\t\tMap<Y, X> lowMap = new THashMap<Y, X>();\n\t\n\t\tfor (X key: M.keySet()) {\n\t\t\tIntSparseFormalSum<Y> chain = M.get(key);\n\t\t\tY low = low(chain, comparator);\n\t\t\tif (low != null) {\n\t\t\t\tlowMap.put(low, key);\n\t\t\t}\n\t\t}\n\t\n\t\tIntSparseFormalSum<Y> reduction = new IntSparseFormalSum<Y>();\n\t\tIntSparseFormalSum<X> coefficients = new IntSparseFormalSum<X>();\n\t\n\t\tIntAbstractField field = (IntAbstractField) chainModule.getRing();\n\t\n\t\tfor (TObjectIntIterator<Y> iterator = column.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\t\t\treduction.put(iterator.value(), iterator.key());\n\t\t}\n\t\n\t\twhile (true) {\n\t\t\tY low = low(reduction, comparator);\n\t\n\t\t\tif (low == null) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\n\t\t\tX columnWithLow = lowMap.get(low);\n\t\t\tif (columnWithLow == null) {\n\t\t\t\tbreak;\n\t\n\t\t\t\t//List<Integer> columns = BasisTrackingUtility.getAscendingIndicesContainingElement(Z, lowElement, this.integerComparator);\n\t\t\t\t//int randomIndex = RandomUtility.nextUniformInt(0, columns.size() - 1);\n\t\t\t\t//columnWithLow = columns.get(randomIndex);\n\t\t\t\t//columnWithLow = BasisTrackingUtility.findLastIndexContainingElement(Z, lowElement, this.integerComparator);\n\t\t\t\t//IntSparseFormalSum<U> boundaryOfColumn = BasisTrackingUtility.computeBoundary(Z.get(columnWithLow), chainModule);\n\t\t\t\t//break;\n\t\t\t}\n\t\n\t\t\tint a = M.get(columnWithLow).getCoefficient(low);\n\t\t\tint b = reduction.getCoefficient(low);\n\t\t\tint multiplier = field.negate(field.divide(b, a));\n\t\t\tchainModule.accumulate(reduction, M.get(columnWithLow), multiplier);\n\t\n\t\t\tcoefficients.put(field.negate(multiplier), columnWithLow);\n\t\t}\n\t\n\t\treturn new ObjectObjectPair<IntSparseFormalSum<X>, IntSparseFormalSum<Y>>(coefficients, reduction);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/HomologyBasisTracker.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag;\n\nimport java.util.Comparator;\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Map.Entry;\nimport java.util.Set;\n\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport gnu.trove.THashMap;\nimport gnu.trove.THashSet;\nimport gnu.trove.TIntIntHashMap;\nimport gnu.trove.TObjectIntHashMap;\n\n/**\n * This class maintains the right-filtration for performing zig-zag homology.\n * It implements the algorithm described in the paper \"Zigzag Persistent Homology\n * and Real-valued Functions\" by Gunnar Carlsson, Vin de Silva, and Dmitriy Morozov.\n * \n * TODO List:\n * - cache low values for the columns to prevent re-computing\n * \n * @author Andrew Tausz\n *\n * @param <U>\n */\npublic class HomologyBasisTracker<U extends PrimitiveBasisElement> implements AbstractHomologyTracker<Integer, Integer, U, IntSparseFormalSum<U>>{\n\t/**\n\t * This is the field over which we perform the arithmetic computations.\n\t */\n\tprotected final IntAbstractField field;\n\n\t/**\n\t * These objects performs the chain computations.\n\t */\n\tprotected final IntAlgebraicFreeModule<U> chainModule;\n\tprotected final IntAlgebraicFreeModule<Integer> integerChainModule;\n\n\tprotected final Comparator<U> basisComparator;\n\tprotected final Comparator<Integer> integerComparator = new Comparator<Integer>() {\n\t\tpublic int compare(Integer o1, Integer o2) {\n\t\t\treturn o1.compareTo(o2);\n\t\t}\n\t};\n\n\tprotected final Comparator<U> indexedComparator = new Comparator<U>() {\n\t\tpublic int compare(U arg0, U arg1) {\n\t\t\tint i0 = objectIndexMap.get(arg0);\n\t\t\tint i1 = objectIndexMap.get(arg1);\n\t\t\tif (i0 > i1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif (i0 < i1) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\treturn basisComparator.compare(arg0, arg1);\n\t\t}\n\t};\n\n\tprotected final Map<Integer, IntSparseFormalSum<U>> Z = new THashMap<Integer, IntSparseFormalSum<U>>();\n\tprotected final Map<Integer, IntSparseFormalSum<Integer>> B = new THashMap<Integer, IntSparseFormalSum<Integer>>();\n\tprotected final Map<Integer, IntSparseFormalSum<U>> C = new THashMap<Integer, IntSparseFormalSum<U>>();\n\n\tprotected final TIntIntHashMap internalExternalIndexMap = new TIntIntHashMap();\n\tprotected final TObjectIntHashMap<U> objectIndexMap = new TObjectIntHashMap<U>();\n\tprotected final Set<U> basisElements = new THashSet<U>();\n\tprotected int internalIndex = 0;\n\n\tprotected final IntervalTracker<Integer, Integer, IntSparseFormalSum<U>> intervalTracker = new IntervalTracker<Integer, Integer, IntSparseFormalSum<U>>();\n\n\tpublic static boolean checkConsistency = false;\n\n\t/**\n\t * This constructor initializes the object with a field and a comparator on the basis type.\n\t * \n\t * @param field a field structure on the type int\n\t * @param basisComparator a comparator on the basis type U\n\t */\n\tpublic HomologyBasisTracker(IntAbstractField field, Comparator<U> basisComparator) {\n\t\tthis.field = field;\n\t\tthis.chainModule = new IntAlgebraicFreeModule<U>(this.field);\n\t\tthis.integerChainModule = new IntAlgebraicFreeModule<Integer>(this.field);\n\t\tthis.basisComparator = basisComparator;\n\t}\n\n\tpublic static void log(String... args) {\n\t\tif (!checkConsistency) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (String arg: args) {\n\t\t\tSystem.out.println(arg);\n\t\t}\n\t}\n\n\tpublic IntervalTracker<Integer, Integer, IntSparseFormalSum<U>> getIntervalTracker() {\n\t\treturn this.intervalTracker;\n\t}\n\n\tpublic AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getFiniteAnnotatedBarcodes() {\n\t\treturn this.intervalTracker.getFiniteAnnotatedBarcodes();\n\t}\n\n\tpublic AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getInfiniteAnnotatedBarcodes() {\n\t\treturn this.intervalTracker.getInfiniteAnnotatedBarcodes();\n\t}\n\n\tpublic AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getAnnotatedBarcodes() {\n\t\treturn this.intervalTracker.getAnnotatedBarcodes();\n\t}\n\t\n\tpublic BarcodeCollection<Integer> getFiniteBarcodes() {\n\t\treturn this.intervalTracker.getFiniteBarcodes();\n\t}\n\n\tpublic BarcodeCollection<Integer> getInfiniteBarcodes() {\n\t\treturn this.intervalTracker.getInfiniteBarcodes();\n\t}\n\n\tpublic BarcodeCollection<Integer> getBarcodes() {\n\t\treturn this.intervalTracker.getBarcodes();\n\t}\n\n\tpublic void add(U sigma) {\n\t\tthis.add(sigma, this.internalIndex);\n\t}\n\n\t@SuppressWarnings(\"unchecked\")\n\tpublic void add(U sigma, int externalIndex) {\n\t\t\n\t\tif (checkConsistency) {\n\t\t\tif (this.basisElements.contains(sigma)) {\n\t\t\t\tlog(\"Invalid add!\");\n\t\t\t}\n\n\t\t\tU[] faces = (U[]) sigma.getBoundaryArray();\n\t\t\tfor (U face: faces) {\n\t\t\t\tif (!this.basisElements.contains(face)) {\n\t\t\t\t\tlog(\"Invalid add!\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.objectIndexMap.put(sigma, internalIndex);\n\t\tthis.internalExternalIndexMap.put(internalIndex, externalIndex);\n\t\tthis.basisElements.add(sigma);\n\n\t\tIntSparseFormalSum<U> boundary = BasisTrackingUtility.createNewSum(sigma.getBoundaryCoefficients(), sigma.getBoundaryArray());\n\n\t\t// compute representation of boundary of sigma in terms of cycles Z_i\n\n\t\t// reduce boundary among the cycles\n\t\tObjectObjectPair<IntSparseFormalSum<Integer>, IntSparseFormalSum<U>> Zpair = BasisTrackingUtility.reduce(Z, boundary, this.indexedComparator, chainModule);\n\t\tIntSparseFormalSum<Integer> v = Zpair.getFirst();\n\t\tIntSparseFormalSum<U> reduction = Zpair.getSecond();\n\n\t\t// verification\n\t\tif (!reduction.isEmpty()) {\n\t\t\tlog(\"Invalid Reduction!!!\");\n\t\t}\n\n\t\tObjectObjectPair<IntSparseFormalSum<Integer>, IntSparseFormalSum<Integer>> Bpair = BasisTrackingUtility.reduce(B, v, this.integerComparator, integerChainModule);\n\t\tIntSparseFormalSum<Integer> u = Bpair.getFirst();\n\t\tIntSparseFormalSum<Integer> v_prime = Bpair.getSecond();\n\n\t\tif (v_prime.isEmpty()) {\n\t\t\t// Birth\n\t\t\t// d sigma is already a boundary\n\t\t\tIntSparseFormalSum<U> newCycle = chainModule.subtract(BasisTrackingUtility.multiply(C, u, this.field), chainModule.createNewSum(sigma));\n\n\t\t\tint insertionPoint = BasisTrackingUtility.appendColumn(Z, newCycle);\n\n\t\t\tthis.intervalTracker.startInterval(insertionPoint, externalIndex, sigma.getDimension(), newCycle);\n\n\t\t\tlog(internalIndex + \": Birth (\" + externalIndex + \", _) @ \" + sigma.getDimension() +  \" - addition of \" + sigma);\n\t\t} else {\n\t\t\t// Death\n\n\t\t\tIntSparseFormalSum<U> newChain = chainModule.subtract(BasisTrackingUtility.multiply(C, u, this.field), chainModule.createNewSum(sigma));\n\n\t\t\tBasisTrackingUtility.appendColumn(C, newChain);\n\t\t\tBasisTrackingUtility.appendColumn(B, integerChainModule.negate(v_prime));\n\t\t\t//BasisTrackingUtility.appendColumn(B, v_prime);\n\n\t\t\t// update birth vector\n\t\t\tInteger j = BasisTrackingUtility.low(v_prime, this.integerComparator);\n\n\t\t\tthis.intervalTracker.endInterval(j, externalIndex);\n\n\t\t\tlog(internalIndex + \": Death (\" + this.internalExternalIndexMap.get(j) + \", \" + externalIndex + \") @ \" + (sigma.getDimension() - 1) +  \" - addition of \" + sigma);\n\t\t}\n\n\t\tinternalIndex++;\n\n\t\tif (checkConsistency) {\n\t\t\tthis.checkInvariant();\n\t\t}\n\t}\n\n\tpublic void remove(U sigma) {\n\t\tthis.remove(sigma, this.internalIndex);\n\t}\n\n\tpublic void remove(U sigma, int externalIndex) {\n\t\tif (!this.basisElements.contains(sigma)) {\n\t\t\tlog(\"Invalid removal!\");\n\t\t}\n\n\t\tthis.basisElements.remove(sigma);\n\t\tthis.objectIndexMap.remove(sigma);\n\n\t\tthis.internalExternalIndexMap.put(internalIndex, externalIndex);\n\n\t\t// try to set j to be the first cycle that contains sigma\n\t\tList<Integer> indices = BasisTrackingUtility.getAscendingIndicesContainingElement(Z, sigma, this.integerComparator);\n\t\tInteger j = null;\n\n\t\tif (indices.size() > 0) {\n\t\t\tj = indices.get(0);\n\t\t}\n\n\t\tif (j == null) {\n\t\t\t// Birth - there is no cycle in matrix Z that contains sigma\n\n\t\t\t// Let j be the index of the first column in C that contains sigma\n\t\t\tj = BasisTrackingUtility.findFirstIndexContainingElement(C, sigma, this.integerComparator);\n\n\t\t\t// Let l be the index of the row of the lowest nonzero element in B[j]\n\t\t\tInteger l = BasisTrackingUtility.low(B.get(j), this.integerComparator);\n\n\t\t\t// 1. Prepend D C[j] to Z_i to get Z_i'. Prepend i+1 to the birth vector b_i to get\n\t\t\t// b_{i + 1}\n\t\t\tIntSparseFormalSum<U> DC_j = BasisTrackingUtility.computeBoundary(C.get(j), chainModule);\n\t\t\tint prependLocation = BasisTrackingUtility.prependColumn(Z, DC_j);\n\n\t\t\tthis.intervalTracker.startInterval(prependLocation, externalIndex, sigma.getDimension() - 1, DC_j);\n\n\t\t\tlog(internalIndex + \": Birth (\" + externalIndex + \", _) @ \" + (sigma.getDimension() - 1) +  \" - removal of \" + sigma);\n\n\t\t\t// 2. Let c = C[j][sigma]. Let r_sigma be the row of sigma in matrix C. We \n\t\t\t// prepend the row -r_sigma/c to the matrix B_i to get B_i'.\n\n\t\t\tIntSparseFormalSum<U> C_j = C.get(j);\n\t\t\tint c = C_j.getCoefficient(sigma);\n\t\t\tIntSparseFormalSum<Integer> r_sigma = BasisTrackingUtility.getRow(C, sigma);\n\t\t\tIntSparseFormalSum<Integer> n_r_sigma_c = integerChainModule.multiply(field.negate(field.invert(c)), r_sigma);\n\n\t\t\tBasisTrackingUtility.writeRow(B, n_r_sigma_c, prependLocation);\n\n\t\t\t// 3. Subtract (r_sigma[k]/c) * C[j] from every column C[k] to get C'.\n\t\t\tfor (Integer k: C.keySet()) {\n\t\t\t\t// TODO: Do we need this guard?\n\t\t\t\tif (k.equals(j)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tint coefficient = n_r_sigma_c.getCoefficient(k);\n\t\t\t\tchainModule.accumulate(C.get(k), C_j, coefficient);\n\t\t\t}\n\n\t\t\t// 4. Subtract (B'[k][l]/B'[j][l]) * B'[j] from every other column B'[k].\n\t\t\tIntSparseFormalSum<Integer> B_j = B.get(j);\n\t\t\tfor (Integer k: B.keySet()) {\n\t\t\t\tif (k.equals(j)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tint coefficient = field.negate(field.divide(B.get(k).getCoefficient(l), B_j.getCoefficient(l)));\n\t\t\t\tintegerChainModule.accumulate(B.get(k), B_j, coefficient);\n\t\t\t}\n\n\t\t\t// 5. Drop row l and column j from B' to get B_{i+1}.\n\t\t\tB.remove(j);\n\n\t\t\tfor (Integer k: B.keySet()) {\n\t\t\t\tB.get(k).remove(l);\n\t\t\t}\n\n\t\t\t// 5. Drop column l from Z'\n\t\t\tZ.remove(l);\n\n\t\t\t// 5. Drop column j from C to get C_{i+1}\n\t\t\tC.remove(j);\n\n\t\t\t// 6. Reduce Z_{i+1} initially set to Z_i\n\t\t\twhile (true) {\n\t\t\t\tU s = BasisTrackingUtility.low(Z.get(j), this.indexedComparator);\n\n\t\t\t\tif (s == null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t//Integer k = this.findColumnWithGivenLow(Z, s, this.filteredComparator);\n\t\t\t\tInteger k = null;\n\n\t\t\t\tList<Integer> k_candidates = BasisTrackingUtility.getAscendingIndicesWithGivenLow(Z, s, this.integerComparator, this.indexedComparator);\n\n\t\t\t\tfor (Integer k_candidate: k_candidates) {\n\t\t\t\t\tif (!k_candidate.equals(j)) {\n\t\t\t\t\t\tk = k_candidate;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (k == null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tint s_jk = field.divide(Z.get(j).getCoefficient(s), Z.get(k).getCoefficient(s));\n\t\t\t\tint negative_s_jk = field.negate(s_jk);\n\n\t\t\t\tif (k.equals(j)) {\n\t\t\t\t\tlog(\"Concurrent Modification!\");\n\t\t\t\t}\n\n\t\t\t\tchainModule.accumulate(Z.get(j), Z.get(k), negative_s_jk);\n\n\t\t\t\t// in B, add row j multiplied by s_jk to row k\n\t\t\t\tfor (Integer columnIndex: B.keySet()) {\n\t\t\t\t\tintegerChainModule.accumulate(B.get(columnIndex), k, field.multiply(B.get(columnIndex).getCoefficient(j), s_jk));\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\twhile (true) {\n\t\t\t\tU s = BasisTrackingUtility.low(Z.get(prependLocation), this.indexedComparator);\n\n\t\t\t\tif (s == null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t//Integer k = this.findColumnWithGivenLow(Z, s, this.filteredComparator);\n\t\t\t\tInteger k = null;\n\n\t\t\t\tList<Integer> k_candidates = BasisTrackingUtility.getAscendingIndicesWithGivenLow(Z, s, this.integerComparator, this.indexedComparator);\n\n\t\t\t\tfor (Integer k_candidate: k_candidates) {\n\t\t\t\t\tif (!k_candidate.equals(prependLocation)) {\n\t\t\t\t\t\tk = k_candidate;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (k == null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tint s_jk = field.divide(Z.get(prependLocation).getCoefficient(s), Z.get(k).getCoefficient(s));\n\t\t\t\tint negative_s_jk = field.negate(s_jk);\n\t\t\t\tchainModule.accumulate(Z.get(prependLocation), Z.get(k), negative_s_jk);\n\n\t\t\t\t// in B, add row j multiplied by s_jk to row k\n\t\t\t\tfor (Integer columnIndex: B.keySet()) {\n\t\t\t\t\tintegerChainModule.accumulate(B.get(columnIndex), k, field.multiply(B.get(columnIndex).getCoefficient(prependLocation), s_jk));\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif (internalIndex == 1051) {\n\t\t\t\tlog(\"stop\");\n\t\t\t}\n\n\t\t\t// Death\n\t\t\t// Z_j is the first cycle that contains simplex sigma\n\n\t\t\t// update birth vector\t\n\t\t\tthis.intervalTracker.endInterval(j, externalIndex);\n\n\t\t\tlog(internalIndex + \": Death (\" + this.internalExternalIndexMap.get(j) + \", \" + externalIndex + \") @ \" + (sigma.getDimension()) +  \" - removal of \" + sigma);\n\n\t\t\t//Map<Integer, IntSparseFormalSum<U>> Z_i1 = new THashMap<Integer, IntSparseFormalSum<U>>();\n\n\t\t\t// TODO: ************** CHECK\n\t\t\t// 1. Change basis to remove sigma from matrix Z\n\t\t\t// In other words, we make sure that column j is the only one containing sigma\n\t\t\tfor (int k_index = 0; k_index < indices.size(); k_index++) {\n\t\t\t\tint k = indices.get(k_index);\n\t\t\t\tif (k != j && Z.get(k).containsObject(sigma)) {\n\n\t\t\t\t\tU low_Zi_k = BasisTrackingUtility.low(Z.get(k), this.indexedComparator);\n\t\t\t\t\tint sigma_jk = field.divide(Z.get(k).getCoefficient(sigma), Z.get(j).getCoefficient(sigma));\n\t\t\t\t\tint negative_sigma_jk = field.negate(sigma_jk);\n\n\t\t\t\t\t//Z_i1.put(k, chainModule.add(Z.get(k), chainModule.multiply(negative_sigma_jk, Z.get(j))));\n\t\t\t\t\tchainModule.accumulate(Z.get(k), Z.get(j), negative_sigma_jk);\n\n\t\t\t\t\t// in B, add row k multiplied by sigma_jk to row j\n\t\t\t\t\tfor (Integer BIndex: B.keySet()) {\n\t\t\t\t\t\tIntSparseFormalSum<Integer> column = B.get(BIndex);\n\t\t\t\t\t\tintegerChainModule.accumulate(column, j, field.multiply(column.getCoefficient(k), sigma_jk));\n\t\t\t\t\t}\n\n\t\t\t\t\t//U low_Zi1_k = BasisTrackingUtility.low(Z_i1.get(k), this.comparator);\n\t\t\t\t\tU low_Zi1_k = BasisTrackingUtility.low(Z.get(k), this.indexedComparator);\n\t\t\t\t\tif (low_Zi1_k != null && low_Zi1_k != null && this.indexedComparator.compare(low_Zi1_k, low_Zi_k) < 0) {\n\t\t\t\t\t\t// TODO: Do we need this????????\n\t\t\t\t\t\t//j = k;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 2. Subtract cycle (C[k][sigma]/Z[j][sigma]) * Z[j] from every chain C[k]\n\t\t\tfor (Integer CIndex: C.keySet()) {\n\t\t\t\tIntSparseFormalSum<U> Ck = C.get(CIndex);\n\t\t\t\tint coefficient = field.negate(field.divide(Ck.getCoefficient(sigma), Z.get(j).getCoefficient(sigma)));\n\t\t\t\tchainModule.accumulate(C.get(CIndex), Z.get(j), coefficient);\n\t\t\t}\n\n\t\t\t/*\n\t\t\tfor (Integer k: Z_i1.keySet()) {\n\t\t\t\tif (Z.containsKey(k)) {\n\t\t\t\t\tZ.remove(k);\n\t\t\t\t}\n\t\t\t\tZ.put(k, Z_i1.get(k));\n\t\t\t}\n\n\t\t\tZ_i1 = null;\n\t\t\t */\n\n\t\t\t// 3. Drop Z_{i+1}[j], the corresponding entry in vectors b_i and idx_i, row j \n\t\t\t// from B_i, row sigma from C_i and Z (as well as row and column of sigma from D_i)\n\t\t\tZ.remove(j);\n\n\t\t\tif (!BasisTrackingUtility.getAscendingIndicesContainingElement(Z, sigma, this.integerComparator).isEmpty()) {\n\t\t\t\t@SuppressWarnings(\"unused\")\n\t\t\t\tList<Integer> list = BasisTrackingUtility.getAscendingIndicesContainingElement(Z, sigma, this.integerComparator);\n\t\t\t\tlog(\"Invalid removal!\");\n\t\t\t}\n\n\t\t\t// remove row j from B_i\n\t\t\tfor (Integer BIndex: B.keySet()) {\n\t\t\t\tif (B.get(BIndex).containsObject(j)) {\n\t\t\t\t\tlog(\"B is not in correct form!\");\n\t\t\t\t}\n\t\t\t\tB.get(BIndex).remove(j);\n\t\t\t}\n\n\t\t\t// remove row sigma from C_i\n\t\t\tfor (Integer CIndex: C.keySet()) {\n\t\t\t\tif (C.get(CIndex).containsObject(sigma)) {\n\t\t\t\t\tlog(\"C is not in correct form!\");\n\t\t\t\t}\n\t\t\t\tC.get(CIndex).remove(sigma);\n\t\t\t}\n\n\t\t\t// remove row sigma from Z_i\n\t\t\tfor (Integer ZIndex: Z.keySet()) {\n\t\t\t\tif (Z.get(ZIndex).containsObject(sigma)) {\n\t\t\t\t\tlog(\"Z is not in correct form!\");\n\t\t\t\t}\n\t\t\t\tZ.get(ZIndex).remove(sigma);\n\t\t\t}\n\t\t}\n\n\t\tinternalIndex++;\n\t\t\n\t\tif (checkConsistency) {\n\t\t\tthis.checkInvariant();\n\t\t}\n\t}\n\n\tpublic void checkInvariant() {\n\t\t// Check that DZ = 0\n\t\tfor (Integer ZIndex: Z.keySet()) {\n\t\t\tIntSparseFormalSum<U> Zk = Z.get(ZIndex);\n\t\t\tIntSparseFormalSum<U> DCk = BasisTrackingUtility.computeBoundary(Zk, chainModule);\n\t\t\tif (!DCk.isEmpty()) {\n\t\t\t\tlog(\"Invariant Violated!\");\n\t\t\t}\n\t\t}\n\n\t\t// check that DC = ZB\n\t\tfor (Integer CIndex: C.keySet()) {\n\t\t\tIntSparseFormalSum<U> Ck = C.get(CIndex);\n\t\t\tIntSparseFormalSum<U> DCk = BasisTrackingUtility.computeBoundary(Ck, chainModule);\n\n\t\t\tIntSparseFormalSum<U> ZBk = BasisTrackingUtility.multiply(this.Z, this.B.get(CIndex), this.field);\n\n\t\t\tif (!DCk.equals(ZBk)) {\n\t\t\t\tlog(\"Invariant Violated!\");\n\t\t\t}\n\t\t}\n\n\t\tcheckReduced(Z, this.indexedComparator);\n\t\tcheckReduced(B, this.integerComparator);\n\t}\n\n\tprotected <X, Y> void checkReduced(Map<X, IntSparseFormalSum<Y>> map, Comparator<Y> comparator) {\n\t\tMap<Y, X> lowMap = new THashMap<Y, X>();\n\t\tfor (X index: map.keySet()) {\n\t\t\tY lowElement = BasisTrackingUtility.low(map.get(index), comparator);\n\t\t\tif (lowMap.containsKey(lowElement)) {\n\t\t\t\tlog(\"Matrix is not reduced!\");\n\t\t\t}\n\t\t\tlowMap.put(lowElement, index);\n\t\t}\n\t}\n\n\tprotected boolean isCycle(IntSparseFormalSum<U> chain) {\n\t\tObjectObjectPair<IntSparseFormalSum<Integer>, IntSparseFormalSum<U>> Zpair = BasisTrackingUtility.reduce(Z, chain, this.indexedComparator, chainModule);\n\t\tIntSparseFormalSum<U> reduction = Zpair.getSecond();\n\n\t\treturn reduction.isEmpty();\n\t}\n\n\tpublic boolean isBoundary(IntSparseFormalSum<U> cycle) {\n\n\t\tObjectObjectPair<IntSparseFormalSum<Integer>, IntSparseFormalSum<U>> Zpair = BasisTrackingUtility.reduce(Z, cycle, this.indexedComparator, chainModule);\n\t\tIntSparseFormalSum<Integer> v = Zpair.getFirst();\n\t\tIntSparseFormalSum<U> reduction = Zpair.getSecond();\n\n\t\t// if it is not a cycle, it can't be a boundary\n\t\tif (!reduction.isEmpty()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tObjectObjectPair<IntSparseFormalSum<Integer>, IntSparseFormalSum<Integer>> Bpair = BasisTrackingUtility.reduce(B, v, this.integerComparator, integerChainModule);\n\t\tIntSparseFormalSum<Integer> v_prime = Bpair.getSecond();\n\n\t\treturn v_prime.isEmpty();\n\t}\n\n\tpublic void add(U sigma, Integer index) {\n\t\tthis.add(sigma, index.intValue());\n\t}\n\n\tpublic AbstractPersistenceTracker<Integer, Integer, IntSparseFormalSum<U>> getStateWithoutFiniteBarcodes() {\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> result = new IntervalTracker<Integer, Integer, IntSparseFormalSum<U>>();\n\t\t\n\t\tfor (Entry<Integer, List<ObjectObjectPair<Interval<Integer>, IntSparseFormalSum<U>>>> entry: this.intervalTracker.annotatedBarcodes) {\n\t\t\tInteger dimension = entry.getKey();\n\t\t\tfor (ObjectObjectPair<Interval<Integer>, IntSparseFormalSum<U>> pair: entry.getValue()) {\n\t\t\t\tif (pair.getFirst().isInfinite()) {\n\t\t\t\t\tresult.annotatedBarcodes.addInterval(dimension, pair.getFirst(), pair.getSecond());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tfor (Integer key: this.intervalTracker.openIntervals.keySet()) {\n\t\t\tIntervalDescriptor<Integer, IntSparseFormalSum<U>> value = this.intervalTracker.openIntervals.get(key);\n\t\t\tresult.openIntervals.put(key, value);\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic AbstractPersistenceTracker<Integer, Integer, IntSparseFormalSum<U>> getState() {\n\t\treturn this.intervalTracker;\n\t}\n\n\tpublic void remove(U sigma, Integer index) {\n\t\tthis.remove(sigma, index.intValue());\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/IntervalDescriptor.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.homology.zigzag;\n\n\npublic class IntervalDescriptor<T, G> {\n\tprotected final T start;\n\tprotected final G generator;\n\tprotected final int dimension;\n\t\n\tpublic IntervalDescriptor(T start, int dimension, G generator) {\n\t\tsuper();\n\t\tthis.start = start;\n\t\tthis.dimension = dimension;\n\t\tthis.generator = generator;\n\t}\n\t\n\t/**\n\t * @return the start\n\t */\n\tpublic T getStart() {\n\t\treturn start;\n\t}\n\n\t/**\n\t * @return the dimension\n\t */\n\tpublic int getDimension() {\n\t\treturn dimension;\n\t}\n\n\t/**\n\t * @return the generator\n\t */\n\tpublic G getGenerator() {\n\t\treturn generator;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see java.lang.Object#toString()\n\t */\n\t@Override\n\tpublic String toString() {\n\t\treturn \"[dim=\" + dimension + \", \" + (start != null ? \"start=\" + start : \"\") + \", \" + (generator != null ? \"\" + generator : \"\") + \"]\";\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see java.lang.Object#hashCode()\n\t */\n\t@Override\n\tpublic int hashCode() {\n\t\tfinal int prime = 31;\n\t\tint result = 1;\n\t\tresult = prime * result + dimension;\n\t\tresult = prime * result + ((generator == null) ? 0 : generator.hashCode());\n\t\tresult = prime * result + ((start == null) ? 0 : start.hashCode());\n\t\treturn result;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see java.lang.Object#equals(java.lang.Object)\n\t */\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\tIntervalDescriptor<?, ?> other = (IntervalDescriptor<?, ?>) obj;\n\t\tif (dimension != other.dimension)\n\t\t\treturn false;\n\t\tif (generator == null) {\n\t\t\tif (other.generator != null)\n\t\t\t\treturn false;\n\t\t} else if (!generator.equals(other.generator))\n\t\t\treturn false;\n\t\tif (start == null) {\n\t\t\tif (other.start != null)\n\t\t\t\treturn false;\n\t\t} else if (!start.equals(other.start))\n\t\t\treturn false;\n\t\treturn true;\n\t}\n}"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/IntervalTracker.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\nimport edu.stanford.math.primitivelib.utility.Infinity;\n\n\npublic class IntervalTracker<K, I extends Comparable<I>, G> implements AbstractPersistenceTracker<K, I, G> {\n\t\n\tprotected final Map<K, IntervalDescriptor<I, G>> openIntervals = new HashMap<K, IntervalDescriptor<I, G>>();\n\tprotected final AnnotatedBarcodeCollection<I, G> annotatedBarcodes = new AnnotatedBarcodeCollection<I, G>();\n\n\tprotected boolean useLeftClosedIntervals = true;\n\tprotected boolean useRightClosedIntervals = true;\n\t\n\tprotected int maxDimension = Infinity.Int.getPositiveInfinity();\n\t\n\tpublic Map<K, IntervalDescriptor<I, G>> getActiveGenerators() {\n\t\treturn this.openIntervals;\n\t}\n\t\n\tpublic AnnotatedBarcodeCollection<I, G> getInactiveGenerators() {\n\t\treturn this.annotatedBarcodes;\n\t}\n\t\n\tpublic void setMaxDimension(int maxDimension) {\n\t\tthis.maxDimension = maxDimension;\n\t}\n\t\n\tpublic void setUseLeftClosedIntervals(boolean value) {\n\t\tthis.useLeftClosedIntervals = value;\n\t}\n\t\n\tpublic void setUseRightClosedIntervals(boolean value) {\n\t\tthis.useRightClosedIntervals = value;\n\t}\n\t\n\tpublic boolean containsActiveInterval(K key) {\n\t\treturn this.openIntervals.containsKey(key);\n\t}\n\t\n\tpublic void startInterval(K key, I startIndex, int dimension, G generator) {\n\t\t\n\t\tif (dimension > this.maxDimension) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tIntervalDescriptor<I, G> descriptor = new IntervalDescriptor<I, G>(startIndex, dimension, generator);\n\t\tthis.openIntervals.put(key, descriptor);\n\t}\n\t\n\tpublic void endInterval(K key, I endIndex) {\n\t\t\n\t\tif (!this.openIntervals.containsKey(key)) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tIntervalDescriptor<I, G> descriptor = this.openIntervals.get(key);\n\t\t\n\t\tif (this.useLeftClosedIntervals && this.useRightClosedIntervals) {\n\t\t\tif (endIndex.compareTo(descriptor.start) >= 0) {\n\t\t\t\tthis.annotatedBarcodes.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, endIndex, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, false), descriptor.generator);\n\t\t\t}\n\t\t} else {\n\t\t\tif (endIndex.compareTo(descriptor.start) > 0) {\n\t\t\t\tthis.annotatedBarcodes.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, endIndex, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, false), descriptor.generator);\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.openIntervals.remove(key);\n\t}\n\t\n\tpublic void endAllIntervals(I endIndex) {\n\t\tfor (K key: this.openIntervals.keySet()) {\n\t\t\tif (!this.openIntervals.containsKey(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tIntervalDescriptor<I, G> descriptor = this.openIntervals.get(key);\n\t\t\t\n\t\t\tif (this.useLeftClosedIntervals && this.useRightClosedIntervals) {\n\t\t\t\tif (endIndex.compareTo(descriptor.start) >= 0) {\n\t\t\t\t\tthis.annotatedBarcodes.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, endIndex, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, false), descriptor.generator);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (endIndex.compareTo(descriptor.start) > 0) {\n\t\t\t\t\tthis.annotatedBarcodes.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, endIndex, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, false), descriptor.generator);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.openIntervals.clear();\n\t}\n\t\n\tpublic AnnotatedBarcodeCollection<I, G> getAnnotatedBarcodes() {\n\t\treturn (AnnotatedBarcodeCollection<I, G>) PersistenceInvariantDescriptor.union(this.getFiniteAnnotatedBarcodes(), this.getInfiniteAnnotatedBarcodes());\n\t}\n\n\tpublic AnnotatedBarcodeCollection<I, G> getInfiniteAnnotatedBarcodes() {\n\t\tAnnotatedBarcodeCollection<I, G> collection = new AnnotatedBarcodeCollection<I, G>();\n\t\tfor (K key: this.openIntervals.keySet()) {\n\t\t\tIntervalDescriptor<I, G> descriptor = this.openIntervals.get(key);\n\t\t\tcollection.addInterval(descriptor.dimension, Interval.makeInterval(descriptor.start, null, this.useLeftClosedIntervals, this.useRightClosedIntervals, false, true), descriptor.generator);\n\t\t}\n\n\t\treturn collection;\n\t}\n\n\tpublic AnnotatedBarcodeCollection<I, G> getFiniteAnnotatedBarcodes() {\n\t\treturn this.annotatedBarcodes;\n\t}\n\t\n\tpublic BarcodeCollection<I> getBarcodes() {\n\t\treturn BarcodeCollection.forgetGeneratorType(this.getAnnotatedBarcodes());\n\t}\n\t\n\tpublic BarcodeCollection<I> getInfiniteBarcodes() {\n\t\treturn BarcodeCollection.forgetGeneratorType(this.getInfiniteAnnotatedBarcodes());\n\t}\n\t\n\tpublic BarcodeCollection<I> getFiniteBarcodes() {\n\t\treturn BarcodeCollection.forgetGeneratorType(this.getFiniteAnnotatedBarcodes());\n\t}\n\t\n\t@Override\n\tpublic String toString() {\n\t\t\n\t\tStringBuilder builder = new StringBuilder();\n\t\t\n\t\tfor (K key: this.openIntervals.keySet()) {\n\t\t\tIntervalDescriptor<I, G> descriptor = this.openIntervals.get(key);\n\t\t\tbuilder.append(key.toString() + \": \" + descriptor.toString());\n\t\t\tbuilder.append(\"\\n\");\n\t\t}\n\t\t\n\t\tbuilder.append(this.annotatedBarcodes.toString());\n\t\t\n\t\treturn builder.toString();\n\t}\n\t\n\t/*\n\tpublic static <L, U, V> AnnotatedIntervalTracker<L, V> join(AnnotatedIntervalTracker<L, U> X, AnnotatedIntervalTracker<L, V> Z, Map<L, L> map, int ZIndex) {\n\t\tAnnotatedIntervalTracker<L, V> result = new AnnotatedIntervalTracker<L, V>();\n\t\tresult.setUseRightClosedIntervals(true);\n\t\tSet<L> processedZIndices = new HashSet<L>();\n\n\t\tfor (L X_key: X.openIntervals.keySet()) {\n\t\t\tIntervalDescriptor<Integer, U> X_descriptor = X.openIntervals.get(X_key);\n\t\t\tif (map.containsKey(X_key)) {\n\t\t\t\tL Z_key = map.get(X_key);\n\t\t\t\tIntervalDescriptor<Integer, V> Z_descriptor = Z.openIntervals.get(Z_key);\n\n\t\t\t\tresult.startInterval(Z_key, X_descriptor.start, Z_descriptor.dimension, Z_descriptor.generator);\n\n\t\t\t\tprocessedZIndices.add(map.get(X_key));\n\t\t\t} else {\n\t\t\t\tresult.startInterval(X_key, X_descriptor.start, X_descriptor.dimension, null);\n\t\t\t\tresult.endInterval(X_key, ZIndex - 1);\n\t\t\t}\n\t\t}\n\n\t\tfor (L Z_key: Z.openIntervals.keySet()) {\n\t\t\tif (processedZIndices.contains(Z_key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tIntervalDescriptor<Integer, V> Z_descriptor = Z.openIntervals.get(Z_key);\n\n\t\t\tresult.startInterval(Z_key, Z_descriptor.start, Z_descriptor.dimension, Z_descriptor.generator);\n\t\t}\n\t\t\n\t\tfor (Entry<Integer, List<ObjectObjectPair<Interval<Integer>, U>>> barcode: X.annotatedBarcodes) {\n\t\t\tint dimension = barcode.getKey();\n\t\t\tfor (ObjectObjectPair<Interval<Integer>, U> intervalPair: barcode.getValue()) {\n\t\t\t\tresult.annotatedBarcodes.addInterval(dimension, intervalPair.getFirst(), null);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\t*/\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/SimpleHomologyBasisTracker.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.Comparator;\nimport java.util.Iterator;\nimport java.util.List;\nimport java.util.Set;\n\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport gnu.trove.THashMap;\nimport gnu.trove.THashSet;\nimport gnu.trove.TObjectIntHashMap;\n\npublic class SimpleHomologyBasisTracker<U extends PrimitiveBasisElement> implements AbstractHomologyTracker<Integer, Integer, U, IntSparseFormalSum<U>> {\n\t/**\n\t * This is the field over which we perform the arithmetic computations.\n\t */\n\tprotected final IntAbstractField field;\n\n\t/**\n\t * This objects performs the chain computations.\n\t */\n\tprotected final IntAlgebraicFreeModule<U> chainModule;\n\n\t/**\n\t * This comparator defines the ordering on the basis elements.\n\t */\n\tprotected final Comparator<U> basisComparator;\n\n\t/**\n\t * This comparator provides the dictionary ordering on filtration value - basis element\n\t * pairs.\n\t */\n\tprotected final Comparator<U> indexedComparator = new Comparator<U>() {\n\t\tpublic int compare(U arg0, U arg1) {\n\t\t\tint i0 = objectIndexMap.get(arg0);\n\t\t\tint i1 = objectIndexMap.get(arg1);\n\t\t\tif (i0 > i1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif (i0 < i1) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\treturn basisComparator.compare(arg0, arg1);\n\t\t}\n\t};\n\n\tTHashMap<U, IntSparseFormalSum<U>> R = new THashMap<U, IntSparseFormalSum<U>>();\n\tTHashMap<U, IntSparseFormalSum<U>> V = new THashMap<U, IntSparseFormalSum<U>>();\n\n\t/**\n\t * This maps a simplex to the set of columns containing the key as its low value.\n\t */\n\tTHashMap<U, THashSet<U>> lowMap = new THashMap<U, THashSet<U>>();\n\n\tprotected IntervalTracker<Integer, Integer, IntSparseFormalSum<U>> cachedTracker = null;\n\n\tprotected final TObjectIntHashMap<U> objectIndexMap = new TObjectIntHashMap<U>();\n\n\tprotected final int minDimension, maxDimension;\n\n\n\tpublic SimpleHomologyBasisTracker(IntAbstractField field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\n\t\tthis.field = field;\n\t\tthis.chainModule = new IntAlgebraicFreeModule<U>(this.field);\n\t\tthis.basisComparator = basisComparator;\n\t\tthis.minDimension = minDimension;\n\t\tthis.maxDimension = maxDimension;\n\t}\n\n\tpublic void add(U sigma, Integer index) {\n\t\tU i = sigma;\n\n\t\tthis.objectIndexMap.put(sigma, index);\n\t\tthis.cachedTracker = null;\n\n\t\t// initialize V to be the identity matrix\n\t\tV.put(i, this.chainModule.createNewSum(this.field.valueOf(1), sigma));\n\n\t\tIntSparseFormalSum<U> boundary = BasisTrackingUtility.createNewSum(sigma.getBoundaryCoefficients(), sigma.getBoundaryArray());\n\n\t\t// form the column R[i] which equals the boundary of the current simplex.\n\t\t// store the column as a column in R\n\t\tR.put(sigma, boundary);\n\n\t\t// compute low_R(i)\n\t\tU low_R_i = this.low(R.get(i));\n\n\t\t// if the boundary of i is empty, then continue to next iteration since there\n\t\t// is nothing to process\n\t\tif (low_R_i == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tTHashSet<U> matchingLowSimplices = lowMap.get(low_R_i);\n\t\twhile (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) {\n\t\t\tIterator<U> iterator = matchingLowSimplices.iterator();\n\n\t\t\tU j = iterator.next();\n\n\t\t\tint c = field.divide(R.get(i).getCoefficient(low_R_i), R.get(j).getCoefficient(low_R_i));\n\t\t\tint negative_c = field.negate(c);\n\t\t\t//R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j))));\n\t\t\t//V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j))));\n\t\t\tthis.chainModule.accumulate(R.get(i), R.get(j), negative_c);\n\t\t\tthis.chainModule.accumulate(V.get(i), V.get(j), negative_c);\n\n\t\t\t// remove old low_R(i) entry\n\t\t\t//lowMap.get(low_R_i).remove(i);\n\n\t\t\t// recompute low_R(i)\n\t\t\tlow_R_i = this.low(R.get(i));\n\n\t\t\tmatchingLowSimplices = lowMap.get(low_R_i);\n\t\t}\n\n\t\t// store the low value in the map\n\t\tif (low_R_i != null) {\n\t\t\tif (!lowMap.containsKey(low_R_i)) {\n\t\t\t\tlowMap.put(low_R_i, new THashSet<U>());\n\t\t\t}\n\t\t\tlowMap.get(low_R_i).add(i);\n\t\t}\n\t}\n\n\tprivate U low(IntSparseFormalSum<U> intSparseFormalSum) {\n\t\treturn BasisTrackingUtility.low(intSparseFormalSum, this.indexedComparator);\n\t}\n\n\tpublic IntervalTracker<Integer, Integer, IntSparseFormalSum<U>> getState() {\n\n\t\tif (this.cachedTracker != null) {\n\t\t\treturn this.cachedTracker;\n\t\t}\n\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> tracker = new IntervalTracker<Integer, Integer, IntSparseFormalSum<U>>();\n\n\t\ttracker.setUseLeftClosedIntervals(true);\n\t\ttracker.setUseRightClosedIntervals(false);\n\n\t\tSet<U> births = new THashSet<U>();\n\n\t\tList<U> keySet = new ArrayList<U>(R.keySet());\n\t\tCollections.sort(keySet, this.indexedComparator);\n\t\t\n\t\tint key = 0;\n\t\tfor (U i: keySet) {\n\t\t\tU low_R_i = this.low(R.get(i));\n\t\t\tint dimension = i.getDimension();\n\t\t\tif (low_R_i == null) {\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\n\t\t\t\t\tbirths.add(i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// simplex i kills low_R_i\n\t\t\t\tbirths.remove(low_R_i);\n\t\t\t\tbirths.remove(i);\n\t\t\t\tint start = this.objectIndexMap.get(low_R_i);\n\t\t\t\tint end = this.objectIndexMap.get(i);\n\t\t\t\tif (end > start) {\n\t\t\t\t\tdimension = low_R_i.getDimension();\n\t\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension)\n\t\t\t\t\t{\n\t\t\t\t\t\t//barcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i));\n\t\t\t\t\t\ttracker.startInterval(key, start, dimension, R.get(i));\n\t\t\t\t\t\ttracker.endInterval(key, end);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tkey++;\n\t\t}\n\n\t\t// the elements in birth are the ones that are never killed\n\t\t// these correspond to semi-infinite intervals\n\t\tfor (U i: births) {\n\t\t\tint dimension = i.getDimension();\n\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\n\t\t\t\t//barcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\n\t\t\t\tint start = this.objectIndexMap.get(i);\n\t\t\t\ttracker.startInterval(key, start, dimension, V.get(i));\n\t\t\t}\n\t\t\tkey++;\n\t\t}\n\n\t\tthis.cachedTracker = tracker;\n\n\t\treturn tracker;\n\t}\n\t\n\tpublic IntervalTracker<Integer, Integer, IntSparseFormalSum<U>> getStateWithoutFiniteBarcodes(int startOverride) {\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> tracker = new IntervalTracker<Integer, Integer, IntSparseFormalSum<U>>();\n\n\t\ttracker.setUseLeftClosedIntervals(true);\n\t\ttracker.setUseRightClosedIntervals(false);\n\n\t\tSet<U> births = new THashSet<U>();\n\n\t\tList<U> keySet = new ArrayList<U>(R.keySet());\n\t\tCollections.sort(keySet, this.indexedComparator);\n\t\t\n\t\tint key = 0;\n\t\tfor (U i: keySet) {\n\t\t\tU low_R_i = this.low(R.get(i));\n\t\t\tint dimension = i.getDimension();\n\t\t\tif (low_R_i == null) {\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\n\t\t\t\t\tbirths.add(i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// simplex i kills low_R_i\n\t\t\t\tbirths.remove(low_R_i);\n\t\t\t\tbirths.remove(i);\n\t\t\t}\n\t\t\tkey++;\n\t\t}\n\n\t\t// the elements in birth are the ones that are never killed\n\t\t// these correspond to semi-infinite intervals\n\t\tfor (U i: births) {\n\t\t\tint dimension = i.getDimension();\n\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\n\t\t\t\t//int start = this.objectIndexMap.get(i);\n\t\t\t\ttracker.startInterval(key, startOverride, dimension, V.get(i));\n\t\t\t}\n\t\t\tkey++;\n\t\t}\n\t\t\n\t\t\n\t\treturn tracker;\n\t}\n\n\tpublic boolean isBoundary(IntSparseFormalSum<U> generator) {\n\t\tObjectObjectPair<IntSparseFormalSum<U>, IntSparseFormalSum<U>> reduction = BasisTrackingUtility.reduce(this.R, generator, this.indexedComparator, this.chainModule);\n\n\t\tIntSparseFormalSum<U> remainder = reduction.getSecond();\n\n\t\treturn remainder.isEmpty();\n\t}\n\n\tpublic void remove(U sigma, Integer index) {\n\t\tthrow new UnsupportedOperationException();\n\t}\n\n\tpublic IntervalTracker<Integer, Integer, IntSparseFormalSum<U>> getIntervalTracker() {\n\t\treturn this.getState();\n\t}\n\n\tpublic AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getFiniteAnnotatedBarcodes() {\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> intervalTracker = this.getState();\n\t\treturn intervalTracker.getFiniteAnnotatedBarcodes();\n\t}\n\n\tpublic AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getInfiniteAnnotatedBarcodes() {\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> intervalTracker = this.getState();\n\t\treturn intervalTracker.getInfiniteAnnotatedBarcodes();\n\t}\n\n\tpublic AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<U>> getAnnotatedBarcodes() {\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> intervalTracker = this.getState();\n\t\treturn intervalTracker.getAnnotatedBarcodes();\n\t}\n\n\tpublic BarcodeCollection<Integer> getFiniteBarcodes() {\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> intervalTracker = this.getState();\n\t\treturn intervalTracker.getFiniteBarcodes();\n\t}\n\n\tpublic BarcodeCollection<Integer> getInfiniteBarcodes() {\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> intervalTracker = this.getState();\n\t\treturn intervalTracker.getInfiniteBarcodes();\n\t}\n\n\tpublic BarcodeCollection<Integer> getBarcodes() {\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<U>> intervalTracker = this.getState();\n\t\treturn intervalTracker.getBarcodes();\n\t}\n}\n\n\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/ZigZagHomology.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.streams.utility.FilteredComparator;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\r\n\r\npublic class ZigZagHomology<U extends PrimitiveBasisElement> extends AbstractPersistenceAlgorithm<U> {\r\n\t/**\r\n\t * This is the field over which we perform the arithmetic computations.\r\n\t */\r\n\tprotected final IntAbstractField field;\r\n\r\n\t/**\r\n\t * This objects performs the chain computations.\r\n\t */\r\n\tprotected final IntAlgebraicFreeModule<U> chainModule;\r\n\r\n\t/**\r\n\t * This comparator defines the ordering on the basis elements.\r\n\t */\r\n\tprotected final Comparator<U> basisComparator;\r\n\r\n\t/**\r\n\t * This comparator provides the dictionary ordering on filtration value - basis element\r\n\t * pairs.\r\n\t */\r\n\tprotected Comparator<U> filteredComparator = null;\r\n\r\n\t/**\r\n\t * This stores the minimum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int minDimension = 0;\r\n\r\n\t/**\r\n\t * This stores the maximum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int maxDimension = 2;\t\r\n\r\n\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type int\r\n\t * @param basisComparator a comparator on the basis type U\r\n\t * @param minDimension the minimum dimension to compute\r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic ZigZagHomology(IntAbstractField field, Comparator<U> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.field = field;\r\n\t\tthis.chainModule = new IntAlgebraicFreeModule<U>(this.field);\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\r\n\t/**\r\n\t * This function simply updates the filtered comparator to the one induced by the given filtered stream.\r\n\t * \r\n\t * @param stream the AbstractFilteredStream that provides the filtration index information\r\n\t */\r\n\tprotected void initializeFilteredComparator(AbstractFilteredStream<U> stream) {\r\n\t\tthis.filteredComparator = new FilteredComparator<U>(stream, this.basisComparator);\r\n\t}\r\n\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<U> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\tSimpleHomologyBasisTracker<U> basisTracker = new SimpleHomologyBasisTracker<U>(this.field, this.basisComparator, this.minDimension, this.maxDimension);\r\n\t\t\r\n\t\tfor (U sigma : stream) {\r\n\t\t\t/*\r\n\t\t\t * Do not process simplices of higher dimension than maxDimension.\r\n\t\t\t */\r\n\t\t\tif (stream.getDimension(sigma) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (stream.getDimension(sigma) > this.maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tbasisTracker.add(sigma, stream.getFiltrationIndex(sigma));\r\n\t\t}\r\n\r\n\t\treturn BarcodeCollection.forgetGeneratorType(basisTracker.getAnnotatedBarcodes().filterByMaxDimension(maxDimension));\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/bootstrap/InducedHomologyMappingUtility.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag.bootstrap;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.HashSet;\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Map.Entry;\nimport java.util.Set;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.plex4.homology.zigzag.AbstractHomologyTracker;\nimport edu.stanford.math.plex4.homology.zigzag.AbstractPersistenceTracker;\nimport edu.stanford.math.plex4.homology.zigzag.IntervalDescriptor;\nimport edu.stanford.math.plex4.homology.zigzag.IntervalTracker;\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport gnu.trove.TObjectIntIterator;\n\n\npublic class InducedHomologyMappingUtility {\n\n\tpublic static <I extends Comparable<I>, U extends PrimitiveBasisElement> IntervalTracker<Integer, I, IntSparseFormalSum<U>> \n\tinclude(AbstractHomologyTracker<Integer, I, ?, IntSparseFormalSum<U>> X,\n\t\t\tAbstractHomologyTracker<Integer, I, ?, IntSparseFormalSum<U>> Z,\n\t\t\tAbstractHomologyTracker<Integer, I, ?, IntSparseFormalSum<U>> Y,\n\t\t\tfinal IntervalTracker<Integer, I, IntSparseFormalSum<U>> accumulator,\n\t\t\tIntAlgebraicFreeModule<U> chainModule,\n\t\t\tI X_index, I Y_index) {\n\t\t\n\t\tIntervalTracker<Integer, I, IntSparseFormalSum<U>> result = new IntervalTracker<Integer, I, IntSparseFormalSum<U>>();\n\t\tresult.setUseLeftClosedIntervals(true);\n\t\tresult.setUseRightClosedIntervals(true);\n\t\tObjectObjectFunction<IntSparseFormalSum<U>, IntSparseFormalSum<U>> inclusionMap = InducedHomologyMappingUtility.getInclusionMap();\n\n\t\tMap<Integer, Integer> XZ_map = InducedHomologyMappingUtility.computeInducedMap(X.getState(), Z, chainModule, inclusionMap);\n\t\tMap<Integer, Integer> YZ_map = InducedHomologyMappingUtility.computeInducedMap(Y.getState(), Z, chainModule, inclusionMap);\n\t\tMap<Integer, List<Integer>> XY_map = new HashMap<Integer, List<Integer>>();\n\t\t\n\t\tMap<Integer, List<Integer>> ZY_map = reverse(YZ_map);\n\t\t\n\t\tfor (Integer X_key: XZ_map.keySet()) {\n\t\t\tInteger Z_key = XZ_map.get(X_key);\n\t\t\tif (ZY_map.containsKey(Z_key)) {\n\t\t\t\tfor (Integer Y_key: ZY_map.get(Z_key)) {\n\t\t\t\t\tif (!XY_map.containsKey(X_key)) {\n\t\t\t\t\t\tXY_map.put(X_key, new ArrayList<Integer>());\n\t\t\t\t\t}\n\t\t\t\t\tXY_map.get(X_key).add(Y_key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tSet<Integer> X_processedIndices = new HashSet<Integer>();\n\t\tSet<Integer> Y_processedIndices = new HashSet<Integer>();\n\t\t\n\t\tList<Integer> X_keys = new ArrayList<Integer>(XY_map.keySet());\n\t\tCollections.sort(X_keys);\n\t\tfor (Integer X_key: X_keys) {\n\t\t\tList<Integer> Y_keys = XY_map.get(X_key);\n\t\t\t\n\t\t\tif (X_processedIndices.contains(X_key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tif (Y_keys.size() > 0) {\n\t\t\t\tInteger Y_key = Y_keys.get(0);\n\t\t\t\t\n\t\t\t\tif (Y_processedIndices.contains(Y_key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tX_processedIndices.add(X_key);\n\t\t\t\tY_processedIndices.add(Y_key);\n\t\t\t\t\n\t\t\t\tIntervalDescriptor<I, IntSparseFormalSum<U>> X_descriptor = accumulator.getActiveGenerators().get(X_key);\n\t\t\t\tresult.startInterval(Y_key, X_descriptor.getStart(), X_descriptor.getDimension(), X_descriptor.getGenerator());\n\t\t\t}\n\t\t}\n\t\t\n\t\tX_keys = new ArrayList<Integer>(accumulator.getActiveGenerators().keySet());\n\t\tCollections.sort(X_keys);\n\t\tfor (Integer X_key: X_keys) {\n\t\t\tIntervalDescriptor<I, IntSparseFormalSum<U>> X_descriptor = accumulator.getActiveGenerators().get(X_key);\n\t\t\n\t\t\tif (X_processedIndices.contains(X_key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tInteger tempKey = 0;\n\t\t\t\n\t\t\twhile (result.containsActiveInterval(tempKey)) {\n\t\t\t\ttempKey++;\n\t\t\t}\n\t\t\t\n\t\t\tresult.startInterval(tempKey, X_descriptor.getStart(), X_descriptor.getDimension(), X_descriptor.getGenerator());\n\t\t\tresult.endInterval(tempKey, X_index);\n\t\t}\n\t\t\n\t\tList<Integer> Y_keys = new ArrayList<Integer>(Y.getState().getActiveGenerators().keySet());\n\t\tfor (Integer Y_key: Y_keys) {\n\t\t\tif (Y_processedIndices.contains(Y_key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tIntervalDescriptor<I, IntSparseFormalSum<U>> Y_descriptor = Y.getState().getActiveGenerators().get(Y_key);\n\t\t\tresult.startInterval(Y_key, Y_index, Y_descriptor.getDimension(), Y_descriptor.getGenerator());\n\t\t}\n\t\t\n\t\tfor (Entry<Integer, List<ObjectObjectPair<Interval<I>, IntSparseFormalSum<U>>>> entry: accumulator.getInactiveGenerators()) {\n\t\t\tint dimension = entry.getKey();\n\t\t\tfor (ObjectObjectPair<Interval<I>, IntSparseFormalSum<U>> pair: entry.getValue()) {\n\t\t\t\tresult.getFiniteAnnotatedBarcodes().addInterval(dimension, pair.getFirst(), pair.getSecond());\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\t\n\tpublic static <I extends Comparable<I>, U extends PrimitiveBasisElement, V extends ObjectObjectPair<U, U>> IntervalTracker<Integer, I, IntSparseFormalSum<U>> \n\tproject(AbstractHomologyTracker<Integer, I, ?, IntSparseFormalSum<U>> X,\n\t\t\tAbstractHomologyTracker<Integer, I, ?, IntSparseFormalSum<V>> Z,\n\t\t\tAbstractHomologyTracker<Integer, I, ?, IntSparseFormalSum<U>> Y,\n\t\t\tAbstractPersistenceTracker<Integer, I, IntSparseFormalSum<U>> accumulator,\n\t\t\tIntAlgebraicFreeModule<U> chainModule,\n\t\t\tIntAlgebraicFreeModule<V> Z_chainModule,\n\t\t\tI X_index, I Y_index) {\n\t\t\n\t\tIntervalTracker<Integer, I, IntSparseFormalSum<U>> result = new IntervalTracker<Integer, I, IntSparseFormalSum<U>>();\n\t\t\n\t\tObjectObjectFunction<IntSparseFormalSum<V>, IntSparseFormalSum<U>> firstProjection = InducedHomologyMappingUtility.getFirstGradedProjectionMap(chainModule, Z_chainModule);\n\t\tObjectObjectFunction<IntSparseFormalSum<V>, IntSparseFormalSum<U>> secondProjection = InducedHomologyMappingUtility.getSecondGradedProjectionMap(chainModule, Z_chainModule);\n\t\t\n\t\tMap<Integer, Integer> ZX_map = computeInducedMap(Z.getState(), X, chainModule, firstProjection);\n\t\tMap<Integer, Integer> ZY_map = computeInducedMap(Z.getState(), Y, chainModule, secondProjection);\n\t\tMap<Integer, List<Integer>> XZ_map = reverse(ZX_map);\n\t\tMap<Integer, Integer> XY_map = new HashMap<Integer, Integer>();\n\t\t\n\t\tfor (Integer X_key: XZ_map.keySet()) {\n\t\t\tfor (Integer Z_key: XZ_map.get(X_key)) {\n\t\t\t\tif (ZY_map.containsKey(Z_key)) {\n\t\t\t\t\tXY_map.put(X_key, ZY_map.get(Z_key));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tSet<Integer> X_processedIndices = new HashSet<Integer>();\n\t\tSet<Integer> Y_processedIndices = new HashSet<Integer>();\n\n\t\tfor (Integer X_key: accumulator.getActiveGenerators().keySet()) {\n\t\t\tIntervalDescriptor<I, IntSparseFormalSum<U>> X_descriptor = accumulator.getActiveGenerators().get(X_key);\n\t\t\t\n\t\t\tif (XY_map.containsKey(X_key)) {\n\t\t\t\tInteger Y_key = XY_map.get(X_key);\n\t\t\t\t\n\t\t\t\tresult.startInterval(Y_key, X_descriptor.getStart(), X_descriptor.getDimension(), X_descriptor.getGenerator());\n\t\t\t\t\n\t\t\t\tX_processedIndices.add(X_key);\n\t\t\t\tY_processedIndices.add(Y_key);\n\t\t\t} else {\n\t\t\t\tInteger tempKey = 0;\n\t\t\t\t\n\t\t\t\twhile (result.containsActiveInterval(tempKey)) {\n\t\t\t\t\ttempKey++;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tresult.startInterval(X_key, X_descriptor.getStart(), X_descriptor.getDimension(), X_descriptor.getGenerator());\n\t\t\t\tresult.endInterval(X_key, X_index);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfor (Integer Y_key: Y.getState().getActiveGenerators().keySet()) {\n\t\t\tif (Y_processedIndices.contains(Y_key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tIntervalDescriptor<I, IntSparseFormalSum<U>> Y_descriptor = Y.getState().getActiveGenerators().get(Y_key);\n\t\t\t\n\t\t\tresult.startInterval(Y_key, Y_index, Y_descriptor.getDimension(), Y_descriptor.getGenerator());\n\t\t}\n\t\t\n\t\tfor (Entry<Integer, List<ObjectObjectPair<Interval<I>, IntSparseFormalSum<U>>>> entry: accumulator.getInactiveGenerators()) {\n\t\t\tint dimension = entry.getKey();\n\t\t\tfor (ObjectObjectPair<Interval<I>, IntSparseFormalSum<U>> pair: entry.getValue()) {\n\t\t\t\tresult.getFiniteAnnotatedBarcodes().addInterval(dimension, pair.getFirst(), pair.getSecond());\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n\tpublic static <K1, K2, I1 extends Comparable<I1>, I2 extends Comparable<I2>, G1, G2> Map<K1, K2> computeInducedMap(AbstractPersistenceTracker<K1, I1, G1> A_state, \n\t\t\tAbstractHomologyTracker<K2, I2, ?, G2> B, \n\t\t\tIntAbstractModule<G2> chainModule, \n\t\t\tObjectObjectFunction<G1, G2> chainMap) {\n\n\t\tAbstractPersistenceTracker<K2, I2, G2> B_state = B.getState();\n\n\t\tMap<K1, IntervalDescriptor<I1, G1>> A_generators = A_state.getActiveGenerators();\n\t\tMap<K2, IntervalDescriptor<I2, G2>> B_generators = B_state.getActiveGenerators();\n\n\t\tMap<K1, K2> joinMap = new HashMap<K1, K2>();\n\n\t\tfor (K1 A_key: A_generators.keySet()) {\n\t\t\tint A_dimension = A_generators.get(A_key).getDimension();\n\t\t\tG1 A_chain = A_generators.get(A_key).getGenerator();\n\n\t\t\tG2 image = chainMap.evaluate(A_chain);\n\n\t\t\tfor (K2 B_key: B_generators.keySet()) {\n\t\t\t\tint B_dimension = B_generators.get(B_key).getDimension();\n\n\t\t\t\tif (B_dimension != A_dimension) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tG2 B_chain = B_generators.get(B_key).getGenerator();\n\t\t\t\tG2 difference = chainModule.subtract(B_chain, image);\n\n\t\t\t\tif (B.isBoundary(difference)) {\n\t\t\t\t\tjoinMap.put(A_key, B_key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn joinMap;\n\t}\n\t\n\tpublic static <K, I extends Comparable<I>, G1, G2> IntervalTracker<K, I, G2> join(AbstractPersistenceTracker<K, I, G1> A_state,\n\t\t\tAbstractPersistenceTracker<K, I, G2> B_state, \n\t\t\tMap<K, K> joinMap, \n\t\t\tI joinIndex,\n\t\t\tboolean reversed) {\n\n\t\tMap<K, IntervalDescriptor<I, G1>> A_generators = A_state.getActiveGenerators();\n\t\tMap<K, IntervalDescriptor<I, G2>> B_generators = B_state.getActiveGenerators();\n\n\t\tSet<K> processedAIndices = new HashSet<K>();\n\t\tSet<K> processedBIndices = new HashSet<K>();\n\n\t\tIntervalTracker<K, I, G2> result = new IntervalTracker<K, I, G2>();\n\n\t\tfor (Entry<K, K> entry: joinMap.entrySet()) {\n\t\t\tK B_key, A_key;\n\t\t\t\n\t\t\tif (!reversed) {\n\t\t\t\tA_key = entry.getKey();\n\t\t\t\tB_key = entry.getValue();\n\t\t\t} else {\n\t\t\t\tB_key = entry.getKey();\n\t\t\t\tA_key = entry.getValue();\n\t\t\t}\n\t\t\t\n\t\t\tIntervalDescriptor<I, G1> A_descriptor = A_generators.get(A_key);\n\t\t\tIntervalDescriptor<I, G2> B_descriptor = B_generators.get(B_key);\n\n\t\t\tresult.startInterval(B_key, A_descriptor.getStart(), B_descriptor.getDimension(), B_descriptor.getGenerator());\n\t\t\tprocessedBIndices.add(B_key);\n\t\t\tprocessedAIndices.add(A_key);\n\t\t}\n\t\t\n\t\tfor (K A_key: A_generators.keySet()) {\n\t\t\tif (processedAIndices.contains(A_key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tIntervalDescriptor<I, G1> A_descriptor = A_generators.get(A_key);\n\n\t\t\tresult.startInterval(A_key, A_descriptor.getStart(), A_descriptor.getDimension(), null);\n\t\t\tresult.endInterval(A_key, joinIndex);\n\t\t}\n\t\t\n\t\t\n\t\tfor (K B_key: B_generators.keySet()) {\n\t\t\tif (processedBIndices.contains(B_key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tIntervalDescriptor<I, G2> B_descriptor = B_generators.get(B_key);\n\n\t\t\tresult.startInterval(B_key, B_descriptor.getStart(), B_descriptor.getDimension(), B_descriptor.getGenerator());\n\t\t}\n\n\t\tfor (Entry<Integer, List<ObjectObjectPair<Interval<I>, G1>>> entry: A_state.getInactiveGenerators()) {\n\t\t\tint dimension = entry.getKey();\n\t\t\tfor (ObjectObjectPair<Interval<I>, G1> pair: entry.getValue()) {\n\t\t\t\tresult.getFiniteAnnotatedBarcodes().addInterval(dimension, pair.getFirst(), null);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n\tpublic static <X extends Comparable<X>, Y> Map<Y, List<X>> reverse(Map<X, Y> map) {\n\t\tMap<Y, List<X>> result = new HashMap<Y, List<X>>();\n\n\t\tfor (X key: map.keySet()) {\n\t\t\tY value = map.get(key);\n\t\t\t\n\t\t\tif (!result.containsKey(value)) {\n\t\t\t\tresult.put(value, new ArrayList<X>());\n\t\t\t}\n\t\t\t\n\t\t\tresult.get(value).add(key);\n\t\t}\n\n\t\tfor (Y key: result.keySet()) {\n\t\t\tCollections.sort(result.get(key));\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n\tpublic static <U extends PrimitiveBasisElement> ObjectObjectFunction<IntSparseFormalSum<U>, IntSparseFormalSum<U>> getInclusionMap() {\n\t\treturn new ObjectObjectFunction<IntSparseFormalSum<U>, IntSparseFormalSum<U>>() {\n\n\t\t\tpublic IntSparseFormalSum<U> evaluate(IntSparseFormalSum<U> arg0) {\n\t\t\t\treturn arg0;\n\t\t\t}\n\t\t\t\n\t\t};\n\t}\n\t\n\tpublic static <U extends PrimitiveBasisElement, V extends ObjectObjectPair<U, U>> ObjectObjectFunction<IntSparseFormalSum<V>, IntSparseFormalSum<U>> getFirstGradedProjectionMap(final IntAlgebraicFreeModule<U> chainModule, final IntAlgebraicFreeModule<V> dummy) {\n\t\treturn new ObjectObjectFunction<IntSparseFormalSum<V>, IntSparseFormalSum<U>>() {\n\n\t\t\tpublic IntSparseFormalSum<U> evaluate(IntSparseFormalSum<V> chain) {\n\n\t\t\t\tif (chain.isEmpty()) {\n\t\t\t\t\treturn chainModule.createNewSum();\n\t\t\t\t}\n\n\t\t\t\tint dimension = 0;\n\n\t\t\t\t{\n\t\t\t\t\tTObjectIntIterator<V> iterator = chain.iterator();\n\n\t\t\t\t\tif (iterator.hasNext()) {\n\t\t\t\t\t\titerator.advance();\n\t\t\t\t\t\tdimension = iterator.key().getFirst().getDimension() + iterator.key().getSecond().getDimension();\t\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn SimplexStreamUtility.filterByDimension(SimplexStreamUtility.projectFirst(chain, chainModule), dimension);\n\t\t\t}\n\n\t\t};\n\t}\n\n\tpublic static <U extends PrimitiveBasisElement, V extends ObjectObjectPair<U, U>> ObjectObjectFunction<IntSparseFormalSum<V>, IntSparseFormalSum<U>> getSecondGradedProjectionMap(final IntAlgebraicFreeModule<U> chainModule, final IntAlgebraicFreeModule<V> dummy) {\n\t\treturn new ObjectObjectFunction<IntSparseFormalSum<V>, IntSparseFormalSum<U>>() {\n\n\t\t\tpublic IntSparseFormalSum<U> evaluate(IntSparseFormalSum<V> chain) {\n\n\t\t\t\tif (chain.isEmpty()) {\n\t\t\t\t\treturn chainModule.createNewSum();\n\t\t\t\t}\n\n\t\t\t\tint dimension = 0;\n\n\t\t\t\t{\n\t\t\t\t\tTObjectIntIterator<V> iterator = chain.iterator();\n\n\t\t\t\t\tif (iterator.hasNext()) {\n\t\t\t\t\t\titerator.advance();\n\t\t\t\t\t\tdimension = iterator.key().getFirst().getDimension() + iterator.key().getSecond().getDimension();\t\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn SimplexStreamUtility.filterByDimension(SimplexStreamUtility.projectSecond(chain, chainModule), dimension);\n\t\t\t}\n\n\t\t};\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/bootstrap/SimplexStreamUtility.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag.bootstrap;\n\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport gnu.trove.TObjectIntIterator;\n\npublic class SimplexStreamUtility {\n\n\n\tpublic static <U> IntSparseFormalSum<U> projectFirst(IntSparseFormalSum<? extends ObjectObjectPair<U, U>> chain, IntAlgebraicFreeModule<U> chainModule) {\n\t\tIntSparseFormalSum<U> result = new IntSparseFormalSum<U>();\n\n\t\tfor (TObjectIntIterator<? extends ObjectObjectPair<U, U>> iterator = chain.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\t\t\tchainModule.accumulate(result, iterator.key().getFirst(), iterator.value());\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic static <U> IntSparseFormalSum<U> projectSecond(IntSparseFormalSum<? extends ObjectObjectPair<U, U>> chain, IntAlgebraicFreeModule<U> chainModule) {\n\t\tIntSparseFormalSum<U> result = new IntSparseFormalSum<U>();\n\n\t\tfor (TObjectIntIterator<? extends ObjectObjectPair<U, U>> iterator = chain.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\t\t\tchainModule.accumulate(result, iterator.key().getSecond(), iterator.value());\n\t\t}\n\n\t\treturn result;\n\t}\n\t\n\tpublic static <U extends PrimitiveBasisElement> IntSparseFormalSum<U> filterByDimension(IntSparseFormalSum<U> chain, int dimension) {\n\t\tIntSparseFormalSum<U> result = new IntSparseFormalSum<U>();\n\t\t\n\t\tfor (TObjectIntIterator<U> iterator = chain.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\t\t\t\n\t\t\tif (iterator.key().getDimension() == dimension) {\n\t\t\t\tresult.put(iterator.value(), iterator.key());\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/bootstrap/VietorisRipsBootstrapper.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag.bootstrap;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\nimport edu.stanford.math.plex4.homology.zigzag.IntervalTracker;\nimport edu.stanford.math.plex4.homology.zigzag.SimpleHomologyBasisTracker;\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\nimport edu.stanford.math.plex4.utility.ArrayUtility;\nimport edu.stanford.math.plex4.utility.RandomUtility;\nimport edu.stanford.math.primitivelib.algebraic.impl.ModularIntField;\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\n\npublic class VietorisRipsBootstrapper {\n\tprivate final double[][] points;\n\tprivate final List<int[]> indexSelections;\n\tIntAbstractField intField = ModularIntField.getInstance(2);\n\tprotected final IntAlgebraicFreeModule<Simplex> chainModule = new IntAlgebraicFreeModule<Simplex>(this.intField);\n\n\tprivate final double maxDistance;\n\tprivate final int maxDimension;\n\n\tpublic VietorisRipsBootstrapper(double[][] points, double maxDistance, int maxDimension, List<int[]> indexSelections) {\n\t\tthis.points = points;\n\t\tthis.maxDimension = maxDimension;\n\t\tthis.maxDistance = maxDistance;\n\n\t\tthis.indexSelections = new ArrayList<int[]>();\n\t\tfor (int i = 0; i < indexSelections.size(); i++) {\n\t\t\tint[] selection = indexSelections.get(i);\n\t\t\tthis.indexSelections.add(ArrayUtility.makeMonotone(selection));\n\t\t}\n\t}\n\n\tpublic VietorisRipsBootstrapper(double[][] points, double maxDistance, int maxDimension, int numSelections, int selectionSize) {\n\t\tthis.points = points;\n\t\tthis.indexSelections = new ArrayList<int[]>();\n\t\tthis.maxDimension = maxDimension;\n\t\tthis.maxDistance = maxDistance;\n\n\t\tselectionSize = Math.min(points.length, selectionSize);\n\n\t\tfor (int selection = 0; selection < numSelections; selection++) {\n\t\t\tint[] set = RandomUtility.randomSubset(selectionSize, points.length).toArray();\n\t\t\tset = ArrayUtility.makeMonotone(set);\n\t\t\tthis.indexSelections.add(set);\n\t\t}\n\t}\n\n\tpublic int[] getSubset(int index) {\n\t\treturn this.indexSelections.get(index);\n\t}\n\n\tpublic BarcodeCollection<Integer> performBootstrap() {\n\t\tint[] i_indices = this.indexSelections.get(0);\n\t\tVietorisRipsStream<double[]> X_stream = new VietorisRipsStream<double[]>(new EuclideanMetricSpace(ArrayUtility.getSubset(points, i_indices)), maxDistance, maxDimension + 1, i_indices);\n\t\tX_stream.finalizeStream();\n\n\t\tVietorisRipsStream<double[]> Y_stream;\n\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<Simplex>> result = null;\n\n\t\tSimpleHomologyBasisTracker<Simplex> ZTracker = null;\n\t\tSimpleHomologyBasisTracker<Simplex> XTracker = null;\n\t\tSimpleHomologyBasisTracker<Simplex> YTracker = null;\n\n\t\tfor (int j = 1; j < this.indexSelections.size(); j++) {\n\t\t\tif (XTracker == null) {\n\t\t\t\tXTracker = new SimpleHomologyBasisTracker<Simplex>(intField, SimplexComparator.getInstance(), 0, this.maxDimension);\n\t\t\t\tfor (Simplex x: X_stream) {\n\t\t\t\t\tXTracker.add(x, X_stream.getFiltrationIndex(x));\n\t\t\t\t}\n\n\t\t\t\tSystem.out.println(\"Barcodes for X_\" + (j - 1));\n\t\t\t\tAnnotatedBarcodeCollection<Integer, IntSparseFormalSum<Simplex>> XBarcodes = XTracker.getAnnotatedBarcodes();\n\t\t\t\tSystem.out.println(XBarcodes.toString());\n\t\t\t}\n\n\t\t\tint[] j_indices = this.indexSelections.get(j);\n\t\t\tY_stream = new VietorisRipsStream<double[]>(new EuclideanMetricSpace(ArrayUtility.getSubset(points, j_indices)), maxDistance, maxDimension + 1, j_indices);\n\t\t\tY_stream.finalizeStream();\n\n\t\t\tYTracker = new SimpleHomologyBasisTracker<Simplex>(intField, SimplexComparator.getInstance(), 0, this.maxDimension);\n\t\t\tfor (Simplex y: Y_stream) {\n\t\t\t\tYTracker.add(y, Y_stream.getFiltrationIndex(y));\n\t\t\t}\n\n\t\t\t\n\n\t\t\tint[] ij_indices = ArrayUtility.union(i_indices, j_indices);\n\n\t\t\tVietorisRipsStream<double[]> Z_stream = new VietorisRipsStream<double[]>(new EuclideanMetricSpace(ArrayUtility.getSubset(points, ij_indices)), maxDistance, maxDimension + 1, ij_indices);\n\t\t\tZ_stream.finalizeStream();\n\n\t\t\tZTracker = new SimpleHomologyBasisTracker<Simplex>(intField, SimplexComparator.getInstance(), 0, this.maxDimension);\n\t\t\tfor (Simplex z: Z_stream) {\n\t\t\t\tZTracker.add(z, Z_stream.getFiltrationIndex(z));\n\t\t\t}\n\n\t\t\t\n\t\t\tSystem.out.println(\"Barcodes for X_\" + (j-1) + \",\" + (j));\n\t\t\tAnnotatedBarcodeCollection<Integer, IntSparseFormalSum<Simplex>> ZBarcodes = ZTracker.getAnnotatedBarcodes();\n\t\t\tSystem.out.println(ZBarcodes.toString());\n\t\t\t\n\t\t\tSystem.out.println(\"Barcodes for X_\" + (j));\n\t\t\tAnnotatedBarcodeCollection<Integer, IntSparseFormalSum<Simplex>> YBarcodes = YTracker.getAnnotatedBarcodes();\n\t\t\tSystem.out.println(YBarcodes.toString());\n\n\t\t\t\n\t\t\tif (result == null) {\n\t\t\t\tresult = XTracker.getStateWithoutFiniteBarcodes(j - 1);\n\t\t\t\tresult.setUseLeftClosedIntervals(true);\n\t\t\t\tresult.setUseRightClosedIntervals(true);\n\t\t\t}\n\t\t\t\n\t\t\tresult = InducedHomologyMappingUtility.include(XTracker, ZTracker, YTracker, result, chainModule, (j - 1), j);\n\t\t\t\n\t\t\tX_stream = Y_stream;\n\t\t\tXTracker = YTracker;\n\t\t\ti_indices = j_indices;\n\t\t}\n\n\t\tresult.endAllIntervals(this.indexSelections.size() - 1);\n\n\t\treturn BarcodeCollection.forgetGeneratorType(result.getAnnotatedBarcodes().filterByMaxDimension(maxDimension));\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/homology/zigzag/bootstrap/WitnessBootstrapper.java",
    "content": "package edu.stanford.math.plex4.homology.zigzag.bootstrap;\n\nimport java.util.ArrayList;\nimport java.util.Arrays;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPair;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator;\nimport edu.stanford.math.plex4.homology.zigzag.IntervalTracker;\nimport edu.stanford.math.plex4.homology.zigzag.SimpleHomologyBasisTracker;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\nimport edu.stanford.math.plex4.metric.landmark.RandomLandmarkSelector;\nimport edu.stanford.math.plex4.streams.impl.WitnessBicomplex;\nimport edu.stanford.math.plex4.streams.impl.WitnessStream;\nimport edu.stanford.math.primitivelib.algebraic.impl.ModularIntField;\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\n\npublic class WitnessBootstrapper<T> {\n\tprotected final AbstractSearchableMetricSpace<T> metricSpace;\n\tprotected final List<LandmarkSelector<T>> indexSelections;\n\tprotected final IntAbstractField intField = ModularIntField.getInstance(2);\n\tprotected final IntAlgebraicFreeModule<Simplex> chainModule = new IntAlgebraicFreeModule<Simplex>(this.intField);\n\tprotected final IntAlgebraicFreeModule<SimplexPair> Z_chainModule = new IntAlgebraicFreeModule<SimplexPair>(this.intField);\n\t\n\tprotected final int maxDimension;\n\tprotected final double maxDistance;\n\n\tpublic WitnessBootstrapper(AbstractSearchableMetricSpace<T> metricSpace, List<LandmarkSelector<T>> indexSelections, int maxDimension, double maxDistance) {\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.indexSelections = indexSelections;\n\t\tthis.maxDimension = maxDimension;\n\t\tthis.maxDistance = maxDistance;\n\t}\n\t\n\tpublic LandmarkSelector<T> getLandmarkSelector(int index) {\n\t\treturn this.indexSelections.get(index);\n\t}\n\n\tpublic WitnessBootstrapper(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, int numSelections, int selectionSize) {\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.indexSelections = new ArrayList<LandmarkSelector<T>>();\n\t\tthis.maxDimension = maxDimension;\n\t\tthis.maxDistance = maxDistance;\n\n\t\tselectionSize = Math.min(metricSpace.size(), selectionSize);\n\n\t\tfor (int selection = 0; selection < numSelections; selection++) {\n\t\t\tLandmarkSelector<T> selector = new RandomLandmarkSelector<T>(metricSpace, selectionSize);\n\t\t\tthis.indexSelections.add(selector);\n\t\t}\n\t}\n\n\tpublic BarcodeCollection<Integer> performProjectionBootstrap() {\n\t\treturn performProjectionBootstrap(null);\n\t}\n\t\n\tpublic BarcodeCollection<Integer> performProjectionBootstrap(int[] expectedBettiNumbers) {\n\t\tWitnessStream<T> X_stream = new WitnessStream<T>(this.metricSpace, indexSelections.get(0), maxDimension + 1, maxDistance, indexSelections.get(0).getLandmarkPoints());\n\t\tX_stream.setPlex3Compatbility(false);\n\t\tX_stream.finalizeStream();\n\n\t\tWitnessStream<T> Y_stream = null;\n\n\t\tIntervalTracker<Integer, Integer, IntSparseFormalSum<Simplex>> result = null;\n\n\t\tSimpleHomologyBasisTracker<SimplexPair> ZTracker = null;\n\t\tSimpleHomologyBasisTracker<Simplex> XTracker = null;\n\t\tSimpleHomologyBasisTracker<Simplex> YTracker = null;\n\t\t\n\t\tfor (int j = 1; j < this.indexSelections.size(); j++) {\n\t\t\tif (XTracker == null) {\n\t\t\t\tXTracker = new SimpleHomologyBasisTracker<Simplex>(intField, SimplexComparator.getInstance(), 0, maxDimension);\n\t\t\t\tXTracker.getIntervalTracker().setUseRightClosedIntervals(false);\n\t\t\t\tXTracker.getIntervalTracker().setMaxDimension(maxDimension);\n\t\t\t\tfor (Simplex x: X_stream) {\n\t\t\t\t\tXTracker.add(x, X_stream.getFiltrationIndex(x));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tSystem.out.println(\"Barcodes for X_\" + (j - 1));\n\t\t\t\tAnnotatedBarcodeCollection<Integer, IntSparseFormalSum<Simplex>> XBarcodes = XTracker.getAnnotatedBarcodes();\n\t\t\t\t\n\t\t\t\tif (expectedBettiNumbers != null && !Arrays.equals(XBarcodes.getBettiSequence(), expectedBettiNumbers)) {\n\t\t\t\t\tthis.indexSelections.set(0, new RandomLandmarkSelector<T>(metricSpace, this.indexSelections.get(0).getLandmarkPoints().length));\n\t\t\t\t\tX_stream = new WitnessStream<T>(this.metricSpace, indexSelections.get(0), maxDimension + 1, maxDistance, indexSelections.get(0).getLandmarkPoints());\n\t\t\t\t\tj--;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tSystem.out.println(XBarcodes.toString());\n\t\t\t}\n\t\t\t\n\t\t\tAnnotatedBarcodeCollection<Integer, IntSparseFormalSum<Simplex>> YBarcodes = null;\n\t\t\t\n\t\t\tif (expectedBettiNumbers != null) {\n\t\t\t\tboolean found = false;\n\t\t\t\t\n\t\t\t\twhile (!found) {\n\t\t\t\t\tY_stream = new WitnessStream<T>(this.metricSpace, indexSelections.get(j), maxDimension + 1, maxDistance, indexSelections.get(j).getLandmarkPoints());\n\t\t\t\t\tY_stream.setPlex3Compatbility(false);\n\t\t\t\t\tY_stream.finalizeStream();\n\n\t\t\t\t\tYTracker = new SimpleHomologyBasisTracker<Simplex>(intField, SimplexComparator.getInstance(), 0, maxDimension);\n\t\t\t\t\tYTracker.getIntervalTracker().setUseRightClosedIntervals(false);\n\t\t\t\t\tYTracker.getIntervalTracker().setMaxDimension(maxDimension);\n\t\t\t\t\tfor (Simplex y: Y_stream) {\n\t\t\t\t\t\tYTracker.add(y, Y_stream.getFiltrationIndex(y));\n\t\t\t\t\t}\n\n\t\t\t\t\tYBarcodes = YTracker.getAnnotatedBarcodes();\n\t\t\t\t\t\n\t\t\t\t\tif (Arrays.equals(YBarcodes.getInfiniteIntervals().getBettiSequence(), expectedBettiNumbers)) {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tSystem.out.println(\"Barcodes \" + Arrays.toString(YBarcodes.getInfiniteIntervals().getBettiSequence()) + \" do not match the expected ones: \" + Arrays.toString(expectedBettiNumbers));\n\t\t\t\t\t\tLandmarkSelector<T> selector = new RandomLandmarkSelector<T>(metricSpace, this.indexSelections.get(j).size());\n\t\t\t\t\t\tthis.indexSelections.set(j, selector);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tY_stream = new WitnessStream<T>(this.metricSpace, indexSelections.get(j), maxDimension + 1, maxDistance, indexSelections.get(j).getLandmarkPoints());\n\t\t\t\tY_stream.setPlex3Compatbility(false);\n\t\t\t\tY_stream.finalizeStream();\n\n\t\t\t\tYTracker = new SimpleHomologyBasisTracker<Simplex>(intField, SimplexComparator.getInstance(), 0, maxDimension);\n\t\t\t\tYTracker.getIntervalTracker().setUseRightClosedIntervals(false);\n\t\t\t\tYTracker.getIntervalTracker().setMaxDimension(maxDimension);\n\t\t\t\tfor (Simplex y: Y_stream) {\n\t\t\t\t\tYTracker.add(y, Y_stream.getFiltrationIndex(y));\n\t\t\t\t}\n\n\t\t\t\tYBarcodes = YTracker.getAnnotatedBarcodes();\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\tWitnessBicomplex<T> Z_stream = new WitnessBicomplex<T>(X_stream, Y_stream, maxDimension);\n\t\t\tZ_stream.finalizeStream();\n\t\t\tZ_stream.ensureAllFaces();\n\n\t\t\tZTracker = new SimpleHomologyBasisTracker<SimplexPair>(intField, SimplexPairComparator.getInstance(), 0, maxDimension);\n\t\t\tZTracker.getIntervalTracker().setUseRightClosedIntervals(false);\n\t\t\tZTracker.getIntervalTracker().setMaxDimension(maxDimension);\n\t\t\tfor (SimplexPair z: Z_stream) {\n\t\t\t\tZTracker.add(z, Z_stream.getFiltrationIndex(z));\n\t\t\t}\n\t\t\t\n\t\t\t//System.out.println(\"Barcodes for X_\" + (j-1) + \",\" + (j));\n\t\t\t//AnnotatedBarcodeCollection<Integer, IntSparseFormalSum<SimplexPair>> ZBarcodes = ZTracker.getAnnotatedBarcodes();\n\t\t\t//System.out.println(ZBarcodes.toString());\n\t\t\t\n\t\t\t\n\t\t\tSystem.out.println(\"Barcodes for X_\" + (j));\n\t\t\tSystem.out.println(YBarcodes.toString());\n\t\t\t\n\t\t\t\n\t\t\tif (result == null) {\n\t\t\t\tresult = XTracker.getStateWithoutFiniteBarcodes(j - 1);\n\t\t\t\tresult.setUseLeftClosedIntervals(true);\n\t\t\t\tresult.setUseRightClosedIntervals(true);\n\t\t\t}\n\t\t\t\n\t\t\tresult = InducedHomologyMappingUtility.project(XTracker, ZTracker, YTracker, result, chainModule, Z_chainModule, (j - 1), j);\n\n\t\t\tX_stream = Y_stream;\n\t\t\tXTracker = YTracker;\n\t\t}\n\t\t\n\t\tresult.endAllIntervals(this.indexSelections.size() - 1);\n\t\t\n\t\treturn BarcodeCollection.forgetGeneratorType(result.getAnnotatedBarcodes().filterByMaxDimension(maxDimension));\n\t}\n\t\n\t\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/interop/Plex3PersistenceAlgorithm.java",
    "content": "package edu.stanford.math.plex4.interop;\r\n\r\nimport edu.stanford.math.plex.Persistence;\r\nimport edu.stanford.math.plex.PersistenceInterval;\r\nimport edu.stanford.math.plex.SimplexStream;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayMath;\r\n\r\n/**\r\n * This class encapsulates the functionality of the original version of javaPlex. It implements the\r\n * <code>AbstractPersistenceAlgorithm<Simplex></code> interface for easy interoperability and testing.\r\n * Essentially, it computes the persistent homology of a plex 4 stream using the plex 3 algorithm.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class Plex3PersistenceAlgorithm extends AbstractPersistenceAlgorithm<edu.stanford.math.plex4.homology.chain_basis.Simplex> {\r\n\tprivate final int maxDimension;\r\n\t\r\n\t/**\r\n\t * This constructor initializes the class with the maximum dimension to compute persistence for.\r\n\t * \r\n\t * @param maxDimension the maximum dimension\r\n\t */\r\n\tpublic Plex3PersistenceAlgorithm(int maxDimension) {\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.new_version.AbstractPersistenceAlgorithm#computeIntervals(edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream)\r\n\t */\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<edu.stanford.math.plex4.homology.chain_basis.Simplex> plex4Stream) {\r\n\t\t\r\n\t\tSimplexStream.Stack stack = new SimplexStream.Stack(plex4Stream.getMaximumFiltrationIndex() + 1, this.maxDimension);\r\n\t\t\r\n\t\tfor (edu.stanford.math.plex4.homology.chain_basis.Simplex plex4Simplex: plex4Stream) {\r\n\t\t\tstack.push(edu.stanford.math.plex.Simplex.getSimplex(IntArrayMath.scalarAdd(plex4Simplex.getVertices(), 1), plex4Stream.getFiltrationIndex(plex4Simplex)));\r\n\t\t}\r\n\t\t\r\n\t\tPersistence persistenceInstance = new Persistence();\r\n\t\tPersistenceInterval[] rawIntervals = persistenceInstance.computeRawIntervals(stack, false, Persistence.baseModulus());\r\n\r\n\t\treturn Plex3ToPlex4BarcodeAdapter.getInstance().evaluate(rawIntervals);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/interop/Plex3Stream.java",
    "content": "package edu.stanford.math.plex4.interop;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\n\r\nimport edu.stanford.math.plex.SimplexStream;\r\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\r\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.homology.filtration.FiltrationConverter;\r\nimport edu.stanford.math.plex4.homology.filtration.FiltrationUtility;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.collections.utility.AdaptedIterator;\r\nimport gnu.trove.TObjectIntHashMap;\r\n\r\n/**\r\n * This class is a wrapper around a plex 3 SimplexStream that implements the AbstractFilteredStream interface\r\n * of plex 4. \r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class Plex3Stream implements AbstractFilteredStream<edu.stanford.math.plex4.homology.chain_basis.Simplex> {\r\n\tprivate final SimplexStream plex3Stream;\r\n\tprivate final TObjectIntHashMap<Simplex> filtrationIndexMap = new TObjectIntHashMap<Simplex>();\r\n\tprivate final Plex3ToPlex4SimplexAdapter simplexAdapter;\r\n\tprivate final int maxFiltrationIndex, minFiltrationIndex;\r\n\t\r\n\tpublic Plex3Stream(SimplexStream plex3Stream) {\r\n\t\tthis.simplexAdapter = Plex3ToPlex4SimplexAdapter.getInstance();\r\n\t\tthis.plex3Stream = plex3Stream;\r\n\t\tint tempMaxFiltrationIndex = Integer.MIN_VALUE;\r\n\t\tint tempMinFiltrationIndex = Integer.MAX_VALUE;\r\n\t\t\r\n\t\tfor (Iterator<edu.stanford.math.plex.Simplex> iterator = plex3Stream.iterator(); iterator.hasNext(); ) {\r\n\t\t\tedu.stanford.math.plex.Simplex plex3Simplex = iterator.next();\r\n\t\t\tthis.filtrationIndexMap.put(this.simplexAdapter.evaluate(plex3Simplex), plex3Simplex.findex());\r\n\t\t\ttempMaxFiltrationIndex = Math.max(tempMaxFiltrationIndex, plex3Simplex.findex());\r\n\t\t\ttempMinFiltrationIndex = Math.min(tempMinFiltrationIndex, plex3Simplex.findex());\r\n\t\t}\r\n\t\t\r\n\t\tthis.maxFiltrationIndex = tempMaxFiltrationIndex;\r\n\t\tthis.minFiltrationIndex = tempMinFiltrationIndex;\r\n\t}\r\n\t\r\n\tpublic Plex3Stream(SimplexStream plex3Stream, int[] vertexMapping) {\r\n\t\tthis.simplexAdapter = Plex3ToPlex4SimplexAdapter.getInstance(vertexMapping);\r\n\t\tthis.plex3Stream = plex3Stream;\r\n\t\tint tempMaxFiltrationIndex = Integer.MIN_VALUE;\r\n\t\tint tempMinFiltrationIndex = Integer.MAX_VALUE;\r\n\t\t\r\n\t\tfor (Iterator<edu.stanford.math.plex.Simplex> iterator = plex3Stream.iterator(); iterator.hasNext(); ) {\r\n\t\t\tedu.stanford.math.plex.Simplex plex3Simplex = iterator.next();\r\n\t\t\tthis.filtrationIndexMap.put(this.simplexAdapter.evaluate(plex3Simplex), plex3Simplex.findex());\r\n\t\t\ttempMaxFiltrationIndex = Math.max(tempMaxFiltrationIndex, plex3Simplex.findex());\r\n\t\t\ttempMinFiltrationIndex = Math.min(tempMinFiltrationIndex, plex3Simplex.findex());\r\n\t\t}\r\n\t\t\r\n\t\tthis.maxFiltrationIndex = tempMaxFiltrationIndex;\r\n\t\tthis.minFiltrationIndex = tempMinFiltrationIndex;\r\n\t}\r\n\t\r\n\tpublic void finalizeStream() { }\r\n\r\n\tpublic Simplex[] getBoundary(Simplex basisElement) {\r\n\t\treturn basisElement.getBoundaryArray();\r\n\t}\r\n\r\n\tpublic int[] getBoundaryCoefficients(Simplex basisElement) {\r\n\t\treturn basisElement.getBoundaryCoefficients();\r\n\t}\r\n\r\n\tpublic int getDimension(Simplex basisElement) {\r\n\t\treturn basisElement.getDimension();\r\n\t}\r\n\r\n\tpublic int getFiltrationIndex(Simplex basisElement) {\r\n\t\treturn this.filtrationIndexMap.get(basisElement);\r\n\t}\r\n\t\r\n\tpublic double getFiltrationValue(Simplex basisElement) {\r\n\t\treturn this.plex3Stream.convert_filtration_index(this.getFiltrationIndex(basisElement));\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object)\r\n\t */\r\n\tpublic boolean containsElement(Simplex basisElement) {\r\n\t\t// TODO Implement this if you need it.\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n\tpublic int getMaximumFiltrationIndex() {\r\n\t\treturn this.maxFiltrationIndex;\r\n\t}\r\n\t\r\n\tpublic int getMinimumFiltrationIndex() {\r\n\t\treturn this.minFiltrationIndex;\r\n\t}\r\n\r\n\tpublic int getSize() {\r\n\t\treturn this.plex3Stream.size();\r\n\t}\r\n\r\n\tpublic boolean isFinalized() {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic Iterator<edu.stanford.math.plex4.homology.chain_basis.Simplex> iterator() {\r\n\t\treturn new AdaptedIterator<edu.stanford.math.plex.Simplex, Simplex>(this.plex3Stream.iterator(), simplexAdapter);\r\n\t}\r\n\r\n\tpublic Comparator<Simplex> getBasisComparator() {\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\r\n\t\tFiltrationConverter converter = new FiltrationConverter() {\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic double computeInducedFiltrationValue(double filtrationValue1, double filtrationValue2) {\r\n\t\t\t\treturn Math.max(filtrationValue1, filtrationValue2);\r\n\t\t\t}\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic int getFiltrationIndex(double filtrationValue) {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic double getFiltrationValue(int filtrationIndex) {\r\n\t\t\t\treturn plex3Stream.convert_filtration_index(filtrationIndex);\r\n\t\t\t}\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic double getInitialFiltrationValue() {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t};\r\n\t\t\r\n\t\treturn FiltrationUtility.transform(barcodeCollection, converter);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/interop/Plex3ToPlex4BarcodeAdapter.java",
    "content": "package edu.stanford.math.plex4.interop;\r\n\r\nimport edu.stanford.math.plex.PersistenceInterval;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction;\r\n\r\n/**\r\n * This class implements a function object which converts plex 3 barcodes to plex 4 barcodes.\r\n * It is designed to convert the result of the computeRawIntervals function in plex 3 to the type BarcodeCollection\\<Integer\\>\r\n * so that it can be compared with the results of the plex 4 homology algorithms. Note that even though \r\n * this function object accepts arguments of type PersistenceInterval[], it is required that the elements in the\r\n * array are of type PersistenceInterval.Int. The reason for this is that the internal plex 3 homology algorithm\r\n * computes the integral filtration intervals, but then converts the results to the PersistenceInterval class. Thus,\r\n * this requirement is mainly for legacy reasons.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class Plex3ToPlex4BarcodeAdapter implements ObjectObjectFunction<PersistenceInterval[], BarcodeCollection<Integer>> {\r\n\tprivate static Plex3ToPlex4BarcodeAdapter instance = new Plex3ToPlex4BarcodeAdapter();\r\n\r\n\tpublic static Plex3ToPlex4BarcodeAdapter getInstance() {\r\n\t\treturn instance;\r\n\t}\r\n\r\n\tprivate Plex3ToPlex4BarcodeAdapter(){}\r\n\r\n\tpublic BarcodeCollection<Integer> evaluate(PersistenceInterval[] argument) {\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\t\tbarcodeCollection.setLeftClosedDefault(true);\r\n\t\tbarcodeCollection.setRightClosedDefault(false);\r\n\r\n\t\tfor (PersistenceInterval interval: argument) {\r\n\t\t\tassert (interval instanceof PersistenceInterval.Int);\r\n\t\t\tPersistenceInterval.Int intInterval = (PersistenceInterval.Int) interval;\r\n\t\t\tif (interval.infiniteExtent()) {\r\n\t\t\t\tbarcodeCollection.addRightInfiniteInterval(interval.dimension, intInterval.start);\r\n\t\t\t} else {\r\n\t\t\t\tbarcodeCollection.addInterval(interval.dimension, intInterval.start, intInterval.end);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/interop/Plex3ToPlex4SimplexAdapter.java",
    "content": "package edu.stanford.math.plex4.interop;\r\n\r\nimport edu.stanford.math.plex.Simplex;\r\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayMath;\r\nimport edu.stanford.math.primitivelib.autogen.functional.ObjectObjectFunction;\r\n\r\n/**\r\n * This class implements a function object which converts plex 3 simplices to plex 4 simplices. Since plex 4\r\n * operates in a 0-based way, it also shifts the indices down by 1.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class Plex3ToPlex4SimplexAdapter implements ObjectObjectFunction<edu.stanford.math.plex.Simplex, edu.stanford.math.plex4.homology.chain_basis.Simplex> {\r\n\tprivate static Plex3ToPlex4SimplexAdapter instance = new Plex3ToPlex4SimplexAdapter();\r\n\tprivate final int[] vertexMapping;\r\n\t\r\n\tpublic static Plex3ToPlex4SimplexAdapter getInstance() {\r\n\t\treturn instance;\r\n\t}\r\n\t\r\n\tpublic static Plex3ToPlex4SimplexAdapter getInstance(int[] vertexMapping) {\r\n\t\treturn new Plex3ToPlex4SimplexAdapter(vertexMapping);\r\n\t}\r\n\t\r\n\tprivate Plex3ToPlex4SimplexAdapter() {\r\n\t\tthis.vertexMapping = null;\r\n\t}\r\n\t\r\n\tprivate Plex3ToPlex4SimplexAdapter(int[] vertexMapping) {\r\n\t\tthis.vertexMapping = vertexMapping;\r\n\t}\r\n\t\r\n\tpublic edu.stanford.math.plex4.homology.chain_basis.Simplex evaluate(Simplex argument) {\r\n\t\tif (this.vertexMapping == null) {\r\n\t\t\treturn new edu.stanford.math.plex4.homology.chain_basis.Simplex(IntArrayMath.scalarAdd(argument.vertices(), -1));\r\n\t\t} else {\r\n\t\t\treturn new edu.stanford.math.plex4.homology.chain_basis.Simplex(HomologyUtility.convertIndices(IntArrayMath.scalarAdd(argument.vertices(), -1), this.vertexMapping));\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/BarcodeWriter.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.awt.image.BufferedImage;\r\nimport java.io.IOException;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\r\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\r\nimport edu.stanford.math.plex4.visualization.BarcodeVisualizer;\r\n\r\n\r\npublic class BarcodeWriter {\r\n\tprivate static final BarcodeWriter instance = new BarcodeWriter();\r\n\t\r\n\tprivate BarcodeWriter() {}\r\n\t\r\n\tpublic static BarcodeWriter getInstance() {\r\n\t\treturn instance;\r\n\t}\r\n\t\r\n\tpublic <G> void writeToFile(PersistenceInvariantDescriptor<Interval<Double>, G> object, int dimension, double endPoint, String caption, String path) throws IOException {\r\n\t\tString label = String.format(\"%s (Dimension: %d)\", caption, dimension);\r\n\t\tBufferedImage image = BarcodeVisualizer.drawBarcode(object.getIntervalsAtDimension(dimension), label, endPoint);\r\n\t\tBufferedImageWriter.getInstance(BufferedImageWriter.getDefaultEncoderFormat()).writeToFile(image, path);\r\n\t}\r\n\r\n\tpublic String getExtension() {\r\n\t\treturn BufferedImageWriter.getDefaultEncoderFormat();\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/BufferedImageWriter.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport gnu.trove.THashMap;\r\n\r\nimport java.awt.image.BufferedImage;\r\nimport java.io.BufferedOutputStream;\r\nimport java.io.FileOutputStream;\r\nimport java.io.IOException;\r\n\r\nimport com.sun.media.jai.codec.ImageCodec;\r\nimport com.sun.media.jai.codec.ImageEncoder;\r\n\r\npublic class BufferedImageWriter implements ObjectWriter<BufferedImage> {\r\n\tprivate final String encoderFormat;\r\n\t\r\n\tprivate static final THashMap<String, BufferedImageWriter> instanceHash = new THashMap<String, BufferedImageWriter>();\r\n\t\r\n\tpublic static BufferedImageWriter getInstance(String parameter) {\r\n\t\tif (!instanceHash.containsKey(parameter)) {\r\n\t\t\tinitializeInstance(parameter);\r\n\t\t}\r\n\t\t\r\n\t\treturn instanceHash.get(parameter);\r\n\t}\r\n\t\r\n\tprivate static void initializeInstance(String parameter) {\r\n\t\tinstanceHash.put(parameter, new BufferedImageWriter(parameter));\r\n\t}\r\n\t\r\n\tprivate BufferedImageWriter(String encoderFormat) {\r\n\t\tthis.encoderFormat = encoderFormat;\r\n\t}\r\n\t\r\n\tpublic static String getDefaultEncoderFormat() {\r\n\t\treturn \"PNG\";\r\n\t}\t\r\n\t\r\n\tpublic void writeToFile(BufferedImage object, String path) throws IOException {\r\n\t\tBufferedOutputStream out = null;\r\n\t\tImageEncoder encoder;\r\n\t\ttry {\r\n\t\t\tout = new BufferedOutputStream(new FileOutputStream(path));\r\n\t\t\tencoder = ImageCodec.createImageEncoder(encoderFormat, out, null);\r\n\t\t\tencoder.encode(object);\r\n\t\t} catch (IOException e) {\r\n\t\t\tthrow e;\r\n\t\t} finally {\r\n\t\t\tif (out != null) {\r\n\t\t\t\tout.close();\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\r\n\r\n\tpublic String getExtension() {\r\n\t\treturn this.encoderFormat;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/DoubleArrayReaderWriter.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.io.BufferedWriter;\r\nimport java.io.FileWriter;\r\nimport java.io.IOException;\r\nimport java.util.List;\r\n\r\npublic class DoubleArrayReaderWriter implements ObjectReader<double[][]>, ObjectWriter<double[][]> {\r\n\tprivate static final DoubleArrayReaderWriter instance = new DoubleArrayReaderWriter();\r\n\r\n\tprivate DoubleArrayReaderWriter() {}\r\n\r\n\tpublic static DoubleArrayReaderWriter getInstance() {\r\n\t\treturn instance;\r\n\t}\r\n\r\n\tpublic double[][] importFromFile(String path) throws IOException {\r\n\t\tdouble[][] matrix = null;\r\n\t\ttry {\r\n\t\t\tList<double[]> rows = FileIOUtility.readNumericCSVFile(path, \",\");\r\n\t\t\tint n = rows.size();\r\n\t\t\tmatrix = new double[n][];\r\n\t\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\t\tmatrix[i] = rows.get(i);\r\n\t\t\t}\r\n\r\n\t\t\treturn matrix;\r\n\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tpublic String getExtension() {\r\n\t\treturn \"csv\";\r\n\t}\r\n\r\n\tpublic void writeToFile(double[][] object, String path) throws IOException {\r\n\t\tBufferedWriter writer = null;\r\n\t\ttry {\r\n\t\t\twriter = new BufferedWriter(new FileWriter(path, false));\r\n\t\t\t\r\n\t\t\tfor (double[] row: object) {\r\n\t\t\t\tfor (int i = 0; i < row.length; i++) {\r\n\t\t\t\t\tif (i > 0) {\r\n\t\t\t\t\t\twriter.write(\",\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\twriter.write(Double.toString(row[i]));\r\n\t\t\t\t}\r\n\t\t\t\twriter.newLine();\r\n\t\t\t}\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\tif (writer != null) {\r\n\t\t\t\twriter.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/FileIOUtility.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.awt.image.BufferedImage;\r\nimport java.io.BufferedOutputStream;\r\nimport java.io.BufferedReader;\r\nimport java.io.BufferedWriter;\r\nimport java.io.File;\r\nimport java.io.FileInputStream;\r\nimport java.io.FileOutputStream;\r\nimport java.io.FileReader;\r\nimport java.io.FileWriter;\r\nimport java.io.IOException;\r\nimport java.io.ObjectInputStream;\r\nimport java.io.ObjectOutputStream;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport com.sun.media.jai.codec.ImageCodec;\r\nimport com.sun.media.jai.codec.ImageEncoder;\r\n\r\n\r\n/**\r\n * This class contains various static functions for reading and writing files of\r\n * different types.\r\n * \r\n * @author Tim Harrington\r\n * @author Andrew Tausz\r\n * \r\n */\r\npublic class FileIOUtility {\r\n\r\n\t/**\r\n\t * Saves a BufferedImage stream in PNG format.\r\n\t * \r\n\t * @param image  the buffered image to save to disk\r\n\t * @param filePath the file to save the image file in\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static void saveImage(BufferedImage image, String filePath) throws IOException {\r\n\t\tBufferedOutputStream out = null;\r\n\t\tImageEncoder encoder;\r\n\t\ttry {\r\n\t\t\tout = new BufferedOutputStream(new FileOutputStream(filePath));\r\n\t\t\tencoder = ImageCodec.createImageEncoder(\"PNG\", out, null);\r\n\t\t\tencoder.encode(image);\r\n\t\t} catch (IOException e) {\r\n\t\t\tthrow e;\r\n\t\t} finally {\r\n\t\t\tif (out != null) {\r\n\t\t\t\tout.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function saves a string to a text file.\r\n\t * \r\n\t * @param filePath the path of the file to write to\r\n\t * @param contents a string holding the contents to write\r\n\t * @param append if true, then the file will be appended to\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static void writeTextFile(String filePath, String contents, boolean append) throws IOException {\r\n\t\tBufferedWriter writer = null;\r\n\t\ttry {\r\n\t\t\twriter = new BufferedWriter(new FileWriter(filePath, append));\r\n\t\t\twriter.write(contents);\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\tif (writer != null) {\r\n\t\t\t\twriter.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function reads a CSV file and outputs the values into a Table\r\n\t * object. The format of the file is as follows: [<Title>] [<Heading1, ...,\r\n\t * HeadingN>] <Entry11, ..., Entry1N> <EntryM1, ..., EntryMN>\r\n\t * \r\n\t * The input argument readTitle should be true if and only if the file\r\n\t * contains a title on its first line. The input argument readHeadings\r\n\t * should be true if and only if the file contains the column headings on\r\n\t * the file just before the first data row.\r\n\t * \r\n\t * Columns are assumed to be separated by the specified separator, and rows\r\n\t * are assumed to be separated by a newline.\r\n\t * \r\n\t * @param filename\r\n\t *            the filename of the file to read from\r\n\t * @param separator\r\n\t *            the separator between columns\r\n\t * @param readTitle\r\n\t *            should be true iff the file contains a title\r\n\t * @param readHeadings\r\n\t *            should be true iff the file contains the column headings\r\n\t * @return a Table object containing the contents of the file\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static Table readCSVFile(String filename, String separator, boolean readTitle, boolean readHeadings) throws IOException {\r\n\t\tBufferedReader reader = null;\r\n\t\tString line = null;\r\n\t\tString[] entries = null;\r\n\t\tTable table = null;\r\n\t\ttry {\r\n\t\t\treader = new BufferedReader(new FileReader(filename));\r\n\t\t\ttable = new Table();\r\n\r\n\t\t\t// read the title if necessary\r\n\t\t\tif (readTitle) {\r\n\t\t\t\tline = reader.readLine();\r\n\t\t\t\ttable.setTitle(line);\r\n\t\t\t}\r\n\r\n\t\t\t// read the column headings if necessary\r\n\t\t\tif (readHeadings) {\r\n\t\t\t\t// get the line containing the column headings\r\n\t\t\t\tline = reader.readLine();\r\n\t\t\t\t// split the line into the individual headings\r\n\t\t\t\tString[] headings = line.split(separator);\r\n\t\t\t\t// add the headings to the table\r\n\t\t\t\tfor (String heading : headings) {\r\n\t\t\t\t\ttable.addColumn(heading.trim());\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// read the first data line\r\n\t\t\t\tline = reader.readLine();\r\n\t\t\t\t// split the line into the individual tokens\r\n\t\t\t\tentries = line.split(separator);\r\n\t\t\t\t// add generic headings to the table\r\n\t\t\t\tfor (int headingIndex = 0; headingIndex < entries.length; headingIndex++) {\r\n\t\t\t\t\ttable.addColumn(\"Column_\" + headingIndex);\r\n\t\t\t\t}\r\n\t\t\t\t// add the data to the table\r\n\t\t\t\ttable.addRow(entries, true);\r\n\t\t\t}\r\n\r\n\t\t\t// continue reading the data\r\n\t\t\twhile ((line = reader.readLine()) != null) {\r\n\t\t\t\t// split the line into the individual tokens\r\n\t\t\t\tentries = line.split(separator);\r\n\t\t\t\t// add the data to the table\r\n\t\t\t\ttable.addRow(entries, true);\r\n\t\t\t}\r\n\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\t// close the reader if necessary\r\n\t\t\tif (reader != null) {\r\n\t\t\t\treader.close();\r\n\t\t\t}\r\n\t\t}\r\n\t\t// return the created table\r\n\t\treturn table;\r\n\t}\r\n\r\n\tpublic static List<double[]> readNumericCSVFile(String filename, String separator) throws IOException {\r\n\t\tBufferedReader reader = null;\r\n\t\tString line = null;\r\n\t\tString[] entries = null;\r\n\t\tList<double[]> contents = null;\r\n\t\ttry {\r\n\t\t\treader = new BufferedReader(new FileReader(filename));\r\n\t\t\tcontents = new ArrayList<double[]>();\r\n\r\n\t\t\t// continue reading the data\r\n\t\t\twhile ((line = reader.readLine()) != null) {\r\n\t\t\t\t// split the line into the individual tokens\r\n\t\t\t\tentries = line.split(separator);\r\n\r\n\t\t\t\tdouble[] row = new double[entries.length];\r\n\t\t\t\tfor (int j = 0; j < entries.length; j++) {\r\n\t\t\t\t\trow[j] = Double.parseDouble(entries[j]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontents.add(row);\r\n\t\t\t}\r\n\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\t// close the reader if necessary\r\n\t\t\tif (reader != null) {\r\n\t\t\t\treader.close();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn contents;\r\n\t}\r\n\r\n\t/**\r\n\t * Try to save an object for quick reloading later.\r\n\t * \r\n\t * @throws Exception\r\n\t */\r\n\tpublic static void serializeObject(Object obj, String destPath) throws IOException {\r\n\t\tif (obj == null) {\r\n\t\t\tthrow new IllegalArgumentException(\"Cannot serialize a null object.\");\r\n\t\t}\r\n\t\tFileOutputStream f;\r\n\t\tObjectOutputStream s = null;\r\n\t\ttry {\r\n\t\t\tf = new FileOutputStream(destPath, false);\r\n\t\t\ts = new ObjectOutputStream(f);\r\n\t\t\ts.writeObject(obj);\r\n\t\t\ts.close();\r\n\t\t} catch (IOException e) {\r\n\t\t\tif (s != null) {\r\n\t\t\t\ts.close();\r\n\t\t\t}\r\n\t\t\te.printStackTrace();\r\n\t\t\tthrow e;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @param inputPath\r\n\t * @return a deserialized object loaded from inputPath\r\n\t * @throws Exception\r\n\t */\r\n\tpublic static Object loadObject(String inputPath) throws IOException {\r\n\t\tObject retval = null;\r\n\t\tif (!(new File(inputPath)).exists()) {\r\n\t\t\tthrow new IllegalStateException(\"Input file (\" + inputPath + \") does not exist\");\r\n\t\t}\r\n\t\tFileInputStream f;\r\n\t\tObjectInputStream o = null;\r\n\t\ttry {\r\n\t\t\tf = new FileInputStream(inputPath);\r\n\t\t\to = new ObjectInputStream(f);\r\n\t\t\tretval = o.readObject();\r\n\t\t\to.close();\r\n\t\t\treturn retval;\r\n\t\t} catch (IOException e) {\r\n\t\t\tthrow e;\r\n\t\t} catch (ClassNotFoundException e) {\r\n\t\t\tthrow new IOException();\r\n\t\t} finally {\r\n\t\t\tif (o != null) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\to.close();\r\n\t\t\t\t} catch (IOException e1) {\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/FileManager.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.io.File;\r\nimport java.io.IOException;\r\nimport java.text.SimpleDateFormat;\r\nimport java.util.Date;\r\nimport java.util.HashMap;\r\nimport java.util.Map;\r\n\r\n/**\r\n * This class returns canonical paths so that they are in the appropriate format\r\n * for the OS in use (e.g. / in linux vs. \\ in windows).\r\n * \r\n * We use the following terminology:\r\n * \r\n * Base output path: \"./data/runs\" \r\n * Daily output path: \"./data/runs/yyMMdd\" \r\n * Unique output path: \"./data/runs/yyMMdd/HHmmssSSS\" \r\n * Category output path: \"./data/runs/yyMMdd/<category>\" \r\n * Unique Category output path: \".data/runs/yyMMdd/<category>/HHmmssSSS\"\r\n * \r\n * With regard to filenames we use the following terminology:\r\n * \r\n * Suppose we have the file \"output.txt\", the basename is \"output\",\r\n * the extention is \"txt\" and the filename is \"output.txt\". We call the\r\n * filepath its path along with the filename, e.g. \r\n * \"./data/runs/yyMMdd/cat1/output.txt\".\r\n * \r\n * @author Andrew Tausz\r\n * @author Tim Harrington\r\n */\r\npublic class FileManager {\r\n\t// the base output path as defined above: \".data/runs\"\r\n\tprivate static String baseOutputPath = \"data/runs\";\r\n\r\n\t// the daily output path as defined above: \".data/runs/yyMMdd/\"\r\n\tprivate static String dailyOutputPath = \"\";\r\n\r\n\t// this hashtable maps categories to their \"Category output path\"\r\n\t// e.g. key = \"sampledata\", value = \".data/runs/yyMMdd/sampledata/\"\r\n\tprivate static Map<String, String> categoryOutputPaths = new HashMap<String, String>();\r\n\r\n\t// the wait time to prevent duplicate unique category output paths from\r\n\t// being created\r\n\tprivate static final long waitTime = 100;\r\n\r\n\tprivate FileManager() {\r\n\t\t// do not allow this to be constructed\r\n\t}\r\n\r\n\tpublic static String getUniqueFilePath(String basename, String extention) throws IOException {\r\n\t\treturn FileManager.getDailyOutputPath() + System.getProperty(\"file.separator\") + basename + \".\" + extention;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the base output path.\r\n\t * \r\n\t * @return the base output path\r\n\t */\r\n\tpublic static String getBaseOutputPath() {\r\n\t\treturn FileManager.baseOutputPath + System.getProperty(\"file.separator\");\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the daily output path. It is of the form\r\n\t * \"<base output path>/yyMMdd/\".\r\n\t * \r\n\t * @return the daily output path\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static String getDailyOutputPath() throws IOException {\r\n\t\tif (FileManager.dailyOutputPath == \"\") {\r\n\t\t\tFileManager.initializeDailyOutputPath();\r\n\t\t}\r\n\t\treturn FileManager.dailyOutputPath + System.getProperty(\"file.separator\");\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a unique output path. It is of the form\r\n\t * \"<base output path>/yyMMdd/HHmmssSSS/\".\r\n\t * \r\n\t * @return a unique output path\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static String getUniqueOutputPath() throws IOException {\r\n\t\tString timeStamp = FileManager.getTimeStamp();\r\n\t\tString uniqueCategoryOutputPath = FileManager.createDirectory(getDailyOutputPath() + timeStamp);\r\n\t\tFileManager.pause();\r\n\t\treturn uniqueCategoryOutputPath + System.getProperty(\"file.separator\");\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the category output path. It is of the form\r\n\t * \"<base output path>/yyMMdd/<category>/\".\r\n\t * \r\n\t * @param category\r\n\t *            the name of the category\r\n\t * @return the canonical path of the category output path\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static String getCategoryOutputPath(String category) throws IOException {\r\n\t\tif (!FileManager.categoryOutputPaths.containsKey(category)) {\r\n\t\t\tFileManager.initializeCategoryOutputPath(category);\r\n\t\t}\r\n\t\treturn FileManager.categoryOutputPaths.get(category) + System.getProperty(\"file.separator\");\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a unique category output path for the specified\r\n\t * category. It is of the form\r\n\t * \"<base output path>/yyMMdd/<category>/HHmmssSSS\"\r\n\t * \r\n\t * @param category\r\n\t *            the name of the category\r\n\t * @return the canonical path of the unique category output path\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static String getUniqueCategoryOutputPath(String category) throws IOException {\r\n\t\tString categoryOutputPath = FileManager.getCategoryOutputPath(category);\r\n\t\tString timeStamp = FileManager.getTimeStamp();\r\n\t\tString uniqueCategoryOutputPath = FileManager.createDirectory(categoryOutputPath + timeStamp);\r\n\t\tFileManager.pause();\r\n\t\treturn uniqueCategoryOutputPath + System.getProperty(\"file.separator\");\r\n\t}\r\n\r\n\t/**\r\n\t * This method creates a directory with path directoryPath.\r\n\t * \r\n\t * This method is fail safe (i.e. it sets the path fields only if the\r\n\t * directory is successfully created or if it already exists).\r\n\t * \r\n\t * @param directoryPath\r\n\t *            the path of the directory to create\r\n\t * @return the canonical path of the directory created\r\n\t * @throws IOException\r\n\t */\r\n\tprivate static String createDirectory(String directoryPath) throws IOException {\r\n\t\tboolean directoryCreated = false;\r\n\t\tFile directory = new File(directoryPath);\r\n\t\tdirectoryCreated = directory.isDirectory() || directory.mkdirs();\r\n\t\tif (!directoryCreated) {\r\n\t\t\tthrow new IOException(\"Could not create directory: \" + directoryPath);\r\n\t\t}\r\n\t\treturn directory.getCanonicalPath() + System.getProperty(\"file.separator\");\r\n\t}\r\n\r\n\t/**\r\n\t * This function initializes the daily output path as defined above.\r\n\t * \r\n\t * @throws IOException\r\n\t */\r\n\tprivate static void initializeDailyOutputPath() throws IOException {\r\n\t\tSimpleDateFormat formatter = new SimpleDateFormat(\"yy-MM-dd\");\r\n\t\tString dateString = formatter.format(new Date());\r\n\t\tFileManager.dailyOutputPath = FileManager.createDirectory(getBaseOutputPath() + dateString);\r\n\t}\r\n\r\n\t/**\r\n\t * This function initializes the category output path as defined above.\r\n\t * \r\n\t * @param category\r\n\t *            the name of the category\r\n\t * @throws IOException\r\n\t */\r\n\tprivate static void initializeCategoryOutputPath(String category) throws IOException {\r\n\t\tString outputPath = FileManager.createDirectory(getDailyOutputPath() + category);\r\n\t\tFileManager.categoryOutputPaths.put(category, outputPath);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a string containing the current time in HHmmssSSS\r\n\t * format.\r\n\t * \r\n\t * @return a timestamp in HHmmssSSS format\r\n\t */\r\n\tprivate static String getTimeStamp() {\r\n\t\tSimpleDateFormat formatter = new SimpleDateFormat(\"HH-mm-ss-SSS\");\r\n\t\treturn formatter.format(new Date());\r\n\t}\r\n\r\n\t/**\r\n\t * This function pauses the current thread. It is used to ensure that\r\n\t * directories created in rapid succession do not have the same names.\r\n\t */\r\n\tprivate static void pause() {\r\n\t\ttry {\r\n\t\t\tThread.sleep(waitTime);\r\n\t\t} catch (InterruptedException exception) {\r\n\t\t\texception.printStackTrace();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function creates a unique filename. It is actually of the form\r\n\t * yyMMddHHmmssSSS. The filename does not have any extension.\r\n\t * \r\n\t * @return a filename of the form yyMMddHHmmssSSS\r\n\t */\r\n\tpublic static String generateUniqueFileName() {\r\n\t\tSimpleDateFormat formatter = new SimpleDateFormat(\"yy-MM-dd-HH-mm-ss-SSS\");\r\n\t\tString name = formatter.format(new Date());\r\n\t\tFileManager.pause();\r\n\t\treturn name;\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/MatlabInterface.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.io.IOException;\r\n\r\nimport cern.colt.matrix.DoubleMatrix2D;\r\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayMath;\r\n\r\n/**\r\n * This class has static methods for creating Matlab files to visualize data.\r\n * \r\n * @author Andrew Tausz\r\n */\r\n\r\npublic class MatlabInterface{\r\n\r\n\tprotected static String getDefaultExtension() {\r\n\t\treturn \"m\";\r\n\t}\r\n\r\n\t/**\r\n\t * This function creates and returns a new MatlabWriter.\r\n\t * \r\n\t * @param label\r\n\t *            a keyword for the filename\r\n\t * @return a new MatlabWriter ready to use\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static MatlabWriter makeNewMatlabWriter(String label) throws IOException {\r\n\t\tString filename = FileManager.getUniqueFilePath(label, getDefaultExtension());\r\n\t\tMatlabWriter writer = new MatlabWriter(filename);\r\n\t\treturn writer;\r\n\t}\r\n\r\n\t/**\r\n\t * This function cleans up a MatlabWriter when it is no longer in use.\r\n\t * \r\n\t * @param writer\r\n\t *            the MatlabWriter to clean up\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static void finalizeMatlabWriter(MatlabWriter writer) throws IOException {\r\n\t\twriter.close();\r\n\t}\r\n\r\n\t/**\r\n\t * This function writes the commands to create a scatter plot of the data in\r\n\t * the supplied matrix. The matrix is assumed to have two columns, so that\r\n\t * each row represents an (x, y) pair.\r\n\t * \r\n\t * @param writer\r\n\t *            the MatlabWriter to write to\r\n\t * @param values\r\n\t *            an n x 2 matrix containing the data to plot\r\n\t * @param name\r\n\t *            the variable name to write to\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static void exportScatterPlot2D(MatlabWriter writer, DoubleMatrix2D values, String name) throws IOException {\r\n\t\tExceptionUtility.verifyGreaterThanOrEqual(values.columns(), 2);\r\n\t\twriter.writeMatrix(values, name);\r\n\t\twriter.newLine();\r\n\t\twriter.write(\"plot(\" + name + \"(:, 1), \" + name + \"(:, 2), '\" + writer.getNextColor() + writer.getNextMarker() + \"');\");\r\n\t\twriter.newLine();\r\n\t}\r\n\r\n\t/**\r\n\t * This function writes the commands to create a 3-D scatter plot of the\r\n\t * data in the supplied matrix. The data is assumed to have three columns,\r\n\t * so that each row represents an (x, y, z) triple.\r\n\t * \r\n\t * @param writer\r\n\t *            the MatlabWriter to write to\r\n\t * @param values\r\n\t *            an n x 3 matrix containing the data to plot\r\n\t * @param name\r\n\t *            the variable name to write to\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static void exportScatterPlot3D(MatlabWriter writer, DoubleMatrix2D values, String name) throws IOException {\r\n\t\tExceptionUtility.verifyGreaterThanOrEqual(values.columns(), 3);\r\n\t\twriter.writeMatrix(values, name);\r\n\t\twriter.newLine();\r\n\t\twriter.write(\"plot3(\" + name + \"(:, 1), \" + name + \"(:, 2), \" + name + \"(:, 3), '\" + writer.getNextColor() + writer.getNextMarker() + \"');\");\r\n\t\twriter.newLine();\r\n\t}\r\n\r\n\t/**\r\n\t * This function writes the commands to create a scatter plot of the data in\r\n\t * the supplied matrix. The matrix is assumed to have two columns, so that\r\n\t * each row represents an (x, y) pair. Additionally the points are plotted\r\n\t * with different markers and colors for each class.\r\n\t * \r\n\t * @param writer\r\n\t *            the MatlabWriter to write to\r\n\t * @param values\r\n\t *            an n x 3 matrix containing the data to plot\r\n\t * @param name\r\n\t *            the variable name to write to\r\n\t * @param labels\r\n\t *            the classes for each data point\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static void exportScatterPlot2D(MatlabWriter writer, DoubleMatrix2D values, String name, int[] labels) throws IOException {\r\n\t\tExceptionUtility.verifyGreaterThanOrEqual(values.columns(), 2);\r\n\t\tint maxLabel = IntArrayMath.max(labels);\r\n\t\tint minLabel = IntArrayMath.min(labels);\r\n\t\twriter.writeMatrix(values, name);\r\n\t\twriter.newLine();\r\n\t\twriter.writeRowVector(labels, \"labels\");\r\n\t\twriter.newLine();\r\n\t\twriter.newPlotWindow();\r\n\t\twriter.holdOn();\r\n\t\tfor (int label = minLabel; label <= maxLabel; label++) {\r\n\t\t\twriter.write(\"[r, c, v] = find(labels == \" + label + \");\");\r\n\t\t\twriter.newLine();\r\n\t\t\twriter.write(\"plot(\" + name + \"(c, 1), \" + name + \"(c, 2), '\" + writer.getColorCode(label) + writer.getMarkerStyle(label) + \"');\");\r\n\t\t\twriter.newLine();\r\n\t\t}\r\n\t\twriter.holdOff();\r\n\t}\r\n\r\n\t/**\r\n\t * This function writes the commands to create a 3-D scatter plot of the\r\n\t * data in the supplied matrix. The data is assumed to have three columns,\r\n\t * so that each row represents an (x, y, z) triple. Additionally the points\r\n\t * are plotted with different markers and colors for each class.\r\n\t * \r\n\t * @param writer\r\n\t *            the MatlabWriter to write to\r\n\t * @param values\r\n\t *            an n x 3 matrix containing the data to plot\r\n\t * @param name\r\n\t *            the variable name to write to\r\n\t * @param labels\r\n\t *            the classes for each data point\r\n\t * @throws IOException\r\n\t */\r\n\tpublic static void exportScatterPlot3D(MatlabWriter writer, DoubleMatrix2D values, String name, int[] labels) throws IOException {\r\n\t\tExceptionUtility.verifyGreaterThanOrEqual(values.columns(), 3);\r\n\t\tint maxLabel = IntArrayMath.max(labels);\r\n\t\tint minLabel = IntArrayMath.min(labels);\r\n\t\twriter.writeMatrix(values, name);\r\n\t\twriter.newLine();\r\n\t\twriter.writeRowVector(labels, \"labels\");\r\n\t\twriter.newLine();\r\n\t\twriter.newPlotWindow();\r\n\t\twriter.holdOn();\r\n\t\tfor (int label = minLabel; label <= maxLabel; label++) {\r\n\t\t\twriter.write(\"[r, c, v] = find(labels == \" + label + \");\");\r\n\t\t\twriter.newLine();\r\n\t\t\twriter.write(\"plot3(\" + name + \"(c, 1), \" + name + \"(c, 2), \" + name + \"(c, 3), '\" + writer.getColorCode(label) + writer.getMarkerStyle(label) + \"');\");\r\n\t\t\twriter.newLine();\r\n\t\t}\r\n\t\twriter.holdOff();\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/MatlabWriter.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.io.BufferedWriter;\r\nimport java.io.FileWriter;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport cern.colt.matrix.DoubleMatrix1D;\r\nimport cern.colt.matrix.DoubleMatrix2D;\r\n\r\n/**\r\n * This class encapsulates writing to Matlab files. It contains functions for\r\n * basic output (e.g. comments), as well as the output of numerous mathematical\r\n * objects.\r\n * \r\n * Important Note: The user must call close in order to flush the output to the\r\n * file.\r\n * \r\n * @author Andrew Tausz\r\n * \r\n */\r\npublic class MatlabWriter {\r\n\t// BufferedWriter object does the actual writing\r\n\tprivate BufferedWriter out = null;\r\n\t// the boolean commentMode indicates whether comments are being written\r\n\tprivate boolean commentMode = false;\r\n\r\n\t// maps for plot styles, color and markers\r\n\tprivate String[] markerMap = new String[] { \"+\", \"o\", \"*\", \".\", \"x\", \"s\", \"d\", \"^\", \"v\", \">\", \"<\", \"p\", \"h\" };\r\n\tprivate String[] colorMap = new String[] { \"r\", \"g\", \"b\", \"c\", \"m\", \"y\", \"k\" };\r\n\tprivate String[] styleMap = new String[] { \"-\", \"--\", \":\", \"-.\" };\r\n\r\n\tprivate int markerIndex = 0;\r\n\tprivate int colorIndex = 0;\r\n\tprivate int styleIndex = 0;\r\n\r\n\t/**\r\n\t * This constructor initializes the class to be ready to write to the file\r\n\t * with the filename provided.\r\n\t * \r\n\t * @param filename\r\n\t *            the file to write to\r\n\t * @throws IOException\r\n\t */\r\n\tpublic MatlabWriter(String filename) throws IOException {\r\n\t\tthis.out = new BufferedWriter(new FileWriter(filename));\r\n\t}\r\n\r\n\t/**\r\n\t * This function flushes the output stream and closes it.\r\n\t * \r\n\t * @throws IOException\r\n\t */\r\n\tpublic void close() throws IOException {\r\n\t\tthis.out.close();\r\n\t}\r\n\r\n\t/**\r\n\t * This function turns on the comment mode, meaning that any output will be\r\n\t * written as a comment and not Matlab code.\r\n\t */\r\n\tpublic void turnOnCommentMode() {\r\n\t\tthis.commentMode = true;\r\n\t}\r\n\r\n\t/**\r\n\t * This function turns off the comment mode. Thus any output will be written\r\n\t * as actual Matlab code.\r\n\t */\r\n\tpublic void turnOffCommentMode() {\r\n\t\tthis.commentMode = false;\r\n\t}\r\n\r\n\t/**\r\n\t * This function modifies the input string so that it will be properly\r\n\t * printed as a comment in Matlab.\r\n\t * \r\n\t * @param input\r\n\t * @throws IOException\r\n\t */\r\n\tprotected String insertComments(String input) throws IOException {\r\n\t\tif (this.commentMode) {\r\n\t\t\tString result = input;\r\n\t\t\tresult = \"% \" + result.replaceAll(\"\\n\", \"\\n% \");\r\n\t\t\treturn result;\r\n\t\t} else {\r\n\t\t\treturn input;\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic void writeClearAll() throws IOException {\r\n\t\tthis.out.write(\"clc; clear; close all;\\n\");\r\n\t}\r\n\t\r\n\tpublic void assignValue(String varName, double value) throws IOException {\r\n\t\tthis.out.write(varName + \" = \" + value + \";\");\r\n\t}\r\n\t\r\n\tpublic void assignValue(String varName, int value) throws IOException {\r\n\t\tthis.out.write(varName + \" = \" + value + \";\");\r\n\t}\r\n\r\n\t/**\r\n\t * This function writes a string to the file. If comment mode is turned on,\r\n\t * then the string is written as a comment.\r\n\t * \r\n\t * @param string\r\n\t *            the string to output\r\n\t * @throws IOException\r\n\t */\r\n\tpublic void write(String string) throws IOException {\r\n\t\tthis.out.write(insertComments(string));\r\n\t}\r\n\t\r\n\tpublic void writeLine(String string) throws IOException {\r\n\t\tthis.out.write(insertComments(string));\r\n\t\tthis.newLine();\r\n\t}\r\n\r\n\t/**\r\n\t * This function outputs a new line to the file.\r\n\t * \r\n\t * @throws IOException\r\n\t */\r\n\tpublic void newLine() throws IOException {\r\n\t\tthis.out.newLine();\r\n\t}\r\n\r\n\t/**\r\n\t * This function begins a new cell in the Matlab file.\r\n\t * \r\n\t * @param label\r\n\t *            the label of the cell\r\n\t * @throws IOException\r\n\t */\r\n\tpublic void startNewCell(String label) throws IOException {\r\n\t\tthis.out.write(\"%% \" + label);\r\n\t}\r\n\r\n\tpublic void newPlotWindow() throws IOException {\r\n\t\tthis.write(\"figure;\");\r\n\t\tthis.newLine();\r\n\t}\r\n\r\n\tpublic void holdOn() throws IOException {\r\n\t\tthis.write(\"hold on;\");\r\n\t\tthis.newLine();\r\n\t}\r\n\r\n\tpublic void holdOff() throws IOException {\r\n\t\tthis.write(\"hold off;\");\r\n\t\tthis.newLine();\r\n\t}\r\n\r\n\tpublic void gridOn() throws IOException {\r\n\t\tthis.write(\"grid on;\");\r\n\t\tthis.newLine();\r\n\t}\r\n\r\n\tpublic void gridOff() throws IOException {\r\n\t\tthis.write(\"grid off;\");\r\n\t\tthis.newLine();\r\n\t}\r\n\r\n\tpublic String getMarkerStyle(int index) {\r\n\t\treturn markerMap[index % markerMap.length];\r\n\t}\r\n\r\n\tpublic String getColorCode(int index) {\r\n\t\treturn colorMap[index % colorMap.length];\r\n\t}\r\n\r\n\tpublic String getLineStyle(int index) {\r\n\t\treturn styleMap[index % styleMap.length];\r\n\t}\r\n\r\n\tpublic String getNextMarker() {\r\n\t\treturn this.getMarkerStyle(this.markerIndex++);\r\n\t}\r\n\r\n\tpublic String getNextColor() {\r\n\t\treturn this.getColorCode(this.colorIndex++);\r\n\t}\r\n\r\n\tpublic String getNextLineStyle() {\r\n\t\treturn this.getLineStyle(this.styleIndex++);\r\n\t}\r\n\r\n\t/*\r\n\t * Vector to Stream\r\n\t */\r\n\r\n\tpublic void writeRowVector(DoubleMatrix1D array, String name) throws IOException {\r\n\t\tthis.write(toRowVector(array, name));\r\n\t}\r\n\r\n\tpublic void writeColumnVector(DoubleMatrix1D array, String name) throws IOException {\r\n\t\tthis.write(toColumnVector(array, name));\r\n\t}\r\n\r\n\tpublic void writeRowVector(DoubleMatrix1D array) throws IOException {\r\n\t\tthis.write(toRowVector(array));\r\n\t}\r\n\r\n\tpublic void writeColumnVector(DoubleMatrix1D array) throws IOException {\r\n\t\tthis.write(toColumnVector(array));\r\n\t}\r\n\r\n\tpublic void writeRowVector(double[] array, String name) throws IOException {\r\n\t\tthis.write(toRowVector(array, name));\r\n\t}\r\n\r\n\tpublic void writeColumnVector(double[] array, String name) throws IOException {\r\n\t\tthis.write(toColumnVector(array, name));\r\n\t}\r\n\r\n\tpublic void writeRowVector(double[] array) throws IOException {\r\n\t\tthis.write(toRowVector(array));\r\n\t}\r\n\r\n\tpublic void writeColumnVector(double[] array) throws IOException {\r\n\t\tthis.write(toColumnVector(array));\r\n\t}\r\n\r\n\tpublic void writeRowVector(int[] array, String name) throws IOException {\r\n\t\tthis.write(toRowVector(array, name));\r\n\t}\r\n\r\n\tpublic void writeColumnVector(int[] array, String name) throws IOException {\r\n\t\tthis.write(toColumnVector(array, name));\r\n\t}\r\n\r\n\tpublic void writeRowVector(int[] array) throws IOException {\r\n\t\tthis.write(toRowVector(array));\r\n\t}\r\n\r\n\tpublic void writeColumnVector(int[] array) throws IOException {\r\n\t\tthis.write(toColumnVector(array));\r\n\t}\r\n\t\r\n\tpublic <T> void writeRowVector(Iterable<T> collection) throws IOException {\r\n\t\tthis.write(toRowVector(collection));\r\n\t}\r\n\t\r\n\tpublic <T> void writeColumnVector(Iterable<T> collection) throws IOException {\r\n\t\tthis.write(toColumnVector(collection));\r\n\t}\r\n\t\r\n\tpublic <T> void writeRowVector(Iterable<T> collection, String name) throws IOException {\r\n\t\tthis.write(toRowVector(collection, name));\r\n\t}\r\n\r\n\tpublic <T> void writeColumnVector(Iterable<T> collection, String name) throws IOException {\r\n\t\tthis.write(toColumnVector(collection, name));\r\n\t}\r\n\r\n\t/*\r\n\t * Matrix to Stream\r\n\t */\r\n\r\n\tpublic void writeMatrix(DoubleMatrix2D matrix, String name) throws IOException {\r\n\t\tthis.out.write(name + \" = \");\r\n\t\tthis.out.write(\"[\");\r\n\t\tfor (int i = 0; i < matrix.rows(); i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tthis.out.write(\";\\n\");\r\n\t\t\t}\r\n\t\t\tfor (int j = 0; j < matrix.columns(); j++) {\r\n\t\t\t\tif (j > 0) {\r\n\t\t\t\t\tthis.out.write(\", \");\r\n\t\t\t\t}\r\n\t\t\t\tthis.out.write(Double.toString(matrix.getQuick(i, j)));\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.out.write(\"];\");\r\n\t}\r\n\r\n\tpublic void writeMatrix(DoubleMatrix2D matrix) throws IOException {\r\n\t\tthis.out.write(\"[\");\r\n\t\tfor (int i = 0; i < matrix.rows(); i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tthis.out.write(\";\\n\");\r\n\t\t\t}\r\n\t\t\tfor (int j = 0; j < matrix.columns(); j++) {\r\n\t\t\t\tif (j > 0) {\r\n\t\t\t\t\tthis.out.write(\", \");\r\n\t\t\t\t}\r\n\t\t\t\tthis.out.write(Double.toString(matrix.getQuick(i, j)));\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.out.write(\"];\");\r\n\t}\r\n\t\r\n\tpublic void writeSparseMatrix(double[][] matrix, String name) throws IOException {\r\n\t\tthis.out.write(\"tmp_m = \" + matrix.length + \";\\n\");\r\n\t\tthis.out.write(\"tmp_n = \" + matrix[0].length + \";\\n\");\r\n\t\tList<Integer> _tmp_i = new ArrayList<Integer>();\r\n\t\tList<Integer> _tmp_j = new ArrayList<Integer>();\r\n\t\tList<Double> _tmp_s = new ArrayList<Double>();\r\n\t\tfor (int i = 0; i < matrix.length; i++) {\r\n\t\t\tfor (int j = 0; j < matrix[i].length; j++) {\r\n\t\t\t\tif (matrix[i][j] != 0) {\r\n\t\t\t\t\t_tmp_i.add(i + 1);\r\n\t\t\t\t\t_tmp_j.add(j + 1);\r\n\t\t\t\t\t_tmp_s.add(matrix[i][j]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tthis.writeRowVector(_tmp_i, \"tmp_i\");\r\n\t\tthis.newLine();\r\n\t\tthis.writeRowVector(_tmp_j, \"tmp_j\");\r\n\t\tthis.newLine();\r\n\t\tthis.writeRowVector(_tmp_s, \"tmp_s\");\r\n\t\tthis.newLine();\r\n\t\tthis.out.write(name + \" = sparse(tmp_i, tmp_j, tmp_s, tmp_m, tmp_n);\");\r\n\t\tthis.newLine();\r\n\t}\r\n\t\r\n\tpublic void writeSparseVector(double[] matrix, String name) throws IOException {\r\n\t\tthis.out.write(\"tmp_m = \" + matrix.length + \";\\n\");\r\n\t\tthis.out.write(\"tmp_n = \" + 1 + \";\\n\");\r\n\t\tList<Integer> _tmp_i = new ArrayList<Integer>();\r\n\t\tList<Integer> _tmp_j = new ArrayList<Integer>();\r\n\t\tList<Double> _tmp_s = new ArrayList<Double>();\r\n\t\tfor (int i = 0; i < matrix.length; i++) {\r\n\t\t\tif (matrix[i] != 0) {\r\n\t\t\t\t_tmp_i.add(i + 1);\r\n\t\t\t\t_tmp_j.add(1);\r\n\t\t\t\t_tmp_s.add(matrix[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tthis.writeRowVector(_tmp_i, \"tmp_i\");\r\n\t\tthis.newLine();\r\n\t\tthis.writeRowVector(_tmp_j, \"tmp_j\");\r\n\t\tthis.newLine();\r\n\t\tthis.writeRowVector(_tmp_s, \"tmp_s\");\r\n\t\tthis.newLine();\r\n\t\tthis.out.write(name + \" = sparse(tmp_i, tmp_j, tmp_s, tmp_m, tmp_n);\");\r\n\t\tthis.newLine();\r\n\t}\r\n\r\n\tpublic void writeMatrix(double[][] matrix, String name) throws IOException {\r\n\t\tthis.write(toMatrix(matrix, name));\r\n\t}\r\n\r\n\tpublic void writeMatrix(double[][] matrix) throws IOException {\r\n\t\tthis.write(toMatrix(matrix));\r\n\t}\r\n\r\n\tpublic void writeMatrix(int[][] matrix, String name) throws IOException {\r\n\t\tthis.write(toMatrix(matrix, name));\r\n\t}\r\n\r\n\tpublic void writeMatrix(int[][] matrix) throws IOException {\r\n\t\tthis.write(toMatrix(matrix));\r\n\t}\r\n\r\n\t/*\r\n\t * Vector to String\r\n\t */\r\n\r\n\tpublic static String toRowVector(DoubleMatrix1D array, String name) {\r\n\t\treturn (name + \" = \" + toVector(array, \", \") + \";\");\r\n\t}\r\n\r\n\tpublic static String toColumnVector(DoubleMatrix1D array, String name) {\r\n\t\treturn (name + \" = \" + toVector(array, \"; \") + \";\");\r\n\t}\r\n\r\n\tpublic static String toRowVector(DoubleMatrix1D array) {\r\n\t\treturn toVector(array, \", \");\r\n\t}\r\n\r\n\tpublic static String toColumnVector(DoubleMatrix1D array) {\r\n\t\treturn toVector(array, \"; \");\r\n\t}\r\n\r\n\tpublic static String toRowVector(int[] array, String name) {\r\n\t\treturn (name + \" = \" + toVector(array, \", \") + \";\");\r\n\t}\r\n\r\n\tpublic static String toColumnVector(int[] array, String name) {\r\n\t\treturn (name + \" = \" + toVector(array, \"; \") + \";\");\r\n\t}\r\n\r\n\tpublic static String toRowVector(int[] array) {\r\n\t\treturn toVector(array, \", \");\r\n\t}\r\n\r\n\tpublic static String toColumnVector(int[] array) {\r\n\t\treturn toVector(array, \"; \");\r\n\t}\r\n\r\n\tpublic static String toRowVector(double[] array, String name) {\r\n\t\treturn (name + \" = \" + toVector(array, \", \") + \";\");\r\n\t}\r\n\r\n\tpublic static String toColumnVector(double[] array, String name) {\r\n\t\treturn (name + \" = \" + toVector(array, \"; \") + \";\");\r\n\t}\r\n\r\n\tpublic static String toRowVector(double[] array) {\r\n\t\treturn toVector(array, \", \");\r\n\t}\r\n\r\n\tpublic static String toColumnVector(double[] array) {\r\n\t\treturn toVector(array, \"; \");\r\n\t}\r\n\t\r\n\tpublic static <T> String toRowVector(Iterable<T> collection, String name) {\r\n\t\treturn (name + \" = \" + toVector(collection, \", \") + \";\");\r\n\t}\r\n\r\n\tpublic static <T> String toColumnVector(Iterable<T> collection, String name) {\r\n\t\treturn (name + \" = \" + toVector(collection, \"; \") + \";\");\r\n\t}\r\n\t\r\n\tpublic static <T> String toRowVector(Iterable<T> collection) {\r\n\t\treturn toVector(collection, \", \");\r\n\t}\r\n\t\r\n\tpublic static <T> String toColumnVector(Iterable<T> collection) {\r\n\t\treturn toVector(collection, \"; \");\r\n\t}\r\n\r\n\t/*\r\n\t * Matrix to String\r\n\t */\r\n\r\n\tpublic static String toMatrix(DoubleMatrix2D matrix, String name) {\r\n\t\treturn (name + \" = \" + toMatrix(matrix) + \";\");\r\n\t}\r\n\r\n\tpublic static String toMatrix(double[][] matrix, String name) {\r\n\t\treturn (name + \" = \" + toMatrix(matrix) + \";\");\r\n\t}\r\n\r\n\tpublic static String toMatrix(int[][] matrix, String name) {\r\n\t\treturn (name + \" = \" + toMatrix(matrix) + \";\");\r\n\t}\r\n\r\n\t/*\r\n\t * Helper functions\r\n\t */\r\n\r\n\tprivate static <T> String toVector(Iterable<T> collection, String separator) {\r\n\t\tStringBuilder stringBuilder = new StringBuilder();\r\n\t\tstringBuilder.append(\"[\");\r\n\t\t\r\n\t\tint i = 0;\r\n\t\tfor (T element : collection) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tstringBuilder.append(separator);\r\n\t\t\t}\r\n\t\t\tstringBuilder.append(element.toString());\r\n\t\t\ti++;\r\n\t\t}\r\n\t\t\r\n\t\tstringBuilder.append(\"]\");\r\n\t\treturn stringBuilder.toString();\r\n\t}\r\n\t\r\n\tprivate static String toVector(int[] array, String separator) {\r\n\t\tStringBuilder stringBuilder = new StringBuilder();\r\n\t\tstringBuilder.append(\"[\");\r\n\t\tfor (int i = 0; i < array.length; i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tstringBuilder.append(separator + array[i]);\r\n\t\t\t} else {\r\n\t\t\t\tstringBuilder.append(array[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tstringBuilder.append(\"]\");\r\n\t\treturn stringBuilder.toString();\r\n\t}\r\n\r\n\tprivate static String toVector(double[] array, String separator) {\r\n\t\tStringBuilder stringBuilder = new StringBuilder();\r\n\t\tstringBuilder.append(\"[\");\r\n\t\tfor (int i = 0; i < array.length; i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tstringBuilder.append(separator + array[i]);\r\n\t\t\t} else {\r\n\t\t\t\tstringBuilder.append(array[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tstringBuilder.append(\"]\");\r\n\t\treturn stringBuilder.toString();\r\n\t}\r\n\r\n\tprivate static String toVector(DoubleMatrix1D array, String separator) {\r\n\t\tStringBuilder stringBuilder = new StringBuilder();\r\n\t\tstringBuilder.append(\"[\");\r\n\t\tfor (int i = 0; i < array.size(); i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tstringBuilder.append(separator + array.getQuick(i));\r\n\t\t\t} else {\r\n\t\t\t\tstringBuilder.append(array.getQuick(i));\r\n\t\t\t}\r\n\t\t}\r\n\t\tstringBuilder.append(\"]\");\r\n\t\treturn stringBuilder.toString();\r\n\t}\r\n\r\n\tpublic static String toMatrix(DoubleMatrix2D matrix) {\r\n\t\tStringBuilder stringBuilder = new StringBuilder();\r\n\t\tstringBuilder.append(\"[\");\r\n\t\tfor (int i = 0; i < matrix.rows(); i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tstringBuilder.append(\";\\n\");\r\n\t\t\t}\r\n\t\t\tfor (int j = 0; j < matrix.columns(); j++) {\r\n\t\t\t\tif (j > 0) {\r\n\t\t\t\t\tstringBuilder.append(\", \");\r\n\t\t\t\t}\r\n\t\t\t\tstringBuilder.append(matrix.getQuick(i, j));\r\n\t\t\t}\r\n\t\t}\r\n\t\tstringBuilder.append(\"]\");\r\n\t\treturn stringBuilder.toString();\r\n\t}\r\n\r\n\tpublic static String toMatrix(double[][] matrix) {\r\n\t\tint m = matrix.length;\r\n\t\tif (m == 0) {\r\n\t\t\treturn \"[]\";\r\n\t\t}\r\n\t\tint n = matrix[0].length;\r\n\t\tStringBuilder stringBuilder = new StringBuilder();\r\n\t\tstringBuilder.append(\"[\");\r\n\t\tfor (int i = 0; i < m; i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tstringBuilder.append(\";\\n\");\r\n\t\t\t}\r\n\t\t\tfor (int j = 0; j < n; j++) {\r\n\t\t\t\tif (j > 0) {\r\n\t\t\t\t\tstringBuilder.append(\", \");\r\n\t\t\t\t}\r\n\t\t\t\tstringBuilder.append(matrix[i][j]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tstringBuilder.append(\"]\");\r\n\t\treturn stringBuilder.toString();\r\n\t}\r\n\r\n\tpublic static String toMatrix(int[][] matrix) {\r\n\t\tint m = matrix.length;\r\n\t\tif (m == 0) {\r\n\t\t\treturn \"[]\";\r\n\t\t}\r\n\t\tint n = matrix[0].length;\r\n\t\tStringBuilder stringBuilder = new StringBuilder();\r\n\t\tstringBuilder.append(\"[\");\r\n\t\tfor (int i = 0; i < m; i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tstringBuilder.append(\";\\n\");\r\n\t\t\t}\r\n\t\t\tfor (int j = 0; j < n; j++) {\r\n\t\t\t\tif (j > 0) {\r\n\t\t\t\t\tstringBuilder.append(\", \");\r\n\t\t\t\t}\r\n\t\t\t\tstringBuilder.append(matrix[i][j]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tstringBuilder.append(\"]\");\r\n\t\treturn stringBuilder.toString();\r\n\t}\r\n\r\n\t/*\r\n\t * String output\r\n\t */\r\n\r\n\tpublic static String toStringList(List<String> array) {\r\n\t\tStringBuilder stringBuilder = new StringBuilder();\r\n\t\tfor (int i = 0; i < array.size(); i++) {\r\n\t\t\tif (i > 0) {\r\n\t\t\t\tstringBuilder.append(\", \");\r\n\t\t\t}\r\n\t\t\tstringBuilder.append(\"\\'\");\r\n\t\t\tstringBuilder.append(array.get(i));\r\n\t\t\tstringBuilder.append(\"\\'\");\r\n\t\t}\r\n\t\treturn stringBuilder.toString();\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/ObjReader.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.io.BufferedReader;\r\nimport java.io.FileReader;\r\nimport java.io.IOException;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\r\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\r\nimport edu.stanford.math.plex4.streams.impl.GeometricSimplexStream;\r\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility;\r\n\r\npublic class ObjReader implements ObjectReader<GeometricSimplexStream> {\r\n\r\n\tpublic GeometricSimplexStream importFromFile(String path) {\r\n\t\tBufferedReader reader = null;\r\n\t\tString line = null;\r\n\t\tString[] entries = null;\r\n\t\t\r\n\t\tList<double[]> vertices = new ArrayList<double[]>();\r\n\t\tList<int[]> faces = new ArrayList<int[]>();\r\n\t\ttry {\r\n\t\t\treader = new BufferedReader(new FileReader(path));\r\n\r\n\t\t\t// continue reading the data\r\n\t\t\twhile ((line = reader.readLine()) != null) {\r\n\t\t\t\t// split the line into the individual tokens\r\n\t\t\t\tentries = line.split(\" \");\r\n\t\t\t\t\r\n\t\t\t\tif (entries.length == 0) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tString prefix = entries[0];\r\n\t\t\t\t\r\n\t\t\t\tif (prefix.equals(\"#\")) {\r\n\t\t\t\t\t// comment\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t} else if (prefix.equals(\"v\")) {\r\n\t\t\t\t\t// vertex\r\n\t\t\t\t\tdouble[] vertex = new double[entries.length - 1];\r\n\t\t\t\t\tfor (int i = 1; i < entries.length; i++) {\r\n\t\t\t\t\t\tvertex[i - 1] = Double.parseDouble(entries[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvertices.add(vertex);\r\n\t\t\t\t} else if (prefix.equals(\"f\")) {\r\n\t\t\t\t\t// face\r\n\t\t\t\t\tint[] face = new int[entries.length - 1];\r\n\t\t\t\t\tfor (int i = 1; i < entries.length; i++) {\r\n\t\t\t\t\t\tface[i - 1] = Integer.parseInt(entries[i]) - 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfaces.add(face);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// unsupported prefix - just continue\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// close the reader if necessary\r\n\t\t\tif (reader != null) {\r\n\t\t\t\treader.close();\r\n\t\t\t}\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t\t\r\n\t\tEuclideanMetricSpace metricSpace = new EuclideanMetricSpace(DoubleArrayUtility.toMatrix(vertices));\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream(SimplexComparator.getInstance());\r\n\t\t\r\n\t\tfor (int i = 0; i < vertices.size(); i++) {\r\n\t\t\tstream.addVertex(i);\r\n\t\t}\r\n\t\t\r\n\t\tfor (int[] face: faces) {\r\n\t\t\tstream.addElement(new int[]{face[0], face[1]});\r\n\t\t\tstream.addElement(new int[]{face[0], face[2]});\r\n\t\t\tstream.addElement(new int[]{face[1], face[2]});\r\n\t\t\tstream.addElement(face);\r\n\t\t}\r\n\t\t\r\n\t\treturn new GeometricSimplexStream(stream, metricSpace);\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/ObjectReader.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.io.IOException;\r\n\r\npublic interface ObjectReader<T> {\r\n\tT importFromFile(String path) throws IOException;\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/ObjectWriter.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.io.IOException;\r\n\r\npublic interface ObjectWriter<T> {\r\n\tvoid writeToFile(T object, String path) throws IOException;\r\n\tString getExtension();\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/SimplexStreamReaderWriter.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.io.BufferedReader;\r\nimport java.io.BufferedWriter;\r\nimport java.io.FileReader;\r\nimport java.io.FileWriter;\r\nimport java.io.IOException;\r\n\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\n\r\npublic class SimplexStreamReaderWriter implements ObjectReader<AbstractFilteredStream<Simplex>>, ObjectWriter<AbstractFilteredStream<Simplex>> {\r\n\tprivate static final SimplexStreamReaderWriter instance = new SimplexStreamReaderWriter();\r\n\r\n\tprivate SimplexStreamReaderWriter() {}\r\n\r\n\tpublic static SimplexStreamReaderWriter getInstance() {\r\n\t\treturn instance;\r\n\t}\r\n\r\n\tpublic String getExtension() {\r\n\t\treturn \"txt\";\r\n\t}\r\n\t\r\n\tpublic AbstractFilteredStream<Simplex> importFromFile(String path) throws IOException {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\tBufferedReader reader = null;\r\n\t\tString line = null;\r\n\t\tString[] entries = null;\r\n\t\tString separator = \",\";\r\n\t\ttry {\r\n\t\t\treader = new BufferedReader(new FileReader(path));\r\n\t\t\t\r\n\t\t\t// format:\r\n\t\t\t// <filtrationIndex>,<vertex0>, ... <vertexN>\r\n\t\t\t\r\n\t\t\t// continue reading the data\r\n\t\t\twhile ((line = reader.readLine()) != null) {\r\n\t\t\t\t// split the line into the individual tokens\r\n\t\t\t\tentries = line.split(separator);\r\n\t\t\t\tint filtrationIndex = Integer.parseInt(entries[0]);\r\n\t\t\t\tint[] vertices = new int[entries.length - 1];\r\n\t\t\t\tfor (int i = 0; i < vertices.length; i++) {\r\n\t\t\t\t\tvertices[i] = Integer.parseInt(entries[i + 1]);\r\n\t\t\t\t}\r\n\t\t\t\tstream.addElement(vertices, filtrationIndex);\r\n\t\t\t}\r\n\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\t// close the reader if necessary\r\n\t\t\tif (reader != null) {\r\n\t\t\t\treader.close();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn stream;\r\n\t}\r\n\r\n\tpublic void writeToFile(AbstractFilteredStream<Simplex> object, String path) throws IOException {\r\n\t\tBufferedWriter writer = null;\r\n\t\ttry {\r\n\t\t\twriter = new BufferedWriter(new FileWriter(path, false));\r\n\t\t\tfor (Simplex simplex: object) {\r\n\t\t\t\tInteger filtrationIndex = object.getFiltrationIndex(simplex);\r\n\t\t\t\twriter.write(filtrationIndex.toString() + \",\");\r\n\t\t\t\tint[] vertices = simplex.getVertices();\r\n\t\t\t\tfor (int i = 0; i < vertices.length; i++) {\r\n\t\t\t\t\tInteger vertex = vertices[i];\r\n\t\t\t\t\twriter.write(vertex.toString());\r\n\t\t\t\t\tif (i < vertices.length - 1) {\r\n\t\t\t\t\t\twriter.write(\",\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\twriter.newLine();\r\n\t\t\t}\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t} finally {\r\n\t\t\tif (writer != null) {\r\n\t\t\t\twriter.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/io/Table.java",
    "content": "package edu.stanford.math.plex4.io;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.Arrays;\r\nimport java.util.Collection;\r\nimport java.util.List;\r\n\r\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\r\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayMath;\r\n\r\n/**\r\n * This class holds a table of string values. It contains functionality for\r\n * outputting in comma separated and pretty printed formats.\r\n * \r\n * @author Andrew Tausz\r\n * \r\n */\r\npublic class Table {\r\n\t// the title of the table\r\n\tprotected String title = \"\";\r\n\t// the number of columns\r\n\tprotected int numColumns = 0;\r\n\t// the number of rows\r\n\tprotected int numRows = 0;\r\n\t// this array holds the name of each column\r\n\tprotected ArrayList<String> columnHeadings = new ArrayList<String>();\r\n\t// this array holds the contents of the table, by row\r\n\tprotected ArrayList<ArrayList<String>> rows = new ArrayList<ArrayList<String>>();\r\n\r\n\tpublic Table() {\r\n\t}\r\n\r\n\t/**\r\n\t * This function sets the title of the table.\r\n\t * \r\n\t * @param title\r\n\t *            the title to set to\r\n\t */\r\n\tpublic void setTitle(String title) {\r\n\t\tExceptionUtility.verifyNonNull(title);\r\n\t\tthis.title = title;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the title of the table.\r\n\t * \r\n\t * @return the table's title\r\n\t */\r\n\tpublic String getTitle() {\r\n\t\treturn this.title;\r\n\t}\r\n\r\n\t/**\r\n\t * This function adds a new column to the table.\r\n\t * \r\n\t * @param columnHeading\r\n\t *            the name of the column to add\r\n\t */\r\n\tpublic void addColumn(String columnHeading) {\r\n\t\tthis.columnHeadings.add(columnHeading);\r\n\t\tthis.numColumns++;\r\n\t}\r\n\r\n\t/**\r\n\t * This function sets the heading of the specified column.\r\n\t * \r\n\t * @param column\r\n\t *            the index of the column\r\n\t * @param columnHeading\r\n\t *            the new heading of the column\r\n\t */\r\n\tpublic void setColumnHeading(int column, String columnHeading) {\r\n\t\tExceptionUtility.verifyLessThan(column, this.numColumns);\r\n\t\tthis.columnHeadings.set(column, columnHeading);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the heading of the specified column.\r\n\t * \r\n\t * @param column\r\n\t *            the index of the column\r\n\t * @return the heading of the specified column\r\n\t */\r\n\tpublic String getColumnHeading(int column) {\r\n\t\tExceptionUtility.verifyLessThan(column, this.numColumns);\r\n\t\treturn this.columnHeadings.get(column);\r\n\t}\r\n\r\n\t/**\r\n\t * This function adds a data row to the table. It converts each object in\r\n\t * the input to a string, by calling the toString function.\r\n\t * \r\n\t * @param row\r\n\t *            a collection containing the data to add\r\n\t */\r\n\tpublic void addRow(Collection<Object> row) {\r\n\t\t// make sure that the row contains the right number of entries\r\n\t\tExceptionUtility.verifyEqual(row.size(), this.columnHeadings.size());\r\n\t\t// create a new string array\r\n\t\tArrayList<String> stringRow = new ArrayList<String>();\r\n\t\t// convert each object to a string\r\n\t\tfor (Object element : row) {\r\n\t\t\tstringRow.add(element.toString());\r\n\t\t}\r\n\t\tthis.rows.add(stringRow);\r\n\t\tthis.numRows++;\r\n\t}\r\n\r\n\t/**\r\n\t * This function adds a data row to the table.\r\n\t * \r\n\t * @param row\r\n\t *            a collection containing the data to add\r\n\t */\r\n\tpublic void addRow(List<String> row) {\r\n\t\t// make sure that the row contains the right number of entries\r\n\t\tExceptionUtility.verifyEqual(row.size(), this.columnHeadings.size());\r\n\t\t// create a new string array\r\n\t\tArrayList<String> stringRow = new ArrayList<String>();\r\n\t\t// convert collection to a list\r\n\t\tstringRow.addAll(row);\r\n\t\tthis.rows.add(stringRow);\r\n\t\tthis.numRows++;\r\n\t}\r\n\r\n\t/**\r\n\t * This function adds a data row to the table.\r\n\t * \r\n\t * @param row\r\n\t *            a collection containing the data to add\r\n\t */\r\n\tpublic void addRow(String[] row, boolean trimElements) {\r\n\t\t// make sure that the row contains the right number of entries\r\n\t\tExceptionUtility.verifyEqual(row.length, this.columnHeadings.size());\r\n\t\t// create a new string array\r\n\t\tArrayList<String> stringRow = new ArrayList<String>();\r\n\t\t// add the elements to the array\r\n\t\tfor (String rowElement : row) {\r\n\t\t\tif (trimElements) {\r\n\t\t\t\tstringRow.add(rowElement.trim());\r\n\t\t\t} else {\r\n\t\t\t\tstringRow.add(rowElement);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.rows.add(stringRow);\r\n\t\tthis.numRows++;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the entry in the table located at (row, column).\r\n\t * \r\n\t * @param row\r\n\t *            the row of the entry\r\n\t * @param column\r\n\t *            the column of the entry\r\n\t * @return the element at the specified location\r\n\t */\r\n\tpublic String getEntry(int row, int column) {\r\n\t\tExceptionUtility.verifyLessThan(row, this.numRows);\r\n\t\tExceptionUtility.verifyLessThan(column, this.numColumns);\r\n\t\tExceptionUtility.verifyNonNegative(row);\r\n\t\tExceptionUtility.verifyNonNegative(column);\r\n\t\treturn this.rows.get(row).get(column);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the string representation of the table. For now it\r\n\t * uses the pretty print version.\r\n\t */\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn this.toPrettyString(\" | \");\r\n\t}\r\n\r\n\t/**\r\n\t * This function creates a string holding the contents of the table in comma\r\n\t * separated format.\r\n\t * \r\n\t * @param separator\r\n\t *            the separator between each column\r\n\t * @param includeTitle\r\n\t *            if true, then the title is also printed\r\n\t * @param includeHeadings\r\n\t *            if true, then the headings are printed\r\n\t * @return a string containing the contents of the table\r\n\t */\r\n\tpublic String toCSVString(String separator, boolean includeTitle, boolean includeHeadings) {\r\n\t\tStringBuilder builder = new StringBuilder();\r\n\r\n\t\t// print the title if required\r\n\t\tif (includeTitle) {\r\n\t\t\tbuilder.append(this.title + \"\\n\");\r\n\t\t}\r\n\r\n\t\t// print the column headings\r\n\t\tfor (int j = 0; j < this.columnHeadings.size(); j++) {\r\n\t\t\tif (j > 0) {\r\n\t\t\t\tbuilder.append(separator);\r\n\t\t\t}\r\n\t\t\tbuilder.append(this.columnHeadings.get(j));\r\n\t\t}\r\n\r\n\t\tbuilder.append('\\n');\r\n\r\n\t\t// print the table contents\r\n\t\tfor (int i = 0; i < this.rows.size(); i++) {\r\n\t\t\tArrayList<String> row = this.rows.get(i);\r\n\t\t\tfor (int j = 0; j < row.size(); j++) {\r\n\t\t\t\tif (j > 0) {\r\n\t\t\t\t\tbuilder.append(separator);\r\n\t\t\t\t}\r\n\t\t\t\tbuilder.append(row.get(j));\r\n\t\t\t}\r\n\t\t\tbuilder.append(\"\\n\");\r\n\t\t}\r\n\r\n\t\treturn builder.toString();\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a string holding the contents of the table. It pads\r\n\t * the columns with spaces so that the columns have uniform width.\r\n\t * \r\n\t * @return a visually appealing textual representation of the table\r\n\t */\r\n\tpublic String toPrettyString(String separator) {\r\n\t\tStringBuilder builder = new StringBuilder();\r\n\t\tint[] columnWidths = new int[this.numColumns];\r\n\r\n\t\t// print the title\r\n\t\tbuilder.append(this.title + \"\\n\");\r\n\r\n\t\t// compute the width of each column\r\n\t\tfor (int j = 0; j < this.numColumns; j++) {\r\n\t\t\tint columnWidth = this.columnHeadings.get(j).length();\r\n\t\t\tfor (int i = 0; i < this.numRows; i++) {\r\n\t\t\t\tcolumnWidth = Math.max(columnWidth, this.getEntry(i, j).length());\r\n\t\t\t}\r\n\t\t\tcolumnWidths[j] = columnWidth;\r\n\t\t}\r\n\r\n\t\t// print the column names\r\n\t\tfor (int j = 0; j < this.numColumns; j++) {\r\n\t\t\tString label = this.columnHeadings.get(j);\r\n\t\t\tif (j > 0) {\r\n\t\t\t\tbuilder.append(separator);\r\n\t\t\t}\r\n\t\t\tbuilder.append(this.padString(label, columnWidths[j], ' '));\r\n\t\t}\r\n\t\tbuilder.append('\\n');\r\n\r\n\t\t// print a separator between Headings and data\r\n\t\tint totalWidth = IntArrayMath.sum(columnWidths) + (this.numColumns - 1) * separator.length();\r\n\t\tbuilder.append(this.repeatCharacter('-', totalWidth));\r\n\t\tbuilder.append('\\n');\r\n\r\n\t\t// print the table contents\r\n\t\tfor (int i = 0; i < this.numRows; i++) {\r\n\t\t\tfor (int j = 0; j < this.numColumns; j++) {\r\n\t\t\t\tString label = this.getEntry(i, j);\r\n\t\t\t\tif (j > 0) {\r\n\t\t\t\t\tbuilder.append(separator);\r\n\t\t\t\t}\r\n\t\t\t\tbuilder.append(this.padString(label, columnWidths[j], ' '));\r\n\t\t\t}\r\n\t\t\tbuilder.append('\\n');\r\n\t\t}\r\n\r\n\t\treturn builder.toString();\r\n\t}\r\n\r\n\t/**\r\n\t * This function pads the input string with padCharacter so that the\r\n\t * resulting length is equal to the parameter length.\r\n\t * \r\n\t * @param input\r\n\t *            the string to pad\r\n\t * @param length\r\n\t *            the total length of the resulting string\r\n\t * @param padCharacter\r\n\t *            the character to pad with\r\n\t * @return the padded string\r\n\t */\r\n\tprivate String padString(String input, int length, char padCharacter) {\r\n\t\tExceptionUtility.verifyNonNull(input);\r\n\t\tint padLength = length - input.length();\r\n\t\tExceptionUtility.verifyNonNegative(padLength);\r\n\t\tif (padLength == 0) {\r\n\t\t\treturn input;\r\n\t\t} else {\r\n\t\t\treturn (input + repeatCharacter(padCharacter, padLength));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a string containing the input character repeated.\r\n\t * \r\n\t * @param character\r\n\t *            the character to repeat\r\n\t * @param length\r\n\t *            the number of times to repeat\r\n\t * @return a string containing the character repeated length times\r\n\t */\r\n\tprivate String repeatCharacter(char character, int length) {\r\n\t\tExceptionUtility.verifyPositive(length);\r\n\t\tchar[] charArray = new char[length];\r\n\t\tArrays.fill(charArray, character);\r\n\t\treturn new String(charArray);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/kd/KDEuclideanMetricSpace.java",
    "content": "package edu.stanford.math.plex4.kd;\n\nimport edu.stanford.math.plex4.metric.impl.ObjectSearchableFiniteMetricSpace;\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\nimport edu.stanford.math.primitivelib.utility.Infinity;\nimport gnu.trove.TIntHashSet;\n\n/**\n * This class implements the AbstractSearchableMetricSpace interface for providing query functions\n * for a Euclidean metric space. The underlying search operations are performed with the help of a KD-tree.\n * \n * @author Andrew Tausz\n *\n */\npublic class KDEuclideanMetricSpace extends ObjectSearchableFiniteMetricSpace<double[]> {\n\tprivate final KDTree tree;\n\tprivate final int dimension;\n\t\n\tpublic KDEuclideanMetricSpace(double[][] dataPoints) {\n\t\tsuper(dataPoints);\n\t\tthis.tree = new KDTree(dataPoints);\n\t\tthis.dimension = dataPoints[0].length;\n\t}\n\t\n\tpublic double[][] getPoints() {\n\t\treturn this.elements;\n\t}\n\n\tpublic int getNearestPointIndex(double[] queryPoint) {\n\t\treturn this.tree.nearestNeighborSearch(queryPoint);\n\t}\n\n\tpublic TIntHashSet getOpenNeighborhood(double[] queryPoint, double epsilon) {\n\t\treturn this.tree.epsilonNeighborhoodSearch(queryPoint, epsilon, true);\n\t}\n\t\n\tpublic TIntHashSet getClosedNeighborhood(double[] queryPoint, double epsilon) {\n\t\treturn this.tree.epsilonNeighborhoodSearch(queryPoint, epsilon, false);\n\t}\n\n\tpublic int size() {\n\t\treturn elements.length;\n\t}\n\n\tpublic double distance(double[] a, double[] b) {\n\t\treturn Math.sqrt(DoubleArrayMath.squaredDistance(a, b));\n\t}\n\n\tpublic double[] getPoint(int index) {\n\t\treturn this.elements[index];\n\t}\n\n\tpublic double distance(int i, int j) {\n\t\treturn this.distance(this.getPoint(i), this.getPoint(j));\n\t}\n\t\n\tpublic double[] getMaximumCoordinates() {\n\t\tdouble[] maxima = new double[this.dimension];\n\t\tfor (int j = 0; j < this.dimension; j++) {\n\t\t\tmaxima[j] = Infinity.Double.getNegativeInfinity();\n\t\t}\n\t\tfor (int i = 0; i < this.elements.length; i++) {\n\t\t\tfor (int j = 0; j < this.dimension; j++) {\n\t\t\t\tmaxima[j] = Math.max(maxima[j], this.elements[i][j]);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn maxima;\n\t}\n\t\n\tpublic double[] getMinimumCoordinates() {\n\t\tdouble[] minima = new double[this.dimension];\n\t\tfor (int j = 0; j < this.dimension; j++) {\n\t\t\tminima[j] = Infinity.Double.getPositiveInfinity();\n\t\t}\n\t\tfor (int i = 0; i < this.elements.length; i++) {\n\t\t\tfor (int j = 0; j < this.dimension; j++) {\n\t\t\t\tminima[j] = Math.min(minima[j], this.elements[i][j]);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn minima;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/kd/KDNode.java",
    "content": "package edu.stanford.math.plex4.kd;\n\n/**\n * This class contains the functionality of a node\n * within a KD-tree.\n * \n * @author Andrew Tausz\n *\n */\npublic class KDNode {\n\tprivate final int index;\n\tprivate KDNode left;\n\tprivate KDNode right;\n\tprivate final int splitAxis;\n\n\tpublic KDNode(int index, int splitAxis) {\n\t\tthis.left = null;\n\t\tthis.right = null;\n\t\tthis.index = index;\n\t\tthis.splitAxis = splitAxis;\n\t}\n\t\n\tpublic int getIndex() {\n\t\treturn this.index;\n\t}\n\t\n\tpublic KDNode getLeft() {\n\t\treturn this.left;\n\t}\n\t\n\tpublic KDNode getRight() {\n\t\treturn this.right;\n\t}\n\t\n\tpublic int getSplitAxis() {\n\t\treturn this.splitAxis;\n\t}\n\t\n\tpublic void setLeft(KDNode node) {\n\t\tthis.left = node;\n\t}\n\t\n\tpublic void setRight(KDNode node) {\n\t\tthis.right = node;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/kd/KDTree.java",
    "content": "package edu.stanford.math.plex4.kd;\n\nimport java.util.ArrayList;\nimport java.util.Comparator;\nimport java.util.List;\nimport java.util.Random;\n\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayGeneration;\nimport edu.stanford.math.primitivelib.autogen.array.IntArrayUtility;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport gnu.trove.TIntHashSet;\n\n/**\n * This class implements the functionality of a KD-tree. It is \n * designed for the efficient searching of Euclidean spaces.\n * \n * @author Andrew Tausz\n *\n */\npublic class KDTree {\n\tprivate final int size;\n\tprivate final int dimension;\n\tprivate KDNode root;\n\tprivate static Random random = new Random();\n\t\n\t/**\n\t * There are two options for constructing the KD-tree. One is\n\t * to partition by medians, and the other is to partition randomly.\n\t * Partitioning by medians produces a more balanced tree, but is\n\t * more expensive to construct.\n\t */\n\tprivate boolean useMedian = true;\n\t\n\t/**\n\t * Points are stored as rows in the dataPoints array\n\t */\n\tprivate final double[][] dataPoints;\n\n\t/**\n\t * Constructor for initializing the KD-tree with a set of points.\n\t * @param dataPoints\n\t */\n\tpublic KDTree(double[][] dataPoints) {\n\t\tExceptionUtility.verifyNonNull(dataPoints);\n\t\tExceptionUtility.verifyPositive(dataPoints.length);\n\t\tthis.dataPoints = dataPoints;\n\t\tthis.size = dataPoints.length;\n\t\tthis.dimension = dataPoints[0].length;\n\t\t\n\t\t// construct KD tree\n\t\tthis.root = this.construct(IntArrayUtility.toList(IntArrayGeneration.range(0, this.size)), 0);\n\t}\n\t\n\t/**\n\t * This function recursively constructs the tree by partitioning the\n\t * Euclidean space axis-by-axis.\n\t * \n\t * @param points the list of points to partition\n\t * @param depth the current depth of the iteration\n\t * @return a KDNode for the current subtree\n\t */\n\tprivate KDNode construct(List<Integer> points, int depth) {\n\t\tint axis = depth % this.dimension;\n\t\t\n\t\tif (points.isEmpty()) {\n\t\t\treturn null;\n\t\t}\n\t\tif (points.size() == 1) {\n\t\t\treturn new KDNode(points.get(0), axis);\n\t\t}\n\t\t\n\t\tint splitIndex = 0;\n\t\tif (this.useMedian) {\n\t\t\tsplitIndex = this.getMedianSplitIndex(points, axis);\n\t\t} else {\n\t\t\tsplitIndex = this.getRandomSplitIndex(points);\n\t\t}\n\t\t\n\t\tObjectObjectPair<List<Integer>, List<Integer>> pointListPair = this.splitPoints(points, axis, splitIndex);\n\t\t\n\t\tpoints = null;\n\t\t\n\t\tKDNode kdNode = new KDNode(splitIndex, axis);\n\t\t\n\t\t\n\t\tkdNode.setLeft(this.construct(pointListPair.getFirst(), depth + 1));\n\t\tkdNode.setRight(this.construct(pointListPair.getSecond(), depth + 1));\n\t\t\n\t\treturn kdNode;\n\t}\n\t\n\t/**\n\t * This function simply returns a random element within the list of indices.\n\t * \n\t * @param pointIndices the list to select from\n\t * @return a random element from the list\n\t */\n\tprivate int getRandomSplitIndex(List<Integer> pointIndices) {\n\t\treturn pointIndices.get(random.nextInt(pointIndices.size()));\n\t}\n\t\n\t/**\n\t * This function selects the index that is the median of the values when sorted \n\t * by the specified axis.\n\t * \n\t * @param pointIndices\n\t * @param axis the axis to find the median along\n\t * @return the index of the median\n\t */\n\tprivate int getMedianSplitIndex(List<Integer> pointIndices, final int axis) {\n\t\tComparator<Integer> comparator = getAxisComparator(axis);\n\t\tjava.util.Collections.sort(pointIndices, comparator);\n\t\treturn pointIndices.get((pointIndices.size() + 1) / 2);\n\t}\n\t\n\t/**\n\t * This function splits the points into two groups - those that are less than the one at the split index,\n\t * and those that are greater than or equal.\n\t * \n\t * @param pointIndices the list of points to divide\n\t * @param axis the axis to compare along\n\t * @param splitIndex the index to split on\n\t * @return a GenericPair containing the two lists described above\n\t */\n\tprivate ObjectObjectPair<List<Integer>, List<Integer>> splitPoints(List<Integer> pointIndices, final int axis, int splitIndex) {\n\t\tComparator<Integer> comparator = getAxisComparator(axis);\n\t\tList<Integer> lessThan = new ArrayList<Integer>();\n\t\tList<Integer> greaterThanOrEqual = new ArrayList<Integer>();\n\t\t\n\t\tfor (Integer index: pointIndices) {\n\t\t\tif (comparator.compare(index, splitIndex) < 0) {\n\t\t\t\tlessThan.add(index);\n\t\t\t} else {\n\t\t\t\tgreaterThanOrEqual.add(index);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn new ObjectObjectPair<List<Integer>, List<Integer>>(lessThan, greaterThanOrEqual);\n\t}\n\t\n\t/**\n\t * This function returns a comparator used for ordering the points by their locations along\n\t * a particular axis.\n\t * \n\t * @param axis the axis to order by\n\t * @return a comparator which compares points by a particular coordinate\n\t */\n\tprivate Comparator<Integer> getAxisComparator(final int axis) {\n\t\treturn new Comparator<Integer>() {\n\n\t\t\tpublic int compare(Integer o1, Integer o2) {\n\t\t\t\tif (dataPoints[o1][axis] < dataPoints[o2][axis]) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else if (dataPoints[o1][axis] > dataPoints[o2][axis]) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\t\n\t/**\n\t * This function returns the index of the nearest neighbor to the query point.\n\t * \n\t * @param queryPoint the point to find the closest point to\n\t * @return the index of the nearest point to the query point\n\t */\n\tpublic int nearestNeighborSearch(double[] queryPoint) {\n\t\treturn nearestNeighborSearch(this.root, queryPoint, this.root.getIndex(), 0);\n\t}\n\n\t/**\n\t * This function performs the nearest neighborhood search recursively.\n\t * It is an internal helper function.\n\t * \n\t * @param node the node to search in\n\t * @param queryPoint the reference point\n\t * @param bestIndex the best point so far\n\t * @param depth the recursion depth\n\t * @return the index of the nearest point to the query point\n\t */\n\tprivate int nearestNeighborSearch(KDNode node, double[] queryPoint, int bestIndex, int depth) {\n\t\tif (node == null) {\n\t\t\treturn bestIndex;\n\t\t}\n\t\tdouble[] bestPoint = this.dataPoints[bestIndex];\n\n\t\t// get the current axis\n\t\tint axis = node.getSplitAxis();\n\t\t// get the current point\n\t\tint currentIndex = node.getIndex();\n\t\tdouble[] currentPoint = this.dataPoints[currentIndex];\n\n\t\t// Calculate whether current node is the best so far\n\t\tdouble currentSquaredDistance = DoubleArrayMath.squaredDistance(queryPoint, currentPoint);\n\t\tdouble bestSquaredDistance = DoubleArrayMath.squaredDistance(queryPoint, bestPoint);\n\t\tif (currentSquaredDistance < bestSquaredDistance) {\n\t\t\tbestPoint = currentPoint;\n\t\t\tbestIndex = currentIndex;\n\t\t}\n\n\t\t// determine which side of the hyperplane the query point is in\n\t\t// if side > 0 then the query point is on the \"right\" side of the hyperplane\n\t\tdouble axisDifference = queryPoint[axis] - currentPoint[axis];\n\t\t// the near child is the node for the half space containing the query point\n\t\tKDNode nearChild = null;\n\t\t// the far child is the node for the half space not containing the query point\n\t\tKDNode farChild = null;\n\t\tif (axisDifference > 0) {\n\t\t\tnearChild = node.getRight();\n\t\t\tfarChild = node.getLeft();\n\t\t} else {\n\t\t\tnearChild = node.getLeft();\n\t\t\tfarChild = node.getRight();\n\t\t}\n\n\t\t// search the current half-space (the half-space containing the query point)\n\t\tbestIndex = nearestNeighborSearch(nearChild, queryPoint, bestIndex, depth + 1);\n\n\t\t// test to see if we need to search other half-space\n\t\tdouble separatingPlaneDistance = DoubleArrayMath.squaredDistance(queryPoint[axis], currentPoint[axis]);\n\t\tif (bestSquaredDistance > separatingPlaneDistance) {\n\t\t\tbestIndex = nearestNeighborSearch(farChild, queryPoint, bestIndex, depth + 1);\n\t\t}\n\n\t\treturn bestIndex;\t\t\n\t}\n\n\t/**\n\t * This function finds all points within an open or closed neighborhood of the query point.\n\t * \n\t * @param queryPoint the center of the ball to query\n\t * @param epsilon the radius of the ball\n\t * @param openNeighborhood true if the neighborhood is open and false otherwise\n\t * @return the indices of those points that fall within the ball centered at the query point\n\t */\n\tpublic TIntHashSet epsilonNeighborhoodSearch(double[] queryPoint, double epsilon, boolean openNeighborhood) {\n\t\tTIntHashSet neighborhood = new TIntHashSet();\n\t\tepsilonNeighborhoodSearch(this.root, queryPoint, neighborhood, 0, epsilon * epsilon, openNeighborhood);\n\t\treturn neighborhood;\n\t}\n\n\t/**\n\t * This is a helper function which performs the recursive search for the neighborhood search.\n\t * \n\t * @param node the current KD-tree node\n\t * @param queryPoint the reference point\n\t * @param neighborhood the current set of points found\n\t * @param depth the recursion depth\n\t * @param epsilonSquared the square of the radius of the ball\n\t * @param openNeighborhood true if the neighborhood is open and false otherwise\n\t */\n\tprivate void epsilonNeighborhoodSearch(KDNode node, double[] queryPoint, TIntHashSet neighborhood, int depth, double epsilonSquared, boolean openNeighborhood) {\t\t\n\t\tif (node == null) {\n\t\t\treturn;\n\t\t}\n\n\t\t// get the current axis\n\t\tint axis = node.getSplitAxis();\n\t\t// get the current point\n\t\tint currentIndex = node.getIndex();\n\t\tdouble[] currentPoint = this.dataPoints[currentIndex];\n\n\t\t// calculate whether the current node belongs in the epsilon-neighborhood\n\t\t// of the query point\n\t\tdouble currentSquaredDistance = DoubleArrayMath.squaredDistance(queryPoint, currentPoint);\n\t\tif (currentSquaredDistance < epsilonSquared) {\n\t\t\tneighborhood.add(currentIndex);\n\t\t}\n\n\t\t// determine which side of the hyperplane the query point is in\n\t\t// if side > 0 then the query point is on the \"right\" side of the hyperplane\n\t\tdouble axisDifference = queryPoint[axis] - currentPoint[axis];\n\t\tdouble squaredAxisDistance = axisDifference * axisDifference;\n\t\t// the near child is the node for the half space containing the query point\n\t\tKDNode nearChild = null;\n\t\t// the far child is the node for the half space not containing the query point\n\t\tKDNode farChild = null;\n\t\tif (axisDifference > 0) {\n\t\t\tnearChild = node.getRight();\n\t\t\tfarChild = node.getLeft();\n\t\t} else {\n\t\t\tnearChild = node.getLeft();\n\t\t\tfarChild = node.getRight();\n\t\t}\n\n\t\t// determine whether the epsilon-neighborhood intersects the far half-space\n\t\tif (openNeighborhood) {\n\t\t\tif (epsilonSquared > squaredAxisDistance) {\n\t\t\t\t// yes there is overlap - so search far half-space\n\t\t\t\tepsilonNeighborhoodSearch(farChild, queryPoint, neighborhood, depth + 1, epsilonSquared, openNeighborhood);\n\t\t\t}\n\t\t} else {\n\t\t\tif (epsilonSquared >= squaredAxisDistance) {\n\t\t\t\t// yes there is overlap - so search far half-space\n\t\t\t\tepsilonNeighborhoodSearch(farChild, queryPoint, neighborhood, depth + 1, epsilonSquared, openNeighborhood);\n\t\t\t}\n\t\t}\n\n\t\t// search the near half-space for more neighborhood members\n\t\tepsilonNeighborhoodSearch(nearChild, queryPoint, neighborhood, depth + 1, epsilonSquared, openNeighborhood);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/impl/EuclideanMetricSpace.java",
    "content": "package edu.stanford.math.plex4.metric.impl;\r\n\r\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\r\n\r\n/**\r\n * This class implements the standard metric space structure on R^n given by the \r\n * Euclidean metric.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class EuclideanMetricSpace extends ObjectSearchableFiniteMetricSpace<double[]> {\r\n\r\n\t/**\r\n\t * This constructor initializes the class with an array of elements.\r\n\t * \r\n\t * @param array the array of elements that will be the points in the metric space\r\n\t */\r\n\tpublic EuclideanMetricSpace(double[][] array) {\r\n\t\tsuper(array);\r\n\t}\r\n\r\n\t@Override\r\n\tpublic double distance(double[] a, double[] b) {\r\n\t\treturn DoubleArrayMath.distance(a, b);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/impl/ExplicitMetricSpace.java",
    "content": "package edu.stanford.math.plex4.metric.impl;\n\nimport java.util.List;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\nimport edu.stanford.math.primitivelib.utility.Infinity;\nimport gnu.trove.TIntHashSet;\n\n/**\n * This class implements the AbstractIntMetricSpace interface. The distances between points\n * is given by a distance matrix.\n * \n * @author Andrew Tausz\n *\n */\npublic class ExplicitMetricSpace implements AbstractSearchableMetricSpace<Integer> {\n\tprivate final double[][] distanceMatrix;\n\t\n\t/**\n\t * This constructor initializes the class with the given distance matrix.\n\t * The supplied distance matrix must be square, and must define a valid metric.\n\t * Ie. it must be symmetric, have zeros exactly on the diagonal, and satisfy\n\t * the triangle inequality. Due to reasons of efficiency, these properties\n\t * are not checked, and the user is required make sure that they hold.\n\t * If the properties do not hold, no guarantees can be made about the\n\t * behaviour of the algorithms.\n\t * \n\t * @see edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace\n\t * \n\t * @param distanceMatrix the distance matrix to initialize with\n\t */\n\tpublic ExplicitMetricSpace(double[][] distanceMatrix) {\n\t\tthis.distanceMatrix = distanceMatrix;\n\t}\n\n\tpublic double distance(int i, int j) {\n\t\treturn distanceMatrix[i][j];\n\t}\n\n\tpublic int size() {\n\t\treturn distanceMatrix.length;\n\t}\n\n\tpublic TIntHashSet getClosedNeighborhood(Integer queryPoint, double epsilon) {\n\t\tTIntHashSet result = new TIntHashSet();\n\t\t\n\t\tfor (int i = 0; i < distanceMatrix[queryPoint].length; i++) {\n\t\t\tdouble distance = distanceMatrix[queryPoint][i];\n\t\t\tif (distance <= epsilon) {\n\t\t\t\tresult.add(i);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n\tpublic TIntHashSet getKNearestNeighbors(Integer queryPoint, int k) {\n\t\tTruncatedPriorityQueue<Integer> tpq = new TruncatedPriorityQueue<Integer>(k);\n\t\t\n\t\tfor (int i = 0; i < distanceMatrix[queryPoint].length; i++) {\n\t\t\tif (queryPoint.equals(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdouble distance = distanceMatrix[queryPoint][i];\n\t\t\ttpq.insert(i, distance);\n\t\t}\n\t\t\n\t\tTIntHashSet result = new TIntHashSet();\n\t\t\n\t\tList<Integer> indices = tpq.getIndices();\n\t\tfor (Integer index: indices) {\n\t\t\tresult.add(index);\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n\tpublic int getNearestPointIndex(Integer queryPoint) {\n\t\tdouble minDistance = Infinity.Double.getPositiveInfinity();\n\t\tint minIndex = -1;\n\t\t\n\t\tfor (int i = 0; i < distanceMatrix[queryPoint].length; i++) {\n\t\t\tif (queryPoint.equals(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdouble distance = distanceMatrix[queryPoint][i];\n\t\t\tif (distance < minDistance) {\n\t\t\t\tminDistance = distance;\n\t\t\t\tminIndex = i;\n\t\t\t}\n\t\t}\n\n\t\treturn minIndex;\n\t}\n\n\tpublic TIntHashSet getOpenNeighborhood(Integer queryPoint, double epsilon) {\n\t\tTIntHashSet result = new TIntHashSet();\n\t\t\n\t\tfor (int i = 0; i < distanceMatrix[queryPoint].length; i++) {\n\t\t\tdouble distance = distanceMatrix[queryPoint][i];\n\t\t\tif (distance < epsilon) {\n\t\t\t\tresult.add(i);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n\tpublic Integer getPoint(int index) {\n\t\treturn index;\n\t}\n\n\tpublic Integer[] getPoints() {\n\t\tInteger[] result = new Integer[distanceMatrix.length];\n\t\tfor (int i = 0; i < distanceMatrix.length; i++) {\n\t\t\tresult[i] = i;\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\n\tpublic double distance(Integer a, Integer b) {\n\t\treturn distanceMatrix[a][b];\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/impl/ObjectSearchableFiniteMetricSpace.java",
    "content": "package edu.stanford.math.plex4.metric.impl;\r\n\r\nimport java.util.List;\r\n\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\r\nimport gnu.trove.TIntHashSet;\r\n\r\n/**\r\n * This class implements the AbstractSearchableMetricSpace interface over type T. It stores the\r\n * elements of the metric space as an array.  \r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T>\r\n */\r\npublic abstract class ObjectSearchableFiniteMetricSpace<T> implements AbstractSearchableMetricSpace<T> {\r\n\t\r\n\t/**\r\n\t * This array stores the elements in the metric space\r\n\t */\r\n\tprotected final T[] elements;\r\n\t\r\n\t/**\r\n\t * This constructor initializes the class with an array of elements.\r\n\t * \r\n\t * @param array the array of elements that will be the points in the metric space\r\n\t */\r\n\tpublic ObjectSearchableFiniteMetricSpace(T[] array) {\r\n\t\tthis.elements = array;\r\n\t}\r\n\t\r\n\tpublic TIntHashSet getKNearestNeighbors(T queryPoint, int k) {\r\n\t\tTruncatedPriorityQueue<Integer> tpq = new TruncatedPriorityQueue<Integer>(k);\r\n\t\t\r\n\t\tfor (int i = 0; i < elements.length; i++) {\r\n\t\t\tT element = elements[i];\r\n\t\t\tif (element.equals(queryPoint)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tdouble distance = this.distance(queryPoint, element);\r\n\t\t\ttpq.insert(i, distance);\r\n\t\t}\r\n\t\t\r\n\t\tTIntHashSet result = new TIntHashSet();\r\n\t\t\r\n\t\tList<Integer> indices = tpq.getIndices();\r\n\t\tfor (Integer index: indices) {\r\n\t\t\tresult.add(index);\r\n\t\t}\r\n\t\t\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic int getNearestPointIndex(T queryPoint) {\r\n\t\tdouble minimumDistance = Double.MAX_VALUE;\r\n\t\tdouble currentDistance = 0;\r\n\t\tint nearestIndex = 0;\r\n\t\tint n = this.elements.length;\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tcurrentDistance = this.distance(queryPoint, this.elements[i]);\r\n\t\t\tif (currentDistance < minimumDistance) {\r\n\t\t\t\tminimumDistance = currentDistance;\r\n\t\t\t\tnearestIndex = i;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn nearestIndex;\r\n\t}\r\n\r\n\tpublic TIntHashSet getOpenNeighborhood(T queryPoint, double epsilon) {\r\n\t\tTIntHashSet neighborhood = new TIntHashSet();\r\n\t\tif (epsilon == 0) {\r\n\t\t\treturn neighborhood;\r\n\t\t}\r\n\t\t\r\n\t\tint n = this.elements.length;\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tif (this.distance(queryPoint, this.elements[i]) < epsilon) {\r\n\t\t\t\tneighborhood.add(i);\r\n\t\t\t}\t\r\n\t\t}\r\n\r\n\t\treturn neighborhood;\r\n\t}\r\n\r\n\tpublic TIntHashSet getClosedNeighborhood(T queryPoint, double epsilon) {\r\n\t\tTIntHashSet neighborhood = new TIntHashSet();\r\n\t\t\r\n\t\tint n = this.elements.length;\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tif (this.distance(queryPoint, this.elements[i]) <= epsilon) {\r\n\t\t\t\tneighborhood.add(i);\r\n\t\t\t}\t\r\n\t\t}\r\n\r\n\t\treturn neighborhood;\r\n\t}\r\n\t\r\n\tpublic abstract double distance(T a, T b);\r\n\r\n\tpublic T getPoint(int index) {\r\n\t\treturn this.elements[index];\r\n\t}\r\n\r\n\tpublic T[] getPoints() {\r\n\t\treturn this.elements;\r\n\t}\r\n\r\n\tpublic double distance(int i, int j) {\r\n\t\treturn this.distance(this.elements[i], this.elements[j]);\r\n\t}\r\n\r\n\tpublic int size() {\r\n\t\treturn this.elements.length;\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/impl/TruncatedPriorityQueue.java",
    "content": "package edu.stanford.math.plex4.metric.impl;\n\nimport java.util.ArrayList;\nimport java.util.LinkedList;\nimport java.util.List;\n\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectDoublePair;\n\n/**\n * <p>This class is used for holding the set of k-indices with the lowest ranks or values.\n * It is used by adding elements along with their ranks. It stores a maximum of k values, \n * and discards all values that are not in the lowest k.</p>\n * \n * <p>An example of a use of this class is for maintaining a list of k-nearest neighbors.</p>\n * \n * @author Andrew Tausz\n *\n * @param <T> the index type\n */\npublic class TruncatedPriorityQueue<T> {\n\tprivate final LinkedList<ObjectDoublePair<T>> list = new LinkedList<ObjectDoublePair<T>>();\n\tprivate final int k;\n\t\n\tpublic TruncatedPriorityQueue(int k) {\n\t\tthis.k = k;\n\t}\n\t\n\t/**\n\t * This function returns the list of object-value pairs currently in the queue.\n\t * \n\t * @return a list of object-value pairs\n\t */\n\tpublic List<ObjectDoublePair<T>> getListOfPairs() {\n\t\treturn this.list;\n\t}\n\t\n\t/**\n\t * This function returns the list of indices currently in the queue.\n\t * \n\t * @return a list of indices\n\t */\n\tpublic List<T> getIndices() {\n\t\tList<T> indices = new ArrayList<T>();\n\t\t\n\t\tfor (ObjectDoublePair<T> pair: this.list) {\n\t\t\tindices.add(pair.getFirst());\n\t\t}\n\t\t\n\t\treturn indices;\n\t}\n\t\n\t/**\n\t * <p>This function inserts the given object (or index), with a specified value into the queue.\n\t * It holds the elements in sorted order. Note, however, if the queue is already full and the\n\t * value of the inserted object is higher than all of the elements in the queue, it is not\n\t * actually inserted.</p>\n\t * \n\t * <p>Examples:</p>\n\t * <p>list = {(a, 1), (b, 4)}. Inserting (c, 2) produces {(a, 1), (c, 2), (b, 4)}, when k >= 3.\n\t * If k == 2, then the result is {(a, 1), (c, 2)}. Inserting (d, 8), with k == 2 does not\n\t * modify the list.</p>\n\t * \n\t * @param index the object to insert\n\t * @param value the value of the object\n\t */\n\tpublic void insert(T index, double value) {\n\t\tif (this.list.isEmpty()) {\n\t\t\tthis.list.add(new ObjectDoublePair<T>(index, value));\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif (value < this.list.getFirst().getSecond()) {\n\t\t\tthis.list.addFirst(new ObjectDoublePair<T>(index, value));\n\t\t\tthis.truncate();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif (this.list.getLast().getSecond() <= value) {\n\t\t\tthis.list.addLast(new ObjectDoublePair<T>(index, value));\n\t\t\tthis.truncate();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t// at this point we know list[0] <= value < list[k - 1]\n\t\t\n\t\tint i = 0;\n\t\tint insertionPoint = 0;\n\t\tfor (ObjectDoublePair<T> pair: this.list) {\n\t\t\tif (value < pair.getSecond()) {\n\t\t\t\tinsertionPoint = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\t\n\t\tthis.list.add(insertionPoint, new ObjectDoublePair<T>(index, value));\n\t\tthis.truncate();\n\t}\n\t\n\t/**\n\t * This function truncates the queue so that it contains a maximum of k elements.\n\t */\n\tprivate void truncate() {\n\t\twhile (this.list.size() > k) {\n\t\t\tthis.list.removeLast();\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/interfaces/AbstractIntMetricSpace.java",
    "content": "package edu.stanford.math.plex4.metric.interfaces;\r\n\r\n/**\r\n * This interface defines the functionality of a finite metric space where\r\n * the objects are indexed by integers. Note that the indices are designed\r\n * to be in the range {0, ..., size - 1}. \r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic interface AbstractIntMetricSpace {\r\n\t\r\n\t/**\r\n\t * This function returns the distance between the object at index i and the\r\n\t * object at index j.\r\n\t * \r\n\t * @param i the index of the first object\r\n\t * @param j the index of the second object\r\n\t * @return the distance between the objects at the two given indices\r\n\t */\r\n\tpublic double distance(int i, int j);\r\n\t\r\n\t/**\r\n\t * This function returns the number of points in the metric space.\r\n\t * \r\n\t * @return the number of points in the metric space.\r\n\t */\r\n\tpublic int size();\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/interfaces/AbstractObjectMetric.java",
    "content": "package edu.stanford.math.plex4.metric.interfaces;\n\n/**\n * This interface defines a metric on the type T. Note that\n * an implementing class should obey the axioms of a metric space -\n * namely symmetry, positivity and the triangle inequality.\n * \n * @author Andrew Tausz\n *\n * @param <T> the underlying type of the metric\n */\npublic interface AbstractObjectMetric<T> {\n\t\n\t/**\n\t * This function returns the distance between two points.\n\t * \n\t * @param a the first point\n\t * @param b the second point\n\t * @return the distance between the two points\n\t */\n\tpublic double distance(T a, T b);\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/interfaces/AbstractObjectMetricSpace.java",
    "content": "package edu.stanford.math.plex4.metric.interfaces;\r\n\r\n/**\r\n * This interface defines the functionality of a finite metric space whose points are\r\n * of type T. The points in the metric space are indexed by the values {0, ..., size - 1}\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T> the type of the points in the metric space\r\n */\r\npublic interface AbstractObjectMetricSpace<T> extends AbstractIntMetricSpace, AbstractObjectMetric<T> {\r\n\t\r\n\t/**\r\n\t * This function returns the point at the specified index.\r\n\t * \r\n\t * @param index the index of the point to retrieve\r\n\t * @return the point at the given index\r\n\t */\r\n\tpublic T getPoint(int index);\r\n\t\r\n\t/**\r\n\t * This function returns the set of points in the metric space as an array. The returned\r\n\t * array satisfies the requirement that the indices of the points in the array are equal to the\r\n\t * indices of the points within the metric space.\r\n\t * \r\n\t * @return an array containing the points of the metric space\r\n\t */\r\n\tpublic T[] getPoints();\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/interfaces/AbstractSearchableMetricSpace.java",
    "content": "package edu.stanford.math.plex4.metric.interfaces;\r\n\r\nimport gnu.trove.TIntHashSet;\r\n\r\n/**\r\n * This interface defines the functionality of a metric space with various querying \r\n * capabilities. \r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T> the type of the points in the metric space\r\n */\r\npublic interface AbstractSearchableMetricSpace<T> extends AbstractObjectMetricSpace<T> {\r\n\t\r\n\t/**\r\n\t * This function returns the index of the point within the metric space nearest to \r\n\t * the given query point.\r\n\t * \r\n\t * @param queryPoint the query point\r\n\t * @return the index of the nearest point in the metric space\r\n\t */\r\n\tpublic int getNearestPointIndex(T queryPoint);\r\n\t\r\n\t/**\r\n\t * This function returns the set of indices of points that are contained in the open ball\r\n\t * of radius epsilon, centered at the specified query point. That is it returns all points\r\n\t * satisfying d(p_i, q) < epsilon, where q is the query point.\r\n\t * \r\n\t * @param queryPoint the center of the open ball\r\n\t * @param epsilon the radius of the open ball\r\n\t * @return the set of indices of points contained in the open ball\r\n\t */\r\n\tpublic TIntHashSet getOpenNeighborhood(T queryPoint, double epsilon);\r\n\t\r\n\t/**\r\n\t * This function returns the set of indices of points that are contained in the closed ball\r\n\t * of radius epsilon, centered at the specified query point. That is it returns all points\r\n\t * satisfying d(p_i, q) <= epsilon, where q is the query point.\r\n\t * \r\n\t * @param queryPoint the center of the closed ball\r\n\t * @param epsilon the radius of the closed ball\r\n\t * @return the set of indices of points contained in the closed ball\r\n\t */\r\n\tpublic TIntHashSet getClosedNeighborhood(T queryPoint, double epsilon);\r\n\t\r\n\t/**\r\n\t * This function returns the indices of the k points that are closest to the given query point.\r\n\t * \r\n\t * @param queryPoint the reference point\r\n\t * @param k the number of nearest neighbors to get\r\n\t * @return the k-nearest neighbors of the query point\r\n\t */\r\n\tpublic TIntHashSet getKNearestNeighbors(T queryPoint, int k);\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/landmark/ExplicitLandmarkSelector.java",
    "content": "package edu.stanford.math.plex4.metric.landmark;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\n\npublic class ExplicitLandmarkSelector<T> extends LandmarkSelector<T> {\n\tpublic ExplicitLandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int[] indices) {\n\t\tsuper(metricSpace, indices);\n\t}\n\n\t@Override\n\tprotected int[] computeLandmarkSet() {\n\t\treturn null;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/landmark/LandmarkSelector.java",
    "content": "package edu.stanford.math.plex4.metric.landmark;\r\n\r\nimport java.util.List;\r\n\r\nimport edu.stanford.math.plex4.metric.impl.TruncatedPriorityQueue;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\r\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\r\nimport edu.stanford.math.primitivelib.utility.Infinity;\r\nimport gnu.trove.TIntHashSet;\r\n\r\n/**\r\n * <p>\r\n * This abstract class defines the functionality of a landmark set within an\r\n * arbitrary finite metric space. A landmark set is used as an approximation to\r\n * the whole metric space for efficiency purposes. It also tends to denoise the\r\n * dataset under investigation. For further information about landmark sets,\r\n * please consult the paper \"Topological estimation using witness complexes\", by\r\n * Vin de Silva and Gunnar Carlsson.\r\n * </p>\r\n * \r\n * <p>\r\n * A class that derives from LandmarkSelector must implement the\r\n * computeLandmarkSet function which implements the computation of the landmark\r\n * set.\r\n * </p>\r\n * \r\n * @author Andrew Tausz\r\n * \r\n * @param <T>\r\n *            the underlying type of the metric space\r\n */\r\npublic abstract class LandmarkSelector<T> implements AbstractSearchableMetricSpace<T> {\r\n\r\n\t/**\r\n\t * This is the underlying metric space upon which the landmark set is build.\r\n\t */\r\n\tprotected final AbstractSearchableMetricSpace<T> metricSpace;\r\n\r\n\t/**\r\n\t * This is the size of the landmark set\r\n\t */\r\n\tprotected final int landmarkSetSize;\r\n\r\n\t/**\r\n\t * This array holds the mapping between the indices of the landmark points,\r\n\t * and the indices within the metric space.\r\n\t */\r\n\tprotected int[] indexMapping;\r\n\r\n\t/**\r\n\t * This constructor initializes the landmark selector with a finite metric\r\n\t * space, and a size parameter.\r\n\t * \r\n\t * @param metricSpace\r\n\t *            the metric space to build the landmarks set in\r\n\t * @param landmarkSetSize\r\n\t *            the size of the landmark set\r\n\t * @param computeIndexMapping\r\n\t *            whether or not to compute the index mapping or not\r\n\t */\r\n\tpublic LandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize, boolean computeIndexMapping) {\r\n\t\tExceptionUtility.verifyNonNull(metricSpace);\r\n\t\tExceptionUtility.verifyLessThanOrEqual(landmarkSetSize, metricSpace.size());\r\n\r\n\t\tthis.metricSpace = metricSpace;\r\n\t\tthis.landmarkSetSize = landmarkSetSize;\r\n\r\n\t\tif (computeIndexMapping) {\r\n\t\t\tthis.indexMapping = this.computeLandmarkSet();\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor initializes the landmark selector with a finite metric\r\n\t * space, and a size parameter.\r\n\t * \r\n\t * @param metricSpace\r\n\t *            the metric space to build the landmarks set in\r\n\t * @param landmarkSetSize\r\n\t *            the size of the landmark set\r\n\t */\r\n\tpublic LandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize) {\r\n\t\tthis(metricSpace, landmarkSetSize, true);\r\n\t}\r\n\r\n\tpublic LandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int[] indices) {\r\n\t\tExceptionUtility.verifyNonNull(metricSpace);\r\n\t\tExceptionUtility.verifyLessThanOrEqual(indices.length, metricSpace.size());\r\n\r\n\t\tthis.metricSpace = metricSpace;\r\n\t\tthis.landmarkSetSize = indices.length;\r\n\r\n\t\tthis.indexMapping = indices;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the index of the i-th landmark point.\r\n\t * \r\n\t * @param i\r\n\t *            the index within the set of landmark points\r\n\t * @return the index of the i-th landmark point\r\n\t */\r\n\tpublic int getLandmarkIndex(int i) {\r\n\t\treturn this.indexMapping[i];\r\n\t}\r\n\r\n\tpublic int[] getLandmarkPoints() {\r\n\t\treturn this.indexMapping;\r\n\t}\r\n\r\n\tpublic int size() {\r\n\t\treturn this.landmarkSetSize;\r\n\t}\r\n\r\n\tpublic double distance(int i, int j) {\r\n\t\treturn this.metricSpace.distance(this.indexMapping[i], this.indexMapping[j]);\r\n\t}\r\n\r\n\tpublic double distance(T a, T b) {\r\n\t\treturn this.metricSpace.distance(a, b);\r\n\t}\r\n\r\n\tpublic T getPoint(int index) {\r\n\t\treturn this.metricSpace.getPoint(this.getLandmarkIndex(index));\r\n\t}\r\n\r\n\tpublic AbstractSearchableMetricSpace<T> getUnderlyingMetricSpace() {\r\n\t\treturn this.metricSpace;\r\n\t}\r\n\r\n\tpublic T[] getPoints() {\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n\t/**\r\n\t * This function constructs the set of landmark points. It must return an\r\n\t * array of size landmarkSetSize, which contains the indices of the landmark\r\n\t * points within the metric space.\r\n\t * \r\n\t * @return an array of indices corresponding to the landmark points in the\r\n\t *         metric space\r\n\t */\r\n\tprotected abstract int[] computeLandmarkSet();\r\n\r\n\t/**\r\n\t * This function returns the maximum distance between points in the landmark\r\n\t * selection and points not in the selection. In other words, it returns R =\r\n\t * max_{x in X} d(x, L), where d(x, L) = min_{l in L} d(x, l).\r\n\t * \r\n\t * @return the maximum distance between points in the landmark selection and\r\n\t *         points not in it\r\n\t */\r\n\tpublic double getMaxDistanceFromPointsToLandmarks() {\r\n\t\tint[] landmarkArray = this.getLandmarkPoints();\r\n\t\tTIntHashSet landmarkSet = toSet(this.getLandmarkPoints());\r\n\r\n\t\tdouble maxMinDistance = 0;\r\n\r\n\t\tfor (int x = 0; x < this.getUnderlyingMetricSpace().size(); x++) {\r\n\t\t\tif (landmarkSet.contains(x)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tdouble minDistance = Infinity.Double.getPositiveInfinity();\r\n\t\t\tfor (int l : landmarkArray) {\r\n\t\t\t\tdouble distance = this.getUnderlyingMetricSpace().distance(x, l);\r\n\t\t\t\tif (distance < minDistance) {\r\n\t\t\t\t\tminDistance = distance;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (minDistance > maxMinDistance) {\r\n\t\t\t\tmaxMinDistance = minDistance;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn maxMinDistance;\r\n\t}\r\n\r\n\tprivate static TIntHashSet toSet(int[] values) {\r\n\t\tTIntHashSet result = new TIntHashSet();\r\n\r\n\t\tfor (int value : values) {\r\n\t\t\tresult.add(value);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic TIntHashSet getClosedNeighborhood(T queryPoint, double epsilon) {\r\n\t\tTIntHashSet result = new TIntHashSet();\r\n\t\tfor (int i = 0; i < this.landmarkSetSize; i++) {\r\n\t\t\tif (this.distance(this.getPoint(i), queryPoint) <= epsilon) {\r\n\t\t\t\tresult.add(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic TIntHashSet getOpenNeighborhood(T queryPoint, double epsilon) {\r\n\t\tTIntHashSet result = new TIntHashSet();\r\n\t\tfor (int i = 0; i < this.landmarkSetSize; i++) {\r\n\t\t\tif (this.distance(this.getPoint(i), queryPoint) <= epsilon) {\r\n\t\t\t\tresult.add(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic TIntHashSet getKNearestNeighbors(T queryPoint, int k) {\r\n\t\tTruncatedPriorityQueue<Integer> tpq = new TruncatedPriorityQueue<Integer>(k);\r\n\r\n\t\tfor (int i = 0; i < this.landmarkSetSize; i++) {\r\n\t\t\tT element = this.getPoint(i);\r\n\r\n\t\t\tif (element.equals(queryPoint)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tdouble distance = this.distance(queryPoint, element);\r\n\t\t\ttpq.insert(i, distance);\r\n\t\t}\r\n\r\n\t\tTIntHashSet result = new TIntHashSet();\r\n\r\n\t\tList<Integer> indices = tpq.getIndices();\r\n\t\tfor (Integer index : indices) {\r\n\t\t\tresult.add(index);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic int getNearestPointIndex(T queryPoint) {\r\n\t\tint minIndex = 0;\r\n\t\tdouble distance = 0, minDistance = 0;\r\n\r\n\t\tfor (int i = 0; i < this.landmarkSetSize; i++) {\r\n\t\t\tdistance = this.distance(this.getPoint(i), queryPoint);\r\n\t\t\tif (i == 0 || distance < minDistance) {\r\n\t\t\t\tminDistance = distance;\r\n\t\t\t\tminIndex = i;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn minIndex;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/landmark/MaxMinLandmarkSelector.java",
    "content": "package edu.stanford.math.plex4.metric.landmark;\r\n\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport edu.stanford.math.primitivelib.utility.Infinity;\r\nimport gnu.trove.TIntHashSet;\r\nimport gnu.trove.TIntIterator;\r\n\r\n/**\r\n * This class implements sequential max-min landmark selection of points from a \r\n * metric space. This method of landmark selection chooses points that are as\r\n * far spread out as possible, using the following inductive procedure:\r\n * Suppose that {l_0, ..., l_{i-1}} have been chosen as landmark points.\r\n * Define the function f(z) = min{d(z, l_0), ...., d(z, l_{i-1}} and define \r\n * l_i to be l_i = arg max f(z). We start with l_0 being chosen randomly.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T> the type of the underlying metric space\r\n */\r\npublic class MaxMinLandmarkSelector<T> extends LandmarkSelector<T> {\r\n\r\n\tprivate int firstPoint;\r\n\t\r\n\t/**\r\n\t * This constructor initializes the landmark selector with a finite metric space,\r\n\t * and a size parameter.\r\n\t * \r\n\t * @param metricSpace the metric space to build the landmarks set in\r\n\t * @param landmarkSetSize the size of the landmark set\r\n\t */\r\n\tpublic MaxMinLandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize) {\r\n\t\tsuper(metricSpace, landmarkSetSize, false);\r\n\t\tthis.firstPoint = RandomUtility.nextUniformInt(0, this.metricSpace.size() - 1);\r\n\t\tthis.indexMapping = this.computeLandmarkSet();\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor initializes the landmark selector with a finite metric space,\r\n\t * and a size parameter.\r\n\t * \r\n\t * @param metricSpace the metric space to build the landmarks set in\r\n\t * @param landmarkSetSize the size of the landmark set\r\n\t * @param firstPoint the initial point to use\r\n\t */\r\n\tpublic MaxMinLandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize, int firstPoint) {\r\n\t\tsuper(metricSpace, landmarkSetSize, false);\r\n\t\tthis.firstPoint = firstPoint;\r\n\t\tthis.indexMapping = this.computeLandmarkSet();\r\n\t}\r\n\r\n\t@Override\r\n\tprotected int[] computeLandmarkSet() {\r\n\t\tint[] landmarkIndices = new int[this.landmarkSetSize];\r\n\r\n\t\tint metricSpaceSize = this.metricSpace.size();\r\n\r\n\t\tTIntHashSet landmarkSet = new TIntHashSet();\r\n\r\n\t\tlandmarkSet.add(this.firstPoint);\r\n\t\tlandmarkIndices[0] = this.firstPoint;\r\n\r\n\t\t/*\r\n\t\t * Construct the landmark set inductively. Suppose that\r\n\t\t * {l_0, ..., l_{i-1}} have been chosen as landmark points.\r\n\t\t * Define the function \r\n\t\t * f(z) = min{d(z, l_0), ...., d(z, l_{i-1}}\r\n\t\t * and define l_i to be l_i = arg max f(z)\r\n\t\t * \r\n\t\t */\r\n\t\tfor (int i = 1; i < this.landmarkSetSize; i++) {\r\n\t\t\tdouble max_f_value = Infinity.Double.getNegativeInfinity();\r\n\t\t\tint arg_max_f = 0;\r\n\t\t\tfor (int z_index = 0; z_index < metricSpaceSize; z_index++) {\r\n\t\t\t\tif (!landmarkSet.contains(z_index)) {\r\n\t\t\t\t\tdouble f_value = this.computeMinDistance(z_index, landmarkSet);\r\n\t\t\t\t\tif (f_value > max_f_value) {\r\n\t\t\t\t\t\tmax_f_value = f_value;\r\n\t\t\t\t\t\targ_max_f = z_index;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlandmarkSet.add(arg_max_f);\r\n\t\t\tlandmarkIndices[i] = arg_max_f;\r\n\t\t}\r\n\r\n\t\treturn landmarkIndices;\r\n\t}\r\n\r\n\t/**\r\n\t * This function computes the function f(z) = min{d(z, l_0), ...., d(z, l_{i-1}}.\r\n\t * \r\n\t * @param queryPointIndex the index of the argument z in the above expression\r\n\t * @param existingLandmarkPoints the set {l_0, ..., l_{i-1}}\r\n\t * @return the value min{d(z, l_0), ...., d(z, l_{i-1}}\r\n\t */\r\n\tprivate double computeMinDistance(int queryPointIndex, TIntHashSet existingLandmarkPoints) {\r\n\t\tdouble minDistance = Infinity.Double.getPositiveInfinity();\r\n\r\n\t\tfor (TIntIterator iterator = existingLandmarkPoints.iterator(); iterator.hasNext(); ) {\r\n\t\t\tminDistance = Math.min(minDistance, this.metricSpace.distance(queryPointIndex, iterator.next()));\r\n\t\t}\r\n\r\n\t\treturn minDistance;\r\n\t}\r\n\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/landmark/RandomLandmarkSelector.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.metric.landmark;\r\n\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport gnu.trove.TIntHashSet;\r\nimport gnu.trove.TIntIterator;\r\n\r\n/**\r\n * This class defines a landmark set in a finite metric space by random selection.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T> the type of the underlying metric space\r\n */\r\npublic class RandomLandmarkSelector<T> extends LandmarkSelector<T> {\r\n\r\n\t/**\r\n\t * This constructor initializes the landmark selector with a finite metric space,\r\n\t * and a size parameter.\r\n\t * \r\n\t * @param metricSpace the metric space to build the landmarks set in\r\n\t * @param landmarkSetSize the size of the landmark set\r\n\t */\r\n\tpublic RandomLandmarkSelector(AbstractSearchableMetricSpace<T> metricSpace, int landmarkSetSize) {\r\n\t\tsuper(metricSpace, landmarkSetSize);\r\n\t}\r\n\t\r\n\t@Override\r\n\tprotected int[] computeLandmarkSet() {\r\n\t\tTIntHashSet landmarkSet = RandomUtility.randomSubset(this.landmarkSetSize, this.metricSpace.size());\r\n\t\tint[] indices = new int[this.landmarkSetSize];\r\n\t\t\r\n\t\tint index = 0;\r\n\t\tfor (TIntIterator iterator = landmarkSet.iterator(); iterator.hasNext(); ) {\r\n\t\t\tindices[index] = iterator.next();\r\n\t\t\tindex++;\r\n\t\t}\r\n\t\t\r\n\t\treturn indices;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/utility/DensityEstimation.java",
    "content": "package edu.stanford.math.plex4.metric.utility;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\n\npublic class DensityEstimation {\n\tpublic static double[] performGaussianKernelDensityEstimation(AbstractIntMetricSpace metricSpace, double sigma) {\n\t\tint n = metricSpace.size();\n\t\tdouble[] densities = new double[n];\n\t\tdouble distance = 0;\n\t\tdouble sigmaSquared = sigma * sigma;\n\t\tdouble factor = 1.0d / (Math.sqrt(2 * Math.PI) * sigma * n);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tfor (int j = 0; j < n; j++) {\n\t\t\t\tdistance = metricSpace.distance(i, j);\n\t\t\t\tdensities[i] += Math.exp(- (distance * distance / sigmaSquared));\n\t\t\t}\n\t\t\tdensities[i] *= factor;\n\t\t}\n\t\t\n\t\treturn densities;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/metric/utility/MetricUtility.java",
    "content": "package edu.stanford.math.plex4.metric.utility;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.Arrays;\r\nimport java.util.List;\r\n\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractObjectMetricSpace;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\r\nimport edu.stanford.math.plex4.utility.ArrayUtility;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport edu.stanford.math.primitivelib.utility.Infinity;\r\n\r\n/**\r\n * This class contains various functions for dealing with metric spaces.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class MetricUtility {\r\n\t\r\n\t/**\r\n\t * This function estimates the diameter of the supplied metric space. The\r\n\t * diameter is defined as the smallest number r such that d(x, y) <= r for all\r\n\t * x, y in the space. The estimate is obtained by randomly choosing pairs\r\n\t * (i, j), and taking the maximum distance over all pairs. \r\n\t * \r\n\t * @param metricSpace the metric space to estimate the diameter of\r\n\t * @param trials the number of random pairs to choose\r\n\t * @return an estimate of the diameter of the metric space\r\n\t */\r\n\tpublic static double estimateDiameter(AbstractIntMetricSpace metricSpace, int trials) {\r\n\t\tdouble diameterEstimate = 0;\r\n\t\tint n = metricSpace.size();\r\n\t\t\r\n\t\tfor (int trial = 0; trial < trials; trial++) {\r\n\t\t\tint i = RandomUtility.nextUniformInt(0, n - 1);\r\n\t\t\tint j = RandomUtility.nextUniformIntExcluded(0, n - 1, i);\r\n\t\t\tdouble distance = metricSpace.distance(i, j);\r\n\t\t\tdiameterEstimate = Math.max(distance, diameterEstimate);\r\n\t\t}\r\n\t\t\r\n\t\treturn diameterEstimate * (((double) trials + 1) / ((double) trials));\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function performs randomized sampling to find the estimated diameter of the given\r\n\t * metric space. It uses a default number of samples equal to 100.\r\n\t * \r\n\t * @param metricSpace the metric space to estimate the diameter of\r\n\t * @return an estimate of the diameter of the metric space\r\n\t */\r\n\tpublic static double estimateDiameter(AbstractIntMetricSpace metricSpace) {\r\n\t\treturn estimateDiameter(metricSpace, Math.min(metricSpace.size(), 100));\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the coordinate-wise maxima of a given Euclidean metric space.\r\n\t * \r\n\t * @param metricSpace the metric space to compute the maxima for\r\n\t * @return the componentwise minima of the elements of the metric space\r\n\t */\r\n\tpublic static double[] computeMaxima(AbstractObjectMetricSpace<double[]> metricSpace) {\r\n\t\tint dimension = metricSpace.getPoint(0).length;\r\n\t\tint numPoints = metricSpace.size();\r\n\t\tdouble[] maxima = new double[dimension];\r\n\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\tmaxima[j] = Infinity.Double.getNegativeInfinity();\r\n\t\t}\r\n\t\tfor (int i = 0; i < numPoints; i++) {\r\n\t\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\t\tmaxima[j] = Math.max(maxima[j], metricSpace.getPoint(i)[j]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn maxima;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the coordinate-wise minima of a given Euclidean metric space.\r\n\t * \r\n\t * @param metricSpace the metric space to compute the minima for\r\n\t * @return the componentwise minima of the elements of the metric space\r\n\t */\r\n\tpublic static double[] computeMinima(AbstractObjectMetricSpace<double[]> metricSpace) {\r\n\t\tint dimension = metricSpace.getPoint(0).length;\r\n\t\tint numPoints = metricSpace.size();\r\n\t\tdouble[] minima = new double[dimension];\r\n\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\tminima[j] = Infinity.Double.getPositiveInfinity();\r\n\t\t}\r\n\t\tfor (int i = 0; i < numPoints; i++) {\r\n\t\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\t\tminima[j] = Math.min(minima[j], metricSpace.getPoint(i)[j]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn minima;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the centroid of the set of points within the metric space.\r\n\t * \r\n\t * @param metricSpace the metric space to compute the centroid of\r\n\t * @return the centroid of the given metric space\r\n\t */\r\n\tpublic static double[] computeCentroid(AbstractObjectMetricSpace<double[]> metricSpace) {\r\n\t\tint dimension = metricSpace.getPoint(0).length;\r\n\t\tint numPoints = metricSpace.size();\r\n\t\tdouble[] means = new double[dimension];\r\n\t\tfor (int i = 0; i < numPoints; i++) {\r\n\t\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\t\tmeans[j] += metricSpace.getPoint(i)[j];\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfor (int j = 0; j < dimension; j++) {\r\n\t\t\tmeans[j] /= numPoints;\r\n\t\t}\r\n\t\treturn means;\r\n\t}\r\n\r\n\tpublic static double[] getAllDistances(AbstractIntMetricSpace metricSpace, int index) {\r\n\t\tint n = metricSpace.size();\r\n\t\tdouble[] distances = new double[n];\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tdistances[i] = metricSpace.distance(i, index);\r\n\t\t}\r\n\t\t\r\n\t\treturn distances;\r\n\t}\r\n\t\r\n\tpublic static <T> double[] getKthNearestNeighborDistances(AbstractSearchableMetricSpace<T> metricSpace, int k) {\r\n\t\tint n = metricSpace.size();\r\n\t\t\r\n\t\tdouble[] neighborDistances = new double[n];\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tdouble[] distances = getAllDistances(metricSpace, i);\r\n\t\t\tArrays.sort(distances);\r\n\t\t\tneighborDistances[i] = distances[k];\r\n\t\t}\r\n\t\t\r\n\t\treturn neighborDistances;\r\n\t}\r\n\t\r\n\tpublic static <T> int[] filterByNeighborDistance(AbstractSearchableMetricSpace<T> metricSpace, int k, double proportion) {\r\n\t\tint n = metricSpace.size();\r\n\t\t\r\n\t\tdouble[] neighborDistances = getKthNearestNeighborDistances(metricSpace, k);\r\n\t\t\r\n\t\tdouble[] sortedDistances = ArrayUtility.copyOf(neighborDistances, neighborDistances.length);\r\n\t\tArrays.sort(sortedDistances);\r\n\t\t\r\n\t\tint cutoffIndex = (int) proportion * neighborDistances.length;\r\n\t\t\r\n\t\tif (cutoffIndex >= neighborDistances.length) {\r\n\t\t\tcutoffIndex = neighborDistances.length - 1;\r\n\t\t}\r\n\t\t\r\n\t\tif (cutoffIndex < 0) {\r\n\t\t\tcutoffIndex = 0;\r\n\t\t}\r\n\t\t\r\n\t\tdouble cutoffDistance = sortedDistances[cutoffIndex];\r\n\t\t\r\n\t\tList<Integer> filteredList = new ArrayList<Integer>();\r\n\t\t\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tif (neighborDistances[i] <= cutoffDistance) {\r\n\t\t\t\tfilteredList.add(i);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tint[] indices = new int[filteredList.size()];\r\n\t\t\r\n\t\tint j = 0;\r\n\t\tfor (Integer index: filteredList) {\r\n\t\t\tindices[j] = index;\r\n\t\t\tj++;\r\n\t\t}\r\n\t\t\r\n\t\treturn indices;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/derived/DualStream.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.streams.derived;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.Collections;\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\nimport java.util.List;\r\nimport java.util.Set;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\r\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.array.ObjectArrayUtility;\r\nimport edu.stanford.math.primitivelib.autogen.pair.IntObjectPair;\r\nimport edu.stanford.math.primitivelib.collections.utility.ReversedComparator;\r\nimport gnu.trove.THashMap;\r\n\r\n/**\r\n * This class implements the dual cochain complex from a given chain complex. It \r\n * transforms the boundary operators into coboundary operators.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T>\r\n */\r\npublic class DualStream<T> implements AbstractFilteredStream<T> {\r\n\t\r\n\t/**\r\n\t * This is the chain complex.\r\n\t */\r\n\tprivate final AbstractFilteredStream<T> forwardStream;\r\n\t\r\n\t/**\r\n\t * This map contains the coboundaries of the elements in the stream. Unfortunately,\r\n\t * there is no general way of getting around this.\r\n\t */\r\n\tprivate final THashMap<T, T[]> coboundaryMap = new THashMap<T, T[]>();\r\n\t\r\n\t/**\r\n\t * This map contains the coefficients of the coboundaries of the elements in the stream.\r\n\t */\r\n\tprivate final THashMap<T, int[]> coboundaryCoefficientMap = new THashMap<T, int[]>();\r\n\t\r\n\t/**\r\n\t * This stores the elements in the stream in reversed order.\r\n\t */\r\n\tprivate final List<T> reversedElements = new ArrayList<T>();\r\n\t\r\n\t/**\r\n\t * This constructor initializes the dualized stream from the regular (forward stream).\r\n\t * \r\n\t * @param forwardStream the forward stream\r\n\t */\r\n\tpublic DualStream(AbstractFilteredStream<T> forwardStream) {\r\n\t\tthis.forwardStream = forwardStream;\r\n\t\tthis.constructCoboundaries();\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Iterable#iterator()\r\n\t */\r\n\tpublic Iterator<T> iterator() {\r\n\t\treturn this.reversedElements.iterator();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getFiltrationIndex(java.lang.Object)\r\n\t */\r\n\tpublic int getFiltrationIndex(T basisElement) {\r\n\t\treturn this.forwardStream.getFiltrationIndex(basisElement);\r\n\t}\r\n\t\r\n\tpublic double getFiltrationValue(T basisElement) {\r\n\t\treturn this.forwardStream.getFiltrationValue(basisElement);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object)\r\n\t */\r\n\tpublic boolean containsElement(T basisElement) {\r\n\t\t// TODO Implement this if you need it.\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\t\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundary(java.lang.Object)\r\n\t */\r\n\tpublic T[] getBoundary(T basisElement) {\r\n\t\tif (this.coboundaryMap.containsKey(basisElement)) {\r\n\t\t\treturn this.coboundaryMap.get(basisElement);\r\n\t\t} else {\r\n\t\t\treturn ObjectArrayUtility.createArray(0, basisElement);\r\n\t\t}\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundaryCoefficients(java.lang.Object)\r\n\t */\r\n\tpublic int[] getBoundaryCoefficients(T basisElement) {\r\n\t\tif (this.coboundaryCoefficientMap.containsKey(basisElement)) {\r\n\t\t\treturn this.coboundaryCoefficientMap.get(basisElement);\r\n\t\t} else {\r\n\t\t\treturn new int[0];\r\n\t\t}\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getDimension(java.lang.Object)\r\n\t */\r\n\tpublic int getDimension(T basisElement) {\r\n\t\treturn this.forwardStream.getDimension(basisElement);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#finalizeStream()\r\n\t */\r\n\tpublic void finalizeStream() {\r\n\t\tif (!this.forwardStream.isFinalized()) {\r\n\t\t\tthis.forwardStream.finalizeStream();\r\n\t\t}\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#isFinalized()\r\n\t */\r\n\tpublic boolean isFinalized() {\r\n\t\treturn this.forwardStream.isFinalized();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getSize()\r\n\t */\r\n\tpublic int getSize() {\r\n\t\treturn this.forwardStream.getSize();\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function constructs the coboundary maps.\r\n\t */\r\n\tprivate void constructCoboundaries() {\r\n\t\tTHashMap<T, ArrayList<IntObjectPair<T>>> coboundaryListMap = new THashMap<T, ArrayList<IntObjectPair<T>>>();\r\n\t\tfor (T element: this.forwardStream) {\r\n\t\t\tthis.reversedElements.add(element);\r\n\t\t\tT[] boundary = this.forwardStream.getBoundary(element);\r\n\t\t\tint[] boundaryCoefficients = this.forwardStream.getBoundaryCoefficients(element);\r\n\t\t\tfor (int i = 0; i < boundary.length; i++) {\r\n\t\t\t\tT boundaryElement = boundary[i];\r\n\t\t\t\tif (!coboundaryListMap.containsKey(boundaryElement)) {\r\n\t\t\t\t\tcoboundaryListMap.put(boundaryElement, new ArrayList<IntObjectPair<T>>());\r\n\t\t\t\t}\r\n\t\t\t\tcoboundaryListMap.get(boundaryElement).add(new IntObjectPair<T>(boundaryCoefficients[i], element));\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tSet<T> coboundaryKeys = coboundaryListMap.keySet();\r\n\t\tfor (T element: coboundaryKeys) {\r\n\t\t\tArrayList<IntObjectPair<T>> coboundary = coboundaryListMap.get(element);\r\n\t\t\tT[] coboundaryArray = ObjectArrayUtility.createArray(coboundary.size(), element);\r\n\t\t\tint[] coboundaryCoefficients = new int[coboundary.size()];\r\n\t\t\tint i = 0;\r\n\t\t\tfor (IntObjectPair<T> pair: coboundary) {\r\n\t\t\t\tcoboundaryArray[i] = pair.getSecond();\r\n\t\t\t\tcoboundaryCoefficients[i] = pair.getFirst();\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t\tthis.coboundaryMap.put(element, coboundaryArray);\r\n\t\t\tthis.coboundaryCoefficientMap.put(element, coboundaryCoefficients);\r\n\t\t}\r\n\t\t\r\n\t\tCollections.reverse(this.reversedElements);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getMaximumFiltrationIndex()\r\n\t */\r\n\tpublic int getMaximumFiltrationIndex() {\r\n\t\treturn this.forwardStream.getMaximumFiltrationIndex();\r\n\t}\r\n\t\r\n\tpublic int getMinimumFiltrationIndex() {\r\n\t\treturn this.forwardStream.getMinimumFiltrationIndex();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream#getBasisComparator()\r\n\t */\r\n\tpublic Comparator<T> getBasisComparator() {\r\n\t\treturn new ReversedComparator<T>(this.forwardStream.getBasisComparator());\r\n\t}\r\n\r\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\r\n\t\treturn this.forwardStream.transform(barcodeCollection);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/derived/HomStream.java",
    "content": "package edu.stanford.math.plex4.streams.derived;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.Iterator;\r\nimport java.util.List;\r\nimport java.util.Map;\r\n\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.streams.utility.StreamUtility;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.DoubleSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\n\r\n/**\r\n * This implements the hom-complex from two filtered chain complexes. For the definition\r\n * of the hom-complex, one is invited to look at the book \"Homology\" by Saunders Maclane.\r\n * For the case of vector-space components, one can express the hom-complex in terms of the\r\n * tensor product of the dualized first complex with the second. Elements of the hom-complex\r\n * are of the form a* tensor b, for a in the first chain complex and b in the second chain\r\n * complex. Thus in practice, we represent these as elements of type ObjectObjectPair<T, U>.\r\n * \r\n * @see edu.stanford.math.plex4.streams.derived.TensorStream\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T> the underlying basis type of the first complex\r\n * @param <U> the underlying basis type of the second complex\r\n */\r\npublic class HomStream<T, U> extends TensorStream<T, U> {\r\n\t\r\n\t/**\r\n\t * This constructor initializes the hom-complexes from two existing chain complexes.\r\n\t * \r\n\t * @param domainStream the domain complex\r\n\t * @param codomainStream the codomain complex\r\n\t */\r\n\tpublic HomStream(AbstractFilteredStream<T> domainStream, AbstractFilteredStream<U> codomainStream) {\r\n\t\tsuper(new DualStream<T>(domainStream), codomainStream);\r\n\t}\r\n\t\r\n\t@Override\r\n\tpublic int getDimension(ObjectObjectPair<T, U> element) {\r\n\t\treturn (this.stream2.getDimension(element.getSecond()) - this.stream1.getDimension(element.getFirst()));\r\n\t}\r\n\t\r\n\tpublic <R> List<IntSparseFormalSum<ObjectObjectPair<T, U>>> getHomotopies() {\r\n\t\treturn StreamUtility.getBoundaryMatrixColumns(this, 1);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the set of chain homotopies of between the domain and codomain chain complexes.\r\n\t * \r\n\t * @param <R> the underlying type of the ring in which to compute in\r\n\t * @param chainModule the free module over pairs of type (T, U) with coefficients in R\r\n\t * @return a list containing the set of chain homotopies\r\n\t */\r\n\tpublic <R> List<ObjectSparseFormalSum<R, ObjectObjectPair<T, U>>> getHomotopies(ObjectAlgebraicFreeModule<R, ObjectObjectPair<T, U>> chainModule) {\r\n\t\treturn StreamUtility.getBoundaryMatrixColumns(this, 1, chainModule);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns the set of chain homotopies between the domain and codomain chain complexes as formal\r\n\t * sums over pairs with double coefficients.\r\n\t * \r\n\t * @param <R> the underlying type of the ring in which to compute in\r\n\t * @param chainModule the free module over pairs of type (T, U) with coefficients in R\r\n\t * @return a list containing the set of chain homotopies\r\n\t */\r\n\tpublic <R extends Number> List<DoubleSparseFormalSum<ObjectObjectPair<T, U>>> getHomotopiesAsDouble(ObjectAlgebraicFreeModule<R, ObjectObjectPair<T, U>> chainModule) {\r\n\t\treturn toDoubleFormalSum(StreamUtility.getBoundaryMatrixColumns(this, 1, chainModule));\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function converts an ObjectSparseFormalSum to a DoubleSparseFormalSum object.\r\n\t * \r\n\t * @param <R> the underlying type of the original coefficient field (must extend Number)\r\n\t * @param <M> the type of the basis elements in the formal sumssum\r\n\t * @param objectFormalSum the ObjectSparseFormalSum to convert\r\n\t * @return a DoubleSparseFormalSum with the same objects as the one passed in, but with double coefficients\r\n\t */\r\n\tpublic static <R extends Number, M> DoubleSparseFormalSum<M> toDoubleFormalSum(ObjectSparseFormalSum<R, M> objectFormalSum) {\r\n\t\tDoubleSparseFormalSum<M> sum = new DoubleSparseFormalSum<M>();\r\n\t\t\r\n\t\tfor (Iterator<Map.Entry<M, R>> iterator = objectFormalSum.iterator(); iterator.hasNext(); ) {\r\n\t\t\tMap.Entry<M, R> entry = iterator.next();\r\n\t\t\tsum.put(entry.getValue().doubleValue(), entry.getKey());\r\n\t\t}\r\n\t\t\r\n\t\treturn sum;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function converts a list of ObjectSparseFormalSum objects to DoubleSparseFormalSum objects.\r\n\t * \r\n\t * @param <R> the underlying type of the original coefficient field (must extend Number)\r\n\t * @param <M> the type of the basis elements in the formal sums\r\n\t * @param objectFormalSumList the list of ObjectSparseFormalSum objects to convert\r\n\t * @return the list of converted sums\r\n\t */\r\n\tpublic static <R extends Number, M> List<DoubleSparseFormalSum<M>> toDoubleFormalSum(List<ObjectSparseFormalSum<R, M>> objectFormalSumList) {\r\n\t\tList<DoubleSparseFormalSum<M>> doubleFormalSumList = new ArrayList<DoubleSparseFormalSum<M>>();\r\n\t\t\r\n\t\tfor (ObjectSparseFormalSum<R, M> objectSum: objectFormalSumList) {\r\n\t\t\tdoubleFormalSumList.add(toDoubleFormalSum(objectSum));\r\n\t\t}\r\n\t\t\r\n\t\treturn doubleFormalSumList;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/derived/TensorStream.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.streams.derived;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\r\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.array.ObjectArrayUtility;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPairComparator;\r\nimport edu.stanford.math.primitivelib.collections.utility.PairwiseIterator;\r\n\r\n/**\r\n * This implements the tensor product of two filtered chain complexes. For the definition\r\n * of the tensor product of complexes, one is invited to consult any standard textbook on\r\n * algebraic topology or homological algebra. Note that we define the filtration index for\r\n * a tensor product pair to be the maximum of the filtration indices of its components. This\r\n * definition was chosen since it was the only definition that makes sense - a pair comes\r\n * into existence exactly when both components have come into existence.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T> the underlying basis type of the first chain complex\r\n * @param <U> the underlying basis type of the second chain complex\r\n */\r\npublic class TensorStream<T, U> implements AbstractFilteredStream<ObjectObjectPair<T, U>> {\r\n\t\r\n\t/**\r\n\t * The first factor in the tensor product. \r\n\t */\r\n\tprotected final AbstractFilteredStream<T> stream1;\r\n\t\r\n\t/**\r\n\t * The second factor in the tensor product.\r\n\t */\r\n\tprotected final AbstractFilteredStream<U> stream2;\n\t\r\n\t/**\r\n\t * This constructor initializes the stream from two underlying filtered chain complexes.\r\n\t * \r\n\t * @param stream1 the first chain complex\r\n\t * @param stream2 the second chain complex\r\n\t */\r\n\tpublic TensorStream(AbstractFilteredStream<T> stream1, AbstractFilteredStream<U> stream2) {\r\n\t\tthis.stream1 = stream1;\r\n\t\tthis.stream2 = stream2;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundary(java.lang.Object)\r\n\t */\r\n\tpublic ObjectObjectPair<T, U>[] getBoundary(ObjectObjectPair<T, U> basisElement) {\r\n\t\t/*\r\n\t\t * p = degree of a\r\n\t\t * \r\n\t\t * d(a x b) = da x b + (-1)^{n+1} a x db\r\n\t\t */\r\n\t\t\r\n\t\tT a = basisElement.getFirst();\r\n\t\tU b = basisElement.getSecond();\r\n\t\t\r\n\t\tT[] d_a = this.stream1.getBoundary(a);\r\n\t\tU[] d_b = this.stream2.getBoundary(b);\r\n\t\r\n\t\tObjectObjectPair<T, U>[] boundary = ObjectArrayUtility.createArray(d_a.length + d_b.length, basisElement);\r\n\t\t\r\n\t\tfor (int i = 0; i < d_a.length; i++) {\r\n\t\t\tboundary[i] = new ObjectObjectPair<T, U>(d_a[i], b);\r\n\t\t}\r\n\t\t\r\n\t\tfor (int i = 0; i < d_b.length; i++) {\r\n\t\t\tboundary[i + d_a.length] = new ObjectObjectPair<T, U>(a, d_b[i]);\r\n\t\t}\r\n\t\t\r\n\t\treturn boundary;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundaryCoefficients(java.lang.Object)\r\n\t */\r\n\tpublic int[] getBoundaryCoefficients(ObjectObjectPair<T, U> basisElement) {\r\n\t\tT a = basisElement.getFirst();\r\n\t\tU b = basisElement.getSecond();\r\n\t\tint[] a_coefficients = this.stream1.getBoundaryCoefficients(a);\r\n\t\tint[] b_coefficients = this.stream2.getBoundaryCoefficients(b);\r\n\t\t\r\n\t\tint[] coefficients = new int[a_coefficients.length + b_coefficients.length];\r\n\r\n\t\tint n = this.getDimension(basisElement);\r\n\t\t\r\n\t\t/*\r\n\t\t * Compute (-1)^{n+1}\r\n\t\t */\r\n\t\tint multiplier = ((n + 1) % 2 == 0 ? 1 : -1);\r\n\t\t\r\n\t\tfor (int i = 0; i < a_coefficients.length; i++) {\r\n\t\t\tcoefficients[i] = a_coefficients[i];\r\n\t\t}\r\n\t\t\r\n\t\tfor (int i = 0; i < b_coefficients.length; i++) {\r\n\t\t\tcoefficients[i + a_coefficients.length] = multiplier * b_coefficients[i];\r\n\t\t}\r\n\t\t\r\n\t\treturn coefficients;\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getDimension(java.lang.Object)\r\n\t */\r\n\tpublic int getDimension(ObjectObjectPair<T, U> basisElement) {\r\n\t\treturn (this.stream1.getDimension(basisElement.getFirst()) + this.stream2.getDimension(basisElement.getSecond()));\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Iterable#iterator()\r\n\t */\r\n\tpublic Iterator<ObjectObjectPair<T, U>> iterator() {\r\n\t\treturn new PairwiseIterator<T, U>(this.stream1, this.stream2);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getFiltrationIndex(java.lang.Object)\r\n\t */\r\n\tpublic int getFiltrationIndex(ObjectObjectPair<T, U> basisElement) {\r\n\t\treturn Math.max(this.stream1.getFiltrationIndex(basisElement.getFirst()), this.stream2.getFiltrationIndex(basisElement.getSecond()));\r\n\t}\r\n\t\r\n\tpublic double getFiltrationValue(ObjectObjectPair<T, U> basisElement) {\r\n\t\treturn Math.max(this.stream1.getFiltrationValue(basisElement.getFirst()), this.stream2.getFiltrationValue(basisElement.getSecond()));\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object)\r\n\t */\r\n\tpublic boolean containsElement(ObjectObjectPair<T, U> basisElement) {\r\n\t\t// TODO Implement this if you need it.\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#finalizeStream()\r\n\t */\r\n\tpublic void finalizeStream() {\r\n\t\tif (!this.stream1.isFinalized()) {\r\n\t\t\tthis.stream1.finalizeStream();\r\n\t\t}\r\n\t\t\r\n\t\tif (!this.stream2.isFinalized()) {\r\n\t\t\tthis.stream2.finalizeStream();\r\n\t\t}\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#isFinalized()\r\n\t */\r\n\tpublic boolean isFinalized() {\r\n\t\treturn this.stream1.isFinalized() && this.stream2.isFinalized();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getSize()\r\n\t */\r\n\tpublic int getSize() {\r\n\t\treturn this.stream1.getSize() * this.stream2.getSize();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getMaximumFiltrationIndex()\r\n\t */\r\n\tpublic int getMaximumFiltrationIndex() {\r\n\t\treturn Math.max(this.stream1.getMaximumFiltrationIndex(), this.stream2.getMaximumFiltrationIndex());\r\n\t}\r\n\t\r\n\tpublic int getMinimumFiltrationIndex() {\r\n\t\treturn Math.max(this.stream1.getMinimumFiltrationIndex(), this.stream2.getMinimumFiltrationIndex());\r\n\t}\r\n\r\n\tpublic Comparator<ObjectObjectPair<T, U>> getBasisComparator() {\r\n\t\treturn new ObjectObjectPairComparator<T, U>(this.stream1.getBasisComparator(), this.stream2.getBasisComparator());\r\n\t}\r\n\r\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\r\n\t\treturn this.stream1.transform(barcodeCollection);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/derived/TruncatedStream.java",
    "content": "package edu.stanford.math.plex4.streams.derived;\n\nimport java.util.Comparator;\nimport java.util.Iterator;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\n//import edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\nimport edu.stanford.math.primitivelib.utility.Infinity;\n\npublic class TruncatedStream<T> implements AbstractFilteredStream<T> {\n\tprivate final AbstractFilteredStream<T> underlyingStream;\n\tprivate final double maxFiltrationValue;\n\tprivate final int maxFiltrationIndex;\n\tprivate final int size;\n\n\tpublic TruncatedStream(AbstractFilteredStream<T> stream, double maxFiltrationValue) {\n\t\tthis.underlyingStream = stream;\n\t\tthis.maxFiltrationValue = maxFiltrationValue;\n\t\tint tempMaxFiltrationIndex = Infinity.Int.getNegativeInfinity();\n\t\tint tempSize = 0;\n\n\t\tfor (T element : this.underlyingStream) {\n\t\t\tif (this.underlyingStream.getFiltrationValue(element) > this.maxFiltrationValue) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\ttempMaxFiltrationIndex = Math.max(tempMaxFiltrationIndex, this.underlyingStream.getFiltrationIndex(element));\n\t\t\ttempSize++;\n\t\t}\n\n\t\tthis.size = tempSize;\n\t\tthis.maxFiltrationIndex = tempMaxFiltrationIndex;\n\t}\n\n\tpublic void finalizeStream() {\n\t\tif (!this.underlyingStream.isFinalized()) {\n\t\t\tthis.underlyingStream.finalizeStream();\n\t\t}\n\t}\n\n\tpublic Comparator<T> getBasisComparator() {\n\t\treturn this.underlyingStream.getBasisComparator();\n\t}\n\n\tpublic T[] getBoundary(T basisElement) {\n\t\treturn this.underlyingStream.getBoundary(basisElement);\n\t}\n\n\tpublic int[] getBoundaryCoefficients(T basisElement) {\n\t\treturn this.underlyingStream.getBoundaryCoefficients(basisElement);\n\t}\n\n\tpublic int getDimension(T basisElement) {\n\t\treturn this.underlyingStream.getDimension(basisElement);\n\t}\n\n\tpublic int getFiltrationIndex(T basisElement) {\n\t\treturn this.getFiltrationIndex(basisElement);\n\t}\n\n\tpublic double getFiltrationValue(T basisElement) {\n\t\treturn this.getFiltrationValue(basisElement);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object)\n\t */\n\tpublic boolean containsElement(T basisElement) {\n\t\t// TODO Implement this if you need it.\n\t\tthrow new UnsupportedOperationException();\n\t}\n\n\tpublic int getMaximumFiltrationIndex() {\n\t\treturn this.maxFiltrationIndex;\n\t}\n\n\tpublic int getMinimumFiltrationIndex() {\n\t\treturn this.underlyingStream.getMinimumFiltrationIndex();\n\t}\n\n\tpublic int getSize() {\n\t\treturn this.size;\n\t}\n\n\tpublic boolean isFinalized() {\n\t\treturn this.underlyingStream.isFinalized();\n\t}\n\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\n\t\treturn this.underlyingStream.transform(barcodeCollection);\n\t}\n\n\tpublic Iterator<T> iterator() {\n\t\treturn new Iterator<T>() {\n\t\t\tIterator<T> internalIterator = underlyingStream.iterator();\n\t\t\tT next = null;\n\n\t\t\t{\n\t\t\t\tthis.next = this.internalIterator.next();\n\t\t\t}\n\n\t\t\tpublic boolean hasNext() {\n\t\t\t\tif (next == null) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn (underlyingStream.getFiltrationValue(next) <= maxFiltrationValue);\n\t\t\t}\n\n\t\t\tpublic T next() {\n\t\t\t\tT returnValue = this.next;\n\t\t\t\tthis.next = this.internalIterator.next();\n\t\t\t\treturn returnValue;\n\t\t\t}\n\n\t\t\tpublic void remove() {\n\t\t\t\tthrow new UnsupportedOperationException();\n\t\t\t}\n\n\t\t};\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/filter/EccentricityFilterFunction.java",
    "content": "package edu.stanford.math.plex4.streams.filter;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\n\npublic class EccentricityFilterFunction implements IntFilterFunction {\n\tprivate final double[] eccentricities;\n\tprivate double maxValue;\n\tprivate double minValue;\n\t\n\tpublic EccentricityFilterFunction(AbstractIntMetricSpace metricSpace) {\n\t\tint n = metricSpace.size();\n\t\tthis.eccentricities = new double[n];\n\t\tdouble maximumDistance = 0;\n\t\tdouble distance = 0;\n\t\t\n\t\tthis.maxValue = 0;\n\t\tthis.minValue = 0;\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tmaximumDistance = metricSpace.distance(i, 0);\n\t\t\tfor (int j = 1; j < n; j++) {\n\t\t\t\tdistance = metricSpace.distance(i, j);\n\t\t\t\tif (distance > maximumDistance) {\n\t\t\t\t\tmaximumDistance = distance;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.eccentricities[i] = maximumDistance;\n\t\t\t\n\t\t\tif (i == 0 || this.eccentricities[i] > this.maxValue) {\n\t\t\t\tthis.maxValue = this.eccentricities[i];\n\t\t\t}\n\t\t\t\n\t\t\tif (i == 0 || this.eccentricities[i] < this.minValue) {\n\t\t\t\tthis.minValue = this.eccentricities[i];\n\t\t\t}\n\t\t}\n\t}\n\t\n\tpublic double evaluate(int point) {\n\t\treturn this.eccentricities[point];\n\t}\n\n\tpublic double getMaxValue() {\n\t\treturn this.maxValue;\n\t}\n\n\tpublic double getMinValue() {\n\t\treturn this.minValue;\n\t}\n\t\n\tpublic double[] getValues() {\n\t\treturn this.eccentricities;\n\t}\n}"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/filter/ExplicitIntFilterFunction.java",
    "content": "package edu.stanford.math.plex4.streams.filter;\n\n\npublic class ExplicitIntFilterFunction implements IntFilterFunction {\n\tprivate final double[] values;\n\tprivate double maxValue;\n\tprivate double minValue;\n\t\n\tpublic ExplicitIntFilterFunction(double[] values) {\n\t\tthis.values = values;\n\t\t\n\t\tfor (int i = 0; i < this.values.length; i++) {\n\t\t\tif (i == 0 || this.values[i] > this.maxValue) {\n\t\t\t\tthis.maxValue = this.values[i];\n\t\t\t}\n\t\t\t\n\t\t\tif (i == 0 || this.values[i] < this.minValue) {\n\t\t\t\tthis.minValue = this.values[i];\n\t\t\t}\n\t\t}\n\t}\n\t\n\tpublic double evaluate(int point) {\n\t\treturn this.values[point];\n\t}\n\n\tpublic double getMaxValue() {\n\t\treturn this.maxValue;\n\t}\n\n\tpublic double getMinValue() {\n\t\treturn this.minValue;\n\t}\n\t\n\tpublic double[] getValues() {\n\t\treturn this.values;\n\t}\n}"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/filter/FilterFunction.java",
    "content": "package edu.stanford.math.plex4.streams.filter;\n\npublic interface FilterFunction<T> {\n\tdouble evaluate(T point);\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/filter/IntFilterFunction.java",
    "content": "package edu.stanford.math.plex4.streams.filter;\n\npublic interface IntFilterFunction {\n\tdouble evaluate(int point);\n\t\n\tdouble getMaxValue();\n\tdouble getMinValue();\n\t\n\tdouble[] getValues();\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/filter/KernelDensityFilterFunction.java",
    "content": "package edu.stanford.math.plex4.streams.filter;\n\nimport edu.stanford.math.plex4.metric.interfaces.AbstractIntMetricSpace;\nimport edu.stanford.math.plex4.metric.utility.DensityEstimation;\n\npublic class KernelDensityFilterFunction implements IntFilterFunction {\n\tprivate final double[] densities;\n\tprivate boolean maxMinComputed = false;\n\tprivate double maxValue = 0;\n\tprivate double minValue = 0;\n\t\n\tpublic KernelDensityFilterFunction(AbstractIntMetricSpace metricSpace, double sigma) {\n\t\tthis.densities = DensityEstimation.performGaussianKernelDensityEstimation(metricSpace, sigma);\n\t}\n\t\n\tpublic double evaluate(int point) {\n\t\treturn this.densities[point];\n\t}\n\t\n\tpublic double getMaxValue() {\n\t\tif (!this.maxMinComputed) {\n\t\t\tthis.computeMaxMinValues();\n\t\t}\n\t\treturn this.maxValue;\n\t}\n\n\tpublic double getMinValue() {\n\t\tif (!this.maxMinComputed) {\n\t\t\tthis.computeMaxMinValues();\n\t\t}\n\t\treturn this.minValue;\n\t}\n\t\n\tprivate void computeMaxMinValues() {\n\t\tfor (int i = 0; i < this.densities.length; i++) {\n\t\t\tif (i == 0 || this.densities[i] > maxValue) {\n\t\t\t\tthis.maxValue = this.densities[i];\n\t\t\t}\n\t\t\t\n\t\t\tif (i == 0 || this.densities[i] < minValue) {\n\t\t\t\tthis.minValue = this.densities[i];\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.maxMinComputed = true;\n\t}\n\t\n\tpublic double[] getValues() {\n\t\treturn this.densities;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/filter/MaxSimplicialFilterFunction.java",
    "content": "package edu.stanford.math.plex4.streams.filter;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\n\npublic class MaxSimplicialFilterFunction implements FilterFunction<Simplex> {\n\tprivate final IntFilterFunction intFilterFunction;\n\tpublic MaxSimplicialFilterFunction(IntFilterFunction intFilterFunction) {\n\t\tthis.intFilterFunction = intFilterFunction;\n\t}\n\t\n\tpublic double evaluate(Simplex simplex) {\n\t\tint[] vertices = simplex.getVertices();\n\t\t\n\t\tdouble maxValue = 0;\n\t\tdouble vertexValue = 0;\n\t\t\n\t\tfor (int i = 0; i < vertices.length; i++) {\n\t\t\tvertexValue = this.intFilterFunction.evaluate(vertices[i]);\n\t\t\tif (i == 0 || vertexValue > maxValue) {\n\t\t\t\tmaxValue = vertexValue;\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn maxValue;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/filter/MinSimplicialFilterFunction.java",
    "content": "package edu.stanford.math.plex4.streams.filter;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\n\npublic class MinSimplicialFilterFunction implements FilterFunction<Simplex> {\n\tprivate final IntFilterFunction intFilterFunction;\n\tpublic MinSimplicialFilterFunction(IntFilterFunction intFilterFunction) {\n\t\tthis.intFilterFunction = intFilterFunction;\n\t}\n\t\n\tpublic double evaluate(Simplex simplex) {\n\t\tint[] vertices = simplex.getVertices();\n\t\t\n\t\tdouble minValue = 0;\n\t\tdouble vertexValue = 0;\n\t\t\n\t\tfor (int i = 0; i < vertices.length; i++) {\n\t\t\tvertexValue = this.intFilterFunction.evaluate(vertices[i]);\n\t\t\tif (i == 0 || vertexValue < minValue) {\n\t\t\t\tminValue = vertexValue;\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn minValue;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/filter/RandomProjectionFilterFunction.java",
    "content": "package edu.stanford.math.plex4.streams.filter;\n\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\nimport edu.stanford.math.plex4.utility.MathUtility;\nimport edu.stanford.math.plex4.utility.RandomUtility;\n\npublic class RandomProjectionFilterFunction implements IntFilterFunction {\n\tprivate final double[] direction;\n\tprivate final double[] values;\n\n\tprivate final double maxValue;\n\tprivate final double minValue;\n\n\tpublic RandomProjectionFilterFunction(EuclideanMetricSpace metricSpace) {\n\t\tthis(metricSpace.getPoints());\n\t}\n\n\tpublic RandomProjectionFilterFunction(double[][] points) {\n\t\tthis.direction = RandomUtility.normalArray(points[0].length, true);\n\t\tthis.values = new double[points.length];\n\n\t\tdouble maxValue = Double.NEGATIVE_INFINITY;\n\t\tdouble minValue = Double.POSITIVE_INFINITY;\n\n\t\tdouble value;\n\n\t\tfor (int i = 0; i < this.values.length; i++) {\n\t\t\tvalue = this.values[i] = MathUtility.dotProduct(this.direction, points[i]);\n\t\t\tmaxValue = (value > maxValue ? value : maxValue);\n\t\t\tminValue = (value < minValue ? value : minValue);\n\t\t}\n\n\t\tthis.maxValue = maxValue;\n\t\tthis.minValue = minValue;\n\t}\n\n\tpublic double evaluate(int point) {\n\t\treturn this.values[point];\n\t}\n\n\tpublic double getMaxValue() {\n\t\treturn this.maxValue;\n\t}\n\n\tpublic double getMinValue() {\n\t\treturn this.minValue;\n\t}\n\n\tpublic int getRangeMax() {\n\t\treturn this.values.length;\n\t}\n\n\tpublic double[] getValues() {\n\t\treturn this.values;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/ExplicitCellStream.java",
    "content": "package edu.stanford.math.plex4.streams.impl;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Cell;\nimport edu.stanford.math.plex4.homology.chain_basis.CellComparator;\nimport gnu.trove.TIntObjectHashMap;\n\n/**\n * This class is a wrapper for the ExplicitStream class and provides \n * convenience functions when the base elements are cells.\n * \n * @author Andrew Tausz\n *\n */\npublic class ExplicitCellStream extends ExplicitStream<Cell> {\n\t\n\t/**\n\t * This maps cell ids to cell objects.\n\t */\n\tprivate TIntObjectHashMap<Cell> indexCellMap = new TIntObjectHashMap<Cell>();\n\t\n\t/**\n\t * Default constructor.\n\t */\n\tpublic ExplicitCellStream() {\n\t\tsuper(CellComparator.getInstance());\n\t}\n\t\n\tpublic ExplicitCellStream(double maxFiltrationValue) {\n\t\tsuper(CellComparator.getInstance(), maxFiltrationValue);\n\t}\n\n\t/**\n\t * This adds a new vertex to the cell complex.\n\t * \n\t * @return the cell id of the newly added vertex\n\t */\n\tpublic int addNewVertex() {\n\t\tCell cell = new Cell();\n\t\tthis.indexCellMap.put(cell.getCellId(), cell);\n\t\tthis.storageStructure.addElement(cell, 0);\n\t\treturn cell.getCellId();\n\t}\n\t\n\t/**\n\t * This attaches a n-cell to an existing point in the complex.\n\t * \n\t * @param dimension the dimension of the cell to add\n\t * @param pointIndex the point to attach the boundary to\n\t * @return the cell id of the newly added cell\n\t */\n\tpublic int attachNewCellToPoint(int dimension, int pointIndex) {\n\t\tCell cell = new Cell(dimension, this.getCellsByIds(new int[]{pointIndex}), new int[]{0});\n\t\tthis.indexCellMap.put(cell.getCellId(), cell);\n\t\tthis.storageStructure.addElement(cell, 0);\n\t\treturn cell.getCellId();\n\t}\n\t\n\t/**\n\t * This adds a new cell to the complex with boundary specified by the supplied\n\t * array of cell ids. It uses the standard attaching coefficients.\n\t * \n\t * @param dimension the dimension of the cell to add\n\t * @param boundaryIndices an array of cell ids to attach to\n\t * @return the cell id of the newly added cell\n\t */\n\tpublic int attachNewCell(int dimension, int[] boundaryIndices) {\n\t\tCell cell = new Cell(dimension, this.getCellsByIds(boundaryIndices));\n\t\tthis.indexCellMap.put(cell.getCellId(), cell);\n\t\tthis.storageStructure.addElement(cell, 0);\n\t\treturn cell.getCellId();\n\t}\n\t\n\t/**\n\t * This adds a new cell to the complex with boundary and boundary coefficients given.\n\t * \n\t * @param dimension the dimension fo the cell to add\n\t * @param boundaryIndices an array of cell ids to attach to\n\t * @param boundaryCoefficients the array of attaching map degrees\n\t * @return the cell id of the newly added cell\n\t */\n\tpublic int attachNewCell(int dimension, int[] boundaryIndices, int[] boundaryCoefficients) {\n\t\tCell cell = new Cell(dimension, this.getCellsByIds(boundaryIndices), boundaryCoefficients);\n\t\tthis.indexCellMap.put(cell.getCellId(), cell);\n\t\tthis.storageStructure.addElement(cell, 0);\n\t\treturn cell.getCellId();\n\t}\n\t\n\t@Override\n\tpublic void addElement(Cell basisElement, double filtrationValue) {\n\t\tsuper.addElement(basisElement, filtrationValue);\n\t\tthis.indexCellMap.put(basisElement.getCellId(), basisElement);\n\t}\n\t\n\t/**\n\t * This obtains a collection of cell objects from an array of cell ids\n\t * @param cellIds\n\t * @return a collection of cells with the given cell ids\n\t */\n\tprivate Collection<Cell> getCellsByIds(int[] cellIds) {\n\t\tList<Cell> cells = new ArrayList<Cell>();\n\t\t\n\t\tfor (int index: cellIds) {\n\t\t\tcells.add(this.indexCellMap.get(index));\n\t\t}\n\t\t\n\t\treturn cells;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/ExplicitSimplexStream.java",
    "content": "package edu.stanford.math.plex4.streams.impl;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\r\n\r\n/**\r\n * This class is a wrapper for the ExplicitStream class and provides \r\n * convenience functions when the base elements are simplices.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class ExplicitSimplexStream extends ExplicitStream<Simplex> {\r\n\r\n\t/**\r\n\t * This constructor initializes the class with the given simplex\r\n\t * comparator.\r\n\t * \r\n\t * @param comparator the Comparator to initialize with\r\n\t */\r\n\tpublic ExplicitSimplexStream(Comparator<Simplex> comparator) {\r\n\t\tsuper(comparator);\r\n\t}\r\n\t\r\n\tpublic ExplicitSimplexStream(Comparator<Simplex> comparator, double maxFiltrationValue) {\r\n\t\tsuper(comparator, maxFiltrationValue);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor initializes the class with the default simplex comparator.\r\n\t */\r\n\tpublic ExplicitSimplexStream() {\r\n\t\tsuper(SimplexComparator.getInstance());\r\n\t}\r\n\t\r\n\tpublic ExplicitSimplexStream(double maxFiltrationValue) {\r\n\t\tsuper(SimplexComparator.getInstance(), maxFiltrationValue);\r\n\t}\r\n\r\n\t/**\r\n\t * This function adds a new vertex to the complex with a filtration index\r\n\t * of 0.\r\n\t * \r\n\t * @param index the index of the vertex\r\n\t */\r\n\tpublic void addVertex(int index) {\r\n\t\tthis.addElement(new Simplex(new int[]{index}), 0);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function adds a new vertex to the complex with specified\r\n\t * filtration index.\r\n\t * \r\n\t * @param index the index of the vertex to add\r\n\t * @param filtrationIndex the filtration index\r\n\t */\r\n\tpublic void addVertex(int index, double filtrationValue) {\r\n\t\tthis.addElement(new Simplex(new int[]{index}), filtrationValue);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function adds a simplex with the provided vertices.\r\n\t * \r\n\t * @param vertices the vertices of the simplex to add\r\n\t */\r\n\tpublic void addElement(int[] vertices) {\r\n\t\tthis.addElement(new Simplex(vertices), 0);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function adds a simplex with the provided vertices and\r\n\t * given filtration index.\r\n\t * \r\n\t * @param vertices the vertices of the simplex to add\r\n\t * @param filtrationIndex the filtration index\r\n\t */\r\n\tpublic void addElement(int[] vertices, double filtrationValue) {\r\n\t\tthis.addElement(new Simplex(vertices), filtrationValue);\r\n\t}\r\n\t\r\n\tpublic boolean removeElementIfPresent(int[] vertices) {\r\n\t\treturn this.removeElementIfPresent(new Simplex(vertices));\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/ExplicitStream.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.streams.impl;\n\nimport java.util.ArrayList;\nimport java.util.Comparator;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationConverter;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationUtility;\nimport edu.stanford.math.plex4.homology.filtration.IncreasingLinearConverter;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.plex4.streams.interfaces.PrimitiveStream;\nimport gnu.trove.TObjectDoubleHashMap;\nimport gnu.trove.TObjectDoubleIterator;\n\n/**\n * This class implements the functionality of a user-defined filtered chain complex.\n * It derives from the PrimitiveStream class, meaning that it underlying basis type \n * must be a geometric primitive.\n * \n * @author Andrew Tausz\n *\n */\npublic class ExplicitStream<T extends PrimitiveBasisElement> extends PrimitiveStream<T> {\n\tprivate FiltrationConverter converter = null;\n\tprivate static int NUM_DIVISIONS = 1000000;\n\t\n\t/**\n\t * Constructor which accepts a comparator for comparing the type T.\n\t * This comparator defines the ordering on the type T. Thus the overall\n\t * filtered objects are sorted first in order of filtration, and then by\n\t * the ordering provided by the comparator. \n\t * \n\t * @param comparator a Comparator which provides an ordering of the objects\n\t */\n\tpublic ExplicitStream(Comparator<T> comparator) {\n\t\tsuper(comparator);\n\t}\n\t\n\tpublic ExplicitStream(Comparator<T> comparator, double maxFiltrationValue) {\n\t\tsuper(comparator);\n\t\tthis.converter = new IncreasingLinearConverter(NUM_DIVISIONS, 0, maxFiltrationValue);\n\t}\n\t\n\t/**\n\t * This constructor initializes the stream from an existing stream. It copies all\n\t * of the elements of the supplied stream to the current one.\n\t * \n\t * @param stream the stream to copy from\n\t * @param comparator a Comparator which provides an ordering on the basis elements\n\t */\n\tpublic ExplicitStream(AbstractFilteredStream<T> stream, Comparator<T> comparator) {\n\t\tsuper(comparator);\n\t\tthis.addAllElements(stream);\n\t}\n\t\n\t/**\n\t * This function copies all of the elements in the supplied stream to the current one.\n\t * \n\t * @param stream the stream to copy from\n\t */\n\tpublic void addAllElements(AbstractFilteredStream<T> stream) {\n\t\tfor (T element: stream) {\n\t\t\tthis.addElement(element, stream.getFiltrationIndex(element));\n\t\t}\n\t}\n\t\n\t/**\n\t * This function adds a basis element the stream with specified filtration index.\n\t * \n\t * @param basisElement the basis element to add\n\t * @param filtrationIndex the filtration index of the basis element\n\t */\n\tpublic void addElement(T basisElement, double filtrationValue) {\n\t\tint filtrationIndex = 0;\n\t\t\n\t\tif (this.converter != null) {\n\t\t\tfiltrationIndex = this.converter.getFiltrationIndex(filtrationValue);\n\t\t} else {\n\t\t\tfiltrationIndex = (int) filtrationValue;\n\t\t}\n\t\t\n\t\tthis.removeElementIfPresent(basisElement);\n\t\tthis.storageStructure.addElement(basisElement, filtrationIndex);\n\t}\n\n\t/**\n\t * This function removes the specified element from the stream. \n\t * In the case that the element is not present, this function does not do\n\t * anything.\n\t * \n\t * @param basisElement the element to remove.\n\t * @return true if the element was found and removed, and false otherwise\n\t */\n\tpublic boolean removeElementIfPresent(T basisElement) {\n\t\tif (this.storageStructure.containsElement(basisElement)) {\n\t\t\t// remove the element if present\n\t\t\tthis.storageStructure.removeElement(basisElement);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t\n\t/**\n\t * This function returns true if the stream contains the query element.\n\t * \n\t * @param basisElement the element to find\n\t * @return true if the element is in the stream and false otherwise\n\t */\n\tpublic boolean containsElement(T basisElement) {\n\t\treturn this.storageStructure.containsElement(basisElement);\n\t}\n\t\n\t@Override\n\tprotected void constructComplex() {\t}\n\t\n\t/**\n\t * This function ensures that all of the faces of the all of the elements are\n\t * present in the stream. It adds the missing faces with filtration indices that\n\t * are consistent. In other words, it ensures that the filtration indices of an\n\t * element equals the minimum filtration index of its cofaces.\n\t */\n\tpublic void ensureAllFaces() {\n\t\tList<T> elementQueue = new ArrayList<T>();\n\t\tTObjectDoubleHashMap<T> newElements = new TObjectDoubleHashMap<T>();\n\t\t\n\t\tfor (T basisElement: this.storageStructure) {\n\t\t\t// add element to the queue\n\t\t\telementQueue.add(basisElement);\n\t\t}\n\t\t\n\t\twhile (!elementQueue.isEmpty()) {\n\t\t\tT basisElement = elementQueue.remove(elementQueue.size() - 1);\n\t\t\tdouble elementFiltrationValue = 0;\n\t\t\t\n\t\t\tif (newElements.containsKey(basisElement)) {\n\t\t\t\telementFiltrationValue = newElements.get(basisElement);\n\t\t\t} else if (this.storageStructure.containsElement(basisElement)) {\n\t\t\t\telementFiltrationValue = this.getFiltrationValue(basisElement);\n\t\t\t}\n\t\t\t\n\t\t\tT[] boundary = this.getBoundary(basisElement);\n\t\t\t\n\t\t\tfor (T face: boundary) {\n\t\t\t\tif (this.storageStructure.containsElement(face)) {\n\t\t\t\t\t// do nothing\n\t\t\t\t} else {\n\t\t\t\t\tif (newElements.containsKey(face)) {\n\t\t\t\t\t\tnewElements.put(face, Math.min(elementFiltrationValue, newElements.get(face)));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewElements.put(face, elementFiltrationValue);\n\t\t\t\t\t\tif (!elementQueue.contains(face)) {\n\t\t\t\t\t\t\telementQueue.add(face);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tfor (TObjectDoubleIterator<T> iterator = newElements.iterator(); iterator.hasNext(); ) {\n\t\t\titerator.advance();\n\t\t\tthis.addElement(iterator.key(), iterator.value());\n\t\t}\n\t}\n\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\n\t\t\n        \tif (this.converter == null) {\n\t\t\treturn FiltrationUtility.transformByIdentity(barcodeCollection);\n\t\t}\n        \n        \treturn FiltrationUtility.transform(barcodeCollection, this.converter);\n\t}\n\n\tpublic double getFiltrationValue(T basisElement) {\n\t\t\n\t\tif (this.converter == null) {\n\t\t\treturn this.getFiltrationIndex(basisElement);\n\t\t}\n\t\t\n\t\treturn this.converter.getFiltrationValue(this.getFiltrationIndex(basisElement));\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/FlagComplexStream.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.streams.impl;\n\nimport edu.stanford.math.plex4.graph.UndirectedWeightedListGraph;\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationConverter;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationUtility;\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\nimport edu.stanford.math.plex4.streams.interfaces.PrimitiveStream;\nimport edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructure;\nimport gnu.trove.TIntHashSet;\nimport gnu.trove.TIntIterator;\n\n/**\n * <p>\n * This class implements a simplex stream with the property that given its\n * 1-skeleton, its higher skeletons are maximal in the following sense. A\n * k-simplex [v_0, ..., v_k] is a member of the complex iff all of its edges\n * [v_i, v_j] are in the complex.\n * </p>\n * \n * <p>\n * This class is abstract in that it does not provide a mechanism for\n * constructing the 1-skeleton, and only constructs the higher order skeletons\n * inductively. The reason is that there are different choices for definitions\n * of the 1-skeletons, the main ones being the lazy witness complex, the\n * Vietoris-Rips complex, and the clique complex. Thus a child class must\n * provide the implementation of the 1-skeleton.\n * </p>\n * \n * <p>\n * Also note that the FlagComplexStream construction can be used with any finite\n * metric space. For information on the implementation, consult the paper\n * \"Fast Construction of the Vietoris-Rips Complex\", by Afra Zomorodian. This\n * implementation uses the incremental algorithm described in the above paper.\n * </p>\n * \n * @author Andrew Tausz\n * \n */\npublic abstract class FlagComplexStream extends PrimitiveStream<Simplex> {\n\t/**\n\t * The maximum allowable dimension of the complex.\n\t */\n\tprotected final int maxAllowableDimension;\n\n\t/**\n\t * Stores the neighborhood graph.\n\t */\n\tprotected UndirectedWeightedListGraph neighborhoodGraph = null;\n\n\t/**\n\t * This converts between filtration indices and values\n\t */\n\tprotected FiltrationConverter converter;\n\n\tprotected int[] indices = null;\n\n\t/**\n\t * This constructor initializes the class.\n\t * \n\t * @param maxAllowableDimension\n\t *            the maximum dimension of the simplicial complex\n\t * @param converter\n\t *            a FiltrationConverter for translating between filtration\n\t *            indices and values\n\t */\n\tpublic FlagComplexStream(int maxAllowableDimension, FiltrationConverter converter) {\n\t\tsuper(SimplexComparator.getInstance());\n\t\tthis.maxAllowableDimension = maxAllowableDimension;\n\t\tthis.converter = converter;\n\t}\n\n\tpublic FlagComplexStream(int maxAllowableDimension, FiltrationConverter converter, int[] indices) {\n\t\tsuper(SimplexComparator.getInstance());\n\t\tthis.maxAllowableDimension = maxAllowableDimension;\n\t\tthis.converter = converter;\n\t\tthis.indices = indices;\n\t}\n\n\t/**\n\t * Constructor.\n\t * \n\t * @param maxAllowableDimension\n\t *            the maximum dimension of the simplicial complex\n\t * @param converter\n\t *            a FiltrationConverter for translating between filtration\n\t *            indices and values\n\t * @param storageStructure\n\t *            the StreamStorageStructure to use\n\t */\n\tpublic FlagComplexStream(int maxAllowableDimension, FiltrationConverter converter, StreamStorageStructure<Simplex> storageStructure) {\n\t\tsuper(storageStructure);\n\t\tthis.maxAllowableDimension = maxAllowableDimension;\n\t\tthis.converter = converter;\n\t}\n\n\t/**\n\t * This function implements the construction of the 1-skeleton. It must\n\t * output a list containing pairs of filtration values and 1-simplices. The\n\t * filtration value of an edge is the threshold value at which the edge\n\t * appears in the filtered sequence of simplicial complexes.\n\t * \n\t * @return the 1-skeleton of the complex along with its filtration values\n\t */\n\tprotected abstract UndirectedWeightedListGraph constructEdges();\n\n\t/**\n\t * This returns the neighborhood graph (equivalent to the 1-skeleton) of the\n\t * complex.\n\t * \n\t * @return the neighborhood graph\n\t */\n\tpublic UndirectedWeightedListGraph getNeighborhoodGraph() {\n\t\treturn this.neighborhoodGraph;\n\t}\n\n\tpublic double getFiltrationValue(Simplex simplex) {\n\t\treturn this.converter.getFiltrationValue(this.getFiltrationIndex(simplex));\n\t}\n\n\t/**\n\t * This function returns the FiltrationConverter object used by the complex.\n\t * \n\t * @return the FiltrationConverter used by the complex\n\t */\n\tpublic FiltrationConverter getConverter() {\n\t\treturn this.converter;\n\t}\n\n\t/**\n\t * This function transforms the given collection of filtration index\n\t * barcodes into filtration value barcodes.\n\t * \n\t * @param <G>\n\t * @param barcodeCollection\n\t *            the set of filtration index barcodes\n\t * @return the barcodes transformed into filtration value form\n\t */\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\n\t\treturn FiltrationUtility.transform(barcodeCollection, this.converter);\n\t}\n\n\t@Override\n\tprotected void constructComplex() {\n\t\t// construct the neighborhood graph\n\t\tthis.neighborhoodGraph = this.constructEdges();\n\n\t\t// expand higher order simplices\n\t\tthis.incrementalExpansion(neighborhoodGraph, this.maxAllowableDimension);\n\t}\n\n\t/**\n\t * This function performs the incremental expansion of the complex.\n\t * \n\t * @param G\n\t *            the neighborhood graph\n\t * @param k\n\t *            the maximum dimension\n\t */\n\tprotected void incrementalExpansion(UndirectedWeightedListGraph G, int k) {\n\t\tint n = G.getNumVertices();\n\n\t\t// inductively add all of the singletons as well as their cofaces\n\t\tfor (int u = 0; u < n; u++) {\n\t\t\tthis.addCofaces(G, k, new Simplex(new int[] { u }), G.getLowerNeighbors(u), this.converter.getInitialFiltrationValue());\n\t\t}\n\t}\n\n\t/**\n\t * This function inductively adds all of the cofaces of the simplex tau to\n\t * the complex. For more information about this algorithm, consult the paper\n\t * \"Fast Construction of the Vietoris-Rips Complex\" by Afra Zomorodian.\n\t * \n\t * @param G\n\t *            the neighborhood graph\n\t * @param k\n\t *            the maximum allowable dimension\n\t * @param tau\n\t *            the current simplex to add\n\t * @param N\n\t *            the lower neighbors to investigate\n\t * @param filtrationValue\n\t *            the filtration value of the current simplex, tau\n\t */\n\tprotected void addCofaces(UndirectedWeightedListGraph G, int k, Simplex tau, TIntHashSet N, double filtrationValue) {\n\n\t\tSimplex newSimplex = null;\n\t\tif (this.indices != null) {\n\t\t\tnewSimplex = HomologyUtility.convertIndices(tau, this.indices);\n\t\t} else {\n\t\t\tnewSimplex = tau;\n\t\t}\n\n\t\t// add the current simplex to the complex\n\t\tthis.storageStructure.addElement(newSimplex, this.converter.getFiltrationIndex(filtrationValue));\n\n\t\t// exit if the dimension is the maximum allowed\n\t\tif (tau.getDimension() >= k) {\n\t\t\treturn;\n\t\t}\n\n\t\tdouble weight = 0;\n\n\t\tTIntIterator iterator = N.iterator();\n\t\tTIntHashSet M;\n\n\t\t// iterate through the lower neighborhood\n\t\twhile (iterator.hasNext()) {\n\t\t\tint v = iterator.next();\n\n\t\t\t// create a new simplex by appending\n\t\t\t// ie. sigma = tau U {v}\n\t\t\tSimplex sigma = new Simplex(HomologyUtility.appendToArray(tau.getVertices(), v));\n\n\t\t\t// compute the intersection between N and the lower neighbors of v\n\t\t\tM = HomologyUtility.computeIntersection(N, G.getLowerNeighbors(v));\n\n\t\t\t// compute the weight of the simplex sigma\n\t\t\t// the weight is defined to be the maximum weight of all of the\n\t\t\t// simplex's\n\t\t\t// faces\n\t\t\tif (sigma.getDimension() == 1) {\n\t\t\t\tint i = sigma.getVertices()[0];\n\t\t\t\tint j = sigma.getVertices()[1];\n\t\t\t\tweight = G.getWeight(i, j);\n\t\t\t} else if (sigma.getDimension() > 1) {\n\t\t\t\tweight = filtrationValue;\n\t\t\t\tint[] tauVertices = tau.getVertices();\n\t\t\t\tfor (int tauVertex : tauVertices) {\n\t\t\t\t\tweight = this.converter.computeInducedFiltrationValue(weight, G.getWeight(tauVertex, v));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// recurse: add the cofaces of sigma\n\t\t\tthis.addCofaces(G, k, sigma, M, weight);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/FlexibleVietorisRipsStream.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.streams.impl;\n\nimport edu.stanford.math.plex4.graph.UndirectedWeightedListGraph;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationConverter;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\nimport edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructure;\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\nimport gnu.trove.TIntHashSet;\nimport gnu.trove.TIntIterator;\n\n/**\n * <p>\n * This class implements the Vietoris-Rips filtered simplicial complex. A\n * simplex [v_0, ..., v_k] is in VR(r) if and only if the pairwise distances\n * d(v_i, v_j) are less than r for all 0 <= i, j <= k. Thus a Vietoris-Rips\n * complex is fully defined by its 1-skeleton, in that it is the maximal\n * simplicial complex given such a 1-skeleton. For this reason, we simply derive\n * from the FlagComplexStream abstract class, and implement the pairwise\n * thresholding in order to generate the 1-skeleton.\n * </p>\n * \n * @author Andrew Tausz\n * @author Mikael Vejdemo-Johansson\n * \n * @param <T>\n *            the base type of the underlying metric space\n */\npublic class FlexibleVietorisRipsStream<T> extends FlagComplexStream {\n\n\t/**\n\t * This is the metric space upon which the stream is built from.\n\t */\n\tprotected final AbstractSearchableMetricSpace<T> metricSpace;\n\n\t/**\n\t * The maximum distance allowed between two connected vertices.\n\t */\n\tprotected final double maxDistance;\n\n\t/**\n\t * Constructor which initializes the complex with a metric space.\n\t * \n\t * @param metricSpace\n\t *            the metric space to use in the construction of the complex\n\t * @param maxDistance\n\t *            the maximum allowable distance\n\t * @param maxDimension\n\t *            the maximum dimension of the complex\n\t * @param converter\n\t *            the Filtration Converter to be used\n\t */\n\tpublic FlexibleVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, FiltrationConverter converter) {\n\t\tsuper(maxDimension, converter);\n\t\tExceptionUtility.verifyNonNull(metricSpace);\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.maxDistance = maxDistance;\n\t}\n\n\tpublic FlexibleVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, FiltrationConverter converter,\n\t\t\tStreamStorageStructure<Simplex> storageStructure) {\n\t\tsuper(maxDimension, converter, storageStructure);\n\t\tExceptionUtility.verifyNonNull(metricSpace);\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.maxDistance = maxDistance;\n\t}\n\n\tpublic FlexibleVietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, FiltrationConverter converter,\n\t\t\tint[] indices) {\n\t\tsuper(maxDimension, converter, indices);\n\t\tExceptionUtility.verifyNonNull(metricSpace);\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.maxDistance = maxDistance;\n\t}\n\n\t@Override\n\tprotected UndirectedWeightedListGraph constructEdges() {\n\t\tint n = this.metricSpace.size();\n\t\tTIntHashSet neighborhood = null;\n\n\t\tUndirectedWeightedListGraph graph = new UndirectedWeightedListGraph(n);\n\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\t// obtain the neighborhood of the i-th point\n\t\t\tneighborhood = this.metricSpace.getClosedNeighborhood(metricSpace.getPoint(i), this.maxDistance);\n\n\t\t\t// get the pairwise distances of the points and store them\n\t\t\tTIntIterator iterator = neighborhood.iterator();\n\t\t\twhile (iterator.hasNext()) {\n\t\t\t\tint j = iterator.next();\n\n\t\t\t\tif (i == j) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tdouble distance = this.metricSpace.distance(i, j);\n\t\t\t\tgraph.addEdge(i, j, distance);\n\t\t\t}\n\t\t}\n\n\t\treturn graph;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/GeometricSimplexStream.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.streams.impl;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\r\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractObjectMetricSpace;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\r\n\r\n/**\r\n * This class defines a geometric realization of a filtered simplicial\r\n * complex, ie. one in which the vertices are elements of Euclidean space.\r\n * A geometric simplex stream is defined to be a simplex stream along\r\n * with a mapping of the set of vertices to Euclidean space, which in this\r\n * case is an object of type AbstractObjectMetricSpace<double[]>.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class GeometricSimplexStream implements AbstractFilteredStream<Simplex>, AbstractObjectMetricSpace<double[]> {\r\n\t\r\n\t/**\r\n\t * The underlying filtered simplicial complex.\r\n\t */\r\n\tprivate final AbstractFilteredStream<Simplex> stream;\r\n\t\r\n\t/**\r\n\t * The Euclidean metric consisting of the vertices of the complex.\r\n\t */\r\n\tprivate final AbstractObjectMetricSpace<double[]> metricSpace;\r\n\t\r\n\t/**\r\n\t * This constructor initializes the geometric complex from an abstract filtered complex and a metric space.\r\n\t * \r\n\t * @param stream the abstract simplicial complex\r\n\t * @param metricSpace the Euclidean metric space of vertices\r\n\t */\r\n\tpublic GeometricSimplexStream(AbstractFilteredStream<Simplex> stream, AbstractObjectMetricSpace<double[]> metricSpace) {\r\n\t\tExceptionUtility.verifyNonNull(stream);\r\n\t\tExceptionUtility.verifyNonNull(metricSpace);\r\n\t\tthis.stream = stream;\r\n\t\tthis.metricSpace = metricSpace;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor initializes the geometric complex from an abstract simplicial complex and double array\r\n\t * whose rows consist of the Euclidean coordinates of the vertices.\r\n\t * \r\n\t * @param stream the abstract simplicial complex\r\n\t * @param points the array of points\r\n\t */\r\n\tpublic GeometricSimplexStream(AbstractFilteredStream<Simplex> stream, double[][] points) {\r\n\t\tExceptionUtility.verifyNonNull(stream);\r\n\t\tExceptionUtility.verifyNonNull(points);\r\n\t\tthis.stream = stream;\r\n\t\tthis.metricSpace = new EuclideanMetricSpace(points);\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#finalizeStream()\r\n\t */\r\n\tpublic void finalizeStream() {\r\n\t\tthis.stream.finalizeStream();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getFiltrationIndex(java.lang.Object)\r\n\t */\r\n\tpublic int getFiltrationIndex(Simplex basisElement) {\r\n\t\treturn this.stream.getFiltrationIndex(basisElement);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object)\r\n\t */\r\n\tpublic boolean containsElement(Simplex basisElement) {\r\n\t\t// TODO Implement this if you need it.\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#isFinalized()\r\n\t */\r\n\tpublic boolean isFinalized() {\r\n\t\treturn this.stream.isFinalized();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Iterable#iterator()\r\n\t */\r\n\tpublic Iterator<Simplex> iterator() {\r\n\t\treturn this.stream.iterator();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractObjectMetricSpace#getPoint(int)\r\n\t */\r\n\tpublic double[] getPoint(int index) {\r\n\t\treturn this.metricSpace.getPoint(index);\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractIntMetricSpace#size()\r\n\t */\r\n\tpublic int size() {\r\n\t\treturn this.metricSpace.size();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractIntMetricSpace#distance(int, int)\r\n\t */\r\n\tpublic double distance(int i, int j) {\r\n\t\treturn this.metricSpace.distance(i, j);\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractObjectMetricSpace#distance(java.lang.Object, java.lang.Object)\r\n\t */\r\n\tpublic double distance(double[] a, double[] b) {\r\n\t\treturn this.metricSpace.distance(a, b);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundary(java.lang.Object)\r\n\t */\r\n\tpublic Simplex[] getBoundary(Simplex simplex) {\r\n\t\treturn simplex.getBoundaryArray();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundaryCoefficients(java.lang.Object)\r\n\t */\r\n\tpublic int[] getBoundaryCoefficients(Simplex simplex) {\r\n\t\treturn simplex.getBoundaryCoefficients();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getDimension(java.lang.Object)\r\n\t */\r\n\tpublic int getDimension(Simplex element) {\r\n\t\treturn this.stream.getDimension(element);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.primitivelib.metric.interfaces.AbstractObjectMetricSpace#getPoints()\r\n\t */\r\n\tpublic double[][] getPoints() {\r\n\t\treturn this.metricSpace.getPoints();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getSize()\r\n\t */\r\n\tpublic int getSize() {\r\n\t\treturn this.stream.getSize();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getMaximumFiltrationIndex()\r\n\t */\r\n\tpublic int getMaximumFiltrationIndex() {\r\n\t\treturn this.stream.getMaximumFiltrationIndex();\r\n\t}\r\n\t\r\n\tpublic int getMinimumFiltrationIndex() {\r\n\t\treturn this.stream.getMinimumFiltrationIndex();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream#getBasisComparator()\r\n\t */\r\n\tpublic Comparator<Simplex> getBasisComparator() {\r\n\t\treturn this.stream.getBasisComparator();\r\n\t}\r\n\r\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\r\n\t\treturn this.stream.transform(barcodeCollection);\r\n\t}\r\n\r\n\tpublic double getFiltrationValue(Simplex basisElement) {\r\n\t\treturn this.stream.getFiltrationValue(basisElement);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/LazyWitnessStream.java",
    "content": "package edu.stanford.math.plex4.streams.impl;\n\nimport java.util.ArrayList;\nimport java.util.Arrays;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.graph.UndirectedWeightedListGraph;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.filtration.ExternalConverter;\nimport edu.stanford.math.plex4.homology.filtration.IncreasingLinearConverter;\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility;\nimport edu.stanford.math.primitivelib.autogen.pair.IntDoublePair;\nimport edu.stanford.math.primitivelib.utility.Infinity;\nimport gnu.trove.TIntHashSet;\nimport gnu.trove.TIntIterator;\nimport gnu.trove.TIntObjectHashMap;\n\n/**\n * This class implements the lazy witness complex described in the paper\n * \"Topological estimation using witness complexes\", by Vin de Silva and Gunnar\n * Carlsson. The details of the construction are described in this paper. Note\n * that a lazy witness complex is fully described by its 1-skeleton, therefore\n * we simply derive from the FlagComplexStream class.\n * \n * @author Andrew Tausz\n * \n * @param <T>\n *            the type of the underlying metric space\n */\n\npublic class LazyWitnessStream<T> extends FlagComplexStream {\n\n\t/**\n\t * This is the metric space upon which the stream is built from.\n\t */\n\tprotected final AbstractSearchableMetricSpace<T> metricSpace;\n\n\t/**\n\t * This is the selection of landmark points\n\t */\n\tprotected final LandmarkSelector<T> landmarkSelector;\n\n\t/**\n\t * This is the nu value described in the paper. Note that we use the default\n\t * value of 2.\n\t */\n\tprotected final int nu;\n\n\t/**\n\t * The maximum distance allowed between two connected vertices.\n\t */\n\tprotected final double maxDistance;\n\n\tprotected double[][] D = null;\n\tprotected double[] m = null;\n\n\t/**\n\t * If (i, sigma) is in witnessSimplexMap, then it means that point i is a a\n\t * witness for sigma\n\t */\n\tprivate final TIntObjectHashMap<List<Simplex>> witnessSimplexMap = new TIntObjectHashMap<List<Simplex>>();\n\n\tprotected final int N;\n\tprotected final int L;\n\n\tprotected final double epsilon = 1e-8;\n\n\tprotected boolean plex3Compatible = true;\n\n\t/**\n\t * Constructor which initializes the complex with a metric space.\n\t * \n\t * @param metricSpace\n\t *            the metric space to use in the construction of the complex\n\t * @param maxDistance\n\t *            the maximum allowable distance\n\t * @param maxDimension\n\t *            the maximum dimension of the complex\n\t */\n\n\tpublic LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int nu,\n\t\t\tint numDivisions) {\n\t\tsuper(maxDimension, new IncreasingLinearConverter(numDivisions, maxDistance));\n\t\tExceptionUtility.verifyNonNull(metricSpace);\n\t\tExceptionUtility.verifyNonNegative(nu);\n\t\tExceptionUtility.verifyLessThan(nu, 3);\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.landmarkSelector = landmarkSelector;\n\t\tthis.nu = nu;\n\t\tthis.maxDistance = maxDistance;\n\t\tthis.N = this.metricSpace.size();\n\t\tthis.L = this.landmarkSelector.size();\n\t}\n\n\tpublic LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance,\n\t\t\tint numDivisions) {\n\t\tthis(metricSpace, landmarkSelector, maxDimension, maxDistance, getDefaultNuValue(), numDivisions);\n\t}\n\n\tpublic LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int nu,\n\t\t\tint[] indices) {\n\t\tsuper(maxDimension, new IncreasingLinearConverter(20, maxDistance), indices);\n\t\tExceptionUtility.verifyNonNull(metricSpace);\n\t\tExceptionUtility.verifyNonNegative(nu);\n\t\tExceptionUtility.verifyLessThan(nu, 3);\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.landmarkSelector = landmarkSelector;\n\t\tthis.nu = nu;\n\t\tthis.maxDistance = maxDistance;\n\t\tthis.N = this.metricSpace.size();\n\t\tthis.L = this.landmarkSelector.size();\n\t}\n\n\tpublic LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance,\n\t\t\tint[] indices) {\n\t\tthis(metricSpace, landmarkSelector, maxDimension, maxDistance, getDefaultNuValue(), indices);\n\t}\n\t\n\t\n\t\n\tpublic LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double[] filtrationValues, int nu) {\n\t\tsuper(maxDimension, new ExternalConverter(filtrationValues));\n\t\tExceptionUtility.verifyNonNull(metricSpace);\n\t\tExceptionUtility.verifyNonNegative(nu);\n\t\tExceptionUtility.verifyLessThan(nu, 3);\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.landmarkSelector = landmarkSelector;\n\t\tthis.nu = nu;\n\t\tthis.maxDistance = DoubleArrayMath.max(filtrationValues);\n\t\tthis.N = this.metricSpace.size();\n\t\tthis.L = this.landmarkSelector.size();\n\t}\n\n\tpublic LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double[] filtrationValues) {\n\t\tthis(metricSpace, landmarkSelector, maxDimension, filtrationValues, getDefaultNuValue());\n\t}\n\n\tpublic LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double[] filtrationValues, int nu,\n\t\t\tint[] indices) {\n\t\tsuper(maxDimension, new ExternalConverter(filtrationValues), indices);\n\t\tExceptionUtility.verifyNonNull(metricSpace);\n\t\tExceptionUtility.verifyNonNegative(nu);\n\t\tExceptionUtility.verifyLessThan(nu, 3);\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.landmarkSelector = landmarkSelector;\n\t\tthis.nu = nu;\n\t\tthis.maxDistance = DoubleArrayMath.max(filtrationValues);\n\t\tthis.N = this.metricSpace.size();\n\t\tthis.L = this.landmarkSelector.size();\n\t}\n\n\tpublic LazyWitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double[] filtrationValues,\n\t\t\tint[] indices) {\n\t\tthis(metricSpace, landmarkSelector, maxDimension, filtrationValues, getDefaultNuValue(), indices);\n\t}\n\n\tpublic void setPlex3Compatbility(boolean value) {\n\t\tthis.plex3Compatible = value;\n\t}\n\n\tpublic static int getDefaultNuValue() {\n\t\treturn 2;\n\t}\n\n\t/**\n\t * This function returns the list of simplices such that they have the given\n\t * point as their witness. If there are no such points, this function\n\t * returns null;\n\t * \n\t * @param witness\n\t *            the witness point\n\t * @return a list of simplices with the given point as their witness\n\t */\n\tpublic List<Simplex> getAssociatedSimplices(int witness) {\n\t\tList<Simplex> temp = this.witnessSimplexMap.get(witness);\n\n\t\tif (temp == null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tList<Simplex> result = new ArrayList<Simplex>();\n\t\tresult.addAll(temp);\n\t\treturn result;\n\t}\n\n\t@Override\n\tprotected UndirectedWeightedListGraph constructEdges() {\n\n\t\tthis.indices = this.landmarkSelector.getLandmarkPoints();\n\n\t\tUndirectedWeightedListGraph graph = new UndirectedWeightedListGraph(L);\n\n\t\t/*\n\t\t * Let N be the number of points in the metric space, and n the number\n\t\t * of landmark points. Let D be the L x N matrix of distances between\n\t\t * the set of landmark points, and the set of all points in the metric\n\t\t * space.\n\t\t * \n\t\t * The definition of the 1-skeleton of the lazy witness complex is as\n\t\t * follows:\n\t\t * \n\t\t * - If nu = 0, then define m_i = 0, otherwise define m_i to be the\n\t\t * nu-th smallest entry in the i-th column of D. - The edge [ab] belongs\n\t\t * to W(D, R, nu) iff there exists as witness i in {1, ..., N} such that\n\t\t * max(D(a, i), D(b, i)) <= R + m_i\n\t\t */\n\n\t\t/**\n\t\t * Key difference between Plex3 and Plex4: - if landmarks[l] == n, Plex3\n\t\t * sets the distance to infinity - in Plex4, the distance is just set to\n\t\t * 0\n\t\t * \n\t\t * !not true anymore!\n\t\t */\n\n\t\tD = null;\n\t\tm = DoubleArrayUtility.createArray(N);\n\n\t\ttry {\n\t\t\tD = DoubleArrayUtility.createMatrix(L, N);\n\t\t\tfor (int l = 0; l < L; l++) {\n\t\t\t\tfor (int n = 0; n < N; n++) {\n\t\t\t\t\t// if (n == this.indices[l]) {\n\t\t\t\t\t// D[l][n] = Infinity.Double.getPositiveInfinity();\n\t\t\t\t\t// } else {\n\t\t\t\t\tD[l][n] = this.metricSpace.distance(this.landmarkSelector.getLandmarkIndex(l), n);\n\t\t\t\t\t// }\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (OutOfMemoryError error) {\n\t\t\tD = null;\n\t\t} finally {\n\t\t}\n\n\t\tdouble[] m_temp = new double[L + 1];\n\t\tfor (int n = 0; n < N; n++) {\n\t\t\tfor (int l = 0; l < L; l++) {\n\t\t\t\tif (D == null) {\n\t\t\t\t\tm_temp[l + 1] = this.metricSpace.distance(this.landmarkSelector.getLandmarkIndex(l), n);\n\t\t\t\t} else {\n\t\t\t\t\tm_temp[l + 1] = D[l][n];\n\t\t\t\t}\n\t\t\t}\n\t\t\tArrays.sort(m_temp);\n\t\t\tassert (m_temp[0] == 0.0);\n\t\t\tm[n] = m_temp[this.nu];\n\t\t\tassert (m[n] > 0.0);\n\t\t}\n\n\t\t// int edge_count = 0;\n\n\t\t{\n\t\t\tdouble e_ij;\n\t\t\tint n_star = 0;\n\n\t\t\tfor (int i = 0; i < L; i++) {\n\t\t\t\tfor (int j = i + 1; j < L; j++) {\n\n\t\t\t\t\tIntDoublePair witnessAndDistance = this.getWitnessAndDistance(i, j);\n\t\t\t\t\tn_star = witnessAndDistance.getFirst();\n\t\t\t\t\te_ij = witnessAndDistance.getSecond();\n\n\t\t\t\t\tif (e_ij <= this.maxDistance) {\n\t\t\t\t\t\tthis.updateWitnessInformationInternalIndices(n_star, e_ij, i, j);\n\t\t\t\t\t\tgraph.addEdge(i, j, e_ij);\n\t\t\t\t\t\t// edge_count++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn graph;\n\t}\n\n\tprotected IntDoublePair getWitnessAndDistance(int... landmarkIndices) {\n\n\t\tdouble e_ij;\n\t\tdouble d;\n\t\te_ij = Infinity.Double.getPositiveInfinity();\n\t\tint n_star = -1;\n\n\t\tint[] externalIndices = HomologyUtility.convertIndices(landmarkIndices, this.landmarkSelector.getLandmarkPoints());\n\n\t\tint l = landmarkIndices.length - 1;\n\t\t// An empty simplex has no witnesses.\n\t\tif (l < 0) {\n\t\t\treturn new IntDoublePair(n_star, e_ij);\n\t\t}\n\n\t\tfor (int n = 0; n < N; n++) {\n\t\t\tif (contains(this.indices, n) && !this.plex3Compatible) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tdouble d_max = Infinity.Double.getNegativeInfinity();\n\t\t\tif (D == null) {\n\t\t\t\tfor (int k = 0; k < landmarkIndices.length; k++) {\n\t\t\t\t\td = this.metricSpace.distance(externalIndices[k], n);\n\t\t\t\t\tif (k == 0 || d > d_max) {\n\t\t\t\t\t\td_max = d;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (int k = 0; k < landmarkIndices.length; k++) {\n\t\t\t\t\td = D[landmarkIndices[k]][n];\n\t\t\t\t\tif (k == 0 || d > d_max) {\n\t\t\t\t\t\td_max = d;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (d_max < m[n]) {\n\t\t\t\td_max = 0.0;\n\t\t\t} else {\n\t\t\t\td_max -= m[n];\n\t\t\t}\n\n\t\t\tif (d_max < e_ij) {\n\t\t\t\te_ij = d_max;\n\t\t\t\tn_star = n;\n\t\t\t}\n\n\t\t}\n\n\t\treturn new IntDoublePair(n_star, e_ij);\n\t}\n\n\tprotected static boolean contains(int[] array, int value) {\n\t\tfor (int i = 0; i < array.length; i++) {\n\t\t\tif (array[i] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprotected void updateWitnessInformationInternalIndices(int n_star, double e_ij, int... internalIndices) {\n\t\tupdateWitnessInformation(n_star, e_ij, HomologyUtility.convertIndices(internalIndices, this.indices));\n\t}\n\n\tprotected void updateWitnessInformation(int n_star, double e_ij, int... externalIndices) {\n\n\t\tTIntHashSet witnesses = this.getAllWitnesses(e_ij, externalIndices);\n\n\t\tfor (TIntIterator iterator = witnesses.iterator(); iterator.hasNext();) {\n\t\t\tint witnessIndex = iterator.next();\n\t\t\tif (!this.witnessSimplexMap.contains(witnessIndex)) {\n\t\t\t\tthis.witnessSimplexMap.put(witnessIndex, new ArrayList<Simplex>());\n\t\t\t}\n\t\t\tthis.witnessSimplexMap.get(witnessIndex).add(Simplex.makeSimplex(externalIndices));\n\t\t}\n\t}\n\n\tprotected boolean isWitness(int x, Simplex simplex) {\n\t\treturn this.isWitness(x, simplex.getVertices());\n\t}\n\n\tprotected boolean isWitness(int x, int[] externalIndices) {\n\t\tif (!this.witnessSimplexMap.contains(x)) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.witnessSimplexMap.get(x).contains(Simplex.makeSimplex(externalIndices));\n\t}\n\n\tprotected TIntHashSet getAllWitnesses(final double e_ij, final int... externalIndices) {\n\t\tdouble d[] = new double[externalIndices.length];\n\t\tTIntHashSet witnesses = new TIntHashSet();\n\n\t\tint[] landmarkIndices = HomologyUtility.deconvertIndices(externalIndices, this.indices);\n\t\t// landmarkIndices = externalIndices;\n\n\t\tfor (int n = 0; n < N; n++) {\n\t\t\tif (contains(this.indices, n) && !this.plex3Compatible) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tdouble d_max = Infinity.Double.getNegativeInfinity();\n\t\t\tif (D == null) {\n\t\t\t\tfor (int k = 0; k < landmarkIndices.length; k++) {\n\t\t\t\t\td[k] = this.metricSpace.distance(externalIndices[k], n);\n\t\t\t\t\tif (k == 0 || d[k] > d_max) {\n\t\t\t\t\t\td_max = d[k];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (int k = 0; k < landmarkIndices.length; k++) {\n\t\t\t\t\td[k] = D[landmarkIndices[k]][n];\n\t\t\t\t\tif (k == 0 || d[k] > d_max) {\n\t\t\t\t\t\td_max = d[k];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (d_max < m[n]) {\n\t\t\t\td_max = 0.0;\n\t\t\t} else {\n\t\t\t\td_max -= m[n];\n\t\t\t}\n\n\t\t\tif (Math.abs(d_max - e_ij) <= this.epsilon) {\n\t\t\t\twitnesses.add(n);\n\t\t\t}\n\t\t}\n\n\t\tif (externalIndices.length == 1 && contains(this.indices, externalIndices[0])) {\n\t\t\twitnesses.add(externalIndices[0]);\n\t\t}\n\n\t\treturn witnesses;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/VietorisRipsStream.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.streams.impl;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.filtration.ExternalConverter;\nimport edu.stanford.math.plex4.homology.filtration.IncreasingLinearConverter;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\nimport edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructure;\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\n\n\n/**\n * <p>This class implements the Vietoris-Rips filtered simplicial complex.\n * A simplex [v_0, ..., v_k] is in VR(r) if and only if the pairwise distances\n * d(v_i, v_j) are less than r for all 0 <= i, j <= k. Thus a Vietoris-Rips\n * complex is fully defined by its 1-skeleton, in that it is the maximal \n * simplicial complex given such a 1-skeleton. For this reason, we simply\n * derive from the FlagComplexStream abstract class, and implement the pairwise\n * thresholding in order to generate the 1-skeleton.</p>\n * \n * @author Andrew Tausz\n * @author Mikael Vejdemo-Johansson\n *\n * @param <T> the base type of the underlying metric space\n */\npublic class VietorisRipsStream<T> extends FlexibleVietorisRipsStream<T> {\n\t\n\t/**\n\t * Constructor which initializes the complex with a metric space.\n\t * \n\t * @param metricSpace the metric space to use in the construction of the complex\n\t * @param maxDistance the maximum allowable distance\n\t * @param maxDimension the maximum dimension of the complex\n\t */\n\tpublic VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension) {\n\t\tthis(metricSpace, maxDistance, maxDimension, 20);\n\t}\n\t\n\tpublic VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, int numDivisions) {\n\t    super(metricSpace, maxDistance, maxDimension, new IncreasingLinearConverter(numDivisions, maxDistance));\n\t}\n\t\n\tpublic VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, int numDivisions, StreamStorageStructure<Simplex> storageStructure) {\n\t    super(metricSpace, maxDistance, maxDimension, new IncreasingLinearConverter(numDivisions, maxDistance), storageStructure);\n\t}\n\n\tpublic VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double maxDistance, int maxDimension, int[] indices) {\n\t    super(metricSpace, maxDistance, maxDimension, new IncreasingLinearConverter(20, maxDistance), indices);\n\t}\n\t\n\tpublic VietorisRipsStream(AbstractSearchableMetricSpace<T> metricSpace, double[] filtrationValues, int maxDimension) {\n\t\tsuper(metricSpace, DoubleArrayMath.max(filtrationValues), maxDimension, new ExternalConverter(filtrationValues));\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/WitnessBicomplex.java",
    "content": "package edu.stanford.math.plex4.streams.impl;\n\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPair;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator;\n\npublic class WitnessBicomplex<T> extends ExplicitStream<SimplexPair> {\n\tprotected final WitnessStream<T> L1;\n\tprotected final WitnessStream<T> L2;\n\tprotected final int maxDimension;\n\n\tpublic WitnessBicomplex(WitnessStream<T> L1, WitnessStream<T> L2, int maxDimension) {\n\t\tsuper(SimplexPairComparator.getInstance());\n\t\tthis.L1 = L1;\n\t\tthis.L2 = L2;\n\t\tthis.maxDimension = maxDimension;\n\t}\n\n\t@Override\n\tprotected void constructComplex() {\n\t\t// L1 and L2 should have the same vertex set\n\t\t\n\t\tif (L1.N != L2.N){\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tSimplexPair pair = null;\n\t\t\n\t\tfor (int n = 0; n < L1.N; n++) {\n\t\t\tList<Simplex> L1Simplices = L1.getAssociatedSimplices(n);\n\t\t\tList<Simplex> L2Simplices = L2.getAssociatedSimplices(n);\n\t\t\t\n\t\t\tif (L1Simplices == null || L2Simplices == null || L1Simplices.isEmpty() || L2Simplices.isEmpty()) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tfor (Simplex sigma: L1Simplices) {\n\t\t\t\tint sigma_index = L1.getFiltrationIndex(sigma);\n\t\t\t\tfor (Simplex tau: L2Simplices) {\n\t\t\t\t\tint tau_index = L2.getFiltrationIndex(tau);\n\t\t\t\t\t\n\t\t\t\t\tpair = SimplexPair.createPair(sigma, tau);\n\t\t\t\t\tif (pair.getDimension() <= maxDimension && (!this.storageStructure.containsElement(pair))) {\n\t\t\t\t\t\tthis.storageStructure.addElement(pair, Math.max(sigma_index, tau_index));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/impl/WitnessStream.java",
    "content": "package edu.stanford.math.plex4.streams.impl;\n\nimport java.util.ArrayList;\nimport java.util.ArrayDeque;\nimport java.util.Arrays;\nimport java.util.Deque;\nimport java.util.List;\n//import java.util.Collections;\n\n//import org.apache.commons.lang.ArrayUtils;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\n//import edu.stanford.math.plex4.graph.UndirectedWeightedListGraph;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationConverter;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationUtility;\nimport edu.stanford.math.plex4.homology.filtration.IncreasingLinearConverter;\n//import edu.stanford.math.plex4.homology.utility.HomologyUtility;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\nimport edu.stanford.math.plex4.streams.interfaces.PrimitiveStream;\nimport edu.stanford.math.plex4.utility.ExceptionUtility;\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility;\n//import edu.stanford.math.primitivelib.autogen.pair.IntDoublePair;\n//import edu.stanford.math.primitivelib.utility.Infinity;\n//import gnu.trove.TIntHashSet;\n//import gnu.trove.TIntIterator;\n//import gnu.trove.TIntObjectHashMap;\n\npublic class WitnessStream<T> extends PrimitiveStream<Simplex> {\n\t/**\n\t * The maximum allowable dimension of the complex.\n\t */\n\tprotected final int maxAllowableDimension;\n\n\t/**\n\t * This converts between filtration indices and values\n\t */\n\tprotected FiltrationConverter converter;\n\n\tprotected int[] indices = null;\n\n\t/**\n\t * This is the metric space upon which the stream is built from.\n\t */\n\tprotected final AbstractSearchableMetricSpace<T> metricSpace;\n\n\t/**\n\t * This is the selection of landmark points\n\t */\n\tprotected final LandmarkSelector<T> landmarkSelector;\n\n\t/**\n\t * The maximum distance allowed between two connected vertices.\n\t */\n\tprotected final double maxDistance;\n\n\tprotected double[][] D = null;\n\tprotected double[][] m = null;\n\n\tprotected final int N;\n\tprotected final int L;\n\tprotected final int maxLen;\n\n\tprotected boolean plex3Compatible = true;\n\n\t/*\n\t * Storage of all associated simplices for a witness is costly, so we do not\n\t * save this information by default. It is only needed for witness\n\t * bicomplexes.\n\t */\n\tprotected boolean saveAssociatedSimplices = false;\n\n\tList<List<Simplex>> associatedSimplices;\n\n\t/**\n\t * Constructor which initializes the complex with a metric space.\n\t * \n\t * @param metricSpace\n\t *            the metric space to use in the construction of the complex\n\t * @param maxDistance\n\t *            the maximum allowable distance\n\t * @param maxDimension\n\t *            the maximum dimension of the complex\n\t */\n\n\tpublic WitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance,\n\t\t\tint numDivisions) {\n\t\tsuper(SimplexComparator.getInstance());\n\t\tthis.maxAllowableDimension = maxDimension;\n\t\tthis.converter = new IncreasingLinearConverter(numDivisions, maxDistance);\n\t\tExceptionUtility.verifyNonNull(metricSpace);\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.landmarkSelector = landmarkSelector;\n\t\tthis.maxDistance = maxDistance;\n\t\tthis.N = this.metricSpace.size();\n\t\tthis.L = this.landmarkSelector.size();\n\n\t\tthis.maxLen = (maxDimension < 0 || maxDimension >= L) ? L : maxDimension + 1;\n\t}\n\n\tpublic WitnessStream(AbstractSearchableMetricSpace<T> metricSpace, LandmarkSelector<T> landmarkSelector, int maxDimension, double maxDistance, int[] indices) {\n\t\tsuper(SimplexComparator.getInstance());\n\t\tthis.maxAllowableDimension = maxDimension;\n\t\tthis.converter = new IncreasingLinearConverter(20, maxDistance);\n\t\tthis.indices = indices;\n\t\tthis.metricSpace = metricSpace;\n\t\tthis.landmarkSelector = landmarkSelector;\n\t\tthis.maxDistance = maxDistance;\n\t\tthis.N = this.metricSpace.size();\n\t\tthis.L = this.landmarkSelector.size();\n\n\t\tthis.maxLen = (maxDimension < 0 || maxDimension >= L) ? L : maxDimension + 1;\n\t}\n\n\tpublic double getFiltrationValue(Simplex simplex) {\n\t\treturn this.converter.getFiltrationValue(this.getFiltrationIndex(simplex));\n\t}\n\n\t/**\n\t * This function transforms the given collection of filtration index\n\t * barcodes into filtration value barcodes.\n\t * \n\t * @param <G>\n\t * @param barcodeCollection\n\t *            the set of filtration index barcodes\n\t * @return the barcodes transformed into filtration value form\n\t */\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\n\t\treturn FiltrationUtility.transform(barcodeCollection, this.converter);\n\t}\n\n\tpublic void setPlex3Compatbility(boolean value) {\n\t\t/*\n\t\t * Daniel: I don't know what would make this implementation not\n\t\t * compatible to Plex3. Hence, if someone requests\n\t\t * setPlex3Compatbility(false), we raise an error.\n\t\t */\n\t\tif (!value) {\n\t\t\tthrow new UnsupportedOperationException();\n\t\t}\n\t}\n\n\t/**\n\t * This function returns the list of simplices such that they have the given\n\t * point as their witness. If there are no such points, this function\n\t * returns null;\n\t * \n\t * @param witness\n\t *            the witness point\n\t * @return a list of simplices with the given point as their witness\n\t */\n\tpublic List<Simplex> getAssociatedSimplices(int witness) {\n\t\tif (!this.saveAssociatedSimplices) {\n\t\t\tthrow new UnsupportedOperationException(); // TODO: use a better\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// exception\n\t\t}\n\t\treturn this.associatedSimplices.get(witness);\n\t}\n\n\t@Override\n\tprotected void constructComplex() {\n\n\t\tthis.indices = this.landmarkSelector.getLandmarkPoints(); // TODO Is\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// this\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// correct?\n\n\t\t// Get all distances between landmark points and data points.\n\t\tD = DoubleArrayUtility.createMatrix(L, N);\n\t\tfor (int ll = 0; ll < L; ll++) {\n\t\t\tfor (int nn = 0; nn < N; nn++) {\n\t\t\t\tD[ll][nn] = this.metricSpace.distance(this.landmarkSelector.getLandmarkIndex(ll), nn);\n\t\t\t}\n\t\t}\n\t\t// Find the max_len nearest landmarks for every data point.\n\t\tdouble tmp[] = new double[L];\n\t\tm = DoubleArrayUtility.createMatrix(maxLen, N);\n\t\tfor (int nn = 0; nn < N; ++nn) {\n\t\t\tfor (int ll = 0; ll < L; ++ll) {\n\t\t\t\ttmp[ll] = D[ll][nn];\n\t\t\t}\n\t\t\t// Daniel: I want partial sort (the smallest maxLen elements in\n\t\t\t// sorted order)\n\t\t\t// but I don't know what function to use.\n\t\t\tArrays.sort(tmp);\n\t\t\tfor (int ll = 0; ll < maxLen; ++ll) {\n\t\t\t\tm[ll][nn] = tmp[ll];\n\t\t\t}\n\t\t}\n\n\t\tif (this.saveAssociatedSimplices) {\n\t\t\tthis.associatedSimplices = new ArrayList<List<Simplex>>();\n\t\t\tfor (int ll = 0; ll < L; ++ll) {\n\t\t\t\tthis.associatedSimplices.add(new ArrayList<Simplex>());\n\t\t\t}\n\t\t}\n\n\t\tDeque<Integer> lower_vertices = new ArrayDeque<Integer>();\n\t\t// Recursively add vertices and all their cofaces.\n\t\tfor (int ll = 0; ll < L; ++ll) {\n\t\t\tif (this.addCofaces_(ll, new int[] {}, null, lower_vertices)) {\n\t\t\t\tlower_vertices.add(ll);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Add the simplex (index[i0], s1[0], ...) if all conditions are met.\n\t */\n\tboolean addCofaces_(int i0, int[] s1, double[] Dm1, Deque<Integer> lower_vertices) {\n\t\tint dim = s1.length;\n\t\tint filtrationIndex;\n\t\tdouble[] Dm = new double[N];\n\t\tint[] snew;\n\n\t\tswitch (dim) {\n\t\tcase 0: {\n\t\t\tfor (int nn = 0; nn < N; ++nn) {\n\t\t\t\tDm[nn] = D[i0][nn];\n\t\t\t}\n\t\t\tfiltrationIndex = this.converter.getFiltrationIndex(0.0);\n\t\t\tsnew = new int[] { this.indices[i0] };\n\t\t\tbreak;\n\t\t}\n\t\tcase 1: {\n\t\t\tfor (int nn = 0; nn < N; ++nn) {\n\t\t\t\tDm[nn] = Math.max(Dm1[nn], D[i0][nn]);\n\t\t\t}\n\t\t\tsnew = new int[] { this.indices[i0], s1[0] };\n\n\t\t\tdouble filtrationValue = Double.POSITIVE_INFINITY;\n\t\t\tfor (int nn = 0; nn < N; ++nn) {\n\t\t\t\tfiltrationValue = Math.min(filtrationValue, Dm[nn] - m[dim][nn]);\n\t\t\t}\n\t\t\tif (filtrationValue > this.maxDistance) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfiltrationIndex = this.converter.getFiltrationIndex(filtrationValue);\n\t\t\tbreak;\n\t\t}\n\t\tdefault: {\n\t\t\tsnew = new int[dim + 1];\n\t\t\tsnew[0] = this.indices[i0];\n\t\t\tSystem.arraycopy(s1, 0, snew, 1, dim);\n\n\t\t\tfiltrationIndex = 0;\n\t\t\tfor (Simplex face : new Simplex(snew).getBoundaryArray()) {\n\t\t\t\tif (!this.containsElement(face)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tfiltrationIndex = Math.max(filtrationIndex, this.getFiltrationIndex(face));\n\t\t\t}\n\n\t\t\tfor (int nn = 0; nn < N; ++nn) {\n\t\t\t\tDm[nn] = Math.max(Dm1[nn], D[i0][nn]);\n\t\t\t}\n\n\t\t\tdouble filtrationValue = Double.POSITIVE_INFINITY;\n\t\t\tfor (int nn = 0; nn < N; ++nn) {\n\t\t\t\tfiltrationValue = Math.min(filtrationValue, Dm[nn] - m[dim][nn]);\n\t\t\t}\n\t\t\tif (filtrationValue > this.maxDistance) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfiltrationIndex = Math.max(filtrationIndex, this.converter.getFiltrationIndex(filtrationValue));\n\t\t}\n\t\t}\n\n\t\t// Add the simplex to the complex.\n\t\tSimplex Snew = new Simplex(snew);\n\t\tthis.storageStructure.addElement(Snew, filtrationIndex);\n\t\tif (this.saveAssociatedSimplices) {\n\t\t\tfor (int nn = 0; nn < N; ++nn) {\n\t\t\t\tif (Dm[nn] <= m[dim][nn]) {\n\t\t\t\t\tthis.associatedSimplices.get(nn).add(Snew);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Recursively add cofaces.\n\t\tif (dim < this.maxAllowableDimension) {\n\t\t\tDeque<Integer> new_lower_vertices = new ArrayDeque<Integer>();\n\t\t\tfor (int ll : lower_vertices) {\n\t\t\t\tif (this.addCofaces_(ll, snew, Dm, new_lower_vertices)) {\n\t\t\t\t\tnew_lower_vertices.add(ll);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/interfaces/AbstractFilteredStream.java",
    "content": "package edu.stanford.math.plex4.streams.interfaces;\n\nimport java.util.Comparator;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\n\n\n/**\n * <p>This interface defines the functionality of a streamed filtered\n * chain complex. An implementing class must provide functionality\n * for iterating through the chain complex, as well as providing\n * information about the basis elements (such as their filtration\n * indices and dimension).</p>\n * \n * <p>Note that there are two types of grading on our notion of a \n * filtered chain complex. The first is that of the filtration index.\n * In other words we have the decomposition\n * <code>... -> C_{i-1} -> C_{i} -> C_{i+1} -> ...</code>\n * with elements in C_i having the filtration index given by a_i. However, \n * we also have the more standard homological grading given by the \"dimension\"\n * of a basis element. Since we are not restricting ourselves to basis\n * elements consisting of simplices, the dimension may or may not carry\n * geometric meaning. Nevertheless it plays an important role.</p>\n * \n * <p>An implementing class must iterate through the basis elements in \n * non-decreasing order of filtration index. This defines a partial\n * order on the set of basis elements within the entire chain complex.\n * The completion of this partial order to a total order can depend\n * on the implementer, but must be such that the boundary of a basis \n * element must always precede the element itself. In practice, the \n * completion of the partial order will be based on dimension.</p>\n * \n * <p>The underlying type of the stream, T, will vary depending on the\n * context. Below are some examples:\n * <ul>\n * <li>T = Simplex: a standard filtered simplicial complex</li>\n * <li>T = Cell: a standard filtered CW complex</li>\n * <li>T = ObjectObjectPair<T, U>: a pair may represent a tensor product</li>\n * </ul>\n * </p>\n * \n * <p>This interface is the highest level in the filtered stream classes\n * and interfaces, and defines the basic functionality that all such\n * streams must implement.</p>\n * \n * <p>It is important to note that functions such as getBoundary, \n * getFiltrationIndex and getDimension do not only depend on the \n * queried basis element (ie. the simplex in question), but also \n * the properties of the chain complex. For example, the getBoundary\n * function may return the coboundary of a simplex rather than a \n * boundary in the case that we are working in the context of a cochain\n * complex. Or, the getDimension may return a shifted version of\n * the actual geometric dimension of a simplex.</p>\n * \n * <p>Another important point is that this class is agnostic towards the\n * actual filtration value of a basis element, and only stores filtration\n * indices. Filtration indices are integers that are somehow calculated from\n * the actual filtration values. The reason that we have chosen not to store\n * the actual filtration values is that we do not want to enforce a particular\n * ordering on them. For example, we may define a filtered complex based on \n * the sublevel or superlevel sets of a function. However, we always maintain\n * the constraint that the filtration index must be non-decreasing.</p>\n * \n * <p>A note on language: We call the underlying parameterized type T as the\n * basis type. This is justified by the fact that the modules in the chain\n * complex are free modules, and are generated by objects with type T.</p>\n * \n * @author Andrew Tausz\n *\n * @param <T> the underlying type of the generators in the free modules of the complex\n */\npublic interface AbstractFilteredStream<T> extends Iterable<T> {\n\t\n\t/**\n\t * This function returns the filtration index of the requested basis element.\n\t * \n\t * @param basisElement the basis element to get the filtration index for\n\t * @return the filtration index of the specified basis element\n\t */\n\tpublic int getFiltrationIndex(T basisElement);\n\t\n\tpublic double getFiltrationValue(T basisElement);\n\t\n\t/**\n\t * This function returns whether an element is contained in the stream.\n\t * \n\t * @param basisElement the basis element to be tested\n\t */\n\tpublic boolean containsElement(T basisElement);\n\n\t/**\n\t * This function returns the elements in the boundary of the supplied\n\t * basisElement, without the coefficients. We do not integrate the\n\t * elements of the boundary array with their respective coefficients\n\t * since this interface is designed to be independent of the algebraic\n\t * environment.\n\t * \n\t * @param basisElement the element to get the boundary of\n\t * @return an array containing the boundary elements of the queried element\n\t */\n\tpublic T[] getBoundary(T basisElement);\n\t\n\t/**\n\t * This function returns the coefficients of the boundary of the supplied\n\t * basis element. Note that in many cases, this will be the standard array\n\t * consisting of alternating signs: [1, -1, 1, -1, ...]. However, this\n\t * will not always be the case. Thus this must be left abstract. Also note\n\t * that the coefficients will always be integers.\n\t * \n\t * @param basisElement the element to get the boundary coefficients of\n\t * @return an array containing the boundary coefficients of the queried element\n\t */\n\tpublic int[] getBoundaryCoefficients(T basisElement);\n\t\n\t/**\n\t * This function returns the dimension of a basis element within\n\t * the chain complex.\n\t * \n\t * @param basisElement the element to get the dimension of\n\t * @return the dimension of the basis element within the chain complex\n\t */\n\tpublic int getDimension(T basisElement);\n\t\n\t/**\n\t * This function prepares the stream for use by a consumer, such as the\n\t * PersistentHomology class. After finalization, the stream cannot not be \n\t * modified by adding or removing elements. In practice, the finalize\n\t * procedure will probably do some sorting and construction of data\n\t * structures necessary for iterating through the stream.  \n\t */\n\tpublic void finalizeStream();\n\t\n\t/**\n\t * This function checks whether the finalize() function has been called.\n\t * \n\t * @return true if the stream has been finalized, and false otherwise\n\t */\n\tpublic boolean isFinalized();\n\t\n\t/**\n\t * This function returns the total number of elements in the stream.\n\t * \n\t * @return the size of the stream\n\t */\n\tpublic int getSize();\n\t\n\t/**\n\t * This function gets the maximum filtration index in the complex.\n\t * \n\t * @return the maximum filtration index\n\t */\n\tpublic int getMaximumFiltrationIndex();\n\t/**\n\t * This function gets the minimum filtration index in the complex.\n\t * \n\t * @return the minimum filtration index\n\t */\n\tpublic int getMinimumFiltrationIndex();\n\t\n\t/**\n\t * This function returns a comparator on the underlying basis type.\n\t * \n\t * @return a comparator on the underlying basis type\n\t */\n\tpublic Comparator<T> getBasisComparator();\n\t\n\t/**\n\t * This function transforms the given collection of filtration index barcodes into filtration value barcodes.\n\t * \n\t * @param <G>\n\t * @param barcodeCollection the set of filtration index barcodes\n\t * @return the barcodes transformed into filtration value form\n\t */\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection);\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/interfaces/PrimitiveStream.java",
    "content": "package edu.stanford.math.plex4.streams.interfaces;\r\n\r\nimport java.util.Comparator;\r\nimport java.util.Iterator;\r\n\r\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\r\nimport edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructure;\r\nimport edu.stanford.math.plex4.streams.storage_structures.StreamStorageStructureFactory;\r\n\r\n/**\r\n * <p>This class implements a filtered chain complex where the underlying type\r\n * is a geometric primitive (a Simplex or a Cell). Thus the appropriate\r\n * homological functions are defined by the geometric properties of the\r\n * underlying type. For example, the homological dimension is given by\r\n * the actual geometric dimension, and the boundary is the geometric boundary\r\n * of the cell or simplex in question.</p>\r\n * \r\n * <p>Note that this class does not actually implement a storage mechanism, but\r\n * allows a user to define one via a supplied StreamStorageStructure object.\r\n * In the event that the user does not supply one, it reverts to the default\r\n * one.</p>\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <T> the underlying basis type of the stream\r\n */\r\npublic abstract class PrimitiveStream<T extends PrimitiveBasisElement> implements AbstractFilteredStream<T>  {\r\n\t\r\n\t/**\r\n\t * This object implements the actual storage structure for the stream.\r\n\t */\r\n\tprotected final StreamStorageStructure<T> storageStructure;\r\n\t\r\n\t/**\r\n\t * This constructor constructs the stream with the supplied StreamStorageStructure.\r\n\t * \r\n\t * @param storageStructure the StreamStorageStructure to use\r\n\t */\r\n\tprotected PrimitiveStream(StreamStorageStructure<T> storageStructure) {\r\n\t\tthis.storageStructure = storageStructure;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This constructor construct the stream with the default storage scheme.\r\n\t * \r\n\t * @param comparator a Comparator which defines an ordering for the storage scheme\r\n\t */\r\n\tprotected PrimitiveStream(Comparator<T> comparator) {\r\n\t\tthis.storageStructure = StreamStorageStructureFactory.getDefaultStorageStructure(comparator);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This abstract function performs the construction of the filtered chain complex. For\r\n\t * example, this might construct the complex from a metric space via a Vietoris-Rips\r\n\t * or witness construction.\r\n\t */\r\n\tprotected abstract void constructComplex();\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundary(java.lang.Object)\r\n\t */\r\n\t@SuppressWarnings(\"unchecked\")\r\n\tpublic final T[] getBoundary(T basisElement) {\r\n\t\treturn (T[]) basisElement.getBoundaryArray();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getBoundaryCoefficients(java.lang.Object)\r\n\t */\r\n\tpublic final int[] getBoundaryCoefficients(T basisElement) {\r\n\t\treturn basisElement.getBoundaryCoefficients();\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getDimension(java.lang.Object)\r\n\t */\r\n\tpublic final int getDimension(T basisElement) {\r\n\t\treturn basisElement.getDimension();\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see java.lang.Iterable#iterator()\r\n\t */\r\n\tpublic final Iterator<T> iterator() {\r\n\t\treturn this.storageStructure.iterator();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#finalizeStream()\r\n\t */\r\n\tpublic final void finalizeStream() {\r\n\t\tif (this.isFinalized()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.constructComplex();\r\n\t\tthis.storageStructure.finalizeStructure();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getFiltrationIndex(java.lang.Object)\r\n\t */\r\n\tpublic final int getFiltrationIndex(T basisElement) {\r\n\t\treturn this.storageStructure.getFiltrationIndex(basisElement);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#containsElement(java.lang.Object)\r\n\t */\r\n\tpublic boolean containsElement(T basisElement) {\r\n\t\treturn this.storageStructure.containsElement(basisElement);\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#isFinalized()\r\n\t */\r\n\tpublic final boolean isFinalized() {\r\n\t\treturn this.storageStructure.isFinalized();\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getSize()\r\n\t */\r\n\tpublic final int getSize() {\r\n\t\treturn this.storageStructure.getSize();\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.homology.streams.interfaces.AbstractFilteredStream#getMaximumFiltrationIndex()\r\n\t */\r\n\tpublic int getMaximumFiltrationIndex() {\r\n\t\treturn this.storageStructure.getMaximumFiltrationIndex();\r\n\t}\r\n\t\r\n\tpublic int getMinimumFiltrationIndex() {\r\n\t\treturn this.storageStructure.getMinimumFiltrationIndex();\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream#getBasisComparator()\r\n\t */\r\n\tpublic Comparator<T> getBasisComparator() {\r\n\t\treturn this.storageStructure.getBasisComparator();\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function validates the stream to make sure that it\r\n\t * contains a valid filtered simplicial or cell complex. It checks the\r\n\t * two following conditions:\r\n\t * 1. For each element in the complex, all of the faces of the simplex\r\n\t * also belong to the complex.\r\n\t * 2. The faces of each simplex have filtration values that are\r\n\t * less than or equal to those of its cofaces.\r\n\t * \r\n\t * @return true if the stream is consistent, false otherwise\r\n\t */\r\n\tpublic boolean validate() {\t\r\n\t\tfor (T basisElement: this.storageStructure) {\r\n\t\t\tint filtrationIndex = this.getFiltrationIndex(basisElement);\r\n\r\n\t\t\t// get the boundary\r\n\t\t\tT[] boundary = this.getBoundary(basisElement);\r\n\r\n\t\t\t// make sure that each boundary element is also inside the\r\n\t\t\t// complex with a filtration value less than or equal to the\r\n\t\t\t// current simplex\r\n\t\t\tfor (T face: boundary) {\r\n\t\t\t\t\r\n\t\t\t\tif (!this.storageStructure.containsElement(face)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// if the face's filtration value is greater than that of the\r\n\t\t\t\t// current simplex, the stream is also inconsistent\r\n\t\t\t\tif (this.storageStructure.getFiltrationIndex(face) > filtrationIndex) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// all simplices in the complex have been checked - good, return true\r\n\t\treturn true;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function validates the stream to make sure that it\r\n\t * contains a valid filtered simplicial or cell complex. It checks the\r\n\t * two following conditions:\r\n\t * 1. For each element in the complex, all of the faces of the simplex\r\n\t * also belong to the complex.\r\n\t * 2. The faces of each simplex have filtration values that are\r\n\t * less than or equal to those of its cofaces.\r\n\t * \r\n\t * @return true if the stream is consistent, false otherwise\r\n\t */\r\n\tpublic boolean validateVerbose() {\r\n\t\tboolean valid = true; \r\n\t\tfor (T basisElement: this.storageStructure) {\r\n\t\t\tint filtrationIndex = this.getFiltrationIndex(basisElement);\r\n\r\n\t\t\t// get the boundary\r\n\t\t\tT[] boundary = this.getBoundary(basisElement);\r\n\r\n\t\t\t// make sure that each boundary element is also inside the\r\n\t\t\t// complex with a filtration value less than or equal to the\r\n\t\t\t// current simplex\r\n\t\t\tfor (T face: boundary) {\r\n\t\t\t\t\r\n\t\t\t\tif (!this.storageStructure.containsElement(face)) {\r\n\t\t\t\t\tSystem.out.println(\"Stream does not contain face \" + face + \" of element \" + basisElement);\r\n\t\t\t\t\tvalid = false;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// if the face's filtration value is greater than that of the\r\n\t\t\t\t// current simplex, the stream is also inconsistent\r\n\t\t\t\tif (this.storageStructure.getFiltrationIndex(face) > filtrationIndex) {\r\n\t\t\t\t\tSystem.out.println(\"Filtration index of face \" + face + \" exceeds that of element \" + basisElement + \" (\" + this.storageStructure.getFiltrationIndex(face) + \" > \" + filtrationIndex + \")\");\r\n\t\t\t\t\tvalid = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn valid;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/multi/AbstractMultifilteredStream.java",
    "content": "package edu.stanford.math.plex4.streams.multi;\n\nimport java.util.Comparator;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\n\n\npublic interface AbstractMultifilteredStream<T> extends Iterable<T> {\n\t\n\t/**\n\t * This function returns the filtration multi-index of the requested basis element.\n\t * \n\t * @param basisElement the basis element to get the filtration multi-index for\n\t * @return the filtration multi-index of the specified basis element\n\t */\n\tpublic double[] getFiltrationValue(T basisElement);\n\t\n\t/**\n\t * This function returns the elements in the boundary of the supplied\n\t * basisElement, without the coefficients. We do not integrate the\n\t * elements of the boundary array with their respective coefficients\n\t * since this interface is designed to be independent of the algebraic\n\t * environment.\n\t * \n\t * @param basisElement the element to get the boundary of\n\t * @return an array containing the boundary elements of the queried element\n\t */\n\tpublic T[] getBoundary(T basisElement);\n\t\n\t/**\n\t * This function returns the coefficients of the boundary of the supplied\n\t * basis element. Note that in many cases, this will be the standard array\n\t * consisting of alternating signs: [1, -1, 1, -1, ...]. However, this\n\t * will not always be the case. Thus this must be left abstract. Also note\n\t * that the coefficients will always be integers.\n\t * \n\t * @param basisElement the element to get the boundary coefficients of\n\t * @return an array containing the boundary coefficients of the queried element\n\t */\n\tpublic int[] getBoundaryCoefficients(T basisElement);\n\t\n\t/**\n\t * This function returns the dimension of a basis element within\n\t * the chain complex.\n\t * \n\t * @param basisElement the element to get the dimension of\n\t * @return the dimension of the basis element within the chain complex\n\t */\n\tpublic int getDimension(T basisElement);\n\t\n\t/**\n\t * This function prepares the stream for use by a consumer, such as the\n\t * PersistentHomology class. After finalization, the stream cannot not be \n\t * modified by adding or removing elements. In practice, the finalize\n\t * procedure will probably do some sorting and construction of data\n\t * structures necessary for iterating through the stream.  \n\t */\n\tpublic void finalizeStream();\n\t\n\t/**\n\t * This function checks whether the finalize() function has been called.\n\t * \n\t * @return true if the stream has been finalized, and false otherwise\n\t */\n\tpublic boolean isFinalized();\n\t\n\t/**\n\t * This function returns the total number of elements in the stream.\n\t * \n\t * @return the size of the stream\n\t */\n\tpublic int getSize();\n\t\n\t/**\n\t * This function returns a comparator on the underlying basis type.\n\t * \n\t * @return a comparator on the underlying basis type\n\t */\n\tpublic Comparator<T> getBasisComparator();\n\t\n\t/**\n\t * This function transforms the given collection of filtration index barcodes into filtration value barcodes.\n\t * \n\t * @param <G>\n\t * @param barcodeCollection the set of filtration index barcodes\n\t * @return the barcodes transformed into filtration value form\n\t */\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection);\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/multi/AbstractStreamFlattener.java",
    "content": "package edu.stanford.math.plex4.streams.multi;\n\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\n\npublic interface AbstractStreamFlattener<T> {\n\tAbstractFilteredStream<T> collapse(AbstractMultifilteredStream<T> multifilteredStream);\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/multi/BifilteredMetricStream.java",
    "content": "package edu.stanford.math.plex4.streams.multi;\n\nimport java.util.Comparator;\n\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.plex4.streams.filter.FilterFunction;\nimport edu.stanford.math.plex4.streams.interfaces.PrimitiveStream;\n\npublic class BifilteredMetricStream<T extends PrimitiveBasisElement> extends PrimitiveMultifilteredStream<T> {\n\tprivate final PrimitiveStream<T> stream;\n\tprivate final FilterFunction<T> filterFunction;\n\t\n\tpublic BifilteredMetricStream(PrimitiveStream<T> stream, FilterFunction<T> filterFunction) {\n\t\tthis.stream = stream;\n\t\tthis.filterFunction = filterFunction;\n\t\tthis.construct();\n\t}\n\n\tprivate void construct() {\n\t\tfor (T element: stream) {\n\t\t\tdouble filtrationValue = stream.getFiltrationValue(element);\n\t\t\tdouble filterFunctionValue = this.filterFunction.evaluate(element);\n\t\t\tthis.addElement(element, filtrationValue, filterFunctionValue);\n\t\t}\n\t}\n\n\tprivate void addElement(T element, double filtrationValue, double filterFunctionValue) {\n\t\tthis.addElement(element, new double[]{filtrationValue, filterFunctionValue});\n\t}\n\t\n\tpublic Comparator<T> getBasisComparator() {\n\t\treturn this.stream.getBasisComparator();\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/multi/HalfplaneFlattener.java",
    "content": "package edu.stanford.math.plex4.streams.multi;\n\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.plex4.streams.impl.ExplicitStream;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayMath;\n\n/**\n * This flattener maps a filtration value vector, x, to the smallest integer k such that <p, x> <= k\n * where p is the specified principal direction.\n * \n * @author Andrew Tausz\n *\n * @param <T>\n */\npublic class HalfplaneFlattener<T extends PrimitiveBasisElement> implements AbstractStreamFlattener<T> {\n\n\tprivate final double[] principalDirection;\n\t\n\tpublic HalfplaneFlattener(double[] prinicpalDirection) {\n\t\tthis.principalDirection = prinicpalDirection;\n\t}\n\n\tpublic AbstractFilteredStream<T> collapse(AbstractMultifilteredStream<T> multifilteredStream) {\n\t\tExplicitStream<T> stream = new ExplicitStream<T>(multifilteredStream.getBasisComparator());\n\n\t\tfor (T element : multifilteredStream) {\n\t\t\tdouble[] filtrationValue = multifilteredStream.getFiltrationValue(element);\n\t\t\tint collapsedIndex = this.getCollapsedIndex(filtrationValue);\n\t\t\tstream.addElement(element, collapsedIndex);\n\t\t}\n\n\t\tstream.finalizeStream();\n\t\t\n\t\treturn stream;\n\t}\n\t\n\tprivate int getCollapsedIndex(double[] filtrationValue) {\n\t\t// we want to find minimum integer k such that <p, f> <= k\n\t\t// where p is the principal direction, and f is the filtration value\n\t\t\n\t\tdouble innerProduct = DoubleArrayMath.innerProduct(filtrationValue, this.principalDirection);\n\t\treturn (int) Math.ceil(innerProduct);\n\t}\n\t\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/multi/IncreasingOrthantFlattener.java",
    "content": "package edu.stanford.math.plex4.streams.multi;\n\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport edu.stanford.math.plex4.streams.impl.ExplicitStream;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.primitivelib.utility.Infinity;\n\npublic class IncreasingOrthantFlattener<T extends PrimitiveBasisElement> implements AbstractStreamFlattener<T> {\n\n\tprivate final double[] principalDirection;\n\n\tpublic IncreasingOrthantFlattener(double[] prinicpalDirection) {\n\t\tthis.principalDirection = prinicpalDirection;\n\t}\n\n\tpublic AbstractFilteredStream<T> collapse(AbstractMultifilteredStream<T> multifilteredStream) {\n\t\tExplicitStream<T> stream = new ExplicitStream<T>(multifilteredStream.getBasisComparator());\n\n\t\tfor (T element : multifilteredStream) {\n\t\t\tdouble[] filtrationValue = multifilteredStream.getFiltrationValue(element);\n\t\t\tint collapsedIndex = this.getCollapsedIndex(filtrationValue);\n\t\t\tstream.addElement(element, collapsedIndex);\n\t\t}\n\n\t\tstream.finalizeStream();\n\t\t\n\t\treturn stream;\n\t}\n\n\tprivate int getCollapsedIndex(double[] filtrationValue) {\n\t\tint maxMultiple = Infinity.Int.getNegativeInfinity();\n\n\t\tfor (int i = 0; i < filtrationValue.length; i++) {\n\t\t\tif (this.principalDirection[i] == 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tint multiple = (int) Math.ceil(filtrationValue[i] / this.principalDirection[i]);\n\t\t\tif (multiple > maxMultiple) {\n\t\t\t\tmaxMultiple = multiple;\n\t\t\t}\n\t\t}\n\n\t\treturn maxMultiple;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/multi/PrimitiveMultifilteredStream.java",
    "content": "package edu.stanford.math.plex4.streams.multi;\n\nimport java.util.Iterator;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.barcodes.PersistenceInvariantDescriptor;\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport gnu.trove.THashMap;\n\npublic abstract class PrimitiveMultifilteredStream<T extends PrimitiveBasisElement> implements AbstractMultifilteredStream<T> {\n\n\t/**\n\t * This hash map contains the filtration indices of the basis elements in the complex.\n\t */\n\tprivate final THashMap<T, double[]> filtrationIndices = new THashMap<T, double[]>();\n\t\n\tpublic void addElement(T basisElement, double[] filtrationValue) {\n\t\tthis.filtrationIndices.put(basisElement, filtrationValue);\n\t}\n\t\n\tpublic Iterator<T> iterator() {\n\t\treturn this.filtrationIndices.keySet().iterator();\n\t}\n\n\tpublic double[] getFiltrationValue(T basisElement) {\n\t\treturn this.filtrationIndices.get(basisElement);\n\t}\n\n\t@SuppressWarnings(\"unchecked\")\n\tpublic final T[] getBoundary(T basisElement) {\n\t\treturn (T[]) basisElement.getBoundaryArray();\n\t}\n\n\tpublic int[] getBoundaryCoefficients(T basisElement) {\n\t\treturn basisElement.getBoundaryCoefficients();\n\t}\n\n\tpublic int getDimension(T basisElement) {\n\t\treturn basisElement.getDimension();\n\t}\n\n\tpublic void finalizeStream() {\n\t\n\t}\n\n\tpublic boolean isFinalized() {\n\t\treturn true;\n\t}\n\n\tpublic int getSize() {\n\t\treturn this.filtrationIndices.size();\n\t}\n\n\tpublic <G> PersistenceInvariantDescriptor<Interval<Double>, G> transform(PersistenceInvariantDescriptor<Interval<Integer>, G> barcodeCollection) {\n\t\treturn null;\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/storage_structures/HashedStorageStructure.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.streams.storage_structures;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.Comparator;\nimport java.util.Iterator;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\nimport gnu.trove.TIntObjectHashMap;\nimport gnu.trove.TIntObjectIterator;\nimport gnu.trove.TObjectIntHashMap;\n\n/**\n * This class provides a stream storage mechanism that is based on a multi-layer map. The motivation\n * behind the design of this class is that the ordering of chain basis elements (e.g. simplices) is \n * first determined by filtration index, then by dimension, and then by some other ordering (e.g.\n * lexicographical ordering on the vertices). This storage structure uses a sequence of maps to store\n * a basis element. One can think of it as a tree, where the first node is split on the filtration index,\n * the second layer is split on dimension. This class was inspired by the original version of java plex.\n * \n * @author Andrew Tausz\n *\n * @param <T>\n */\npublic class HashedStorageStructure<T extends PrimitiveBasisElement> implements StreamStorageStructure<T> {\n\t/**\n\t * This multilayered map maps filtration index -> dimension -> basis element list. Thus, an element is stored first by\n\t * its filtration value, and then by its dimension.\n\t */\n\tprivate final TIntObjectHashMap<TIntObjectHashMap<List<T>>> indexDimensionObjectMap = new TIntObjectHashMap<TIntObjectHashMap<List<T>>>();\n\t\n\t/**\n\t * This stores the filtration indices of the basis elements.\n\t */\n\tprivate final TObjectIntHashMap<T> filtrationIndices = new TObjectIntHashMap<T>();\n\t\n\t/**\n\t * Indicates whether the storage structure is finalized or not.\n\t */\n\tprivate boolean isFinalized = false;\n\t\n\t/**\n\t * Comparator which provides ordering of elements of the stream.\n\t */\n\tprivate final Comparator<T> basisComparator;\n\t\n\t/**\n\t * This construction initializes the class with a comparator for comparing the basis elements.\n\t * \n\t * @param basisComparator the comparator\n\t */\n\tpublic HashedStorageStructure(Comparator<T> basisComparator) {\n\t\tthis.basisComparator = basisComparator;\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see java.lang.Iterable#iterator()\n\t */\n\tpublic Iterator<T> iterator() {\n\t\treturn new HashedStorageStructureIterator<T>(this.indexDimensionObjectMap);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#addElement(java.lang.Object, int)\n\t */\n\tpublic void addElement(T basisElement, int filtrationIndex) {\n\t\tTIntObjectHashMap<List<T>> dimensionMap = null;\n\t\tif (!this.indexDimensionObjectMap.containsKey(filtrationIndex)) {\n\t\t\tdimensionMap = new TIntObjectHashMap<List<T>>();\n\t\t\tthis.indexDimensionObjectMap.put(filtrationIndex, dimensionMap);\n\t\t} else {\n\t\t\tdimensionMap = this.indexDimensionObjectMap.get(filtrationIndex);\n\t\t}\n\t\t\n\t\tint dimension = basisElement.getDimension();\n\t\tList<T> elementList = null;\n\t\t\n\t\tif (!dimensionMap.containsKey(dimension)) {\n\t\t\telementList = new ArrayList<T>();\n\t\t\tdimensionMap.put(dimension, elementList);\n\t\t} else {\n\t\t\telementList = dimensionMap.get(dimension);\n\t\t}\n\t\t\n\t\telementList.add(basisElement);\n\t\t\n\t\tthis.filtrationIndices.put(basisElement, filtrationIndex);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#removeElement(java.lang.Object)\n\t */\n\tpublic void removeElement(T basisElement) {\n\t\tif (!this.filtrationIndices.containsKey(basisElement)) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tint filtrationIndex = this.filtrationIndices.get(basisElement);\n\t\tint dimension = basisElement.getDimension();\n\t\t\n\t\tthis.indexDimensionObjectMap.get(filtrationIndex).get(dimension).remove(basisElement);\n\t\t\n\t\t// make sure that we do not store empty lists in the storage structure\n\t\tif (this.indexDimensionObjectMap.get(filtrationIndex).get(dimension).isEmpty()) {\n\t\t\tthis.indexDimensionObjectMap.get(filtrationIndex).remove(dimension);\n\t\t}\n\t\t\n\t\t// remove empty filtration-index map\n\t\tif (this.indexDimensionObjectMap.get(filtrationIndex).isEmpty()) {\n\t\t\tthis.indexDimensionObjectMap.remove(filtrationIndex);\n\t\t}\n\t\t\n\t\tthis.filtrationIndices.remove(basisElement);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#containsElement(java.lang.Object)\n\t */\n\tpublic boolean containsElement(T basisElement) {\n\t\treturn this.filtrationIndices.containsKey(basisElement);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getFiltrationIndex(java.lang.Object)\n\t */\n\tpublic int getFiltrationIndex(T basisElement) {\n\t\treturn this.filtrationIndices.get(basisElement);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#isFinalized()\n\t */\n\tpublic boolean isFinalized() {\n\t\treturn this.isFinalized;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getBasisComparator()\n\t */\n\tpublic Comparator<T> getBasisComparator() {\n\t\t// TODO Auto-generated method stub\n\t\treturn null;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getSize()\n\t */\n\tpublic int getSize() {\n\t\treturn this.filtrationIndices.size();\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#finalizeStructure()\n\t */\n\tpublic void finalizeStructure() {\n\t\t// we must go through the map and sort the list segments\n\t\t\n\t\tfor (TIntObjectIterator<TIntObjectHashMap<List<T>>> filtrationIndexIterator = this.indexDimensionObjectMap.iterator(); filtrationIndexIterator.hasNext(); ) {\n\t\t\tfiltrationIndexIterator.advance();\n\t\t\tTIntObjectHashMap<List<T>> dimensionMap = filtrationIndexIterator.value();\n\t\t\t\n\t\t\tfor (TIntObjectIterator<List<T>> dimensionIterator = dimensionMap.iterator(); dimensionIterator.hasNext(); ) {\n\t\t\t\tdimensionIterator.advance();\n\t\t\t\tCollections.sort(dimensionIterator.value(), this.basisComparator);\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.isFinalized = true;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getMaximumFiltrationIndex()\n\t */\n\tpublic int getMaximumFiltrationIndex() {\n\t\tint maxIndex = Integer.MIN_VALUE;\n\t\tfor (TIntObjectIterator<TIntObjectHashMap<List<T>>> filtrationIndexIterator = this.indexDimensionObjectMap.iterator(); filtrationIndexIterator.hasNext(); ) {\n\t\t\tfiltrationIndexIterator.advance();\n\t\t\tif (filtrationIndexIterator.key() > maxIndex) {\n\t\t\t\tmaxIndex = filtrationIndexIterator.key();\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn maxIndex;\n\t}\n\t\n\tpublic int getMinimumFiltrationIndex() {\n\t\tint minIndex = Integer.MAX_VALUE;\n\t\tfor (TIntObjectIterator<TIntObjectHashMap<List<T>>> filtrationIndexIterator = this.indexDimensionObjectMap.iterator(); filtrationIndexIterator.hasNext(); ) {\n\t\t\tfiltrationIndexIterator.advance();\n\t\t\tif (filtrationIndexIterator.key() < minIndex) {\n\t\t\t\tminIndex = filtrationIndexIterator.key();\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn minIndex;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/storage_structures/HashedStorageStructureIterator.java",
    "content": "package edu.stanford.math.plex4.streams.storage_structures;\n\nimport gnu.trove.TIntObjectHashMap;\n\nimport java.util.Arrays;\nimport java.util.Iterator;\nimport java.util.List;\n\n/**\n * This class implements the Iterator interface for a HashedStorageStructure. It allows\n * the user to traverse the structure in increasing order of filtration index and dimension.\n * \n * @author Andrew Tausz\n *\n * @param <E>\n */\npublic class HashedStorageStructureIterator<E> implements Iterator<E> {\n\tprivate final TIntObjectHashMap<TIntObjectHashMap<List<E>>> indexDimensionObjectMap;\n\tprivate Iterator<E> listIterator = null;\n\tprivate int[] filtrationIndices = null;\n\tprivate int[] dimensions = null;\n\t\n\tprivate int filtrationIndexIndex = 0;\n\tprivate int dimensionIndex = 0;\n\t\n\tprivate int currentFiltrationIndex;\n\tprivate int currentDimension;\n\t\n\t/**\n\t * This constructor accepts a filtration index -> dimension -> list mapping.\n\t * \n\t * @param indexDimensionObjectMap\n\t */\n\tpublic HashedStorageStructureIterator(TIntObjectHashMap<TIntObjectHashMap<List<E>>> indexDimensionObjectMap) {\n\t\tthis.indexDimensionObjectMap = indexDimensionObjectMap;\n\t\t\n\t\tthis.filtrationIndices = this.indexDimensionObjectMap.keys();\n\t\tArrays.sort(this.filtrationIndices);\n\t\tthis.filtrationIndexIndex = 0;\n\t\tthis.currentFiltrationIndex = this.filtrationIndices[this.filtrationIndexIndex];\n\t\t\n\t\tthis.dimensions = this.indexDimensionObjectMap.get(this.currentFiltrationIndex).keys();\n\t\tArrays.sort(this.dimensions);\n\t\tthis.dimensionIndex = 0;\n\t\tthis.currentDimension = this.dimensions[this.dimensionIndex];\n\t\t\n\t\tthis.listIterator = this.indexDimensionObjectMap.get(currentFiltrationIndex).get(currentDimension).iterator();\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see java.util.Iterator#hasNext()\n\t */\n\tpublic boolean hasNext() {\n\t\tif (this.listIterator.hasNext()) {\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\tif (this.dimensionIndex < this.dimensions.length - 1) {\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\tif (this.filtrationIndexIndex < this.filtrationIndices.length - 1) {\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\treturn false;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see java.util.Iterator#next()\n\t */\n\tpublic E next() {\n\t\tif (this.advanceToNextIterator()) {\n\t\t\treturn this.listIterator.next();\n\t\t}\n\t\t\n\t\treturn null;\n\t}\n\n\t/**\n\t * Currently we do not support removal from a hashed storage structure via an iterator.\n\t * \n\t * @throws UnsupportedOperationException\n\t */\n\tpublic void remove() {\n\t\tthrow new UnsupportedOperationException();\n\t}\n\t\n\t/**\n\t * This function advances the filtration and dimension indices until it can find a list\n\t * segment that has a next element. If the current list segment has a next element, then \n\t * it does nothing. In the even that this method cannot find a non-empty list segment, it\n\t * returns false, otherwise it returns true.\n\t * \n\t * @return true if the listIterator has a next element and false otherwise\n\t */\n\tprivate boolean advanceToNextIterator() {\n\t\tif (this.listIterator.hasNext()) {\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\t// move forward in dimension if possible\n\t\tif (this.dimensionIndex < this.dimensions.length - 1) {\n\t\t\tthis.dimensionIndex++;\n\t\t\tthis.currentDimension = this.dimensions[this.dimensionIndex];\n\t\t\tArrays.sort(this.dimensions);\n\t\t\tthis.listIterator = this.indexDimensionObjectMap.get(currentFiltrationIndex).get(currentDimension).iterator();\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\t// if we can't move forward in dimension, advance the filtration index if possible \n\t\tif (this.filtrationIndexIndex < this.filtrationIndices.length - 1) {\n\t\t\tthis.filtrationIndexIndex++;\n\t\t\tthis.currentFiltrationIndex = this.filtrationIndices[this.filtrationIndexIndex];\n\t\t\t\n\t\t\tthis.dimensions = this.indexDimensionObjectMap.get(this.currentFiltrationIndex).keys();\n\t\t\tArrays.sort(this.dimensions);\n\t\t\tthis.dimensionIndex = 0;\n\t\t\tthis.currentDimension = this.dimensions[this.dimensionIndex];\n\t\t\t\n\t\t\tthis.listIterator = this.indexDimensionObjectMap.get(currentFiltrationIndex).get(currentDimension).iterator();\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\treturn false;\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/storage_structures/IntOrderedIterator.java",
    "content": "package edu.stanford.math.plex4.streams.storage_structures;\r\n\r\nimport java.util.Iterator;\r\n\r\nimport edu.stanford.math.primitivelib.autogen.pair.IntObjectPair;\r\n\r\n/**\r\n * This class provides iteration over the second component of each element\r\n * in an Iterable collection of type IntObjectPair<E>. It essentially \r\n * ignores the first component, and only returns the second. \r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <E>\r\n */\r\npublic class IntOrderedIterator<E> implements Iterator<E> {\r\n\r\n\t/**\r\n\t * The iterator over the pair collection.\r\n\t */\r\n\tprivate final Iterator<IntObjectPair<E>> internalIterator;\r\n\r\n\t/**\r\n\t * This constructor initializes the iterator with an iterable collection\r\n\t * over the type IntObjectPair<E>.\r\n\t * \r\n\t * @param collection the Iterable collection to initialize with\r\n\t */\r\n\tpublic IntOrderedIterator(Iterable<IntObjectPair<E>> collection) {\r\n\t\tthis.internalIterator = collection.iterator();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.util.Iterator#hasNext()\r\n\t */\r\n\tpublic boolean hasNext() {\r\n\t\treturn this.internalIterator.hasNext();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.util.Iterator#next()\r\n\t */\r\n\tpublic E next() {\r\n\t\treturn this.internalIterator.next().getSecond();\r\n\t}\r\n\r\n\t/* (non-Javadoc)\r\n\t * @see java.util.Iterator#remove()\r\n\t */\r\n\tpublic void remove() {\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n\r\n}\r\n\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/storage_structures/SortedStorageStructure.java",
    "content": "/**\n * \n */\npackage edu.stanford.math.plex4.streams.storage_structures;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.Comparator;\nimport java.util.Iterator;\nimport java.util.List;\n\nimport edu.stanford.math.primitivelib.autogen.pair.IntObjectPair;\nimport edu.stanford.math.primitivelib.autogen.pair.IntObjectPairComparator;\nimport gnu.trove.TObjectIntHashMap;\n\n/**\n * This class implements an in-memory stream storage mechanism where all of the\n * elements are held in an in-memory collection in fully sorted order. It implements \n * the StreamStorageStructure interface.\n * \n * @author Andrew Tausz\n *\n * @param <T> the underlying basis type\n */\npublic class SortedStorageStructure<T> implements StreamStorageStructure<T> {\n\t/**\n\t * This contains the pairs of filtration index and basis elements.\n\t */\n\tprivate final List<IntObjectPair<T>> elementFiltrationPairs = new ArrayList<IntObjectPair<T>>();\n\n\t/**\n\t * This hash map contains the filtration indices of the basis elements in the complex.\n\t */\n\tprivate final TObjectIntHashMap<T> filtrationIndices = new TObjectIntHashMap<T>();\n\n\t/**\n\t * Comparator which provides ordering of elements of the stream.\n\t */\n\tprivate final Comparator<T> basisComparator;\n\n\t/**\n\t * This comparator defines the filtration ordering on filtration-object pairs.\n\t */\n\tprivate final IntObjectPairComparator<T> filteredComparator;\n\t\n\t/**\n\t * Boolean which indicates whether stream has been finalized or not\n\t */\n\tprivate boolean isFinalized = false;\n\t\n\t/**\n\t * This construction initializes the class with a comparator for comparing the basis elements.\n\t * \n\t * @param basisComparator the comparator\n\t */\n\tpublic SortedStorageStructure(Comparator<T> basisComparator) {\n\t\tthis.basisComparator = basisComparator;\n\t\tthis.filteredComparator = new IntObjectPairComparator<T>(this.basisComparator);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#addElement(java.lang.Object, int)\n\t */\n\tpublic void addElement(T basisElement, int filtrationIndex) {\n\t\tthis.elementFiltrationPairs.add(new IntObjectPair<T>(filtrationIndex, basisElement));\n\t\tthis.filtrationIndices.put(basisElement, filtrationIndex);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#updateOrAddElement(java.lang.Object, int)\n\t */\n\tpublic void updateOrAddElement(T basisElement, int newFiltrationValue) {\n\t\tif (this.isFinalized) {\n\t\t\tthrow new IllegalStateException(\"Cannot update objects in finalized storage structure.\");\n\t\t}\n\t\t\n\t\tif (this.filtrationIndices.containsKey(basisElement)) {\n\t\t\t// remove the old (filtration value, basis element) pair\n\t\t\tIntObjectPair<T> pair = new IntObjectPair<T>(this.filtrationIndices.get(basisElement), basisElement);\n\t\t\tthis.elementFiltrationPairs.remove(pair);\n\t\t\t\n\t\t\t// add the new pair\n\t\t\tthis.elementFiltrationPairs.add(new IntObjectPair<T>(newFiltrationValue, basisElement));\n\t\t} else {\n\t\t\tthis.elementFiltrationPairs.add(new IntObjectPair<T>(newFiltrationValue, basisElement));\n\t\t}\n\t\t\n\t\tthis.filtrationIndices.adjustOrPutValue(basisElement, newFiltrationValue, newFiltrationValue);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#removeElement(java.lang.Object)\n\t */\n\tpublic void removeElement(T basisElement) {\n\t\tif (!this.filtrationIndices.containsKey(basisElement)) {\n\t\t\tthrow new IllegalArgumentException(\"Element: \" + basisElement + \" is not present in the stream.\");\n\t\t}\n\t\t\n\t\t// remove the old (filtration value, basis element) pair\n\t\tIntObjectPair<T> pair = new IntObjectPair<T>(this.filtrationIndices.get(basisElement), basisElement);\n\t\tthis.elementFiltrationPairs.remove(pair);\n\t\t\n\t\t// remove the element from the filtration values map\n\t\tthis.filtrationIndices.remove(basisElement);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex_plus.homology.stream_structure.StreamStorageStructure#isFinalized()\n\t */\n\tpublic boolean isFinalized() {\n\t\treturn this.isFinalized;\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see java.lang.Object#finalize()\n\t */\n\tpublic void finalizeStructure() {\n\t\tCollections.sort(this.elementFiltrationPairs, this.filteredComparator);\n\t\tthis.isFinalized = true;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see java.lang.Iterable#iterator()\n\t */\n\tpublic Iterator<T> iterator() {\n\t\treturn new IntOrderedIterator<T>(this.elementFiltrationPairs);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getFiltrationIndex(java.lang.Object)\n\t */\n\tpublic int getFiltrationIndex(T basisElement) {\n\t\treturn this.filtrationIndices.get(basisElement);\n\t}\n\t\n\t/* (non-Javadoc)\n\t * @see java.lang.Object#toString()\n\t */\n\t@Override\n\tpublic String toString() {\n\t\tStringBuilder builder = new StringBuilder();\n\n\t\tfor (IntObjectPair<T> pair : this.elementFiltrationPairs) {\n\t\t\tbuilder.append(pair.toString());\n\t\t\tbuilder.append('\\n');\n\t\t}\n\n\t\treturn builder.toString();\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getBasisComparator()\n\t */\n\tpublic Comparator<T> getBasisComparator() {\n\t\treturn this.basisComparator;\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#containsElement(java.lang.Object)\n\t */\n\tpublic boolean containsElement(T basisElement) {\n\t\treturn this.filtrationIndices.containsKey(basisElement);\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getSize()\n\t */\n\tpublic int getSize() {\n\t\treturn this.filtrationIndices.size();\n\t}\n\n\t/* (non-Javadoc)\n\t * @see edu.stanford.math.plex4.homology.streams.storage_structures.StreamStorageStructure#getMaximumFiltrationIndex()\n\t */\n\tpublic int getMaximumFiltrationIndex() {\n\t\tint maxIndex = Integer.MIN_VALUE;\n\t\tfor (IntObjectPair<T> pair : this.elementFiltrationPairs) {\n\t\t\tif (pair.getFirst() > maxIndex) {\n\t\t\t\tmaxIndex = pair.getFirst();\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn maxIndex;\n\t}\n\t\n\tpublic int getMinimumFiltrationIndex() {\n\t\tint minIndex = Integer.MAX_VALUE;\n\t\tfor (IntObjectPair<T> pair : this.elementFiltrationPairs) {\n\t\t\tif (pair.getFirst() < minIndex) {\n\t\t\t\tminIndex = pair.getFirst();\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn minIndex;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/storage_structures/StreamStorageStructure.java",
    "content": "package edu.stanford.math.plex4.streams.storage_structures;\n\nimport java.util.Comparator;\n\n/**\n * This interface defines the functionality of a stream storage structure. Such\n * a structure is designed to be the backing of a streamed filtered chain complex.\n * \n * Note that this interface extends the Iterable<T> interface. An implementing\n * class must ensure that the elements are provided in increasing order of\n * filtration index.\n * \n * @author Andrew Tausz\n *\n * @param <T>\n */\npublic interface StreamStorageStructure<T> extends Iterable<T> {\n\t\n\t/**\n\t * This function adds the given basis element to the storage structure, with\n\t * the supplied filtration index.\n\t * \n\t * @param basisElement the basis element to add\n\t * @param filtrationIndex the filtration index of the basis element\n\t */\n\tvoid addElement(T basisElement, int filtrationIndex);\n\t\n\t/**\n\t * This function removes the specified element form the storage structure.\n\t * In the case that the element is not present in the stream, this function \n\t * throws an IllegalArgumentException.\n\t * \n\t * @param basisElement the basisElement to remove\n\t */\n\tvoid removeElement(T basisElement);\n\t\n\t/**\n\t * This function returns true if the stream contains the given basis element,\n\t * and false otherwise.\n\t * \n\t * @param basisElement the basis element to query\n\t * @return true if the stream contains the basis element and false otherwise\n\t */\n\tboolean containsElement(T basisElement);\n\t\n\t/**\n\t * This function returns the filtration index of the given basis element.\n\t * \n\t * @param basisElement the element to query\n\t * @return the filtration index of the given basis element\n\t */\n\tint getFiltrationIndex(T basisElement);\n\t\n\t/**\n\t * This function sets the stream as being finalized. A finalized storage structure\n\t * cannot accept any more elements, and should be ready for consumption.\n\t */\n\tvoid finalizeStructure();\n\t\n\t/**\n\t * This function returns true if the stream has been finalized.\n\t * \n\t * @return true if the stream is finalized and false otherwise\n\t */\n\tboolean isFinalized();\n\t\n\t/**\n\t * This function returns a Comparator<T> object used to define the ordering\n\t * on the basis type.\n\t * \n\t * @return a Comparator on the basis type\n\t */\n\tComparator<T> getBasisComparator();\n\t\n\t/**\n\t * This function returns the number of elements in the storage structure.\n\t * \n\t * @return the number of elements in the storage structure\n\t */\n\tint getSize();\n\t\n\t/**\n\t * This function gets the maximum filtration index in the complex.\n\t * \n\t * @return the maximum filtration index\n\t */\n\tpublic int getMaximumFiltrationIndex();\n\t\n\t\n\t/**\n\t * This function gets the minimum filtration index in the complex.\n\t * \n\t * @return the minimum filtration index\n\t */\n\tpublic int getMinimumFiltrationIndex();\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/storage_structures/StreamStorageStructureFactory.java",
    "content": "package edu.stanford.math.plex4.streams.storage_structures;\n\nimport java.util.Comparator;\n\nimport edu.stanford.math.plex4.homology.chain_basis.PrimitiveBasisElement;\n\n/**\n * This class contains various convenience functions for constructing stream storage structures. It also\n * defines the default stream storage structure used by most filtered chain complexes.\n * \n * @author Andrew Tausz\n *\n */\npublic class StreamStorageStructureFactory {\n\t\n\t/**\n\t * This function returns the default stream storage structure for the type T.\n\t * \n\t * @param <T> the underlying basis type\n\t * @param comparator a comparator for comparing basis elements\n\t * @return the default stream storage structure\n\t */\n\tpublic static <T extends PrimitiveBasisElement> StreamStorageStructure<T> getDefaultStorageStructure(Comparator<T> comparator) {\n\t\treturn new SortedStorageStructure<T>(comparator);\n\t}\n\t\n\t/**\n\t * This function creates a new sorted storage structure.\n\t * \n\t * @param <T> the underlying basis type\n\t * @param comparator a comparator for comparing basis elements\n\t * @return a new stream storage structure\n\t */\n\tpublic static <T> StreamStorageStructure<T> getSortedStorageStructure(Comparator<T> comparator) {\n\t\treturn new SortedStorageStructure<T>(comparator);\n\t}\n\t\n\t/**\n\t * This function creates a new hashed storage structure.\n\t * \n\t * @param <T> the underlying basis type\n\t * @param comparator a comparator for comparing basis elements\n\t * @return a new hashed stream storage structure\n\t */\n\tpublic static <T extends PrimitiveBasisElement> StreamStorageStructure<T> getHashedStorageStructure(Comparator<T> comparator) {\n\t\treturn new HashedStorageStructure<T>(comparator);\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/utility/FilteredComparator.java",
    "content": "package edu.stanford.math.plex4.streams.utility;\r\n\r\nimport java.util.Comparator;\r\n\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\n\r\n/**\r\n * This class provides filtration based comparison of basis elements. It implements\r\n * a dictionary ordering where first the filtration indices are compared, and then\r\n * the actual basis elements are compared using the supplied comparator.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n * @param <M> the underlying type of the basis elements\r\n */\r\npublic class FilteredComparator<M> implements Comparator<M> {\r\n\t/**\r\n\t * The filtered complex which provides the filtration index information.\r\n\t */\r\n\tprivate final AbstractFilteredStream<M> stream;\r\n\t\r\n\t/**\r\n\t * The comparator for the basis type.\r\n\t */\r\n\tprivate final Comparator<M> basisComparator;\r\n\t\r\n\t/**\r\n\t * This constructor initializes the class with a filtered chain complex, and a comparator\r\n\t * on the basis elements.\r\n\t * \r\n\t * @param stream the filtered chain complex\r\n\t * @param basisComparator a comparator on the basis elements\r\n\t */\r\n\tpublic FilteredComparator(AbstractFilteredStream<M> stream, Comparator<M> basisComparator) {\r\n\t\tthis.stream = stream;\r\n\t\tthis.basisComparator = basisComparator;\r\n\t}\r\n\t\r\n\t/* (non-Javadoc)\r\n\t * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)\r\n\t */\r\n\tpublic int compare(M arg0, M arg1) {\r\n\t\tint filtration0 = stream.getFiltrationIndex(arg0);\r\n\t\tint filtration1 = stream.getFiltrationIndex(arg1);\r\n\t\t\r\n\t\tif (filtration0 < filtration1) {\r\n\t\t\treturn -1;\r\n\t\t} else if (filtration0 > filtration1) {\r\n\t\t\treturn 1;\r\n\t\t} else {\r\n\t\t\treturn this.basisComparator.compare(arg0, arg1);\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/utility/SkeletalMetric.java",
    "content": "package edu.stanford.math.plex4.streams.utility;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractObjectMetricSpace;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.array.DoubleArrayUtility;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.DoubleSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.utility.Infinity;\r\nimport gnu.trove.TIntIntHashMap;\r\nimport gnu.trove.TIntObjectHashMap;\r\nimport gnu.trove.TObjectDoubleIterator;\r\nimport gnu.trove.TObjectIntHashMap;\r\n\r\n/**\r\n * This class implements a metric on a simplicial complex. The distance between two simplices\r\n * is defined to be the maximum of the distances between the any two pairs of vertices where one\r\n * vertex is in the first simplex and the other is in the second simplex.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class SkeletalMetric implements AbstractObjectMetricSpace<Simplex> {\r\n\t/**\r\n\t * This maps a basis element to an index. The index is the appropriate\r\n\t * index of the standard basis vector the generating element is mapped to.\r\n\t */\r\n\tprivate final TObjectIntHashMap<Simplex> indexMapping = new TObjectIntHashMap<Simplex>();\r\n\t\r\n\t/**\r\n\t * This maps an index (ie. the index of a standard basis vector) to a generating\r\n\t * element of the free module.\r\n\t */\r\n\tprivate final TIntObjectHashMap<Simplex> basisMapping = new TIntObjectHashMap<Simplex>();\r\n\t\r\n\tprivate final TIntIntHashMap vertexIndexMap = new TIntIntHashMap();\r\n\tprivate final TIntIntHashMap indexVertexMap = new TIntIntHashMap();\r\n\t\r\n\tprivate int numVertices = 0;\r\n\t\r\n\tprivate List<Simplex> edgeSet = new ArrayList<Simplex>();\r\n\t\r\n\tprivate final double[][] distances;\r\n\t\r\n\tpublic SkeletalMetric(AbstractFilteredStream<Simplex> stream) {\r\n\t\tthis.initializeMappings(stream);\r\n\t\tthis.distances = this.computeShortestPaths();\r\n\t}\r\n\t\r\n\tpublic double getDiameter(DoubleSparseFormalSum<Simplex> chain) {\r\n\t\tdouble diameter = 0;\r\n\t\t\r\n\t\tfor (TObjectDoubleIterator<Simplex> iterator_1 = chain.iterator(); iterator_1.hasNext(); ) {\r\n\t\t\titerator_1.advance();\r\n\t\t\tSimplex simplex_1 = iterator_1.key();\r\n\t\t\t\r\n\t\t\tfor (TObjectDoubleIterator<Simplex> iterator_2 = chain.iterator(); iterator_2.hasNext(); ) {\r\n\t\t\t\titerator_2.advance();\r\n\t\t\t\tSimplex simplex_2 = iterator_2.key();\r\n\t\t\t\t\r\n\t\t\t\tdouble distance = this.distance(simplex_1, simplex_2);\r\n\t\t\t\t\r\n\t\t\t\tdiameter = Math.max(diameter, distance * iterator_1.value() * iterator_2.value());\t\t\t\t\r\n\t\t\t}\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn diameter;\r\n\t}\r\n\t\r\n\t\r\n\tpublic Simplex getPoint(int index) {\r\n\t\treturn this.basisMapping.get(index);\r\n\t}\r\n\r\n\tpublic int size() {\r\n\t\treturn this.basisMapping.size();\r\n\t}\r\n\r\n\tpublic double distance(int i, int j) {\r\n\t\treturn this.distances[i][j];\r\n\t}\r\n\t\r\n\tpublic double distance(Simplex simplex_i, Simplex simplex_j) {\r\n\t\treturn this.distances[this.indexMapping.get(simplex_i)][this.indexMapping.get(simplex_j)];\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function initializes the basis-index mappings.\r\n\t */\r\n\tprivate void initializeMappings(AbstractFilteredStream<Simplex> stream) {\r\n\t\tint index = 0;\r\n\t\tfor (Simplex basisElement: stream) {\r\n\t\t\tint dimension = basisElement.getDimension();\r\n\t\t\tif (dimension == 0) {\r\n\t\t\t\tthis.numVertices++;\r\n\t\t\t\tthis.vertexIndexMap.put(basisElement.getVertices()[0], index);\r\n\t\t\t\tthis.indexVertexMap.put(index, basisElement.getVertices()[0]);\r\n\t\t\t} else if (dimension == 1){\r\n\t\t\t\tthis.edgeSet.add(basisElement);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.indexMapping.put(basisElement, index);\r\n\t\t\tthis.basisMapping.put(index, basisElement);\r\n\t\t\tindex++;\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function computes the shortest paths distances between all pairs within \r\n\t * the 1-skeleton of the complex using the Floyd-Warshall algorithm.\r\n\t * \r\n\t * @return\r\n\t */\r\n\tprivate double[][] computeShortestPaths() {\r\n\t\tint N = this.size();\r\n\t\tint n = this.numVertices;\r\n\t\tdouble[][] pathLengths = DoubleArrayUtility.createMatrix(N, N);\r\n\t\t\r\n\t\t// initialize distances to +infinity\r\n\t\tfor (int i = 0; i < N; i++) {\r\n\t\t\tfor (int j = 0; j < N; j++) {\r\n\t\t\t\tpathLengths[i][j] = Infinity.Double.getPositiveInfinity();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t// compute immediate distances between points\r\n\t\tfor (Simplex edge: this.edgeSet) {\r\n\t\t\tint[] vertices = edge.getVertices();\r\n\t\t\tint i = this.vertexIndexMap.get(vertices[0]);\r\n\t\t\tint j = this.vertexIndexMap.get(vertices[1]);\r\n\t\t\t\r\n\t\t\tpathLengths[i][j] = 1;\r\n\t\t\tpathLengths[j][i] = 1;\r\n\t\t}\r\n\t\t\r\n\t\t// fill in distances between all vertices using the Floyd-Warshall algorithm\r\n\t\tfor (int k_index = 0; k_index < n; k_index++) {\r\n\t\t\tint k = this.indexVertexMap.get(k_index);\r\n\t\t\tfor (int i_index = 0; i_index < n; i_index++) {\r\n\t\t\t\tint i = this.indexVertexMap.get(i_index);\r\n\t\t\t\tfor (int j_index = 0; j_index < n; j_index++) {\r\n\t\t\t\t\tint j = this.indexVertexMap.get(j_index);\r\n\t\t\t\t\tpathLengths[i][j] = Math.min(pathLengths[i][j], pathLengths[i][k] + pathLengths[k][j]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t// compute the distances between other simplices\r\n\t\tfor (int i_index = 0; i_index < N; i_index++) {\r\n\t\t\tSimplex sigma_i = this.basisMapping.get(i_index);\r\n\t\t\tint dimension_i = sigma_i.getDimension();\r\n\t\t\tint[] vertices_i = sigma_i.getVertices();\r\n\t\t\tpathLengths[i_index][i_index] = 0;\r\n\t\t\tfor (int j_index = 0; j_index < i_index; j_index++) {\t\t\t\r\n\t\t\t\tSimplex sigma_j = this.basisMapping.get(j_index);\r\n\t\t\t\tint dimension_j = sigma_j.getDimension();\r\n\t\t\t\tif (dimension_i == 0 && dimension_j == 0) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tint[] vertices_j = sigma_j.getVertices();\r\n\t\t\t\t\r\n\t\t\t\tdouble distance = Infinity.Double.getPositiveInfinity();\r\n\t\t\t\t\r\n\t\t\t\tfor (int i_vertex_index = 0; i_vertex_index < vertices_i.length; i_vertex_index++) {\r\n\t\t\t\t\tfor (int j_vertex_index = 0; j_vertex_index < vertices_j.length; j_vertex_index++) {\r\n\t\t\t\t\t\tif (i_vertex_index != j_vertex_index) {\r\n\t\t\t\t\t\t\tdistance = Math.min(distance, pathLengths[this.vertexIndexMap.get(i_vertex_index)][this.vertexIndexMap.get(j_vertex_index)]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tpathLengths[i_index][j_index] = distance;\r\n\t\t\t\tpathLengths[j_index][i_index] = distance;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn pathLengths;\r\n\t}\r\n\r\n\tpublic Simplex[] getPoints() {\r\n\t\tthrow new UnsupportedOperationException();\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/streams/utility/StreamUtility.java",
    "content": "package edu.stanford.math.plex4.streams.utility;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\nimport edu.stanford.math.plex4.graph.UndirectedListGraph;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.utility.HomologyUtility;\nimport edu.stanford.math.plex4.streams.derived.TensorStream;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.DoublePrimitiveFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.DoubleSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntMatrixConverter;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntPrimitiveFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.matrix.IntSparseMatrix;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\n\n/**\n * This class contains various static functions for querying and manipulating filtered chain complexes.\n * \n * @author Andrew Tausz\n *\n */\npublic class StreamUtility {\n\t\n\t/**\n\t * This function dumps the k-skeleton of a chain complex into a list.\n\t * \n\t * @param <T> the type of the basis elements\n\t * @param stream the stream to search\n\t * @param k the dimension of the objects to retrieve\n\t * @return the objects with the requested dimension\n\t */\n\tpublic static <T> List<T> getSkeleton(AbstractFilteredStream<T> stream, int k) {\n\t\tList<T> skeleton = new ArrayList<T>();\n\t\t\n\t\tfor (T basisElement: stream) {\n\t\t\tint elementDimension = stream.getDimension(basisElement);\n\t\t\tif (elementDimension == k) {\n\t\t\t\tskeleton.add(basisElement);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn skeleton;\n\t}\n\t\n\t/**\n\t * This function computes the size of the k-skeleton of a chain complex.\n\t * \n\t * @param <T> the type of the basis elements\n\t * @param stream the stream to search\n\t * @param k the dimension of the objects to retrieve\n\t * @return the size of the k-seleton of the complex\n\t */\n\tpublic static <T> int getSkeletonSize(AbstractFilteredStream<T> stream, int k) {\n\t\tint size = 0;\n\t\t\n\t\tfor (T basisElement: stream) {\n\t\t\tif (stream.getDimension(basisElement) == k) {\n\t\t\t\tsize++;\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn size;\n\t}\n\t\n\t/**\n\t * This function returns the boundary matrix for the entire complex.\n\t * \n\t * @param <T> the underlying basis type\n\t * @param stream the complex\n\t * @return the boundary matrix as an IntSparseFormalSum\n\t */\n\tpublic static <T> IntSparseFormalSum<ObjectObjectPair<T, T>> createBoundaryMatrixAsIntSum(AbstractFilteredStream<T> stream) {\n\t\tIntPrimitiveFreeModule<ObjectObjectPair<T, T>> chainModule = new IntPrimitiveFreeModule<ObjectObjectPair<T, T>>();\n\t\tIntSparseFormalSum<ObjectObjectPair<T, T>> sum = new IntSparseFormalSum<ObjectObjectPair<T, T>>();\n\t\tfor (T basisElement: stream) {\n\t\t\tint[] boundaryCoefficients = stream.getBoundaryCoefficients(basisElement);\n\t\t\tT[] boundaryElements = stream.getBoundary(basisElement);\n\t\t\tfor (int i = 0; i < boundaryElements.length; i++) {\n\t\t\t\tchainModule.accumulate(sum, new ObjectObjectPair<T, T>(boundaryElements[i], basisElement), boundaryCoefficients[i]);\n\t\t\t}\n\t\t}\n\t\treturn sum;\n\t}\n\t\n\t/**\n\t * This function returns the boundary matrix for the entire complex.\n\t * \n\t * @param <T> the underlying basis type\n\t * @param stream the complex\n\t * @return the boundary matrix as a DoubleSparseFormalSum\n\t */\n\tpublic static <T> DoubleSparseFormalSum<ObjectObjectPair<T, T>> createBoundaryMatrixAsDoubleSum(AbstractFilteredStream<T> stream) {\n\t\tDoublePrimitiveFreeModule<ObjectObjectPair<T, T>> chainModule = new DoublePrimitiveFreeModule<ObjectObjectPair<T, T>>();\n\t\tDoubleSparseFormalSum<ObjectObjectPair<T, T>> sum = new DoubleSparseFormalSum<ObjectObjectPair<T, T>>();\n\t\tfor (T basisElement: stream) {\n\t\t\tint[] boundaryCoefficients = stream.getBoundaryCoefficients(basisElement);\n\t\t\tT[] boundaryElements = stream.getBoundary(basisElement);\n\t\t\tfor (int i = 0; i < boundaryElements.length; i++) {\n\t\t\t\tchainModule.accumulate(sum, new ObjectObjectPair<T, T>(boundaryElements[i], basisElement), boundaryCoefficients[i]);\n\t\t\t}\n\t\t}\n\t\treturn sum;\n\t}\n\t\n\t/**\n\t * This function returns the boundary matrix for the entire complex.\n\t * \n\t * @param <T> the underlying basis type\n\t * @param stream the complex\n\t * @param dimension the dimension to get the boundary for\n\t * @return the boundary matrix as an IntSparseFormalSum\n\t */\n\tpublic static <T> IntSparseFormalSum<ObjectObjectPair<T, T>> createBoundaryMatrixAsIntSum(AbstractFilteredStream<T> stream, int dimension) {\n\t\tIntPrimitiveFreeModule<ObjectObjectPair<T, T>> chainModule = new IntPrimitiveFreeModule<ObjectObjectPair<T, T>>();\n\t\tIntSparseFormalSum<ObjectObjectPair<T, T>> sum = new IntSparseFormalSum<ObjectObjectPair<T, T>>();\n\t\tfor (T basisElement: stream) {\n\t\t\tint elementDimension = stream.getDimension(basisElement);\n\t\t\tif (elementDimension != dimension) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tint[] boundaryCoefficients = stream.getBoundaryCoefficients(basisElement);\n\t\t\tT[] boundaryElements = stream.getBoundary(basisElement);\n\t\t\tfor (int i = 0; i < boundaryElements.length; i++) {\n\t\t\t\tchainModule.accumulate(sum, new ObjectObjectPair<T, T>(boundaryElements[i], basisElement), boundaryCoefficients[i]);\n\t\t\t}\n\t\t}\n\t\treturn sum;\n\t}\n\t\n\t/**\n\t * This function returns the boundary matrix for the entire complex.\n\t * \n\t * @param <T> the underlying basis type\n\t * @param stream the complex\n\t * @param dimension the dimension to get the boundary for\n\t * @return the boundary matrix as a DoubleSparseFormalSum\n\t */\n\tpublic static <T> DoubleSparseFormalSum<ObjectObjectPair<T, T>> createBoundaryMatrixAsDoubleSum(AbstractFilteredStream<T> stream, int dimension) {\n\t\tDoublePrimitiveFreeModule<ObjectObjectPair<T, T>> chainModule = new DoublePrimitiveFreeModule<ObjectObjectPair<T, T>>();\n\t\tDoubleSparseFormalSum<ObjectObjectPair<T, T>> sum = new DoubleSparseFormalSum<ObjectObjectPair<T, T>>();\n\t\tfor (T basisElement: stream) {\n\t\t\tint elementDimension = stream.getDimension(basisElement);\n\t\t\tif (elementDimension != dimension) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tint[] boundaryCoefficients = stream.getBoundaryCoefficients(basisElement);\n\t\t\tT[] boundaryElements = stream.getBoundary(basisElement);\n\t\t\tfor (int i = 0; i < boundaryElements.length; i++) {\n\t\t\t\tchainModule.accumulate(sum, new ObjectObjectPair<T, T>(boundaryElements[i], basisElement), boundaryCoefficients[i]);\n\t\t\t}\n\t\t}\n\t\treturn sum;\n\t}\n\t\n\t/**\n\t * This function returns the boundary matrix at the specified dimension as a list of columns\n\t * \n\t * @param <T> the underlying basis type\n\t * @param stream the complex\n\t * @param dimension the dimension to get the boundary for\n\t * @return the boundary matrix as a list of formal sums\n\t */\n\tpublic static <T> List<IntSparseFormalSum<T>> getBoundaryMatrixColumns(AbstractFilteredStream<T> stream, int dimension) {\n\t\tList<IntSparseFormalSum<T>> boundaryMatrixColumns = new ArrayList<IntSparseFormalSum<T>>();\n\t\tIntPrimitiveFreeModule<T> chainModule = new IntPrimitiveFreeModule<T>();\n\t\t\n\t\tfor (T basisElement: stream) {\n\t\t\tint elementDimension = stream.getDimension(basisElement);\n\t\t\tif (elementDimension == dimension) {\n\t\t\t\tboundaryMatrixColumns.add(chainModule.createNewSum(stream.getBoundaryCoefficients(basisElement), stream.getBoundary(basisElement)));\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn boundaryMatrixColumns;\n\t}\n\t\n\t/**\n\t * This function produces a list of formal sums which are the columns of the boundary \n\t * matrix at the requested dimension.\n\t * \n\t * @param <R> the type of the ring in which to compute\n\t * @param <T> the type of the basis elements\n\t * @param stream the stream to perform the operation on\n\t * @param dimension the dimension\n\t * @param chainModule the module which performs the algebraic operations (forming the sums)\n\t * @return the columns of the boundary matrix at the request dimension\n\t */\n\tpublic static <R, T> List<ObjectSparseFormalSum<R, T>> getBoundaryMatrixColumns(AbstractFilteredStream<T> stream, int dimension, ObjectAlgebraicFreeModule<R, T> chainModule) {\n\t\tList<ObjectSparseFormalSum<R, T>> boundaryMatrixColumns = new ArrayList<ObjectSparseFormalSum<R, T>>();\n\t\t\n\t\tfor (T basisElement: stream) {\n\t\t\tint elementDimension = stream.getDimension(basisElement);\n\t\t\tif (elementDimension == dimension) {\n\t\t\t\tboundaryMatrixColumns.add(chainModule.createNewSum(stream.getBoundaryCoefficients(basisElement), stream.getBoundary(basisElement)));\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn boundaryMatrixColumns;\n\t}\n\t\n\t/**\n\t * This function returns a graph containing the 1-skeleton of a given filtered simplicial complex. It only adds\n\t * edges whose filtration index is greater than the specified value.\n\t * \n\t * @param stream the stream to perform the operation on\n\t * @param minFiltrationIndex the minimum filtration index\n\t * @return the 1-skeleton of the complex in the form of an undirected graph\n\t */\n\tpublic static UndirectedListGraph getNeighborhoodGraph(AbstractFilteredStream<Simplex> stream, int minFiltrationIndex) {\n\t\tint maxVertexIndex = Integer.MIN_VALUE;\n\t\t\n\t\tfor (Simplex basisElement: stream) {\n\t\t\tint elementDimension = stream.getDimension(basisElement);\n\t\t\tif (elementDimension == 0 && (maxVertexIndex < basisElement.getVertices()[0])) {\n\t\t\t\tmaxVertexIndex = basisElement.getVertices()[0];\n\t\t\t}\n\t\t}\n\t\t\n\t\tUndirectedListGraph graph = new UndirectedListGraph(maxVertexIndex + 1);\n\t\t\n\t\tfor (Simplex basisElement: stream) {\n\t\t\tint elementDimension = stream.getDimension(basisElement);\n\t\t\tif (elementDimension == 1 && (stream.getFiltrationIndex(basisElement) >= minFiltrationIndex)) {\n\t\t\t\tint[] vertices = basisElement.getVertices();\n\t\t\t\tint i = vertices[0];\n\t\t\t\tint j = vertices[1];\n\t\t\t\tgraph.addEdge(i, j);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn graph;\n\t}\n\t\n\t/**\n\t * This function returns the 1-skeleton of a filtered simplicial complex in the form of an undirected graph.\n\t * \n\t * @param stream the stream to perform the operation on\n\t * @return the 1-skeleton of the complex\n\t */\n\tpublic static AbstractUndirectedGraph getNeighborhoodGraph(AbstractFilteredStream<Simplex> stream) {\n\t\treturn getNeighborhoodGraph(stream, 0);\n\t}\n\t\n\tpublic static IntSparseMatrix createAlexanderWhitneyMatrix(AbstractFilteredStream<Simplex> stream) {\n\t\tTensorStream<Simplex, Simplex> tensorStream = new TensorStream<Simplex, Simplex>(stream, stream);\n\t\tIntMatrixConverter<Simplex, ObjectObjectPair<Simplex, Simplex>> matrixConverter = new IntMatrixConverter<Simplex, ObjectObjectPair<Simplex, Simplex>>(stream, tensorStream);\n\t\tIntSparseMatrix matrix = new IntSparseMatrix(tensorStream.getSize(), stream.getSize());\n\t\t\n\t\tfor (Simplex simplex: stream) {\n\t\t\tList<ObjectObjectPair<Simplex, Simplex>> awMap = alexanderWhitneyDiagonal(simplex);\n\t\t\tint col = matrixConverter.getDomainRepresentation().getIndex(simplex);\n\t\t\tfor (ObjectObjectPair<Simplex, Simplex> codomainElement : awMap) {\n\t\t\t\tint row = matrixConverter.getCodomainRepresentation().getIndex(codomainElement);\n\t\t\t\tmatrix.set(row, col, 1);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn matrix;\n\t}\n\t\n\t/**\n\t * This function computes the Alexander-Whitney diagonal map of a given simplex defined by\n\t * Delta([v_0, ... v_n]) = sum_i [v_0, ... v_i] tensor [v_i, ... v_n]\n\t * \n\t * @param simplex the simplex argument\n\t * @return the Alexander-Whitney diagonal map of the given simplex\n\t */\n\tpublic static List<ObjectObjectPair<Simplex, Simplex>> alexanderWhitneyDiagonal(Simplex simplex) {\n\t\tList<ObjectObjectPair<Simplex, Simplex>> result = new ArrayList<ObjectObjectPair<Simplex, Simplex>>();\n\t\tint[] vertices = simplex.getVertices();\n\t\t\n\t\tfor (int i = 0; i < vertices.length; i++) {\n\t\t\tresult.add(new ObjectObjectPair<Simplex, Simplex>(new Simplex(HomologyUtility.lowerEntries(vertices, i)), new Simplex(HomologyUtility.upperEntries(vertices, i))));\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/ArrayUtility.java",
    "content": "package edu.stanford.math.plex4.utility;\n\nimport java.util.Arrays;\n\npublic class ArrayUtility {\n\tpublic static double[][] getSubset(double[][] points, int[] indices) {\n\t\tdouble[][] result = new double[indices.length][];\n\t\t\n\t\tfor (int i = 0; i < indices.length; i++) {\n\t\t\tresult[i] = points[indices[i]];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static boolean isMonotoneIncreasing(int[] a) {\n\t\tfor (int i = 1; i < a.length; i++) {\n\t\t\tif (a[i] <= a[i - 1]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\t\n\tpublic static int[] makeMonotone(int[] a) {\n\t\tint[] temp = ArrayUtility.copyOf(a, a.length);\n\t\tArrays.sort(temp);\n\t\tint k = 0, i = 0;\n\t\tint[] result = new int[temp.length];\n\t\twhile (i < temp.length && k < result.length) {\n\t\t\tif (k > 0 && result[k - 1] == temp[i]) {\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tresult[k] = temp[i];\n\t\t\ti++;\n\t\t\tk++;\n\t\t}\n\t\treturn ArrayUtility.copyOf(result, k);\n\t}\n\t\n\tpublic static int[] union(int[] a, int[] b) {\n\t\tint i = 0, j = 0, k = 0;\n\n\t\tint[] temp = new int[a.length + b.length];\n\t\t\n\t\twhile (i < a.length && j < b.length) {\n\t\t\tif (a[i] < b[j]) {\n\t\t\t\ttemp[k] = a[i];\n\t\t\t\tk++;\n\t\t\t\ti++;\n\t\t\t} else if (a[i] > b[j]) {\n\t\t\t\ttemp[k] = b[j];\n\t\t\t\tk++;\n\t\t\t\tj++;\n\t\t\t} else {\n\t\t\t\ttemp[k] = a[i];\n\t\t\t\ti++;\n\t\t\t\tj++;\n\t\t\t\tk++;\n\t\t\t}\n\t\t}\n\t\t\n\t\twhile (i < a.length) {\n\t\t\ttemp[k] = a[i];\n\t\t\ti++;\n\t\t\tk++;\n\t\t}\n\t\t\n\t\twhile (j < b.length) {\n\t\t\ttemp[k] = b[j];\n\t\t\tj++;\n\t\t\tk++;\n\t\t}\n\t\t\n\t\treturn ArrayUtility.copyOf(temp, k);\n\t}\n\t\n\tpublic static double[] copyOf(double[] array, int length) {\n\t\tdouble[] result = new double[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static int[] copyOf(int[] array, int length) {\n\t\tint[] result = new int[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static float[] copyOf(float[] array, int length) {\n\t\tfloat[] result = new float[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static short[] copyOf(short[] array, int length) {\n\t\tshort[] result = new short[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static long[] copyOf(long[] array, int length) {\n\t\tlong[] result = new long[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static boolean[] copyOf(boolean[] array, int length) {\n\t\tboolean[] result = new boolean[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static byte[] copyOf(byte[] array, int length) {\n\t\tbyte[] result = new byte[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static char[] copyOf(char[] array, int length) {\n\t\tchar[] result = new char[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n\t\n\tpublic static Object[] copyOf(Object[] array, int length) {\n\t\tObject[] result = new Object[length];\n\t\t\n\t\tint n = Math.min(length, array.length);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tresult[i] = array[i];\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/CollectionUtility.java",
    "content": "package edu.stanford.math.plex4.utility;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CollectionUtility {\n\n\tpublic static <U> List<U> dump(Iterable<U> X) {\n\t\tList<U> list = new ArrayList<U>();\n\n\t\tfor (U x: X) {\n\t\t\tlist.add(x);\n\t\t}\n\n\t\treturn list;\n\t}\n\n\tpublic static <U> List<U> getDifference(Iterable<U> X, Iterable<U> A) {\n\t\tList<U> list = new ArrayList<U>();\n\n\t\tfor (U x: X) {\n\t\t\tlist.add(x);\n\t\t}\n\n\t\tfor (U a: A) {\n\t\t\tlist.remove(a);\n\t\t}\n\n\t\treturn list;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/ComparisonUtility.java",
    "content": "package edu.stanford.math.plex4.utility;\r\n\r\n\r\nimport gnu.trove.TIntHashSet;\r\nimport gnu.trove.TIntIterator;\r\n\r\nimport java.util.Collection;\r\n\r\n/**\r\n * This class contains static methods for comparing various objects.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class ComparisonUtility {\r\n\t// default precision values\r\n\tpublic static final double LOW_PRECISION = 1e-3;\r\n\tpublic static final double MED_PRECISION = 1e-6;\r\n\tpublic static final double HIGH_PRECISION = 1e-9;\r\n\t\r\n\t/**\r\n\t * This function returns true if two Collections define the same set; \r\n\t * that is they contain the same elements.\r\n\t * \r\n\t * @param a the first Collection\r\n\t * @param b the second Collection\r\n\t * @return true if the two Collections contain the same set of elements.\r\n\t */\r\n\tpublic static boolean setEquals(Collection<?> a, Collection<?> b) {\r\n\t\tif (a.size() != b.size()) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn (a.containsAll(b) && b.containsAll(a));\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns true if the two sets of integers contain the\r\n\t * same elements.\r\n\t * \r\n\t * @param a\r\n\t * @param b\r\n\t * @return true if the two sets are the same\r\n\t */\r\n\tpublic static boolean setEquals(TIntHashSet a, TIntHashSet b) {\r\n\t\treturn a.containsAll(b.toArray()) && b.containsAll(a.toArray());\r\n\t}\r\n\t\r\n\t\r\n\t/**\r\n\t * This function computes the intersection of two sets.\r\n\t * \r\n\t * @param a\r\n\t * @param b\r\n\t * @return the set of elements contained in both sets\r\n\t */\r\n\tpublic static TIntHashSet intersect(TIntHashSet a, TIntHashSet b) {\r\n\t\tTIntHashSet result = new TIntHashSet();\r\n\t\t\r\n\t\tfor (TIntIterator iterator = a.iterator(); iterator.hasNext(); ) {\r\n\t\t\tint x = iterator.next();\r\n\t\t\t\r\n\t\t\tif (b.contains(x)) {\r\n\t\t\t\tresult.add(x);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn result;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function compares two doubles to see if they are within the specified\r\n\t * tolerance of each other.\r\n\t * \r\n\t * @param a the first value\r\n\t * @param b the second value\r\n\t * @param tolerance the tolerance\r\n\t * @return true iff |a - b| <= tolerance\r\n\t */\r\n\tpublic static boolean compareDoublesAbsolute(double a, double b, double tolerance) {\r\n\t\treturn (Math.abs(a - b) <= tolerance);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function compares two doubles to see if their relative distance is within the\r\n\t * specified tolerance.\r\n\t * \r\n\t * @param a the first value\r\n\t * @param b the second value\r\n\t * @param tolerance the tolerance\r\n\t * @return true iff |a - b| / (0.5 (|a| + |b|)) <= tolerance\r\n\t */\r\n\tpublic static boolean compareDoublesRelative(double a, double b, double tolerance) {\r\n\t\tif (a == 0 && b == 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn (Math.abs((a - b) / (0.5 * (Math.abs(a) + Math.abs(b)))) <= tolerance);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function compares two doubles to see if their (relative/absolute) distance\r\n\t * is within the specified tolerance. If 0.5 (|a| + |b|) < 1 it uses an absolute comparison,\r\n\t * and otherwise it uses a relative comparison.\r\n\t * \r\n\t * @param a the first value\r\n\t * @param b the second value\r\n\t * @param tolerance the tolerance\r\n\t * @return true if the (relative/absolute) distance of a and b is within the given tolerance\r\n\t */\r\n\tpublic static boolean compareDoublesGuardedRelative(double a, double b, double tolerance) {\r\n\t\tdouble denom = 0.5 * (Math.abs(a) + Math.abs(b));\r\n\t\tif (denom < 1) {\r\n\t\t\treturn (Math.abs(a - b) <= tolerance);\r\n\t\t} else {\r\n\t\t\treturn (Math.abs(a - b) / denom <= tolerance);\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/ExceptionUtility.java",
    "content": "package edu.stanford.math.plex4.utility;\r\n\r\nimport java.util.Collection;\r\n\r\n/**\r\n * This class contains static functions for aiding in\r\n * creating exceptions, and verifying exceptions.\r\n * \r\n * The methods starting with verify check a condition\r\n * on the arguments. If the condition is not satisfied,\r\n * and appropriate exception is thrown.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class ExceptionUtility {\r\n\t\r\n\t/*\r\n\t * Indices\r\n\t */\r\n\r\n\t/**\r\n\t * This function checks to see if index is in the set {lowerBound, ..., upperBound - 1}.\r\n\t * \r\n\t * @param lowerBound the minimum allowable value of index\r\n\t * @param upperBound one past the maximum allowable value of index\r\n\t * @param index the index to check\r\n\t */\r\n\tpublic static void verifyIndex(int lowerBound, int upperBound, int index) {\r\n\t\tif (index < lowerBound || index >= upperBound) {\r\n\t\t\tthrow new IndexOutOfBoundsException(\"Lower bound: \" + lowerBound + \", Upper bound: \" + upperBound + \", Index: \" + index);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function checks to see if index is in the set {0, ..., upperBound - 1}.\r\n\t * \r\n\t * @param upperBound one past the maximum allowable value of index\r\n\t * @param index the index to check\r\n\t */\r\n\tpublic static void verifyIndex(int upperBound, int index) {\r\n\t\tverifyIndex(0, upperBound, index);\r\n\t}\r\n\t\r\n\t/*\r\n\t * Generic Objects\r\n\t */\r\n\t\r\n\tpublic static void verifyNonNull(Object value) {\r\n\t\tif (value == null) {\r\n\t\t\tthrow new NullPointerException(\"Argument must be non-null.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static <T> void verifyAllNonNull(Collection<T> collection) {\r\n\t\tfor (T object : collection) {\r\n\t\t\tif (object == null) {\r\n\t\t\t\tthrow new NullPointerException(\"Container must contain only non-null entries.\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static <T> void verifyNonEmpty(Collection<T> collection) {\r\n\t\tif (collection.isEmpty()) {\r\n\t\t\tthrow new IllegalArgumentException(\"Container must not be empty.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static <T> void verifyNonEmpty(int[] collection) {\r\n\t\tif (collection.length == 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Container must not be empty.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static <T> void verifyNonEmpty(double[] collection) {\r\n\t\tif (collection.length == 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Container must not be empty.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\t/*\r\n\t * Int comparison\r\n\t */\r\n\t\r\n\tpublic static void verifyEqual(int value1, int value2) {\r\n\t\tif (value1 != value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Arguments must be equal. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNonEqual(int value1, int value2) {\r\n\t\tif (value1 == value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Arguments must be non-equal. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyLessThan(int value1, int value2) {\r\n\t\tif (value1 >= value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument 1 must be less than Argument 2. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyGreaterThan(int value1, int value2) {\r\n\t\tif (value1 <= value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument 1 must be greater than Argument 2. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyLessThanOrEqual(int value1, int value2) {\r\n\t\tif (value1 > value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument 1 must be less than or equal to Argument 2. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyGreaterThanOrEqual(int value1, int value2) {\r\n\t\tif (value1 < value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument 1 must be greater than or equal to Argument 2. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyPositive(int value) {\r\n\t\tif (value <= 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be positive. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNonNegative(int value) {\r\n\t\tif (value < 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be non-negative. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNegative(int value) {\r\n\t\tif (value >= 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be negative. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNonPositive(int value) {\r\n\t\tif (value > 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be non-positive. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNonZero(int value) {\r\n\t\tif (value == 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be non-zero. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyClosedInterval(int value, int lowerBound, int upperBound) {\r\n\t\tif ((value < lowerBound) || (value > upperBound)) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument is outside the interval [\" + lowerBound + \", \" + upperBound + \"] Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/*\r\n\t * Double comparison\r\n\t */\r\n\t\r\n\tpublic static void verifyEqual(double value1, double value2) {\r\n\t\tif (value1 != value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Arguments must be equal. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNonEqual(double value1, double value2) {\r\n\t\tif (value1 == value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Arguments must be non-equal. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyLessThan(double value1, double value2) {\r\n\t\tif (value1 >= value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument 1 must be less than Argument 2. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyGreaterThan(double value1, double value2) {\r\n\t\tif (value1 <= value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument 1 must be greater than Argument 2. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyLessThanOrEqual(double value1, double value2) {\r\n\t\tif (value1 > value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument 1 must be less than or equal to Argument 2. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyGreaterThanOrEqual(double value1, double value2) {\r\n\t\tif (value1 < value2) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument 1 must be greater than or equal to Argument 2. Argument 1: \" + value1 + \" Argument 2: \" + value2);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyPositive(double value) {\r\n\t\tif (value <= 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be positive. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNonNegative(double value) {\r\n\t\tif (value < 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be non-negative. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNegative(double value) {\r\n\t\tif (value >= 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be negative. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNonPositive(double value) {\r\n\t\tif (value > 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be non-positive. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyNonZero(double value) {\r\n\t\tif (value == 0) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument must be non-zero. Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyClosedInterval(double value, double lowerBound, double upperBound) {\r\n\t\tif ((value < lowerBound) || (value > upperBound)) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument is outside the interval [\" + lowerBound + \", \" + upperBound + \"] Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyOpenInterval(double value, double lowerBound, double upperBound) {\r\n\t\tif ((value <= lowerBound) || (value >= upperBound)) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument is outside the interval (\" + lowerBound + \", \" + upperBound + \") Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyLeftHalfOpenInterval(double value, double lowerBound, double upperBound) {\r\n\t\tif ((value <= lowerBound) || (value > upperBound)) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument is outside the interval (\" + lowerBound + \", \" + upperBound + \"] Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyRightHalfOpenInterval(double value, double lowerBound, double upperBound) {\r\n\t\tif ((value < lowerBound) || (value >= upperBound)) {\r\n\t\t\tthrow new IllegalArgumentException(\"Argument is outside the interval [\" + lowerBound + \", \" + upperBound + \") Value: \" + value);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyTrue(boolean condition) {\r\n\t\tif (!condition) {\r\n\t\t\tthrow new IllegalArgumentException(\"Condition must be true\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyFalse(boolean condition) {\r\n\t\tif (condition) {\r\n\t\t\tthrow new IllegalArgumentException(\"Condition must be false\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyTrue(boolean condition, String message) {\r\n\t\tif (!condition) {\r\n\t\t\tthrow new IllegalArgumentException(message);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static void verifyFalse(boolean condition, String message) {\r\n\t\tif (condition) {\r\n\t\t\tthrow new IllegalArgumentException(message);\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/FormalSumUtility.java",
    "content": "package edu.stanford.math.plex4.utility;\n\nimport java.util.ArrayList;\nimport java.util.Iterator;\nimport java.util.List;\nimport java.util.Map;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\nimport gnu.trove.TObjectIntIterator;\n\n/**\n * This class contains various utility functions for interacting with formal\n * sums (chains).\n * \n * @author Andrew Tausz\n * \n */\npublic class FormalSumUtility {\n\n\t/**\n\t * This function returns all of the basis elements in a chain which have\n\t * non-zero coefficients. The primary use case will be to extract the set of\n\t * simplicies in a chain.\n\t * \n\t * @param chain\n\t * @return the set of active basis elements in a formal sum\n\t */\n\tpublic static <F, U> List<U> extractActiveBasisElements(ObjectSparseFormalSum<F, U> chain) {\n\n\t\tList<U> basisElements = new ArrayList<U>();\n\n\t\tfor (Iterator<Map.Entry<U, F>> iterator = chain.iterator(); iterator.hasNext();) {\n\t\t\tMap.Entry<U, F> entry = iterator.next();\n\n\t\t\tbasisElements.add(entry.getKey());\n\t\t}\n\n\t\treturn basisElements;\n\t}\n\n\t/**\n\t * This function returns all of the basis elements in a chain which have\n\t * non-zero coefficients. The primary use case will be to extract the set of\n\t * simplicies in a chain.\n\t * \n\t * @param chain\n\t * @return the set of active basis elements in a formal sum\n\t */\n\tpublic static <U> List<U> extractActiveBasisElements(IntSparseFormalSum<U> chain) {\n\n\t\tList<U> basisElements = new ArrayList<U>();\n\n\t\tTObjectIntIterator<U> iter = chain.iterator();\n\n\t\twhile (iter.hasNext()) {\n\t\t\titer.advance();\n\t\t\tU obj = iter.key();\n\t\t\tbasisElements.add(obj);\n\t\t}\n\n\t\treturn basisElements;\n\t}\n\n\t/**\n\t * This function returns all of the basis elements in a chain which have\n\t * non-zero coefficients. The primary use case will be to extract the set of\n\t * simplicies in a chain.\n\t * \n\t * @param chain\n\t * @return the set of active basis elements in a formal sum\n\t */\n\tpublic static <U> List<U> extractActiveBasisElements(BooleanSparseFormalSum<U> chain) {\n\n\t\tList<U> basisElements = new ArrayList<U>();\n\t\tIterator<U> iter = chain.iterator();\n\n\t\twhile (iter.hasNext()) {\n\t\t\tU obj = iter.next();\n\t\t\tbasisElements.add(obj);\n\t\t}\n\n\t\treturn basisElements;\n\t}\n\n\t/**\n\t * This function returns the coefficients for a formal sum in the form of a\n\t * list.\n\t * \n\t * @param chain\n\t * @return the coefficients in the chain\n\t */\n\tpublic static List<Integer> extractCoefficients(IntSparseFormalSum<?> chain) {\n\t\tList<Integer> coefficients = new ArrayList<Integer>();\n\n\t\tTObjectIntIterator<?> iter = chain.iterator();\n\n\t\twhile (iter.hasNext()) {\n\t\t\titer.advance();\n\t\t\tcoefficients.add(iter.value());\n\t\t}\n\n\t\treturn coefficients;\n\t}\n\n\t/**\n\t * This function returns the coefficients for a formal sum in the form of a\n\t * list.\n\t * \n\t * @param chain\n\t * @return the coefficients in the chain\n\t */\n\tpublic static <F, U> List<F> extractCoefficients(ObjectSparseFormalSum<F, U> chain) {\n\t\tList<F> coefficients = new ArrayList<F>();\n\n\t\tfor (Iterator<Map.Entry<U, F>> iterator = chain.iterator(); iterator.hasNext();) {\n\t\t\tMap.Entry<U, F> entry = iterator.next();\n\n\t\t\tcoefficients.add(entry.getValue());\n\t\t}\n\n\t\treturn coefficients;\n\t}\n\n\t/**\n\t * This function extracts the set of vertices from a list of simplices and returns a 2-d\n\t * array containing the vertices.\n\t * \n\t * @param simplices\n\t * @return the vertices for a list of simplices\n\t */\n\tpublic static int[][] extractVertices(List<Simplex> simplices) {\n\t\tif (simplices.size() < 1) {\n\t\t\treturn new int[0][0];\n\t\t}\n\n\t\tint[][] vertices = new int[simplices.size()][];\n\n\t\tint i = 0;\n\t\tfor (Simplex s : simplices) {\n\t\t\tvertices[i++] = s.getVertices();\n\t\t}\n\n\t\treturn vertices;\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/MathUtility.java",
    "content": "package edu.stanford.math.plex4.utility;\r\n\r\n\r\n/**\r\n * This class contains various static utility functions\r\n * relating to math.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class MathUtility {\r\n\tpublic static long euclideanGcd(long a, long b) {\r\n\t\twhile (b != 0) {\r\n\t\t\tlong t = b;\r\n\t\t\tb = a % b;\r\n\t\t\ta = t;\r\n\t\t}\r\n\t\treturn a;\r\n\t}\r\n\r\n\tpublic static int signum(long l) {\r\n\t\tif (l > 0) {\r\n\t\t\treturn 1;\r\n\t\t} else if (l < 0) {\r\n\t\t\treturn -1;\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static int signum(double l) {\r\n\t\tif (l > 0) {\r\n\t\t\treturn 1;\r\n\t\t} else if (l < 0) {\r\n\t\t\treturn -1;\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the multiplicative inverses of the integers\r\n\t * [0, 1, ..., p-1] in mod p arithmetic. Note that the 0-th index is \r\n\t * simply set to 0 for convenience so that the inverse of n is in the n-th\r\n\t * component of the returned array.\r\n\t * \r\n\t * TODO:\r\n\t * This is an inefficient way to compute the inverses (it was inherited from \r\n\t * the original Plex implementation). It should be rewritten. \r\n\t * \r\n\t * @param p\r\n\t * @return an array containing the multiplicative inverses in the field Z/pZ\r\n\t */\r\n\tpublic static int[] modularInverses(int p) {\r\n\t\tExceptionUtility.verifyGreaterThanOrEqual(p, 2);\r\n\t\tint[] inverses = new int[p];\r\n\t\tfor (int i = 1; i < p; i++) {\r\n\t\t\tint inverse = 0;\r\n\t\t\tfor (int j = 1; j < p; j++) {\r\n\t\t\t\tif (((j * i) % p) == 1) {\r\n\t\t\t\t\tinverse = j;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (inverse == 0) {\r\n\t\t\t\tthrow new IllegalArgumentException(p + \" is not a prime.\");\r\n\t\t\t}\r\n\r\n\t\t\tinverses[i] = inverse;\r\n\t\t}\r\n\r\n\t\treturn inverses;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the floor of the base-2 logarithm\r\n\t * of the input. The input must be strictly positive.\r\n\t * \r\n\t * @param input the input argument\r\n\t * @return the floor of the base-2 logarithm of the input \r\n\t */\r\n\tpublic static int floorLog2(int input) {\r\n\t\tExceptionUtility.verifyPositive(input);\r\n\t\tint bitMask = 1;\r\n\t\tint bitPosition = 0;\r\n\t\tint maxBitPosition = 0;\r\n\t\twhile (bitPosition < 31) {\r\n\t\t\tif ((bitMask & input) > 0) {\r\n\t\t\t\tmaxBitPosition = bitPosition;\r\n\t\t\t}\r\n\t\t\tbitMask <<= 1;\r\n\t\t\tbitPosition++;\r\n\t\t}\r\n\t\treturn maxBitPosition;\r\n\t}\r\n\r\n\tpublic static int minLog2(int input) {\r\n\t\tint bitMask = 1;\r\n\t\tint bitPosition = 0;\r\n\t\tint maxBitMask = 0;\r\n\t\twhile (bitPosition < 31) {\r\n\t\t\tif ((bitMask & input) > 0) {\r\n\t\t\t\tmaxBitMask = (bitMask & input);\r\n\t\t\t}\r\n\t\t\tbitMask <<= 1;\r\n\t\t\tbitPosition++;\r\n\t\t}\r\n\t\treturn maxBitMask;\r\n\t}\r\n\r\n\tpublic static int maxLog2(int input) {\r\n\t\tint minLog2 = minLog2(input);\r\n\t\tif (minLog2 == input) {\r\n\t\t\treturn input;\r\n\t\t} else {\r\n\t\t\treturn minLog2 << 1;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * This function returns the great circle distance (geodesic distance)\r\n\t * between two points on the unit sphere.\r\n\t * \r\n\t * @param latitude1 the latitude of the first point\r\n\t * @param longitude1 the longitude of the first point\r\n\t * @param latitude2 the latitude of the second point\r\n\t * @param longitude2 the longitude of the second point\r\n\t * @return the geodesic distance between the two input points\r\n\t */\r\n\tpublic static double greatCircleDistance(double latitude1, double longitude1, \r\n\t\t\tdouble latitude2, double longitude2) {\r\n\t\tdouble phi1 = latitude1;\r\n\t\tdouble phi2 = latitude2;\r\n\t\tdouble lambda1 = longitude1;\r\n\t\tdouble lambda2 = longitude2;\r\n\t\tdouble deltaLambda = lambda1 - lambda2;\r\n\t\tdouble deltaPhi = phi1 - phi2;\r\n\t\tdouble sin1 = Math.sin(0.5 * deltaPhi);\r\n\t\tdouble sin2 = Math.sin(0.5 * deltaLambda);\r\n\t\tdouble A = sin1 * sin1;\r\n\t\tdouble B = sin2 * sin2;\r\n\t\tdouble C = Math.cos(phi1) * Math.cos(phi2);\r\n\t\tdouble distance = 2 * Math.asin(A + B * C);\r\n\t\treturn distance;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the great circle distance between two \r\n\t * points on the unit sphere given their rectangular coordinates.\r\n\t * \r\n\t * @param x the first point\r\n\t * @param y the second point\r\n\t * @return the distance between x and y along the unit sphere\r\n\t */\r\n\tpublic static double greatCircleDistance(double[] x, double[] y) {\r\n\t\tdouble x1 = x[0];\r\n\t\tdouble y1 = x[1];\r\n\t\tdouble z1 = x[2];\r\n\t\tdouble phi1 = Math.atan2(y1, x1);\r\n\t\tdouble theta1 = Math.acos(z1 / Math.sqrt(x1 * x1 + y1 * y1 + z1 * z1));\r\n\t\tdouble latitude1 = 0.5 * Math.PI - theta1;\r\n\r\n\t\tdouble x2 = y[0];\r\n\t\tdouble y2 = y[1];\r\n\t\tdouble z2 = y[2];\r\n\t\tdouble phi2 = Math.atan2(y2, x2);\r\n\t\tdouble theta2 = Math.acos(z2 / Math.sqrt(x2 * x2 + y2 * y2 + z2 * z2));\r\n\t\tdouble latitude2 = 0.5 * Math.PI - theta2;\r\n\r\n\t\treturn MathUtility.greatCircleDistance(latitude1, phi1, latitude2, phi2);\t\t\r\n\t}\r\n\r\n\t/**\r\n\t * This function computes the Huber penalty function of an \r\n\t * input. The Huber penalty function is equal to x^2 for |x| <= M, \r\n\t * and linear for |x| > M.\r\n\t * @param x the value at which to compute the Huber penalty function\r\n\t * @param M the parameter which determines the linear/quadratic region\r\n\t * @return The Huber penalty function at x\r\n\t */\r\n\tpublic static double huberPenaltyFunction(double x, double M) {\r\n\t\tif (Math.abs(x) <= M) {\r\n\t\t\treturn x * x;\r\n\t\t} else {\r\n\t\t\treturn M * (2 * Math.abs(x) - M);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static double absApproximation(double x, double M) {\r\n\t\treturn huberPenaltyFunction(x, M) / (2 * M);\r\n\t}\r\n\r\n\tpublic static double maxApproximation(double x, double y, double M) {\r\n\t\treturn 0.5 * (absApproximation(x - y, M) + x + y);\r\n\t}\r\n\r\n\t/**\r\n\t * This function evaluates the standard gaussian density\r\n\t * with mean 0 and variance 1.\r\n\t * \r\n\t * @param x the point to evaluate at\r\n\t * @return the standard normal density evaluated at x\r\n\t */\r\n\tpublic static double gaussianDensity(double x) {\r\n\t\tdouble constant = Math.sqrt(2 * Math.PI);\r\n\t\treturn (Math.exp(0.5 * x * x) / constant);\r\n\t}\r\n\r\n\t/**\r\n\t * This function evaluates the 1-dimensional gaussian\r\n\t * density function with specified mean and standard deviation.\r\n\t * \r\n\t * @param x the point to evaluate at\r\n\t * @param mean the mean of the distribution\r\n\t * @param standardDeviation the standard deviation of the distribution\r\n\t * @return the gaussian density evaluated at x\r\n\t */\r\n\tpublic static double gaussianDensity(double x, double mean, double standardDeviation) {\r\n\t\treturn (gaussianDensity((x - mean) / standardDeviation) / standardDeviation);\r\n\t}\r\n\t\r\n\t\r\n\tpublic static double dotProduct(double[] a, double[] b) {\r\n\t\tdouble result = 0;\r\n\t\t\r\n\t\tfor(int i = 0; i < a.length && i < b.length; i++) {\r\n\t\t\tresult += a[i] * b[i];\r\n\t\t}\r\n\t\t\r\n\t\treturn result;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/MemoryUtility.java",
    "content": "package edu.stanford.math.plex4.utility;\r\n\r\nimport java.lang.reflect.Array;\r\n\r\npublic class MemoryUtility {\r\n\tpublic static Object deepArrayCopy(Object object) {\r\n        if (object.getClass().isArray()) {\r\n            int length = Array.getLength(object);\r\n            Class<?> component = object.getClass().getComponentType();\r\n            Object newInnerArray = Array.newInstance(component, length);\r\n            for (int i = 0; i < length; i++) {\r\n                Object elem = deepArrayCopy(Array.get(object, i));\r\n                Array.set(newInnerArray, i, elem);\r\n            }\r\n            return newInnerArray;\r\n        } else {\r\n            return object;\r\n        }\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/Quicksort.java",
    "content": "package edu.stanford.math.plex4.utility;\n\nimport java.util.Collections;\nimport java.util.Comparator;\nimport java.util.List;\nimport java.util.Random;\n\n\n/**\n * This class contains an implement of the quicksort and other related\n * algorithms, such as the selection of order statistics.\n * \n * It is based on chapter 8 and 10 of \"Introduction to \n * Algorithms\" by Cormen, Leiserson and Rivest. \n * \n * @author Andrew Tausz\n *\n */\npublic class Quicksort {\n\tprivate static Random random = new Random();\n\n\tprivate Quicksort() {}\n\n\tpublic static class Int {\n\t\t/**\n\t\t * Performs the quicksort algorithm in place on the supplied array.\n\t\t * \n\t\t * @param array the array to sort\n\t\t */\n\t\tpublic static void quicksort(int[] array) {\n\t\t\tquicksort(array, 0, array.length - 1);\n\t\t}\n\n\t\t/**\n\t\t * Performs the quicksort algorithm in place on a subarray of the \n\t\t * supplied array. \n\t\t * \n\t\t * @param array the array to sort\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t */\n\t\tpublic static void quicksort(int[] array, int startIndex, int endIndex) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.length);\n\n\t\t\tif (startIndex < endIndex) {\n\t\t\t\tint partitionBoundaryIndex = partition(array, startIndex, endIndex);\n\t\t\t\tquicksort(array, startIndex, partitionBoundaryIndex);\n\t\t\t\tquicksort(array, partitionBoundaryIndex + 1, endIndex);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * This performs the randomized quicksort algorithm in place on the\n\t\t * supplied array. The randomized quicksort algorithm has the advantage that\n\t\t * no particular input can force the algorithm to deliver its worst case\n\t\t * performance.\n\t\t * \n\t\t * @param array\n\t\t */\n\t\tpublic static void randomizedQuicksort(int[] array) {\n\t\t\tquicksort(array, 0, array.length - 1);\n\t\t}\n\n\t\t/**\n\t\t * This performs the randomized quicksort algorithm in place on a subarray of the\n\t\t * supplied array. The randomized quicksort algorithm has the advantage that\n\t\t * no particular input can force the algorithm to deliver its worst case\n\t\t * performance.\n\t\t * \n\t\t * @param array the array to sort\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t */\n\t\tpublic static void randomizedQuicksort(int[] array, int startIndex, int endIndex) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.length);\n\n\t\t\tif (startIndex < endIndex) {\n\t\t\t\tint partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex);\n\t\t\t\trandomizedQuicksort(array, startIndex, partitionBoundaryIndex);\n\t\t\t\trandomizedQuicksort(array, partitionBoundaryIndex + 1, endIndex);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * The fundamental partition operation for quicksort. This function partitions\n\t\t * the array into two parts determined by the pivot element array[startIndex].\n\t\t * It arranges the array so that the first section contains elements less than\n\t\t * or equal to each element of the second section. The last index of the first\n\t\t * section is returned. \n\t\t * \n\t\t * @param array the array to arrange\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t * @return the last index of the first partition\n\t\t */\n\t\tpublic static int partition(int[] array, int startIndex, int endIndex) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.length);\n\n\t\t\tint pivotValue = array[startIndex];\n\t\t\tint i = startIndex;\n\t\t\tint j = endIndex;\n\n\t\t\twhile (true) {\n\t\t\t\twhile (array[j] > pivotValue) {\n\t\t\t\t\tj--;\n\t\t\t\t}\n\t\t\t\twhile (array[i] < pivotValue) {\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tif (i < j) {\n\t\t\t\t\tswap(array, i, j);\n\t\t\t\t\ti++;\n\t\t\t\t\tj--;\n\t\t\t\t} else {\n\t\t\t\t\treturn j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * This function performs the same function as the partition function, except that\n\t\t * it uses a randomly chosen pivot. \n\t\t * \n\t\t * @param array the array to arrange\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t * @return the last index of the first partition\n\t\t */\n\t\tpublic static int randomizedPartition(int[] array, int startIndex, int endIndex) {\n\t\t\tint i = startIndex + random.nextInt(endIndex - startIndex);\n\t\t\tswap(array, i, startIndex);\n\t\t\treturn partition(array, startIndex, endIndex);\n\t\t}\n\n\t\t/**\n\t\t * This function returns the i-th order statistic of the data in the supplied array.\n\t\t * It also modifies the array so that the i-th order statistic is in the i-th position\n\t\t * of the array, for j < i array[j] <= array[i], and for j > i array[j] >= array[i].\n\t\t * In other words it partially sorts the array so that it is partitioned into the subset\n\t\t * of elements less or equal to the i-th order statistic, and greater than or equal it. \n\t\t * \n\t\t * If one wanted to find the median of a list of numbers, then one could call\n\t\t * randomizedSelect(array, array.length / 2). \n\t\t * \n\t\t * @param array the array to search\n\t\t * @param i the rank of the order statistic to find\n\t\t * @return the i-th order statistic\n\t\t */\n\t\tpublic static int randomizedSelect(int[] array, int i) {\n\t\t\treturn randomizedSelect(array, 0, array.length - 1, i);\n\t\t}\n\n\t\t/**\n\t\t * This function performs the randomizedSelect on a subarray of the supplied array. It\n\t\t * operates on the subarray <code>array[startIndex, ..., endIndex]</code>. \n\t\t * \n\t\t * @param array the array to search\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t * @param i he rank of the order statistic to find\n\t\t * @return the i-th order statistic\n\t\t */\n\t\tpublic static int randomizedSelect(int[] array, int startIndex, int endIndex, int i) {\n\t\t\tif (startIndex == endIndex) {\n\t\t\t\treturn array[startIndex];\n\t\t\t}\n\n\t\t\tint partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex);\n\t\t\tint k = partitionBoundaryIndex - startIndex + 1;\n\t\t\tif (i < k) {\n\t\t\t\treturn randomizedSelect(array, startIndex, partitionBoundaryIndex, i);\n\t\t\t} else {\n\t\t\t\treturn randomizedSelect(array, partitionBoundaryIndex + 1, endIndex, i - k);\n\t\t\t}\n\t\t}\n\t\t\n\t\tprivate static void swap(int[] array, int i, int j) {\n\t\t\tint temp = array[i];\n\t\t\tarray[i] = array[j];\n\t\t\tarray[j] = temp;\n\t\t}\n\t}\n\n\tpublic static class GenericArray<T> {\n\t\t/**\n\t\t * Performs the quicksort algorithm in place on the supplied array.\n\t\t * \n\t\t * @param array the array to sort\n\t\t */\n\t\tpublic static <T> void quicksort(T[] array, Comparator<T> comparator) {\n\t\t\tquicksort(array, 0, array.length - 1, comparator);\n\t\t}\n\n\t\t/**\n\t\t * Performs the quicksort algorithm in place on a subarray of the \n\t\t * supplied array. \n\t\t * \n\t\t * @param array the array to sort\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t */\n\t\tpublic static <T> void quicksort(T[] array, int startIndex, int endIndex, Comparator<T> comparator) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.length);\n\n\t\t\tif (startIndex < endIndex) {\n\t\t\t\tint partitionBoundaryIndex = partition(array, startIndex, endIndex, comparator);\n\t\t\t\tquicksort(array, startIndex, partitionBoundaryIndex, comparator);\n\t\t\t\tquicksort(array, partitionBoundaryIndex + 1, endIndex, comparator);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * This performs the randomized quicksort algorithm in place on the\n\t\t * supplied array. The randomized quicksort algorithm has the advantage that\n\t\t * no particular input can force the algorithm to deliver its worst case\n\t\t * performance.\n\t\t * \n\t\t * @param array\n\t\t */\n\t\tpublic static <T> void randomizedQuicksort(T[] array, Comparator<T> comparator) {\n\t\t\tquicksort(array, 0, array.length - 1, comparator);\n\t\t}\n\n\t\t/**\n\t\t * This performs the randomized quicksort algorithm in place on a subarray of the\n\t\t * supplied array. The randomized quicksort algorithm has the advantage that\n\t\t * no particular input can force the algorithm to deliver its worst case\n\t\t * performance.\n\t\t * \n\t\t * @param array the array to sort\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t */\n\t\tpublic static <T> void randomizedQuicksort(T[] array, int startIndex, int endIndex, Comparator<T> comparator) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.length);\n\n\t\t\tif (startIndex < endIndex) {\n\t\t\t\tint partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex, comparator);\n\t\t\t\trandomizedQuicksort(array, startIndex, partitionBoundaryIndex, comparator);\n\t\t\t\trandomizedQuicksort(array, partitionBoundaryIndex + 1, endIndex, comparator);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * The fundamental partition operation for quicksort. This function partitions\n\t\t * the array into two parts determined by the pivot element array[startIndex].\n\t\t * It arranges the array so that the first section contains elements less than\n\t\t * or equal to each element of the second section. The last index of the first\n\t\t * section is returned. \n\t\t * \n\t\t * @param array the array to arrange\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t * @return the last index of the first partition\n\t\t */\n\t\tpublic static <T> int partition(T[] array, int startIndex, int endIndex, Comparator<T> comparator) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.length);\n\n\t\t\tT pivotValue = array[startIndex];\n\t\t\tint i = startIndex;\n\t\t\tint j = endIndex;\n\n\t\t\twhile (true) {\n\t\t\t\twhile (comparator.compare(array[j], pivotValue) > 0) {\n\t\t\t\t\tj--;\n\t\t\t\t}\n\t\t\t\twhile(comparator.compare(array[i], pivotValue) < 0) {\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tif (i < j) {\n\t\t\t\t\tswap(array, i, j);\n\t\t\t\t\ti++;\n\t\t\t\t\tj--;\n\t\t\t\t} else {\n\t\t\t\t\treturn j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * This function performs the same function as the partition function, except that\n\t\t * it uses a randomly chosen pivot. \n\t\t * \n\t\t * @param array the array to arrange\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t * @return the last index of the first partition\n\t\t */\n\t\tpublic static <T> int randomizedPartition(T[] array, int startIndex, int endIndex, Comparator<T> comparator) {\n\t\t\tint i = startIndex + random.nextInt(endIndex - startIndex);\n\t\t\tswap(array, i, startIndex);\n\t\t\treturn partition(array, startIndex, endIndex, comparator);\n\t\t}\n\n\t\t/**\n\t\t * This function returns the i-th order statistic of the data in the supplied array.\n\t\t * It also modifies the array so that the i-th order statistic is in the i-th position\n\t\t * of the array, for j < i array[j] <= array[i], and for j > i array[j] >= array[i].\n\t\t * In other words it partially sorts the array so that it is partitioned into the subset\n\t\t * of elements less or equal to the i-th order statistic, and greater than or equal it. \n\t\t * \n\t\t * If one wanted to find the median of a list of numbers, then one could call\n\t\t * randomizedSelect(array, array.length / 2). \n\t\t * \n\t\t * @param array the array to search\n\t\t * @param i the rank of the order statistic to find\n\t\t * @return the i-th order statistic\n\t\t */\n\t\tpublic static <T> T randomizedSelect(T[] array, int i, Comparator<T> comparator) {\n\t\t\treturn randomizedSelect(array, 0, array.length - 1, i, comparator);\n\t\t}\n\n\t\t/**\n\t\t * This function performs the randomizedSelect on a subarray of the supplied array. It\n\t\t * operates on the subarray <code>array[startIndex, ..., endIndex]</code>. \n\t\t * \n\t\t * @param array the array to search\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t * @param i he rank of the order statistic to find\n\t\t * @return the i-th order statistic\n\t\t */\n\t\tpublic static <T> T randomizedSelect(T[] array, int startIndex, int endIndex, int i, Comparator<T> comparator) {\n\t\t\tif (startIndex == endIndex) {\n\t\t\t\treturn array[startIndex];\n\t\t\t}\n\n\t\t\tint partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex, comparator);\n\t\t\tint k = partitionBoundaryIndex - startIndex + 1;\n\t\t\tif (i < k) {\n\t\t\t\treturn randomizedSelect(array, startIndex, partitionBoundaryIndex, i, comparator);\n\t\t\t} else {\n\t\t\t\treturn randomizedSelect(array, partitionBoundaryIndex + 1, endIndex, i - k, comparator);\n\t\t\t}\n\t\t}\n\t\t\n\t\tprivate static <T> void swap(T[] array, int i, int j) {\n\t\t\tT temp = array[i];\n\t\t\tarray[i] = array[j];\n\t\t\tarray[j] = temp;\n\t\t}\n\t}\n\n\tpublic static class GenericList<T> {\n\n\t\tpublic static <T> void quicksort(List<T> array, Comparator<T> comparator) {\n\t\t\tquicksort(array, 0, array.size() - 1, comparator);\n\t\t}\n\n\n\t\tpublic static <T> void quicksort(List<T> array, int startIndex, int endIndex, Comparator<T> comparator) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.size());\n\n\t\t\tif (startIndex < endIndex) {\n\t\t\t\tint partitionBoundaryIndex = partition(array, startIndex, endIndex, comparator);\n\t\t\t\tquicksort(array, startIndex, partitionBoundaryIndex, comparator);\n\t\t\t\tquicksort(array, partitionBoundaryIndex + 1, endIndex, comparator);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * This performs the randomized quicksort algorithm in place on the\n\t\t * supplied array. The randomized quicksort algorithm has the advantage that\n\t\t * no particular input can force the algorithm to deliver its worst case\n\t\t * performance.\n\t\t * \n\t\t * @param array\n\t\t */\n\t\tpublic static <T> void randomizedQuicksort(List<T> array, Comparator<T> comparator) {\n\t\t\tquicksort(array, 0, array.size() - 1, comparator);\n\t\t}\n\n\t\t/**\n\t\t * This performs the randomized quicksort algorithm in place on a subarray of the\n\t\t * supplied array. The randomized quicksort algorithm has the advantage that\n\t\t * no particular input can force the algorithm to deliver its worst case\n\t\t * performance.\n\t\t * \n\t\t * @param array the array to sort\n\t\t * @param startIndex the first index of the subarray\n\t\t * @param endIndex the last index of the subarray\n\t\t */\n\t\tpublic static <T> void randomizedQuicksort(List<T> array, int startIndex, int endIndex, Comparator<T> comparator) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.size());\n\n\t\t\tif (startIndex < endIndex) {\n\t\t\t\tint partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex, comparator);\n\t\t\t\trandomizedQuicksort(array, startIndex, partitionBoundaryIndex, comparator);\n\t\t\t\trandomizedQuicksort(array, partitionBoundaryIndex + 1, endIndex, comparator);\n\t\t\t}\n\t\t}\n\n\t\tpublic static <T> int partition(List<T> array, int startIndex, int endIndex, Comparator<T> comparator) {\n\t\t\tExceptionUtility.verifyNonNegative(startIndex);\n\t\t\tExceptionUtility.verifyGreaterThanOrEqual(endIndex, startIndex);\n\t\t\tExceptionUtility.verifyLessThan(endIndex, array.size());\n\n\t\t\tT pivotValue = array.get(startIndex);\n\t\t\tint i = startIndex;\n\t\t\tint j = endIndex;\n\n\t\t\twhile (true) {\n\t\t\t\twhile (comparator.compare(array.get(j), pivotValue) > 0) {\n\t\t\t\t\tj--;\n\t\t\t\t}\n\t\t\t\twhile(comparator.compare(array.get(i), pivotValue) < 0) {\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tif (i < j) {\n\t\t\t\t\tswap(array, i, j);\n\t\t\t\t\ti++;\n\t\t\t\t\tj--;\n\t\t\t\t} else {\n\t\t\t\t\treturn j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tpublic static <T> int randomizedPartition(List<T> array, int startIndex, int endIndex, Comparator<T> comparator) {\n\t\t\tint i = startIndex + random.nextInt(endIndex - startIndex);\n\t\t\tswap(array, i, startIndex);\n\t\t\treturn partition(array, startIndex, endIndex, comparator);\n\t\t}\n\n\t\tpublic static <T> T randomizedSelect(List<T> array, int i, Comparator<T> comparator) {\n\t\t\treturn randomizedSelect(array, 0, array.size() - 1, i, comparator);\n\t\t}\n\n\t\tpublic static <T> T randomizedSelect(List<T> array, int startIndex, int endIndex, int i, Comparator<T> comparator) {\n\t\t\tif (startIndex == endIndex) {\n\t\t\t\treturn array.get(startIndex);\n\t\t\t}\n\n\t\t\tint partitionBoundaryIndex = randomizedPartition(array, startIndex, endIndex, comparator);\n\t\t\tint k = partitionBoundaryIndex - startIndex + 1;\n\t\t\tif (i < k) {\n\t\t\t\treturn randomizedSelect(array, startIndex, partitionBoundaryIndex, i, comparator);\n\t\t\t} else {\n\t\t\t\treturn randomizedSelect(array, partitionBoundaryIndex + 1, endIndex, i - k, comparator);\n\t\t\t}\n\t\t}\n\t\t\n\t\tprivate static <T> List<T> swap(List<T> array, int i, int j) {\n\t\t\tCollections.swap(array, i, j);\n\t\t\treturn array;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/utility/RandomUtility.java",
    "content": "package edu.stanford.math.plex4.utility;\r\n\r\nimport gnu.trove.TIntHashSet;\r\nimport cern.jet.random.Normal;\r\nimport cern.jet.random.Uniform;\r\n\r\n\r\n/**\r\n * This class contains static members for generating random numbers.\r\n * \r\n * @author Andrew Tausz\r\n * @author Tim Harrington\r\n *\r\n */\r\npublic class RandomUtility {\r\n\t\r\n\tprivate static Normal normalGenerator = new Normal(0, 1, new cern.jet.random.engine.MersenneTwister(Uniform\r\n\t\t\t.staticNextIntFromTo(0, Integer.MAX_VALUE)));\r\n\tprivate static Uniform uniformGenerator = new Uniform(new cern.jet.random.engine.MersenneTwister(Uniform\r\n\t\t\t.staticNextIntFromTo(0, Integer.MAX_VALUE)));\r\n\r\n\t/**\r\n\t * This function initializes the seeds of the random number generators to the specified\r\n\t * values.\r\n\t * \r\n\t * @param seed the seed to initialize with\r\n\t */\r\n\tpublic static void initializeWithSeed(int seed) {\r\n\t\tnormalGenerator = new Normal(0, 1, new cern.jet.random.engine.MersenneTwister(seed));\r\n\t\tuniformGenerator = new Uniform(new cern.jet.random.engine.MersenneTwister(seed));\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns a sample of a Bernoulli random\r\n\t * variable with parameter p.\r\n\t * \r\n\t * @param p The probability of returning 1\r\n\t * @return a Bernoulli random variable with probability p\r\n\t */\r\n\tpublic static int nextBernoulli(double p) {\r\n\t\tExceptionUtility.verifyNonNegative(p);\r\n\t\tExceptionUtility.verifyLessThanOrEqual(p, 1);\r\n\t\tif (p == 1) {\r\n\t\t\treturn 1;\r\n\t\t} else if (p == 0) {\r\n\t\t\treturn 0;\r\n\t\t} else if (uniformGenerator.nextDouble() <= p) {\r\n\t\t\treturn 1;\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a uniform random number\r\n\t * in the open interval (0, 1).\r\n\t * \r\n\t * @return a double containing a uniform random number in (0, 1)\r\n\t */\r\n\tpublic static double nextUniform() {\r\n\t\treturn uniformGenerator.nextDouble();\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a normal random number.\r\n\t * \r\n\t * @return a normally distributed random number\r\n\t */\r\n\tpublic static double nextNormal() {\r\n\t\treturn normalGenerator.nextDouble();\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a uniformly distributed integer in the inclusive interval \r\n\t * {from, ..., to}\r\n\t * \r\n\t * @param from the start integer\r\n\t * @param to the end integer\r\n\t * @return an integer uniformly distributed in {from, ..., to}\r\n\t */\r\n\tpublic static int nextUniformInt(int from, int to) {\r\n\t\treturn uniformGenerator.nextIntFromTo(from, to);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns an integer uniformly distributed\r\n\t * in the set {from, ..., to} \\ {exclusion}.\r\n\t * \r\n\t * @param from the lowest member of the set\r\n\t * @param to the highest member of the set\r\n\t * @param exclusion the member to exclude\r\n\t * @return an integer uniformly distributed in {from, ..., to} \\ {exclusion}\r\n\t */\r\n\tpublic static int nextUniformIntExcluded(int from, int to, int exclusion) {\r\n\t\tif ((exclusion < from) || (exclusion > to)) {\r\n\t\t\tthrow new IllegalArgumentException();\r\n\t\t}\r\n\t\tint randomInt = nextUniformInt(from, to - 1);\r\n\t\t// if randomInt >= exclude, increment it by 1\r\n\t\tif (randomInt >= exclusion) {\r\n\t\t\trandomInt++;\r\n\t\t}\r\n\t\treturn randomInt;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function returns an array of normally distributed\r\n\t * random numbers.\r\n\t * \r\n\t * @param length the length of the array to create\r\n\t * @param normalize whether to normalize the vector or not\r\n\t * @return an array containing normally distributed random numbers\r\n\t */\r\n\tpublic static double[] normalArray(int length, boolean normalize) {\r\n\t\tExceptionUtility.verifyPositive(length);\r\n\t\tdouble[] values = new double[length];\r\n\t\t\r\n\t\tdouble squareSum = 0;\r\n\t\t\r\n\t\tfor (int i = 0; i < length; i++) {\r\n\t\t\tvalues[i] = nextNormal();\r\n\t\t\tsquareSum += values[i] * values[i];\r\n\t\t}\r\n\t\t\r\n\t\tif (normalize) {\r\n\t\t\tdouble norm = Math.sqrt(squareSum);\r\n\t\t\t\r\n\t\t\tfor (int i = 0; i < length; i++) {\r\n\t\t\t\tvalues[i] = values[i] / norm;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn values;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns an array of uniformly distributed\r\n\t * random numbers.\r\n\t * \r\n\t * @param length the length of the array to create\r\n\t * @return an array containing uniformly distributed random numbers\r\n\t */\r\n\tpublic static double[] uniformArray(int length) {\r\n\t\tExceptionUtility.verifyPositive(length);\r\n\t\tdouble[] values = new double[length];\r\n\t\tfor (int i = 0; i < length; i++) {\r\n\t\t\tvalues[i] = nextUniform();\r\n\t\t}\r\n\t\treturn values;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns an array of normally distributed\r\n\t * random numbers.\r\n\t * \r\n\t * @param length the length of the array to create\r\n\t * @return an array containing normally distributed random numbers\r\n\t */\r\n\tpublic static double[] normalArray(int length) {\r\n\t\tExceptionUtility.verifyPositive(length);\r\n\t\tdouble[] values = new double[length];\r\n\t\tfor (int i = 0; i < length; i++) {\r\n\t\t\tvalues[i] = nextNormal();\r\n\t\t}\r\n\t\treturn values;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a matrix containing uniformly\r\n\t * distributed random numbers.\r\n\t * \r\n\t * @param rows the number of rows in the returned matrix\r\n\t * @param columns the number of columns in the returned matrix\r\n\t * @return a matrix containing uniformly distributed random numbers\r\n\t */\r\n\tpublic static double[][] uniformMatrix(int rows, int columns) {\r\n\t\tExceptionUtility.verifyPositive(rows);\r\n\t\tExceptionUtility.verifyPositive(columns);\r\n\t\tdouble[][] values = new double[rows][columns];\r\n\t\tfor (int i = 0; i < rows; i++) {\r\n\t\t\tfor (int j = 0; j < columns; j++) {\r\n\t\t\t\tvalues[i][j] = nextUniform();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn values;\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns a matrix containing normally\r\n\t * distributed random numbers.\r\n\t * \r\n\t * @param rows the number of rows in the returned matrix\r\n\t * @param columns the number of columns in the returned matrix\r\n\t * @return a matrix containing normally distributed random numbers\r\n\t */\r\n\tpublic static double[][] normalMatrix(int rows, int columns) {\r\n\t\tExceptionUtility.verifyPositive(rows);\r\n\t\tExceptionUtility.verifyPositive(columns);\r\n\t\tdouble[][] values = new double[rows][columns];\r\n\t\tfor (int i = 0; i < rows; i++) {\r\n\t\t\tfor (int j = 0; j < columns; j++) {\r\n\t\t\t\tvalues[i][j] = nextNormal();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn values;\r\n\t}\r\n\r\n\t/**\r\n\t * This function computes a random permutation of the\r\n\t * input array, and then applies the permutation. It\r\n\t * performs the permutation in-place.\r\n\t * \r\n\t * @param values the array of integers to permute\r\n\t */\r\n\tpublic static int[] permute(int[] values) {\r\n\t\tint n = values.length;\r\n\t\tint k, temp;\r\n\t\tint[] permutedValues = values;\r\n\t\twhile (n > 1) {\r\n\t\t\tn--;\r\n\t\t\tk = nextUniformInt(0, n);\r\n\t\t\ttemp = permutedValues[k];\r\n\t\t\tpermutedValues[k] = permutedValues[n];\r\n\t\t\tpermutedValues[n] = temp;\r\n\t\t}\r\n\t\treturn permutedValues;\r\n\t}\r\n\r\n\t/**\r\n\t * This function computes a random subset of size subsetSize from the\r\n\t * set {0, ..., selectionSetSize - 1}.\r\n\t * \r\n\t * @param subsetSize the size of the subset to return\r\n\t * @param selectionSetSize the size of the set to select from\r\n\t * @return a subset of size subsetSize from the set {0, ..., selectionSetSize - 1}\r\n\t */\r\n\tpublic static TIntHashSet randomSubset(int subsetSize, int selectionSetSize) {\t\r\n\t\tTIntHashSet result = new TIntHashSet();\r\n\t\t\r\n\t\tif (subsetSize >= selectionSetSize) {\r\n\t\t\tfor (int i = 0; i < selectionSetSize; i++) {\r\n\t\t\t\tresult.add(i);\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\t\t\r\n\t\tif (subsetSize > selectionSetSize / 2) {\r\n\t\t\tTIntHashSet negativeSet = randomSubset(selectionSetSize - subsetSize, selectionSetSize);\r\n\t\t\tfor (int i = 0; i < selectionSetSize; i++) {\r\n\t\t\t\tif (!negativeSet.contains(i)) {\r\n\t\t\t\t\tresult.add(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\twhile (result.size() < subsetSize) {\r\n\t\t\t\tint randomPosition = RandomUtility.nextUniformInt(0, selectionSetSize - 1);\r\n\t\t\t\tif (!result.contains(randomPosition)) {\r\n\t\t\t\t\tresult.add(randomPosition);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn result;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/visualization/AbstractVisualizer.java",
    "content": "package edu.stanford.math.plex4.visualization;\n\nimport java.io.File;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationConverter;\nimport edu.stanford.math.plex4.io.DoubleArrayReaderWriter;\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\n\n/**\n * Abstract class for visualizing a 3D point cloud and the persistent homology\n * classes corresponding to the Vietoris Rips filtration.\n * \n * Based on processing code by Michael Vedjemo-Johanson\n * \n * @author Jacobien Carstens\n * \n */\n@SuppressWarnings(\"serial\")\npublic abstract class AbstractVisualizer extends PAppletSplitscreen {\n\n\t/*\n\t * Global variables and initial setup\n\t */\n\n\tDoubleArrayReaderWriter doubleArrayReaderWriter = DoubleArrayReaderWriter.getInstance();\n\tString fileName;\n\tfloat[][] pointsViz;\n\tdouble[][] pointsComp;\n\tAbstractSearchableMetricSpace<double[]> metricSpace;\n\tVietorisRipsStream<double[]> stream;\n\tFiltrationConverter fc;\n\tfinal int scale3D = 100;\n\n\n\t@Override\n\tpublic void doSetup() {\n\t\tbackground(255);\n\t\timgWidth = width / 2;\n\t\tselectInput(\"Select a file to process:\", \"fileSelected\");\n\t}\n\n\tpublic void fileSelected(File selection) {\n\t\tif (selection != null) \n\t\t    fileName = selection.getAbsolutePath();\n\t\topenNewFile();\n\t}\n\t\n\tvoid openNewFile() {\n\t\ttry {\n\t\t\tpointsComp = doubleArrayReaderWriter.importFromFile(fileName);\n\t\t\tmetricSpace = new EuclideanMetricSpace(pointsComp);\n\t\t\tsetFiltrationParameters(metricSpace);\n\t\t\tpointsViz = PointCloudScaling.scaleCoordinates(pointsComp, scale3D);\n\t\t\tcomputeVietorisRipsHomology();\n\t\t\tloaded = true;\n\t\t} catch (final Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n\t/*\n\t * Draw persistence diagram or barcode\n\t */\n\n\t/**\n\t * Drawing parameters\n\t */\n\tfloat r = 2.0f;\n\tboolean fillTriangles = true;\n\tfinal int pointSize = 6;\n\tpublic static final String[][] colors = new String[][] { { \"#001133\", \"#003BEB\", \"#80A8FF\" }, { \"#420000\", \"#D81007\", \"#FF8082\" },\n\t\t\t{ \"#0A2F09\", \"#0AAE04\", \"#81E77E\" } };\n\tfinal int topMargin = 20, leftMargin = 60, rightMargin = 60, infinityMargin = 10;\n\tfinal float maxBarSpacing = 10;\n\tint imgWidth;\n\n\t/**\n\t * Overwrite, checks if intervals are computed\n\t * \n\t * @return true if intervals are available, false otherwise\n\t */\n\tabstract boolean hasIntervals();\n\n\t/**\n\t * Overwrite; return intervals at dimension\n\t * \n\t * @param dimension\n\t * @return list of intervals\n\t */\n\tabstract List<Interval<Double>> getIntervalsAtDim(int dimension);\n\n\t/**\n\t * Draw the 2D plot; i.e. barcodes or diagram\n\t */\n\t@Override\n\tpublic void doDraw2D() {\n\t\tsuper.doDraw2D();\n\t\tprintText();\n\t\tswitch (plottype) {\n\t\tcase BARCODE:\n\t\t\tif (hasIntervals()) {\n\t\t\t\tfinal List<Interval<Double>> ints = getIntervalsAtDim(dims.maxDimension);\n\t\t\t\t// Compute the canvas dimension\n\t\t\t\tfinal ImageRegion.Int barRegion = new ImageRegion.Int(height - leftMargin - rightMargin, imgWidth - leftMargin - topMargin, leftMargin,\n\t\t\t\t\t\ttopMargin);\n\t\t\t\t// Compute the bar size\n\t\t\t\tfinal int intCount = ints.size();\n\t\t\t\tfinal float spacing = Math.min(maxBarSpacing, ((float) barRegion.height) / ((float)(2 * intCount - 1)));\n\t\t\t\tfinal float barHeight = spacing;\n\t\t\t\t// Calculate the bar scale\n\t\t\t\tfinal float maxBarWidth = (float) maxFiltrationValue.doubleValue();\n\t\t\t\tfinal float barScale = (barRegion.width) / maxBarWidth;\n\t\t\t\t// Set the amount of overlap for infinite extents\n\t\t\t\tfinal int infExtentOverlap = 5;\n\t\t\t\t// Draw the bars\n\t\t\t\tnoStroke();\n\t\t\t\tdouble x0, x1;\n\t\t\t\tfor (int i = 0; i < ints.size(); i++) {\n\t\t\t\t\tx0 = barScale * ints.get(i).getStart();\n\t\t\t\t\tif (ints.get(i).isInfinite())\n\t\t\t\t\t\tx1 = barRegion.width + infExtentOverlap;\n\t\t\t\t\telse\n\t\t\t\t\t\tx1 = barScale * ints.get(i).getEnd();\n\t\t\t\t\tfill(0, 0, 255);\n\t\t\t\t\trect((float) (barRegion.xoffset + x0), barRegion.yoffset + spacing + (barHeight + spacing) * i, (float) (x1 - x0), barHeight);\n\t\t\t\t}\n\t\t\t\t// Draw the red vertical bar, indicating the filtration value\n\t\t\t\tfill(255, 0, 0);\n\t\t\t\trect((float) (barRegion.xoffset + barScale * filtrationValue), barRegion.yoffset, 2, barRegion.height);\n\t\t\t\tdrawDiagram(barRegion);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase DIAGRAM:\n\t\t\tif (hasIntervals()) {\n\t\t\t\t// Set the image properties\n\t\t\t\tfinal int plotWidth = width / 2 - leftMargin - rightMargin - infinityMargin;\n\t\t\t\tfinal int plotHeight = plotWidth + infinityMargin;\n\t\t\t\t// Compute the canvas dimension\n\t\t\t\tfinal ImageRegion.Int region = new ImageRegion.Int(plotHeight, plotWidth, leftMargin + infinityMargin / 2, topMargin);\n\t\t\t\t// draw axes\n\t\t\t\tstroke(0);\n\t\t\t\tline(region.xoffset, region.yoffset + region.height, region.xoffset, region.yoffset + infinityMargin);\n\t\t\t\tline(region.xoffset, region.yoffset + region.height, region.xoffset + region.width, region.yoffset + region.height);\n\t\t\t\t// draw infinity line\n\t\t\t\tstroke(220);\n\t\t\t\tline(region.xoffset, region.yoffset, region.xoffset + region.width, region.yoffset);\n\t\t\t\t// draw the box indicating the filtration value\n\t\t\t\tfinal float boxWidth = (float) (filtrationValue / maxFiltrationValue * region.width);\n\t\t\t\tfinal float boxHeight = (float) (region.width - filtrationValue / maxFiltrationValue * region.width);\n\t\t\t\tfill(120, 120, 120, 40);\n\t\t\t\tnoStroke();\n\t\t\t\trect(region.xoffset, region.yoffset + infinityMargin, boxWidth, boxHeight);\n\t\t\t\t// draw diagonal\n\t\t\t\tstroke(0, 100, 200);\n\t\t\t\tline(region.xoffset, region.yoffset + region.height, region.xoffset + region.width, region.yoffset + infinityMargin);\n\t\t\t\tnoStroke();\n\t\t\t\tdrawDiagram(region);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t/**\n\t * Overwrite to draw additional things in the persistence diagram\n\t * \n\t * @param region\n\t */\n\tabstract void drawDiagram(final ImageRegion.Int region);\n\n\t/*\n\t * Add text to applet\n\t */\n\n\tfinal int lineHeight = 12;\n\tfinal String font = \"sans serif\";\n\n\tvoid printText() {\n\t\tfinal int posX = width / 2 + leftMargin;\n\t\tfinal int posY = height - 6 * lineHeight;\n\t\ttextFont(createFont(font, lineHeight));\n\t\tfill(0);\n\t\ttext(\"Current filtration value: \" + Math.round(filtrationValue*1000)/1000d, leftMargin, posY);\n\t\ttext(fillTriangles ? \"Coloring triangles blue, press 'f' to switch off.\" : \"Not coloring triangles, press 'f' to switch on.\", leftMargin, posY\n\t\t\t\t+ lineHeight);\n\t\ttext(\"Max filtration value: \" + Math.round(maxFiltrationValue * 1000)/1000d + \". Use '+' and '-' to adjust.\", leftMargin, posY + 2 * lineHeight);\n\t\ttext(\"Press 'h' to recompute homology\", leftMargin, posY + 3 * lineHeight);\n\t\tif (plottype == PlotType.BARCODE)\n\t\t\ttext(\"Showing barcode for homology in dimension \" + dims.maxDimension + \".\", posX, posY);\n\t\telse\n\t\t\ttext(\"Showing persistence diagram in dimension\" + (dims.visibleDims.length > 1 ? \"s \" : \" \"), posX, posY);\n\t\ttext(\"Press '0'-'6' to change dimensions.\", posX, posY + lineHeight);\n\t\ttext(\"Use left and right arrow to increase filtration value.\", posX, posY + 2 * lineHeight);\n\t\ttext(\"Press 't' to switch plot type.\", posX, posY + 3 * lineHeight);\n\t\ttext(\"Press 'o' to open new coordinate file.\", posX, posY + 4 * lineHeight);\n\t\t\n\t\t\n\t}\n\n\t\n\t/*\n\t * Draw 3D point cloud\n\t */\n\n\t/**\n\t * Draws point cloud and the Vietoris Rips cpx up to current filtration\n\t * value\n\t */\n\t@Override\n\tpublic void doDraw3D() {\n\t\tbackground(255);\n\t\tnoStroke();\n\t\t\n\t\tif (stream != null)\n\t\t\tfor (final Simplex s : stream) {\n\t\t\t\tfinal double fv = fc.getFiltrationValue(stream.getFiltrationIndex(s));\n\t\t\t\tif (fv > filtrationValue)\n\t\t\t\t\tcontinue;\n\t\t\t\tint[] ix;\n\t\t\t\tix = s.getVertices();\n\n\t\t\t\tswitch (s.getDimension()) {\n\t\t\t\tcase 2:\n\t\t\t\t\tif (fillTriangles) {\n\t\t\t\t\t\tfill(0, 0, 255, 20);\n\t\t\t\t\t\tbeginShape();\n\t\t\t\t\t\tvertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]);\n\t\t\t\t\t\tvertex(pointsViz[ix[1]][0], pointsViz[ix[1]][1], pointsViz[ix[1]][2]);\n\t\t\t\t\t\tvertex(pointsViz[ix[2]][0], pointsViz[ix[2]][1], pointsViz[ix[2]][2]);\n\t\t\t\t\t\tvertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]);\n\t\t\t\t\t\tendShape();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tfill(0);\n\t\t\t\t\tstroke(0);\n\t\t\t\t\tstrokeWeight(1);\n\t\t\t\t\tbeginShape(LINES);\n\t\t\t\t\tvertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]);\n\t\t\t\t\tvertex(pointsViz[ix[1]][0], pointsViz[ix[1]][1], pointsViz[ix[1]][2]);\n\t\t\t\t\tendShape();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tnoStroke();\n\t\t\t\t\tfill(122);\n\t\t\t\t\tpushMatrix();\n\t\t\t\t\ttranslate(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]);\n\t\t\t\t\tsphere(r);\n\t\t\t\t\tpopMatrix();\n\t\t\t\t\tbreak;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\taddTo3Dplot();\n\t}\n\n\t/**\n\t * Overwrite to draw additional things in 3D plot\n\t */\n\tabstract void addTo3Dplot();\n\n\t/**\n\t * On keypress: Implement state changes and other effects as needed.\n\t * \n\t * Key mapping implemented is case insensitive: O open new file Q quit 0-6\n\t * (zero/one/two/zero and one/zero and two/one and two/zero and one and two)\n\t * dimensional plot T switch plot type F switch filling triangles on or off\n\t * + increase maxFiltrationValue by 5 - decrease maxFiltrationValue by 5 H\n\t * recompute homology LEFT/RIGHT step Vietoris-Rips complex back/forward\n\t */\n\n\t@Override\n\tpublic void keyPressed() {\n\t\tswitch (key) {\n\t\tcase 'o':\n\t\tcase 'O':\n\t\t\topenNewFile();\n\t\t\tbreak;\n\t\tcase 'q':\n\t\tcase 'Q':\n\t\t\texit();\n\t\t\tbreak;\n\t\tcase '0':\n\t\t\tsetCurrentDimension(Dimensions.ZERO);\n\t\t\tbreak;\n\t\tcase '1':\n\t\t\tsetCurrentDimension(Dimensions.ONE);\n\t\t\tbreak;\n\t\tcase '2':\n\t\t\tsetCurrentDimension(Dimensions.TWO);\n\t\t\tbreak;\n\t\tcase '3':\n\t\t\tsetCurrentDimension(Dimensions.ZEROandONE);\n\t\t\tbreak;\n\t\tcase '4':\n\t\t\tsetCurrentDimension(Dimensions.ZEROandTWO);\n\t\t\tbreak;\n\t\tcase '5':\n\t\t\tsetCurrentDimension(Dimensions.ONEandTWO);\n\t\t\tbreak;\n\t\tcase '6':\n\t\t\tsetCurrentDimension(Dimensions.ZEROandONEandTWO);\n\t\t\tbreak;\n\t\tcase 'f':\n\t\tcase 'F':\n\t\t\tswitchFillTriangles();\n\t\t\tbreak;\n\t\tcase '+':\n\t\t\tmaxFiltrationValue += incrementFiltrationValue;\n\t\t\tbreak;\n\t\tcase '-':\n\t\t\tmaxFiltrationValue -= incrementFiltrationValue;\n\t\t\tbreak;\n\t\tcase 'h':\n\t\tcase 'H':\n\t\t\tcomputeVietorisRipsHomology();\n\t\t\tbreak;\n\t\tcase 't':\n\t\tcase 'T':\n\t\t\tplottype = (plottype == PlotType.BARCODE) ? PlotType.DIAGRAM : PlotType.BARCODE;\n\t\t\tbreak;\n\t\tcase CODED:\n\t\t\tswitch (keyCode) {\n\t\t\tcase RIGHT:\n\t\t\t\tfiltrationValue += stepSize;\n\t\t\t\tprintln(filtrationValue + \": \" + stepSize);\n\t\t\t\tbreak;\n\t\t\tcase LEFT:\n\t\t\t\tfiltrationValue -= stepSize;\n\t\t\t\tprintln(filtrationValue + \": \" + stepSize);\n\t\t\t\tif (filtrationValue < 0)\n\t\t\t\t\tfiltrationValue = 0;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * State variables\n\t */\n\tDimensions dims = Dimensions.ONE;\n\tPlotType plottype = PlotType.DIAGRAM;\n\tdouble filtrationValue = 0;\n\tDouble stepSize = null;\n\tDouble maxFiltrationValue = null;\n\tDouble incrementFiltrationValue = null;\n\n\tvoid setFiltrationParameters(AbstractSearchableMetricSpace<double[]> metricSpace) {\n\t\tint n = pointsComp.length;\n\t\tdouble min[] = new double[n];\n\t\tmaxFiltrationValue = 0.0;\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tmin[i] = Double.MAX_VALUE;\n\t\t\tfor (int j = 0; j < n; j++) {\n\t\t\t\tif (i != j) {\n\t\t\t\t\tdouble d = metricSpace.distance(i, j);\n\t\t\t\t\tmin[i] = Math.min(min[i], d);\n\t\t\t\t}\n\t\t\t}\n\t\t\tmaxFiltrationValue = Math.max(maxFiltrationValue, min[i]);\n\t\t}\n\t\tincrementFiltrationValue = maxFiltrationValue / 10;\n\t\tstepSize = maxFiltrationValue / 20;\n\t}\n\n\tvoid switchFillTriangles() {\n\t\tfillTriangles = !fillTriangles;\n\t}\n\n\tvoid setCurrentDimension(final Dimensions dim) {\n\t\tdims = dim;\n\t\tcomputeVietorisRipsHomology();\n\t}\n\n\t/**\n\t * Overwrite to run the persistent homology computation, update the\n\t * intervals variable\n\t */\n\tabstract void computeVietorisRipsHomology();\n\n\tenum Dimensions {\n\t\tZERO(0, new int[] { 0 }, \"0(blue)\", \"0, colors correspond to generators.\"), \n\t\tONE(1, new int[] { 1 }, \"1(red)\", \"1, colors correspond to generators.\"), \n\t\tTWO(2, new int[] { 2 }, \"2(green)\", \"2, colors correspond to generators.\"), \n\t\tZEROandONE(1, new int[] { 0, 1 }, \"0(blue) and 1(red)\",\n\t\t\t\t\"0 and 1, colors correspond to generators, dimension are not distinguished.\"), \n\t\tZEROandTWO(2, new int[] { 0, 2 }, \"0(blue) and 2(green)\",\n\t\t\t\t\"0 and 2, colors correspond to generators, dimension are not distinguished.\"), \n\t\tONEandTWO(2, new int[] { 1, 2 }, \"1(red) and 2(green)\",\n\t\t\t\t\"1 and 2, colors correspond to generators, dimension are not distinguished.\"), ZEROandONEandTWO(2, new int[] { 0, 1, 2 },\n\t\t\t\t\"0(blue), 1(red) and 2(green)\", \"0, 1 and 2, colors correspond to generators, dimension are not distinguished.\");\n\n\t\tpublic final int maxDimension;\n\t\tpublic final int[] visibleDims;\n\n\t\tprivate Dimensions(final int maxDimension, final int[] visibleDims, final String explanationI, final String explanationII) {\n\t\t\tthis.maxDimension = maxDimension;\n\t\t\tthis.visibleDims = visibleDims;\n\t\t}\n\t}\n\n\tenum PlotType {\n\t\tBARCODE, DIAGRAM;\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/visualization/BarcodeVisualizer.java",
    "content": "package edu.stanford.math.plex4.visualization;\r\n\r\nimport java.awt.Color;\r\nimport java.awt.Font;\r\nimport java.awt.FontMetrics;\r\nimport java.awt.Graphics2D;\r\nimport java.awt.RenderingHints;\r\nimport java.awt.geom.Rectangle2D;\r\nimport java.awt.image.BufferedImage;\r\nimport java.io.IOException;\r\nimport java.util.Collections;\r\nimport java.util.HashMap;\r\nimport java.util.List;\r\nimport java.util.Map;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\r\n\r\n/**\r\n * This class contains functions for visualizing barcodes.\r\n * \r\n * @author Tim Harrington\r\n *\r\n */\r\npublic class BarcodeVisualizer {\r\n\r\n\tpublic static class BarAppearance {\r\n\t\tint spacing;\r\n\t\tint height;\r\n\r\n\t\t/**\r\n\t\t * @param spacing\r\n\t\t * @param height\r\n\t\t */\r\n\t\tpublic BarAppearance(int spacing, int height) {\r\n\t\t\tthis.spacing = spacing;\r\n\t\t\tthis.height = height;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static final int DEFAULT_WIDTH = 600;\r\n\r\n\tpublic static BufferedImage drawBarcode(List<Interval<Double>> intervals, String title, double endPoint) throws IOException {\r\n\t\tif (intervals == null) {\r\n\t\t\tthrow new IllegalArgumentException();\r\n\t\t}\r\n\t\t\r\n\t\tCollections.sort(intervals);\r\n\r\n\t\t// Set the image generation parameters\r\n\t\tint barHeight = 3;\r\n\t\tint barSpacing = 3;\r\n\t\tint imgWidth = DEFAULT_WIDTH;\r\n\t\tint topMargin = 25;\r\n\t\tint bottomMargin = 30;\r\n\t\tint leftMargin = 20;\r\n\t\tint rightMargin = 20;\r\n\t\tint titleMargin = 3; // ensure topMargin-2*titleMargin is enough room for title\r\n\r\n\t\t// Compute the bar region\r\n\t\tint barLayoutHeight = intervals.size() * (barHeight + barSpacing) + barSpacing;\r\n\t\tint barLayoutWidth = imgWidth - leftMargin - rightMargin;\r\n\t\tImageRegion.Int barRegion = new ImageRegion.Int(barLayoutHeight, barLayoutWidth, leftMargin, topMargin);\r\n\r\n\t\t// Compute the image height\r\n\t\tint imgHeight = topMargin + barRegion.height + bottomMargin;\r\n\r\n\t\t// Make the image stream\r\n\t\tBufferedImage im = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_3BYTE_BGR);\r\n\r\n\t\t// Set up the canvas to draw on\r\n\t\tGraphics2D graphics = createGraphics(im);\r\n\r\n\t\t// Calculate the bar scale\r\n\t\tdouble maxBarWidth = endPoint;\r\n\t\tdouble barScale = (barRegion.width) / maxBarWidth;\r\n\r\n\t\t// Draw the ticks\r\n\t\tdrawTicksInPlace(graphics, barRegion, bottomMargin, barScale);\r\n\r\n\t\t// Draw the title\r\n\t\tdrawTitleInPlace(graphics, title, imgWidth / 2, (int) (topMargin * (1d / 3d)), topMargin - 2 * titleMargin, imgWidth - 2 * titleMargin);\r\n\r\n\t\t// Draw the bars\r\n\t\tdrawBarsInPlace(graphics, intervals, barRegion, barHeight, barSpacing, barScale);\r\n\r\n\t\treturn im;\r\n\t}\r\n\r\n\tprotected static void drawTitleInPlace(Graphics2D graphics, String title, int center_x, int center_y, int maxHeight, int maxWidth) {\r\n\t\tgraphics.setColor(Color.BLACK);\r\n\t\tint fontSize = 15;\r\n\t\tFontMetrics fm;\r\n\t\tint stringHeight;\r\n\t\tint stringWidth;\r\n\t\twhile (true) {\r\n\t\t\tgraphics.setFont(new Font(\"sansserif\", Font.BOLD, fontSize));\r\n\t\t\tfm = graphics.getFontMetrics();\r\n\t\t\tstringHeight = fm.getHeight();\r\n\t\t\tstringWidth = fm.stringWidth(title);\r\n\t\t\tif (maxHeight < stringHeight || maxWidth < stringWidth) {\r\n\t\t\t\tfontSize -= 1;\r\n\t\t\t} else {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (fontSize == 0) {\r\n\t\t\t\tthrow new IllegalArgumentException(\"Cannot fit the title in the given image region.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tgraphics.drawString(title, center_x - (stringWidth / 2), center_y + (stringHeight / 2));\r\n\t}\r\n\r\n\t// Set up the image in memory\r\n\tprotected static Graphics2D createGraphics(BufferedImage im) {\r\n\t\tGraphics2D graphics = im.createGraphics();\r\n\t\tMap<RenderingHints.Key, Object> hints = new HashMap<RenderingHints.Key, Object>();\r\n\t\thints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);\r\n\t\tgraphics.addRenderingHints(hints);\r\n\t\tgraphics.setBackground(Color.WHITE);\r\n\t\tgraphics.clearRect(0, 0, im.getWidth(), im.getHeight());\r\n\t\treturn graphics;\r\n\t}\r\n\r\n\tprotected static void drawTicksInPlace(Graphics2D graphics, ImageRegion.Int region, int bottomMargin, double scale) {\r\n\r\n\t\tColor lastTickColor = new Color(0xff, 0x00, 0x00);\r\n\t\tColor majorTickColor = new Color(0x0f, 0x85, 0xff);\r\n\t\tColor minorTickColor = new Color(0xa9, 0xcc, 0xdf);\r\n\t\t// Color someColor = new Color(0x97, 0xd8, 0xff);\r\n\r\n\t\tint tickGap = 8;\r\n\t\tint majorTickEvery = 5;\r\n\t\tint bigOverlap = 10;\r\n\t\tint smallOverlap = 4;\r\n\r\n\t\t// estimate the number of ticks\r\n\t\tint howManyTicks = (int) Math.floor(((double) region.width) / ((double) tickGap));\r\n\r\n\t\t// adjust so that it is a multiple of majorTickEvery\r\n\t\thowManyTicks = howManyTicks - (howManyTicks % (2 * majorTickEvery));\r\n\t\tdouble tickWidth = ((double) region.width) / ((double) howManyTicks);\r\n\r\n\t\tgraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);\r\n\t\tgraphics.setFont(new Font(\"sansserif\", Font.PLAIN, 10));\r\n\t\tFontMetrics fm = graphics.getFontMetrics();\r\n\t\tint fontHeight = fm.getHeight();\r\n\r\n\t\tint x0, x1, y0, y1, labelWidth;\r\n\t\ty0 = region.yoffset;\r\n\t\tString tickLabel;\r\n\t\tdouble tick;\r\n\t\tfor (int i = 0; i <= howManyTicks; i++) {\r\n\r\n\t\t\t// all these casts are to minimize rounding error\r\n\t\t\tx0 = (int) (((i) * tickWidth) + region.xoffset);\r\n\t\t\tx1 = x0;\r\n\r\n\t\t\tif (i % majorTickEvery == 0) { // major tick\r\n\t\t\t\t// Prepare the tick label\r\n\t\t\t\ttick = ((i) * tickWidth) / scale;\r\n\t\t\t\ttickLabel = String.format(\"%4.4f\", tick);\r\n\t\t\t\tlabelWidth = fm.stringWidth(tickLabel);\r\n\r\n\t\t\t\tgraphics.setColor(majorTickColor);\r\n\t\t\t\tif (i % (2 * majorTickEvery) == 0) {\r\n\t\t\t\t\tif (i == howManyTicks) {\r\n\t\t\t\t\t\tgraphics.setColor(lastTickColor);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// long tick\r\n\t\t\t\t\ty1 = region.yoffset + region.height + bigOverlap;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// short tick\r\n\t\t\t\t\ty1 = region.yoffset + region.height + smallOverlap;\r\n\t\t\t\t}\r\n\t\t\t\tgraphics.drawString(tickLabel, x0 - (labelWidth) / 2, y1 + fontHeight - 2);\r\n\t\t\t} else { // minor tick\r\n\t\t\t\tgraphics.setColor(minorTickColor);\r\n\t\t\t\ty1 = region.yoffset + region.height;\r\n\t\t\t}\r\n\t\t\tgraphics.drawLine(x0, y0, x1, y1);\r\n\t\t}\r\n\r\n\t\t// Draw the top and bottom colors\r\n\t\tgraphics.setColor(majorTickColor);\r\n\t\tgraphics.drawLine(region.xoffset, region.yoffset, region.xoffset + region.width, region.yoffset);\r\n\t\tgraphics.drawLine(region.xoffset, region.yoffset + region.height, region.xoffset + region.width, region.yoffset + region.height);\r\n\t}\r\n\r\n\tprotected static void drawBarsInPlace(Graphics2D graphics, List<Interval<Double>> intervals, ImageRegion.Int region, int barHeight, int spacing, double scale) {\r\n\t\tgraphics.setColor(Color.BLACK);\r\n\r\n\t\t// Set the amount of overlap for infinite extents\r\n\t\tint infExtentOverlap = 5;\r\n\r\n\t\t// Draw the bars\r\n\t\tdouble x0, x1;\r\n\t\tRectangle2D.Double bar;\r\n\t\tfor (int i = 0; i < intervals.size(); i++) {\r\n\t\t\tx0 = scale * intervals.get(i).getStart();\r\n\t\t\tif (intervals.get(i).isInfinite()) {\r\n\t\t\t\tx1 = region.width + infExtentOverlap;\r\n\t\t\t} else {\r\n\t\t\t\tx1 = scale * intervals.get(i).getEnd();\r\n\t\t\t}\r\n\t\t\t// The constructor arguments are x-coord, y-coord, width, height\r\n\t\t\tbar = new Rectangle2D.Double(region.xoffset + x0, region.yoffset + spacing + (barHeight + spacing) * i, x1 - x0, barHeight);\r\n\t\t\tgraphics.fill(bar);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected static double getMaxBarWidth(List<Interval<Double>> intervals) {\r\n\t\t// Compute a multiplier to scale the barcodes to the image width\r\n\t\tdouble max_x = 0;\r\n\t\tfor (int j = 0; j < intervals.size(); j++) {\r\n\t\t\tif (intervals.get(j).isInfinite())\r\n\t\t\t\tcontinue;\r\n\t\t\tif (max_x < intervals.get(j).getEnd()) {\r\n\t\t\t\tmax_x = intervals.get(j).getEnd();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (max_x == 0) { // all intervals are 'infinite'\r\n\t\t\tmax_x = 1;\r\n\t\t}\r\n\t\t// Multiplier to scale the barcodes to fit the image width\r\n\t\treturn max_x;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/visualization/HomologyGeneratorVisualizer.java",
    "content": "package edu.stanford.math.plex4.visualization;\n\nimport java.awt.Color;\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.Iterator;\nimport java.util.LinkedList;\nimport java.util.List;\nimport java.util.Map;\n\nimport processing.core.PApplet;\nimport edu.stanford.math.plex4.api.Plex4;\nimport edu.stanford.math.plex4.autogen.homology.BooleanAbsoluteHomology;\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\n\n@SuppressWarnings(\"serial\")\npublic class HomologyGeneratorVisualizer extends AbstractVisualizer {\n\n\t// *************************************************************************************\n\t// ******************* GLOBAL VARIABLES FOR HOMOLOGY AND GENERATORS\n\t// *******************\n\t// *************************************************************************************\n\tprivate Map<Point2D, List<BooleanSparseFormalSum<Simplex>>> diagramToGenerators;\n\tprivate final List<List<BooleanSparseFormalSum<Simplex>>> visibleGenerators = new LinkedList<List<BooleanSparseFormalSum<Simplex>>>();\n\tprivate final List<Point2D> visibleGeneratorCoordinates = new LinkedList<Point2D>();\n\tprivate final String[] genColors = new String[] { \"#6A6BCD\", \"#9A0798\", \"#246B5F\", \"#EC305E\", \"#3CB43E\", \"#D16A33\", \"#71D0AF\", \"#BFA240\" };\n\tprivate AnnotatedBarcodeCollection<Double, BooleanSparseFormalSum<Simplex>> intervals = null;\n\n\tpublic static void main(final String[] args) {\n\t\tPApplet.main(new String[] { \"edu.stanford.math.plex4.visualization.HomologyGeneratorVisualizer\" });\n\t}\n\n\t@Override\n\tvoid computeVietorisRipsHomology() {\n\t\tfinal int numDivisions = 1000;\n\t\tstream = Plex4.createVietorisRipsStream(pointsComp, dims.maxDimension + 1, maxFiltrationValue, numDivisions);\n\t\tfc = stream.getConverter();\n\t\tBooleanAbsoluteHomology<Simplex> persistenceAlgorithm = new BooleanAbsoluteHomology<Simplex>(SimplexComparator.getInstance(), 0, dims.maxDimension + 1);\n\t\tintervals = persistenceAlgorithm.computeAnnotatedIntervals(stream);\n\t\tvisibleGenerators.clear();\n\t\tvisibleGeneratorCoordinates.clear();\n\t\tprintln(intervals);\n\t}\n\n\t@Override\n\tboolean hasIntervals() {\n\t\treturn (intervals != null);\n\t}\n\n\t@Override\n\tList<Interval<Double>> getIntervalsAtDim(int dimension) {\n\t\treturn (intervals.getIntervalsAtDimension(dimension));\n\t}\n\n\t@Override\n\tvoid drawDiagram(ImageRegion.Int region) {\n\t\tswitch (plottype) {\n\t\tcase BARCODE:\n\t\t\tbreak;\n\t\tcase DIAGRAM:\n\t\t\tfor (final int visibleDim : dims.visibleDims) {\n\t\t\t\tfinal List<ObjectObjectPair<Interval<Double>, BooleanSparseFormalSum<Simplex>>> intervalGeneratorPairs = intervals\n\t\t\t\t\t\t.getIntervalGeneratorPairsAtDimension(visibleDim);\n\t\t\t\tdiagramToGenerators = new HashMap<Point2D, List<BooleanSparseFormalSum<Simplex>>>();\n\t\t\t\tfor (final ObjectObjectPair<Interval<Double>, BooleanSparseFormalSum<Simplex>> intervalGeneratorPair : intervalGeneratorPairs) {\n\t\t\t\t\tfill(Color.decode(colors[visibleDim][1]).getRed(), Color.decode(colors[visibleDim][1]).getGreen(), Color.decode(colors[visibleDim][1])\n\t\t\t\t\t\t\t.getBlue());\n\t\t\t\t\tfinal Interval<Double> interval = intervalGeneratorPair.getFirst();\n\t\t\t\t\tif (interval.getStart() > filtrationValue)\n\t\t\t\t\t\tfill(Color.decode(colors[visibleDim][2]).getRed(), Color.decode(colors[visibleDim][2]).getGreen(), Color.decode(colors[visibleDim][2])\n\t\t\t\t\t\t\t\t.getBlue());\n\t\t\t\t\tfinal double xpos = interval.getStart() / maxFiltrationValue;\n\t\t\t\t\tfinal int x = region.xoffset + (int) (xpos * region.width);\n\t\t\t\t\tint y;\n\t\t\t\t\tif (interval.isRightInfinite())\n\t\t\t\t\t\ty = region.yoffset;\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interval.getEnd() < filtrationValue)\n\t\t\t\t\t\t\tfill(Color.decode(colors[visibleDim][0]).getRed(), Color.decode(colors[visibleDim][0]).getGreen(),\n\t\t\t\t\t\t\t\t\tColor.decode(colors[visibleDim][0]).getBlue());\n\t\t\t\t\t\tfinal double ypos = interval.getEnd() / maxFiltrationValue;\n\t\t\t\t\t\ty = region.yoffset + region.height - (int) (region.width * ypos);\n\t\t\t\t\t}\n\n\t\t\t\t\tellipse(x, y, pointSize, pointSize);\n\t\t\t\t\tfinal Point2D coordinates = new Point2D(x, y);\n\t\t\t\t\tfinal BooleanSparseFormalSum<Simplex> generator = intervalGeneratorPair.getSecond();\n\t\t\t\t\tList<BooleanSparseFormalSum<Simplex>> list = diagramToGenerators.get(coordinates);\n\t\t\t\t\tif (list == null)\n\t\t\t\t\t\tlist = new ArrayList<BooleanSparseFormalSum<Simplex>>();\n\t\t\t\t\tlist.add(generator);\n\t\t\t\t\tdiagramToGenerators.put(coordinates, list);\n\t\t\t\t}\n\t\t\t}\n\t\t\tint i = 0;\n\t\t\tfor (final Point2D point : visibleGeneratorCoordinates) {\n\t\t\t\tfinal Color c = Color.decode(genColors[i]);\n\t\t\t\tfill(c.getRed(), c.getGreen(), c.getBlue());\n\t\t\t\tellipse(point.x, point.y, pointSize + 2, pointSize + 2);\n\t\t\t\ti = i + 1 % 7;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tprotected void drawBarsInPlace(final List<Interval<Double>> ints, final ImageRegion.Int region, final float barHeight, final float spacing,\n\t\t\tfinal double scale) {\n\n\t}\n\n\t@Override\n\tvoid addTo3Dplot() {\n\t\tif (visibleGenerators.size() > 0) {\n\t\t\tint i = 0;\n\t\t\tfor (final List<BooleanSparseFormalSum<Simplex>> generators : visibleGenerators) {\n\t\t\t\tfor (BooleanSparseFormalSum<Simplex> generator : generators)\n\t\t\t\t\thighlightGenerator(generator, Color.decode(genColors[i]));\n\t\t\t\ti = ((i + 1) % 8);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic void highlightGenerator(final BooleanSparseFormalSum<Simplex> generator, final Color c) {\n\t\tfill(c.getRed(), c.getGreen(), c.getBlue());\n\t\tstroke(c.getRed(), c.getGreen(), c.getBlue());\n\t\tfinal Iterator<Simplex> iterator = generator.iterator();\n\t\twhile (iterator.hasNext()) {\n\t\t\tfinal Simplex simplex = iterator.next();\n\t\t\tfinal int ix[] = simplex.getVertices();\n\t\t\tswitch (simplex.getDimension()) {\n\t\t\tcase 0:\n\t\t\t\tpushMatrix();\n\t\t\t\ttranslate(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]);\n\t\t\t\tsphere(r);\n\t\t\t\tpopMatrix();\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tbeginShape();\n\t\t\t\tvertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]);\n\t\t\t\tvertex(pointsViz[ix[1]][0], pointsViz[ix[1]][1], pointsViz[ix[1]][2]);\n\t\t\t\tendShape();\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tif (fillTriangles) {\n\t\t\t\t\tbeginShape();\n\t\t\t\t\tvertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]);\n\t\t\t\t\tvertex(pointsViz[ix[1]][0], pointsViz[ix[1]][1], pointsViz[ix[1]][2]);\n\t\t\t\t\tvertex(pointsViz[ix[2]][0], pointsViz[ix[2]][1], pointsViz[ix[2]][2]);\n\t\t\t\t\tvertex(pointsViz[ix[0]][0], pointsViz[ix[0]][1], pointsViz[ix[0]][2]);\n\t\t\t\t\tendShape();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t@Override\n\tpublic void mousePressed() {\n\t\tsuper.mousePressed();\n\t\tif (mouseX > width / 2) {\n\t\t\tfinal int mouseXinDiagram = mouseX - width / 2;\n\t\t\tfor (final Point2D point : diagramToGenerators.keySet()) {\n\t\t\t\tif (Math.abs(mouseXinDiagram - point.x) < pointSize && Math.abs(mouseY - point.y) < pointSize) {\n\t\t\t\t\tfinal List<BooleanSparseFormalSum<Simplex>> generators = diagramToGenerators.get(point);\n\t\t\t\t\tif (visibleGeneratorCoordinates.contains(point)) {\n\t\t\t\t\t\tvisibleGenerators.remove(generators);\n\t\t\t\t\t\tvisibleGeneratorCoordinates.remove(point);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvisibleGenerators.add(generators);\n\t\t\t\t\t\tvisibleGeneratorCoordinates.add(point);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tSystem.out.println(\"X-coordinate: \" + (mouseX - width / 2) + \" and Y-coordinate: \" + mouseY);\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/visualization/HomologyVisualizer.java",
    "content": "package edu.stanford.math.plex4.visualization;\n\nimport java.awt.Color;\nimport java.util.List;\n\nimport processing.core.PApplet;\nimport edu.stanford.math.plex4.api.Plex4;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\n\n@SuppressWarnings(\"serial\")\npublic class HomologyVisualizer extends AbstractVisualizer {\n\n\tpublic static void main(final String[] args) {\n\t\tPApplet.main(new String[] { \"edu.stanford.math.plex4.visualization.HomologyVisualizer\" });\n\t}\n\n\tprivate BarcodeCollection<Double> intervals = null;\n\n\t@Override\n\tvoid computeVietorisRipsHomology() {\n\t\tfinal int numDivisions = 1000;\n\t\tstream = new VietorisRipsStream<double[]>(metricSpace, maxFiltrationValue, dims.maxDimension + 1, numDivisions);\n\t\tstream.finalizeStream();\n\t\tstream = Plex4.createVietorisRipsStream(pointsComp, dims.maxDimension + 1, maxFiltrationValue, numDivisions);\n\t\tfc = stream.getConverter();\n\t\tAbstractPersistenceAlgorithm<Simplex> persistenceAlgorithm = Plex4.getDefaultSimplicialAlgorithm(dims.maxDimension + 1);\n\t\tintervals = persistenceAlgorithm.computeIntervals(stream);\n\t\tprintln(intervals);\n\t}\n\n\t@Override\n\tboolean hasIntervals() {\n\t\treturn (intervals != null);\n\t}\n\n\t@Override\n\tList<Interval<Double>> getIntervalsAtDim(int dimension) {\n\t\treturn intervals.getIntervalsAtDimension(dimension);\n\t}\n\n\t@Override\n\tvoid drawDiagram(final ImageRegion.Int region) {\n\t\tswitch (plottype) {\n\t\tcase BARCODE:\n\t\t\tbreak;\n\t\tcase DIAGRAM:\n\t\t\tfor (final int visibleDim : dims.visibleDims) {\n\t\t\t\tfinal List<Interval<Double>> ints = intervals.getIntervalsAtDimension(visibleDim);\n\t\t\t\tfor (final Interval<Double> interval : ints) {\n\t\t\t\t\tfill(Color.decode(colors[visibleDim][1]).getRed(), Color.decode(colors[visibleDim][1]).getGreen(), Color.decode(colors[visibleDim][1])\n\t\t\t\t\t\t\t.getBlue());\n\t\t\t\t\tif (interval.getStart() > filtrationValue)\n\t\t\t\t\t\tfill(Color.decode(colors[visibleDim][2]).getRed(), Color.decode(colors[visibleDim][2]).getGreen(), Color.decode(colors[visibleDim][2])\n\t\t\t\t\t\t\t\t.getBlue());\n\t\t\t\t\tfinal double xpos = interval.getStart() / maxFiltrationValue;\n\t\t\t\t\tfinal int x = region.xoffset + (int) (xpos * region.width);\n\t\t\t\t\tint y;\n\t\t\t\t\tif (interval.isRightInfinite())\n\t\t\t\t\t\ty = region.yoffset;\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interval.getEnd() < filtrationValue)\n\t\t\t\t\t\t\tfill(Color.decode(colors[visibleDim][0]).getRed(), Color.decode(colors[visibleDim][0]).getGreen(),\n\t\t\t\t\t\t\t\t\tColor.decode(colors[visibleDim][0]).getBlue());\n\t\t\t\t\t\tfinal double ypos = interval.getEnd() / maxFiltrationValue;\n\t\t\t\t\t\ty = region.yoffset + region.height - (int) (region.width * ypos);\n\t\t\t\t\t}\n\t\t\t\t\tellipse(x, y, pointSize, pointSize);\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t};\n\n\t@Override\n\tvoid addTo3Dplot() {\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/visualization/ImageRegion.java",
    "content": "/**\r\n * \r\n */\r\npackage edu.stanford.math.plex4.visualization;\r\n\r\n/**\r\n * @author Tim Harrington\r\n * \r\n */\r\npublic class ImageRegion {\r\n\t\r\n\tpublic static class Int {\r\n\t\tint height;\r\n\t\tint width;\r\n\t\tint xoffset; // the upper-left x value\r\n\t\tint yoffset; // the upper-right y value\r\n\t\r\n\t\t/**\r\n\t\t * @param height\r\n\t\t * @param width\r\n\t\t * @param xoffset\r\n\t\t * @param yoffset\r\n\t\t */\r\n\t\tpublic Int(int height, int width, int xoffset, int yoffset) {\r\n\t\t\tthis.height = height;\r\n\t\t\tthis.width = width;\r\n\t\t\tthis.xoffset = xoffset;\r\n\t\t\tthis.yoffset = yoffset;\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic static class Double {\r\n\t\tdouble height;\r\n\t\tdouble width;\r\n\t\tdouble xoffset; // the upper-left x value\r\n\t\tdouble yoffset; // the upper-right y value\r\n\r\n\t\t/**\r\n\t\t * @param height\r\n\t\t * @param width\r\n\t\t * @param xoffset\r\n\t\t * @param yoffset\r\n\t\t */\r\n\t\tpublic Double(double height, double width, double xoffset,\r\n\t\t\t\tdouble yoffset) {\r\n\t\t\tthis.height = height;\r\n\t\t\tthis.width = width;\r\n\t\t\tthis.xoffset = xoffset;\r\n\t\t\tthis.yoffset = yoffset;\r\n\t\t}\r\n\t}\r\n}"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/visualization/PAppletSplitscreen.java",
    "content": "package edu.stanford.math.plex4.visualization;\n\nimport java.awt.event.MouseWheelEvent;\nimport java.awt.event.MouseWheelListener;\n\nimport processing.core.PApplet;\nimport processing.event.MouseEvent;\n\n@SuppressWarnings(\"serial\")\npublic class PAppletSplitscreen extends PApplet {\n\n\t/**\n\t * Global variables to enable rotation and zoom of 3D image\n\t */\n\tfloat rotX = 0.0f, rotY = 0.0f;\n\tfloat distX = 0.0f, distY = 0.0f;\n\tint lastX, lastY;\n\tfloat zoomZ = 0.0f;\n\tfloat zoomX = 0.0f;\n\tboolean loaded = false;\n\n\t/**\n\t * Overwrite this method to setup additional variables\n\t */\n\tpublic void doSetup() {\n\t}\n\n\t@Override\n\tfinal public void settings(){\n\t\tsize(1000, 500, P3D);\n\t}\n\t\n\t\n\t@Override\n\tfinal public void setup() {\n\t\tdoSetup();\n\t}\n\n\tpublic void mouseWheel(final MouseEvent mwe) {\n\t\tmouseWheel(mwe.getCount());\n\t}\n\t\n\t/**\n\t * Overwrite this method to draw 2D objects in your sketch.\n\t */\n\tpublic void doDraw2D() {\n\t}\n\n\t/**\n\t * Overwrite this method to draw 3D objects in your sketch.\n\t */\n\tpublic void doDraw3D() {\n\t}\n\n\t@Override\n\tfinal public void draw() {\n\t\tif(loaded){\n\t\ttranslate(2 * width / 7 + zoomX, height / 2 , zoomZ);\n\t\trotateX(rotX + distY);\n\t\trotateY(rotY + distX);\n\t\tlights();\n\t\tdoDraw3D();\n\t\thint(DISABLE_DEPTH_TEST);\n\t\tcamera();\n\t\tfill(255, 0, 0);\n\t\ttranslate(width / 2, 0, 0);\n\t\tdoDraw2D();\n\t\thint(ENABLE_DEPTH_TEST);\n\t\t}\n\t}\n\n\t/**\n\t * Reset the view angle and\n\t */\n\tprotected void resetView() {\n\t\trotX = 0.0f;\n\t\trotY = 0.0f;\n\t\tdistX = 0.0f;\n\t\tdistY = 0.0f;\n\t}\n\n\t/**\n\t * Wheel mouse taken from http://wiki.processing.org/index.php/Wheel_mouse\n\t * Zoom in/out using mouse wheel\n\t * \n\t * @author Rick Companje\n\t */\n\tvoid mouseWheel(final int delta) {\n\t\tif (mouseX <= width / 2){\n\t\t\tzoomZ += delta * -15;\n\t\t\tzoomX += delta * -10;\n\t\t}\n\t}\n\n\t/**\n\t * Rotate 3D image when mouse is dragged\n\t */\n\t@Override\n\tpublic void mousePressed() {\n\t\tif (mouseX <= width / 2) {\n\t\t\tlastX = mouseX;\n\t\t\tlastY = mouseY;\n\t\t}\n\t}\n\n\t@Override\n\tpublic void mouseDragged() {\n\t\tdistX = radians(mouseX - lastX);\n\t\tdistY = radians(lastY - mouseY);\n\t}\n\n\t@Override\n\tpublic void mouseReleased() {\n\t\trotX += distY;\n\t\trotY += distX;\n\t\tdistX = distY = 0.0f;\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/visualization/Point2D.java",
    "content": "package edu.stanford.math.plex4.visualization;\n\npublic class Point2D {\n\n\tfinal public float x;\n\tfinal public float y;\n\n\tpublic Point2D(float x, float y) {\n\n\t\tsuper();\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\n\t@Override\n\tpublic int hashCode() {\n\t\tfinal int prime = 31;\n\t\tint result = 1;\n\t\tresult = prime * result + Float.floatToIntBits(x);\n\t\tresult = prime * result + Float.floatToIntBits(y);\n\t\treturn result;\n\t}\n\n\t@Override\n\tpublic boolean equals(Object obj) {\n\t\tif (this == obj)\n\t\t\treturn true;\n\t\tif (obj == null)\n\t\t\treturn false;\n\t\tif (getClass() != obj.getClass())\n\t\t\treturn false;\n\t\tPoint2D other = (Point2D) obj;\n\t\tif (Float.floatToIntBits(x) != Float.floatToIntBits(other.x))\n\t\t\treturn false;\n\t\tif (Float.floatToIntBits(y) != Float.floatToIntBits(other.y))\n\t\t\treturn false;\n\t\treturn true;\n\t}\n\n}\n"
  },
  {
    "path": "src/java/edu/stanford/math/plex4/visualization/PointCloudScaling.java",
    "content": "package edu.stanford.math.plex4.visualization;\n\npublic class PointCloudScaling {\n\n\t/**\n\t * \n\t * Returns a scaled version of the point cloud. Scales the coordinates by\n\t * computing overall minimum and maximum and scaling uniformly in all\n\t * directions such that all coordinates fit in a box of dimensions: [-scale,\n\t * scale] x ... x [-scale, scale]\n\t * \n\t * @param points\n\t * @param scale\n\t * @return\n\t */\n\tpublic static float[][] scaleCoordinates(final double[][] points, final float scale) {\n\t\tint dim = points[0].length;\n\t\tfinal float[][] coordinates = new float[points.length][dim];\n\t\tdouble min = Double.MAX_VALUE;\n\t\tdouble max = 0;\n\n\t\tfor (final double[] point : points)\n\t\t\tfor (int i = 0; i < dim; i++) {\n\t\t\t\tmin = Math.min(min, point[i]);\n\t\t\t\tmax = Math.max(max, point[i]);\n\t\t\t}\n\n\t\tfor (int i = 0; i < points.length; i++) {\n\t\t\tfor (int j = 0; j < points[0].length; j++)\n\t\t\t\tcoordinates[i][j] = translateAndScale(points[i][j], min, max, scale);\n\t\t}\n\t\treturn (coordinates);\n\t}\n\n\tpublic static float translateAndScale(double x, double a, double b, float scale) {\n\t\tdouble xTranslated = scale * (2 * x - a - b) / (b - a);\n\t\treturn (float) xTranslated;\n\t}\n\n}\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/ad_health_example.m",
    "content": "clc; clear; close all;\n\n%%\nedges = get_adhealth_edges47();\n\nquery_graph = create_graph_from_edgelist(edges);\n\nnum_vertices = query_graph.getNumVertices();\nnum_edges = size(edges, 1) / 2;\nestimated_p = 2 * num_edges / (num_vertices * (num_vertices - 1))\n\n%plot_graph(graph)\n\n%%\n\nn = query_graph.getNumVertices();\n%n = 1000;\n\nlambda = 0.05;\nK = 10;\nc_min = 1;\nc_max = 4;\n\n\nC = c_max - c_min + 1;\n\ngenerators = cell(C, 1);\n\nfor i = 1:C\n    c = i + c_min - 1;\n    m = num_vertices / c;\n    \n    p = num_edges / (0.5 * m * (m-1) * c + 0.5 * lambda * m * m * c * (c - 1));\n    q = p * lambda;\n    \n    p = p * 1;\n    q = q * 1;\n    \n    P = diag((p - q) * ones(1, c)) + q * ones(c, c);\n    generators{i} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P);\nend\n\nquery_graphs = cell(1, 1);\nquery_graphs{1} = query_graph;\n\n%query_graphs{1} = generators{1}.generate();\n%query_graphs{2} = generators{1}.generate();\n\ndistances = comparative_graph_analysis(generators, query_graphs, K)\n\n%%\n\naveraged_distances = average_block_matrix(distances, size(generators, 1), size(query_graphs, 1));\n\nlabel = sprintf('adhealth_47_%d_%d', c_min, c_max);\nquery_labels = cell(1, 1);\nquery_labels{1} = 'adhealth_47';\nvisualize_comparison_distances(averaged_distances, generators, query_labels, label);"
  },
  {
    "path": "src/matlab/experimental/graph_classification/ad_health_plot.m",
    "content": "clc; clear; close all;\n\n%%\nedges = get_adhealth_edges47();\n\nquery_graph = create_graph_from_edgelist(edges);\n\n\noptions.filename = 'ad_health_graph_47.pov';\nplot_graph(query_graph, options);\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/average_block_matrix.m",
    "content": "function matrix = average_block_matrix(A, I, J)\n    m = size(A, 1);\n    n = size(A, 2);\n    block_size_1 = m / I;\n    block_size_2 = n / J;\n    \n    matrix = zeros(I, J);\n    \n    for i = 1:I\n        for j = 1:J\n            sum = 0;\n            for s = 1:block_size_1\n                for t = 1:block_size_2\n                    sum = sum + A((i-1) * block_size_1 + s, (j-1) * block_size_2 + t);\n                end\n            end\n            matrix(i, j) = sum / (block_size_1 * block_size_2);\n        end\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/blockmodel_er_test.m",
    "content": "clc; clear; close all;\n\nn = 64;\nK = 2;\n\np = 0.6;\nq = 0.1;\n\nP = [p, q; q, p];\n\nQ = [0.8, 0.4; 0.4, 0.8];\n\ngenerators = cell(3, 1);\n\ngenerators{1} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, p);\ngenerators{2} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P);\ngenerators{3} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, Q);\n\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('blockmodel_%d_%d_%d', size(generators, 1), n, K);\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);"
  },
  {
    "path": "src/matlab/experimental/graph_classification/blockmodel_test.m",
    "content": "clc; clear; close all;\n\n%%\nn = 64;\nK = 4;\n\np_max = 0.6;\np_min = 0.1;\n\n\nprobabilities = linspace(p_min, p_max, 11);\n\nl = length(probabilities);\ngenerators = cell(l, 1);\n\nfor i = 1:l\n    p = p_max;\n    q = probabilities(i);\n    P = [p, q; q, p];\n    generators{i} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P);\nend\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('blockmodels_%d_%d_%d', size(generators, 1), n, K);\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);"
  },
  {
    "path": "src/matlab/experimental/graph_classification/blockmodel_test2.m",
    "content": "clc; clear; close all;\n\n%%\nn = 1000;\np = 0.2;\nq = 0.01;\nK = 10;\nc_min = 1;\nc_max = 4;\n\n\nC = c_max - c_min + 1;\n\ngenerators = cell(C, 1);\n\nfor i = 1:C\n    c = i + c_min - 1;\n    P = diag((p - q) * ones(1, c)) + q * ones(c, c);\n    generators{i} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P);\nend\n\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('blockmodels2_%d_%d_%d_%d', c_min, c_max, n, K);\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/comparative_barcode_analysis.m",
    "content": "function bottleneck_distances = comparative_barcode_analysis(distance_matrices1, distance_matrices2, max_metric_size)\n\n    K1 = size(distance_matrices1, 1);\n    K2 = size(distance_matrices2, 1);\n    \n    interval_collections1 = cell(K1, 1);\n    interval_collections2 = cell(K2, 1);\n    \n    for k = 1:(K1 + K2)\n        if (k <= K1)\n            mds_distances = distance_matrices1{k};\n        else\n            mds_distances = distance_matrices2{k - K1};\n        end\n            \n        m_space = edu.stanford.math.plex4.metric.impl.ExplicitMetricSpace(mds_distances);\n        \n        if (max_metric_size < m_space.size())\n            m_space = edu.stanford.math.plex4.metric.landmark.MaxMinLandmarkSelector(m_space, max_metric_size);\n        end\n        \n        max_dimension = 0;\n        max_filtration_value = 4;\n\n        stream = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(m_space, max_dimension+1, max_filtration_value, 1000);\n        stream.finalizeStream();\n\n        persistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(max_dimension+1);\n        filtration_value_intervals = persistence.computeIntervals(stream);\n        dim_0_intervals = filtration_value_intervals.getIntervalsAtDimension(0);\n        dim_0_intervals = edu.stanford.math.plex4.bottleneck.BottleneckDistance.truncate(dim_0_intervals, 0, max_filtration_value);\n        \n        if (k <= K1)\n            interval_collections1{k} = dim_0_intervals;\n        else\n            interval_collections2{k - K1} = dim_0_intervals;\n        end\n        \n    end\n    \n    bottleneck_distances = zeros(K1 * K2, 1);\n    \n    parfor m = 0:(K1 * K2 - 1)\n        k1 = floor(m / K2) + 1;\n        k2 = mod(m, K2) + 1;\n        \n        bottleneck_distances(m + 1) = edu.stanford.math.plex4.bottleneck.BottleneckDistance.computeBottleneckDistance(interval_collections1{k1}, interval_collections2{k2});\n        display(sprintf('pairwise_barcode_analysis: d(%d, %d) = %f', k1, k2, bottleneck_distances(m + 1)));\n    end\n    \n    bottleneck_distances = reshape(bottleneck_distances, K2, K1)';\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/comparative_graph_analysis.m",
    "content": "function [bottleneck_distances] = comparative_graph_analysis(generators, query_graphs, K)\n    \n    matlabpool\n    pctRunOnAll javaaddpath('../../for_distribution/lib/javaplex.jar');\n\n    G = size(generators, 1);\n    distance_matrices1 = cell(K * G, 1);\n\n    parfor m = 0:(K*G - 1)\n        g = floor(m / K) + 1;\n        k = mod(m, K) + 1;\n        graph = generators{g}.generate();\n        distances = edu.stanford.math.plex4.graph.utility.GraphUtility.computeShortestPaths(graph);\n        distances = filter_distance_matrix(distances);\n        [Y] = cmdscale(distances);\n\n        mds_distances = pairwise_row_distances(Y);\n        mds_distances = mds_distances / max(max(mds_distances));\n\n        distance_matrices1{m + 1} = mds_distances;\n    end\n    \n    K2 = size(query_graphs, 1);\n    distance_matrices2 = cell(K2, 1);\n    \n    parfor m = 1:K2\n        distances = edu.stanford.math.plex4.graph.utility.GraphUtility.computeShortestPaths(query_graphs{m});\n        [Y] = cmdscale(distances);\n\n        mds_distances = pairwise_row_distances(Y);\n        mds_distances = mds_distances / max(max(mds_distances));\n\n        query_graph_distances = mds_distances;\n        distance_matrices2{m} = query_graph_distances;\n    end\n    \n\n    bottleneck_distances = comparative_barcode_analysis(distance_matrices1, distance_matrices2, 50);\n\n    matlabpool close\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/comprehensive_test.m",
    "content": "clc; clear; close all;\n\nn = 64;\nm = 2;\nK = 2;\nk = 4;\n\nP = [0.6, 0.1; 0.1, 0.6];\nQ = [0.3, 0.04; 0.04, 0.3];\n\ngenerators = cell(7, 1);\n\ngenerators{1} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.10);\ngenerators{2} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P);\ngenerators{3} = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, Q);\ngenerators{4} = edu.stanford.math.plex4.graph.random.BAGraph(n, m);\ngenerators{5} = edu.stanford.math.plex4.graph.random.ForestFireGraph(n, 0.3, 0.5);\ngenerators{6} = edu.stanford.math.plex4.graph.random.KNearestNeighborsGraph(n, 3, k);\ngenerators{7} = edu.stanford.math.plex4.graph.random.TorusGraph(n, 2, k);\n\n%generators{3} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 1, 0.02);\n%generators{5} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 2, 0.02);\n%generators{6} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 3, 0.02);\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('all_%d_%d_%d', size(generators, 1), n, K);\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);"
  },
  {
    "path": "src/matlab/experimental/graph_classification/compute_adjacency_matrix.m",
    "content": "function adjacency_matrix = compute_adjacency_matrix(graph)\n    n = graph.getNumVertices();\n    adjacency_matrix = zeros(n, n);\n\n    for i = 1:n\n        for j = (i+1):n\n            if (graph.containsEdge(i-1, j-1))\n                adjacency_matrix(i, j) = 1;\n                adjacency_matrix(j, i) = 1;\n            end\n        end\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/compute_normalized_laplacian.m",
    "content": "function normalized_laplacian = compute_normalized_laplacian(laplacian)\n    n = size(laplacian, 1);\n    normalized_laplacian = zeros(n, n);\n    \n    for i = 1:n\n        d_i = laplacian(i, i);\n        if (laplacian(i, i) ~= 0)\n            normalized_laplacian(i, i) = 1;\n        end\n        for j = (i+1):n\n            if (laplacian(i, j) ~= 0)\n                normalized_laplacian(i, j) = laplacian(i, j) / (sqrt(laplacian(i, i)) * sqrt(laplacian(j, j)));  \n                normalized_laplacian(j, i) = normalized_laplacian(i, j);\n            end\n        end\n    end\n    \nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/create_graph_from_edgelist.m",
    "content": "function [graph] = create_graph_from_edgelist(edges)\n    min_index = min(min(edges));\n    max_index = max(max(edges));\n    \n    offset = -min_index;\n    range = max_index - min_index + 1;\n    \n    graph = edu.stanford.math.plex4.graph.UndirectedListGraph(range);\n    \n    for k = 1:size(edges, 1)\n        i = edges(k, 1) + offset;\n        j = edges(k, 2) + offset;\n        graph.addEdge(i, j);\n    end\n    \nend\n\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/er_test.m",
    "content": "clc; clear; close all;\n\n%%\nn = 64;\nK = 4;\n\nprobabilities = linspace(0.1, 0.80, 3);\n\nl = length(probabilities);\ngenerators = cell(l, 1);\n\nfor i = 1:l\n    generators{i} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, probabilities(i));\nend\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('erdos_renyi_%d_%d_%d', size(generators, 1), n, K);\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/er_test_increasing_sizes.m",
    "content": "clc; clear; close all;\n\n%%\nK = 2;\n\nsizes = 20:10:90;\n\n%probabilities = 5.0 ./ sizes;\nprobabilities = 0.1 * ones(length(sizes), 1);\n\nl = length(probabilities);\ngenerators = cell(l, 1);\n\nfor i = 1:l\n    generators{i} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(sizes(i), probabilities(i));\nend\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('erdos_renyi_increasing_%d_%d_%d_%d', size(generators, 1), K, min(sizes), max(sizes));\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/filter_distance_matrix.m",
    "content": "function distances = filter_distance_matrix(distances)\n    threshold = 1e10;\n    [r, c] = find(distances>threshold);\n    for i = 1:length(r)\n        distances(r(i), c(i)) = 0;\n    end\n    \n    max_value = max(max(distances));\n    \n    for i = 1:length(r)\n        distances(r(i), c(i)) = 0 * max_value;\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/get_adhealth_edges16.m",
    "content": "function edges = get_adhealth_edges16()\nedges = [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];\nend\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/get_adhealth_edges44.m",
    "content": "function edges = get_adhealth_edges44()\nedges = [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];\nend\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/get_adhealth_edges47.m",
    "content": "function edges = get_adhealth_edges47()\nedges = [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];\nend\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/heatmap.m",
    "content": "function [hImage, hText] = heatmap(mat, xlab, ylab, textmat, varargin)\r\n% HEATMAP displays a matrix as a heatmap image\r\n%\r\n% USAGE:\r\n% [hImage, hText] = heatmap(matrix, xlabels, ylabels, textmatrix, 'param', value, ...)\r\n%\r\n% INPUTS:\r\n% * HEATMAP displays \"matrix\" as an image whose color intensities reflect\r\n%   the magnitude of the values in \"matrix\". \r\n%\r\n% * \"xlabels\" (and \"ylabels\") can be either a numeric vector or cell array\r\n%   of strings that represent the columns (or rows) of the matrix. If either\r\n%   is not specified or empty, no labels will be drawn. \r\n%\r\n% * \"textmat\" can either be: 1, in which case the \"matrix\" values will be\r\n%   displayed in each square, a format string, in which case the matrix\r\n%   values will be displayed formatted according to the string specified, a numeric\r\n%   matrix the size of \"matrix\", in which case those values will be displayed as\r\n%   strings or a cell matrix of strings the size of \"matrix\", in which case each\r\n%   string will be displayed. If not specified or empty, no text will be\r\n%   displayed on the image\r\n%\r\n% OTHER PARAMETERS (oassed as parameter-value pairs)\r\n% * 'Colormap': Either a matrix of size numLevels-by-3 representing the\r\n%   colormap to be used or a string or function handle representing a\r\n%   function that returns a colormap, example, 'jet', 'hsv' or @cool.\r\n%   Non-standard colormaps available within HEATMAP include 'money' and 'red'.\r\n%   By default, the current figure's colormap is used.\r\n%\r\n% * 'ColorLevels': The number of distinct levels in the colormap (default:\r\n%   64). If more levels are specified than are present in the colormap, the\r\n%   levels in the colormap are interpolated. If fewer are specified the\r\n%   colormap is downsampled.\r\n%\r\n% * 'UseLogColorMap': A true/false value which, if true, specifies that the\r\n%   intensities displayed should match the log of the \"matrix\" values. Use\r\n%   this if the data is naturally on a logarithmic scale (default: false)\r\n%\r\n% * 'UseFigureColorMap': Specifies whether the figure's colormap should be\r\n%   used. If false, the color intensities after applying the\r\n%   specified/default colormap will be hardcoded, so that the image will be\r\n%   independent of the figures colormap. If this option is true, the figure\r\n%   colormap in the end will be replaced by specified/default colormap.\r\n%   (default = true)\r\n%\r\n% * 'Parent': Handle to an axes object\r\n%\r\n% * 'TextColor': Either a color specification of all the text displayed on\r\n%   the image or a string 'xor' which sets the EraseMode property of the text\r\n%   objects to 'xor'. This will display all the text labels in a color that\r\n%   contrasts its background.\r\n%\r\n% * 'FontSize': The initial fontSize of the text labels on the image. As\r\n%   the image size is scaled the fontSize is shrunk appropriately.\r\n%\r\n% * 'ColorBar': Display colorbar. The corresponding value parameter should\r\n%   be either logical 1 or 0 or a cell array of any additional parameters\r\n%   you wish to pass to the colorbar function (such as location)\r\n%\r\n% * 'GridLines': Draw grid lines separating adjacent sections of the\r\n%   heatmap. The value of the parameter is a LineStyle specification, for example,\r\n%   :, -, -. or --. By default, no grid lines are drawn.\r\n%\r\n% OUTPUTS:\r\n% * hImage: handle to the image object\r\n% * hText : handle to the text objects (empty if no text labels are drawn)\r\n%\r\n% Notes:\r\n% * The 'money' colormap displays a colormap where 0 values are mapped to\r\n%   white, negative values displayed in varying degrees of red and positive\r\n%   values in varying degrees of green\r\n% * The 'red' colormap maps 0 values to white and higher values to red\r\n%\r\n% EXAMPLES:\r\n% data = reshape(sort(randi(100,10)),10,10)-50;\r\n% heatmap(data, cellstr(('A':'J')'), mean(data,2), '%0.0f%%',...\r\n%         'Colormap', 'money', 'Colorbar', true, 'GridLines', ':',...\r\n%         'TextColor', 'b')\r\n% For detailed examples, see the associated document heatmap_examples.m\r\n\r\n% Parse inputs -----------------------------------------------------------\r\np = inputParser;\r\np.addParamValue('Colormap',[]);\r\np.addParamValue('ColorLevels',[]);\r\np.addParamValue('TextColor',[0 0 0]);\r\np.addParamValue('UseFigureColorMap',true);\r\np.addParamValue('UseLogColorMap',false);\r\np.addParamValue('Parent',gca);\r\np.addParamValue('FontSize',[]);\r\np.addParamValue('Colorbar',[]);\r\np.addParamValue('GridLines','none');\r\np.parse(varargin{:});\r\ncmap = p.Results.Colormap;\r\nclevels = p.Results.ColorLevels;\r\nusefigcmap = p.Results.UseFigureColorMap;\r\nuselogcmap = p.Results.UseLogColorMap;\r\nhAxes = p.Results.Parent;\r\nhFig = get(hAxes,'Parent');\r\ntxtcol = p.Results.TextColor;\r\nfontSize = p.Results.FontSize;\r\nshowcbar = p.Results.Colorbar;\r\ngridlines = p.Results.GridLines;\r\n\r\n% Figure out the colormap to use -----------------------------------------\r\nif isempty(cmap)\r\n    cmap = get(hFig,'Colormap');\r\n    if isempty(clevels)\r\n        clevels = size(cmap,1);\r\n    else\r\n        cmap = resamplecmap(cmap, clevels);\r\n    end\r\nelseif ischar(cmap) || isa(cmap,'function_handle')\r\n    if isempty(clevels), clevels = 64; end\r\n    if strcmp(cmap, 'money')\r\n        cmap = money(mat, clevels);\r\n    else\r\n        cmap = feval(cmap,clevels);\r\n    end\r\nelseif iscell(cmap)\r\n    cmap = feval(cmap{1}, cmap{2:end});\r\n    clevels = size(cmap,1);\r\nelseif isnumeric(cmap) && size(cmap,2) == 3\r\n    clevels = size(cmap,1);\r\nelse\r\n    error('Incorrect value for colormap parameter');\r\nend % cmap is now a clevels-by-3 rgb vector\r\nassert(clevels == size(cmap,1));\r\n\r\n% Plot the image --------------------------------------------------\r\nif uselogcmap\r\n    cmap = resamplecmap(cmap, clevels, logspace(0,log10(clevels),clevels));\r\nend\r\nif usefigcmap\r\n    set(hFig,'Colormap',cmap);\r\n    hImage = imagesc(mat, 'Parent', hAxes);\r\nelse\r\n    n = min(mat(:));\r\n    x = max(mat(:));\r\n    if x == n, x = n+1; end\r\n    cdata = round((mat-n)/(x-n)*(clevels-1)+1);\r\n    %cdata = ceil((mat-n)/(x-n)*clevels);\r\n    cdata = reshape(cmap(cdata(:),:),[size(cdata) 3]);\r\n    hImage = image(cdata, 'Parent', hAxes);\r\nend\r\n\r\n% Draw Grid Lines ----------------------------------------------------\r\nif ~strcmp(gridlines,'none')\r\n    xlim = get(hAxes,'XLim');\r\n    ylim = get(hAxes,'YLim');\r\n    for i = 1:diff(xlim)-1\r\n        line('Parent',hAxes,'XData',[i i]+.5, 'YData', ylim, 'LineStyle', gridlines);\r\n    end\r\n    for i = 1:diff(ylim)-1\r\n        line('Parent',hAxes,'XData',xlim, 'YData', [i i]+.5, 'LineStyle', gridlines);\r\n    end\r\nend\r\n\r\n% Set axes labels ----------------------------------------------------\r\nif nargin < 2 || isempty(xlab)\r\n    set(hAxes,'XTick',[],'XTickLabel','');\r\nelse\r\n    if isnumeric(xlab)\r\n        xlab = arrayfun(@(x){num2str(x)},xlab);\r\n    end\r\n    set(hAxes,'XTick',1:length(xlab),'XTickLabel',xlab);\r\nend\r\nif nargin < 3 || isempty(ylab)\r\n    set(hAxes,'YTick',[],'YTickLabel','');\r\nelse\r\n    if isnumeric(ylab)\r\n        ylab = arrayfun(@(x){num2str(x)},ylab);\r\n    end\r\n    set(hAxes,'YTick',1:length(ylab),'YTickLabel',ylab);\r\nend\r\n\r\n% Set text labels -----------------------------------------------------\r\nif nargin >=4 && ~isempty(textmat)\r\n    displaytext = textmat;\r\n    if isscalar(textmat) && textmat\r\n        textmat = arrayfun(@(x){num2str(x)},mat);\r\n    elseif ischar(textmat)\r\n        textmat = arrayfun(@(x){sprintf(textmat,x)},mat);\r\n    elseif isnumeric(textmat) && numel(textmat)==numel(mat)\r\n        textmat = arrayfun(@(x){num2str(x)},textmat);\r\n    elseif ~iscell(textmat) && numel(textmat)==numel(mat)\r\n        error('texmat is incorrectly specified');\r\n    end\r\n    if ischar(txtcol) && strcmp(txtcol,'xor')\r\n        colorprop = 'EraseMode';\r\n    else\r\n        colorprop = 'Color';\r\n    end\r\n    \r\n    if isempty(fontSize)\r\n        fontSize = getBestFontSize(hAxes);\r\n    end\r\n    [xpos,ypos] = meshgrid(1:size(mat,2),1:size(mat,1));\r\n    hText = text(xpos(:),ypos(:),textmat(:),'FontSize',fontSize,...\r\n        'HorizontalAlignment','center', colorprop, txtcol);\r\n       \r\n    % Set up listeners to handle appropriate zooming\r\n    factor = fontSize/getBestFontSize(hAxes);\r\n    addlistener(hAxes,{'XLim','YLim'},'PostSet',@(obj,evdata)resizeText);\r\n    addlistener(hFig,'Resize',@(obj,evdata)resizeText);\r\nelse\r\n    hText = [];\r\n    displaytext = [];\r\nend\r\n    function resizeText\r\n        if ~isempty(hText) && ishandle(hText(1))\r\n            fs = factor*getBestFontSize(hAxes);\r\n            if fs > 0\r\n                set(hText,'fontsize',fs,'visible','on');\r\n            else\r\n                set(hText,'visible','off');\r\n            end\r\n        end\r\n    end\r\n\r\n% Add a colorbar if necessary -------------------------------------------\r\nif ~isempty(showcbar)\r\n    if iscell(showcbar)\r\n        c = colorbar(showcbar{:});\r\n    else\r\n        c = colorbar;\r\n    end\r\n    if ~usefigcmap\r\n        d = findobj(get(c,'Children'),'Tag','TMW_COLORBAR'); % Image\r\n        %cdata = get(d,'Cdata');\r\n        %ytick = get(d,'YTick');\r\n        %ytl = get(g,'YTickLabel');\r\n        set(d,'CData',reshape(cmap,[clevels 1 3]))\r\n        set(c,'YLim',[1 clevels])\r\n        ytick = get(c,'YTick');\r\n        ytick = (ytick-1)*(x-n)/(clevels-1)+n;\r\n        if ischar(displaytext)\r\n            yticklabel = arrayfun(@(x){sprintf(displaytext,x)},ytick);\r\n        else\r\n            yticklabel = num2str(ytick(:));\r\n        end\r\n        set(c,'YTickLabel',yticklabel);\r\n    end\r\nend\r\nend\r\n\r\n\r\nfunction cmap = red(levels) %#ok<*DEFNU>\r\nr = ones(levels, 1);\r\ng = linspace(1, 0, levels)'; \r\ncmap = [r g g];\r\nend\r\n\r\nfunction cmap = money(data, clevels)\r\n% Function to make the heatmap have the green, white and red effect\r\nn = min(data(:));\r\nx = max(data(:));\r\nif x == n, x = n+1; end\r\nzeroInd = round(-n/(x-n)*(clevels-1)+1);\r\nif zeroInd <= 1 % Just green\r\n    b = interp1([1 clevels], [1 0], 1:clevels);\r\n    g = interp1([1 clevels], [1 1], 1:clevels);\r\n    r = interp1([1 clevels], [1 0], 1:clevels);\r\nelseif zeroInd >= clevels, % Just red\r\n    b = interp1([1 clevels], [0 1], 1:clevels);\r\n    g = interp1([1 clevels], [0 1], 1:clevels);\r\n    r = interp1([1 clevels], [1 1], 1:clevels);\r\nelse\r\n    b = interp1([1 zeroInd clevels], [0 1 0], 1:clevels); \r\n    g = interp1([1 zeroInd clevels], [0 1 1], 1:clevels);\r\n    r = interp1([1 zeroInd clevels], [1 1 0], 1:clevels);\r\nend\r\n\r\ncmap = [r' g' b'];\r\nend\r\n\r\nfunction cmap = resamplecmap(cmap, clevels, xi)\r\n% This function resamples a colormap by interpolation or decimation\r\nt = cmap;\r\nif nargin < 3\r\n    xi = linspace(1,clevels,size(t,1)); \r\nend\r\nxi([1 end]) = [1 clevels]; % These need to be exact for the interpolation to \r\n% work and we don't want machine precision messing it up\r\ncmap = [interp1(xi, t(:,1), 1:clevels);...\r\n        interp1(xi, t(:,2), 1:clevels);...\r\n        interp1(xi, t(:,3), 1:clevels)]';\r\nend\r\n\r\n\r\n\r\nfunction fs = getBestFontSize(imAxes)\r\n% Try to keep font size reasonable for text\r\nhFig = get(imAxes,'Parent');\r\nmagicNumber = 80;\r\nnrows = diff(get(imAxes,'YLim'));\r\nncols = diff(get(imAxes,'XLim'));\r\nif ncols < magicNumber && nrows < magicNumber\r\n    ratio = max(get(hFig,'Position').*[0 0 0 1])/max(nrows,ncols);\r\nelseif ncols < magicNumber\r\n    ratio = max(get(hFig,'Position').*[0 0 0 1])/ncols;\r\nelseif nrows < magicNumber\r\n    ratio = max(get(hFig,'Position').*[0 0 0 1])/nrows;\r\nelse\r\n    ratio = 1;\r\nend\r\nfs = min(9,ceil(ratio/4));    % the gold formula\r\nif fs < 4\r\n    fs = 0;\r\nend\r\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/heatmap_examples.m",
    "content": "clc; clear; close all;\r\n\r\n%% Single heatmap with default values\r\ndata = rand(3,4)*100;\r\nheatmap(data);\r\n%% Labelled heatmap\r\n% Its easy to add different labels to the heatmap.\r\nheatmap(data, [1.1 1.2 1.3 1.6], {'A','B','C'}, true);\r\ncolormap cool\r\n%% \r\n% In the above figure the text in each square is the numerical value of the\r\n% data. This can be formatted using a specific format string. \r\nheatmap(data, [1.1 1.2 1.3 1.6], {'A','B','C'}, '%0.2f m/s');\r\n%%\r\n% Or, a completely different matrix of data can be shown as strings\r\n% enabling you to show an additional dimension of the data (for example, a\r\n% categorial variable)\r\ngt50 = repmat({''},size(data));\r\ngt50(data>50) = {'>50'};\r\nheatmap(data, [], [], gt50);\r\n\r\n%% Setting other properties\r\n% These are examples of changing the text color, grid lines, font size and\r\n% specifying a colorbar\r\nfigure;\r\nheatmap(data, [], [], gt50, 'TextColor', 'y', 'GridLines', '-');\r\nfigure;\r\nheatmap(data, [], [], gt50, 'TextColor', 'xor', 'FontSize', 16);\r\nfigure;\r\nheatmap(data, [], [], gt50, 'TextColor', 'xor', 'FontSize', 16, 'Colorbar', {'SouthOutside'});\r\n\r\n%% Colormaps\r\n% The benefit of not using the figure colormap is that you can have\r\n% multiple heatmaps in a figure with different colormaps. Colormaps may be\r\n% specified as function handles, strings and numerical matrices of RGB color\r\n% levels. \r\nsubplot(1,2,1)\r\nheatmap(data, [], [], gt50, 'Colormap', @copper, 'UseFigureColormap', false);\r\nsubplot(1,2,2)\r\nheatmap(data, [], [], '%0.2f', 'Colormap', 'cool', 'UseFigureColormap', false);\r\n%%\r\n% The heatmap function makes two more colormaps available: the money\r\n% colormap and the red colormap.\r\nfigure;\r\nheatmap(data-50, [], [], 1, 'Colormap', 'money', 'Colorbar', true);\r\n%%\r\n% Colormaps may also be specified on a linear or logarithmic scale, enabling\r\n% you to choose the colormap scale that is more appropriate for your data\r\ndata2 = exprnd(1,100);\r\nfigure;\r\nheatmap(data2,[],[],[],'Colormap',@cool,'Colorbar',true);\r\ntitle('Linear Colormap');\r\nfigure;\r\nheatmap(data2,[],[],[],'Colormap',@cool,'UseLogColormap',true,'Colorbar',true);\r\ntitle('Logarithmic Colormap');\r\n\r\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/hetergeneous_test.m",
    "content": "clc; clear; close all;\n\nn = 100;\nm = 10;\nK = 20;\n\ngenerators = cell(4, 1);\n\ngenerators{1} = edu.stanford.math.plex4.graph.random.BAGraph(n, m);\ngenerators{2} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.30);\ngenerators{3} = edu.stanford.math.plex4.graph.random.KNearestNeighborsGraph(n, 2, 10);\ngenerators{4} = edu.stanford.math.plex4.graph.random.ForestFireGraph(n, 0.3, 0.5);\n\n%generators{3} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 1, 0.02);\n%generators{5} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 2, 0.02);\n%generators{6} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 3, 0.02);\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('hetergeneous_%d_%d_%d', size(generators, 1), n, K);\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/pairwise_barcode_analysis.m",
    "content": "function bottleneck_distances = pairwise_barcode_analysis(distance_matrices, max_metric_size)\n    \n    K = size(distance_matrices, 1); \n    intervals = cell(K, 1);\n    \n    parfor k = 1:K\n        mds_distances = distance_matrices{k};\n        m_space = edu.stanford.math.plex4.metric.impl.ExplicitMetricSpace(mds_distances);\n        \n        if (max_metric_size < m_space.size())\n            m_space = edu.stanford.math.plex4.metric.landmark.MaxMinLandmarkSelector(m_space, max_metric_size);\n        end\n        \n        max_dimension = 0;\n        \n        max_filtration_value = 4;\n\n        stream = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(m_space, max_dimension+1, max_filtration_value, 1000);\n        stream.finalizeStream();\n\n        persistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(max_dimension+1);\n        filtration_value_intervals = persistence.computeIntervals(stream);\n        intervals{k} = filtration_value_intervals.getIntervalsAtDimension(0);\n        intervals{k} = edu.stanford.math.plex4.bottleneck.BottleneckDistance.truncate(intervals{k}, 0, max_filtration_value);\n        %intervals{k} = edu.stanford.math.plex4.bottleneck.BottleneckDistance.filterLargest(intervals{k}, N);\n    end\n    \n    bottleneck_distances = zeros(K * K, 1);\n    \n    parfor m = 0:(K*K - 1)\n        i = floor(m / K) + 1;\n        j = mod(m, K) + 1;\n        \n        collection_1 = intervals{i};\n        collection_2 = intervals{j};\n        if (j > i)\n            bottleneck_distance = edu.stanford.math.plex4.bottleneck.BottleneckDistance.computeBottleneckDistance(collection_1, collection_2);\n            bottleneck_distances(m + 1) = bottleneck_distance;\n            display(sprintf('pairwise_barcode_analysis: d(%d, %d) = %f', i, j, bottleneck_distance));\n        end\n    end\n    \n    bottleneck_distances = reshape(bottleneck_distances, K, K);\n    \n    for i = 1:K\n        for j = 1:(i - 1)\n            bottleneck_distances(j, i) = bottleneck_distances(i, j);\n        end\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/pairwise_graph_analysis.m",
    "content": "function [bottleneck_distances] = pairwise_graph_analysis(generators, K)\n    \n    matlabpool\n    pctRunOnAll javaaddpath('../../for_distribution/lib/javaplex.jar');\n    \n    G = size(generators, 1);\n    distance_matrices = cell(K * G, 1);\n\n    parfor m = 0:(K*G - 1)\n        g = floor(m / K) + 1;\n        k = mod(m, K) + 1;\n        graph = generators{g}.generate();\n        distances = edu.stanford.math.plex4.graph.utility.GraphUtility.computeShortestPaths(graph);\n        [Y] = cmdscale(distances);\n\n        mds_distances = pairwise_row_distances(Y);\n\n        mds_distances = mds_distances / max(max(mds_distances));\n\n        distance_matrices{m + 1} = mds_distances;\n    end\n\n    bottleneck_distances = pairwise_barcode_analysis(distance_matrices, 50);\n\n    matlabpool close\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/pairwise_row_distances.m",
    "content": "function distance_matrix = pairwise_row_distances(matrix)\n    n = size(matrix, 1);\n    k = size(matrix, 2);\n    distance_matrix = zeros(n, n);\n    \n    for i = 1:n\n        for j = (i+1):n\n            distance = norm(matrix(i, :) - matrix(j, :));\n            distance_matrix(i, j) = distance;\n            distance_matrix(j, i) = distance;\n        end\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/plot_example.m",
    "content": "clc; clear; close all;\n\nn = 100;\np = 0.4;\nq = 0.02;\nc = 2;\nP = diag((p - q) * ones(1, c)) + q * ones(c, c);\n\n%%\ngenerator = edu.stanford.math.plex4.graph.random.StochasticBlockmodel(n, P);\n\ngraph = generator.generate();\n\noptions.dimensions = 2;\n\nplot_graph(graph, options);"
  },
  {
    "path": "src/matlab/experimental/graph_classification/plot_graph.m",
    "content": "function plot_graph(graph, options)\n\n    if (~exist('options', 'var'))\n        options = struct;\n    end\n\n    if (isfield(options, 'on_screen'))\n        on_screen = options.on_screen;\n    else\n        on_screen = 1;\n    end\n    \n    if (isfield(options, 'ray_trace'))\n        ray_trace = options.ray_trace;\n    else\n        ray_trace = 1;\n    end\n    \n    if (isfield(options, 'dimensions'))\n        dimensions = options.dimensions;\n    else\n        dimensions = 3;\n    end\n    \n    if (isfield(options, 'filename'))\n        filename = options.filename;\n    else\n        filename = sprintf('graph_%d.pov', randi(100000, 1));\n    end\n\n\n    distances = edu.stanford.math.plex4.graph.utility.GraphUtility.computeShortestPaths(graph);\n    distances = filter_distance_matrix(distances);\n    \n    stream = edu.stanford.math.plex4.graph.utility.GraphUtility.toSimplexStream(graph);\n\n    [Y] = cmdscale(distances);\n    points = [Y(:, 1:dimensions)];\n    \n    for i = 1:dimensions\n        points(:, i) = points(:, i)  - mean(points(:, i));\n    end\n    \n    for i = 1:dimensions\n        points(:, i) = 2 * points(:, i) / max(abs(points(:, i)));\n    end\n    \n    if (on_screen)\n        render_onscreen(stream, points);\n    end\n    \n    if (ray_trace)\n        create_pov_file(stream, points, filename);\n        render_pov_file(filename);\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/random_geometric_graph.m",
    "content": "function [stream, points] = random_geometric_graph(n, d, r)\n    points = rand(n, d);\n    stream = edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream();\n    \n    for i = 1:n\n        stream.addVertex(i - 1);\n    end\n    \n    for i = 1:n\n        for j = (i + 1):n\n            if (norm(points(i, :) - points(j, :)) <= r)\n                stream.addElement([i - 1, j - 1]);\n            end\n        end\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/random_geometric_test.m",
    "content": "clc; clear; close all;\n\nn = 100;\nK = 20;\n\ngenerators = cell(3, 1);\n\ngenerators{1} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 1, 0.5);\ngenerators{2} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 2, 0.5);\ngenerators{3} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 3, 0.5);\n%generators{4} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 4, 0.5);\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('random_geometric_%d_%d_%d', size(generators, 1), n, K);\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/rg_plot_example.m",
    "content": "clc; clear; close all;\n\nn = 1000;\nd = 2;\nr = 0.05;\n\n[stream, points] = random_geometric_graph(n, d, r);\n\npoints = (points - 0.5) * 2;\n\n%%\nfilename = 'random_geometric_graph.pov';\ncreate_pov_file(stream, points, filename);\nrender_pov_file(filename);"
  },
  {
    "path": "src/matlab/experimental/graph_classification/sandbox.m",
    "content": "clc; clear; close all;\n\n%%\nn = 100;\nK = 10;\n\ngenerators = cell(5, 1);\n\ngenerators{1} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.10);\ngenerators{2} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.15);\ngenerators{3} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.20);\ngenerators{4} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.25);\ngenerators{5} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.30);\n\npairwise_graph_analysis(generators, K);\n\n%%\n\nn = 200;\nK = 10;\n\ngenerators = cell(2, 1);\n\ngenerators{1} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.25);\ngenerators{2} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.30);\n\npairwise_graph_analysis(generators, K);\n\n%%\n\nn = 128;\nm = 10;\nK = 10;\n\ngenerators = cell(6, 1);\n\ngenerators{1} = edu.stanford.math.plex4.graph.random.BAGraph(n, m);\ngenerators{2} = edu.stanford.math.plex4.graph.random.BinaryHierarchicalGraph(n, 0.6);\ngenerators{3} = edu.stanford.math.plex4.graph.random.ErdosRenyiGraph(n, 0.30);\n\ngenerators{4} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 1, 0.02);\ngenerators{5} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 2, 0.02);\ngenerators{6} = edu.stanford.math.plex4.graph.random.RandomGeometricGraph(n, 3, 0.02);\n\npairwise_graph_analysis(generators, K);\n"
  },
  {
    "path": "src/matlab/experimental/graph_classification/spectral_embedding.m",
    "content": "function [Y] = spectral_embedding(graph, k)\n\nlaplacian = double(edu.stanford.math.plex4.graph.utility.GraphUtility.getLaplacianMatrix(graph));\nnormalized_laplacian = compute_normalized_laplacian(laplacian);\n\n[V, D] = eig(normalized_laplacian);\n\nlast_eigenvectors = V(:, 1:k);\n\nY = zeros(size(last_eigenvectors, 1), size(last_eigenvectors, 2));\n\nfor i=1:size(last_eigenvectors, 1)\n    n = sqrt(sum(last_eigenvectors(i, :) .^ 2));\n    if (n ~= 0)\n        Y(i,:) = last_eigenvectors(i, :) ./ n;\n        %Y(i,:) = last_eigenvectors(i, :);\n    end\nend\n\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/torus_geometric.m",
    "content": "clc; clear; close all;\n\nn = 64;\nK = 10;\nk = 10;\n\ngenerators = cell(2, 1);\n\ngenerators{1} = edu.stanford.math.plex4.graph.random.KNearestNeighborsGraph(n, 2, k);\ngenerators{2} = edu.stanford.math.plex4.graph.random.TorusGraph(n, 2, k);\n\n[bottleneck_distances] = pairwise_graph_analysis(generators, K);\n\n%%\n\nlabel = sprintf('torus_cube_%d_%d_%d_%d', size(generators, 1), n, K, k);\n\n[hm_handle, mds_handle] = visualize_dissimilarity_matrix(bottleneck_distances, generators, label);"
  },
  {
    "path": "src/matlab/experimental/graph_classification/visualize_comparison_distances.m",
    "content": "function [hm_handle, mds_handle] = visualize_comparison_distances(distances, generators, query_labels, label)\n\nG = size(generators, 1);\n\nK = size(distances, 1) / G;\n\ngroups = cell(K * G, 1);\n\nsimilarity_matrix = -distances + mean(mean(distances));\nlabels = cell(K * G, 1);\n\nfor g = 1:G\n    for k = 1:K\n        groups{k + (g-1) * K} = char(generators{g}.toString());\n        \n        if (k == 1)\n            labels{k + (g-1) * K} = char(generators{g}.toString());\n        else\n            labels{k + (g-1) * K} = '';\n        end\n        \n    end\nend\n\nhm_handle = figure;\nheatmap(distances, query_labels, labels);\ncolorbar\ntitle('Bottleneck Distances between Graph Samples and Query Graph');\nprint(hm_handle, strcat(label, '_hm', '.eps'));\n\nend"
  },
  {
    "path": "src/matlab/experimental/graph_classification/visualize_dissimilarity_matrix.m",
    "content": "function [hm_handle, mds_handle] = visualize_dissimilarity_matrix(distances, generators, label)\n\nG = size(generators, 1);\n\nK = size(distances, 1) / G;\n\ngroups = cell(K * G, 1);\n\nsimilarity_matrix = -distances + mean(mean(distances));\nlabels = cell(K * G, 1);\n\nfor g = 1:G\n    for k = 1:K\n        groups{k + (g-1) * K} = char(generators{g}.toString());\n        \n        if (k == 1)\n            labels{k + (g-1) * K} = char(generators{g}.toString());\n        else\n            labels{k + (g-1) * K} = '';\n        end\n        \n    end\nend\n\n[points] = cmdscale(distances);\nmds_handle = figure;\ngscatter(points(:, 1), points(:, 2), groups, 'bgrcmyk','xo.+');\ntitle('MDS Embedding of Bottleneck Distances between Graph Samples');\n\nprint(mds_handle, strcat(label, '_mds', '.eps'));\n\nhm_handle = figure;\nheatmap(distances, {}, labels);\ncolorbar\ntitle('Bottleneck Distances between Graph Samples');\nprint(hm_handle, strcat(label, '_hm', '.eps'));\n\nend"
  },
  {
    "path": "src/matlab/experimental/hom/combinatorial/brute_force_test.m",
    "content": "%% Brute-force discrete hom example\n\n% Note that this is obviously impractical for anything other than the\n% tiniest examples. This is just designed to enumerate the set of minima of\n% the bisimpliciality objective for small cases.\n\nclc; clear; close all;\n\ndomain_size = 4;\ncodomain_size = 4;\n\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\n\n%% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\nK = size(homotopies, 1);\n\ninitial_chain_map = full(cycle_sum)\n\nfor i=1:K\n    full(homotopies{i});\nend\n\n%% Compute objective for all coefficients\n\nsubsets = get_binary_subsets(K);\nL = size(subsets, 1);\nvalues = zeros(L, 1);\n\nfor i = 1:L\n    values(i) = default_objective(subsets(i, :), cycle_sum, homotopies);\nend\n\nsearch_space_size = L\n\n%% Plot values\nplot(values, 'bo');\nylabel('Simpliciality penalty');\nxlabel('Binary representation of coefficient set');\n\n%% Find minima\nmin_value = min(values);\n[r, c, v] = find(values == min_value);\n\nnum_minimizers = length(r)\n\nfor i = 1:length(r)\n    subsets(r(i), :);\nend"
  },
  {
    "path": "src/matlab/experimental/hom/combinatorial/flip_random_entry.m",
    "content": "function r = flip_random_entry(x)\n    r = x;\n    entry = ceil(rand * length(x));\n    r(entry) = 1 - r(entry);\nend"
  },
  {
    "path": "src/matlab/experimental/hom/combinatorial/get_binary_subsets.m",
    "content": "function subsets = get_binary_subsets(n)\n    size = 2^n;\n    subsets = zeros(size, n);\n    for i = 1:(size - 1)\n        k = 1;\n        for j = 1:n\n            subsets(i + 1, j) = bitand(i, k) / k;\n            k = k * 2;\n        end\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom/combinatorial/greedy_search.m",
    "content": "function [minimizer, minimum] = greedy_search(f, initial_point)\n    current_point = initial_point;\n    previous_point = current_point;\n    current_value = f(initial_point);\n    previous_value = current_value;\n    \n    k = length(initial_point);\n    \n    while 1\n        \n        for i = 1:k\n            current_point(i) = 1 - current_point(i);\n            current_value = f(current_point);\n            if (current_value < previous_value)\n                break;\n            end\n            current_point(i) = 1 - current_point(i);\n            \n            if (i == k)\n                minimizer = previous_point;\n                minimum = previous_value;\n                return;\n            end\n              \n        end\n        \n        if (current_value >= previous_value)\n            break;\n        end\n        \n        previous_point = current_point;\n        previous_value = current_value;\n    end\n    \n    minimizer = current_point;\n    minimum = current_value;\nend"
  },
  {
    "path": "src/matlab/experimental/hom/combinatorial/greedy_search_test.m",
    "content": "%% This script uses greedy search to attempt to minimize the bisimpliciality objective\n\nclc; clear; close all;\n\ndomain_size = 5;\ncodomain_size = 5;\n\ndomain_stream = examples.SimplexStreamExamples.getTorus();\ncodomain_stream = examples.SimplexStreamExamples.getTorus();\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\n\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\nK = size(homotopies, 1);\n\ncost_function = @(x) default_objective(x, cycle_sum, homotopies);\ninitial_point = round(randn(1, K));\n\n[optimizer, optimum] = greedy_search(cost_function, initial_point);\n\n%%\nmap = full(compute_mapping(cycle_sum, homotopies, optimizer))\n\noptimum"
  },
  {
    "path": "src/matlab/experimental/hom/combinatorial/hom_parameterization_example.m",
    "content": "% This script shows an example of computing the parameterization of the\r\n% space of chain maps\r\n\r\nclc; clear; close all;\r\n\r\n% create the domain and codomain simplicial complexes\r\ndomain_stream = examples.SimplexStreamExamples.getTetrahedron();\r\ncodomain_stream = examples.SimplexStreamExamples.getTetrahedron();\r\n\r\n% obtain the parameterization\r\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\r\n\r\ncycle_sum\r\n"
  },
  {
    "path": "src/matlab/experimental/hom/combinatorial/simmulated_annealing_test.m",
    "content": "clc; clear; close all;\n\ndomain_size = 8;\ncodomain_size = 8;\n\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\n\n%%\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\nK = size(homotopies, 1);\n\ncost_function = @(x) default_objective(x, cycle_sum, homotopies);\nrandom_neighbor_function = @(x) flip_random_entry(x);\ninitial_point = zeros(1, K);\n\n[optimizer, optimum] = simulated_annealing(cost_function, random_neighbor_function, initial_point);\n\n%%\nmap = full(compute_mapping(cycle_sum, homotopies, optimizer))\n\noptimum"
  },
  {
    "path": "src/matlab/experimental/hom/combinatorial/simulated_annealing.m",
    "content": "function [optimizer, optimum, num_iterations] = simulated_annealing(cost_function, ...\n        random_neighbor_function, initial_point, options)\n    \n    default_options.initial_temp = 1000;\n    default_options.temp_update = @(T) (T * 0.999);\n    default_options.stop_temp = 1e-8;\n    default_options.max_iterations = 100000;\n\n    if (~exist('options.initial_temp'))\n        options.initial_temp = default_options.initial_temp;\n    end\n    \n    if (~exist('options.temp_update'))\n        options.temp_update = default_options.temp_update;\n    end\n    \n    if (~exist('options.stop_temp'))\n        options.stop_temp = default_options.stop_temp;\n    end\n    \n    if (~exist('options.max_iterations'))\n        options.max_iterations = default_options.max_iterations;\n    end\n    \n    k = 1;\n    \n    T = options.initial_temp;\n    current_energy = cost_function(initial_point);\n    current_point = initial_point;\n    previous_point = current_point;\n    previous_energy = current_energy;\n    \n    min_energy = current_energy;\n    min_point = current_point;\n    \n    finished = 0;\n    iteration = 0;\n    \n    while (~finished)\n        candidate_point = random_neighbor_function(current_point);\n        candidate_energy = cost_function(current_point);\n        \n        if (candidate_energy < min_energy)\n            previous_point = current_point;\n            previous_energy = current_energy;\n            \n            current_point = candidate_point;\n            current_energy = candidate_energy;\n            \n            min_energy = candidate_energy;\n            min_point = candidate_point;\n            continue;\n        end\n        \n        if (candidate_energy < previous_energy)\n            previous_point = current_point;\n            previous_energy = current_energy;\n            \n            current_point = candidate_point;\n            current_energy = candidate_energy;\n        else\n            if (rand() < exp(-(candidate_energy - current_energy) / (k * T)))\n                previous_point = current_point;\n                previous_energy = current_energy;\n            \n                current_point = candidate_point;\n                current_energy = candidate_energy;\n            else\n                % current_point = current_point;\n            end\n        end\n        \n        T = options.temp_update(T);\n        iteration = iteration + 1;\n        \n        if (iteration >= options.max_iterations)\n            finished = 1;\n        end\n        if (T < options.stop_temp)\n            finished = 1;\n        end\n    end\n    \n    num_iterations = iteration;\n    \n    optimizer = min_point;\n    optimum = min_energy;\n    \nend"
  },
  {
    "path": "src/matlab/experimental/hom/continuous/circle_example.m",
    "content": "%% Continuous circle example - finds random corner point of feasible set\n\nclc; clear; close all;\n\ndomain_size = 4;\ncodomain_size = 5;\n\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\n\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\n\n% setup the LP - find a feasible point and the value of the max function in\n% the set C\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies);\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\nfval\n\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\nmap = (abs(map) > 1e-3) .* map;\n\nfull(map)\n\n% find a random corner point of the set of optima\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, fval, randn(size(homotopies, 1), 1));\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\nfval\n\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\nmap = (abs(map) > 1e-3) .* map;\n\nfull(map)\n\ndlmwrite('matrix.txt', full(map));\n\n%%\n\nimport edu.stanford.math.plex_viewer.*;\nApi.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points + ones(codomain_size, 2), abs(map));"
  },
  {
    "path": "src/matlab/experimental/hom/continuous/create_max_lp.m",
    "content": "function [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, opt_max_constraint, opt_f)\n\n    K = size(homotopies, 1);\n    [I, J] = size(homotopies{1});\n\n    %{\n    x = [c_1 ... c_K, s_11 ... s_IJ, t_1 ... t_J, u_1 ... u_I, t, u]\n    \n    Equality constraints:\n\n    for i, j = 1, 1 ... I, J:\n        s_ij = sum_k sum_k c_k H_ij^k + H_ij^0\n\n    \n    \n    %}\n\n    num_variables = K + I*J + I + J + 2;\n    num_constraints = 2 * (I*J + I + J) + 1;\n\n    A = sparse(num_constraints, num_variables);\n    b = sparse(num_constraints, 1);\n    f = sparse(num_variables, 1);\n\n    for i = 1:I\n        for j = 1:J\n            s_index = K + flatten(i, j, I, J);\n            constraint_index = 2 * flatten(i, j, I, J) - 1;\n            A(constraint_index, s_index) = -1;\n            A(constraint_index + 1, s_index) = -1;\n        end\n    end\n\n    for k = 1:K\n        [i_indices, j_indices, values] = find(homotopies{k});\n        count = length(i_indices);\n        for index = 1:count\n            i = i_indices(index);\n            j = j_indices(index);\n            v = values(index);\n            constraint_index = 2 * flatten(i, j, I, J) - 1;\n            A(constraint_index, k) = v;\n            A(constraint_index + 1, k) = -v;\n        end\n    end\n\n    [i_indices, j_indices, values] = find(cycle_sum);\n    count = length(i_indices);\n    for index = 1:count\n        i = i_indices(index);\n        j = j_indices(index);\n        v = values(index);\n        s_index = K + flatten(i, j, I, J);\n        constraint_index = 2 * flatten(i, j, I, J) - 1;\n        b(constraint_index) = -v;\n        b(constraint_index + 1) = v;\n    end\n\n    constraint_index = 2 * I * J + 1;\n\n    for j = 1:J\n        t_j_index = K + I*J + j;\n        A(constraint_index, t_j_index) = -1;\n        for i = 1:I\n            s_ij_index = K + flatten(i, j, I, J);\n            A(constraint_index, s_ij_index) = 1;\n        end\n        constraint_index = constraint_index + 1;\n    end\n\n    for i = 1:I\n        u_i_index = K + I*J + J + i;\n        A(constraint_index, u_i_index) = -1;\n        for j = 1:J\n            s_ij_index = K + flatten(i, j, I, J);\n            A(constraint_index, s_ij_index) = 1;\n        end\n        constraint_index = constraint_index + 1;\n    end\n\n    t_index = K + I*J + J + I + 1;\n    u_index = t_index + 1;\n\n    for j = 1:J\n        t_j_index = K + I*J + j;\n        A(constraint_index, t_j_index) = 1;\n        A(constraint_index, t_index) = -1;\n        constraint_index = constraint_index + 1;\n    end\n\n    for i = 1:I\n        u_i_index = K + I*J + J + i;\n        A(constraint_index, u_i_index) = 1;\n        A(constraint_index, u_index) = -1;\n        constraint_index = constraint_index + 1;\n    end\n\n    if (exist('opt_max_constraint', 'var'))\n        A(constraint_index, t_index) = 1;\n        A(constraint_index, u_index) = 1;\n        b(constraint_index) = opt_max_constraint + 0.1;\n    end\n\n    f(t_index) = 1;\n    f(u_index) = 1;\n\n    if (exist('opt_f', 'var'))\n        f(1:length(opt_f)) = opt_f;\n    end\n\n    large = 10;\n\n    Aeq = [];\n    beq = [];\n    lb = -large * ones(num_variables, 1);\n    ub = large * ones(num_variables, 1);\n\n    for k = 1:K\n        lb(k) = -large;\n        ub(k) = large;\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom/continuous/create_positive_lp.m",
    "content": "function [f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies, opt_max_constraint, opt_f)\n\n    K = size(homotopies, 1);\n    [I, J] = size(homotopies{1});\n\n    %{\n    x = [c_1 ... c_K, a_11 ... a_IJ, r_1 ... r_I, l_1 ... l_J, r, l]\n    a_ij = sum_k c_k H_ij^k + H_ij^0\n    r_i = sum_i a_ij (sum over i'th row)\n    l_j = sum_j a_ij (sum over j'th col)\n\n    r >= r_i (all i)\n    l >= l_j (all j)\n\n    Equality constraints:\n\n    for i, j = 1, 1 ... I, J:\n        a_ij = sum_k sum_k c_k H_ij^k + H_ij^0\n\n    for i = 1 ... I:\n        r_i = sum_i a_ij\n\n    for j = 1 ...  J:\n        l_j = sum_j a_ij\n\n    Inequality constraints:\n\n    for i = 1 ... I:\n        r >= r_i\n\n    for j = 1 ...  J:\n        l >= l_j\n\n    r + l <= fval\n\n    ub/lb constraints:\n    for i, j = 1, 1 ... I, J:\n        a_ij >= 0\n\n    minimize max_i r_i + max_j l_j\n\n    %}\n\n    num_variables = K + I*J + I + J + 2;\n\n    num_equality_constraints = I*J + I + J;\n    num_inequality_constraints = I + J + 1;\n\n    Aeq = sparse(num_equality_constraints, num_variables);\n    beq = sparse(num_equality_constraints, 1);\n    A = sparse(num_inequality_constraints, num_variables);\n    b = sparse(num_inequality_constraints, 1);\n    f = sparse(num_variables, 1);\n    lb = sparse(num_variables, 1);\n    ub = sparse(num_variables, 1);\n\n    for i = 1:I\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            equality_constraint_index = flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = -1;\n        end\n    end\n\n    for k = 1:K\n        [i_indices, j_indices, values] = find(homotopies{k});\n        count = length(i_indices);\n        for index = 1:count\n            i = i_indices(index);\n            j = j_indices(index);\n            v = values(index);\n            equality_constraint_index = flatten(i, j, I, J);\n            Aeq(equality_constraint_index, k) = v;\n        end\n    end\n\n    [i_indices, j_indices, values] = find(cycle_sum);\n    count = length(i_indices);\n    for index = 1:count\n        i = i_indices(index);\n        j = j_indices(index);\n        v = values(index);\n        equality_constraint_index = flatten(i, j, I, J);\n        beq(equality_constraint_index) = -v;\n    end\n\n\n    for i = 1:I\n        r_i_index = K + I*J + i;\n        equality_constraint_index = I*J + i;\n        Aeq(equality_constraint_index, r_i_index) = -1;\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = 1;\n        end\n    end\n\n    for j = 1:J\n        l_j_index = K + I*J + I + j;\n        equality_constraint_index = I*J + I + j;\n        Aeq(equality_constraint_index, l_j_index) = -1;\n        for i = 1:I\n            a_ij_index = K + flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = 1;\n        end\n    end\n\n    r_index = K + I*J + I + J + 1;\n    l_index = K + I*J + I + J + 2;\n\n    for i = 1:I\n        r_i_index = K + I*J + i;\n        inequality_constraint_index = i;\n        A(inequality_constraint_index, r_index) = -1;\n        A(inequality_constraint_index, r_i_index) = 1;\n    end\n    \n    K = size(homotopies, 1);\n    [I, J] = size(homotopies{1});\n\n    for j = 1:J\n        l_j_index = K + I*J + I + j;\n        inequality_constraint_index = I + j;\n        A(inequality_constraint_index, l_index) = -1;\n        A(inequality_constraint_index, l_j_index) = 1;\n    end\n\n    for index = 1:num_variables\n        lb(index) = -inf;\n        ub(index) = inf;\n    end\n\n    for index = 1:K\n        lb(index) = -1;\n        ub(index) = 1;\n    end\n\n    for i = 1:I\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            lb(a_ij_index) = 0;\n            ub(a_ij_index) = 10;\n        end\n    end\n\n    if (exist('opt_max_constraint', 'var'))\n        inequality_constraint_index = I + J + 1;\n        A(inequality_constraint_index, l_index) = 1;\n        A(inequality_constraint_index, r_index) = 1;\n        b(inequality_constraint_index) = opt_max_constraint;\n    end\n    \n    f(r_index) = 1;\n    f(l_index) = 1;\n    \n    if (exist('opt_f', 'var'))\n        f(1:length(opt_f)) = opt_f;\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom/continuous/create_positive_lp2.m",
    "content": "function [f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies, opt_max_constraint, opt_f)\n\n    K = size(homotopies, 1);\n    [I, J] = size(homotopies{1});\n\n    %{\n    \n    Variables Explanation:\n    \n    x = [c_1 ... c_K, a_11 ... a_IJ, r_1 ... r_I, l_1 ... l_J, r, l]\n    a_ij = sum_k c_k H_ij^k + H_ij^0\n    r_i = sum_i a_ij (sum over i'th row)\n    l_j = sum_j a_ij (sum over j'th col)\n\n    r >= r_i (all i)\n    l >= l_j (all j)\n\n    Equality constraints:\n\n    for i, j = 1, 1 ... I, J:\n        a_ij = sum_k sum_k c_k H_ij^k + H_ij^0\n\n    for i = 1 ... I:\n        r_i = sum_j a_ij\n\n    for j = 1 ...  J:\n        l_j = sum_i a_ij\n\n    Inequality constraints:\n\n    for i = 1 ... I:\n        r >= r_i\n\n    for j = 1 ...  J:\n        l >= l_j\n\n    r + l <= fval\n\n    ub/lb constraints:\n    for i, j = 1, 1 ... I, J:\n        a_ij >= 0\n\n    minimize max_i r_i + max_j l_j\n\n    %}\n\n    num_variables = K + I*J + I + J + 2;\n\n    num_equality_constraints = I*J + I + J;\n    num_inequality_constraints = I + J + 1;\n\n    Aeq = sparse(num_equality_constraints, num_variables);\n    beq = sparse(num_equality_constraints, 1);\n    A = sparse(num_inequality_constraints, num_variables);\n    b = sparse(num_inequality_constraints, 1);\n    f = sparse(num_variables, 1);\n    lb = sparse(num_variables, 1);\n    ub = sparse(num_variables, 1);\n\n    for i = 1:I\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            equality_constraint_index = flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = -1;\n        end\n    end\n\n    for k = 1:K\n        [i_indices, j_indices, values] = find(homotopies{k});\n        count = length(i_indices);\n        for index = 1:count\n            i = i_indices(index);\n            j = j_indices(index);\n            v = values(index);\n            equality_constraint_index = flatten(i, j, I, J);\n            Aeq(equality_constraint_index, k) = v;\n        end\n    end\n\n    [i_indices, j_indices, values] = find(cycle_sum);\n    count = length(i_indices);\n    for index = 1:count\n        i = i_indices(index);\n        j = j_indices(index);\n        v = values(index);\n        equality_constraint_index = flatten(i, j, I, J);\n        beq(equality_constraint_index) = -v;\n    end\n\n\n    for i = 1:I\n        r_i_index = K + I*J + i;\n        equality_constraint_index = I*J + i;\n        Aeq(equality_constraint_index, r_i_index) = -1;\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = 1;\n        end\n    end\n\n    for j = 1:J\n        l_j_index = K + I*J + I + j;\n        equality_constraint_index = I*J + I + j;\n        Aeq(equality_constraint_index, l_j_index) = -1;\n        for i = 1:I\n            a_ij_index = K + flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = 1;\n        end\n    end\n\n    r_index = K + I*J + I + J + 1;\n    l_index = K + I*J + I + J + 2;\n\n    for i = 1:I\n        r_i_index = K + I*J + i;\n        inequality_constraint_index = i;\n        A(inequality_constraint_index, r_index) = -1;\n        A(inequality_constraint_index, r_i_index) = 1;\n    end\n    \n    K = size(homotopies, 1);\n    [I, J] = size(homotopies{1});\n\n    for j = 1:J\n        l_j_index = K + I*J + I + j;\n        inequality_constraint_index = I + j;\n        A(inequality_constraint_index, l_index) = -1;\n        A(inequality_constraint_index, l_j_index) = 1;\n    end\n\n    for index = 1:num_variables\n        lb(index) = -inf;\n        ub(index) = inf;\n    end\n\n    for index = 1:K\n        lb(index) = -1;\n        ub(index) = 1;\n    end\n\n    for i = 1:I\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            lb(a_ij_index) = 0;\n            ub(a_ij_index) = 1;\n        end\n    end\n\n    if (exist('opt_max_constraint', 'var'))\n        inequality_constraint_index = I + J + 1;\n        A(inequality_constraint_index, l_index) = 1;\n        A(inequality_constraint_index, r_index) = 1;\n        b(inequality_constraint_index) = opt_max_constraint;\n    end\n    \n    f(r_index) = 1;\n    f(l_index) = 1;\n    \n    if (exist('opt_f', 'var'))\n        f(1:length(opt_f)) = opt_f;\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom/continuous/tetra_octa_example.m",
    "content": "%% Continuous circle example - finds random corner point of feasible set\n\nclc; clear; close all;\n\ndomain_size = 4;\ncodomain_size = 5;\n\ndomain_stream = examples.SimplexStreamExamples.getTetrahedron();\ncodomain_stream = examples.SimplexStreamExamples.getOctahedron();\n\ndomain_points = examples.PointCloudExamples.getTetrahedronVertices();\ncodomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1;\n\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\n\n% setup the LP - find a feasible point and the value of the max function in\n% the set C\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies);\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\nfval\n\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\nmap = (abs(map) > 1e-3) .* map;\n\nfull(map)\n\n% find a random corner point of the set of optima\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, fval, randn(size(homotopies, 1), 1));\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\nfval\n\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\nmap = (abs(map) > 1e-3) .* map;\n\nfull(map)\n\ndlmwrite('matrix.txt', full(map));\n\n%%\n\nimport edu.stanford.math.plex_viewer.*;\nApi.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map));"
  },
  {
    "path": "src/matlab/experimental/hom/hom_utility/compute_mapping.m",
    "content": "function mapping = compute_mapping(cycle_sum, homotopies, coefficients)\r\n% This function computes the representative chain map by adding homotopies\r\n% to the cycle sum with the given coefficients.\r\n\r\n    mapping = cycle_sum;\r\n    K = length(coefficients);\r\n    for k = 1:K\r\n        mapping = mapping + coefficients(k) * homotopies{k};\r\n    end\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom/hom_utility/default_objective.m",
    "content": "function value = default_objective(coefficients, cycle_sum, homotopies)\n% This function returns the maximum 1-norm of the rows and columns - it\n% corresponds to the 1-norm relaxation of the bisimpliciality objective\n% function\n    mapping = compute_mapping(cycle_sum, homotopies, coefficients);\n    value = max(sum(abs(mapping))) + max(sum(abs(mapping')));\nend"
  },
  {
    "path": "src/matlab/experimental/hom/hom_utility/hom_parameterization.m",
    "content": "function [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream)\r\n% [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream)\r\n%\r\n% INPUTS\r\n% domain_stream: an object of type AbstractFilteredStream<Simplex> which\r\n% contains the contents of the domain\r\n% codomain_stream: an object of type AbstractFilteredStream<Simplex> which\r\n% contains the contents of the codomain\r\n%\r\n% OUTPUTS\r\n% cycle_sum: a chain map generated by representatives of significant\r\n% intervals in the homology of the hom-complex (a sparse matrix)\r\n% homotopies: a cell array containing the set of chain homotopies as sparse\r\n% matrices\r\n\r\n    import edu.stanford.math.plex4.*;\r\n    import edu.stanford.math.primitivelib.collections.utility.*;\r\n\r\n    matrix_converter = api.Plex4.createHomMatrixConverter(domain_stream, codomain_stream);\r\n    \r\n    hom_stream = api.Plex4.createHomStream(domain_stream, codomain_stream);\r\n    hom_stream.finalizeStream();\r\n\r\n    persistence = api.Plex4.getRationalHomAlgorithm();\r\n\r\n    chain_module = persistence.getChainModule();\r\n\r\n    homotopies = hom_stream.getHomotopiesAsDouble(chain_module);\r\n\r\n    homotopy_matrices = cell(homotopies.size(), 1);\r\n\r\n    m = codomain_stream.getSize();\r\n    n = domain_stream.getSize();\r\n\r\n    index = 1;\r\n    iterator = homotopies.iterator();\r\n    while (iterator.hasNext())\r\n        homotopy = iterator.next();\r\n        homotopy_matrices{index} = to_sparse_matlab_matrix(homotopy, matrix_converter);\r\n        index = index + 1;\r\n    end\r\n\r\n    barcode_collection = persistence.computeAnnotatedIntervals(hom_stream);\r\n\r\n    intervals = barcode_collection.getIntervalGeneratorPairsAtDimension(0);\r\n    \r\n    cycle_sum = chain_module.createNewSum();\r\n\r\n    iterator = intervals.iterator();\r\n    cycle_index = 1;\r\n    while (iterator.hasNext())\r\n        interval_generator_pair = iterator.next();\r\n        interval = interval_generator_pair.getFirst();\r\n        generator = interval_generator_pair.getSecond();\r\n        if (interval.isInfinite())% && (cycle_index == 1))\r\n            chain_module.accumulate(cycle_sum, generator);\r\n        end\r\n        cycle_index = cycle_index + 1;\r\n    end\r\n    \r\n    cycle_sum = hom_stream.toDoubleFormalSum(cycle_sum);\r\n    cycle_sum = to_sparse_matlab_matrix(cycle_sum, matrix_converter);\r\n    homotopies = homotopy_matrices;\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom/load_hom.m",
    "content": "cd '../../for_distribution';\nload_javaplex;\n\ncd '../experimental/hom/hom_utility';\naddpath(pwd);\ncd '..';"
  },
  {
    "path": "src/matlab/experimental/hom_messy/L2_distance.m",
    "content": "function d = L2_distance(a,b,df)\n% L2_DISTANCE - computes Euclidean distance matrix\n%\n% E = L2_distance(A,B)\n%\n%    A - (DxM) matrix \n%    B - (DxN) matrix\n%    df = 1, force diagonals to be zero; 0 (default), do not force\n% \n% Returns:\n%    E - (MxN) Euclidean distances between vectors in A and B\n%\n%\n% Description : \n%    This fully vectorized (VERY FAST!) m-file computes the \n%    Euclidean distance between two vectors by:\n%\n%                 ||A-B|| = sqrt ( ||A||^2 + ||B||^2 - 2*A.B )\n%\n% Example : \n%    A = rand(400,100); B = rand(400,200);\n%    d = distance(A,B);\n\n% Author   : Roland Bunschoten\n%            University of Amsterdam\n%            Intelligent Autonomous Systems (IAS) group\n%            Kruislaan 403  1098 SJ Amsterdam\n%            tel.(+31)20-5257524\n%            bunschot@wins.uva.nl\n% Last Rev : Wed Oct 20 08:58:08 MET DST 1999\n% Tested   : PC Matlab v5.2 and Solaris Matlab v5.3\n\n% Copyright notice: You are free to modify, extend and distribute \n%    this code granted that the author of the original code is \n%    mentioned as the original author of the code.\n\n% Fixed by JBT (3/18/00) to work for 1-dimensional vectors\n% and to warn for imaginary numbers.  Also ensures that \n% output is all real, and allows the option of forcing diagonals to\n% be zero.  \n\nif (nargin < 2)\n   error('Not enough input arguments');\nend\n\nif (nargin < 3)\n   df = 0;    % by default, do not force 0 on the diagonal\nend\n\nif (size(a,1) ~= size(b,1))\n   error('A and B should be of same dimensionality');\nend\n\nif ~(isreal(a)*isreal(b))\n   disp('Warning: running distance.m with imaginary numbers.  Results may be off.'); \nend\n\nif (size(a,1) == 1)\n  a = [a; zeros(1,size(a,2))]; \n  b = [b; zeros(1,size(b,2))]; \nend\n\naa=sum(a.*a); bb=sum(b.*b); ab=a'*b; \nd = sqrt(repmat(aa',[1 size(bb,2)]) + repmat(bb,[size(aa,2) 1]) - 2*ab);\n\n% make sure result is all real\nd = real(d); \n\n% force 0 on the diagonal? \nif (df==1)\n  d = d.*(1-eye(size(d)));\nend\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/alexander_whitney_difference.m",
    "content": "function d = alexander_whitney_difference(map, domain_aw_matrix, codomain_aw_matrix)\n    domain_size = size(domain_aw_matrix, 2);\n    codomain_size = size(domain_aw_matrix, 2);\n    RHS = zeros(codomain_size^2, domain_size);\n    for j = 1:domain_size\n        RHS(:, j) = fast_kron_mult(map, map, domain_aw_matrix(:, j));\n    end\n    LHS = codomain_aw_matrix * map;\n    \n    d = LHS - RHS;\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/alexander_whitney_loss_function.m",
    "content": "function z = alexander_whitney_loss_function(map, domain_aw_matrix, codomain_aw_matrix, loss_function)\n    domain_size = size(domain_aw_matrix, 2);\n    codomain_size = size(domain_aw_matrix, 2);\n    z = 0;\n    for j = 1:domain_size\n        LHS = codomain_aw_matrix * map(:, j);\n        RHS = fast_kron_mult(map, map, domain_aw_matrix(:, j));\n        z = z + loss_function(LHS - RHS);\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/circle_distance.m",
    "content": "function d = circle_distance(a, b)\r\n    d = b - a;\r\n    while d < 0\r\n        d = d + 2 * pi;\r\n    end\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/codomain_points.txt",
    "content": "2.3915,1.9307\n-3.5606,5.6496e-016\n-2.6114,6.5992e-016\n-2.2531,1.353\n-2.2531,-1.353\n-1.3621,2.3961\n-1.3621,-2.3961\n-0.13125,-2.8902\n-0.13125,2.8902\n1.2007,-2.7223\n1.2007,2.7223\n2.3915,-1.9307\n3.2403,-0.69676\n3.2403,0.69676\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/codomain_stream.txt",
    "content": "0,0\r\n0,1\r\n0,2\r\n0,3\r\n0,4\r\n0,5\r\n0,6\r\n0,7\r\n0,8\r\n0,9\r\n0,10\r\n0,11\r\n0,12\r\n0,13\r\n0,0,10\r\n0,0,13\r\n0,1,2\r\n0,2,3\r\n0,2,4\r\n0,3,5\r\n0,4,6\r\n0,5,8\r\n0,6,7\r\n0,7,9\r\n0,8,10\r\n0,9,11\r\n0,11,12\r\n0,12,13\r\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/colorGraph.m",
    "content": "function  [nodeColors] = colorGraph(G)\n% [nodeColors] = colorGraph(G)\n% INPUT :\n% G : Adjacency Matrix, '1' indicates a link.\n%\n% OUTPUT:\n% nodeColors: Color of each node\n\n%    BEGIN COPYRIGHT NOTICE\n%\n%    Mapper code -- (c) 2007-2009 Gurjeet Singh\n%\n%    This code is provided as is, with no guarantees except that \n%    bugs are almost surely present.  \n%\n%    Comments and bug reports are welcome.  Email to \n%    gurjeet@stanford.edu. \n%    I would also appreciate hearing about how you used this code, \n%    improvements that you have made to it, or translations into other\n%    languages.    \n%\n%    You are free to modify, extend or distribute this code, as long \n%    as this copyright notice is included whole and unchanged.  \n%\n%    END COPYRIGHT NOTICE\n\n[numNodes, numNodes] = size(G);\nnodeColors = zeros(1, numNodes);\ncolor = 1;\n%start searching from node 1...\nq = [1];\nnodeColors(q(1)) = color;\n%gr = zeros(size(G));\nwhile(length(find(nodeColors == 0)) ~= 0)\n    while(length(q) ~= 0)\n        currnode = q(1);\n        q = q(2:length(q));\n        connectednodes = find(G(currnode,:)==1);\n        for i=1:length(connectednodes)\n            if(nodeColors(connectednodes(i)) == 0)\n                %gr(currnode, connectednodes(i)) = color;\n                %gr(connectednodes(i), currnode) = color;\n                nodeColors(connectednodes(i)) = color;\n                q = [q connectednodes(i)];\n            end\n            %imagesc(gr);\n        end\n    end\n    colorless = find(nodeColors == 0);\n    if(length(colorless) > 0)\n        q = [colorless(1)];\n        color = color + 1;\n        nodeColors(q(1)) = color;\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/compute_interpolated_points.m",
    "content": "function [interpolated_points] = compute_interpolated_points(mapping, domain_points, codomain_points)\n\n[I_0, domain_dimension] = size(domain_points);\n[J_0, codomain_dimension] = size(codomain_points);\n\nvertex_mapping = mapping(1:J_0, 1:I_0);\n\ninterpolated_points = vertex_mapping' * codomain_points;\n\n%interpolated_points = mod(interpolated_points, 2 * pi);\n\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/compute_mapping.m",
    "content": "function mapping = compute_mapping(cycle_sum, homotopies, coefficients)\r\n% This function computes the representative chain map by adding homotopies\r\n% to the cycle sum with the given coefficients.\r\n\r\n    mapping = cycle_sum;\r\n    K = length(coefficients);\r\n    for k = 1:K\r\n        mapping = mapping + coefficients(k) * homotopies{k};\r\n    end\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/convert_sparse_matrix.m",
    "content": "function matlab_sparse_matrix = convert_sparse_matrix(sparse_primitivelib_matrix)\n% matlab_sparse_matrix = convert_sparse_matrix(formal_sum, matrix_converter)\n%\n% INPUTS:\n% sparse_primitivelib_matrix: an object of type DoubleSparseMatrix or\n% IntSparseMatrix\n%\n% OUTPUTS:\n% matlab_sparse_matrix: a matlab sparse matrix equivalent of the java\n% sparse matrix\n    import edu.stanford.math.plex4.*;\n    m = sparse_primitivelib_matrix.getNumRows();\n    n = sparse_primitivelib_matrix.getNumColumns();\n    i = sparse_primitivelib_matrix.getRows()' + 1;\n    j = sparse_primitivelib_matrix.getColumns()' + 1;    \n    s = sparse_primitivelib_matrix.getValues()';\n    matlab_sparse_matrix = sparse(m, n);\n    for k = 1:length(i)\n        matlab_sparse_matrix(i(k), j(k)) = s(k);\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/create_max_lp.m",
    "content": "function [f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, opt_max_constraint, opt_f)\n\n    K = size(homotopies, 1);\n    [I, J] = size(homotopies{1});\n\n    %{\n    x = [c_1 ... c_K, s_11 ... s_IJ, t_1 ... t_J, u_1 ... u_I, t, u]\n    %}\n\n    num_variables = K + I*J + I + J + 2;\n    num_constraints = 2 * (I*J + I + J) + 1;\n\n    A = sparse(num_constraints, num_variables);\n    b = sparse(num_constraints, 1);\n    f = sparse(num_variables, 1);\n\n    for i = 1:I\n        for j = 1:J\n            s_index = K + flatten(i, j, I, J);\n            constraint_index = 2 * flatten(i, j, I, J) - 1;\n            A(constraint_index, s_index) = -1;\n            A(constraint_index + 1, s_index) = -1;\n        end\n    end\n\n    for k = 1:K\n        [i_indices, j_indices, values] = find(homotopies{k});\n        count = length(i_indices);\n        for index = 1:count\n            i = i_indices(index);\n            j = j_indices(index);\n            v = values(index);\n            constraint_index = 2 * flatten(i, j, I, J) - 1;\n            A(constraint_index, k) = v;\n            A(constraint_index + 1, k) = -v;\n        end\n    end\n\n    [i_indices, j_indices, values] = find(cycle_sum);\n    count = length(i_indices);\n    for index = 1:count\n        i = i_indices(index);\n        j = j_indices(index);\n        v = values(index);\n        s_index = K + flatten(i, j, I, J);\n        constraint_index = 2 * flatten(i, j, I, J) - 1;\n        b(constraint_index) = -v;\n        b(constraint_index + 1) = v;\n    end\n\n    constraint_index = 2 * I * J + 1;\n\n    for j = 1:J\n        t_j_index = K + I*J + j;\n        A(constraint_index, t_j_index) = -1;\n        for i = 1:I\n            s_ij_index = K + flatten(i, j, I, J);\n            A(constraint_index, s_ij_index) = 1;\n        end\n        constraint_index = constraint_index + 1;\n    end\n\n    for i = 1:I\n        u_i_index = K + I*J + J + i;\n        A(constraint_index, u_i_index) = -1;\n        for j = 1:J\n            s_ij_index = K + flatten(i, j, I, J);\n            A(constraint_index, s_ij_index) = 1;\n        end\n        constraint_index = constraint_index + 1;\n    end\n\n    t_index = K + I*J + J + I + 1;\n    u_index = t_index + 1;\n\n    for j = 1:J\n        t_j_index = K + I*J + j;\n        A(constraint_index, t_j_index) = 1;\n        A(constraint_index, t_index) = -1;\n        constraint_index = constraint_index + 1;\n    end\n\n    for i = 1:I\n        u_i_index = K + I*J + J + i;\n        A(constraint_index, u_i_index) = 1;\n        A(constraint_index, u_index) = -1;\n        constraint_index = constraint_index + 1;\n    end\n\n    if (exist('opt_max_constraint', 'var'))\n        A(constraint_index, t_index) = 1;\n        A(constraint_index, u_index) = 1;\n        b(constraint_index) = opt_max_constraint + 0.1;\n    end\n\n    f(t_index) = 1;\n    f(u_index) = 1;\n\n    if (exist('opt_f', 'var'))\n        f(1:length(opt_f)) = opt_f;\n    end\n\n    large = 100;\n\n    Aeq = [];\n    beq = [];\n    lb = -large * ones(num_variables, 1);\n    ub = large * ones(num_variables, 1);\n\n    for k = 1:K\n        lb(k) = -large;\n        ub(k) = large;\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/create_positive_lp.m",
    "content": "function [f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies, opt_max_constraint, opt_f)\n\n    K = size(homotopies, 1);\n    [I, J] = size(homotopies{1});\n\n    %{\n    x = [c_1 ... c_K, a_11 ... a_IJ, r_1 ... r_I, l_1 ... l_J, r, l]\n    a_ij = sum_k c_k H_ij^k + H_ij^0\n    r_i = sum_i a_ij (sum over i'th row)\n    l_j = sum_j a_ij (sum over j'th col)\n\n    r >= r_i (all i)\n    l >= l_j (all j)\n\n    Equality constraints:\n\n    for i, j = 1, 1 ... I, J:\n        a_ij = sum_k sum_k c_k H_ij^k + H_ij^0\n\n    for i = 1 ... I:\n        r_i = sum_i a_ij\n\n    for j = 1 ...  J:\n        l_j = sum_j a_ij\n\n    Inequality constraints:\n\n    for i = 1 ... I:\n        r >= r_i\n\n    for j = 1 ...  J:\n        l >= l_j\n\n    r + l <= fval\n\n    ub/lb constraints:\n    for i, j = 1, 1 ... I, J:\n        a_ij >= 0\n\n    minimize max_i r_i + max_j l_j\n\n    %}\n\n    num_variables = K + I*J + I + J + 2;\n\n    num_equality_constraints = I*J + I + J;\n    num_inequality_constraints = I + J + 1;\n\n    Aeq = sparse(num_equality_constraints, num_variables);\n    beq = sparse(num_equality_constraints, 1);\n    A = sparse(num_inequality_constraints, num_variables);\n    b = sparse(num_inequality_constraints, 1);\n    f = sparse(num_variables, 1);\n    lb = sparse(num_variables, 1);\n    ub = sparse(num_variables, 1);\n\n    for i = 1:I\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            equality_constraint_index = flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = -1;\n        end\n    end\n\n    for k = 1:K\n        [i_indices, j_indices, values] = find(homotopies{k});\n        count = length(i_indices);\n        for index = 1:count\n            i = i_indices(index);\n            j = j_indices(index);\n            v = values(index);\n            equality_constraint_index = flatten(i, j, I, J);\n            Aeq(equality_constraint_index, k) = v;\n        end\n    end\n\n    [i_indices, j_indices, values] = find(cycle_sum);\n    count = length(i_indices);\n    for index = 1:count\n        i = i_indices(index);\n        j = j_indices(index);\n        v = values(index);\n        equality_constraint_index = flatten(i, j, I, J);\n        beq(equality_constraint_index) = -v;\n    end\n\n\n    for i = 1:I\n        r_i_index = K + I*J + i;\n        equality_constraint_index = I*J + i;\n        Aeq(equality_constraint_index, r_i_index) = -1;\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = 1;\n        end\n    end\n\n    for j = 1:J\n        l_j_index = K + I*J + I + j;\n        equality_constraint_index = I*J + I + j;\n        Aeq(equality_constraint_index, l_j_index) = -1;\n        for i = 1:I\n            a_ij_index = K + flatten(i, j, I, J);\n            Aeq(equality_constraint_index, a_ij_index) = 1;\n        end\n    end\n\n    r_index = K + I*J + I + J + 1;\n    l_index = K + I*J + I + J + 2;\n\n    for i = 1:I\n        r_i_index = K + I*J + i;\n        inequality_constraint_index = i;\n        A(inequality_constraint_index, r_index) = -1;\n        A(inequality_constraint_index, r_i_index) = 1;\n    end\n    \n    K = size(homotopies, 1);\n    [I, J] = size(homotopies{1});\n\n    for j = 1:J\n        l_j_index = K + I*J + I + j;\n        inequality_constraint_index = I + j;\n        A(inequality_constraint_index, l_index) = -1;\n        A(inequality_constraint_index, l_j_index) = 1;\n    end\n\n    for index = 1:num_variables\n        lb(index) = -inf;\n        ub(index) = inf;\n    end\n\n    for index = 1:K\n        lb(index) = -1;\n        ub(index) = 1;\n    end\n\n    for i = 1:I\n        for j = 1:J\n            a_ij_index = K + flatten(i, j, I, J);\n            lb(a_ij_index) = 0;\n            ub(a_ij_index) = 1;\n        end\n    end\n\n    if (exist('opt_max_constraint', 'var'))\n        inequality_constraint_index = I + J + 1;\n        A(inequality_constraint_index, l_index) = 1;\n        A(inequality_constraint_index, r_index) = 1;\n        b(inequality_constraint_index) = opt_max_constraint;\n    end\n    \n    f(r_index) = 1;\n    f(l_index) = 1;\n    \n    if (exist('opt_f', 'var'))\n        f(1:length(opt_f)) = opt_f;\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/create_quotient_complex.m",
    "content": "function [stream,collapsed_adjacency_matrix] = create_quotient_complex(adjacency_matrix, filter_values)\r\n    import edu.stanford.math.plex4.*;\r\n    stream = api.Plex4.createExplicitSimplexStream();\r\n    [m, n] = size(adjacency_matrix);\r\n    maxima = [];\r\n    for i = 1:m\r\n        [r, c] = find(adjacency_matrix(i, :));\r\n        candidates = filter_values(c);\r\n        if (length(candidates) == 1 && filter_values(i) >= candidates(1))\r\n            maxima = [maxima i]\r\n        end\r\n        if (filter_values(i) > max(candidates))\r\n            %maxima = [maxima i]\r\n        end\r\n    end\r\n    \r\n    % add quotient vertex\r\n    stream.addVertex(0);\r\n    \r\n    vertex_index = 1;\r\n    vertex_mapping = zeros(m, 1);\r\n    collapsed_filter_values = [];\r\n    for i = 1:m\r\n        c = find(maxima == i);\r\n        if (isempty(c))\r\n            vertex_mapping(i) = vertex_index;\r\n            stream.addVertex(vertex_index);\r\n            collapsed_filter_values(vertex_index + 1) = filter_values(vertex_index);\r\n            vertex_index = vertex_index + 1;\r\n        else\r\n            \r\n        end\r\n    end\r\n    \r\n    num_vertices = vertex_index;\r\n    collapsed_adjacency_matrix = zeros(num_vertices, num_vertices);\r\n    \r\n    for i = 1:m\r\n        [r, c] = find(adjacency_matrix(i, :));\r\n        vertex_i = vertex_mapping(i);\r\n        for j = c\r\n            if (j > i)\r\n                vertex_j = vertex_mapping(j);\r\n                if (vertex_i ~= 0 || vertex_j ~= 0)\r\n                    stream.addElement([vertex_i, vertex_j]);\r\n                    collapsed_adjacency_matrix(vertex_i, vertex_j) = 1;\r\n                    collapsed_adjacency_matrix(vertex_j, vertex_i) = 1;\r\n                end\r\n            end\r\n        end\r\n    end\r\n    \r\n    \r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/create_quotient_mapper_complex.m",
    "content": "function [stream, filter, adjacency_matrix, set_size] = create_quotient_mapper_complex(X)\r\n    % Find the Inter-point Distance Matrix\r\n    d = L2_distance(X',X',1);\r\n\r\n    % Find the filter, here we use the distance from the first point\r\n    eccFilter = d(1, :);\r\n    figure;\r\n    scatter(X(:,1), X(:,2), 1000, eccFilter, '.');\r\n    axis equal;\r\n\r\n    % Parameters for Mapper\r\n    filterSamples = 5;\r\n    overlapPct = 50;\r\n\r\n    % Run Mapper\r\n    [adja, nodeInfo, levelIdx] = mapper(d, eccFilter, 1/filterSamples,...\r\n        overlapPct);\r\n    \r\n    % Prepare inputs for GraphViz\r\n    % For each node of the output graph, find the size (~ cardinality of the\r\n    % cluster) and the average function value of points in the cluster.\r\n    label{1} = sprintf('Dataset Name   : test');\r\n    label{2} = sprintf('Filter Samples : %d', filterSamples);\r\n    label{3} = sprintf('Overlap Pct    : %0.2f', overlapPct);\r\n\r\n    for i=1:length(nodeInfo)\r\n        ecc(i) = nodeInfo{i}.filter;\r\n        setSize(i) = length(nodeInfo{i}.set);\r\n    end\r\n\r\n    % Generate the input to Graphviz\r\n    writeDotFile(sprintf('t1.dot'), adja, ecc, setSize, label);\r\n\r\n    % Execute Graphviz\r\n    system(sprintf('\\\"C:\\\\Program Files (x86)\\\\Graphviz2.22\\\\bin\\\\neato.exe\\\" -Tpng t1.dot -o t1.png'));\r\n    figure;\r\n    imshow('t1.png')\r\n\r\n    %\r\n    stream = create_quotient_complex(adja, ecc);\r\n    stream.finalizeStream();\r\n    \r\n    filter = ecc;\r\n    adjacency_matrix = adja;\r\n    set_size = setSize;\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/density_at_point.m",
    "content": "function [ density ] = density_at_point(cluster_center,cluster_density,point)\n%DENSITY_AT_POINT Summary of this function goes here\n%   Detailed explanation goes here\nif (cluster_density==0)\n    density = 0;\n    return;\nend\n\ns = cluster_density;\ncoef = 1/sqrt(2*pi*s^2);\ndensity = coef*exp(-norm(cluster_center - point)^2 / (2*s^2));\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/density_function.m",
    "content": "function [f,g] = density_function(D,sigma,x)\n% DENSITY_FUNCTION N-dimensional (symmetric) gaussian density estimation\n% function. This returns -1 times the function value so that minimizing it\n% actually finds the maximimum.\n%\n% INPUT:    D           n x d matrix of n d-dimensional points\n%           sigma       standard deviation\n%           x           function argument\n%\n% OUTPUT:   f           the scalar function value at x\n%           g           the vector gradient value at x\n\n    n = size(D,1);\n\n    % Compute the value of the function at x\n    f = 0; g = x*0;\n    for i=1:n\n        y = D(i,:);\n        f = f + evalfun(x,y,sigma);\n        g = g + evalgrad(x,y,sigma);\n    end\n\n    % Compute the gradient if it is needed\n    if nargout > 1\n    end \n\nend\n\nfunction g = evalgrad(x,y,sigma) \n    g = (x-y)*exp(-norm(x-y)^2/(2*sigma^2))/(sqrt(2*pi)*sigma^3);\nend\n\nfunction f = evalfun(x,y,sigma)\n    f = -exp(-norm(x-y)^2/(2*sigma^2))/sqrt(2*pi*sigma^2);\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/density_maximization_test.m",
    "content": "\r\nclc; clear; close all;\r\n\r\ndomain_size = 4;\r\ncodomain_size = 200;\r\n\r\n% create the domain and codomain simplicial complexes\r\n\r\n%{\r\nwidth = 4;\r\nlength = 8;\r\ndomain_stream = examples.SimplexStreamExamples.getAnnulus(width, length);\r\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\r\n\r\ndomain_points = examples.PointCloudExamples.getAnnulusVertices(width, length);\r\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\r\n%}\r\n\r\n%{\r\ndomain_stream = examples.SimplexStreamExamples.getIcosahedron();\r\ncodomain_stream = examples.SimplexStreamExamples.getOctahedron();\r\n\r\ndomain_points = examples.PointCloudExamples.getIcosahedronVertices();\r\ncodomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1;\r\n%}\r\n\r\n%{\r\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\r\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\r\n\r\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\r\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\r\ncodomain_points = codomain_points + 0 * ones(codomain_size, 1) * [3, 0];\r\n\r\ndomain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))';\r\ncodomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))';\r\n%}\r\n\r\n\r\nutility.RandomUtility.initializeWithSeed(0);\r\nhold on;\r\n%codomain_points = examples.PointCloudExamples.getRandomTrefoilKnotPoints(codomain_size);\r\ncodomain_points = examples.PointCloudExamples.getRandomSpherePoints(codomain_size, 2);\r\nplot3(codomain_points(:, 1), codomain_points(:, 2), codomain_points(:, 3), 'bx') + randn() * 0.1;\r\n%scatter(codomain_points(:, 1), codomain_points(:, 2), 'bx');\r\n%domain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\r\ndomain_points = examples.PointCloudExamples.getTetrahedronVertices();\r\n%domain_points = domain_points + ones(domain_size, 1) * [3, 0];\r\n\r\n% create a randomized landmark selector\r\nlandmark_selector = api.Plex4.createMaxMinSelector(codomain_points, min(codomain_size / 2, 20));\r\n% create a Lazy-Witness Stream - note that this sets the number of\r\n% divisions to the default value of 20\r\ncodomain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 3, 0.2, 1);\r\ncodomain_stream.finalizeStream();\r\noriginal_codomain_points = codomain_points;\r\ncodomain_points = codomain_points(landmark_selector.getLandmarkPoints()+1, :);\r\n\r\n%domain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\r\ndomain_stream = examples.SimplexStreamExamples.getTetrahedron();\r\ndomain_stream.finalizeStream();\r\n\r\n\r\n% get the default persistence algorithm\r\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(3);\r\n\r\n% compute the intervals and transform them to filtration values\r\ndomain_index_intervals = persistence.computeIntervals(domain_stream)\r\n\r\n% compute the intervals and transform them to filtration values\r\ncodomain_index_intervals = persistence.computeIntervals(codomain_stream)\r\n%%\r\n% obtain the parameterization\r\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\r\n\r\n%%\r\n\r\nsigma = 0.5;\r\n\r\nK = size(homotopies, 1);\r\nedge_list = get_edges(domain_stream);\r\ndistance_function = @(a, b) circle_distance(a, b);3\r\nobjective = @(c) density_objective(compute_mapping(cycle_sum, homotopies, c(1:K)), domain_points, codomain_points, gaussian_kernel_densities(codomain_points, codomain_points, sigma));\r\n\r\n%c_0 = randn(K, 1);\r\n\r\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies);\r\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\r\nfval\r\n% find a random corner point of the set of optima\r\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, (fval * 1.1));\r\n%c_0 = randn(size(lb, 1), 1);\r\nc_0 = randn(K, 1) * 0.1;\r\n\r\noptions.MaxFunEvals = 100000;\r\noptions.MaxIter = 100000;\r\n[x, fval, exitflag, output] = fminunc(objective, c_0, options);\r\n%[x, fval, exitflag, output] = fminsearch(objective, c_0, options);\r\n%[x, fval, exitflag, output] = fmincon(objective, c_0, A, b, Aeq, beq, lb, ub, [], options);\r\n%[x, fval, exitflag, output] = fmincon(objective, c_0, [], [], [], [], lb, ub, [], options);\r\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\r\nmap = (abs(map) > 1e-3) .* map\r\n\r\n%%\r\n\r\n%interpolated_points = compute_interpolated_points((map), domain_points, codomain_points);\r\n%figure;\r\n%plot3(codomain_points(:, 1), codomain_points(:, 2), codomain_points(:, 3), 'bo');\r\nhold on;\r\nplot3(interpolated_points(:, 1), interpolated_points(:, 2), interpolated_points(:, 3), 'ro');\r\ngrid off;\r\nlegend('Codomain Points', 'Domain Points');\r\n%dlmwrite('matrix.txt', full(map));\r\n%figure;\r\n%scatter(domain_theta, mod(interpolated_theta, 2 * pi));\r\n%map = normalize_rows(map);\r\n\r\n\r\n%PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map));\r\n%PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map'));\r\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/density_objective.m",
    "content": "function density = density_objective(map, domain_points, codomain_points, codomain_densities)\r\n    interpolated_points = compute_interpolated_points((map), domain_points, codomain_points);\r\n    \r\n    [I_0, domain_dimension] = size(domain_points);\r\n    [J_0, codomain_dimension] = size(codomain_points);\r\n    \r\n    vertex_mapping = map(1:J_0, 1:I_0);\r\n    %domain_densities = vertex_mapping' * codomain_densities;\r\n    domain_densities = gaussian_kernel_densities(interpolated_points, codomain_points, 0.6);\r\n    \r\n    total_distance = pdist2(interpolated_points);\r\n    lambda = 0.01;\r\n    \r\n    density = -(sum(domain_densities) + lambda * sum(total_distance));\r\n    %density = -min(domain_densities);\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/domain_points.txt",
    "content": "1.1324,2.1763\n-3.6218,-1.0488e-016\n-2.6282,-1.6535e-016\n-1.6346,-4.6861e-017\n-1.1018,1.345\n-1.1018,-1.345\n-0.098373,2.1763\n-0.098373,-2.1763\n1.1324,-2.1763\n2.3434,-1.345\n3.3332,-4.0301e-016\n2.3434,1.345\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/domain_stream.txt",
    "content": "0,0\r\n0,1\r\n0,2\r\n0,3\r\n0,4\r\n0,5\r\n0,6\r\n0,7\r\n0,8\r\n0,9\r\n0,10\r\n0,11\r\n0,0,6\r\n0,0,11\r\n0,1,2\r\n0,2,3\r\n0,3,4\r\n0,3,5\r\n0,4,6\r\n0,5,7\r\n0,7,8\r\n0,8,9\r\n0,9,10\r\n0,10,11\r\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/embedding_optimization_test.asv",
    "content": "\nclc; clear; close all;\n\ndomain_size = 4;\ncodomain_size = 3;\n\n% create the domain and codomain simplicial complexes\n%{\ndomain_stream = examples.SimplexStreamExamples.getTetrahedron();\ncodomain_stream = examples.SimplexStreamExamples.getOctahedron();\n\ndomain_points = examples.PointCloudExamples.getTetrahedronVertices();\ncodomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1;\n%}\n\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\ncodomain_points = codomain_points + ones(codomain_size, 1) * [3, 0];\n\ndomain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))';\ncodomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))';\n\n%{\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size) + randn(domain_size, 2) * 0.03;\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\ndomain_points = domain_points + ones(domain_size, 1) * [3, 0];\n\n% create a randomized landmark selector\nlandmark_selector = api.Plex4.createRandomSelector(domain_points, domain_size / 2);\n% create a Lazy-Witness Stream - note that this sets the number of\n% divisions to the default value of 20\ndomain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 2, 0.4);\ndomain_points = domain_points(landmark_selector.getLandmarkPoints()+1, :);\n\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n%}\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(2);\n\n% compute the intervals and transform them to filtration values\ndomain_index_intervals = persistence.computeIntervals(domain_stream)\n\n% compute the intervals and transform them to filtration values\ncodomain_index_intervals = persistence.computeIntervals(codomain_stream)\n\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\n\n%%\nK = size(homotopies, 1);\nedge_list = get_edges(domain_stream);\ndistance_function = @(a, b) circle_distance(a, b);\nobjective = @(c) smoothness_objective(compute_mapping(cycle_sum, homotopies, c(1:K)), domain_theta, codomain_theta, distance_function, edge_list);\n\n%c_0 = randn(K, 1);\n\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies);\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\nfval\n% find a random corner point of the set of optima\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, (fval));\nc_0 = randn(size(lb, 1), 1);\n\noptions.MaxFunEvals = 100000;\noptions.MaxIter = 100000;\n%[x, fval, exitflag, output] = fminunc(objective, c_0, options);\n[x, fval, exitflag, output] = fminsearch(objective, c_0, options);\n%[x, fval, exitflag, output] = fmincon(objective, c_0, A, b, Aeq, beq, lb, ub, [], options);\n\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\nmap = (abs(map) > 1e-3) .* map\n\n%%\ninterpolated_theta = compute_interpolated_points(map, domain_points, codomain_theta);\n\ninterpolated_points = [cos(interpolated_theta), sin(interpolated_theta)];\ncodomain_points = [cos(codomain_theta), sin(codomain_theta)];\n\nscatter(codomain_points(:, 1), codomain_points(:, 2), 'bo');\nhold on;\nscatter(interpolated_points(:, 1), interpolated_points(:, 2), 'rx');\n\nfigure;\nscatter(domain_theta, interpolated_theta);\n%map = normalize_rows(map);\n\n%PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map));\n%PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map'));\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/embedding_optimization_test.m",
    "content": "\nclc; clear; close all;\n\ndomain_size = 20;\ncodomain_size = 3;\n\n% create the domain and codomain simplicial complexes\n%{\ndomain_stream = examples.SimplexStreamExamples.getTetrahedron();\ncodomain_stream = examples.SimplexStreamExamples.getOctahedron();\n\ndomain_points = examples.PointCloudExamples.getTetrahedronVertices();\ncodomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1;\n%}\n\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\ncodomain_points = codomain_points + ones(codomain_size, 1) * [3, 0];\n\ndomain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))';\ncodomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))';\n\n%{\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size) + randn(domain_size, 2) * 0.03;\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\ndomain_points = domain_points + ones(domain_size, 1) * [3, 0];\n\n% create a randomized landmark selector\nlandmark_selector = api.Plex4.createRandomSelector(domain_points, domain_size / 2);\n% create a Lazy-Witness Stream - note that this sets the number of\n% divisions to the default value of 20\ndomain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 2, 0.4);\ndomain_points = domain_points(landmark_selector.getLandmarkPoints()+1, :);\n\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n%}\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(2);\n\n% compute the intervals and transform them to filtration values\ndomain_index_intervals = persistence.computeIntervals(domain_stream)\n\n% compute the intervals and transform them to filtration values\ncodomain_index_intervals = persistence.computeIntervals(codomain_stream)\n\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\n\n%%\nK = size(homotopies, 1);\nedge_list = get_edges(domain_stream);\ndistance_function = @(a, b) circle_distance(a, b);\nobjective = @(c) smoothness_objective(compute_mapping(cycle_sum, homotopies, c(1:K)), domain_theta, codomain_theta, distance_function, edge_list);\n\n%c_0 = randn(K, 1);\n\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies);\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\nfval\n% find a random corner point of the set of optima\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, (fval));\nc_0 = randn(size(lb, 1), 1);\n\noptions.MaxFunEvals = 100000;\noptions.MaxIter = 100000;\n%[x, fval, exitflag, output] = fminunc(objective, c_0, options);\n%[x, fval, exitflag, output] = fminsearch(objective, c_0, options);\n%[x, fval, exitflag, output] = fmincon(objective, c_0, A, b, Aeq, beq, lb, ub, [], options);\n[x, fval, exitflag, output] = fmincon(objective, c_0, [], [], [], [], lb, ub, [], options);\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\nmap = (abs(map) > 1e-3) .* map\n\n%%\ninterpolated_theta = compute_interpolated_points(map, domain_points, codomain_theta);\n\ninterpolated_points = [cos(interpolated_theta), sin(interpolated_theta)];\ncodomain_points = [cos(codomain_theta), sin(codomain_theta)];\n\nscatter(codomain_points(:, 1), codomain_points(:, 2), 'bo');\nhold on;\nscatter(interpolated_points(:, 1), interpolated_points(:, 2), 'ro');\nlegend('Codomain Points', 'Domain Points');\n\nfigure;\nscatter(domain_theta, mod(interpolated_theta, 2 * pi));\n%map = normalize_rows(map);\n\n\n%PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map));\n%PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map'));\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/embedding_optimization_test2.m",
    "content": "\r\nclc; clear; close all;\r\n\r\ndomain_size = 10;\r\ncodomain_size = 3;\r\n\r\n% create the domain and codomain simplicial complexes\r\n%{\r\ndomain_stream = examples.SimplexStreamExamples.getTetrahedron();\r\ncodomain_stream = examples.SimplexStreamExamples.getOctahedron();\r\n\r\ndomain_points = examples.PointCloudExamples.getTetrahedronVertices();\r\ncodomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1;\r\n%}\r\n\r\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\r\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\r\n\r\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\r\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\r\ncodomain_points = codomain_points + ones(codomain_size, 1) * [3, 0];\r\n\r\ndomain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))';\r\ncodomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))';\r\n\r\n%{\r\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size) + randn(domain_size, 2) * 0.03;\r\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\r\ndomain_points = domain_points + ones(domain_size, 1) * [3, 0];\r\n\r\n% create a randomized landmark selector\r\nlandmark_selector = api.Plex4.createRandomSelector(domain_points, domain_size / 2);\r\n% create a Lazy-Witness Stream - note that this sets the number of\r\n% divisions to the default value of 20\r\ndomain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 2, 0.4);\r\ndomain_points = domain_points(landmark_selector.getLandmarkPoints()+1, :);\r\n\r\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\r\n%}\r\n\r\n% get the default persistence algorithm\r\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(2);\r\n\r\n% compute the intervals and transform them to filtration values\r\ndomain_index_intervals = persistence.computeIntervals(domain_stream)\r\n\r\n% compute the intervals and transform them to filtration values\r\ncodomain_index_intervals = persistence.computeIntervals(codomain_stream)\r\n\r\n% obtain the parameterization\r\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\r\n\r\n%%\r\nK = size(homotopies, 1);\r\n[J, I] = size(cycle_sum);\r\nv = randn(K, 1);\r\n\r\ncvx_begin\r\n    variable c(K);\r\n    variable G(J, I);\r\n    minimize (v' * c);\r\n    subject to\r\n        G == compute_mapping(cycle_sum, homotopies, c);\r\n        norm(G) <= 1.8257;\r\n        c <= 1;\r\n        c >= -1;\r\ncvx_end\r\n\r\nmap = G\r\n\r\ncvx_optval\r\n\r\n%%\r\ninterpolated_theta = compute_interpolated_points(map, domain_points, codomain_theta);\r\n\r\ninterpolated_points = [cos(interpolated_theta), sin(interpolated_theta)];\r\ncodomain_points = [cos(codomain_theta), sin(codomain_theta)];\r\n\r\nscatter(codomain_points(:, 1), codomain_points(:, 2), 'bo');\r\nhold on;\r\nscatter(interpolated_points(:, 1), interpolated_points(:, 2), 'rx');\r\n\r\nfigure;\r\nscatter(domain_theta, interpolated_theta);\r\n%map = normalize_rows(map);\r\n\r\n%PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map));\r\n%PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map'));\r\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/fast_kron_mult.m",
    "content": "function y = fast_kron_mult(B, C, x)\n% y = fast_kron_mult(B, C, x)\n%\n% This function executes the operation y = kron(B *C) * x asymptotically faster\n% by instead calculating C * X * B', where X is a reshaped matrix version\n% of x.\n% \n% INPUTS:\n% B: a matrix of size m x n\n% C: a matrix of size m x n\n% x: a vector of length n^2\n%\n% OUTPUTS:\n% the vector which is equal to y = kron(B, C) * x\n    m = size(B, 1);\n    n = size(B, 2);\n    y = reshape(C*reshape(x,n,n)*B',m*m,1);\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/flatten.m",
    "content": "function index = flatten(i, j, I, J)\n    index = J * (i - 1) + j;\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/floyd_warshall.m",
    "content": "function distances = floyd_warshall(adjacency_matrix)\r\n    n = size(adjacency_matrix, 1);\r\n    distances = zeros(n, n);\r\n    \r\n    for i = 1:n\r\n        for j = 1:n\r\n            if (adjacency_matrix(i, j) ~= 0)\r\n                distances(i, j) = adjacency_matrix(i, j);\r\n            else\r\n                distances(i, j) = 10;\r\n            end\r\n        end\r\n    end\r\n    \r\n    for k = 1:n\r\n        for i = 1:n\r\n            for j = 1:n\r\n                distances(i, j) = min(distances(i, j), distances(i, k) + distances(k, j));\r\n            end\r\n        end\r\n    end\r\n    \r\n    for i = 1:n\r\n        distances(i, i) = 0;\r\n    end\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/gaussian_kernel_densities.m",
    "content": "function densities = gaussian_kernel_densities(points, reference_points, sigma)\r\n    n = size(points, 1);\r\n    densities = zeros(n, 1);\r\n    for i = 1:n\r\n        densities(i) = gaussian_kernel_density(points(i, :), reference_points, sigma);\r\n    end\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/gaussian_kernel_density.m",
    "content": "function density = gaussian_kernel_density(x, points, sigma)\r\n    density = 0;\r\n    n = size(points, 1);\r\n    dimension = size(points, 2);\r\n    multiplier = 1 / (sigma * sqrt(2 * pi));\r\n    exp_multiplier = 1 / (2 * sigma * sigma);\r\n    for point = points'\r\n        contribution = 1;\r\n        for i = 1:dimension\r\n            contribution = contribution * exp(-exp_multiplier * (point(i) - x(i))^2) * multiplier;\r\n        end\r\n        density = density + contribution;\r\n    end\r\n    density = density / n;\r\nend\r\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/get_edges.m",
    "content": "function [edge_list] = get_edges(stream)\r\n    num_edges = 0;\r\n    iterator = stream.iterator();\r\n    while (iterator.hasNext())\r\n        simplex = iterator.next();\r\n        if (simplex.getDimension() == 1)\r\n            num_edges = num_edges + 1;\r\n        end\r\n    end\r\n    \r\n    edge_list = zeros(num_edges, 2);\r\n    count = 1;\r\n    iterator = stream.iterator();\r\n    while (iterator.hasNext())\r\n        simplex = iterator.next();\r\n        if (simplex.getDimension() == 1)\r\n            edge_list(count, :) = simplex.getVertices();\r\n            count = count + 1;\r\n        end\r\n    end\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/gradient.m",
    "content": "function g = gradient(f, x, h)\n    if (nargin < 3)\n        h = 1e-5;\n    end\n    h_inv = 1 / h;\n    [m, n] = size(x);\n    g = zeros(m, n);\n    f_x = f(x);\n    for i = 1:m\n        for j = 1:n\n            x_new = x;\n            x_new(i, j) = x_new(i, j) + h;\n            g(i, j) = f(x_new) - f_x;\n        end\n    end\n    g = g * h_inv;\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/graph_embedding.m",
    "content": "function points = graph_embedding(adjacency_matrix, dimension)\r\n    n = size(adjacency_matrix, 1);\r\n    distances = floyd_warshall(adjacency_matrix);\r\n    [Y, eigvals] = cmdscale(distances);\r\n    points = zeros(n, dimension);\r\n    width = size(Y, 2);\r\n    points(:, 1:dimension) = Y(:, min(width, 1:dimension));\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/hom_example_test.m",
    "content": "% This script shows an example of computing the parameterization of the\r\n% space of chain maps\r\n\r\nclc; clear; close all;\r\n\r\n% create the domain and codomain simplicial complexes\r\ndomain_stream = examples.SimplexStreamExamples.getTetrahedron();\r\ncodomain_stream = examples.SimplexStreamExamples.getTetrahedron();\r\n\r\n% obtain the parameterization\r\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream)\r\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/hom_optimization_example.m",
    "content": "\nclc; clear; close all;\n\ndomain_size = 10;\ncodomain_size = 4;\n\n% create the domain and codomain simplicial complexes\n\n%{\nwidth = 4;\nlength = 8;\ndomain_stream = examples.SimplexStreamExamples.getAnnulus(width, length);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getAnnulusVertices(width, length);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\n\n%}\n\n%{\ndomain_stream = examples.SimplexStreamExamples.getIcosahedron();\ncodomain_stream = examples.SimplexStreamExamples.getOctahedron();\n\ndomain_points = examples.PointCloudExamples.getIcosahedronVertices();\ncodomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1;\n%}\n\n%{\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\ncodomain_points = codomain_points + ones(codomain_size, 1) * [3, 0];\n\ndomain_theta = ([0:domain_size - 1] * (2 * pi / domain_size))';\ncodomain_theta = ([0:codomain_size - 1] * (2 * pi / codomain_size))';\n\n%}\n\nutility.RandomUtility.initializeWithSeed(0);\n\ndomain_points = examples.PointCloudExamples.getRandomTrefoilKnotPoints(domain_size);\nplot3(domain_points(:, 1), domain_points(:, 2), domain_points(:, 3), 'bx');\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\n%domain_points = domain_points + ones(domain_size, 1) * [3, 0];\n\n% create a randomized landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(domain_points, 10);\n% create a Lazy-Witness Stream - note that this sets the number of\n% divisions to the default value of 20\ndomain_stream = api.Plex4.createLazyWitnessStream(landmark_selector, 2, 0.5, 20);\ndomain_stream.finalizeStream();\ndomain_points = domain_points(landmark_selector.getLandmarkPoints()+1, :);\n\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\ncodomain_stream.finalizeStream();\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(2);\n\n% compute the intervals and transform them to filtration values\ndomain_index_intervals = persistence.computeIntervals(domain_stream)\n\n% compute the intervals and transform them to filtration values\ncodomain_index_intervals = persistence.computeIntervals(codomain_stream)\n%%\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\n\n% setup the LP - find a feasible point and the value of the max function in\n% the set C\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies);\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\nfval\n% find a random corner point of the set of optima\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, fval, randn(size(homotopies, 1), 1));\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\n\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\nmap = (abs(map) > 1e-3) .* map\n%%\nmap = normalize_rows(map);\n%map = normalize_rows(map')';\n%%\ndlmwrite('matrix.txt', full(map));\n\n%%\n%interpolated_theta = compute_interpolated_points(map, domain_points, codomain_theta);\n\n%interpolated_points = [cos(interpolated_theta), sin(interpolated_theta)];\n%codomain_points = [cos(codomain_theta), sin(codomain_theta)];\n\n%scatter(codomain_points(:, 1), codomain_points(:, 2), 'bo');\n%hold on;\n%scatter(interpolated_points(:, 1), interpolated_points(:, 2), 'rx');\n\n%figure;\n%scatter(domain_theta, interpolated_theta);\n%map = normalize_rows(map);\n\nPlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map));\n%PlexViewer.drawMapping(codomain_stream, codomain_points, domain_stream, domain_points, abs(map'));\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/hom_parameterization.m",
    "content": "function [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream)\r\n% [cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream)\r\n%\r\n% INPUTS\r\n% domain_stream: an object of type AbstractFilteredStream<Simplex> which\r\n% contains the contents of the domain\r\n% codomain_stream: an object of type AbstractFilteredStream<Simplex> which\r\n% contains the contents of the codomain\r\n%\r\n% OUTPUTS\r\n% cycle_sum: a chain map generated by representatives of significant\r\n% intervals in the homology of the hom-complex (a sparse matrix)\r\n% homotopies: a cell array containing the set of chain homotopies as sparse\r\n% matrices\r\n\r\n    import edu.stanford.math.plex4.*;\r\n    import edu.stanford.math.primitivelib.collections.utility.*;\r\n\r\n    matrix_converter = api.Plex4.createHomMatrixConverter(domain_stream, codomain_stream);\r\n    \r\n    hom_stream = api.Plex4.createHomStream(domain_stream, codomain_stream);\r\n    hom_stream.finalizeStream();\r\n\r\n    persistence = api.Plex4.getRationalHomAlgorithm();\r\n\r\n    chain_module = persistence.getChainModule();\r\n\r\n    homotopies = hom_stream.getHomotopiesAsDouble(chain_module);\r\n\r\n    homotopy_matrices = cell(homotopies.size(), 1);\r\n\r\n    m = codomain_stream.getSize();\r\n    n = domain_stream.getSize();\r\n\r\n    index = 1;\r\n    iterator = homotopies.iterator();\r\n    while (iterator.hasNext())\r\n        homotopy = iterator.next();\r\n        homotopy_matrices{index} = to_sparse_matlab_matrix(homotopy, matrix_converter);\r\n        index = index + 1;\r\n    end\r\n\r\n    barcode_collection = persistence.computeAnnotatedIntervals(hom_stream);\r\n\r\n    intervals = barcode_collection.getBarcode(0).getIntervals();\r\n\r\n    cycle_sum = chain_module.createNewSum();\r\n\r\n    iterator = intervals.iterator();\r\n    cycle_index = 1;\r\n    while (iterator.hasNext())\r\n        interval_generator_pair = iterator.next();\r\n        interval = interval_generator_pair.getFirst();\r\n        generator = interval_generator_pair.getSecond();\r\n        if (interval.isInfinite())% && (cycle_index == 1))\r\n            chain_module.accumulate(cycle_sum, generator);\r\n        end\r\n        cycle_index = cycle_index + 1;\r\n    end\r\n    \r\n    cycle_sum = hom_stream.toDoubleFormalSum(cycle_sum);\r\n    cycle_sum = to_sparse_matlab_matrix(cycle_sum, matrix_converter);\r\n    homotopies = homotopy_matrices;\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/hom_visualization_example.m",
    "content": "\nclc; clear; close all;\n\ndomain_size = 4;\ncodomain_size = 3;\n\n% create the domain and codomain simplicial complexes\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size) + 2;\n\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\n\n% do not optimize - just draw the dumb chain map\nPlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, cycle_sum);"
  },
  {
    "path": "src/matlab/experimental/hom_messy/kron_test.m",
    "content": "clc; clear; close all;\n\nm = 10;\nn = 1000;\n\nB = randn(m, n);\nC = randn(m, n);\nx = randn(n*n, 1);\n\ntic()\ny_1 = fast_kron_mult(B, C, x);\ntoc()\n\ntic()\ny_2 = kron(B,C)*x;\ntoc()\n\nmax(abs(y_1 - y_2))"
  },
  {
    "path": "src/matlab/experimental/hom_messy/load_javaplex.m",
    "content": "% This script prepares the javaplex library for use\r\n\r\nclc; clear all; close all;\r\nclear import;\r\n\r\njavaaddpath('./../javaplex.jar');\r\njavaaddpath('./../plex-viewer.jar');\r\njavaaddpath('./../jogl.jar');\r\n\r\nimport edu.stanford.math.plex4.*;\r\nimport edu.stanford.math.plex_viewer.*;"
  },
  {
    "path": "src/matlab/experimental/hom_messy/mapper.m",
    "content": "function [adja, nodeInfo, levelIdx] = mapper(d, filter, resolution, overlap, magicFudge)\n% [adja, nodeInfo, levelIdx] = mapper(d, filter, resolution, overlap, magicFudge)\n%\n% INPUTS\n%  d: Distance matrix\n%  filter: The filter function used to decompose the space\n%  resolution: Defines the length of each interval\n%              length  = (max(filter) - min(filter))*resolution\n%              Default : 1/5\n%  overlap : The % overlap between successive intervals\n%            Default : 50%\n%  magicFudge: The number of histograms to divide each homology plot into\n%              Increase this number if you expect to see more clusters\n%              and decrease it if you are seeing more clusters.\n%              Default : 10\n% OUTPUTS\n%  adja: The adjacency matrix of the output graph.\n%  nodeInfo: Cell array with some information about each node of the output\n%            graph.\n%       nodeInfo{i}.level : The index of the interval to which this\n%                           node belongs.\n%       nodeInfo{i}.filter : The maximum filter value of all the points\n%                           belonging to this node's corresponding cluster.\n%       nodeInfo{i}.set : The set of all points belonging to this node's\n%                         cluster.\n%  levelIdx: Cell array such that\n%       levelIdx{i} contains the list of all output nodes belonging to \n%       each subinterval of the filter.\n\n%    BEGIN COPYRIGHT NOTICE\n%\n%    Mapper code -- (c) 2007-2009 Gurjeet Singh\n%\n%    This code is provided as is, with no guarantees except that \n%    bugs are almost surely present.  Published reports of research \n%    using this code (or a modified version) should cite the \n%    article that describes the algorithm: \n%\n%      G. Singh, F. Memoli, G. Carlsson (2007).  Topological Methods for \n%      the Analysis of High Dimensional Data Sets and 3D Object \n%      Recognition,? Point Based Graphics 2007, Prague, September 2007.\n%\n%    Comments and bug reports are welcome.  Email to \n%    gurjeet@stanford.edu. \n%    I would also appreciate hearing about how you used this code, \n%    improvements that you have made to it, or translations into other\n%    languages.    \n%\n%    You are free to modify, extend or distribute this code, as long \n%    as this copyright notice is included whole and unchanged.  \n%\n%    END COPYRIGHT NOTICE\n\n%% Check input and set defaults\nif nargin < 2\n    error('Too few input arguments');\nelseif nargin < 3\n    % Set resolution to 1/5\n    resolution = 1/5;\n    % Set overlap to 50%\n    overlap = 50;\n    % Set magicFudge to 10\n    magicFudge = 10;\nelseif nargin < 4\n    % Set overlap to 50%\n    overlap = 50;\n    % Set magicFudge to 10\n    magicFudge = 10;\nelseif nargin < 5\n    % Set magicFudge to 10\n    magicFudge = 10;\nend\n\nif(resolution >= 1 || resolution <=0)\n    error('Resolution must be between (0,1)');\nend\n\nif(overlap <=0 || overlap >= 100)\n    error('Overlap must be between (0,100)');\nend\n\nif(magicFudge < 0)\n    error('magicFudge must be >0');\nend\n\nstep = (max(filter) - min(filter))*resolution;\nnumGraphNodes = 0;\nlevel = 1;\nnodeInfo = cell(0);\nlevelIdx = cell(0);\nadja = [];\n\ndisp(sprintf('Mapper : Filter Range [%0.2f-%0.2f]', min(filter), max(filter)));\ndisp(sprintf('Mapper : Interval Length : %0.2f', step));\ndisp(sprintf('Mapper : Overlap : %0.2f', overlap));\ndisp(sprintf('Mapper : magicFudge : %0.2f', magicFudge));\ndisp('');\n\nfor i=min(filter):step*(1-overlap/100):max(filter)\n    disp(sprintf('Mapper : Filter Indices from range [%0.2f-%0.2f]', i, i+step));\n    %% Select points in this filter range\n    idx = find(filter >= i & filter <= i + step);\n    %% If we have enough points, grow the graph.\n    if(max(size(idx)) > 5)\n        numPoints = max(size(d(idx, idx)));\n        [I, R, simp1, F] = returnBarCode_linkage_noplex(d(idx,idx));\n        lens = I{1}(2,:) - I{1}(1,:);\n        lens(find(lens == inf)) = R;\n        numBin = hist(lens, magicFudge);\n        z = find(numBin == 0);\n        if(isempty(z))\n            numClusts = 1;\n        else\n            numClusts = sum(numBin(z(1):length(numBin)));\n        end\n        [srt longIdx] = sort(lens, 'descend');\n        longIdx = longIdx(1:numClusts);\n        minDeathTime = min(I{1}(2,longIdx));\n        if(minDeathTime == inf)\n            si = sort(I{1}(2,:), 'descend');\n            minDeathTime = si(2) + eps;\n        end\n        simp1 = simp1(:,find(F{1,2} < minDeathTime));\n        G = sparse(numPoints, numPoints);\n        [rws numSimps] = size(simp1);\n        for iter=1:numSimps\n            G(simp1(1,iter), simp1(2,iter)) = 1;\n            G(simp1(2,iter), simp1(1,iter)) = 1;\n        end\n\n        %% Color the graph\n        nodeColors = colorGraph(G);\n        numColors = length(unique(nodeColors));\n        numGraphNodes = max(size(nodeInfo));\n        levelIdx{level} = [];\n        for j=1:numColors\n            levelIdx{level} = [levelIdx{level} (j+numGraphNodes)];\n            nodeInfo{j+numGraphNodes}.level = level;\n            nodeInfo{j+numGraphNodes}.fnval = i;\n            nodeInfo{j+numGraphNodes}.set = idx(nodeColors == j);\n            nodeInfo{j+numGraphNodes}.filter = max(filter(idx(nodeColors == j)));\n        end\n        if(level > 1)\n            prevLvlIdx  = levelIdx{level-1};\n            thisLvlIdx  = levelIdx{level};\n            for i1 = 1:length(prevLvlIdx)\n                for i2 = 1:length(thisLvlIdx)\n                    a = prevLvlIdx(i1);\n                    b = thisLvlIdx(i2);\n                    if(length(intersect(nodeInfo{a}.set, nodeInfo{b}.set)) ~= 0)\n                        adja(a, b) = 1;\n                        adja(b, a) = 1;\n                    end\n                end\n            end\n\n        end\n        level = level + 1;\n%     elseif(max(size(idx)) >= 1)\n%         numGraphNodes = max(size(nodeInfo));\n%         levelIdx{level} = [(numGraphNodes+1)];\n%         nodeInfo{1+numGraphNodes}.level = level + 1;\n%         nodeInfo{1+numGraphNodes}.fnval = i;\n%         nodeInfo{1+numGraphNodes}.set = idx;\n%         nodeInfo{1+numGraphNodes}.filter = max(filter(idx));\n%         if(level > 1)\n%             prevLvlIdx  = levelIdx{level-1};\n%             thisLvlIdx  = levelIdx{level};\n%             for i1 = 1:length(prevLvlIdx)\n%                 for i2 = 1:length(thisLvlIdx)\n%                     a = prevLvlIdx(i1);\n%                     b = thisLvlIdx(i2);\n%                     if(length(intersect(nodeInfo{a}.set, nodeInfo{b}.set)) ~= 0)\n%                         adja(a, b) = 1;\n%                         adja(b, a) = 1;\n%                     end\n%                 end\n%             end\n% \n%         end\n%         level = level + 1;\n    end\nend\n\ndisp('Mapper : Finished');\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/mapperTutorial.m",
    "content": "clc; clear; close all;\n\n%% Generate a circle in 2 dimensions (300 points in 2 dimensions)\nX = randn(300, 2) * [2 0; 0 0.2];\n%Y = randn(300, 2) * [0.2 0; 0 2];\n%X = [X; Y];\n%X = X./(sqrt(sum(X.*X,2))*ones(1, 2));\n\n%% Find the Inter-point Distance Matrix\nd = L2_distance(X',X',1);\n\n%% Find the filter, here we use the distance from the first point\neccFilter = d(1, :);\nscatter(X(:,1), X(:,2), 1000, eccFilter, '.');\naxis equal;\n\n%% Parameters for Mapper\nfilterSamples = 5;\noverlapPct = 50;\n\n%% Run Mapper\n[adja, nodeInfo, levelIdx] = mapper(d, eccFilter, 1/filterSamples,...\n                                                        overlapPct);\n                                         \n%% Prepare inputs for GraphViz\n% For each node of the output graph, find the size (~ cardinality of the\n% cluster) and the average function value of points in the cluster.\nlabel{1} = sprintf('Dataset Name   : test');\nlabel{2} = sprintf('Filter Samples : %d', filterSamples);\nlabel{3} = sprintf('Overlap Pct    : %0.2f', overlapPct);\n\nfor i=1:length(nodeInfo)\n    ecc(i) = nodeInfo{i}.filter;\n    setSize(i) = length(nodeInfo{i}.set);\nend\n\n%%\nstream = create_quotient_complex(adja, ecc);\n\n\n%% Generate the input to Graphviz\nwriteDotFile(sprintf('t1.dot'), adja, ecc, setSize, label);\n\n%% Execute Graphviz\nsystem(sprintf('\\\"C:\\\\Program Files (x86)\\\\Graphviz2.22\\\\bin\\\\neato.exe\\\" -Tpng t1.dot -o t1.png'));\nfigure;\nimshow('t1.png')"
  },
  {
    "path": "src/matlab/experimental/hom_messy/mapper_mapping_test.m",
    "content": "\r\nclc; clear; close all;\r\n\r\ndomain_size = 300;\r\ncodomain_size = 300;\r\n\r\n% create the domain and codomain simplicial complexes\r\n%utility.RandomUtility.initializeWithSeed(0);\r\n%domain_points = examples.PointCloudExamples.getGaussianPoints(domain_size, 2) * [1 0; 0 0.7];\r\n%codomain_points = examples.PointCloudExamples.getGaussianPoints(codomain_size, 2) * [0.2 0; 0 2];\r\ndomain_points = rand(domain_size, 2) * [1 0; 0 0.2];\r\ncodomain_points = rand(domain_size, 2) * [0.2 0; 0 2];\r\n[domain_stream, domain_filter, domain_adjacency_matrix] = create_quotient_mapper_complex(domain_points);\r\n[codomain_stream, codomain_filter, codomain_adjacency_matrix] = create_quotient_mapper_complex(codomain_points);\r\n\r\n% get the default persistence algorithm\r\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(2);\r\n\r\n% compute the intervals and transform them to filtration values\r\ndomain_index_intervals = persistence.computeIntervals(domain_stream)\r\n\r\n% compute the intervals and transform them to filtration values\r\ncodomain_index_intervals = persistence.computeIntervals(codomain_stream)\r\n%%\r\n% obtain the parameterization\r\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\r\n\r\n% setup the LP - find a feasible point and the value of the max function in\r\n% the set C\r\n[f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies);\r\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\r\nfval\r\n% find a random corner point of the set of optima\r\n[f, A, b, Aeq, beq, lb, ub] = create_positive_lp(cycle_sum, homotopies, fval, randn(size(homotopies, 1), 1));\r\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\r\n\r\nmap = compute_mapping(cycle_sum, homotopies, x(1:size(homotopies, 1)));\r\nmap = (abs(map) > 1e-3) .* map\r\n%%\r\n%map = normalize_rows(map);\r\n%map = normalize_rows(map')';\r\n%%\r\n\r\ndomain_graph = to_graph(domain_stream);\r\ncodomain_graph = to_graph(codomain_stream);\r\n\r\ndlmwrite('mapping.txt', full(map));\r\ndlmwrite('domain_points.txt', graph_embedding(domain_graph, 2));\r\ndlmwrite('codomain_points.txt', graph_embedding(codomain_graph, 2));\r\nstream_reader_writer = io.SimplexStreamReaderWriter.getInstance();\r\nstream_reader_writer.writeToFile(domain_stream, 'domain_stream.txt');\r\nstream_reader_writer.writeToFile(codomain_stream, 'codomain_stream.txt');\r\n\r\n%PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, (map));\r\n\r\n%figure;\r\n%subplot(2, 1, 1);\r\n%%\r\nfigure;\r\ngplot(domain_graph, graph_embedding(domain_graph, 2), '-*');\r\nfigure;\r\ngplot(codomain_graph, graph_embedding(codomain_graph, 2), '-*');\r\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/mapping.txt",
    "content": "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\n0,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\n0.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\n0,0,0,0,0.47222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n0,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\n0,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\n0,0,0,0,0.41667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n0,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\n0,0,0,0,0,0,0,0,0,0.69444,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0.69444,0,0,0,0,0,0,0,0,0,0,0,0,0\n0,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\n0,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\n0,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\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.69444,0,0,0,0,0,0,0,0\n0,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\n0,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\n0,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\n0,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\n0,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\n0,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\n0,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\n0,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\n0,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\n0,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\n0,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\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/matrix.txt",
    "content": "0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0\n-0.090909,-0.090909,-0.090909,0,0,0,-0.090909,0,0.63636,0,0,0,0,0,0,0,0\n-0.090909,0.090909,0.090909,0,0,-0.090909,-0.090909,0,0.54545,0,0,0,0,0,0,0,0\n0,0,0,0.90909,0,0,0.090909,0,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0\n0.18182,0,0,0,0,0.090909,0.090909,0,-0.63636,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0\n0,0,0,-0.18182,0,0,0,0.18182,-0.63636,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0\n0,0,0,-0.72727,-0.090909,0,0,-0.18182,0,0,0,0,0,0,0,0,0\n0,0,0,0,0.090909,0,0,0.90909,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0,0.72727,0.18182,0.090909,0,0\n0,0,0,0,0,0,0,0,0,0,0,0,-0.72727,-0.18182,-0.090909,0,0\n0,0,0,0,0,0,0,0,0,0,0,-0.090909,0,0.90909,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0,0,-0.90909,0,0,0.090909\n0,0,0,0,0,0,0,0,0,0,0,0,0,0.90909,0,0.090909,0\n0,0,0,0,0,0,0,0,0,-0.090909,0,0,-0.90909,0,0,0,0\n0,0,0,0,0,0,0,0,0,0,0,0,0,0.90909,0,0.090909,0\n0,0,0,0,0,0,0,0,0,0,0,0,-0.90909,0,0,-0.090909,0\n0,0,0,0,0,0,0,0,0,0,0,0,0,0.90909,0,0.090909,0\n0,0,0,0,0,0,0,0,0,0,0,0,-0.72727,-0.18182,0,-0.090909,0\n0,0,0,0,0,0,0,0,0,0,0,0,-0.72727,-0.18182,0,-0.090909,0\n0,0,0,0,0,0,0,0,0,0,0,0,0.72727,0.18182,0.090909,0,0\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/normalize_rows.m",
    "content": "function result = normalize_rows(matrix)\n    result = diag(1.0 ./ sum(abs(matrix), 2)) * matrix;"
  },
  {
    "path": "src/matlab/experimental/hom_messy/objectivize.m",
    "content": "function op = objectivize(f)\n\n    op = @(varargin)objective_impl(varargin{:} );\n\n    function [v, g] = objective_impl(x, t )\n        v = f(x);\n        g = gradient(f, x);\n    end\n\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/pdist2.m",
    "content": "function distances = pdist2(points)\n    n = size(points, 1);\n    distances = zeros(n * (n - 1) /2, 1);\n    index = 1;\n    for i = 1:n\n        for j = i+1:n\n            distances(index) = sqrt(sum((points(i, :) - points(j, :)).^2));\n            index = index + 1;\n        end\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/returnBarCode_linkage_noplex.m",
    "content": "function [I, R, Ca, F] = returnBarCode_linkage_noplex(dist)\n%function [I, R, Ca, F] = returnBarCode_linkage_noplex(dist)\n%Returns 0 dimensional homology, max(max(dist)), complex, F\n\n%    BEGIN COPYRIGHT NOTICE\n%\n%    Mapper code -- (c) 2007-2009 Gurjeet Singh\n%\n%    This code is provided as is, with no guarantees except that \n%    bugs are almost surely present.\n%\n%    Comments and bug reports are welcome.  Email to \n%    gurjeet@stanford.edu. \n%    I would also appreciate hearing about how you used this code, \n%    improvements that you have made to it, or translations into other\n%    languages.    \n%\n%    You are free to modify, extend or distribute this code, as long \n%    as this copyright notice is included whole and unchanged.  \n%\n%    END COPYRIGHT NOTICE\n\nZ = linkage(dist(tril(true(length(dist)),-1))');\nI = cell(1);\nR = max(max(dist));\nN = length(dist);\nI{1}(1,:) = zeros(1, length(Z(:,3)) +1);\nI{1}(2,1:length(Z(:,3))) = Z(:,3)';\nI{1}(2, length(Z(:,3)) + 1) = inf;\n\nD = triu(dist <= R);\n[II, JJ] = find(D);\nCa = zeros(2, length(II));\nCa(1,:) = II(:)';\nCa(2,:) = JJ(:)';\nind = sub2ind([N N], Ca(1,:), Ca(2,:));\n\nF = {zeros(1,N), dist(ind)};"
  },
  {
    "path": "src/matlab/experimental/hom_messy/show_graph.m",
    "content": "function show_graph(adjacency_matrix, colors, set_size)\r\n\r\n     % Generate the input to Graphviz\r\n    writeDotFile(sprintf('t1.dot'), adjacency_matrix, colors, set_size);\r\n\r\n    % Execute Graphviz\r\n    system(sprintf('\\\"C:\\\\Program Files (x86)\\\\Graphviz2.22\\\\bin\\\\neato.exe\\\" -Tpng t1.dot -o t1.png'));\r\n    figure;\r\n    imshow('t1.png')\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/smoothness_objective.m",
    "content": "function [d] = smoothness_objective(map, domain_points, codomain_points, distance_function, edge_list)\r\n    interpolated_points = compute_interpolated_points(map, domain_points, codomain_points);\r\n    num_edges = size(edge_list, 1);\r\n    d = 0;\r\n    for k = 1:num_edges\r\n        i = edge_list(k, 1) + 1;\r\n        j = edge_list(k, 2) + 1;\r\n        d = d + distance_function(interpolated_points(i, :), interpolated_points(j, :))^2;\r\n    end\r\n    d = d + 0 * sum(sum(abs(map).^2));\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/test_aw_optimization.m",
    "content": "\nclc; clear; close all;\n\ndomain_size = 5;\ncodomain_size = 4;\n\n% create the domain and codomain simplicial complexes\n%{\ndomain_stream = examples.SimplexStreamExamples.getTetrahedron();\ncodomain_stream = examples.SimplexStreamExamples.getOctahedron();\n\ndomain_points = examples.PointCloudExamples.getTetrahedronVertices();\ncodomain_points = examples.PointCloudExamples.getOctahedronVertices() + 1;\n%}\n\n\ndomain_stream = examples.SimplexStreamExamples.getCircle(domain_size);\ncodomain_stream = examples.SimplexStreamExamples.getCircle(codomain_size);\n\ndomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(domain_size);\ncodomain_points = examples.PointCloudExamples.getEquispacedCirclePoints(codomain_size);\ncodomain_points = codomain_points + ones(codomain_size, 1) * [3, 0];\n\n\n% obtain the parameterization\n[cycle_sum, homotopies] = hom_parameterization(domain_stream, codomain_stream);\n\ndomain_aw_matrix = convert_sparse_matrix(streams.utility.StreamUtility.createAlexanderWhitneyMatrix(domain_stream));\ncodomain_aw_matrix = convert_sparse_matrix(streams.utility.StreamUtility.createAlexanderWhitneyMatrix(codomain_stream));\n\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies);\n[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub);\nfval\n% find a random corner point of the set of optima\n[f, A, b, Aeq, beq, lb, ub] = create_max_lp(cycle_sum, homotopies, ceil(fval));\n\nK = size(homotopies, 1);\n\nloss_function = @(x) sum(x.^2);\n%loss_function = @(x) sum(abs(x));\n\nobjective = @(c) alexander_whitney_loss_function(compute_mapping(cycle_sum, homotopies, c(1:K)), domain_aw_matrix, codomain_aw_matrix, loss_function);\nc_0 = randn(size(lb, 1), 1);\n\n[x, fval, exitflag, output] = fminunc(objective, c_0);\n%[x, fval, exitflag, output] = fmincon(objective, c_0, A, b, Aeq, beq, lb, ub);\n\n%{\nopts.tol = 1e-6;\nopts.maxIts = 500;\nopts.alg = 'N07';\nx = tfocs(objectivize(objective), [], [], c_0, opts)\n%}\n%%\nmap = compute_mapping(cycle_sum, homotopies, x(1:K));\nmap = (abs(map) > 1e-2) .* map\n\nmap = normalize_rows(map);\n\ndlmwrite('matrix.txt', map');\n\n%%\n%PlexViewer.drawMapping(domain_stream, domain_points, codomain_stream, codomain_points, abs(map));\n"
  },
  {
    "path": "src/matlab/experimental/hom_messy/to_graph.m",
    "content": "function adjacency_matrix = to_graph(stream)\r\n    \r\n    size = 0;\r\n    \r\n    iterator = stream.iterator();\r\n    while (iterator.hasNext())\r\n        simplex = iterator.next();\r\n        if (stream.getDimension(simplex) == 0)\r\n            size = size + 1;\r\n        end\r\n    end\r\n    \r\n    adjacency_matrix = zeros(size, size);\r\n    \r\n    iterator = stream.iterator();\r\n    while (iterator.hasNext())\r\n        simplex = iterator.next();\r\n        if (stream.getDimension(simplex) == 1)\r\n            vertices = simplex.getVertices();\r\n            i = vertices(1) + 1;\r\n            j = vertices(2) + 1;\r\n            adjacency_matrix(i, j) = 1;\r\n            adjacency_matrix(j, i) = 1;\r\n        end\r\n    end\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/to_sparse_matlab_matrix.m",
    "content": "function matlab_sparse_matrix = to_sparse_matlab_matrix(formal_sum, matrix_converter)\r\n% matlab_sparse_matrix = to_sparse_matlab_matrix(formal_sum, matrix_converter)\r\n%\r\n% INPUTS:\r\n% formal_sum: an object of type DoubleSparseFormalSum<ObjectObjectPair<M, N>>\r\n% matrix_converter: the object of type DoubleMatrixConverter<M, N>\r\n%\r\n% OUTPUTS:\r\n% matlab_sparse_matrix: a sparse matrix which represents the same linear\r\n% transformation as the given formal sum\r\n    import edu.stanford.math.plex4.*;\r\n    sparse_matrix_object = matrix_converter.toSparseMatrix(formal_sum);\r\n    matlab_sparse_matrix = convert_sparse_matrix(sparse_matrix_object);\r\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/unflatten.m",
    "content": "function [i, j] = unflatten(index, I, J)\n    %index = J * (i - 1) + j;\n    i = (index / J) + 1;\n    j = mod(index, J);\nend"
  },
  {
    "path": "src/matlab/experimental/hom_messy/writeDotFile.m",
    "content": "% writeDotFile(fileName, G, colorParam, sizeParam, extraLabel, nodeLabels)\n% writeDotFile   writes a graph represented by a binary adjacency matrix \n%                in the DOT format for use with Graphviz.\n% \n% INPUT:\n% fileName - string containing location of output file\n% G - Adjacency matrix for the UNDIRECED graph\n% colorParam - A numNodes x 1 array dictating the color of each node\n% sizeParam  - A numNodes x 1 array dictating the size of each node\n% extraLabel - A cell array of string labels pasted at the \n%              bottom left of the graph. OPTIONAL\n% nodeLabels - A cell array of size numNodes x 1 of label of each node.\n%              OPTIONAL\n%\n% OUTPUT:\n% The graph is written in the graphviz format at the location of fileName\n\n%    BEGIN COPYRIGHT NOTICE\n%\n%    Mapper code -- (c) 2007-2009 Gurjeet Singh\n%\n%    This code is provided as is, with no guarantees except that \n%    bugs are almost surely present.\n%\n%    Comments and bug reports are welcome.  Email to \n%    gurjeet@stanford.edu. \n%    I would also appreciate hearing about how you used this code, \n%    improvements that you have made to it, or translations into other\n%    languages.    \n%\n%    You are free to modify, extend or distribute this code, as long \n%    as this copyright notice is included whole and unchanged.  \n%\n%    END COPYRIGHT NOTICE\n\n\nfunction writeDotFile(fileName, G, colorParam, sizeParam, extraLabel, nodeLabels)\n\nnlPresent = 1;\n\nif(nargin < 4)\n    error('fileName, G, colorParam, sizeParam are required..');\nelseif(nargin < 5)\n    extraLabel{1} = '';\n    nlPresent = 0;\nelseif(nargin < 6)\n    nlPresent = 0;\nend\n\nnumNodes = max(size(G));\ncparam = colorParam;\nsparam = sizeParam;\n\nif(nlPresent == 1)\n    if(length(nodeLabels) ~= numNodes)\n        error('Number of elements in nodeLables must be equal to the number of nodes.');\n    end\nend\n\n\n%% color coordination\nfigure;\ncolorMat = colormap();\nclose;\nnumColors = length(colorMat);\ncolx = min(colorParam):(max(colorParam)-min(colorParam))/(numColors - 1):max(colorParam);\nrgbColors = interp1(colx, colorMat, colorParam);\nhsvColors = rgb2hsv(rgbColors);\n\n%% Size thingy\nsizeParam = 0.1 + sizeParam/max(sizeParam);\n\n\n%% Print the graph to string\nstr = sprintf('Graph \"G\" {\\n');\n\nfor i=1:numNodes\n    if(nlPresent == 0)\n        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));\n    else\n        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));\n    end\nend\n\nfor i=1:numNodes\n    connNodes = find(G(i,:) == 1);\n    G(connNodes, i) = 0;\n    for j=1:length(connNodes)\n        str = sprintf('%s node%d -- node%d ;\\n', str, i, connNodes(j));\n    end\nend\n\nstr = sprintf('%s label = \"File Name    = %s\\\\lFilter Range = [%.2f-%.2f]\\\\lSize Range   = [%.2f-%.2f]\\\\l',...\n      str, fileName, min(cparam), max(cparam), min(sparam), max(sparam));\n  \nfor i=1:length(extraLabel)\n    str = sprintf('%s%s\\\\l', str, extraLabel{i});\nend\nstr = sprintf('%s\";\\n', str);\n\nstr = sprintf('%s labelloc=\"b\";\\nlabeljust=\"l\";\\n', str);\n\nstr = sprintf('%s center = 1;\\n rankdir=LR;\\n overlap=scale;\\n', str);\n\nstr = sprintf('%s }', str);\n\n%% Save the graph to file\nfid = fopen(fileName, 'w');\nfprintf(fid, '%s', str);\nfclose(fid);\n"
  },
  {
    "path": "src/matlab/experimental/multifiltration_flattening/Syn2d_5g1k3c_c1.txt",
    "content": "-0.94941,11.777\n1.0664,10.022\n2.2872,9.4446\n-1.4905,10.77\n5.0588,8.1908\n3.2118,6.6524\n6.2155,10.712\n-0.4937,9.7742\n-1.6984,4.703\n1.6541,6.2882\n3.915,11.234\n3.0236,9.3494\n1.0677,10.734\n0.27207,10.341\n-0.8692,15.518\n0.22166,11.142\n2.171,10.484\n0.471,8.1167\n1.5626,9.0791\n-1.9093,13.99\n-3.9757,10.565\n-0.75759,5.0344\n3.8365,11.361\n3.1163,9.4852\n0.60157,9.6711\n1.3224,8.3706\n2.3096,8.2282\n-0.10617,8.5578\n-1.2786,11.096\n0.068067,10.567\n3.717,8.4334\n2.089,9.0889\n2.2618,3.7974\n-1.192,6.9087\n3.6181,8.1903\n-1.863,10.928\n-2.2212,11.827\n-0.28001,9.3467\n-3.7729,7.7567\n-0.38239,10.239\n-0.46354,12.962\n-4.9133,9.2942\n-0.92757,9.7479\n3.3325,9.792\n-1.9946,12.69\n4.437,12.198\n-2.2418,6.4137\n-0.60657,7.8938\n-0.43934,12.304\n1.1778,12.298\n-2.104,9.477\n-0.52772,8.2161\n-0.22549,7.605\n2.6923,13.093\n-4.4246,10.379\n2.3984,10.171\n-0.30841,7.1324\n2.6596,12.769\n-0.52772,6.9371\n-0.98564,14.12\n-4.5333,4.9082\n6.6311,12.847\n-1.6877,9.2795\n5.1584,14.126\n0.41812,14.588\n-0.083022,11.506\n2.3472,15.573\n-0.21211,12.156\n-0.61574,9.5471\n-1.6811,13.265\n3.9897,7.8566\n-0.66694,8.9883\n-6.0213,12.346\n1.7096,12.368\n0.081614,6.8645\n-2.3282,10.88\n1.5095,4.7879\n-0.25581,11.448\n-4.2485,5.5775\n-0.48309,8.8135\n-0.60651,12.713\n-0.56258,10.099\n-2.1821,10.045\n2.1654,12.96\n0.93014,7.2638\n-1.2002,9.1318\n2.4306,13.429\n-1.0522,9.9148\n-1.4191,5.8567\n1.0919,9.2302\n-5.6117,13.933\n-1.9534,8.5684\n-3.1771,13.684\n-0.19386,13.404\n1.4944,6.026\n-0.91309,14.193\n-3.9513,9.1618\n0.6088,10.389\n0.66779,8.3903\n-1.9699,8.2759\n-3.466,11.585\n3.2961,9.5353\n-1.4316,5.1962\n0.4234,10.151\n-0.49842,8.9417\n0.5785,12.885\n1.2916,17.242\n-1.0214,11.511\n-2.6376,11.223\n1.2906,9.9692\n5.2168,12.154\n-0.6307,8.9407\n-1.007,10.575\n1.9166,2.8812\n1.3727,10.917\n-4.9469,9.0504\n0.7872,6.8084\n-1.192,8.1837\n-0.42369,10.846\n-1.5349,3.5795\n0.97818,4.3263\n-3.8325,14.093\n1.0766,8.5634\n0.52604,8.5729\n1.822,4.9442\n-0.49743,10.955\n3.4857,14.841\n-1.0148,5.3883\n-3.3526,11.869\n2.1662,11.37\n-0.82912,6.9248\n-6.5619,9.8337\n3.8254,11.35\n-1.0155,15.626\n-3.1719,8.0103\n3.4722,8.158\n-2.7877,13.628\n-1.3026,8.3999\n4.2893,6.1363\n-0.41453,11.884\n0.64508,9.7398\n-0.75173,10.151\n-4.2534,15.997\n-2.3818,7.9681\n4.8513,11.025\n-0.23341,4.85\n0.98523,12.643\n2.416,13.676\n-3.2847,10.065\n-0.097784,8.8487\n0.013172,11.855\n1.031,9.4047\n1.7979,12.006\n-0.94319,6.9041\n-0.9638,6.612\n-3.5588,5.5465\n-1.9232,10.164\n4.3836,9.8001\n1.5545,10.4\n1.8949,11.291\n-3.8265,11.573\n-1.9273,8.6248\n-3.3241,10.61\n2.5436,10.133\n-0.91743,9.3616\n0.16718,12.143\n0.21465,11.546\n-2.9169,10.258\n1.5652,1.6647\n0.20609,7.7562\n1.1186,8.4496\n3.238,12.951\n-0.67627,10.727\n3.9947,11.549\n-6.214,9.2166\n1.33,14.475\n-4.5767,13.418\n-2.6979,9.0402\n-5.3542,11.889\n1.1044,9.646\n-2.7003,6.6215\n-0.41805,7.7995\n0.057328,8.0986\n-3.6511,11.219\n-1.2964,9.0945\n5.6575,3.905\n-3.3022,10.348\n2.253,10.372\n-1.4624,10.444\n2.7158,9.7813\n1.8341,14.107\n2.7215,7.5072\n1.7382,8.0234\n-3.8276,7.7912\n-0.98136,11.123\n-0.012216,8.2103\n0.87723,12.894\n-0.88383,12.624\n-1.5389,9.9138\n-1.0903,13.373\n-2.4665,13.091\n-0.49896,10.677\n-6.1764,10.832\n2.3579,14.229\n-1.439,16.682\n-3.7063,11.063\n5.2081,7.6081\n1.6076,5.5035\n4.1794,9.2087\n2.6564,8.7029\n-2.4482,10.612\n-0.34058,8.7587\n-0.36304,7.7726\n0.16241,9.9493\n1.5636,9.5988\n2.2423,7.356\n0.6139,12.408\n3.5151,10.178\n1.4465,8.9227\n-0.7256,7.8188\n-2.6775,9.2239\n-1.9509,9.7294\n-5.6973,9.3948\n0.21745,7.8527\n0.12535,11.456\n-0.81703,8.1948\n2.7645,8.1479\n3.7653,10.371\n-2.3224,10.62\n0.099217,14.019\n-0.9812,9.7908\n-0.074726,9.685\n0.35661,9.9494\n1.4616,13.48\n-0.36821,8.4947\n1.4035,12.486\n-0.55653,12.534\n-0.34239,4.1242\n-3.265,8.2815\n1.8894,12.595\n0.34356,15.507\n-1.2884,9.2555\n0.28577,12.35\n-3.2662,13.239\n1.0804,12.29\n0.82713,10.041\n-0.89951,11.23\n-2.3119,9.4566\n-0.9433,6.5178\n-4.72,6.6817\n-4.0584,7.2498\n-2.5505,16.092\n0.84443,9.7403\n1.7918,12.745\n2.6149,11.466\n0.91545,9.6123\n-2.2791,9.6497\n-2.9575,11.622\n-0.41428,10.262\n-3.7919,9.2254\n-0.22117,8.1578\n-1.4049,7.6187\n1.7983,13.454\n-0.27665,11.039\n-0.70245,10.335\n-1.0039,14.454\n3.3861,7.2695\n2.1132,11.497\n2.9171,11.865\n-0.20593,6.7648\n-0.84888,11.884\n-4.2586,13.015\n-4.9034,8.0868\n1.0772,10.288\n-0.81499,8.3178\n-2.2617,8.1129\n1.4465,10.097\n-0.76123,11.044\n0.40877,9.7918\n-1.78,15.811\n2.1977,9.2099\n-4.2982,14.119\n0.035395,5.836\n-2.3537,13.253\n2.0796,7.6507\n0.5734,8.6835\n3.6413,11.106\n1.6562,12.005\n-1.3724,11.065\n0.031556,12.31\n1.4083,9.9893\n1.4529,9.1682\n-3.0553,10.272\n2.25,7.7807\n4.6252,11.416\n1.717,8.895\n1.7744,6.7651\n-6.315,10.612\n-0.29478,8.8526\n-3.4042,14.661\n1.7266,8.818\n-1.8062,11.647\n-0.79252,13.331\n-2.0504,4.5345\n2.0108,7.7253\n-2.261,10.756\n2.0631,12.575\n1.6316,10.825\n-0.74498,5.7458\n1.3916,11.112\n-4.1264,13.818\n5.4854,5.8591\n0.21431,4.9952\n-2.3962,9.2734\n1.6735,15.043\n1.2015,12.323\n0.77475,13.647\n2.5859,12.267\n-1.6163,11.038\n3.3978,10.416\n0.089516,9.4957\n-0.45511,9.3505\n0.25432,3.6808\n-3.3913,5.4823\n-0.91957,12.409\n-1.1895,12.445\n-3.6537,8.1165\n0.36544,8.6742\n1.8616,8.7919\n-2.2847,10.927\n-1.6976,7.236\n2.4739,5.8\n0.27469,9.2159\n-0.9184,8.1756\n-1.2262,11.319\n-2.3035,9.2784\n2.9023,14.686\n-2.1175,10.039\n2.6815,12.974\n1.6077,10.026\n-1.0913,9.1256\n0.081154,5.8895\n0.12883,11.168\n-0.7742,8.8419\n2.8712,10.321\n2.965,11.498\n-0.73269,12.98\n0.50318,9.8087\n2.0848,5.4411\n2.8914,6.4312\n-2.0388,8.3962\n-3.5525,10.027\n-2.4543,8.7844\n6.1462,11.994\n-0.2629,13.1\n-2.1088,10.929\n-0.80974,9.3295\n1.5582,7.1304\n2.1776,11.647\n-2.7734,6.2576\n1.7367,11.744\n-1.0968,11.127\n4.9632,8.8637\n0.62554,10.206\n-0.27482,9.4678\n0.10487,8.7838\n1.6005,10.539\n0.74077,12.093\n1.8335,9.6393\n-0.76399,9.0249\n2.7403,9.5635\n4.43,9.0542\n0.98959,11.486\n-0.70163,12.002\n-2.4962,12.546\n-0.36253,7.52\n2.9316,12.592\n0.4275,9.0813\n2.7512,13.558\n-2.3792,13.67\n-5.9579,5.6697\n3.9748,9.1931\n2.8307,12.268\n-0.94148,10.039\n2.0778,10.885\n2.0796,6.1281\n5.9058,10.508\n5.02,12.838\n0.75423,11.688\n0.25955,11.723\n0.77719,5.7647\n-3.9949,11.132\n4.052,8.9209\n-2.0347,11.437\n2.2447,7.0029\n2.7089,10.736\n1.8733,7.6431\n-1.5727,8.9669\n-1.5916,15.204\n-4.1811,6.5897\n6.0541,16.36\n4.93,15.874\n8.1472,15.253\n6.6854,14.343\n3.7389,15.847\n8.0755,15.462\n4.757,15.663\n4.6708,16.622\n6.9057,16.643\n7.6711,16.159\n6.2569,15.344\n4.3783,18.067\n4.933,16.1\n5.4707,16.175\n4.6096,16.063\n7.949,14.664\n7.3661,15.51\n4.5877,16.585\n5.4345,16.062\n2.6473,16.233\n5.6319,14.063\n6.787,14.309\n7.4312,15.453\n2.855,16.371\n6.8761,14.618\n4.0764,15.645\n4.5076,15.884\n7.4471,13.107\n7.5529,15.361\n5.5623,16.773\n7.0619,12.452\n6.372,17.329\n5.1134,15.02\n7.8048,15.704\n5.1426,13.876\n6.1568,17.231\n6.6868,13.516\n6.7734,15.375\n6.0915,16.549\n6.0032,14.876\n5.175,17.047\n4.4848,17.666\n6.8205,15.682\n5.6318,16.288\n4.4165,16.626\n7.2589,15.564\n4.6641,17.039\n7.7822,17.13\n6.1765,15.198\n4.3209,17.136\n6.9482,15.703\n5.6483,15.32\n4.594,14.678\n3.3041,17.599\n7.7041,14.754\n6.9176,14.351\n4.6652,14.528\n4.9442,16.578\n6.5813,13.093\n3.5488,17.929\n7.9867,12.52\n10.006,12.652\n6.7381,14.479\n6.9852,16.474\n4.8574,13.654\n7.693,12.93\n8.3249,15.78\n6.4149,14.077\n7.3346,14.109\n8.786,13.105\n5.4052,16.68\n5.8762,14.525\n6.4193,15.115\n6.4317,15.618\n5.9849,15.412\n5.9583,16.149\n5.305,16.347\n3.9681,16.568\n5.5896,14.657\n4.9287,17.112\n4.5377,16.375\n5.5131,17.559\n8.8048,14.287\n7.3246,15.531\n2.5742,18.513\n5.4398,14.5\n4.8591,17.29\n6.3376,14.247\n4.8197,18.307\n5.6644,14.639\n6.1075,14.528\n4.7951,15.539\n6.1657,14.42\n7.8074,14.105\n4.8978,15.998\n6.7864,14.156\n6.0298,16.979\n8.0838,12.532\n6.3048,15.576\n5.3129,16.619\n8.0925,12.296\n6.846,15.34\n5.7959,14.664\n7.8498,15.056\n8.2418,14.268\n5.4186,16.187\n5.0573,15.64\n6.5472,14.517\n4.5803,18.35\n5.3018,16.353\n3.57,13.93\n6.1017,15.139\n6.8172,14.994\n5.666,14.243\n3.7596,16.595\n5.2192,15.203\n6.1847,16.72\n8.3681,14.539\n5.226,16.074\n6.6678,14.974\n6.2656,14.92\n7.4138,14.637\n5.9974,13.541\n4.2466,16.028\n5.4506,16.573\n7.4542,13.495\n8.4808,15.507\n3.9677,17.006\n6.0791,15.18\n5.4773,15.968\n7.9764,14.802\n6.7659,16.459\n4.5726,15.094\n6.7715,14.566\n6.5085,15.171\n5.9167,14.84\n7.8629,14.891\n3.3436,16.937\n6.6907,17.479\n3.9736,16.468\n5.516,15.636\n5.7993,15.874\n6.5283,15.968\n5.8597,16.751\n5.8595,14.739\n6.8242,15.896\n4.1171,16.722\n7.5337,13.879\n4.5426,17.265\n6.9419,15.506\n10.545,11.847\n9.3207,9.4124\n7.0969,7.7438\n8.7353,7.6944\n7.8393,10.397\n6.8251,9.2556\n9.0677,10.821\n8.1492,8.7303\n9.9976,10.891\n6.6854,11.305\n6.7893,9.107\n8.4557,12.665\n7.8207,7.7305\n6.7216,12.197\n9.6874,11.833\n8.1948,10.597\n8.251,11.856\n6.2286,9.4678\n7.4013,7.5324\n8.2732,10.847\n10.864,8.8051\n6.3065,8.9005\n6.8856,10.286\n7.8167,10.084\n7.8539,10.787\n8.1584,11.757\n5.9232,12.038\n10.51,10.019\n6.7,8.4899\n9.8639,11.277\n7.8777,10.192\n10.692,9.1957\n5.7591,10.388\n6.8958,8.7206\n6.6209,9.3058\n7.6545,10.63\n7.9059,13.139\n9.6391,9.5308\n8.218,14.229\n7.905,8.0671\n8.0422,11.556\n5.7747,6.2175\n7.8436,13.099\n10.13,12.245\n8.6329,12.793\n11.73,9.8915\n9.004,11.735\n6.8147,10.362\n6.6974,8.9731\n10.624,11.921\n9.5235,9.6617\n6.0651,8.9291\n4.6789,9.4018\n6.6135,10.187\n9.8709,8.3299\n7.6782,8.4775\n7.3393,11.521\n8.409,8.5038\n6.5963,9.1385\n9.7558,9.4024\n7.6386,11.828\n8.215,10.902\n7.0008,9.1129\n8.6984,9.4699\n9.4452,8.7264\n7.8568,9.6034\n5.945,9.2398\n6.673,11.703\n8.3271,8.9896\n7.5815,8.2401\n9.6247,9.2866\n6.3567,6.3118\n8.9471,10.61\n8.3278,11.847\n9.144,9.1901\n5.9042,6.8374\n6.8587,9.6783\n9.2028,11.404\n6.9128,8.5792\n9.6802,9.8566\n8.0947,8.1938\n9.1816,9.1601\n10.078,10.609\n8.535,9.8726\n6.7218,9.5596\n6.7406,10.148\n9.3658,9.537\n8.583,10.438\n7.1527,9.1552\n8.2625,10.433\n6.4053,8.2274\n8.8538,13.376\n6.1128,8.0864\n6.0564,11.403\n11.047,9.4118\n9.4028,7.8263\n10.654,8.9927\n7.8444,9.6619\n7.9401,9.9275\n9.6703,8.8961\n7.4216,8.1057\n6.3204,12.585\n6.4993,10.236\n7.8599,11.029\n9.2529,8.1864\n7.6267,8.8601\n7.688,8.7935\n8.8017,12.014\n5.5158,8.9719\n9.1807,12.711\n9.9615,8.9468\n8.3119,10.622\n7.3214,11.19\n10.835,13.514\n9.8758,9.1766\n8.8685,10.557\n7.9689,9.2339\n8.1557,10.567\n6.9793,8.9059\n8.019,10.48\n6.182,8.6865\n7.0209,9.4265\n6.1021,10.608\n7.8876,9.1763\n7.9725,8.4128\n10.026,11.099\n7.4616,10.341\n5.4387,6.2815\n8.621,11.32\n8.5771,10.849\n9.0329,11.467\n5.8894,10.086\n6.0223,8.9997\n9.1245,9.5619\n8.9792,10.629\n9.9036,9.0662\n5.5837,11.095\n8.8599,11.54\n5.8182,9.922\n7.8146,10.706\n7.678,11.8\n7.6514,8.9099\n9.9967,9.7676\n8.7798,10.025\n8.2105,8.7111\n8.6717,8.9235\n7.0541,12.42\n4.7972,12.223\n7.0226,10.503\n6.3534,8.3114\n6.3401,5.2578\n9.7828,4.0385\n9.8485,5.0634\n8.4222,3.4904\n10.676,3.7232\n8.6076,4.5665\n9.3241,5.3747\n8.842,4.9676\n6.9117,6.1757\n6.6728,6.164\n7.3711,3.9231\n7.5473,5.2827\n6.3549,4.3111\n7.7254,5.9186\n6.4049,2.9627\n7.7946,4.8591\n7.3764,3.7003\n8.3275,6.2234\n5.817,6.2883\n6.0227,3.8011\n7.7322,5.3561\n7.8,5.5186\n4.4766,4.439\n7.1035,4.9358\n7.7254,3.8021\n8.8745,4.9381\n7.8087,6.4851\n8.9609,3.8193\n7.5341,6.9707\n7.544,4.5081\n8.5411,6.1625\n8.4384,3.4506\n7.8769,4.5754\n8.8237,4.8466\n9.8684,4.8825\n8.7557,2.6953\n7.6813,5.1323\n6.775,7.2473\n6.633,5.8471\n8.5367,6.8737\n7.8604,4.8779\n9.2009,4.0763\n8.1684,4.5773\n7.6961,4.0774\n6.7368,4.4011\n9.2082,2.7248\n10.548,5.855\n10.11,7.5204\n7.4665,4.8111\n7.5537,4.8099\n6.7491,6.0686\n7.9035,4.9522\n6.2508,5.2925\n6.5663,3.901\n8.8677,4.6378\n9.2162,4.1948\n8.0759,3.4488\n8.6108,6.6585\n9.5042,6.057\n8.1206,2.6351\n8.3493,4.8452\n9.3527,3.6928\n8.8893,4.972\n8.3628,5.0337\n8.0134,6.8498\n7.614,4.0945\n6.0591,5.4724\n8.8461,5.9578\n9.2098,5.2051\n8.5112,4.4217\n8.238,5.5061\n7.252,6.3359\n7.1497,4.0224\n8.3515,5.2945\n6.5854,6.4253\n7.0528,3.4983\n9.4438,4.7227\n8.791,5.5848\n8.7312,5.2865\n8.0221,4.4267\n6.7837,4.073\n5.9648,4.5168\n7.0061,6.9426\n5.8931,4.9208\n8.4453,3.47\n6.5532,5.2656\n8.9646,6.7678\n6.4496,5.8165\n8.026,5.3806\n7.2176,4.723\n8.888,4.1246\n9.1315,6.8525\n7.1878,4.7995\n7.9211,4.4514\n9.5221,5.3188\n7.6781,4.9154\n9.0977,4.2289\n8.4954,6.2359\n6.3558,5.3288\n7.773,6.1017\n7.1611,3.7658\n9.2299,5.2638\n7.7126,6.1959\n9.5199,4.5079\n7.3183,6.6629\n8.4996,4.44\n8.0577,4.2751\n5.9687,4.4042\n8.4932,4.5467\n6.4028,5.0749\n8.9207,4.6424\n8.3067,8.0192\n10.149,4.238\n6.3668,5.4492\n7.9297,5.8955\n6.6137,3.849\n9.7549,3.5269\n7.8307,2.0147\n7.4066,4.5896\n8.3019,5.63\n7.5919,6.7817\n9.6006,4.3809\n7.446,5.1042\n8.0417,3.9167\n8.5032,4.7749\n8.3606,5.609\n7.3512,4.0039\n8.1151,3.9949\n8.5605,2.7475\n6.6966,4.9045\n6.967,6.3968\n8.0379,3.1781\n9.0949,5.9452\n7.8487,6.0349\n9.918,5.0394\n10.562,4.9459\n6.729,5.1981\n10.235,4.486\n6.7383,5.3603\n7.8337,7.4905\n6.338,5.0303\n9.5132,5.5159\n9.0324,4.7112\n9.655,5.8111\n8.0592,7.7276\n6.4553,5.9475\n6.9213,3.7458\n7.9751,5.2088\n7.672,4.2821\n9.9491,4.6962\n6.0273,2.7039\n2.5842,-0.78145\n5.7519,0.47164\n4.452,1.9292\n3.557,1.993\n4.4305,1.5071\n5.2321,1.8874\n4.9632,2.6111\n3.6292,2.2756\n4.4179,1.6762\n4.4792,-0.48542\n2.9793,1.0587\n2.8691,0.64368\n5.6092,2.3089\n3.363,0.11844\n3.0394,0.3385\n4.061,1.9288\n3.5465,0.30538\n4.6585,2.7777\n5.3741,3.2067\n6.7261,3.2503\n3.5128,1.0614\n4.1428,1.4461\n4.3823,1.909\n6.1577,1.6063\n3.2885,0.21748\n2.8531,0.95509\n3.7459,-0.38113\n4.4149,1.0952\n4.545,2.4881\n3.4911,0.85152\n4.9162,1.7267\n3.3442,1.6568\n1.6734,-2.3434\n2.9725,1.3228\n4.2737,0.45274\n3.0906,1.3083\n3.103,0.26266\n3.8391,1.6007\n2.5103,-0.23146\n3.1482,1.7115\n3.6749,0.4472\n7.4118,2.7659\n4.5169,1.7403\n3.8392,0.59034\n2.869,-0.84236\n5.3118,1.1962\n3.754,0.29525\n3.3305,0.26089\n3.4236,0.89959\n4.097,1.388\n5.4443,2.1721\n5.9857,0.82952\n4.5255,2.1894\n6.4821,2.5475\n2.5037,-0.26736\n3.2723,-0.74829\n5.2647,2.9785\n4.9823,1.9932\n4.5307,2.1288\n3.2855,-0.25645\n4.2492,0.68574\n4.5177,1.5426\n6.1245,2.5263\n6.3739,1.2984\n3.5542,-0.0022266\n3.7198,0.029747\n4.1068,3.4136\n4.0324,0.82365\n0.8916,-2.3199\n2.5421,-0.25073\n3.4496,1.6582\n1.6742,-1.4661\n4.3976,0.42371\n3.5821,1.2752\n4.2244,0.39566\n3.5344,0.84822\n5.3301,3.1485\n4.2962,0.97311\n4.5265,2.6396\n1.9458,-0.82631\n4.0039,-0.24192\n3.496,0.33842\n4.2107,1.7528\n2.7814,-1.5106\n1.9983,-1.1069\n4.1747,1.1189\n3.7146,0.83475\n4.4816,1.2615\n6.4752,2.8782\n3.5114,-0.65291\n3.4455,-1.0671\n4.9059,2.0976\n4.8721,3.3228\n4.8875,1.8409\n3.9198,1.4001\n4.0987,0.32329\n7.5998,2.6613\n2.8802,-0.2179\n2.6282,-0.35153\n5.3251,0.68987\n3.5844,-0.11138\n3.8659,1.2591\n4.248,0.83132\n3.8687,0.40169\n3.4682,1.1039\n2.2245,-0.51693\n1.092,-1.131\n2.8433,-0.60014\n2.9478,-1.918\n4.0178,-0.57519\n3.5953,1.4054\n3.6495,1.6674\n5.484,2.8456\n6.3761,1.4142\n4.855,-0.12005\n1.7236,1.4305\n5.1145,1.5061\n3.5039,3.6424\n2.4687,0.41788\n4.3944,3.3112\n4.4694,1.2431\n4.3501,1.5798\n2.1938,-0.23313\n5.1663,1.7788\n3.8823,2.0892\n2.8914,0.06098\n4.9069,1.5342\n2.7353,0.83025\n4.3703,1.1658\n4.5317,-0.39911\n1.5195,-1.7626\n1.3833,-0.76994\n2.9553,-0.75538\n4.8226,2.181\n5.748,1.1364\n3.9291,2.1525\n3.9835,1.4679\n4.0494,1.8999\n3.5884,-0.052606\n3.632,0.52051\n3.5126,1.4081\n5.8236,2.8078\n2.0913,-0.78497\n4.5693,2.3352\n4.2812,1.8393\n4.4875,1.7545\n3.3297,-0.76577\n4.1073,1.4779\n5.2182,3.0578\n"
  },
  {
    "path": "src/matlab/experimental/multifiltration_flattening/clustering_example.m",
    "content": "clc; clear; close all;\n\n%% Load data\n\nload Syn2d_5g1k3c\npoints = dataM_c1;\n\n% mean center\npoints(:, 1) = points(:, 1) - mean(points(:, 1));\npoints(:, 2) = points(:, 2) - mean(points(:, 2));\n\npoints(:, 1) = points(:, 1) / max(abs(points(:, 1)));\npoints(:, 2) = points(:, 2) / max(abs(points(:, 2)));\n%scatter(points(:, 1), points(:, 2));\n\n%% Parameters\n\nmax_dimension = 0;\nmax_filtration_value = 0.2;\nsigma = 0.1;\nprincipal_direction = [1000, 5000];\n\nmetric_space = metric.impl.EuclideanMetricSpace(points);\n\nstream = api.Plex4.createVietorisRipsStream(points, max_dimension + 1, max_filtration_value, 1000);\nstream.finalizeStream();\n\ndensityFilterFunction = streams.filter.KernelDensityFilterFunction(metric_space, sigma);\ndensities = densityFilterFunction.getValues();\nintFilterFunction = streams.filter.ExplicitIntFilterFunction(-densities);\nsimplexFilterFunction = streams.filter.MaxSimplicialFilterFunction(intFilterFunction);\n\nmultifilteredStream = streams.multi.BifilteredMetricStream(stream, simplexFilterFunction);\n\nflattener = streams.multi.HalfplaneFlattener(principal_direction);\nflattened_stream = flattener.collapse(multifilteredStream);\n\npersistenceAlgorithm = api.PersistenceAlgorithmInterface.getBooleanSimplicialAbsoluteHomology(max_dimension + 1);\nbarcodes = persistenceAlgorithm.computeAnnotatedIntervals(flattened_stream);\n\n%% Output\npoints(:, 3) = densities;\n%render_onscreen(flattened_stream, points);\n\n%%\noptions.filename = 'flattened_clusters.eps';\noptions.caption = 'Barcodes for flattened multifiltered complex';\noptions.file_format = 'eps';\nplot_barcodes(barcodes, options);\n\n%% Extract 5 longest intervals\n\ndim_0_intervals = barcodes.getIntervalGeneratorPairsAtDimension(0);\nlongest_interval_pairs = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility.getLongestAnnotatedBarcodes(dim_0_intervals, 5);\n\nfprintf('Longest Intervals and their Generators:\\n');\nfor i=0:4\n    chain = longest_interval_pairs.get(i).getSecond();\n    interval = longest_interval_pairs.get(i).getFirst();\n    iterator = chain.iterator();\n    fprintf('interval: %s, chain: %s\\n', char(interval.toString()), char(chain.toString()));\n    while (iterator.hasNext())\n        element = iterator.next();\n        filtration_value = multifilteredStream.getFiltrationValue(element);\n        fprintf('element: %s, filtration value: %f, %f\\n', char(element.toString()), filtration_value(1), -filtration_value(2));\n    end\nend"
  },
  {
    "path": "src/matlab/experimental/multifiltration_flattening/flattened_clusters.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./flattened_clusters.eps\n%%CreationDate: 12/08/2011  11:26:47\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   546   602\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   546   602\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864   110  5477  4651 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 4226 5355 0 0 -4226 899 4615 4 MP\nPP\n-5355 0 0 4226 5355 0 0 -4226 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n1664 4615 mt 1664  389 L\n1664  389 mt 1664  389 L\n2458 4615 mt 2458  389 L\n2458  389 mt 2458  389 L\n3251 4615 mt 3251  389 L\n3251  389 mt 3251  389 L\n4045 4615 mt 4045  389 L\n4045  389 mt 4045  389 L\n4838 4615 mt 4838  389 L\n4838  389 mt 4838  389 L\n5632 4615 mt 5632  389 L\n5632  389 mt 5632  389 L\nSO\n6 w\n 899 4615 mt 6254 4615 L\n 899 4615 mt  899  389 L\n1664 4615 mt 1664 4561 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n1494 4760 mt \n(-800) s\n2458 4615 mt 2458 4561 L\n2288 4760 mt \n(-600) s\n3251 4615 mt 3251 4561 L\n3081 4760 mt \n(-400) s\n4045 4615 mt 4045 4561 L\n3875 4760 mt \n(-200) s\n4838 4615 mt 4838 4561 L\n4805 4760 mt \n(0) s\n5632 4615 mt 5632 4561 L\n5532 4760 mt \n(200) s\ngs 899 389 5357 4227 MR c np\n575 0 4735 393 2 MP stroke\n595 0 4735 397 2 MP stroke\n631 0 4731 401 2 MP stroke\n441 0 4691 405 2 MP stroke\n433 0 4687 410 2 MP stroke\n425 0 4683 414 2 MP stroke\n298 0 4679 418 2 MP stroke\n392 0 4652 422 2 MP stroke\n309 0 4648 426 2 MP stroke\n262 0 4644 431 2 MP stroke\n337 0 4640 435 2 MP stroke\n488 0 4628 439 2 MP stroke\n353 0 4620 443 2 MP stroke\n309 0 4616 448 2 MP stroke\n329 0 4612 452 2 MP stroke\n444 0 4608 456 2 MP stroke\n274 0 4600 460 2 MP stroke\n95 0 4592 464 2 MP stroke\n298 0 4592 469 2 MP stroke\n441 0 4588 473 2 MP stroke\n258 0 4584 477 2 MP stroke\n294 0 4584 481 2 MP stroke\n207 0 4580 486 2 MP stroke\n207 0 4552 490 2 MP stroke\n142 0 4541 494 2 MP stroke\n258 0 4533 498 2 MP stroke\n345 0 4529 502 2 MP stroke\n103 0 4525 507 2 MP stroke\n67 0 4517 511 2 MP stroke\n297 0 4517 515 2 MP stroke\n230 0 4509 519 2 MP stroke\n262 0 4509 524 2 MP stroke\n373 0 4505 528 2 MP stroke\n214 0 4489 532 2 MP stroke\n258 0 4489 536 2 MP stroke\n266 0 4489 540 2 MP stroke\n393 0 4473 545 2 MP stroke\n68 0 4469 549 2 MP stroke\n187 0 4469 553 2 MP stroke\n262 0 4469 557 2 MP stroke\n238 0 4465 562 2 MP stroke\n270 0 4465 566 2 MP stroke\n242 0 4461 570 2 MP stroke\n88 0 4457 574 2 MP stroke\n242 0 4449 578 2 MP stroke\n369 0 4445 583 2 MP stroke\n127 0 4441 587 2 MP stroke\n203 0 4441 591 2 MP stroke\n350 0 4437 595 2 MP stroke\n135 0 4433 600 2 MP stroke\n350 0 4429 604 2 MP stroke\n238 0 4418 608 2 MP stroke\n242 0 4418 612 2 MP stroke\n440 0 4402 616 2 MP stroke\n95 0 4398 621 2 MP stroke\n186 0 4394 625 2 MP stroke\n289 0 4394 629 2 MP stroke\n270 0 4386 633 2 MP stroke\n131 0 4382 638 2 MP stroke\n210 0 4382 642 2 MP stroke\n40 0 4374 646 2 MP stroke\n151 0 4374 650 2 MP stroke\n286 0 4374 654 2 MP stroke\n202 0 4362 659 2 MP stroke\n167 0 4354 663 2 MP stroke\n246 0 4346 667 2 MP stroke\n361 0 4342 671 2 MP stroke\n218 0 4338 676 2 MP stroke\n226 0 4334 680 2 MP stroke\n147 0 4330 684 2 MP stroke\n234 0 4330 688 2 MP stroke\n175 0 4326 692 2 MP stroke\n215 0 4326 697 2 MP stroke\n326 0 4326 701 2 MP stroke\n155 0 4322 705 2 MP stroke\n330 0 4318 709 2 MP stroke\n211 0 4314 714 2 MP stroke\n182 0 4307 718 2 MP stroke\n170 0 4303 722 2 MP stroke\n277 0 4299 726 2 MP stroke\n190 0 4295 730 2 MP stroke\n158 0 4291 735 2 MP stroke\n123 0 4283 739 2 MP stroke\n178 0 4279 743 2 MP stroke\n285 0 4275 747 2 MP stroke\n24 0 4271 752 2 MP stroke\n151 0 4271 756 2 MP stroke\n325 0 4271 760 2 MP stroke\n135 0 4267 764 2 MP stroke\n147 0 4263 768 2 MP stroke\n91 0 4259 773 2 MP stroke\n99 0 4259 777 2 MP stroke\n155 0 4259 781 2 MP stroke\n159 0 4255 785 2 MP stroke\n171 0 4255 790 2 MP stroke\n182 0 4251 794 2 MP stroke\n238 0 4251 798 2 MP stroke\n238 0 4251 802 2 MP stroke\n135 0 4239 806 2 MP stroke\n266 0 4239 811 2 MP stroke\n151 0 4235 815 2 MP stroke\n163 0 4235 819 2 MP stroke\n214 0 4231 823 2 MP stroke\n226 0 4231 828 2 MP stroke\n64 0 4227 832 2 MP stroke\n270 0 4227 836 2 MP stroke\n103 0 4223 840 2 MP stroke\n195 0 4215 844 2 MP stroke\n155 0 4211 849 2 MP stroke\n246 0 4203 853 2 MP stroke\n159 0 4199 857 2 MP stroke\n274 0 4195 861 2 MP stroke\n163 0 4191 866 2 MP stroke\n246 0 4191 870 2 MP stroke\n171 0 4187 874 2 MP stroke\n146 0 4184 878 2 MP stroke\n234 0 4184 882 2 MP stroke\n35 0 4172 887 2 MP stroke\n214 0 4168 891 2 MP stroke\n297 0 4160 895 2 MP stroke\n162 0 4156 899 2 MP stroke\n202 0 4152 904 2 MP stroke\n270 0 4144 908 2 MP stroke\n242 0 4136 912 2 MP stroke\n28 0 4128 916 2 MP stroke\n139 0 4128 920 2 MP stroke\n111 0 4124 925 2 MP stroke\n302 0 4124 929 2 MP stroke\n171 0 4116 933 2 MP stroke\n175 0 4116 937 2 MP stroke\n234 0 4116 942 2 MP stroke\n131 0 4108 946 2 MP stroke\n103 0 4104 950 2 MP stroke\n72 0 4100 954 2 MP stroke\n199 0 4100 958 2 MP stroke\n44 0 4092 963 2 MP stroke\n111 0 4092 967 2 MP stroke\n191 0 4088 971 2 MP stroke\n286 0 4080 975 2 MP stroke\n111 0 4076 980 2 MP stroke\n338 0 4068 984 2 MP stroke\n179 0 4064 988 2 MP stroke\n146 0 4061 992 2 MP stroke\n198 0 4057 996 2 MP stroke\n55 0 4053 1001 2 MP stroke\n107 0 4053 1005 2 MP stroke\n154 0 4053 1009 2 MP stroke\n182 0 4049 1013 2 MP stroke\n135 0 4045 1018 2 MP stroke\n154 0 4045 1022 2 MP stroke\n206 0 4041 1026 2 MP stroke\n206 0 4041 1030 2 MP stroke\n99 0 4037 1034 2 MP stroke\n127 0 4037 1039 2 MP stroke\n214 0 4037 1043 2 MP stroke\n87 0 4025 1047 2 MP stroke\n123 0 4025 1051 2 MP stroke\n266 0 4025 1056 2 MP stroke\n75 0 4021 1060 2 MP stroke\n87 0 4021 1064 2 MP stroke\n111 0 4013 1068 2 MP stroke\n171 0 4013 1072 2 MP stroke\n270 0 4013 1077 2 MP stroke\n214 0 4009 1081 2 MP stroke\n143 0 4005 1085 2 MP stroke\n218 0 4005 1089 2 MP stroke\n75 0 4001 1094 2 MP stroke\n202 0 3997 1098 2 MP stroke\n210 0 3993 1102 2 MP stroke\n147 0 3989 1106 2 MP stroke\n206 0 3985 1110 2 MP stroke\n175 0 3969 1115 2 MP stroke\n52 0 3965 1119 2 MP stroke\n226 0 3965 1123 2 MP stroke\n143 0 3961 1127 2 MP stroke\n4 0 3957 1132 2 MP stroke\n100 0 3957 1136 2 MP stroke\n80 0 3953 1140 2 MP stroke\n111 0 3953 1144 2 MP stroke\n155 0 3945 1148 2 MP stroke\n115 0 3942 1153 2 MP stroke\n214 0 3942 1157 2 MP stroke\n75 0 3938 1161 2 MP stroke\n59 0 3930 1165 2 MP stroke\n269 0 3930 1170 2 MP stroke\n131 0 3926 1174 2 MP stroke\n218 0 3922 1178 2 MP stroke\n127 0 3914 1182 2 MP stroke\n202 0 3914 1186 2 MP stroke\n111 0 3910 1191 2 MP stroke\n186 0 3910 1195 2 MP stroke\n127 0 3906 1199 2 MP stroke\n285 0 3902 1203 2 MP stroke\n147 0 3894 1208 2 MP stroke\n210 0 3894 1212 2 MP stroke\n171 0 3890 1216 2 MP stroke\n87 0 3886 1220 2 MP stroke\n151 0 3886 1224 2 MP stroke\n242 0 3886 1229 2 MP stroke\n107 0 3882 1233 2 MP stroke\n147 0 3878 1237 2 MP stroke\n171 0 3878 1241 2 MP stroke\n194 0 3878 1246 2 MP stroke\n179 0 3874 1250 2 MP stroke\n115 0 3870 1254 2 MP stroke\n242 0 3870 1258 2 MP stroke\n262 0 3870 1262 2 MP stroke\n103 0 3866 1267 2 MP stroke\n214 0 3866 1271 2 MP stroke\n254 0 3858 1275 2 MP stroke\n218 0 3850 1279 2 MP stroke\n72 0 3838 1284 2 MP stroke\n187 0 3834 1288 2 MP stroke\n163 0 3830 1292 2 MP stroke\n127 0 3826 1296 2 MP stroke\n79 0 3815 1300 2 MP stroke\n111 0 3815 1305 2 MP stroke\n35 0 3807 1309 2 MP stroke\n123 0 3791 1313 2 MP stroke\n226 0 3787 1317 2 MP stroke\n71 0 3779 1322 2 MP stroke\n99 0 3779 1326 2 MP stroke\n313 0 3779 1330 2 MP stroke\n91 0 3775 1334 2 MP stroke\n174 0 3775 1338 2 MP stroke\n111 0 3767 1343 2 MP stroke\n107 0 3763 1347 2 MP stroke\n155 0 3763 1351 2 MP stroke\n187 0 3755 1355 2 MP stroke\n222 0 3755 1360 2 MP stroke\n95 0 3739 1364 2 MP stroke\n147 0 3739 1368 2 MP stroke\n123 0 3735 1372 2 MP stroke\n68 0 3731 1376 2 MP stroke\n88 0 3727 1381 2 MP stroke\n80 0 3715 1385 2 MP stroke\n131 0 3715 1389 2 MP stroke\n44 0 3711 1393 2 MP stroke\n96 0 3711 1398 2 MP stroke\n183 0 3711 1402 2 MP stroke\n147 0 3707 1406 2 MP stroke\n278 0 3707 1410 2 MP stroke\n123 0 3699 1414 2 MP stroke\n139 0 3699 1419 2 MP stroke\n207 0 3699 1423 2 MP stroke\n31 0 3696 1427 2 MP stroke\n55 0 3696 1431 2 MP stroke\n99 0 3692 1436 2 MP stroke\n115 0 3692 1440 2 MP stroke\n91 0 3688 1444 2 MP stroke\n206 0 3688 1448 2 MP stroke\n115 0 3684 1452 2 MP stroke\n127 0 3684 1457 2 MP stroke\n75 0 3668 1461 2 MP stroke\n95 0 3668 1465 2 MP stroke\n178 0 3668 1469 2 MP stroke\n83 0 3664 1473 2 MP stroke\n143 0 3664 1478 2 MP stroke\n39 0 3660 1482 2 MP stroke\n79 0 3660 1486 2 MP stroke\n95 0 3660 1490 2 MP stroke\n131 0 3660 1495 2 MP stroke\n139 0 3660 1499 2 MP stroke\n159 0 3660 1503 2 MP stroke\n99 0 3656 1507 2 MP stroke\n135 0 3656 1511 2 MP stroke\n143 0 3656 1516 2 MP stroke\n159 0 3652 1520 2 MP stroke\n67 0 3644 1524 2 MP stroke\n139 0 3644 1528 2 MP stroke\n95 0 3640 1533 2 MP stroke\n107 0 3640 1537 2 MP stroke\n60 0 3636 1541 2 MP stroke\n198 0 3636 1545 2 MP stroke\n60 0 3632 1549 2 MP stroke\n91 0 3632 1554 2 MP stroke\n12 0 3624 1558 2 MP stroke\n147 0 3624 1562 2 MP stroke\n222 0 3624 1566 2 MP stroke\n278 0 3620 1571 2 MP stroke\n139 0 3604 1575 2 MP stroke\n151 0 3600 1579 2 MP stroke\n183 0 3600 1583 2 MP stroke\n44 0 3588 1587 2 MP stroke\n171 0 3588 1592 2 MP stroke\n147 0 3580 1596 2 MP stroke\n159 0 3580 1600 2 MP stroke\n246 0 3580 1604 2 MP stroke\n60 0 3576 1609 2 MP stroke\n219 0 3576 1613 2 MP stroke\n55 0 3573 1617 2 MP stroke\n15 0 3569 1621 2 MP stroke\n135 0 3561 1625 2 MP stroke\n158 0 3561 1630 2 MP stroke\n166 0 3561 1634 2 MP stroke\n63 0 3557 1638 2 MP stroke\n107 0 3553 1642 2 MP stroke\n198 0 3553 1647 2 MP stroke\n226 0 3549 1651 2 MP stroke\n28 0 3545 1655 2 MP stroke\n234 0 3541 1659 2 MP stroke\n40 0 3533 1663 2 MP stroke\n79 0 3533 1668 2 MP stroke\n115 0 3533 1672 2 MP stroke\n139 0 3533 1676 2 MP stroke\n91 0 3525 1680 2 MP stroke\n103 0 3525 1685 2 MP stroke\n48 0 3521 1689 2 MP stroke\n67 0 3521 1693 2 MP stroke\n79 0 3517 1697 2 MP stroke\n123 0 3513 1701 2 MP stroke\n56 0 3509 1706 2 MP stroke\n111 0 3509 1710 2 MP stroke\n163 0 3509 1714 2 MP stroke\n139 0 3505 1718 2 MP stroke\n36 0 3501 1723 2 MP stroke\n230 0 3501 1727 2 MP stroke\n76 0 3489 1731 2 MP stroke\n103 0 3485 1735 2 MP stroke\n226 0 3485 1739 2 MP stroke\n143 0 3481 1744 2 MP stroke\n159 0 3481 1748 2 MP stroke\n171 0 3481 1752 2 MP stroke\n99 0 3477 1756 2 MP stroke\n103 0 3473 1761 2 MP stroke\n175 0 3473 1765 2 MP stroke\n111 0 3469 1769 2 MP stroke\n127 0 3465 1773 2 MP stroke\n207 0 3457 1777 2 MP stroke\n67 0 3454 1782 2 MP stroke\n107 0 3450 1786 2 MP stroke\n142 0 3450 1790 2 MP stroke\n150 0 3450 1794 2 MP stroke\n170 0 3450 1799 2 MP stroke\n198 0 3450 1803 2 MP stroke\n35 0 3438 1807 2 MP stroke\n123 0 3438 1811 2 MP stroke\n170 0 3438 1815 2 MP stroke\n43 0 3434 1820 2 MP stroke\n79 0 3434 1824 2 MP stroke\n174 0 3434 1828 2 MP stroke\n115 0 3430 1832 2 MP stroke\n115 0 3430 1837 2 MP stroke\n91 0 3426 1841 2 MP stroke\n135 0 3426 1845 2 MP stroke\n218 0 3422 1849 2 MP stroke\n218 0 3422 1853 2 MP stroke\n87 0 3418 1858 2 MP stroke\n67 0 3414 1862 2 MP stroke\n103 0 3414 1866 2 MP stroke\n119 0 3414 1870 2 MP stroke\n87 0 3406 1875 2 MP stroke\n143 0 3402 1879 2 MP stroke\n107 0 3398 1883 2 MP stroke\n210 0 3398 1887 2 MP stroke\n36 0 3394 1891 2 MP stroke\n127 0 3386 1896 2 MP stroke\n75 0 3382 1900 2 MP stroke\n95 0 3382 1904 2 MP stroke\n103 0 3382 1908 2 MP stroke\n52 0 3378 1913 2 MP stroke\n179 0 3378 1917 2 MP stroke\n80 0 3374 1921 2 MP stroke\n139 0 3370 1925 2 MP stroke\n147 0 3366 1929 2 MP stroke\n40 0 3362 1934 2 MP stroke\n147 0 3362 1938 2 MP stroke\n28 0 3358 1942 2 MP stroke\n171 0 3350 1946 2 MP stroke\n64 0 3346 1951 2 MP stroke\n72 0 3346 1955 2 MP stroke\n163 0 3346 1959 2 MP stroke\n139 0 3342 1963 2 MP stroke\n227 0 3338 1967 2 MP stroke\n84 0 3334 1972 2 MP stroke\n91 0 3331 1976 2 MP stroke\n142 0 3331 1980 2 MP stroke\n103 0 3327 1984 2 MP stroke\n123 0 3323 1989 2 MP stroke\n67 0 3319 1993 2 MP stroke\n91 0 3315 1997 2 MP stroke\n115 0 3315 2001 2 MP stroke\n71 0 3311 2005 2 MP stroke\n51 0 3307 2010 2 MP stroke\n131 0 3307 2014 2 MP stroke\n139 0 3307 2018 2 MP stroke\n178 0 3307 2022 2 MP stroke\n79 0 3303 2027 2 MP stroke\n115 0 3303 2031 2 MP stroke\n127 0 3299 2035 2 MP stroke\n147 0 3299 2039 2 MP stroke\n151 0 3299 2043 2 MP stroke\n155 0 3299 2048 2 MP stroke\n107 0 3295 2052 2 MP stroke\n155 0 3295 2056 2 MP stroke\n182 0 3291 2060 2 MP stroke\n28 0 3283 2065 2 MP stroke\n63 0 3279 2069 2 MP stroke\n16 0 3275 2073 2 MP stroke\n131 0 3275 2077 2 MP stroke\n36 0 3271 2081 2 MP stroke\n60 0 3267 2086 2 MP stroke\n99 0 3267 2090 2 MP stroke\n159 0 3267 2094 2 MP stroke\n91 0 3259 2098 2 MP stroke\n163 0 3259 2103 2 MP stroke\n68 0 3255 2107 2 MP stroke\n87 0 3255 2111 2 MP stroke\n95 0 3255 2115 2 MP stroke\n48 0 3251 2119 2 MP stroke\n56 0 3251 2124 2 MP stroke\n91 0 3251 2128 2 MP stroke\n163 0 3247 2132 2 MP stroke\n88 0 3239 2136 2 MP stroke\n76 0 3235 2141 2 MP stroke\n111 0 3235 2145 2 MP stroke\n115 0 3231 2149 2 MP stroke\n28 0 3227 2153 2 MP stroke\n96 0 3227 2157 2 MP stroke\n96 0 3227 2162 2 MP stroke\n100 0 3227 2166 2 MP stroke\n119 0 3227 2170 2 MP stroke\n64 0 3219 2174 2 MP stroke\n88 0 3219 2179 2 MP stroke\n96 0 3215 2183 2 MP stroke\n35 0 3208 2187 2 MP stroke\n95 0 3208 2191 2 MP stroke\n35 0 3204 2195 2 MP stroke\n130 0 3204 2200 2 MP stroke\n142 0 3192 2204 2 MP stroke\n123 0 3188 2208 2 MP stroke\n51 0 3180 2212 2 MP stroke\n214 0 3180 2217 2 MP stroke\n55 0 3176 2221 2 MP stroke\n75 0 3172 2225 2 MP stroke\n24 0 3168 2229 2 MP stroke\n28 0 3168 2233 2 MP stroke\n91 0 3168 2238 2 MP stroke\n47 0 3164 2242 2 MP stroke\n51 0 3164 2246 2 MP stroke\n12 0 3160 2250 2 MP stroke\n48 0 3156 2255 2 MP stroke\n99 0 3156 2259 2 MP stroke\n36 0 3152 2263 2 MP stroke\n24 0 3148 2267 2 MP stroke\n67 0 3148 2271 2 MP stroke\n67 0 3144 2276 2 MP stroke\n119 0 3144 2280 2 MP stroke\n147 0 3144 2284 2 MP stroke\n48 0 3140 2288 2 MP stroke\n60 0 3140 2293 2 MP stroke\n95 0 3140 2297 2 MP stroke\n111 0 3140 2301 2 MP stroke\n163 0 3140 2305 2 MP stroke\n64 0 3136 2309 2 MP stroke\n99 0 3136 2314 2 MP stroke\n119 0 3136 2318 2 MP stroke\n147 0 3136 2322 2 MP stroke\n179 0 3136 2326 2 MP stroke\n60 0 3132 2331 2 MP stroke\n64 0 3132 2335 2 MP stroke\n95 0 3128 2339 2 MP stroke\n187 0 3128 2343 2 MP stroke\n195 0 3128 2347 2 MP stroke\n91 0 3120 2352 2 MP stroke\n95 0 3120 2356 2 MP stroke\n103 0 3120 2360 2 MP stroke\n151 0 3120 2364 2 MP stroke\n171 0 3120 2369 2 MP stroke\n76 0 3116 2373 2 MP stroke\n52 0 3112 2377 2 MP stroke\n84 0 3112 2381 2 MP stroke\n183 0 3112 2385 2 MP stroke\n84 0 3108 2390 2 MP stroke\n103 0 3108 2394 2 MP stroke\n135 0 3100 2398 2 MP stroke\n16 0 3096 2402 2 MP stroke\n72 0 3092 2407 2 MP stroke\n47 0 3089 2411 2 MP stroke\n51 0 3089 2415 2 MP stroke\n63 0 3089 2419 2 MP stroke\n218 0 3089 2423 2 MP stroke\n83 0 3085 2428 2 MP stroke\n91 0 3077 2432 2 MP stroke\n107 0 3077 2436 2 MP stroke\n99 0 3073 2440 2 MP stroke\n158 0 3073 2445 2 MP stroke\n51 0 3069 2449 2 MP stroke\n119 0 3069 2453 2 MP stroke\n55 0 3065 2457 2 MP stroke\n83 0 3065 2461 2 MP stroke\n35 0 3061 2466 2 MP stroke\n47 0 3057 2470 2 MP stroke\n59 0 3049 2474 2 MP stroke\n135 0 3049 2478 2 MP stroke\n139 0 3049 2483 2 MP stroke\n83 0 3045 2487 2 MP stroke\n87 0 3037 2491 2 MP stroke\n95 0 3037 2495 2 MP stroke\n111 0 3037 2499 2 MP stroke\n143 0 3037 2504 2 MP stroke\n91 0 3033 2508 2 MP stroke\n95 0 3025 2512 2 MP stroke\n79 0 3021 2516 2 MP stroke\n202 0 3013 2520 2 MP stroke\n80 0 3009 2525 2 MP stroke\n87 0 3009 2529 2 MP stroke\n111 0 3009 2533 2 MP stroke\n123 0 3005 2537 2 MP stroke\n175 0 3005 2542 2 MP stroke\n16 0 3001 2546 2 MP stroke\n167 0 3001 2550 2 MP stroke\n28 0 2997 2554 2 MP stroke\n111 0 2997 2558 2 MP stroke\n72 0 2989 2563 2 MP stroke\n175 0 2985 2567 2 MP stroke\n36 0 2981 2571 2 MP stroke\n72 0 2981 2575 2 MP stroke\n167 0 2981 2580 2 MP stroke\n36 0 2973 2584 2 MP stroke\n7 0 2966 2588 2 MP stroke\n67 0 2966 2592 2 MP stroke\n79 0 2966 2596 2 MP stroke\n43 0 2962 2601 2 MP stroke\n59 0 2962 2605 2 MP stroke\n182 0 2962 2609 2 MP stroke\n186 0 2962 2613 2 MP stroke\n87 0 2950 2618 2 MP stroke\n103 0 2946 2622 2 MP stroke\n12 0 2942 2626 2 MP stroke\n103 0 2942 2630 2 MP stroke\n147 0 2942 2634 2 MP stroke\n91 0 2938 2639 2 MP stroke\n103 0 2938 2643 2 MP stroke\n115 0 2938 2647 2 MP stroke\n95 0 2934 2651 2 MP stroke\n24 0 2930 2656 2 MP stroke\n24 0 2930 2660 2 MP stroke\n24 0 2930 2664 2 MP stroke\n83 0 2926 2668 2 MP stroke\n107 0 2926 2672 2 MP stroke\n67 0 2922 2677 2 MP stroke\n71 0 2922 2681 2 MP stroke\n99 0 2922 2685 2 MP stroke\n20 0 2918 2689 2 MP stroke\n95 0 2910 2694 2 MP stroke\n103 0 2910 2698 2 MP stroke\n79 0 2906 2702 2 MP stroke\n115 0 2906 2706 2 MP stroke\n12 0 2902 2710 2 MP stroke\n119 0 2902 2715 2 MP stroke\n119 0 2902 2719 2 MP stroke\n131 0 2902 2723 2 MP stroke\n135 0 2902 2727 2 MP stroke\n111 0 2898 2732 2 MP stroke\n107 0 2894 2736 2 MP stroke\n163 0 2894 2740 2 MP stroke\n48 0 2890 2744 2 MP stroke\n48 0 2890 2748 2 MP stroke\n159 0 2890 2753 2 MP stroke\n87 0 2886 2757 2 MP stroke\n103 0 2886 2761 2 MP stroke\n16 0 2882 2765 2 MP stroke\n99 0 2878 2770 2 MP stroke\n56 0 2874 2774 2 MP stroke\n36 0 2862 2778 2 MP stroke\n48 0 2854 2782 2 MP stroke\n167 0 2850 2786 2 MP stroke\n48 0 2846 2791 2 MP stroke\n135 0 2846 2795 2 MP stroke\n167 0 2846 2799 2 MP stroke\n123 0 2843 2803 2 MP stroke\n107 0 2839 2808 2 MP stroke\n123 0 2839 2812 2 MP stroke\n127 0 2839 2816 2 MP stroke\n51 0 2831 2820 2 MP stroke\n71 0 2831 2824 2 MP stroke\n115 0 2831 2829 2 MP stroke\n67 0 2819 2833 2 MP stroke\n158 0 2819 2837 2 MP stroke\n75 0 2815 2841 2 MP stroke\n99 0 2815 2846 2 MP stroke\n111 0 2811 2850 2 MP stroke\n55 0 2803 2854 2 MP stroke\n55 0 2799 2858 2 MP stroke\n131 0 2799 2862 2 MP stroke\n87 0 2795 2867 2 MP stroke\n63 0 2787 2871 2 MP stroke\n123 0 2787 2875 2 MP stroke\n63 0 2783 2879 2 MP stroke\n79 0 2783 2884 2 MP stroke\n95 0 2783 2888 2 MP stroke\n103 0 2783 2892 2 MP stroke\n115 0 2783 2896 2 MP stroke\n155 0 2783 2900 2 MP stroke\n32 0 2779 2905 2 MP stroke\n60 0 2779 2909 2 MP stroke\n71 0 2779 2913 2 MP stroke\n71 0 2779 2917 2 MP stroke\n72 0 2771 2922 2 MP stroke\n72 0 2771 2926 2 MP stroke\n87 0 2771 2930 2 MP stroke\n91 0 2771 2934 2 MP stroke\n115 0 2771 2938 2 MP stroke\n87 0 2767 2943 2 MP stroke\n103 0 2767 2947 2 MP stroke\n131 0 2767 2951 2 MP stroke\n143 0 2767 2955 2 MP stroke\n76 0 2763 2960 2 MP stroke\n80 0 2763 2964 2 MP stroke\n171 0 2763 2968 2 MP stroke\n28 0 2759 2972 2 MP stroke\n52 0 2759 2976 2 MP stroke\n56 0 2759 2981 2 MP stroke\n64 0 2759 2985 2 MP stroke\n203 0 2759 2989 2 MP stroke\n28 0 2751 2993 2 MP stroke\n44 0 2751 2998 2 MP stroke\n127 0 2747 3002 2 MP stroke\n52 0 2743 3006 2 MP stroke\n84 0 2743 3010 2 MP stroke\n80 0 2739 3014 2 MP stroke\n111 0 2739 3019 2 MP stroke\n131 0 2739 3023 2 MP stroke\n64 0 2735 3027 2 MP stroke\n159 0 2727 3031 2 MP stroke\n47 0 2724 3036 2 MP stroke\n79 0 2724 3040 2 MP stroke\n83 0 2724 3044 2 MP stroke\n31 0 2720 3048 2 MP stroke\n31 0 2720 3052 2 MP stroke\n35 0 2720 3057 2 MP stroke\n119 0 2720 3061 2 MP stroke\n111 0 2716 3065 2 MP stroke\n119 0 2716 3069 2 MP stroke\n134 0 2712 3074 2 MP stroke\n23 0 2708 3078 2 MP stroke\n131 0 2704 3082 2 MP stroke\n166 0 2704 3086 2 MP stroke\n166 0 2700 3090 2 MP stroke\n35 0 2696 3095 2 MP stroke\n67 0 2696 3099 2 MP stroke\n83 0 2696 3103 2 MP stroke\n103 0 2696 3107 2 MP stroke\n16 0 2692 3112 2 MP stroke\n20 0 2692 3116 2 MP stroke\n51 0 2692 3120 2 MP stroke\n83 0 2692 3124 2 MP stroke\n178 0 2692 3128 2 MP stroke\n111 0 2688 3133 2 MP stroke\n174 0 2684 3137 2 MP stroke\n44 0 2680 3141 2 MP stroke\n79 0 2680 3145 2 MP stroke\n32 0 2676 3150 2 MP stroke\n44 0 2676 3154 2 MP stroke\n75 0 2676 3158 2 MP stroke\n87 0 2676 3162 2 MP stroke\n182 0 2676 3166 2 MP stroke\n83 0 2668 3171 2 MP stroke\n28 0 2664 3175 2 MP stroke\n79 0 2664 3179 2 MP stroke\n83 0 2664 3183 2 MP stroke\n206 0 2664 3188 2 MP stroke\n20 0 2656 3192 2 MP stroke\n68 0 2656 3196 2 MP stroke\n36 0 2648 3200 2 MP stroke\n56 0 2648 3204 2 MP stroke\n99 0 2648 3209 2 MP stroke\n64 0 2644 3213 2 MP stroke\n139 0 2644 3217 2 MP stroke\n111 0 2636 3221 2 MP stroke\n119 0 2632 3226 2 MP stroke\n60 0 2628 3230 2 MP stroke\n68 0 2624 3234 2 MP stroke\n72 0 2624 3238 2 MP stroke\n100 0 2624 3242 2 MP stroke\n115 0 2624 3247 2 MP stroke\n119 0 2624 3251 2 MP stroke\n48 0 2620 3255 2 MP stroke\n104 0 2620 3259 2 MP stroke\n119 0 2620 3264 2 MP stroke\n36 0 2616 3268 2 MP stroke\n44 0 2616 3272 2 MP stroke\n76 0 2616 3276 2 MP stroke\n68 0 2608 3280 2 MP stroke\n116 0 2608 3285 2 MP stroke\n282 0 2608 3289 2 MP stroke\n36 0 2604 3293 2 MP stroke\n88 0 2604 3297 2 MP stroke\n15 0 2601 3302 2 MP stroke\n59 0 2601 3306 2 MP stroke\n119 0 2601 3310 2 MP stroke\n162 0 2601 3314 2 MP stroke\n51 0 2597 3318 2 MP stroke\n67 0 2597 3323 2 MP stroke\n63 0 2593 3327 2 MP stroke\n87 0 2593 3331 2 MP stroke\n868 0 2589 3335 2 MP stroke\n87 0 2585 3340 2 MP stroke\n158 0 2585 3344 2 MP stroke\n150 0 2577 3348 2 MP stroke\n71 0 2573 3352 2 MP stroke\n47 0 2565 3356 2 MP stroke\n111 0 2561 3361 2 MP stroke\n103 0 2557 3365 2 MP stroke\n55 0 2553 3369 2 MP stroke\n79 0 2553 3373 2 MP stroke\n79 0 2549 3378 2 MP stroke\n40 0 2545 3382 2 MP stroke\n48 0 2541 3386 2 MP stroke\n75 0 2541 3390 2 MP stroke\n40 0 2537 3394 2 MP stroke\n44 0 2537 3399 2 MP stroke\n147 0 2533 3403 2 MP stroke\n44 0 2525 3407 2 MP stroke\n72 0 2517 3411 2 MP stroke\n159 0 2513 3416 2 MP stroke\n107 0 2509 3420 2 MP stroke\n179 0 2505 3424 2 MP stroke\n52 0 2497 3428 2 MP stroke\n44 0 2493 3432 2 MP stroke\n52 0 2489 3437 2 MP stroke\n40 0 2485 3441 2 MP stroke\n116 0 2485 3445 2 MP stroke\n187 0 2485 3449 2 MP stroke\n39 0 2478 3454 2 MP stroke\n43 0 2478 3458 2 MP stroke\n91 0 2478 3462 2 MP stroke\n27 0 2474 3466 2 MP stroke\n87 0 2474 3470 2 MP stroke\n166 0 2470 3475 2 MP stroke\n59 0 2458 3479 2 MP stroke\n47 0 2454 3483 2 MP stroke\n95 0 2454 3487 2 MP stroke\n182 0 2454 3492 2 MP stroke\n43 0 2450 3496 2 MP stroke\n36 0 2438 3500 2 MP stroke\n79 0 2434 3504 2 MP stroke\n83 0 2434 3508 2 MP stroke\n83 0 2422 3513 2 MP stroke\n40 0 2418 3517 2 MP stroke\n99 0 2418 3521 2 MP stroke\n52 0 2414 3525 2 MP stroke\n52 0 2402 3530 2 MP stroke\n64 0 2402 3534 2 MP stroke\n87 0 2402 3538 2 MP stroke\n80 0 2398 3542 2 MP stroke\n20 0 2390 3546 2 MP stroke\n44 0 2390 3551 2 MP stroke\n127 0 2390 3555 2 MP stroke\n92 0 2386 3559 2 MP stroke\n104 0 2374 3563 2 MP stroke\n143 0 2366 3567 2 MP stroke\n56 0 2362 3572 2 MP stroke\n60 0 2362 3576 2 MP stroke\n68 0 2362 3580 2 MP stroke\n119 0 2355 3584 2 MP stroke\n55 0 2347 3589 2 MP stroke\n107 0 2347 3593 2 MP stroke\n51 0 2343 3597 2 MP stroke\n115 0 2343 3601 2 MP stroke\n95 0 2339 3605 2 MP stroke\n75 0 2331 3610 2 MP stroke\n170 0 2327 3614 2 MP stroke\n36 0 2323 3618 2 MP stroke\n47 0 2323 3622 2 MP stroke\n47 0 2323 3627 2 MP stroke\n91 0 2323 3631 2 MP stroke\n95 0 2323 3635 2 MP stroke\n147 0 2323 3639 2 MP stroke\n75 0 2319 3643 2 MP stroke\n178 0 2311 3648 2 MP stroke\n40 0 2303 3652 2 MP stroke\n48 0 2303 3656 2 MP stroke\n99 0 2299 3660 2 MP stroke\n111 0 2299 3665 2 MP stroke\n87 0 2295 3669 2 MP stroke\n115 0 2295 3673 2 MP stroke\n68 0 2291 3677 2 MP stroke\n68 0 2291 3681 2 MP stroke\n135 0 2291 3686 2 MP stroke\n72 0 2287 3690 2 MP stroke\n107 0 2287 3694 2 MP stroke\n36 0 2283 3698 2 MP stroke\n56 0 2283 3703 2 MP stroke\n56 0 2279 3707 2 MP stroke\n127 0 2279 3711 2 MP stroke\n36 0 2275 3715 2 MP stroke\n32 0 2271 3719 2 MP stroke\n95 0 2271 3724 2 MP stroke\n80 0 2255 3728 2 MP stroke\n107 0 2255 3732 2 MP stroke\n111 0 2251 3736 2 MP stroke\n68 0 2247 3741 2 MP stroke\n80 0 2247 3745 2 MP stroke\n80 0 2247 3749 2 MP stroke\n44 0 2243 3753 2 MP stroke\n100 0 2243 3757 2 MP stroke\n111 0 2236 3762 2 MP stroke\n91 0 2232 3766 2 MP stroke\n39 0 2224 3770 2 MP stroke\n87 0 2224 3774 2 MP stroke\n142 0 2224 3779 2 MP stroke\n107 0 2220 3783 2 MP stroke\n119 0 2208 3787 2 MP stroke\n143 0 2204 3791 2 MP stroke\n123 0 2200 3795 2 MP stroke\n51 0 2196 3800 2 MP stroke\n115 0 2196 3804 2 MP stroke\n159 0 2196 3808 2 MP stroke\n103 0 2192 3812 2 MP stroke\n171 0 2180 3817 2 MP stroke\n123 0 2176 3821 2 MP stroke\n75 0 2168 3825 2 MP stroke\n40 0 2164 3829 2 MP stroke\n75 0 2164 3833 2 MP stroke\n76 0 2152 3838 2 MP stroke\n4 0 2148 3842 2 MP stroke\n52 0 2148 3846 2 MP stroke\n72 0 2144 3850 2 MP stroke\n108 0 2128 3855 2 MP stroke\n40 0 2124 3859 2 MP stroke\n68 0 2120 3863 2 MP stroke\n32 0 2116 3867 2 MP stroke\n80 0 2116 3871 2 MP stroke\n75 0 2097 3876 2 MP stroke\n75 0 2093 3880 2 MP stroke\n31 0 2085 3884 2 MP stroke\n123 0 2081 3888 2 MP stroke\n24 0 2077 3893 2 MP stroke\n20 0 2073 3897 2 MP stroke\n99 0 2073 3901 2 MP stroke\n44 0 2069 3905 2 MP stroke\n75 0 2069 3909 2 MP stroke\n12 0 2061 3914 2 MP stroke\n40 0 2061 3918 2 MP stroke\n63 0 2061 3922 2 MP stroke\n48 0 2057 3926 2 MP stroke\n60 0 2053 3931 2 MP stroke\n95 0 2053 3935 2 MP stroke\n36 0 2049 3939 2 MP stroke\n36 0 2049 3943 2 MP stroke\n83 0 2049 3947 2 MP stroke\n79 0 2045 3952 2 MP stroke\n36 0 2041 3956 2 MP stroke\n56 0 2041 3960 2 MP stroke\n48 0 2033 3964 2 MP stroke\n139 0 2033 3969 2 MP stroke\n119 0 2029 3973 2 MP stroke\n123 0 2029 3977 2 MP stroke\n56 0 2025 3981 2 MP stroke\n103 0 2025 3985 2 MP stroke\n127 0 2021 3990 2 MP stroke\n44 0 2017 3994 2 MP stroke\n107 0 2017 3998 2 MP stroke\n119 0 2005 4002 2 MP stroke\n131 0 2001 4007 2 MP stroke\n163 0 1997 4011 2 MP stroke\n51 0 1994 4015 2 MP stroke\n43 0 1982 4019 2 MP stroke\n63 0 1982 4023 2 MP stroke\n19 0 1978 4028 2 MP stroke\n103 0 1978 4032 2 MP stroke\n43 0 1974 4036 2 MP stroke\n103 0 1970 4040 2 MP stroke\n123 0 1966 4045 2 MP stroke\n28 0 1962 4049 2 MP stroke\n20 0 1958 4053 2 MP stroke\n83 0 1958 4057 2 MP stroke\n51 0 1954 4061 2 MP stroke\n95 0 1954 4066 2 MP stroke\n36 0 1950 4070 2 MP stroke\n32 0 1942 4074 2 MP stroke\n75 0 1934 4078 2 MP stroke\n60 0 1922 4083 2 MP stroke\n40 0 1914 4087 2 MP stroke\n72 0 1914 4091 2 MP stroke\n107 0 1906 4095 2 MP stroke\n36 0 1898 4099 2 MP stroke\n20 0 1894 4104 2 MP stroke\n24 0 1894 4108 2 MP stroke\n92 0 1890 4112 2 MP stroke\n72 0 1882 4116 2 MP stroke\n36 0 1878 4121 2 MP stroke\n48 0 1878 4125 2 MP stroke\n92 0 1878 4129 2 MP stroke\n92 0 1878 4133 2 MP stroke\n20 0 1874 4137 2 MP stroke\n48 0 1874 4142 2 MP stroke\n96 0 1874 4146 2 MP stroke\n91 0 1867 4150 2 MP stroke\n123 0 1867 4154 2 MP stroke\n83 0 1859 4159 2 MP stroke\n107 0 1859 4163 2 MP stroke\n59 0 1855 4167 2 MP stroke\n20 0 1851 4171 2 MP stroke\n35 0 1851 4175 2 MP stroke\n75 0 1851 4180 2 MP stroke\n95 0 1851 4184 2 MP stroke\n12 0 1843 4188 2 MP stroke\n75 0 1843 4192 2 MP stroke\n95 0 1843 4197 2 MP stroke\n32 0 1839 4201 2 MP stroke\n71 0 1835 4205 2 MP stroke\n147 0 1835 4209 2 MP stroke\n1857 0 1835 4213 2 MP stroke\n44 0 1827 4218 2 MP stroke\n63 0 1827 4222 2 MP stroke\n83 0 1823 4226 2 MP stroke\n16 0 1819 4230 2 MP stroke\n87 0 1819 4235 2 MP stroke\n24 0 1815 4239 2 MP stroke\n63 0 1811 4243 2 MP stroke\n60 0 1807 4247 2 MP stroke\n147 0 1803 4251 2 MP stroke\n87 0 1795 4256 2 MP stroke\n44 0 1791 4260 2 MP stroke\n44 0 1787 4264 2 MP stroke\n24 0 1779 4268 2 MP stroke\n68 0 1779 4273 2 MP stroke\n2476 0 1775 4277 2 MP stroke\n127 0 1755 4281 2 MP stroke\n91 0 1744 4285 2 MP stroke\n43 0 1728 4289 2 MP stroke\n95 0 1720 4294 2 MP stroke\n75 0 1716 4298 2 MP stroke\n20 0 1700 4302 2 MP stroke\n79 0 1692 4306 2 MP stroke\n8 0 1688 4311 2 MP stroke\n60 0 1684 4315 2 MP stroke\n79 0 1684 4319 2 MP stroke\n87 0 1680 4323 2 MP stroke\n36 0 1668 4327 2 MP stroke\n56 0 1664 4332 2 MP stroke\n44 0 1652 4336 2 MP stroke\n64 0 1644 4340 2 MP stroke\n68 0 1632 4344 2 MP stroke\n95 0 1629 4349 2 MP stroke\n107 0 1621 4353 2 MP stroke\n32 0 1597 4357 2 MP stroke\n83 0 1585 4361 2 MP stroke\n76 0 1549 4365 2 MP stroke\n60 0 1533 4370 2 MP stroke\n40 0 1517 4374 2 MP stroke\n47 0 1506 4378 2 MP stroke\n75 0 1506 4382 2 MP stroke\n95 0 1506 4387 2 MP stroke\n63 0 1502 4391 2 MP stroke\n59 0 1490 4395 2 MP stroke\n20 0 1474 4399 2 MP stroke\n47 0 1470 4403 2 MP stroke\n67 0 1466 4408 2 MP stroke\n79 0 1462 4412 2 MP stroke\n52 0 1450 4416 2 MP stroke\n103 0 1438 4420 2 MP stroke\n8 0 1434 4425 2 MP stroke\n32 0 1430 4429 2 MP stroke\n115 0 1430 4433 2 MP stroke\n68 0 1418 4437 2 MP stroke\n131 0 1418 4441 2 MP stroke\n28 0 1406 4446 2 MP stroke\n28 0 1398 4450 2 MP stroke\n80 0 1394 4454 2 MP stroke\n32 0 1390 4458 2 MP stroke\n2266 0 1386 4463 2 MP stroke\n43 0 1347 4467 2 MP stroke\n32 0 1315 4471 2 MP stroke\n32 0 1311 4475 2 MP stroke\n24 0 1295 4479 2 MP stroke\n48 0 1291 4484 2 MP stroke\n12 0 1279 4488 2 MP stroke\n52 0 1279 4492 2 MP stroke\n39 0 1260 4496 2 MP stroke\n83 0 1260 4501 2 MP stroke\n27 0 1252 4505 2 MP stroke\n43 0 1240 4509 2 MP stroke\n8 0 1232 4513 2 MP stroke\n47 0 1224 4517 2 MP stroke\n16 0 1220 4522 2 MP stroke\n75 0 1216 4526 2 MP stroke\n32 0 1212 4530 2 MP stroke\n83 0 1212 4534 2 MP stroke\n68 0 1196 4539 2 MP stroke\n99 0 1196 4543 2 MP stroke\n68 0 1172 4547 2 MP stroke\n72 0 1172 4551 2 MP stroke\n44 0 1156 4555 2 MP stroke\n83 0 1141 4560 2 MP stroke\n75 0 1137 4564 2 MP stroke\n39 0 1109 4568 2 MP stroke\n119 0 1073 4572 2 MP stroke\n91 0 1061 4577 2 MP stroke\n159 0 1037 4581 2 MP stroke\n103 0 966 4585 2 MP stroke\n36 0 950 4589 2 MP stroke\n56 0 942 4593 2 MP stroke\n16 0 930 4598 2 MP stroke\n24 0 922 4602 2 MP stroke\n80 0 918 4606 2 MP stroke\n5355 0 899 4610 2 MP stroke\n6254 4610 PD\ngr\n\ngs 6181 4537 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6230 4651 4 MP\nDP\ngr\n\ngs 899 389 5357 4227 MR c np\ngr\n\n2050  294 mt \n(Barcodes for flattened multifiltered complex \\(dimension 0\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/basic_circle_example.m",
    "content": "clc; clear; close all;\n\nnum_samples = 7;\nsample_size = 40;\n\nmax_dimension = 1;\nnum_points = 10000;\nmax_distance = 1.2;\n\npoints = examples.PointCloudExamples.getRandomFigure8Points(num_points);\n\nbootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_distance, max_dimension, num_samples, sample_size);\n\nbarcodes = bootstrapper.performBootstrap();\n\n%% \nlabel = 'figure-8';\n\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.filename = sprintf('%s-barcodes', label);\noptions.file_format = 'eps';\noptions.line_width = 2;\noptions.caption = sprintf('Figure-8 (samples = %d, sample size = %d)', num_samples, sample_size);\nplot_barcodes(filtration_value_intervals, options);\n\n%%\n\nlabel = 'figure-8-vietoris-rips';\n\nindices_0 = bootstrapper.getSubset(0)\nmetric_space_0 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_0));\nstream_0 = streams.impl.VietorisRipsStream(metric_space_0, max_distance, max_dimension + 1);\nstream_0.finalizeStream();\nfilename_0 = sprintf('%s-%d.pov', label, 0);\ncreate_pov_file(stream_0, metric_space_0, filename_0);\nrender_pov_file(filename_0);\n\n\nfor j = 1:(num_samples - 1)\n    \n    indices_1 = bootstrapper.getSubset(j)\n    metric_space_1 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_1));\n    stream_1 = streams.impl.VietorisRipsStream(metric_space_1, max_distance, max_dimension + 1);\n    stream_1.finalizeStream();\n    filename_1 = sprintf('%s-%d.pov', label, j);\n    create_pov_file(stream_1, metric_space_1, filename_1);\n    render_pov_file(filename_1);\n    %{\n    indices_01 = utility.ArrayUtility.union(indices_0, indices_1);\n    metric_space_01 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_01));\n    stream_01 = streams.impl.VietorisRipsStream(metric_space_01, max_distance, max_dimension + 1);\n    stream_01.finalizeStream();\n    filename_01 = sprintf('%s-%d%d.pov', label, j-1, j);\n    create_pov_file(stream_01, metric_space_01, filename_01);\n    render_pov_file(filename_01);\n    %}\n    indices_0 = indices_1;\nend\n\n%%\n\nbarcodes\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/basic_sphere_example.m",
    "content": "clc; clear; close all;\n\nnum_samples = 4;\nsample_size = 40;\n\nmax_dimension = 2;\nnum_points = 10000;\nmax_distance = 0.8;\n\npoints = examples.PointCloudExamples.getRandomSpherePoints(num_points, max_dimension);\n\nbootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_distance, max_dimension, num_samples, sample_size);\n\nbarcodes = bootstrapper.performBootstrap()\n\n%% \n\nlabel = 'sphere-vietoris-rips';\n\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.filename = sprintf('%s-barcodes', label);\noptions.file_format = 'eps';\nplot_barcodes(filtration_value_intervals, options);\n\n%%\n\n\nindices_0 = bootstrapper.getSubset(0)\nmetric_space_0 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_0));\nstream_0 = streams.impl.VietorisRipsStream(metric_space_0, max_distance, max_dimension + 1);\nstream_0.finalizeStream();\nfilename_0 = sprintf('%s-%d.pov', label, 0);\ncreate_pov_file(stream_0, metric_space_0, filename_0);\nrender_pov_file(filename_0);\n\n\nfor j = 1:(num_samples - 1)\n    \n    indices_1 = bootstrapper.getSubset(j)\n    metric_space_1 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_1));\n    stream_1 = streams.impl.VietorisRipsStream(metric_space_1, max_distance, max_dimension + 1);\n    stream_1.finalizeStream();\n    filename_1 = sprintf('%s-%d.pov', label, j);\n    create_pov_file(stream_1, metric_space_1, filename_1);\n    render_pov_file(filename_1);\n    \n    indices_01 = utility.ArrayUtility.union(indices_0, indices_1);\n    metric_space_01 = metric.impl.EuclideanMetricSpace(utility.ArrayUtility.getSubset(points, indices_01));\n    stream_01 = streams.impl.VietorisRipsStream(metric_space_01, max_distance, max_dimension + 1);\n    stream_01.finalizeStream();\n    filename_01 = sprintf('%s-%d%d.pov', label, j-1, j);\n    create_pov_file(stream_01, metric_space_01, filename_01);\n    render_pov_file(filename_01);\n    \n    indices_0 = indices_1;\nend\n\n%%\n\nbarcodes\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/circle_incremental.m",
    "content": "clc; clear; close all;\n\nutility.RandomUtility.initializeWithSeed(5);\n\nn = 10000;\nmax_sample_size = 82;\nincrement_size = 1;\ninitial_sample_size = 2;\nmax_dimension = 1;\nmax_filtration_value = 1.0;\nset = [1:n] - 1;\n\nsample_size = initial_sample_size;\nsample = [];\n\npoints = examples.PointCloudExamples.getEquispacedCirclePoints(n);\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nlist = java.util.ArrayList;\n\nnum_samples = 0;\n\nwhile (sample_size <= max_sample_size)\n    sample = randsample(set, sample_size);\n    list.add(int32(sample - 1));\n    num_samples = num_samples + 1;\n    \n    sample_size = sample_size + increment_size;\nend\n\nbootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_filtration_value, max_dimension, list);\nbarcodes = bootstrapper.performBootstrap();\n\n\n%%\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.caption = sprintf('Incremental samples from random points on the unit circle (f_{max} = %2.3f)', max_filtration_value);\noptions.filename = 'incremental-circle-barcodes';\noptions.file_format = 'eps';\noptions.min_dimension = 0;\noptions.max_dimension = 1;\noptions.line_width = 2;\n\nplot_barcodes(filtration_value_intervals, options);\n\n\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/circle_long.m",
    "content": "clc; clear; close all;\n\nnum_samples = 101;\nsample_size = 5;\n\nmax_dimension = 1;\nnum_points = 10000;\nmax_distance = 1.1;\n\npoints = examples.PointCloudExamples.getRandomSpherePoints(num_points, max_dimension);\n%points = examples.PointCloudExamples.getRandomFigure8Points(num_points);\n\n\nbootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_distance, max_dimension, num_samples, sample_size);\n\nbarcodes = bootstrapper.performBootstrap()\n\n%% \n\nlabel = sprintf('circle-long-%d', max_distance * 10);\n\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.filename = sprintf('%s-barcodes', label);\noptions.file_format = 'eps';\noptions.caption = sprintf('Circle samples, maximum filtration = %f', max_distance);\noptions.line_width = 2;\nplot_barcodes(filtration_value_intervals, options);\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/coreSubset.m",
    "content": "function indices = coreSubset(densities, numPoints)\n\n% INPUT:\n%   points - N x n matrix of N points in R^n\n%   densities - vertical vector of length N whose i-th entry is the \n%       estimated density of the i-th point.\n%   numPoints - nonnegative integer less than or equal to N\n%\n% OUTPUT:\n%   indices - numPoints x 1 matrix of the indices of the top numPoints densest \n%   points (as ranked by densities)\n%\n% henrya@math.stanford.edu, with mods by atausz@stanford.edu\n\n[A,sortedDensityIndices] = sort(densities,'descend');\nindices = sortedDensityIndices(1:numPoints);"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/core_subset_test.m",
    "content": "clc; clear; close all;\n\nk = 1;\nT = 20;\nlabel = 'primes';\n\npoints = primes(3571)';\n\nindices = get_core_subset_cached(points, k, T, label);\npoints(indices);\n\nindices = get_core_subset_cached(points, k, T + 10, label);\npoints(indices);"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/core_verification_test.m",
    "content": "clc; clear; close all;\n\npath = '../../../../data/natural_images';\nlabel = 'n50000Dct';\ndatafile = sprintf('%s/%s.mat', path, label);\nload(datafile, label);\npoints = n50000Dct;\n\n\ncache_file_prefix = sprintf('%s/cached_density_ranks/%s', path, label);\n\nk = 300;\nT = 15000;\n\nindices = get_core_subset_cached(points, k, T, cache_file_prefix);\n\n\npath = '../../../../data/natural_images';\nlabel = 'nk300c30Dct';\ndatafile = sprintf('%s/%s.mat', path, label);\nload(datafile, label);\n\ncomputed_core = points(indices, :);"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/ensure_density_indices.m",
    "content": "function ensure_density_indices(theta_values, dataset, filter_label, filter_function)\n\n    import edu.stanford.math.plex4.*;\n\n    datafile_path = get_data_file_path(dataset);\n    load(datafile_path, dataset);\n    point_cloud = eval(dataset);\n\n    T = size(point_cloud, 1);\n    T_cache = T;\n    \n    for theta = theta_values\n        get_core_subset_cached(point_cloud, theta, T, filter_function, dataset, filter_label, T_cache);\n    end\n\nend"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/figure_8_incremental.m",
    "content": "clc; clear; close all;\n\nutility.RandomUtility.initializeWithSeed(5);\n\nn = 10000;\nmax_sample_size = 152;\nincrement_size = 1;\ninitial_sample_size = 2;\nmax_dimension = 1;\nmax_filtration_value = 1.0;\nset = [1:n] - 1;\n\nsample_size = initial_sample_size;\nsample = [];\n\npoints = examples.PointCloudExamples.getRandomFigure8Points(n);\n\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nlist = java.util.ArrayList;\n\nnum_samples = 0;\n\nwhile (sample_size <= max_sample_size)\n    sample = randsample(set, sample_size);\n    list.add(int32(sample));\n    num_samples = num_samples + 1;\n    \n    sample_size = sample_size + increment_size;\nend\n\nbootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(points, max_filtration_value, max_dimension, list);\nbarcodes = bootstrapper.performBootstrap();\n\n\n%%\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.caption = sprintf('Incremental samples from random points on a figure-8 (f_{max} = %2.3f)', max_filtration_value);\noptions.filename = 'incremental-figure-8-barcodes';\noptions.file_format = 'eps';\noptions.min_dimension = 0;\noptions.max_dimension = 1;\noptions.line_width = 2;\n\nplot_barcodes(filtration_value_intervals, options);\n\n\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/filtered_barcodes.m",
    "content": "function [barcodes, stream_size] = filtered_barcodes(dataset, filter_label, T, theta, S, max_filtration_value, filter_function, display_plot, use_sequential_maxmin)\n\nimport edu.stanford.math.plex4.*;\n\n    if (~exist('display_plot', 'var'))\n        display_plot = true;\n    end\n    \n    if (~exist('use_sequential_maxmin', 'var'))\n        use_sequential_maxmin = true;\n    end\n    \n    datafile_path = get_data_file_path(dataset);\n    load(datafile_path, dataset);\n    point_cloud = eval(dataset);\n    \n    dimension = 1;\n    num_divisions = 1000;\n\n    core_indices = get_core_subset_cached(point_cloud, theta, T, filter_function, dataset, filter_label);\n    core_subset = point_cloud(core_indices, :);\n    \n    if (use_sequential_maxmin)\n        landmark_selector = api.Plex4.createMaxMinSelector(core_subset, S);\n    else\n        landmark_selector = api.Plex4.createRandomSelector(core_subset, S);\n    end\n    \n    sample_indices = landmark_selector.getLandmarkPoints() + 1;\n    subsampled_core = core_subset(sample_indices, :);\n     \n    % create a Vietoris-Rips stream \n    stream = api.Plex4.createVietorisRipsStream(subsampled_core, dimension + 1, max_filtration_value, num_divisions);\n    stream_size = stream.getSize();\n\n    % get the default persistence algorithm\n    persistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1);\n\n    % compute intervals\n    barcodes = persistence.computeIntervals(stream);\n\n    options.file_format = 'png';\n    options.filename = sprintf('outputs/%s-%s-%f-%d-%1.3f.%s', dataset, filter_label, theta, T, max_filtration_value, options.file_format);\n    options.caption = sprintf('Barcodes for VR(%s[theta=%f, T=%d], %2.3f) (S=%d)', dataset, theta, T, max_filtration_value, S);\n\n    options.max_filtration_value = max_filtration_value;\n    plot_barcodes(barcodes, options);\n\n    if (~display_plot)\n        close;\n    end\n\nend\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/filtered_bootstrap.m",
    "content": "function [barcodes, indices] = filtered_bootstrap(dataset, filter_label, T, theta_values, S, max_filtration_value, filter_function, display_plot, use_sequential_maxmin)\n    import edu.stanford.math.plex4.*;\n\n    if (~exist('use_sequential_maxmin', 'var'))\n        use_sequential_maxmin = true;\n    end\n    \n    if (~exist('display_plot', 'var'))\n        display_plot = true;\n    end\n    \n    datafile_path = get_data_file_path(dataset);\n    load(datafile_path, dataset);\n    point_cloud = eval(dataset);\n\n    max_dimension = 1;\n    indices_cell_array = zeros(length(theta_values), S);\n\n    i = 1;\n    for theta = theta_values\n        core_indices = get_core_subset_cached(point_cloud, theta, T, filter_function, dataset, filter_label);\n        core_subset = point_cloud(core_indices, :);\n        \n        utility.RandomUtility.initializeWithSeed(0);\n        \n        if (use_sequential_maxmin)\n            landmark_selector = api.Plex4.createMaxMinSelector(core_subset, S);\n        else\n            landmark_selector = api.Plex4.createRandomSelector(core_subset, S);\n        end\n        \n        sample_indices = (landmark_selector.getLandmarkPoints() + 1);\n        \n        indices_cell_array(i, :) = core_indices(sample_indices);\n        indices_cell_array(i, :) = utility.ArrayUtility.makeMonotone(indices_cell_array(i, :));\n        \n        i = i + 1;\n    end\n    \n    theta_min = min(theta_values);\n    theta_max = max(theta_values);\n\n    list = java.util.ArrayList();\n\n    for i = 1:length(theta_values)\n        indices = int32(indices_cell_array(i, :) - 1);\n        list.add(indices);\n    end\n\n    bootstrapper = homology.zigzag.bootstrap.VietorisRipsBootstrapper(point_cloud, max_filtration_value, max_dimension, list);\n    barcodes = bootstrapper.performBootstrap();\n\n    transformer = homology.filtration.IdentityConverter.getInstance();\n    filtration_value_intervals = transformer.transform(barcodes);\n\n    options.file_format = 'eps';\n    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);\n    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);\n\n\n    plot_barcodes(filtration_value_intervals, options);\n    \n    if (~display_plot)\n        close;\n    end\n    \n    indices = indices_cell_array;\nend\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/gaussian_kernel_densities.m",
    "content": "function densities = gaussian_kernel_densities(points, reference_points, sigma)\r\n    n = size(points, 1);\r\n    densities = zeros(n, 1);\r\n    for i = 1:n\r\n        densities(i) = gaussian_kernel_density(points(i, :), reference_points, sigma);\r\n    end\r\nend"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/gaussian_kernel_density.m",
    "content": "function density = gaussian_kernel_density(x, points, sigma)\r\n    n = size(points, 1);\r\n    dimension = size(points, 2);\r\n    \r\n    multiplier = (sigma * sqrt(2 * pi)) ^ (-dimension);\r\n    exp_multiplier = -1 / (2 * sigma * sigma);\r\n    \r\n    squared_difference = (repmat(x, n, 1) - points) .^ 2;\r\n    exp_factor = sum(exp(exp_multiplier * sum(squared_difference, 2)));\r\n    \r\n    density = multiplier * exp_factor / n;\r\nend\r\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/get_cache_file_path.m",
    "content": "function file_path = get_cache_file_path(dataset, filter_label, theta)\n    path = '../../../../data/natural_images';\n    cache_file_prefix = sprintf('%s/cached_density_ranks/%s-%s', path, dataset, filter_label);\n    file_path = sprintf('%s-indices-%f.mat', cache_file_prefix, theta);\nend"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/get_core_subset_cached.m",
    "content": "function indices = get_core_subset_cached(points, theta, T, filter_function, dataset, filter_label, T_cache)\n    \n    num_points = size(points, 1);\n\n    filename = get_cache_file_path(dataset, filter_label, theta);\n    \n    if (exist(filename, 'file'))\n        load (filename, 'indices');\n        \n        if (length(indices) >= T)\n            indices = indices(1:T);\n            display(sprintf('get_core_subset_cached: Retrieved %d indices for k=%f from file %s', T, theta, filename));\n            return;\n        end\n    end\n    \n    if (~exist('T_cache'))\n        T_cache = min(num_points, T * 3);\n    end\n    \n    filtration_values = filter_function(points, theta);\n    indices = coreSubset(filtration_values, T_cache);\n    save(filename, 'indices');\n    \n    display(sprintf('get_core_subset_cached: Cached %d indices for k=%f in file %s', T_cache, theta, filename));\n    \n    indices = indices(1:T);\nend\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/get_data_file_path.m",
    "content": "function file_path = get_data_file_path(dataset)\n    path = '../../../../data/natural_images';\n    file_path = sprintf('%s/%s.mat', path, dataset);\nend"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/kDensitySlow.m",
    "content": "function densities = kDensitySlow(points, k)\r\n\r\n% INPUT:\r\n%   points - N x n matrix of N points in R^n\r\n%   k - positive integer less than N. This integer is a parameter for our \r\n%       density estimate.\r\n%\r\n% OUTPUT:\r\n%   densities - vertical vector of length N whose i-th entry is the \r\n%       estimated density of the i-th point. The estimated density at a \r\n%       point is the reciprocal of the distance from that point to its \r\n%       k-th closest neighbor.\r\n%\r\n% NOTES:\r\n%   The function kDensitySlow.m uses the function slmetric_pw.m, written by\r\n%   Dahua Lin, to compute distance matrices. Please see\r\n%   http://www.mathworks.com/matlabcentral/fileexchange/15935-computing-pairwise-distances-and-metrics\r\n%   for more information about the function slmetric_pw.m.\r\n%\r\n%   File kdDensitySlow.m is slow for large datasets (thus the name). If you\r\n%   are interested in a faster version, please email Henry at \r\n%   henrya@math.stanford.edu. The faster version relies on a MATLAB kd-tree\r\n%   package available here:\r\n%   http://www.mathworks.com/matlabcentral/fileexchange/21512-kd-tree-for-matlab\r\n%\r\n% henrya@math.stanford.edu\r\n\r\n% CONSTANTS:\r\nblockSize = 500; % If blockSize too small, the function will be slower than \r\n% it would be otherwise. If blockSize is too large, there will not be \r\n% enough memory for the computation. My default is blockSize = 500.\r\nmaxMatrixSize = 25000000; % This m-file will not create a matrix bigger than\r\n% maxMatrixSize. Constant blocksize will be lowered so that\r\n% N*blockSize<=maxMatrixSize.\r\n\r\nN = size(points,1); % N is the number of points\r\nif N*blockSize > maxMatrixSize\r\n    blockSize = floor(maxMatrixSize/N);\r\n    disp('Constant blockSize has been lowered. Expect a very long computation time. Please open m-file kDensitySlow.m for details.')\r\nend\r\n\r\ndensities = zeros(N,1);\r\nfor i = 1:floor(N/blockSize)\r\n    distances = slmetric_pw(points', points(blockSize*(i-1)+1:blockSize*i,:)', 'eucdist');\r\n    sortedDistances = sort(distances);\r\n    densities(blockSize*(i-1)+1:blockSize*i) = 1./sortedDistances(k+1,:)';\r\nend\r\n\r\n%remaining points\r\nnextPoint = floor(N/blockSize)*blockSize+1;\r\nif nextPoint <= N\r\n    distances = slmetric_pw(points', points(nextPoint:N,:)', 'eucdist');\r\n    sortedDistances = sort(distances);\r\n    densities(nextPoint:N) = 1./sortedDistances(k+1,:)';\r\nend\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction M = slmetric_pw(X1, X2, mtype, varargin)\r\n%SLMETRIC_PW Compute the metric between column vectors pairwisely\r\n%\r\n% [ Syntax ]\r\n%   - M = slmetric_pw(X1, X2, mtype);\r\n%   - M = slmetric_pw(X1, X2, mtype, ...);\r\n%\r\n% [ Arguments ]\r\n%   - X1, X2:       the sample matrices\r\n%   - mtype:        the string indicating the type of metric\r\n%   - M:            the resulting metric matrix\r\n%\r\n% [ Description ]\r\n%    - M = slmetric_pw(X1, X2, mtype) Computes the metrics between\r\n%      column vectors of X1 and X2 pairwisely, using the metric\r\n%      specified by mtype. \r\n%\r\n%      Both X1 and X2 are matrices with each column representing a \r\n%      sample. X1 and X2 should have the same number of rows. Suppose\r\n%      the size of X1 is d x n1, and the size of X2 is d x n2. Then \r\n%      the output metric matrix M will be of size n1 x n2, in which\r\n%      M(i, j) is the metric value between X1(:,i) and X2(:,j).\r\n%\r\n%    - M = slmetric_pw(X1, X2, mtype, ...) Some metric types requires\r\n%      extra parameters, which should be specified in params.\r\n%\r\n%      The supported metrics of this function are listed as follows: \r\n%      \\{:\r\n%        - eucdist:        Euclidean distance: \r\n%                          $ ||x - y|| $\r\n%\r\n%        - sqdist:         Square of Euclidean distance: \r\n%                          $ ||x - y||^2 $\r\n%\r\n%        - dotprod:        Canonical dot product: \r\n%                          $ <x,y> = x^T * y $ \r\n%\r\n%        - nrmcorr:        Normalized correlation (cosine angle):\r\n%                          $ (x^T * y ) / (||x|| * ||y||) $\r\n%\r\n%        - corrdist:       Normalized Correlation distance\r\n%                          $ 1 - nrmcorr(x, y) $\r\n%\r\n%        - angle:          Angle between two vectors (in radian)  \r\n%                          $ arccos (nrmcorr(x, y)) $\r\n%        - quadfrm:        Quadratic form:  \r\n%                          $ x^T * Q * y $\r\n%                         Q is specified in the 1st extra parameter \r\n%\r\n%        - quaddiff:       Quadratic form of difference:\r\n%                          $ (x - y)^T * Q * (x - y) $\r\n%                         Q is specified in the 1st extra parameter \r\n%\r\n%        - cityblk:        City block distance (abssum of difference)\r\n%                          $ sum_i |x_i - y_i| $\r\n%\r\n%        - maxdiff:        Maximum absolute difference  \r\n%                          $ max_i |x_i - y_i| $\r\n%\r\n%        - mindiff:        Minimum absolute difference\r\n%                          $ min_i |x_i - y_i| $\r\n%\r\n%        - minkowski:      Minkowski distance\r\n%                          $ (\\sum_i |x_i - y_i|^p)^(1/p) $\r\n%                         The order p is specified in the 1st extra parameter\r\n%\r\n%        - wsqdist:        Weighted square of Euclidean distance     \r\n%                          $ \\sum_i w_i (x_i - y_i)^2 $\r\n%                         the weights w is specified in 1st extra parameter \r\n%                         as a d x 1 column vector    \r\n%\r\n%        - hamming:        Hamming distance with threshold t\r\n%                          \\{\r\n%                              ht1 = x > t\r\n%                              ht2 = y > t\r\n%                              d = sum(ht1 ~= ht2)                  \r\n%                          \\}\r\n%                         use threshold t as the first extra param.\r\n%                         (by default, t is set to zero).\r\n%\r\n%        - hamming_nrm:    Normalized hamming distance, which equals the\r\n%                          ratio of the elements that differ.\r\n%                          \\{\r\n%                              ht1 = x > t\r\n%                              ht2 = y > t\r\n%                              d = sum(ht1 ~= ht2) / length(ht1)                \r\n%                          \\}\r\n%                          use threshold t as the first extra param.\r\n%                         (by default, t is set to zero).\r\n%\r\n%        - intersect:      Histogram Intersection\r\n%                           $ d = sum min(x, y) / min(sum(x), sum(y))$\r\n%\r\n%        - intersectdis:   Histogram intersection distance\r\n%                           $ d = 1 - sum min(x, y) / min(sum(x), sum(y)) $\r\n%\r\n%        - chisq:          Chi-Square Distance\r\n%                           $ d = sum (x(i) - y(i))^2/(2 * (x(i)+y(i))) $\r\n%\r\n%        - kldiv:          Kull-back Leibler divergence\r\n%                           $ d = sum x(i) log (x(i) / y(i)) $\r\n%\r\n%        - jeffrey:        Jeffrey divergence\r\n%                           $ d = KL(h1, (h1+h2)/2) + KL(h2, (h1+h2)/2) $\r\n%      \\:}\r\n%\r\n% [ Remarks ]\r\n%   - Both X1 and X2 should be a matrix of numeric values, except\r\n%     for case when metric type is 'hamming' or 'hamming_nrm'. \r\n%     For hamming or hamming_nrm metric, the input matrix can be logical.\r\n%\r\n% [ Examples ]\r\n%   - Compute different types of metrics in pairwise manner\r\n%     \\{\r\n%         % prepare sample matrix\r\n%         X1 = rand(10, 100);\r\n%         X2 = rand(10, 150);\r\n%\r\n%         % compute the euclidean distances (L2) \r\n%         % between the samples in X1 and X2\r\n%         M = slmetric_pw(X1, X2, 'eucdist');\r\n%\r\n%         % compute the eucidean distances between the samples\r\n%         % in X1 in a pairwise manner\r\n%         M = slmetric_pw(X1, X1, 'eucdist');\r\n%\r\n%         % compute the city block distances (L1)\r\n%         M = slmetric_pw(X1, X2, 'cityblk'); \r\n%\r\n%         % compute the normalize correlations\r\n%         M = slmetric_pw(X1, X2, 'nrmcorr');\r\n%\r\n%         % compute hamming distances\r\n%         M = slmetric_pw(X1, X2, 'hamming', 0.5);\r\n%         M2 = slmetric_pw((X1 > 0.5), (X2 > 0.5), 'hamming');\r\n%         assert(isequal(M, M2));\r\n%     \\}\r\n%\r\n%   - Compute the parameterized metrics\r\n%     \\{\r\n%         % compute weighted squared distances with user-supplied weights\r\n%         weights = rand(10, 1);\r\n%         M = slmetric_pw(X1, X2, 'wsqdist', weights);\r\n%\r\n%         % compute quadratic distances (x-y)^T * Q (x-y)\r\n%         Q = rand(10, 10);\r\n%         M = slmetric_pw(X1, X2, 'quaddiff', Q);\r\n%\r\n%         % compute Minkowski distance of order 3         \r\n%         M = slmetric_pw(X1, X2, 'minkowski', 3);\r\n%     \\}\r\n%\r\n% [ History ]\r\n%   - Created by Dahua Lin on Dec 06th, 2005\r\n%   - Modified by Dahua Lin on Apr 21st, 2005\r\n%       - regularize the error reporting\r\n%   - Modified by Dahua Lin on Sep 11st, 2005\r\n%       - completely rewrite the core codes based on new mex computation \r\n%         cores, and the runtime efficiency in both time and space is \r\n%         significantly increased.\r\n%   - Modified by Dahua Lin on Jul 02, 2007\r\n%       - rewrite the core computation based on the bsxfun introduced in\r\n%         MATLAB R2007a\r\n%       - rewrite the core-mex for cityblk, maxdiff, mindiff\r\n%       - introduce new metrics: corrdist, minkowski\r\n%   - Modified by Dahua Lin on Jul 30, 2007\r\n%       - Add the metric types for histograms, which are originally\r\n%         implemented in slhistmetric_pw in sltoolbox v1.\r\n%   - Modified by Dahua Lin on Aug 16, 2007\r\n%       - revise some of the help contents\r\n%\r\n\r\n\r\n%% parse and verify input arguments\r\nerror(nargchk(3, inf, nargin));\r\nassert(ischar(mtype), 'sltoolbox:slmetric_pw:invalidarg', ...\r\n    'The metric type should be a string.');\r\n\r\nif strcmp(mtype, 'hamming') || strcmp(mtype, 'hamming_nrm')\r\n    assert((isnumeric(X1) || islogical(X1)) && ndims(X1) == 2 && ...\r\n           (isnumeric(X2) || islogical(X2)) && ndims(X2) == 2, ...\r\n        'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be numeric or logical matrices.');        \r\nelse\r\n    assert(isnumeric(X1) && ndims(X1) == 2 && isnumeric(X2) && ndims(X2) == 2, ...\r\n        'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be numeric matrices.');\r\nend\r\n\r\nassert(isa(X2, class(X1)), ...\r\n    'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be of the same class.');\r\n\r\nif isempty(X1) || isempty(X2)\r\n    M = [];\r\n    return;\r\nend\r\n\r\n\r\n%% compute\r\nswitch mtype        \r\n    case {'eucdist', 'sqdist'}\r\n        checkdim(X1, X2);        \r\n        M = bsxfun(@plus, sum(X1 .* X1, 1)', (-2) * X1' * X2);        \r\n        M = bsxfun(@plus, sum(X2 .* X2, 1), M);        \r\n        M(M < 0) = 0;                        \r\n        if strcmp(mtype, 'eucdist')\r\n            M = sqrt(M);\r\n        end \r\n        \r\n    case 'dotprod'\r\n        checkdim(X1, X2);        \r\n        M = X1' * X2;\r\n                \r\n    case {'nrmcorr', 'corrdist', 'angle'}\r\n        checkdim(X1, X2);\r\n        ns1 = sqrt(sum(X1 .* X1, 1));\r\n        ns2 = sqrt(sum(X2 .* X2, 1));\r\n        ns1(ns1 == 0) = 1;  \r\n        ns2(ns2 == 0) = 1;\r\n        M = bsxfun(@times, X1' * X2, 1 ./ ns1');\r\n        M = bsxfun(@times, M, 1 ./ ns2);\r\n        switch mtype\r\n            case 'corrdist'\r\n                M = 1 - M;\r\n            case 'angle'\r\n                M = real(acos(M));\r\n        end\r\n                \r\n    case 'quadfrm'\r\n        Q = varargin{1};       \r\n        M = X1' * Q * X2;\r\n        \r\n    case 'quaddiff'\r\n        checkdim(X1, X2);        \r\n        Q = varargin{1};\r\n        M = X1' * (-(Q + Q')) * X2;\r\n        M = bsxfun(@plus, M, sum(X1 .* (Q * X1), 1)');\r\n        M = bsxfun(@plus, M, sum(X2 .* (Q * X2), 1));        \r\n                        \r\n    case 'cityblk'\r\n        checkdim(X1, X2);  \r\n        M = pwmetrics_cimp(X1, X2, int32(1));\r\n                        \r\n    case 'maxdiff'\r\n        checkdim(X1, X2); \r\n        M = pwmetrics_cimp(X1, X2, int32(3));\r\n        \r\n    case 'mindiff'\r\n        checkdim(X1, X2);  \r\n        M = pwmetrics_cimp(X1, X2, int32(2));\r\n        \r\n    case 'minkowski'\r\n        checkdim(X1, X2);\r\n        pord = varargin{1};\r\n        if ~isscalar(pord)\r\n            error('sltoolbox:slmetric_pw:invalidparam', ...\r\n                'the mikowski order should be a scalar');\r\n        end\r\n        pord = cast(pord, class(X1));        \r\n        M = pwmetrics_cimp(X1, X2, int32(4), pord);\r\n                       \r\n    case 'wsqdist'\r\n        d = checkdim(X1, X2);\r\n        w = varargin{1};\r\n        if ~isequal(size(w), [d, 1])\r\n            error('sltoolbox:slmetric_pw:invalidparam', ...\r\n                'the weights should be given as a d x 1 vector.');\r\n        end              \r\n        wX2 = bsxfun(@times, X2, w);\r\n        M = bsxfun(@plus, (-2) * X1' * wX2, sum(wX2 .* X2, 1));\r\n        clear wX2;        \r\n        wX1 = bsxfun(@times, X1, w);\r\n        M = bsxfun(@plus, M, sum(wX1 .* X1, 1)');      \r\n        \r\n    case {'hamming', 'hamming_nrm'}\r\n        checkdim(X1, X2);\r\n        if islogical(X1) && islogical(X2)\r\n            H1 = X1;\r\n            H2 = X2;\r\n        else\r\n            if isempty(varargin)\r\n                t = 0;\r\n            else\r\n                t = varargin{1};\r\n                assert(isnumeric(t) && isscalar(t), ...\r\n                    'sltoolbox:slmetric_pw:invalidparam', 't should be a numeric scalar.');\r\n            end\r\n            H1 = X1 > t;\r\n            H2 = X2 > t;\r\n        end\r\n        M = pwhamming_cimp(H1, H2);\r\n        if strcmp(mtype, 'hamming_nrm')\r\n            M = M / size(H1, 1);\r\n        end\r\n        \r\n    case 'intersect'\r\n        checkdim(X1, X2);\r\n        M = pwmetrics_cimp(X1, X2, int32(5));\r\n        \r\n    case 'intersectdis'\r\n        checkdim(X1, X2);\r\n        M = 1 - pwmetrics_cimp(X1, X2, int32(5));\r\n        \r\n    case 'chisq'\r\n        checkdim(X1, X2);\r\n        M = pwmetrics_cimp(X1, X2, int32(6));\r\n        \r\n    case 'kldiv'\r\n        checkdim(X1, X2);\r\n        M = pwmetrics_cimp(X1, X2, int32(7));\r\n        \r\n    case 'jeffrey'\r\n        checkdim(X1, X2);\r\n        M = pwmetrics_cimp(X1, X2, int32(8));\r\n        \r\n    otherwise\r\n        error('sltoolbox:slmetric_pw:unknowntype', 'Unknown metric type %s', mtype);\r\n        \r\n        \r\nend\r\n        \r\n%% Auxiliary function\r\n\r\nfunction d = checkdim(X1, X2)\r\n\r\nd = size(X1, 1);\r\nif d ~= size(X2, 1)\r\n    error('sltoolbox:slmetric_pw:sizmismatch', ...\r\n        'X1 and X2 have different sample dimensions');\r\nend\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/load_density_indices.m",
    "content": "clc; clear; close all;\r\n\r\nsigma_step = 0.001;\r\nsigma_max = 0.2;\r\nsigma_min = sigma_step;\r\n\r\ntheta_values = [sigma_min:sigma_step:sigma_max];\r\n\r\ndataset = 'n50000Dct';\r\nfilter_label = 'kernel';\r\nfilter_function = @(points, sigma) gaussian_kernel_densities(points, points, sigma);\r\n\r\nensure_density_indices(theta_values, dataset, filter_label, filter_function)"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/natural_samples_bootstrap_example.m",
    "content": "clc; clear; close all;\n\ndataset = 'n50000Dct';\nfilter_label = 'kernel';\nT = 15000;\nS = 60;\nmax_filtration_value = 1.1;\nfilter_function = @(points, sigma) gaussian_kernel_densities(points, points, sigma);\ndisplay_plot = true;\nuse_sequential_maxmin = true;\n\ntheta_values = [0.1:0.002:0.2];\n\n[barcodes, indices] = filtered_bootstrap(dataset, filter_label, T, theta_values, S, max_filtration_value, filter_function, display_plot, use_sequential_maxmin);\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/natural_samples_example.m",
    "content": "clc; clear; close all;\n\ndataset = 'n50000Dct';\nfilter_label = 'kernel';\nT = 15000;\nS = 50;\nmax_filtration_value = 1.1;\nfilter_function = @(points, sigma) gaussian_kernel_densities(points, points, sigma);\ndisplay_plot = false;\nuse_sequential_maxmin = true;\n\ntheta_values = [1.0:0.1:2.0];\n\nfor (theta = theta_values)\n    [barcodes, stream_size] = filtered_barcodes(dataset, filter_label, T, theta, S, max_filtration_value, filter_function, display_plot, use_sequential_maxmin)\nend\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/nk15c30Dct_LW0.m",
    "content": "clc; clear; close all;\n\npath = '../../../../data/natural_images';\nlabel = 'nk15c30Dct';\ndatafile = sprintf('%s/%s.mat', path, label);\nload(datafile, label);\n\npoint_cloud = nk15c30Dct;\n\nmax_dimension = 3;\nnum_landmark_points = 150;\nnu = 0;\nnum_divisions = 500;\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\nlandmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :);\n\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = 1;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\nnum_simplices = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n%% create the barcode plots\noptions.filename = 'nk15c30Dct_LW0';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\n%% plot a projection of the dataset onto the first two DCT basis vectors\nfigure\nhold on\nplot(point_cloud(:,1), point_cloud(:,2), '.'), axis equal\nplot(landmarks(:,1), landmarks(:,2), '.r'), axis equal\n\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/nk15c30Dct_LW1.m",
    "content": "clc; clear; close all;\n\npath = '../../../../data/natural_images';\nlabel = 'nk15c30Dct';\ndatafile = sprintf('%s/%s.mat', path, label);\nload(datafile, label);\n\npoint_cloud = nk15c30Dct;\n\nmax_dimension = 3;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 500;\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\nlandmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :);\n\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R / 4;\nmax_filtration_value = 1;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\nnum_simplices = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n%% create the barcode plots\noptions.filename = 'nk15c30Dct_LW1';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\n% plot a projection of the dataset onto the first two DCT basis vectors\nfigure\nhold on\nplot(point_cloud(:,1), point_cloud(:,2), '.'), axis equal\nplot(landmarks(:,1), landmarks(:,2), '.r'), axis equal\n\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/nk15c30Dct_VR.m",
    "content": "clc; clear; close all;\n\npath = '../../../../data/natural_images';\nlabel = 'nk15c30Dct';\ndatafile = sprintf('%s/%s.mat', path, label);\nload(datafile, label);\n\n% Select 100 random points\n%rp = randperm(15000);\n%point_cloud = nk15c30Dct(rp(1:100), :);\n\n% Select 100 max-min points\nS = 200;\nlandmark_selector = api.Plex4.createMaxMinSelector(nk15c30Dct, S);\nindices = landmark_selector.getLandmarkPoints() + 1;\npoint_cloud = nk15c30Dct(indices, :);\n\nmax_dimension = 3;\nnum_divisions = 500;\nmax_filtration_value = 1.1;\n\n% create a Vietoris-Rips  stream\nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\n\nnum_simplices = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% compute intervals\nintervals = persistence.computeIntervals(stream);\n\n%% create the barcode plots\noptions.filename = 'nk15c30Dct_VR';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\nintervals.getInfiniteIntervals()\n\n%% plot a projection of the dataset onto the first two DCT basis vectors\nfigure\nhold on\nplot(nk15c30Dct(:,1), nk15c30Dct(:,2), '.'), axis equal\nplot(point_cloud(:,1), point_cloud(:,2), '.r'), axis equal"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/nk300c30Dct_LW0.m",
    "content": "clc; clear; close all;\n\npath = '../../../../data/natural_images';\nlabel = 'nk300c30Dct';\ndatafile = sprintf('%s/%s.mat', path, label);\nload(datafile, label);\n\npoint_cloud = nk300c30Dct;\n\nmax_dimension = 3;\nnum_landmark_points = 50;\nnu = 0;\nnum_divisions = 500;\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\nlandmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :);\n\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = 1;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\nnum_simplices = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n%% create the barcode plots\noptions.filename = 'nk300c30Dct_LW0';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\noptions.file_format = 'eps';\noptions.line_width = 1;\nplot_barcodes(intervals, options);\n\n% plot a projection of the dataset onto the first two DCT basis vectors\nfigure\nhold on\nplot(point_cloud(:,1), point_cloud(:,2), '.'), axis equal\nplot(landmarks(:,1), landmarks(:,2), '.r'), axis equal\n\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/nk300c30Dct_LW1.m",
    "content": "clc; clear; close all;\n\npath = '../../../../data/natural_images';\nlabel = 'nk300c30Dct';\ndatafile = sprintf('%s/%s.mat', path, label);\nload(datafile, label);\n\npoint_cloud = nk300c30Dct;\n\n\nmax_dimension = 3;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 500;\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\nlandmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :);\n\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R / 4;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\nnum_simplices = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n%% create the barcode plots\noptions.filename = 'nk300c30Dct_LW1';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\n% plot a projection of the dataset onto the first two DCT basis vectors\nfigure\nhold on\nplot(point_cloud(:,1), point_cloud(:,2), '.'), axis equal\nplot(landmarks(:,1), landmarks(:,2), '.r'), axis equal\n\n\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/nk300c30Dct_VR.m",
    "content": "clc; clear; close all;\n\npath = '../../../../data/natural_images';\nlabel = 'nk300c30Dct';\ndatafile = sprintf('%s/%s.mat', path, label);\nload(datafile, label);\n\n\n% Select 100 random points\n%rp = randperm(15000);\n%point_cloud = nk300c30Dct(rp(1:100), :);\n\n% Select 100 max-min points\nS = 100;\nlandmark_selector = api.Plex4.createMaxMinSelector(nk300c30Dct, S);\nindices = landmark_selector.getLandmarkPoints() + 1;\npoint_cloud = nk300c30Dct(indices, :);\n\nmax_dimension = 3;\nnum_divisions = 500;\nmax_filtration_value = 1.1;\n\n% create a Vietoris-Rips  stream\nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\n\nnum_simplices = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% compute intervals\nintervals = persistence.computeIntervals(stream);\n\n%% create the barcode plots\noptions.filename = 'nk300c30Dct_VR';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\nintervals.getInfiniteIntervals()\n\n%% plot a projection of the dataset onto the first two DCT basis vectors\nfigure\nhold on\nplot(nk300c30Dct(:,1), nk300c30Dct(:,2), '.'), axis equal\nplot(point_cloud(:,1), point_cloud(:,2), '.r'), axis equal"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-15-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: outputs/n50000Dct-15-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:07:04\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   546   602\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   546   602\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864   110  5477  4651 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1769 5356 0 0 -1769 899 2158 4 MP\nPP\n-5356 0 0 1769 5356 0 0 -1769 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  389 L\n 899  389 mt  899  389 L\n1872 2158 mt 1872  389 L\n1872  389 mt 1872  389 L\n2846 2158 mt 2846  389 L\n2846  389 mt 2846  389 L\n3820 2158 mt 3820  389 L\n3820  389 mt 3820  389 L\n4794 2158 mt 4794  389 L\n4794  389 mt 4794  389 L\n5768 2158 mt 5768  389 L\n5768  389 mt 5768  389 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  389 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1872 2158 mt 1872 2104 L\n1789 2303 mt \n(0.2) s\n2846 2158 mt 2846 2104 L\n2763 2303 mt \n(0.4) s\n3820 2158 mt 3820 2104 L\n3737 2303 mt \n(0.6) s\n4794 2158 mt 4794 2104 L\n4711 2303 mt \n(0.8) s\n5768 2158 mt 5768 2104 L\n5735 2303 mt \n(1) s\ngs 899 389 5357 1770 MR c np\n5356 0 899 406 2 MP stroke\n6255 406 PD\ngr\n\ngs 6182 333 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 447 4 MP\nDP\ngr\n\ngs 899 389 5357 1770 MR c np\n3738 0 899 424 2 MP stroke\n3390 0 899 441 2 MP stroke\n3310 0 899 459 2 MP stroke\n3176 0 899 476 2 MP stroke\n3127 0 899 494 2 MP stroke\n3117 0 899 511 2 MP stroke\n3095 0 899 529 2 MP stroke\n3042 0 899 546 2 MP stroke\n3010 0 899 564 2 MP stroke\n2988 0 899 581 2 MP stroke\n2983 0 899 599 2 MP stroke\n2977 0 899 616 2 MP stroke\n2961 0 899 634 2 MP stroke\n2961 0 899 651 2 MP stroke\n2961 0 899 669 2 MP stroke\n2961 0 899 686 2 MP stroke\n2951 0 899 704 2 MP stroke\n2940 0 899 721 2 MP stroke\n2929 0 899 739 2 MP stroke\n2929 0 899 756 2 MP stroke\n2919 0 899 774 2 MP stroke\n2913 0 899 791 2 MP stroke\n2913 0 899 809 2 MP stroke\n2913 0 899 826 2 MP stroke\n2908 0 899 844 2 MP stroke\n2902 0 899 861 2 MP stroke\n2902 0 899 879 2 MP stroke\n2897 0 899 896 2 MP stroke\n2886 0 899 914 2 MP stroke\n2886 0 899 931 2 MP stroke\n2886 0 899 949 2 MP stroke\n2881 0 899 966 2 MP stroke\n2881 0 899 984 2 MP stroke\n2870 0 899 1002 2 MP stroke\n2870 0 899 1019 2 MP stroke\n2865 0 899 1037 2 MP stroke\n2865 0 899 1054 2 MP stroke\n2865 0 899 1072 2 MP stroke\n2860 0 899 1089 2 MP stroke\n2849 0 899 1107 2 MP stroke\n2849 0 899 1124 2 MP stroke\n2849 0 899 1142 2 MP stroke\n2844 0 899 1159 2 MP stroke\n2844 0 899 1177 2 MP stroke\n2838 0 899 1194 2 MP stroke\n2833 0 899 1212 2 MP stroke\n2833 0 899 1229 2 MP stroke\n2827 0 899 1247 2 MP stroke\n2827 0 899 1264 2 MP stroke\n2822 0 899 1282 2 MP stroke\n2817 0 899 1299 2 MP stroke\n2817 0 899 1317 2 MP stroke\n2801 0 899 1334 2 MP stroke\n2795 0 899 1352 2 MP stroke\n2795 0 899 1369 2 MP stroke\n2795 0 899 1387 2 MP stroke\n2785 0 899 1404 2 MP stroke\n2785 0 899 1422 2 MP stroke\n2785 0 899 1439 2 MP stroke\n2779 0 899 1457 2 MP stroke\n2774 0 899 1474 2 MP stroke\n2774 0 899 1492 2 MP stroke\n2763 0 899 1509 2 MP stroke\n2742 0 899 1527 2 MP stroke\n2736 0 899 1544 2 MP stroke\n2726 0 899 1562 2 MP stroke\n2720 0 899 1580 2 MP stroke\n2720 0 899 1597 2 MP stroke\n2720 0 899 1615 2 MP stroke\n2720 0 899 1632 2 MP stroke\n2715 0 899 1650 2 MP stroke\n2710 0 899 1667 2 MP stroke\n2704 0 899 1685 2 MP stroke\n2699 0 899 1702 2 MP stroke\n2688 0 899 1720 2 MP stroke\n2688 0 899 1737 2 MP stroke\n2688 0 899 1755 2 MP stroke\n2683 0 899 1772 2 MP stroke\n2683 0 899 1790 2 MP stroke\n2683 0 899 1807 2 MP stroke\n2678 0 899 1825 2 MP stroke\n2672 0 899 1842 2 MP stroke\n2667 0 899 1860 2 MP stroke\n2661 0 899 1877 2 MP stroke\n2656 0 899 1895 2 MP stroke\n2656 0 899 1912 2 MP stroke\n2651 0 899 1930 2 MP stroke\n2651 0 899 1947 2 MP stroke\n2651 0 899 1965 2 MP stroke\n2640 0 899 1982 2 MP stroke\n2619 0 899 2000 2 MP stroke\n2613 0 899 2017 2 MP stroke\n2608 0 899 2035 2 MP stroke\n2603 0 899 2052 2 MP stroke\n2592 0 899 2070 2 MP stroke\n2581 0 899 2087 2 MP stroke\n2576 0 899 2105 2 MP stroke\n2565 0 899 2122 2 MP stroke\n2560 0 899 2140 2 MP stroke\ngr\n\n1548  294 mt \n(Barcodes for VR\\(n50000Dct[k=15, T=15000], 1.100\\) \\(S = 100\\) \\\n\\(dimension 0\\)) s\n1 sg\n0 1769 5356 0 0 -1769 899 4615 4 MP\nPP\n-5356 0 0 1769 5356 0 0 -1769 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2846 L\n 899 2846 mt  899 2846 L\n1872 4615 mt 1872 2846 L\n1872 2846 mt 1872 2846 L\n2846 4615 mt 2846 2846 L\n2846 2846 mt 2846 2846 L\n3820 4615 mt 3820 2846 L\n3820 2846 mt 3820 2846 L\n4794 4615 mt 4794 2846 L\n4794 2846 mt 4794 2846 L\n5768 4615 mt 5768 2846 L\n5768 2846 mt 5768 2846 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2846 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1872 4615 mt 1872 4561 L\n1789 4760 mt \n(0.2) s\n2846 4615 mt 2846 4561 L\n2763 4760 mt \n(0.4) s\n3820 4615 mt 3820 4561 L\n3737 4760 mt \n(0.6) s\n4794 4615 mt 4794 4561 L\n4711 4760 mt \n(0.8) s\n5768 4615 mt 5768 4561 L\n5735 4760 mt \n(1) s\ngs 899 2846 5357 1770 MR c np\n1222 0 5033 2877 2 MP stroke\n6255 2877 PD\ngr\n\ngs 6182 2804 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 2918 4 MP\nDP\ngr\n\ngs 899 2846 5357 1770 MR c np\n1554 0 4701 2908 2 MP stroke\n6255 2908 PD\ngr\n\ngs 6182 2835 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 2949 4 MP\nDP\ngr\n\ngs 899 2846 5357 1770 MR c np\n1597 0 4658 2939 2 MP stroke\n6255 2939 PD\ngr\n\ngs 6182 2866 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 2980 4 MP\nDP\ngr\n\ngs 899 2846 5357 1770 MR c np\n2154 0 4101 2970 2 MP stroke\n6255 2970 PD\ngr\n\ngs 6182 2897 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 3011 4 MP\nDP\ngr\n\ngs 899 2846 5357 1770 MR c np\n2459 0 3796 3001 2 MP stroke\n6255 3001 PD\ngr\n\ngs 6182 2928 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 3042 4 MP\nDP\ngr\n\ngs 899 2846 5357 1770 MR c np\n289 0 4696 3032 2 MP stroke\n6 0 4674 3063 2 MP stroke\n49 0 4433 3094 2 MP stroke\n43 0 4294 3125 2 MP stroke\n358 0 4241 3156 2 MP stroke\n59 0 4203 3187 2 MP stroke\n32 0 4198 3218 2 MP stroke\n225 0 4182 3249 2 MP stroke\n123 0 4182 3280 2 MP stroke\n203 0 4155 3311 2 MP stroke\n150 0 4139 3342 2 MP stroke\n321 0 4123 3373 2 MP stroke\n247 0 4101 3404 2 MP stroke\n520 0 4096 3435 2 MP stroke\n455 0 4096 3466 2 MP stroke\n396 0 4096 3497 2 MP stroke\n600 0 4085 3528 2 MP stroke\n16 0 4085 3559 2 MP stroke\n49 0 4010 3590 2 MP stroke\n22 0 4010 3621 2 MP stroke\n241 0 4000 3652 2 MP stroke\n48 0 3984 3683 2 MP stroke\n145 0 3978 3714 2 MP stroke\n386 0 3935 3746 2 MP stroke\n32 0 3925 3777 2 MP stroke\n1013 0 3919 3808 2 MP stroke\n594 0 3914 3839 2 MP stroke\n348 0 3914 3870 2 MP stroke\n599 0 3909 3901 2 MP stroke\n257 0 3909 3932 2 MP stroke\n477 0 3903 3963 2 MP stroke\n22 0 3903 3994 2 MP stroke\n380 0 3893 4025 2 MP stroke\n5 0 3882 4056 2 MP stroke\n274 0 3876 4087 2 MP stroke\n65 0 3876 4118 2 MP stroke\n294 0 3866 4149 2 MP stroke\n1018 0 3855 4180 2 MP stroke\n509 0 3855 4211 2 MP stroke\n85 0 3850 4242 2 MP stroke\n21 0 3850 4273 2 MP stroke\n316 0 3844 4304 2 MP stroke\n867 0 3834 4335 2 MP stroke\n439 0 3818 4366 2 MP stroke\n787 0 3812 4397 2 MP stroke\n64 0 3764 4428 2 MP stroke\n289 0 3737 4459 2 MP stroke\n589 0 3721 4490 2 MP stroke\n204 0 3689 4521 2 MP stroke\n193 0 3678 4552 2 MP stroke\n299 0 3668 4583 2 MP stroke\ngr\n\n1548 2751 mt \n(Barcodes for VR\\(n50000Dct[k=15, T=15000], 1.100\\) \\(S = 100\\) \\\n\\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-300-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: outputs/n50000Dct-300-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:06:39\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   546   602\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   546   602\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864   110  5477  4651 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1769 5356 0 0 -1769 899 2158 4 MP\nPP\n-5356 0 0 1769 5356 0 0 -1769 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  389 L\n 899  389 mt  899  389 L\n1872 2158 mt 1872  389 L\n1872  389 mt 1872  389 L\n2846 2158 mt 2846  389 L\n2846  389 mt 2846  389 L\n3820 2158 mt 3820  389 L\n3820  389 mt 3820  389 L\n4794 2158 mt 4794  389 L\n4794  389 mt 4794  389 L\n5768 2158 mt 5768  389 L\n5768  389 mt 5768  389 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  389 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1872 2158 mt 1872 2104 L\n1789 2303 mt \n(0.2) s\n2846 2158 mt 2846 2104 L\n2763 2303 mt \n(0.4) s\n3820 2158 mt 3820 2104 L\n3737 2303 mt \n(0.6) s\n4794 2158 mt 4794 2104 L\n4711 2303 mt \n(0.8) s\n5768 2158 mt 5768 2104 L\n5735 2303 mt \n(1) s\ngs 899 389 5357 1770 MR c np\n5356 0 899 406 2 MP stroke\n6255 406 PD\ngr\n\ngs 6182 333 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 447 4 MP\nDP\ngr\n\ngs 899 389 5357 1770 MR c np\n3015 0 899 424 2 MP stroke\n2940 0 899 441 2 MP stroke\n2886 0 899 459 2 MP stroke\n2854 0 899 476 2 MP stroke\n2854 0 899 494 2 MP stroke\n2844 0 899 511 2 MP stroke\n2838 0 899 529 2 MP stroke\n2827 0 899 546 2 MP stroke\n2817 0 899 564 2 MP stroke\n2801 0 899 581 2 MP stroke\n2795 0 899 599 2 MP stroke\n2795 0 899 616 2 MP stroke\n2774 0 899 634 2 MP stroke\n2769 0 899 651 2 MP stroke\n2752 0 899 669 2 MP stroke\n2747 0 899 686 2 MP stroke\n2736 0 899 704 2 MP stroke\n2736 0 899 721 2 MP stroke\n2731 0 899 739 2 MP stroke\n2731 0 899 756 2 MP stroke\n2726 0 899 774 2 MP stroke\n2726 0 899 791 2 MP stroke\n2726 0 899 809 2 MP stroke\n2720 0 899 826 2 MP stroke\n2710 0 899 844 2 MP stroke\n2699 0 899 861 2 MP stroke\n2699 0 899 879 2 MP stroke\n2694 0 899 896 2 MP stroke\n2694 0 899 914 2 MP stroke\n2688 0 899 931 2 MP stroke\n2683 0 899 949 2 MP stroke\n2678 0 899 966 2 MP stroke\n2672 0 899 984 2 MP stroke\n2672 0 899 1002 2 MP stroke\n2672 0 899 1019 2 MP stroke\n2667 0 899 1037 2 MP stroke\n2661 0 899 1054 2 MP stroke\n2656 0 899 1072 2 MP stroke\n2656 0 899 1089 2 MP stroke\n2656 0 899 1107 2 MP stroke\n2651 0 899 1124 2 MP stroke\n2651 0 899 1142 2 MP stroke\n2645 0 899 1159 2 MP stroke\n2645 0 899 1177 2 MP stroke\n2645 0 899 1194 2 MP stroke\n2635 0 899 1212 2 MP stroke\n2629 0 899 1229 2 MP stroke\n2629 0 899 1247 2 MP stroke\n2629 0 899 1264 2 MP stroke\n2629 0 899 1282 2 MP stroke\n2629 0 899 1299 2 MP stroke\n2624 0 899 1317 2 MP stroke\n2624 0 899 1334 2 MP stroke\n2624 0 899 1352 2 MP stroke\n2619 0 899 1369 2 MP stroke\n2619 0 899 1387 2 MP stroke\n2613 0 899 1404 2 MP stroke\n2613 0 899 1422 2 MP stroke\n2608 0 899 1439 2 MP stroke\n2608 0 899 1457 2 MP stroke\n2603 0 899 1474 2 MP stroke\n2581 0 899 1492 2 MP stroke\n2581 0 899 1509 2 MP stroke\n2576 0 899 1527 2 MP stroke\n2576 0 899 1544 2 MP stroke\n2576 0 899 1562 2 MP stroke\n2576 0 899 1580 2 MP stroke\n2570 0 899 1597 2 MP stroke\n2565 0 899 1615 2 MP stroke\n2565 0 899 1632 2 MP stroke\n2565 0 899 1650 2 MP stroke\n2565 0 899 1667 2 MP stroke\n2560 0 899 1685 2 MP stroke\n2554 0 899 1702 2 MP stroke\n2549 0 899 1720 2 MP stroke\n2549 0 899 1737 2 MP stroke\n2549 0 899 1755 2 MP stroke\n2544 0 899 1772 2 MP stroke\n2538 0 899 1790 2 MP stroke\n2538 0 899 1807 2 MP stroke\n2533 0 899 1825 2 MP stroke\n2528 0 899 1842 2 MP stroke\n2522 0 899 1860 2 MP stroke\n2522 0 899 1877 2 MP stroke\n2517 0 899 1895 2 MP stroke\n2511 0 899 1912 2 MP stroke\n2511 0 899 1930 2 MP stroke\n2506 0 899 1947 2 MP stroke\n2506 0 899 1965 2 MP stroke\n2506 0 899 1982 2 MP stroke\n2501 0 899 2000 2 MP stroke\n2501 0 899 2017 2 MP stroke\n2495 0 899 2035 2 MP stroke\n2495 0 899 2052 2 MP stroke\n2490 0 899 2070 2 MP stroke\n2485 0 899 2087 2 MP stroke\n2479 0 899 2105 2 MP stroke\n2479 0 899 2122 2 MP stroke\n2474 0 899 2140 2 MP stroke\ngr\n\n1514  294 mt \n(Barcodes for VR\\(n50000Dct[k=300, T=15000], 1.100\\) \\(S = 100\\)\\\n \\(dimension 0\\)) s\n1 sg\n0 1769 5356 0 0 -1769 899 4615 4 MP\nPP\n-5356 0 0 1769 5356 0 0 -1769 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2846 L\n 899 2846 mt  899 2846 L\n1872 4615 mt 1872 2846 L\n1872 2846 mt 1872 2846 L\n2846 4615 mt 2846 2846 L\n2846 2846 mt 2846 2846 L\n3820 4615 mt 3820 2846 L\n3820 2846 mt 3820 2846 L\n4794 4615 mt 4794 2846 L\n4794 2846 mt 4794 2846 L\n5768 4615 mt 5768 2846 L\n5768 2846 mt 5768 2846 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2846 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1872 4615 mt 1872 4561 L\n1789 4760 mt \n(0.2) s\n2846 4615 mt 2846 4561 L\n2763 4760 mt \n(0.4) s\n3820 4615 mt 3820 4561 L\n3737 4760 mt \n(0.6) s\n4794 4615 mt 4794 4561 L\n4711 4760 mt \n(0.8) s\n5768 4615 mt 5768 4561 L\n5735 4760 mt \n(1) s\ngs 899 2846 5357 1770 MR c np\n2555 0 3700 2868 2 MP stroke\n6255 2868 PD\ngr\n\ngs 6182 2795 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 2909 4 MP\nDP\ngr\n\ngs 899 2846 5357 1770 MR c np\n102 0 4160 2891 2 MP stroke\n32 0 4080 2914 2 MP stroke\n198 0 4075 2936 2 MP stroke\n407 0 4005 2959 2 MP stroke\n156 0 3994 2982 2 MP stroke\n27 0 3989 3004 2 MP stroke\n54 0 3967 3027 2 MP stroke\n337 0 3946 3050 2 MP stroke\n134 0 3941 3072 2 MP stroke\n375 0 3898 3095 2 MP stroke\n166 0 3893 3118 2 MP stroke\n182 0 3887 3140 2 MP stroke\n118 0 3871 3163 2 MP stroke\n107 0 3860 3186 2 MP stroke\n75 0 3855 3208 2 MP stroke\n198 0 3850 3231 2 MP stroke\n370 0 3844 3254 2 MP stroke\n316 0 3839 3276 2 MP stroke\n118 0 3839 3299 2 MP stroke\n139 0 3834 3322 2 MP stroke\n97 0 3828 3344 2 MP stroke\n176 0 3818 3367 2 MP stroke\n487 0 3807 3390 2 MP stroke\n278 0 3807 3412 2 MP stroke\n97 0 3801 3435 2 MP stroke\n310 0 3791 3458 2 MP stroke\n343 0 3785 3481 2 MP stroke\n321 0 3780 3503 2 MP stroke\n306 0 3769 3526 2 MP stroke\n75 0 3769 3549 2 MP stroke\n128 0 3759 3571 2 MP stroke\n128 0 3759 3594 2 MP stroke\n5 0 3759 3617 2 MP stroke\n316 0 3753 3639 2 MP stroke\n348 0 3743 3662 2 MP stroke\n246 0 3743 3685 2 MP stroke\n166 0 3737 3707 2 MP stroke\n503 0 3732 3730 2 MP stroke\n5 0 3721 3753 2 MP stroke\n251 0 3716 3775 2 MP stroke\n134 0 3716 3798 2 MP stroke\n80 0 3716 3821 2 MP stroke\n343 0 3710 3843 2 MP stroke\n215 0 3710 3866 2 MP stroke\n177 0 3710 3889 2 MP stroke\n113 0 3710 3911 2 MP stroke\n498 0 3705 3934 2 MP stroke\n235 0 3700 3957 2 MP stroke\n64 0 3700 3979 2 MP stroke\n64 0 3700 4002 2 MP stroke\n466 0 3694 4025 2 MP stroke\n64 0 3689 4048 2 MP stroke\n471 0 3684 4070 2 MP stroke\n407 0 3684 4093 2 MP stroke\n283 0 3684 4116 2 MP stroke\n262 0 3684 4138 2 MP stroke\n235 0 3684 4161 2 MP stroke\n5 0 3684 4184 2 MP stroke\n220 0 3678 4206 2 MP stroke\n107 0 3678 4229 2 MP stroke\n16 0 3678 4252 2 MP stroke\n85 0 3668 4274 2 MP stroke\n418 0 3657 4297 2 MP stroke\n225 0 3657 4320 2 MP stroke\n16 0 3657 4342 2 MP stroke\n349 0 3651 4365 2 MP stroke\n268 0 3635 4388 2 MP stroke\n134 0 3635 4410 2 MP stroke\n391 0 3625 4433 2 MP stroke\n75 0 3625 4456 2 MP stroke\n343 0 3614 4478 2 MP stroke\n498 0 3603 4501 2 MP stroke\n310 0 3593 4524 2 MP stroke\n123 0 3571 4546 2 MP stroke\n268 0 3560 4569 2 MP stroke\n145 0 3528 4592 2 MP stroke\ngr\n\n1514 2751 mt \n(Barcodes for VR\\(n50000Dct[k=300, T=15000], 1.100\\) \\(S = 100\\)\\\n \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-10-20-1-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-10-20-1-15000-1.100.eps\n%%CreationDate: 07/24/2011  11:44:12\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   548   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   548   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5507  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1434 2158 mt 1434  403 L\n1434  403 mt 1434  403 L\n1970 2158 mt 1970  403 L\n1970  403 mt 1970  403 L\n2505 2158 mt 2505  403 L\n2505  403 mt 2505  403 L\n3041 2158 mt 3041  403 L\n3041  403 mt 3041  403 L\n3577 2158 mt 3577  403 L\n3577  403 mt 3577  403 L\n4112 2158 mt 4112  403 L\n4112  403 mt 4112  403 L\n4648 2158 mt 4648  403 L\n4648  403 mt 4648  403 L\n5183 2158 mt 5183  403 L\n5183  403 mt 5183  403 L\n5719 2158 mt 5719  403 L\n5719  403 mt 5719  403 L\n6255 2158 mt 6255  403 L\n6255  403 mt 6255  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1434 2158 mt 1434 2104 L\n1401 2303 mt \n(1) s\n1970 2158 mt 1970 2104 L\n1937 2303 mt \n(2) s\n2505 2158 mt 2505 2104 L\n2472 2303 mt \n(3) s\n3041 2158 mt 3041 2104 L\n3008 2303 mt \n(4) s\n3577 2158 mt 3577 2104 L\n3544 2303 mt \n(5) s\n4112 2158 mt 4112 2104 L\n4079 2303 mt \n(6) s\n4648 2158 mt 4648 2104 L\n4615 2303 mt \n(7) s\n5183 2158 mt 5183 2104 L\n5150 2303 mt \n(8) s\n5719 2158 mt 5719 2104 L\n5686 2303 mt \n(9) s\n6255 2158 mt 6255 2104 L\n6189 2303 mt \n(10) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1100  254 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2716  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2870  254 mt \n( = 10, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3266  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3447  254 mt \n( = 20, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3843  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4024  254 mt \n( = 1, T = 15000, S = 100 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1434 4615 mt 1434 2860 L\n1434 2860 mt 1434 2860 L\n1970 4615 mt 1970 2860 L\n1970 2860 mt 1970 2860 L\n2505 4615 mt 2505 2860 L\n2505 2860 mt 2505 2860 L\n3041 4615 mt 3041 2860 L\n3041 2860 mt 3041 2860 L\n3577 4615 mt 3577 2860 L\n3577 2860 mt 3577 2860 L\n4112 4615 mt 4112 2860 L\n4112 2860 mt 4112 2860 L\n4648 4615 mt 4648 2860 L\n4648 2860 mt 4648 2860 L\n5183 4615 mt 5183 2860 L\n5183 2860 mt 5183 2860 L\n5719 4615 mt 5719 2860 L\n5719 2860 mt 5719 2860 L\n6255 4615 mt 6255 2860 L\n6255 2860 mt 6255 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1434 4615 mt 1434 4561 L\n1401 4760 mt \n(1) s\n1970 4615 mt 1970 4561 L\n1937 4760 mt \n(2) s\n2505 4615 mt 2505 4561 L\n2472 4760 mt \n(3) s\n3041 4615 mt 3041 4561 L\n3008 4760 mt \n(4) s\n3577 4615 mt 3577 4561 L\n3544 4760 mt \n(5) s\n4112 4615 mt 4112 4561 L\n4079 4760 mt \n(6) s\n4648 4615 mt 4648 4561 L\n4615 4760 mt \n(7) s\n5183 4615 mt 5183 4561 L\n5150 4760 mt \n(8) s\n5719 4615 mt 5719 4561 L\n5686 4760 mt \n(9) s\n6255 4615 mt 6255 4561 L\n6189 4760 mt \n(10) s\ngs 899 2860 5357 1756 MR c np\n536 0 5719 2916 2 MP stroke\n536 0 5719 2973 2 MP stroke\n1072 0 5183 3029 2 MP stroke\n1072 0 5183 3086 2 MP stroke\n32 0 5167 3143 2 MP stroke\n1607 0 4648 3199 2 MP stroke\n535 0 4648 3256 2 MP stroke\n32 0 4632 3312 2 MP stroke\n32 0 4632 3369 2 MP stroke\n32 0 4096 3426 2 MP stroke\n32 0 4096 3482 2 MP stroke\n32 0 4096 3539 2 MP stroke\n32 0 4096 3595 2 MP stroke\n535 0 3577 3652 2 MP stroke\n33 0 3560 3709 2 MP stroke\n536 0 3041 3765 2 MP stroke\n536 0 3041 3822 2 MP stroke\n32 0 3025 3879 2 MP stroke\n535 0 1970 3935 2 MP stroke\n535 0 1970 3992 2 MP stroke\n535 0 1970 4048 2 MP stroke\n1607 0 1434 4105 2 MP stroke\n32 0 1418 4162 2 MP stroke\n32 0 1418 4218 2 MP stroke\n2678 0 899 4275 2 MP stroke\n535 0 899 4331 2 MP stroke\n16 0 899 4388 2 MP stroke\n16 0 899 4445 2 MP stroke\n16 0 899 4501 2 MP stroke\n16 0 899 4558 2 MP stroke\ngr\n\n1100 2711 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2716 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2870 2711 mt \n( = 10, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3266 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3447 2711 mt \n( = 20, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3843 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4024 2711 mt \n( = 1, T = 15000, S = 100 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-13-17-1-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: outputs/n50000Dct-samples-13-17-1-15000-1.100.eps\n%%CreationDate: 07/26/2011  00:28:56\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   546   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   546   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5473  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1568 2158 mt 1568  403 L\n1568  403 mt 1568  403 L\n2238 2158 mt 2238  403 L\n2238  403 mt 2238  403 L\n2907 2158 mt 2907  403 L\n2907  403 mt 2907  403 L\n3577 2158 mt 3577  403 L\n3577  403 mt 3577  403 L\n4246 2158 mt 4246  403 L\n4246  403 mt 4246  403 L\n4916 2158 mt 4916  403 L\n4916  403 mt 4916  403 L\n5585 2158 mt 5585  403 L\n5585  403 mt 5585  403 L\n6255 2158 mt 6255  403 L\n6255  403 mt 6255  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1568 2158 mt 1568 2104 L\n1485 2303 mt \n(0.5) s\n2238 2158 mt 2238 2104 L\n2205 2303 mt \n(1) s\n2907 2158 mt 2907 2104 L\n2824 2303 mt \n(1.5) s\n3577 2158 mt 3577 2104 L\n3544 2303 mt \n(2) s\n4246 2158 mt 4246 2104 L\n4163 2303 mt \n(2.5) s\n4916 2158 mt 4916 2104 L\n4883 2303 mt \n(3) s\n5585 2158 mt 5585 2104 L\n5502 2303 mt \n(3.5) s\n6255 2158 mt 6255 2104 L\n6222 2303 mt \n(4) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1100  254 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2716  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2870  254 mt \n( = 13, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3266  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3447  254 mt \n( = 17, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3843  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4024  254 mt \n( = 1, T = 15000, S = 100 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1568 4615 mt 1568 2860 L\n1568 2860 mt 1568 2860 L\n2238 4615 mt 2238 2860 L\n2238 2860 mt 2238 2860 L\n2907 4615 mt 2907 2860 L\n2907 2860 mt 2907 2860 L\n3577 4615 mt 3577 2860 L\n3577 2860 mt 3577 2860 L\n4246 4615 mt 4246 2860 L\n4246 2860 mt 4246 2860 L\n4916 4615 mt 4916 2860 L\n4916 2860 mt 4916 2860 L\n5585 4615 mt 5585 2860 L\n5585 2860 mt 5585 2860 L\n6255 4615 mt 6255 2860 L\n6255 2860 mt 6255 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1568 4615 mt 1568 4561 L\n1485 4760 mt \n(0.5) s\n2238 4615 mt 2238 4561 L\n2205 4760 mt \n(1) s\n2907 4615 mt 2907 4561 L\n2824 4760 mt \n(1.5) s\n3577 4615 mt 3577 4561 L\n3544 4760 mt \n(2) s\n4246 4615 mt 4246 4561 L\n4163 4760 mt \n(2.5) s\n4916 4615 mt 4916 4561 L\n4883 4760 mt \n(3) s\n5585 4615 mt 5585 4561 L\n5502 4760 mt \n(3.5) s\n6255 4615 mt 6255 4561 L\n6222 4760 mt \n(4) s\ngs 899 2860 5357 1756 MR c np\n18 0 6238 2952 2 MP stroke\n18 0 6238 3044 2 MP stroke\n18 0 6238 3137 2 MP stroke\n18 0 6238 3229 2 MP stroke\n33 0 4899 3321 2 MP stroke\n33 0 4899 3414 2 MP stroke\n33 0 4899 3506 2 MP stroke\n33 0 4899 3598 2 MP stroke\n1339 0 3577 3691 2 MP stroke\n33 0 3560 3783 2 MP stroke\n1339 0 2238 3876 2 MP stroke\n1339 0 2238 3968 2 MP stroke\n33 0 2221 4060 2 MP stroke\n2678 0 899 4153 2 MP stroke\n1339 0 899 4245 2 MP stroke\n16 0 899 4337 2 MP stroke\n16 0 899 4430 2 MP stroke\n16 0 899 4522 2 MP stroke\ngr\n\n1100 2711 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2716 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2870 2711 mt \n( = 13, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3266 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3447 2711 mt \n( = 17, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3843 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4024 2711 mt \n( = 1, T = 15000, S = 100 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-15-45-5-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-15-45-5-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:50:31\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   546   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   546   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5473  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1791 2158 mt 1791  403 L\n1791  403 mt 1791  403 L\n2684 2158 mt 2684  403 L\n2684  403 mt 2684  403 L\n3577 2158 mt 3577  403 L\n3577  403 mt 3577  403 L\n4469 2158 mt 4469  403 L\n4469  403 mt 4469  403 L\n5362 2158 mt 5362  403 L\n5362  403 mt 5362  403 L\n6255 2158 mt 6255  403 L\n6255  403 mt 6255  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1791 2158 mt 1791 2104 L\n1758 2303 mt \n(1) s\n2684 2158 mt 2684 2104 L\n2651 2303 mt \n(2) s\n3577 2158 mt 3577 2104 L\n3544 2303 mt \n(3) s\n4469 2158 mt 4469 2104 L\n4436 2303 mt \n(4) s\n5362 2158 mt 5362 2104 L\n5329 2303 mt \n(5) s\n6255 2158 mt 6255 2104 L\n6222 2303 mt \n(6) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1027  254 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3275  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3429  254 mt \n( = 15, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3825  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4006  254 mt \n( = 45, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4402  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4583  254 mt \n( = 5, T = 15000 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1791 4615 mt 1791 2860 L\n1791 2860 mt 1791 2860 L\n2684 4615 mt 2684 2860 L\n2684 2860 mt 2684 2860 L\n3577 4615 mt 3577 2860 L\n3577 2860 mt 3577 2860 L\n4469 4615 mt 4469 2860 L\n4469 2860 mt 4469 2860 L\n5362 4615 mt 5362 2860 L\n5362 2860 mt 5362 2860 L\n6255 4615 mt 6255 2860 L\n6255 2860 mt 6255 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1791 4615 mt 1791 4561 L\n1758 4760 mt \n(1) s\n2684 4615 mt 2684 4561 L\n2651 4760 mt \n(2) s\n3577 4615 mt 3577 4561 L\n3544 4760 mt \n(3) s\n4469 4615 mt 4469 4561 L\n4436 4760 mt \n(4) s\n5362 4615 mt 5362 4561 L\n5329 4760 mt \n(5) s\n6255 4615 mt 6255 4561 L\n6222 4760 mt \n(6) s\ngs 899 2860 5357 1756 MR c np\n18 0 6238 2920 2 MP stroke\n18 0 6238 2981 2 MP stroke\n18 0 6238 3041 2 MP stroke\n18 0 6238 3102 2 MP stroke\n18 0 6238 3162 2 MP stroke\n32 0 5346 3223 2 MP stroke\n32 0 5346 3283 2 MP stroke\n32 0 5346 3344 2 MP stroke\n32 0 5346 3404 2 MP stroke\n32 0 4453 3465 2 MP stroke\n32 0 4453 3525 2 MP stroke\n32 0 4453 3586 2 MP stroke\n32 0 4453 3646 2 MP stroke\n1785 0 3577 3707 2 MP stroke\n33 0 3560 3767 2 MP stroke\n33 0 3560 3828 2 MP stroke\n33 0 3560 3888 2 MP stroke\n32 0 2668 3949 2 MP stroke\n32 0 2668 4009 2 MP stroke\n1786 0 1791 4070 2 MP stroke\n893 0 1791 4130 2 MP stroke\n893 0 1791 4191 2 MP stroke\n32 0 1775 4251 2 MP stroke\n892 0 899 4312 2 MP stroke\n16 0 899 4372 2 MP stroke\n16 0 899 4433 2 MP stroke\n16 0 899 4493 2 MP stroke\n16 0 899 4554 2 MP stroke\ngr\n\n1027 2711 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3275 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3429 2711 mt \n( = 15, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3825 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4006 2711 mt \n( = 45, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4402 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4583 2711 mt \n( = 5, T = 15000 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-15-450-15-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-15-450-15-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:48:17\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   543   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   543   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5441  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1822 2158 mt 1822  403 L\n1822  403 mt 1822  403 L\n2745 2158 mt 2745  403 L\n2745  403 mt 2745  403 L\n3669 2158 mt 3669  403 L\n3669  403 mt 3669  403 L\n4592 2158 mt 4592  403 L\n4592  403 mt 4592  403 L\n5516 2158 mt 5516  403 L\n5516  403 mt 5516  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1822 2158 mt 1822 2104 L\n1789 2303 mt \n(5) s\n2745 2158 mt 2745 2104 L\n2679 2303 mt \n(10) s\n3669 2158 mt 3669 2104 L\n3603 2303 mt \n(15) s\n4592 2158 mt 4592 2104 L\n4526 2303 mt \n(20) s\n5516 2158 mt 5516 2104 L\n5450 2303 mt \n(25) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n 961  254 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3209  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3363  254 mt \n( = 15, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3759  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3940  254 mt \n( = 450, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4403  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4584  254 mt \n( = 15, T = 15000 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1822 4615 mt 1822 2860 L\n1822 2860 mt 1822 2860 L\n2745 4615 mt 2745 2860 L\n2745 2860 mt 2745 2860 L\n3669 4615 mt 3669 2860 L\n3669 2860 mt 3669 2860 L\n4592 4615 mt 4592 2860 L\n4592 2860 mt 4592 2860 L\n5516 4615 mt 5516 2860 L\n5516 2860 mt 5516 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1822 4615 mt 1822 4561 L\n1789 4760 mt \n(5) s\n2745 4615 mt 2745 4561 L\n2679 4760 mt \n(10) s\n3669 4615 mt 3669 4561 L\n3603 4760 mt \n(15) s\n4592 4615 mt 4592 4561 L\n4526 4760 mt \n(20) s\n5516 4615 mt 5516 4561 L\n5450 4760 mt \n(25) s\ngs 899 2860 5357 1756 MR c np\n32 0 2729 2916 2 MP stroke\n184 0 2561 2973 2 MP stroke\n32 0 2360 3029 2 MP stroke\n32 0 2360 3086 2 MP stroke\n32 0 1991 3143 2 MP stroke\n32 0 1991 3199 2 MP stroke\n32 0 1991 3256 2 MP stroke\n32 0 1806 3312 2 MP stroke\n32 0 1806 3369 2 MP stroke\n32 0 1806 3426 2 MP stroke\n4618 0 1637 3482 2 MP stroke\n32 0 1621 3539 2 MP stroke\n32 0 1621 3595 2 MP stroke\n32 0 1621 3652 2 MP stroke\n32 0 1437 3709 2 MP stroke\n32 0 1437 3765 2 MP stroke\n185 0 1268 3822 2 MP stroke\n185 0 1268 3879 2 MP stroke\n32 0 1252 3935 2 MP stroke\n32 0 1252 3992 2 MP stroke\n554 0 1083 4048 2 MP stroke\n32 0 1067 4105 2 MP stroke\n32 0 1067 4162 2 MP stroke\n32 0 1067 4218 2 MP stroke\n32 0 1067 4275 2 MP stroke\n16 0 899 4331 2 MP stroke\n16 0 899 4388 2 MP stroke\n16 0 899 4445 2 MP stroke\n16 0 899 4501 2 MP stroke\n16 0 899 4558 2 MP stroke\ngr\n\n 961 2711 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3209 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3363 2711 mt \n( = 15, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3759 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3940 2711 mt \n( = 450, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4403 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4584 2711 mt \n( = 15, T = 15000 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-2-400-1-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: outputs/n50000Dct-samples-2-400-1-15000-1.100.eps\n%%CreationDate: 07/25/2011  20:18:30\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   543   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   543   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5441  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1571 2158 mt 1571  403 L\n1571  403 mt 1571  403 L\n2244 2158 mt 2244  403 L\n2244  403 mt 2244  403 L\n2917 2158 mt 2917  403 L\n2917  403 mt 2917  403 L\n3590 2158 mt 3590  403 L\n3590  403 mt 3590  403 L\n4263 2158 mt 4263  403 L\n4263  403 mt 4263  403 L\n4936 2158 mt 4936  403 L\n4936  403 mt 4936  403 L\n5609 2158 mt 5609  403 L\n5609  403 mt 5609  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1571 2158 mt 1571 2104 L\n1505 2303 mt \n(50) s\n2244 2158 mt 2244 2104 L\n2144 2303 mt \n(100) s\n2917 2158 mt 2917 2104 L\n2817 2303 mt \n(150) s\n3590 2158 mt 3590 2104 L\n3490 2303 mt \n(200) s\n4263 2158 mt 4263 2104 L\n4163 2303 mt \n(250) s\n4936 2158 mt 4936 2104 L\n4836 2303 mt \n(300) s\n5609 2158 mt 5609 2104 L\n5509 2303 mt \n(350) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1100  254 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2716  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2870  254 mt \n( = 2, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3200  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3381  254 mt \n( = 400, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3844  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4025  254 mt \n( = 1, T = 15000, S = 100 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1571 4615 mt 1571 2860 L\n1571 2860 mt 1571 2860 L\n2244 4615 mt 2244 2860 L\n2244 2860 mt 2244 2860 L\n2917 4615 mt 2917 2860 L\n2917 2860 mt 2917 2860 L\n3590 4615 mt 3590 2860 L\n3590 2860 mt 3590 2860 L\n4263 4615 mt 4263 2860 L\n4263 2860 mt 4263 2860 L\n4936 4615 mt 4936 2860 L\n4936 2860 mt 4936 2860 L\n5609 4615 mt 5609 2860 L\n5609 2860 mt 5609 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1571 4615 mt 1571 4561 L\n1505 4760 mt \n(50) s\n2244 4615 mt 2244 4561 L\n2144 4760 mt \n(100) s\n2917 4615 mt 2917 4561 L\n2817 4760 mt \n(150) s\n3590 4615 mt 3590 4561 L\n3490 4760 mt \n(200) s\n4263 4615 mt 4263 4561 L\n4163 4760 mt \n(250) s\n4936 4615 mt 4936 4561 L\n4836 4760 mt \n(300) s\n5609 4615 mt 5609 4561 L\n5509 4760 mt \n(350) s\ngs 899 2860 5357 1756 MR c np\n32 0 4597 2864 2 MP stroke\n32 0 4489 2868 2 MP stroke\n14 0 4424 2873 2 MP stroke\n32 0 4368 2877 2 MP stroke\n32 0 4166 2881 2 MP stroke\n32 0 3762 2886 2 MP stroke\n32 0 3695 2890 2 MP stroke\n32 0 3655 2895 2 MP stroke\n32 0 3601 2899 2 MP stroke\n33 0 3560 2903 2 MP stroke\n32 0 3534 2908 2 MP stroke\n32 0 3493 2912 2 MP stroke\n32 0 3453 2916 2 MP stroke\n32 0 3439 2921 2 MP stroke\n33 0 3412 2925 2 MP stroke\n32 0 3399 2930 2 MP stroke\n32 0 3372 2934 2 MP stroke\n32 0 3359 2938 2 MP stroke\n32 0 3332 2943 2 MP stroke\n14 0 3307 2947 2 MP stroke\n32 0 3278 2951 2 MP stroke\n32 0 3130 2956 2 MP stroke\n32 0 3116 2960 2 MP stroke\n32 0 3076 2965 2 MP stroke\n32 0 3063 2969 2 MP stroke\n32 0 3049 2973 2 MP stroke\n32 0 3036 2978 2 MP stroke\n32 0 3036 2982 2 MP stroke\n32 0 3009 2986 2 MP stroke\n32 0 2982 2991 2 MP stroke\n32 0 2955 2995 2 MP stroke\n32 0 2955 3000 2 MP stroke\n13 0 2931 3004 2 MP stroke\n32 0 2901 3008 2 MP stroke\n32 0 2901 3013 2 MP stroke\n32 0 2888 3017 2 MP stroke\n32 0 2888 3021 2 MP stroke\n32 0 2847 3026 2 MP stroke\n32 0 2834 3030 2 MP stroke\n33 0 2793 3035 2 MP stroke\n33 0 2766 3039 2 MP stroke\n32 0 2753 3043 2 MP stroke\n32 0 2740 3048 2 MP stroke\n32 0 2740 3052 2 MP stroke\n32 0 2726 3056 2 MP stroke\n13 0 2702 3061 2 MP stroke\n32 0 2686 3065 2 MP stroke\n32 0 2686 3070 2 MP stroke\n32 0 2672 3074 2 MP stroke\n27 0 2648 3078 2 MP stroke\n13 0 2648 3083 2 MP stroke\n33 0 2618 3087 2 MP stroke\n32 0 2605 3091 2 MP stroke\n32 0 2578 3096 2 MP stroke\n32 0 2578 3100 2 MP stroke\n32 0 2565 3105 2 MP stroke\n14 0 2567 3109 2 MP stroke\n32 0 2538 3113 2 MP stroke\n32 0 2511 3118 2 MP stroke\n32 0 2511 3122 2 MP stroke\n32 0 2497 3126 2 MP stroke\n32 0 2484 3131 2 MP stroke\n32 0 2484 3135 2 MP stroke\n33 0 2470 3140 2 MP stroke\n32 0 2457 3144 2 MP stroke\n13 0 2460 3148 2 MP stroke\n33 0 2443 3153 2 MP stroke\n32 0 2430 3157 2 MP stroke\n32 0 2430 3161 2 MP stroke\n32 0 2417 3166 2 MP stroke\n14 0 2419 3170 2 MP stroke\n32 0 2403 3175 2 MP stroke\n27 0 2406 3179 2 MP stroke\n32 0 2390 3183 2 MP stroke\n32 0 2390 3188 2 MP stroke\n32 0 2376 3192 2 MP stroke\n32 0 2376 3196 2 MP stroke\n32 0 2363 3201 2 MP stroke\n32 0 2363 3205 2 MP stroke\n32 0 2349 3210 2 MP stroke\n32 0 2349 3214 2 MP stroke\n32 0 2336 3218 2 MP stroke\n32 0 2336 3223 2 MP stroke\n32 0 2322 3227 2 MP stroke\n32 0 2322 3232 2 MP stroke\n13 0 2325 3236 2 MP stroke\n13 0 2325 3240 2 MP stroke\n32 0 2309 3245 2 MP stroke\n32 0 2309 3249 2 MP stroke\n33 0 2295 3253 2 MP stroke\n33 0 2295 3258 2 MP stroke\n33 0 2295 3262 2 MP stroke\n14 0 2298 3267 2 MP stroke\n32 0 2282 3271 2 MP stroke\n32 0 2282 3275 2 MP stroke\n32 0 2269 3280 2 MP stroke\n14 0 2271 3284 2 MP stroke\n27 0 2258 3288 2 MP stroke\n13 0 2258 3293 2 MP stroke\n4011 0 2244 3297 2 MP stroke\n32 0 2228 3302 2 MP stroke\n32 0 2228 3306 2 MP stroke\n32 0 2215 3310 2 MP stroke\n32 0 2215 3315 2 MP stroke\n14 0 2217 3319 2 MP stroke\n27 0 2204 3323 2 MP stroke\n14 0 2190 3328 2 MP stroke\n32 0 2174 3332 2 MP stroke\n32 0 2161 3337 2 MP stroke\n32 0 2161 3341 2 MP stroke\n33 0 2147 3345 2 MP stroke\n67 0 2150 3350 2 MP stroke\n13 0 2150 3354 2 MP stroke\n32 0 2134 3358 2 MP stroke\n32 0 2134 3363 2 MP stroke\n32 0 2121 3367 2 MP stroke\n32 0 2121 3372 2 MP stroke\n32 0 2121 3376 2 MP stroke\n32 0 2107 3380 2 MP stroke\n32 0 2107 3385 2 MP stroke\n32 0 2107 3389 2 MP stroke\n32 0 2107 3393 2 MP stroke\n32 0 2094 3398 2 MP stroke\n32 0 2094 3402 2 MP stroke\n32 0 2094 3407 2 MP stroke\n32 0 2080 3411 2 MP stroke\n32 0 2080 3415 2 MP stroke\n32 0 2080 3420 2 MP stroke\n32 0 2080 3424 2 MP stroke\n32 0 2067 3428 2 MP stroke\n32 0 2067 3433 2 MP stroke\n32 0 2067 3437 2 MP stroke\n32 0 2067 3442 2 MP stroke\n32 0 2053 3446 2 MP stroke\n32 0 2053 3450 2 MP stroke\n32 0 2053 3455 2 MP stroke\n32 0 2053 3459 2 MP stroke\n32 0 2040 3463 2 MP stroke\n32 0 2040 3468 2 MP stroke\n32 0 2040 3472 2 MP stroke\n14 0 2042 3477 2 MP stroke\n32 0 2026 3481 2 MP stroke\n13 0 2029 3485 2 MP stroke\n13 0 2029 3490 2 MP stroke\n32 0 2013 3494 2 MP stroke\n32 0 2013 3498 2 MP stroke\n33 0 1999 3503 2 MP stroke\n33 0 1999 3507 2 MP stroke\n33 0 1999 3512 2 MP stroke\n33 0 1999 3516 2 MP stroke\n13 0 1989 3520 2 MP stroke\n13 0 1989 3525 2 MP stroke\n13 0 1989 3529 2 MP stroke\n13 0 1989 3533 2 MP stroke\n32 0 1959 3538 2 MP stroke\n32 0 1959 3542 2 MP stroke\n13 0 1962 3547 2 MP stroke\n13 0 1962 3551 2 MP stroke\n32 0 1932 3555 2 MP stroke\n32 0 1932 3560 2 MP stroke\n27 0 1935 3564 2 MP stroke\n32 0 1919 3569 2 MP stroke\n32 0 1919 3573 2 MP stroke\n32 0 1905 3577 2 MP stroke\n32 0 1905 3582 2 MP stroke\n32 0 1905 3586 2 MP stroke\n54 0 1908 3590 2 MP stroke\n32 0 1892 3595 2 MP stroke\n14 0 1894 3599 2 MP stroke\n14 0 1894 3604 2 MP stroke\n32 0 1878 3608 2 MP stroke\n32 0 1878 3612 2 MP stroke\n32 0 1865 3617 2 MP stroke\n32 0 1865 3621 2 MP stroke\n32 0 1865 3625 2 MP stroke\n32 0 1865 3630 2 MP stroke\n32 0 1851 3634 2 MP stroke\n32 0 1851 3639 2 MP stroke\n13 0 1854 3643 2 MP stroke\n13 0 1854 3647 2 MP stroke\n32 0 1838 3652 2 MP stroke\n32 0 1838 3656 2 MP stroke\n33 0 1824 3660 2 MP stroke\n33 0 1824 3665 2 MP stroke\n14 0 1827 3669 2 MP stroke\n14 0 1827 3674 2 MP stroke\n32 0 1811 3678 2 MP stroke\n32 0 1811 3682 2 MP stroke\n32 0 1798 3687 2 MP stroke\n32 0 1798 3691 2 MP stroke\n32 0 1798 3695 2 MP stroke\n32 0 1798 3700 2 MP stroke\n32 0 1784 3704 2 MP stroke\n32 0 1784 3709 2 MP stroke\n32 0 1784 3713 2 MP stroke\n32 0 1784 3717 2 MP stroke\n14 0 1773 3722 2 MP stroke\n14 0 1773 3726 2 MP stroke\n14 0 1773 3730 2 MP stroke\n14 0 1773 3735 2 MP stroke\n32 0 1744 3739 2 MP stroke\n32 0 1744 3744 2 MP stroke\n32 0 1744 3748 2 MP stroke\n32 0 1744 3752 2 MP stroke\n32 0 1730 3757 2 MP stroke\n32 0 1730 3761 2 MP stroke\n32 0 1730 3765 2 MP stroke\n32 0 1730 3770 2 MP stroke\n32 0 1717 3774 2 MP stroke\n32 0 1717 3779 2 MP stroke\n32 0 1717 3783 2 MP stroke\n32 0 1717 3787 2 MP stroke\n32 0 1703 3792 2 MP stroke\n32 0 1703 3796 2 MP stroke\n32 0 1703 3800 2 MP stroke\n32 0 1703 3805 2 MP stroke\n32 0 1690 3809 2 MP stroke\n32 0 1690 3814 2 MP stroke\n32 0 1690 3818 2 MP stroke\n32 0 1690 3822 2 MP stroke\n33 0 1676 3827 2 MP stroke\n33 0 1676 3831 2 MP stroke\n33 0 1676 3835 2 MP stroke\n33 0 1676 3840 2 MP stroke\n32 0 1663 3844 2 MP stroke\n32 0 1663 3849 2 MP stroke\n13 0 1666 3853 2 MP stroke\n13 0 1666 3857 2 MP stroke\n33 0 1649 3862 2 MP stroke\n33 0 1649 3866 2 MP stroke\n32 0 1636 3870 2 MP stroke\n32 0 1636 3875 2 MP stroke\n32 0 1636 3879 2 MP stroke\n32 0 1636 3884 2 MP stroke\n32 0 1623 3888 2 MP stroke\n32 0 1623 3892 2 MP stroke\n14 0 1625 3897 2 MP stroke\n14 0 1625 3901 2 MP stroke\n32 0 1609 3905 2 MP stroke\n32 0 1609 3910 2 MP stroke\n32 0 1596 3914 2 MP stroke\n32 0 1596 3919 2 MP stroke\n32 0 1582 3923 2 MP stroke\n32 0 1582 3927 2 MP stroke\n27 0 1585 3932 2 MP stroke\n32 0 1569 3936 2 MP stroke\n32 0 1569 3941 2 MP stroke\n41 0 1571 3945 2 MP stroke\n32 0 1555 3949 2 MP stroke\n32 0 1555 3954 2 MP stroke\n32 0 1555 3958 2 MP stroke\n32 0 1542 3962 2 MP stroke\n32 0 1542 3967 2 MP stroke\n14 0 1544 3971 2 MP stroke\n14 0 1544 3976 2 MP stroke\n33 0 1528 3980 2 MP stroke\n33 0 1528 3984 2 MP stroke\n32 0 1515 3989 2 MP stroke\n32 0 1515 3993 2 MP stroke\n32 0 1515 3997 2 MP stroke\n27 0 1504 4002 2 MP stroke\n14 0 1504 4006 2 MP stroke\n14 0 1504 4011 2 MP stroke\n14 0 1504 4015 2 MP stroke\n32 0 1475 4019 2 MP stroke\n14 0 1477 4024 2 MP stroke\n14 0 1477 4028 2 MP stroke\n14 0 1477 4032 2 MP stroke\n32 0 1461 4037 2 MP stroke\n807 0 1464 4041 2 MP stroke\n32 0 1448 4046 2 MP stroke\n32 0 1448 4050 2 MP stroke\n32 0 1448 4054 2 MP stroke\n32 0 1448 4059 2 MP stroke\n32 0 1434 4063 2 MP stroke\n32 0 1434 4067 2 MP stroke\n32 0 1434 4072 2 MP stroke\n32 0 1434 4076 2 MP stroke\n32 0 1421 4081 2 MP stroke\n32 0 1421 4085 2 MP stroke\n32 0 1421 4089 2 MP stroke\n32 0 1421 4094 2 MP stroke\n27 0 1423 4098 2 MP stroke\n32 0 1407 4102 2 MP stroke\n32 0 1407 4107 2 MP stroke\n13 0 1410 4111 2 MP stroke\n32 0 1394 4116 2 MP stroke\n27 0 1396 4120 2 MP stroke\n14 0 1396 4124 2 MP stroke\n32 0 1380 4129 2 MP stroke\n13 0 1383 4133 2 MP stroke\n27 0 1356 4137 2 MP stroke\n27 0 1356 4142 2 MP stroke\n14 0 1356 4146 2 MP stroke\n40 0 1343 4151 2 MP stroke\n32 0 1327 4155 2 MP stroke\n32 0 1327 4159 2 MP stroke\n32 0 1327 4164 2 MP stroke\n81 0 1329 4168 2 MP stroke\n32 0 1313 4172 2 MP stroke\n32 0 1313 4177 2 MP stroke\n32 0 1313 4181 2 MP stroke\n13 0 1316 4186 2 MP stroke\n32 0 1300 4190 2 MP stroke\n32 0 1300 4194 2 MP stroke\n32 0 1300 4199 2 MP stroke\n14 0 1302 4203 2 MP stroke\n32 0 1286 4207 2 MP stroke\n13 0 1289 4212 2 MP stroke\n32 0 1273 4216 2 MP stroke\n32 0 1273 4221 2 MP stroke\n27 0 1275 4225 2 MP stroke\n27 0 1275 4229 2 MP stroke\n32 0 1259 4234 2 MP stroke\n32 0 1259 4238 2 MP stroke\n32 0 1259 4242 2 MP stroke\n32 0 1246 4247 2 MP stroke\n32 0 1246 4251 2 MP stroke\n32 0 1246 4256 2 MP stroke\n14 0 1248 4260 2 MP stroke\n32 0 1232 4264 2 MP stroke\n32 0 1232 4269 2 MP stroke\n32 0 1232 4273 2 MP stroke\n32 0 1219 4278 2 MP stroke\n32 0 1219 4282 2 MP stroke\n32 0 1219 4286 2 MP stroke\n41 0 1221 4291 2 MP stroke\n14 0 1221 4295 2 MP stroke\n33 0 1205 4299 2 MP stroke\n33 0 1205 4304 2 MP stroke\n33 0 1205 4308 2 MP stroke\n32 0 1192 4313 2 MP stroke\n32 0 1192 4317 2 MP stroke\n32 0 1192 4321 2 MP stroke\n32 0 1192 4326 2 MP stroke\n32 0 1192 4330 2 MP stroke\n33 0 1178 4334 2 MP stroke\n33 0 1178 4339 2 MP stroke\n33 0 1178 4343 2 MP stroke\n33 0 1178 4348 2 MP stroke\n33 0 1178 4352 2 MP stroke\n32 0 1165 4356 2 MP stroke\n32 0 1165 4361 2 MP stroke\n32 0 1165 4365 2 MP stroke\n13 0 1168 4369 2 MP stroke\n32 0 1152 4374 2 MP stroke\n32 0 1152 4378 2 MP stroke\n32 0 1152 4383 2 MP stroke\n32 0 1138 4387 2 MP stroke\n32 0 1138 4391 2 MP stroke\n32 0 1138 4396 2 MP stroke\n14 0 1127 4400 2 MP stroke\n14 0 1127 4404 2 MP stroke\n40 0 1114 4409 2 MP stroke\n27 0 1114 4413 2 MP stroke\n32 0 1098 4418 2 MP stroke\n95 0 1100 4422 2 MP stroke\n14 0 1100 4426 2 MP stroke\n32 0 1084 4431 2 MP stroke\n32 0 1084 4435 2 MP stroke\n32 0 1071 4439 2 MP stroke\n32 0 1071 4444 2 MP stroke\n32 0 1071 4448 2 MP stroke\n32 0 1071 4453 2 MP stroke\n14 0 1073 4457 2 MP stroke\n33 0 1057 4461 2 MP stroke\n13 0 1060 4466 2 MP stroke\n13 0 1060 4470 2 MP stroke\n32 0 1044 4474 2 MP stroke\n14 0 1033 4479 2 MP stroke\n14 0 1033 4483 2 MP stroke\n14 0 1033 4488 2 MP stroke\n40 0 1020 4492 2 MP stroke\n32 0 1004 4496 2 MP stroke\n32 0 1004 4501 2 MP stroke\n32 0 990 4505 2 MP stroke\n32 0 990 4509 2 MP stroke\n32 0 990 4514 2 MP stroke\n13 0 993 4518 2 MP stroke\n32 0 977 4523 2 MP stroke\n32 0 977 4527 2 MP stroke\n94 0 979 4531 2 MP stroke\n32 0 963 4536 2 MP stroke\n54 0 966 4540 2 MP stroke\n13 0 966 4544 2 MP stroke\n13 0 966 4549 2 MP stroke\n32 0 936 4553 2 MP stroke\n32 0 936 4558 2 MP stroke\n32 0 936 4562 2 MP stroke\n32 0 936 4566 2 MP stroke\n32 0 923 4571 2 MP stroke\n32 0 923 4575 2 MP stroke\n41 0 925 4579 2 MP stroke\n32 0 909 4584 2 MP stroke\n32 0 909 4588 2 MP stroke\n13 0 912 4593 2 MP stroke\n29 0 899 4597 2 MP stroke\n29 0 899 4601 2 MP stroke\n16 0 899 4606 2 MP stroke\n16 0 899 4610 2 MP stroke\ngr\n\n1100 2711 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2716 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2870 2711 mt \n( = 2, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3200 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3381 2711 mt \n( = 400, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3844 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4025 2711 mt \n( = 1, T = 15000, S = 100 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-25-350-25-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-25-350-25-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:34:52\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   543   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   543   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5441  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1723 2158 mt 1723  403 L\n1723  403 mt 1723  403 L\n2547 2158 mt 2547  403 L\n2547  403 mt 2547  403 L\n3371 2158 mt 3371  403 L\n3371  403 mt 3371  403 L\n4195 2158 mt 4195  403 L\n4195  403 mt 4195  403 L\n5019 2158 mt 5019  403 L\n5019  403 mt 5019  403 L\n5843 2158 mt 5843  403 L\n5843  403 mt 5843  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1723 2158 mt 1723 2104 L\n1690 2303 mt \n(2) s\n2547 2158 mt 2547 2104 L\n2514 2303 mt \n(4) s\n3371 2158 mt 3371 2104 L\n3338 2303 mt \n(6) s\n4195 2158 mt 4195 2104 L\n4162 2303 mt \n(8) s\n5019 2158 mt 5019 2104 L\n4953 2303 mt \n(10) s\n5843 2158 mt 5843 2104 L\n5777 2303 mt \n(12) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n 961  254 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3209  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3363  254 mt \n( = 25, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3759  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3940  254 mt \n( = 350, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4403  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4584  254 mt \n( = 25, T = 15000 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1723 4615 mt 1723 2860 L\n1723 2860 mt 1723 2860 L\n2547 4615 mt 2547 2860 L\n2547 2860 mt 2547 2860 L\n3371 4615 mt 3371 2860 L\n3371 2860 mt 3371 2860 L\n4195 4615 mt 4195 2860 L\n4195 2860 mt 4195 2860 L\n5019 4615 mt 5019 2860 L\n5019 2860 mt 5019 2860 L\n5843 4615 mt 5843 2860 L\n5843 2860 mt 5843 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1723 4615 mt 1723 4561 L\n1690 4760 mt \n(2) s\n2547 4615 mt 2547 4561 L\n2514 4760 mt \n(4) s\n3371 4615 mt 3371 4561 L\n3338 4760 mt \n(6) s\n4195 4615 mt 4195 4561 L\n4162 4760 mt \n(8) s\n5019 4615 mt 5019 4561 L\n4953 4760 mt \n(10) s\n5843 4615 mt 5843 4561 L\n5777 4760 mt \n(12) s\ngs 899 2860 5357 1756 MR c np\n33 0 3766 2963 2 MP stroke\n33 0 3354 3066 2 MP stroke\n412 0 2547 3169 2 MP stroke\n33 0 2530 3272 2 MP stroke\n33 0 2530 3376 2 MP stroke\n33 0 2118 3479 2 MP stroke\n33 0 1706 3582 2 MP stroke\n824 0 1311 3685 2 MP stroke\n824 0 1311 3789 2 MP stroke\n824 0 1311 3892 2 MP stroke\n33 0 1294 3995 2 MP stroke\n5356 0 899 4098 2 MP stroke\n16 0 899 4202 2 MP stroke\n16 0 899 4305 2 MP stroke\n16 0 899 4408 2 MP stroke\n16 0 899 4511 2 MP stroke\ngr\n\n 961 2711 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3209 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3363 2711 mt \n( = 25, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3759 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3940 2711 mt \n( = 350, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4403 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4584 2711 mt \n( = 25, T = 15000 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-300-350-25-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-300-350-25-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:31:02\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   546   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   546   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5473  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1434 2158 mt 1434  403 L\n1434  403 mt 1434  403 L\n1970 2158 mt 1970  403 L\n1970  403 mt 1970  403 L\n2505 2158 mt 2505  403 L\n2505  403 mt 2505  403 L\n3041 2158 mt 3041  403 L\n3041  403 mt 3041  403 L\n3577 2158 mt 3577  403 L\n3577  403 mt 3577  403 L\n4112 2158 mt 4112  403 L\n4112  403 mt 4112  403 L\n4648 2158 mt 4648  403 L\n4648  403 mt 4648  403 L\n5183 2158 mt 5183  403 L\n5183  403 mt 5183  403 L\n5719 2158 mt 5719  403 L\n5719  403 mt 5719  403 L\n6255 2158 mt 6255  403 L\n6255  403 mt 6255  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1434 2158 mt 1434 2104 L\n1351 2303 mt \n(0.2) s\n1970 2158 mt 1970 2104 L\n1887 2303 mt \n(0.4) s\n2505 2158 mt 2505 2104 L\n2422 2303 mt \n(0.6) s\n3041 2158 mt 3041 2104 L\n2958 2303 mt \n(0.8) s\n3577 2158 mt 3577 2104 L\n3544 2303 mt \n(1) s\n4112 2158 mt 4112 2104 L\n4029 2303 mt \n(1.2) s\n4648 2158 mt 4648 2104 L\n4565 2303 mt \n(1.4) s\n5183 2158 mt 5183 2104 L\n5100 2303 mt \n(1.6) s\n5719 2158 mt 5719 2104 L\n5636 2303 mt \n(1.8) s\n6255 2158 mt 6255 2104 L\n6222 2303 mt \n(2) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n 928  254 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3176  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3330  254 mt \n( = 300, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3793  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3974  254 mt \n( = 350, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4437  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4618  254 mt \n( = 25, T = 15000 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1434 4615 mt 1434 2860 L\n1434 2860 mt 1434 2860 L\n1970 4615 mt 1970 2860 L\n1970 2860 mt 1970 2860 L\n2505 4615 mt 2505 2860 L\n2505 2860 mt 2505 2860 L\n3041 4615 mt 3041 2860 L\n3041 2860 mt 3041 2860 L\n3577 4615 mt 3577 2860 L\n3577 2860 mt 3577 2860 L\n4112 4615 mt 4112 2860 L\n4112 2860 mt 4112 2860 L\n4648 4615 mt 4648 2860 L\n4648 2860 mt 4648 2860 L\n5183 4615 mt 5183 2860 L\n5183 2860 mt 5183 2860 L\n5719 4615 mt 5719 2860 L\n5719 2860 mt 5719 2860 L\n6255 4615 mt 6255 2860 L\n6255 2860 mt 6255 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1434 4615 mt 1434 4561 L\n1351 4760 mt \n(0.2) s\n1970 4615 mt 1970 4561 L\n1887 4760 mt \n(0.4) s\n2505 4615 mt 2505 4561 L\n2422 4760 mt \n(0.6) s\n3041 4615 mt 3041 4561 L\n2958 4760 mt \n(0.8) s\n3577 4615 mt 3577 4561 L\n3544 4760 mt \n(1) s\n4112 4615 mt 4112 4561 L\n4029 4760 mt \n(1.2) s\n4648 4615 mt 4648 4561 L\n4565 4760 mt \n(1.4) s\n5183 4615 mt 5183 4561 L\n5100 4760 mt \n(1.6) s\n5719 4615 mt 5719 4561 L\n5636 4760 mt \n(1.8) s\n6255 4615 mt 6255 4561 L\n6222 4760 mt \n(2) s\ngs 899 2860 5357 1756 MR c np\n5356 0 899 3737 2 MP stroke\ngr\n\n 928 2711 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3176 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3330 2711 mt \n( = 300, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3793 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3974 2711 mt \n( = 350, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4437 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4618 2711 mt \n( = 25, T = 15000 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-400-800-25-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-400-800-25-15000-1.100.eps\n%%CreationDate: 07/23/2011  16:16:26\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   548   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   548   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5507  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1568 2158 mt 1568  403 L\n1568  403 mt 1568  403 L\n2238 2158 mt 2238  403 L\n2238  403 mt 2238  403 L\n2907 2158 mt 2907  403 L\n2907  403 mt 2907  403 L\n3577 2158 mt 3577  403 L\n3577  403 mt 3577  403 L\n4246 2158 mt 4246  403 L\n4246  403 mt 4246  403 L\n4916 2158 mt 4916  403 L\n4916  403 mt 4916  403 L\n5585 2158 mt 5585  403 L\n5585  403 mt 5585  403 L\n6255 2158 mt 6255  403 L\n6255  403 mt 6255  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1568 2158 mt 1568 2104 L\n1535 2303 mt \n(2) s\n2238 2158 mt 2238 2104 L\n2205 2303 mt \n(4) s\n2907 2158 mt 2907 2104 L\n2874 2303 mt \n(6) s\n3577 2158 mt 3577 2104 L\n3544 2303 mt \n(8) s\n4246 2158 mt 4246 2104 L\n4180 2303 mt \n(10) s\n4916 2158 mt 4916 2104 L\n4850 2303 mt \n(12) s\n5585 2158 mt 5585 2104 L\n5519 2303 mt \n(14) s\n6255 2158 mt 6255 2104 L\n6189 2303 mt \n(16) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1001  254 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2617  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2771  254 mt \n( = 400, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3234  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3415  254 mt \n( = 800, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3878  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4059  254 mt \n( = 25, T = 15000, S = 100 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1568 4615 mt 1568 2860 L\n1568 2860 mt 1568 2860 L\n2238 4615 mt 2238 2860 L\n2238 2860 mt 2238 2860 L\n2907 4615 mt 2907 2860 L\n2907 2860 mt 2907 2860 L\n3577 4615 mt 3577 2860 L\n3577 2860 mt 3577 2860 L\n4246 4615 mt 4246 2860 L\n4246 2860 mt 4246 2860 L\n4916 4615 mt 4916 2860 L\n4916 2860 mt 4916 2860 L\n5585 4615 mt 5585 2860 L\n5585 2860 mt 5585 2860 L\n6255 4615 mt 6255 2860 L\n6255 2860 mt 6255 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1568 4615 mt 1568 4561 L\n1535 4760 mt \n(2) s\n2238 4615 mt 2238 4561 L\n2205 4760 mt \n(4) s\n2907 4615 mt 2907 4561 L\n2874 4760 mt \n(6) s\n3577 4615 mt 3577 4561 L\n3544 4760 mt \n(8) s\n4246 4615 mt 4246 4561 L\n4180 4760 mt \n(10) s\n4916 4615 mt 4916 4561 L\n4850 4760 mt \n(12) s\n5585 4615 mt 5585 4561 L\n5519 4760 mt \n(14) s\n6255 4615 mt 6255 4561 L\n6189 4760 mt \n(16) s\ngs 899 2860 5357 1756 MR c np\n5356 0 899 3737 2 MP stroke\ngr\n\n1001 2711 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2617 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2771 2711 mt \n( = 400, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3234 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3415 2711 mt \n( = 800, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3878 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4059 2711 mt \n( = 25, T = 15000, S = 100 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-5-100-5-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-5-100-5-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:40:40\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   543   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   543   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5441  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1462 2158 mt 1462  403 L\n1462  403 mt 1462  403 L\n2026 2158 mt 2026  403 L\n2026  403 mt 2026  403 L\n2590 2158 mt 2590  403 L\n2590  403 mt 2590  403 L\n3154 2158 mt 3154  403 L\n3154  403 mt 3154  403 L\n3717 2158 mt 3717  403 L\n3717  403 mt 3717  403 L\n4281 2158 mt 4281  403 L\n4281  403 mt 4281  403 L\n4845 2158 mt 4845  403 L\n4845  403 mt 4845  403 L\n5409 2158 mt 5409  403 L\n5409  403 mt 5409  403 L\n5973 2158 mt 5973  403 L\n5973  403 mt 5973  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1462 2158 mt 1462 2104 L\n1429 2303 mt \n(2) s\n2026 2158 mt 2026 2104 L\n1993 2303 mt \n(4) s\n2590 2158 mt 2590 2104 L\n2557 2303 mt \n(6) s\n3154 2158 mt 3154 2104 L\n3121 2303 mt \n(8) s\n3717 2158 mt 3717 2104 L\n3651 2303 mt \n(10) s\n4281 2158 mt 4281 2104 L\n4215 2303 mt \n(12) s\n4845 2158 mt 4845 2104 L\n4779 2303 mt \n(14) s\n5409 2158 mt 5409 2104 L\n5343 2303 mt \n(16) s\n5973 2158 mt 5973 2104 L\n5907 2303 mt \n(18) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1027  254 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3275  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3429  254 mt \n( = 5, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3759  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3940  254 mt \n( = 100, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4403  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4584  254 mt \n( = 5, T = 15000 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1462 4615 mt 1462 2860 L\n1462 2860 mt 1462 2860 L\n2026 4615 mt 2026 2860 L\n2026 2860 mt 2026 2860 L\n2590 4615 mt 2590 2860 L\n2590 2860 mt 2590 2860 L\n3154 4615 mt 3154 2860 L\n3154 2860 mt 3154 2860 L\n3717 4615 mt 3717 2860 L\n3717 2860 mt 3717 2860 L\n4281 4615 mt 4281 2860 L\n4281 2860 mt 4281 2860 L\n4845 4615 mt 4845 2860 L\n4845 2860 mt 4845 2860 L\n5409 4615 mt 5409 2860 L\n5409 2860 mt 5409 2860 L\n5973 4615 mt 5973 2860 L\n5973 2860 mt 5973 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1462 4615 mt 1462 4561 L\n1429 4760 mt \n(2) s\n2026 4615 mt 2026 4561 L\n1993 4760 mt \n(4) s\n2590 4615 mt 2590 4561 L\n2557 4760 mt \n(6) s\n3154 4615 mt 3154 4561 L\n3121 4760 mt \n(8) s\n3717 4615 mt 3717 4561 L\n3651 4760 mt \n(10) s\n4281 4615 mt 4281 4561 L\n4215 4760 mt \n(12) s\n4845 4615 mt 4845 4561 L\n4779 4760 mt \n(14) s\n5409 4615 mt 5409 4561 L\n5343 4760 mt \n(16) s\n5973 4615 mt 5973 4561 L\n5907 4760 mt \n(18) s\ngs 899 2860 5357 1756 MR c np\n18 0 6238 2888 2 MP stroke\n18 0 6238 2917 2 MP stroke\n282 0 5973 2946 2 MP stroke\n32 0 5957 2975 2 MP stroke\n564 0 5691 3003 2 MP stroke\n32 0 5675 3032 2 MP stroke\n32 0 5393 3061 2 MP stroke\n32 0 5393 3090 2 MP stroke\n32 0 5393 3118 2 MP stroke\n32 0 5111 3147 2 MP stroke\n32 0 5111 3176 2 MP stroke\n32 0 5111 3205 2 MP stroke\n32 0 4829 3234 2 MP stroke\n32 0 4829 3262 2 MP stroke\n846 0 4563 3291 2 MP stroke\n282 0 4563 3320 2 MP stroke\n32 0 4265 3349 2 MP stroke\n32 0 4265 3377 2 MP stroke\n564 0 3999 3406 2 MP stroke\n564 0 3999 3435 2 MP stroke\n282 0 3717 3464 2 MP stroke\n282 0 3717 3492 2 MP stroke\n33 0 3701 3521 2 MP stroke\n33 0 3701 3550 2 MP stroke\n282 0 3154 3579 2 MP stroke\n282 0 3154 3608 2 MP stroke\n282 0 3154 3636 2 MP stroke\n282 0 3154 3665 2 MP stroke\n32 0 2856 3694 2 MP stroke\n32 0 2856 3723 2 MP stroke\n32 0 2856 3751 2 MP stroke\n32 0 2856 3780 2 MP stroke\n32 0 2574 3809 2 MP stroke\n32 0 2574 3838 2 MP stroke\n32 0 2574 3866 2 MP stroke\n32 0 2574 3895 2 MP stroke\n32 0 2292 3924 2 MP stroke\n32 0 2292 3953 2 MP stroke\n32 0 2292 3982 2 MP stroke\n32 0 2292 4010 2 MP stroke\n32 0 2010 4039 2 MP stroke\n32 0 2010 4068 2 MP stroke\n32 0 2010 4097 2 MP stroke\n32 0 2010 4125 2 MP stroke\n4511 0 1744 4154 2 MP stroke\n32 0 1728 4183 2 MP stroke\n32 0 1728 4212 2 MP stroke\n32 0 1728 4240 2 MP stroke\n282 0 1462 4269 2 MP stroke\n32 0 1446 4298 2 MP stroke\n32 0 1446 4327 2 MP stroke\n32 0 1446 4356 2 MP stroke\n282 0 1180 4384 2 MP stroke\n32 0 1164 4413 2 MP stroke\n32 0 1164 4442 2 MP stroke\n32 0 1164 4471 2 MP stroke\n281 0 899 4499 2 MP stroke\n281 0 899 4528 2 MP stroke\n16 0 899 4557 2 MP stroke\n16 0 899 4586 2 MP stroke\ngr\n\n1027 2711 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3275 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3429 2711 mt \n( = 5, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3759 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3940 2711 mt \n( = 100, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4403 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4584 2711 mt \n( = 5, T = 15000 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-5-25-1-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-5-25-1-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:43:18\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   548   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   548   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5507  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1434 2158 mt 1434  403 L\n1434  403 mt 1434  403 L\n1970 2158 mt 1970  403 L\n1970  403 mt 1970  403 L\n2505 2158 mt 2505  403 L\n2505  403 mt 2505  403 L\n3041 2158 mt 3041  403 L\n3041  403 mt 3041  403 L\n3577 2158 mt 3577  403 L\n3577  403 mt 3577  403 L\n4112 2158 mt 4112  403 L\n4112  403 mt 4112  403 L\n4648 2158 mt 4648  403 L\n4648  403 mt 4648  403 L\n5183 2158 mt 5183  403 L\n5183  403 mt 5183  403 L\n5719 2158 mt 5719  403 L\n5719  403 mt 5719  403 L\n6255 2158 mt 6255  403 L\n6255  403 mt 6255  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1434 2158 mt 1434 2104 L\n1401 2303 mt \n(2) s\n1970 2158 mt 1970 2104 L\n1937 2303 mt \n(4) s\n2505 2158 mt 2505 2104 L\n2472 2303 mt \n(6) s\n3041 2158 mt 3041 2104 L\n3008 2303 mt \n(8) s\n3577 2158 mt 3577 2104 L\n3511 2303 mt \n(10) s\n4112 2158 mt 4112 2104 L\n4046 2303 mt \n(12) s\n4648 2158 mt 4648 2104 L\n4582 2303 mt \n(14) s\n5183 2158 mt 5183 2104 L\n5117 2303 mt \n(16) s\n5719 2158 mt 5719 2104 L\n5653 2303 mt \n(18) s\n6255 2158 mt 6255 2104 L\n6189 2303 mt \n(20) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1060  254 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3308  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3462  254 mt \n( = 5, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3792  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3973  254 mt \n( = 25, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4369  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4550  254 mt \n( = 1, T = 15000 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1434 4615 mt 1434 2860 L\n1434 2860 mt 1434 2860 L\n1970 4615 mt 1970 2860 L\n1970 2860 mt 1970 2860 L\n2505 4615 mt 2505 2860 L\n2505 2860 mt 2505 2860 L\n3041 4615 mt 3041 2860 L\n3041 2860 mt 3041 2860 L\n3577 4615 mt 3577 2860 L\n3577 2860 mt 3577 2860 L\n4112 4615 mt 4112 2860 L\n4112 2860 mt 4112 2860 L\n4648 4615 mt 4648 2860 L\n4648 2860 mt 4648 2860 L\n5183 4615 mt 5183 2860 L\n5183 2860 mt 5183 2860 L\n5719 4615 mt 5719 2860 L\n5719 2860 mt 5719 2860 L\n6255 4615 mt 6255 2860 L\n6255 2860 mt 6255 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1434 4615 mt 1434 4561 L\n1401 4760 mt \n(2) s\n1970 4615 mt 1970 4561 L\n1937 4760 mt \n(4) s\n2505 4615 mt 2505 4561 L\n2472 4760 mt \n(6) s\n3041 4615 mt 3041 4561 L\n3008 4760 mt \n(8) s\n3577 4615 mt 3577 4561 L\n3511 4760 mt \n(10) s\n4112 4615 mt 4112 4561 L\n4046 4760 mt \n(12) s\n4648 4615 mt 4648 4561 L\n4582 4760 mt \n(14) s\n5183 4615 mt 5183 4561 L\n5117 4760 mt \n(16) s\n5719 4615 mt 5719 4561 L\n5653 4760 mt \n(18) s\n6255 4615 mt 6255 4561 L\n6189 4760 mt \n(20) s\ngs 899 2860 5357 1756 MR c np\n18 0 6238 2882 2 MP stroke\n268 0 5987 2905 2 MP stroke\n268 0 5987 2927 2 MP stroke\n268 0 5987 2950 2 MP stroke\n536 0 5719 2972 2 MP stroke\n268 0 5719 2995 2 MP stroke\n32 0 5703 3017 2 MP stroke\n32 0 5703 3040 2 MP stroke\n32 0 5703 3062 2 MP stroke\n32 0 5435 3085 2 MP stroke\n32 0 5435 3107 2 MP stroke\n32 0 5435 3130 2 MP stroke\n32 0 5435 3152 2 MP stroke\n32 0 5167 3175 2 MP stroke\n32 0 5167 3197 2 MP stroke\n32 0 5167 3220 2 MP stroke\n32 0 5167 3242 2 MP stroke\n33 0 4899 3265 2 MP stroke\n33 0 4899 3287 2 MP stroke\n33 0 4899 3310 2 MP stroke\n32 0 4632 3332 2 MP stroke\n32 0 4632 3355 2 MP stroke\n32 0 4632 3377 2 MP stroke\n536 0 4380 3400 2 MP stroke\n32 0 4364 3422 2 MP stroke\n32 0 4364 3445 2 MP stroke\n32 0 4364 3467 2 MP stroke\n1339 0 4112 3490 2 MP stroke\n32 0 4096 3512 2 MP stroke\n32 0 4096 3535 2 MP stroke\n32 0 4096 3557 2 MP stroke\n32 0 4096 3580 2 MP stroke\n32 0 3828 3602 2 MP stroke\n32 0 3828 3625 2 MP stroke\n32 0 3828 3647 2 MP stroke\n32 0 3828 3670 2 MP stroke\n267 0 3577 3692 2 MP stroke\n33 0 3560 3715 2 MP stroke\n33 0 3560 3737 2 MP stroke\n33 0 3560 3760 2 MP stroke\n268 0 3309 3782 2 MP stroke\n32 0 3293 3805 2 MP stroke\n32 0 3293 3827 2 MP stroke\n268 0 3041 3850 2 MP stroke\n268 0 3041 3872 2 MP stroke\n32 0 3025 3895 2 MP stroke\n32 0 3025 3917 2 MP stroke\n268 0 2773 3940 2 MP stroke\n32 0 2757 3962 2 MP stroke\n32 0 2757 3985 2 MP stroke\n32 0 2757 4007 2 MP stroke\n268 0 2505 4030 2 MP stroke\n32 0 2489 4052 2 MP stroke\n32 0 2489 4075 2 MP stroke\n32 0 2489 4097 2 MP stroke\n33 0 2221 4120 2 MP stroke\n33 0 2221 4142 2 MP stroke\n33 0 2221 4165 2 MP stroke\n33 0 2221 4187 2 MP stroke\n268 0 1970 4210 2 MP stroke\n32 0 1954 4232 2 MP stroke\n32 0 1954 4255 2 MP stroke\n32 0 1954 4277 2 MP stroke\n268 0 1702 4300 2 MP stroke\n32 0 1686 4322 2 MP stroke\n32 0 1686 4345 2 MP stroke\n32 0 1686 4367 2 MP stroke\n32 0 1418 4390 2 MP stroke\n32 0 1418 4412 2 MP stroke\n32 0 1418 4435 2 MP stroke\n32 0 1418 4457 2 MP stroke\n268 0 1166 4480 2 MP stroke\n32 0 1150 4502 2 MP stroke\n803 0 899 4525 2 MP stroke\n267 0 899 4547 2 MP stroke\n267 0 899 4570 2 MP stroke\n16 0 899 4592 2 MP stroke\ngr\n\n1060 2711 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3308 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3462 2711 mt \n( = 5, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3792 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3973 2711 mt \n( = 25, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4369 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4550 2711 mt \n( = 1, T = 15000 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-5-400-5-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-5-400-5-15000-1.100.eps\n%%CreationDate: 07/23/2011  15:14:09\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   543   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   543   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5441  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1576 2158 mt 1576  403 L\n1576  403 mt 1576  403 L\n2254 2158 mt 2254  403 L\n2254  403 mt 2254  403 L\n2932 2158 mt 2932  403 L\n2932  403 mt 2932  403 L\n3610 2158 mt 3610  403 L\n3610  403 mt 3610  403 L\n4288 2158 mt 4288  403 L\n4288  403 mt 4288  403 L\n4966 2158 mt 4966  403 L\n4966  403 mt 4966  403 L\n5644 2158 mt 5644  403 L\n5644  403 mt 5644  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1576 2158 mt 1576 2104 L\n1510 2303 mt \n(10) s\n2254 2158 mt 2254 2104 L\n2188 2303 mt \n(20) s\n2932 2158 mt 2932 2104 L\n2866 2303 mt \n(30) s\n3610 2158 mt 3610 2104 L\n3544 2303 mt \n(40) s\n4288 2158 mt 4288 2104 L\n4222 2303 mt \n(50) s\n4966 2158 mt 4966 2104 L\n4900 2303 mt \n(60) s\n5644 2158 mt 5644 2104 L\n5578 2303 mt \n(70) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1100  254 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2716  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2870  254 mt \n( = 5, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3200  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3381  254 mt \n( = 400, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3844  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4025  254 mt \n( = 5, T = 15000, S = 100 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1576 4615 mt 1576 2860 L\n1576 2860 mt 1576 2860 L\n2254 4615 mt 2254 2860 L\n2254 2860 mt 2254 2860 L\n2932 4615 mt 2932 2860 L\n2932 2860 mt 2932 2860 L\n3610 4615 mt 3610 2860 L\n3610 2860 mt 3610 2860 L\n4288 4615 mt 4288 2860 L\n4288 2860 mt 4288 2860 L\n4966 4615 mt 4966 2860 L\n4966 2860 mt 4966 2860 L\n5644 4615 mt 5644 2860 L\n5644 2860 mt 5644 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1576 4615 mt 1576 4561 L\n1510 4760 mt \n(10) s\n2254 4615 mt 2254 4561 L\n2188 4760 mt \n(20) s\n2932 4615 mt 2932 4561 L\n2866 4760 mt \n(30) s\n3610 4615 mt 3610 4561 L\n3544 4760 mt \n(40) s\n4288 4615 mt 4288 4561 L\n4222 4760 mt \n(50) s\n4966 4615 mt 4966 4561 L\n4900 4760 mt \n(60) s\n5644 4615 mt 5644 4561 L\n5578 4760 mt \n(70) s\ngs 899 2860 5357 1756 MR c np\n32 0 4476 2881 2 MP stroke\n32 0 4408 2903 2 MP stroke\n32 0 3391 2925 2 MP stroke\n32 0 3255 2947 2 MP stroke\n32 0 3052 2969 2 MP stroke\n32 0 2984 2991 2 MP stroke\n32 0 2713 3013 2 MP stroke\n32 0 2713 3035 2 MP stroke\n32 0 2645 3057 2 MP stroke\n33 0 2577 3079 2 MP stroke\n68 0 2458 3101 2 MP stroke\n32 0 2374 3123 2 MP stroke\n32 0 2374 3145 2 MP stroke\n68 0 2322 3167 2 MP stroke\n32 0 2306 3189 2 MP stroke\n33 0 2238 3211 2 MP stroke\n33 0 2238 3232 2 MP stroke\n67 0 2187 3254 2 MP stroke\n32 0 2103 3276 2 MP stroke\n32 0 2103 3298 2 MP stroke\n136 0 2051 3320 2 MP stroke\n136 0 2051 3342 2 MP stroke\n32 0 1967 3364 2 MP stroke\n32 0 1967 3386 2 MP stroke\n136 0 1915 3408 2 MP stroke\n136 0 1915 3430 2 MP stroke\n33 0 1899 3452 2 MP stroke\n33 0 1899 3474 2 MP stroke\n32 0 1832 3496 2 MP stroke\n32 0 1832 3518 2 MP stroke\n32 0 1832 3540 2 MP stroke\n68 0 1780 3562 2 MP stroke\n32 0 1764 3583 2 MP stroke\n68 0 1712 3605 2 MP stroke\n68 0 1712 3627 2 MP stroke\n4611 0 1644 3649 2 MP stroke\n68 0 1644 3671 2 MP stroke\n32 0 1628 3693 2 MP stroke\n32 0 1628 3715 2 MP stroke\n33 0 1560 3737 2 MP stroke\n33 0 1560 3759 2 MP stroke\n203 0 1509 3781 2 MP stroke\n67 0 1509 3803 2 MP stroke\n67 0 1509 3825 2 MP stroke\n32 0 1493 3847 2 MP stroke\n68 0 1441 3869 2 MP stroke\n32 0 1425 3891 2 MP stroke\n32 0 1425 3913 2 MP stroke\n32 0 1425 3934 2 MP stroke\n32 0 1425 3956 2 MP stroke\n32 0 1357 3978 2 MP stroke\n32 0 1357 4000 2 MP stroke\n32 0 1357 4022 2 MP stroke\n32 0 1357 4044 2 MP stroke\n32 0 1289 4066 2 MP stroke\n32 0 1289 4088 2 MP stroke\n32 0 1289 4110 2 MP stroke\n32 0 1289 4132 2 MP stroke\n136 0 1237 4154 2 MP stroke\n33 0 1221 4176 2 MP stroke\n33 0 1221 4198 2 MP stroke\n33 0 1221 4220 2 MP stroke\n32 0 1154 4242 2 MP stroke\n32 0 1154 4264 2 MP stroke\n135 0 1102 4285 2 MP stroke\n68 0 1102 4307 2 MP stroke\n68 0 1102 4329 2 MP stroke\n32 0 1086 4351 2 MP stroke\n32 0 1018 4373 2 MP stroke\n32 0 1018 4395 2 MP stroke\n32 0 1018 4417 2 MP stroke\n136 0 966 4439 2 MP stroke\n68 0 966 4461 2 MP stroke\n32 0 950 4483 2 MP stroke\n32 0 950 4505 2 MP stroke\n32 0 950 4527 2 MP stroke\n67 0 899 4549 2 MP stroke\n16 0 899 4571 2 MP stroke\n16 0 899 4593 2 MP stroke\ngr\n\n1100 2711 mt \n(VR Bootstrap for n50000Dct: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n2716 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n2870 2711 mt \n( = 5, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3200 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3381 2711 mt \n( = 400, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3844 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4025 2711 mt \n( = 5, T = 15000, S = 100 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/n50000Dct-samples-5-50-5-15000-1.100.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./n50000Dct-samples-5-50-5-15000-1.100.eps\n%%CreationDate: 07/23/2011  12:37:17\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   546   606\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   546   606\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864    70  5473  4691 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1755 5356 0 0 -1755 899 2158 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 2158 5 MP stroke\n4 w\nDO\n0 sg\n 899 2158 mt  899  403 L\n 899  403 mt  899  403 L\n1494 2158 mt 1494  403 L\n1494  403 mt 1494  403 L\n2089 2158 mt 2089  403 L\n2089  403 mt 2089  403 L\n2684 2158 mt 2684  403 L\n2684  403 mt 2684  403 L\n3279 2158 mt 3279  403 L\n3279  403 mt 3279  403 L\n3874 2158 mt 3874  403 L\n3874  403 mt 3874  403 L\n4469 2158 mt 4469  403 L\n4469  403 mt 4469  403 L\n5064 2158 mt 5064  403 L\n5064  403 mt 5064  403 L\n5659 2158 mt 5659  403 L\n5659  403 mt 5659  403 L\n6255 2158 mt 6255  403 L\n6255  403 mt 6255  403 L\nSO\n6 w\n 899 2158 mt 6255 2158 L\n 899 2158 mt  899  403 L\n 899 2158 mt  899 2104 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 2303 mt \n(0) s\n1494 2158 mt 1494 2104 L\n1461 2303 mt \n(1) s\n2089 2158 mt 2089 2104 L\n2056 2303 mt \n(2) s\n2684 2158 mt 2684 2104 L\n2651 2303 mt \n(3) s\n3279 2158 mt 3279 2104 L\n3246 2303 mt \n(4) s\n3874 2158 mt 3874 2104 L\n3841 2303 mt \n(5) s\n4469 2158 mt 4469 2104 L\n4436 2303 mt \n(6) s\n5064 2158 mt 5064 2104 L\n5031 2303 mt \n(7) s\n5659 2158 mt 5659 2104 L\n5626 2303 mt \n(8) s\n6255 2158 mt 6255 2104 L\n6222 2303 mt \n(9) s\ngs 899 403 5357 1756 MR c np\n5356 0 899 1280 2 MP stroke\ngr\n\n1060  254 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3308  314 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3462  254 mt \n( = 5, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3792  314 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3973  254 mt \n( = 50, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4369  314 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4550  254 mt \n( = 5, T = 15000 \\(dimension 0\\)) s\n1 sg\n0 1755 5356 0 0 -1755 899 4615 4 MP\nPP\n-5356 0 0 1755 5356 0 0 -1755 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 2860 L\n 899 2860 mt  899 2860 L\n1494 4615 mt 1494 2860 L\n1494 2860 mt 1494 2860 L\n2089 4615 mt 2089 2860 L\n2089 2860 mt 2089 2860 L\n2684 4615 mt 2684 2860 L\n2684 2860 mt 2684 2860 L\n3279 4615 mt 3279 2860 L\n3279 2860 mt 3279 2860 L\n3874 4615 mt 3874 2860 L\n3874 2860 mt 3874 2860 L\n4469 4615 mt 4469 2860 L\n4469 2860 mt 4469 2860 L\n5064 4615 mt 5064 2860 L\n5064 2860 mt 5064 2860 L\n5659 4615 mt 5659 2860 L\n5659 2860 mt 5659 2860 L\n6255 4615 mt 6255 2860 L\n6255 2860 mt 6255 2860 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 2860 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1494 4615 mt 1494 4561 L\n1461 4760 mt \n(1) s\n2089 4615 mt 2089 4561 L\n2056 4760 mt \n(2) s\n2684 4615 mt 2684 4561 L\n2651 4760 mt \n(3) s\n3279 4615 mt 3279 4561 L\n3246 4760 mt \n(4) s\n3874 4615 mt 3874 4561 L\n3841 4760 mt \n(5) s\n4469 4615 mt 4469 4561 L\n4436 4760 mt \n(6) s\n5064 4615 mt 5064 4561 L\n5031 4760 mt \n(7) s\n5659 4615 mt 5659 4561 L\n5626 4760 mt \n(8) s\n6255 4615 mt 6255 4561 L\n6222 4760 mt \n(9) s\ngs 899 2860 5357 1756 MR c np\n18 0 6238 2911 2 MP stroke\n18 0 6238 2963 2 MP stroke\n596 0 5659 3014 2 MP stroke\n32 0 5643 3066 2 MP stroke\n32 0 5643 3118 2 MP stroke\n1191 0 5064 3169 2 MP stroke\n32 0 5048 3221 2 MP stroke\n32 0 5048 3272 2 MP stroke\n595 0 4469 3324 2 MP stroke\n32 0 4453 3376 2 MP stroke\n32 0 4453 3427 2 MP stroke\n32 0 4453 3479 2 MP stroke\n2381 0 3874 3531 2 MP stroke\n32 0 3858 3582 2 MP stroke\n32 0 3858 3634 2 MP stroke\n32 0 3858 3685 2 MP stroke\n32 0 3858 3737 2 MP stroke\n32 0 3263 3789 2 MP stroke\n32 0 3263 3840 2 MP stroke\n32 0 3263 3892 2 MP stroke\n32 0 3263 3943 2 MP stroke\n595 0 2684 3995 2 MP stroke\n32 0 2668 4047 2 MP stroke\n595 0 2089 4098 2 MP stroke\n595 0 2089 4150 2 MP stroke\n32 0 2073 4202 2 MP stroke\n32 0 2073 4253 2 MP stroke\n32 0 2073 4305 2 MP stroke\n32 0 1478 4356 2 MP stroke\n32 0 1478 4408 2 MP stroke\n1785 0 899 4460 2 MP stroke\n595 0 899 4511 2 MP stroke\n595 0 899 4563 2 MP stroke\ngr\n\n1060 2711 mt \n(Image Patch Data with Density Filtration: k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3308 2771 mt \n(min) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3462 2711 mt \n( = 5, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3792 2771 mt \n(max) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3973 2711 mt \n( = 50, k) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n4369 2771 mt \n(step) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n4550 2711 mt \n( = 5, T = 15000 \\(dimension 1\\)) s\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/outputs/nk300c30Dct_LW0.eps",
    "content": "%!PS-Adobe-2.0 EPSF-1.2\n%%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.\n%%Title: ./nk300c30Dct_LW0.eps\n%%CreationDate: 07/23/2011  11:24:31\n%%DocumentNeededFonts: Helvetica\n%%DocumentProcessColors: Cyan Magenta Yellow Black\n%%Pages: 1\n%%BoundingBox:    90   215   549   598\n%%EndComments\n\n%%BeginProlog\n% MathWorks dictionary\n/MathWorks 160 dict begin\n% definition operators\n/bdef {bind def} bind def\n/ldef {load def} bind def\n/xdef {exch def} bdef\n/xstore {exch store} bdef\n% operator abbreviations\n/c  /clip ldef\n/cc /concat ldef\n/cp /closepath ldef\n/gr /grestore ldef\n/gs /gsave ldef\n/mt /moveto ldef\n/np /newpath ldef\n/cm /currentmatrix ldef\n/sm /setmatrix ldef\n/rm /rmoveto ldef\n/rl /rlineto ldef\n/s {show newpath} bdef\n/sc {setcmykcolor} bdef\n/sr /setrgbcolor ldef\n/sg /setgray ldef\n/w /setlinewidth ldef\n/j /setlinejoin ldef\n/cap /setlinecap ldef\n/rc {rectclip} bdef\n/rf {rectfill} bdef\n% page state control\n/pgsv () def\n/bpage {/pgsv save def} bdef\n/epage {pgsv restore} bdef\n/bplot /gsave ldef\n/eplot {stroke grestore} bdef\n% orientation switch\n/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def\n% coordinate system mappings\n/dpi2point 0 def\n% font control\n/FontSize 0 def\n/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]\n  makefont setfont} bdef\n/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse\n  exch dup 3 1 roll findfont dup length dict begin\n  { 1 index /FID ne {def}{pop pop} ifelse } forall\n  /Encoding exch def currentdict end definefont pop} bdef\n/isroman {findfont /CharStrings get /Agrave known} bdef\n/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse\n  exch FMS} bdef\n/csm {1 dpi2point div -1 dpi2point div scale neg translate\n dup landscapeMode eq {pop -90 rotate}\n  {rotateMode eq {90 rotate} if} ifelse} bdef\n% line types: solid, dotted, dashed, dotdash\n/SO { [] 0 setdash } bdef\n/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef\n/DA { [6 dpi2point mul] 0 setdash } bdef\n/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4\n  dpi2point mul] 0 setdash } bdef\n% macros for lines and objects\n/L {lineto stroke} bdef\n/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef\n/AP {{rlineto} repeat} bdef\n/PDlw -1 def\n/W {/PDlw currentlinewidth def setlinewidth} def\n/PP {closepath eofill} bdef\n/DP {closepath stroke} bdef\n/MR {4 -2 roll moveto dup  0 exch rlineto exch 0 rlineto\n  neg 0 exch rlineto closepath} bdef\n/FR {MR stroke} bdef\n/PR {MR fill} bdef\n/L1i {{currentfile picstr readhexstring pop} image} bdef\n/tMatrix matrix def\n/MakeOval {newpath tMatrix currentmatrix pop translate scale\n0 0 1 0 360 arc tMatrix setmatrix} bdef\n/FO {MakeOval stroke} bdef\n/PO {MakeOval fill} bdef\n/PD {currentlinewidth 2 div 0 360 arc fill\n   PDlw -1 eq not {PDlw w /PDlw -1 def} if} def\n/FA {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef\n/PA {newpath tMatrix currentmatrix pop\ttranslate 0 0 moveto scale\n  0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef\n/FAn {newpath tMatrix currentmatrix pop translate scale\n  0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef\n/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale\n  0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef\n/vradius 0 def /hradius 0 def /lry 0 def\n/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def\n/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef\n  /ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly\n  vradius add translate hradius vradius scale 0 0 1 180 270 arc \n  tMatrix setmatrix lrx hradius sub uly vradius add translate\n  hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix\n  lrx hradius sub lry vradius sub translate hradius vradius scale\n  0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub\n  translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix\n  closepath} bdef\n/FRR {MRR stroke } bdef\n/PRR {MRR fill } bdef\n/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix\n  closepath} bdef\n/FlrRR {MlrRR stroke } bdef\n/PlrRR {MlrRR fill } bdef\n/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def\n  newpath tMatrix currentmatrix pop ulx rad add uly rad add translate\n  rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad\n  sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix\n  closepath} bdef\n/FtbRR {MtbRR stroke } bdef\n/PtbRR {MtbRR fill } bdef\n/stri 6 array def /dtri 6 array def\n/smat 6 array def /dmat 6 array def\n/tmat1 6 array def /tmat2 6 array def /dif 3 array def\n/asub {/ind2 exch def /ind1 exch def dup dup\n  ind1 get exch ind2 get sub exch } bdef\n/tri_to_matrix {\n  2 0 asub 3 1 asub 4 0 asub 5 1 asub\n  dup 0 get exch 1 get 7 -1 roll astore } bdef\n/compute_transform {\n  dmat dtri tri_to_matrix tmat1 invertmatrix \n  smat stri tri_to_matrix tmat2 concatmatrix } bdef\n/ds {stri astore pop} bdef\n/dt {dtri astore pop} bdef\n/db {2 copy /cols xdef /rows xdef mul dup string\n  currentfile exch readhexstring pop\n  /bmap xdef pop pop} bdef\n/it {gs np dtri aload pop moveto lineto lineto cp c\n  cols rows 8 compute_transform \n  {bmap} image gr}bdef\n/il {newpath moveto lineto stroke}bdef\ncurrentdict end def\n%%EndProlog\n\n%%BeginSetup\nMathWorks begin\n\n0 cap\n\nend\n%%EndSetup\n\n%%Page: 1 1\n%%BeginPageSetup\n%%PageBoundingBox:    90   215   549   598\nMathWorks begin\nbpage\n%%EndPageSetup\n\n%%BeginObject: obj1\nbplot\n\n/dpi2point 12 def\nportraitMode 0216 7344 csm\n\n  864   161  5509  4600 MR c np\n85 dict begin %Colortable dictionary\n/c0 { 0.000000 0.000000 0.000000 sr} bdef\n/c1 { 1.000000 1.000000 1.000000 sr} bdef\n/c2 { 0.900000 0.000000 0.000000 sr} bdef\n/c3 { 0.000000 0.820000 0.000000 sr} bdef\n/c4 { 0.000000 0.000000 0.800000 sr} bdef\n/c5 { 0.910000 0.820000 0.320000 sr} bdef\n/c6 { 1.000000 0.260000 0.820000 sr} bdef\n/c7 { 0.000000 0.820000 0.820000 sr} bdef\nc0\n1 j\n1 sg\n   0    0 6913 5186 PR\n6 w\n0 1013 5356 0 0 -1013 899 1507 4 MP\nPP\n-5356 0 0 1013 5356 0 0 -1013 899 1507 5 MP stroke\n4 w\nDO\n0 sg\n 899 1507 mt  899  494 L\n 899  494 mt  899  494 L\n1434 1507 mt 1434  494 L\n1434  494 mt 1434  494 L\n1970 1507 mt 1970  494 L\n1970  494 mt 1970  494 L\n2505 1507 mt 2505  494 L\n2505  494 mt 2505  494 L\n3041 1507 mt 3041  494 L\n3041  494 mt 3041  494 L\n3577 1507 mt 3577  494 L\n3577  494 mt 3577  494 L\n4112 1507 mt 4112  494 L\n4112  494 mt 4112  494 L\n4648 1507 mt 4648  494 L\n4648  494 mt 4648  494 L\n5183 1507 mt 5183  494 L\n5183  494 mt 5183  494 L\n5719 1507 mt 5719  494 L\n5719  494 mt 5719  494 L\n6255 1507 mt 6255  494 L\n6255  494 mt 6255  494 L\nSO\n6 w\n 899 1507 mt 6255 1507 L\n 899 1507 mt  899  494 L\n 899 1507 mt  899 1453 L\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n 866 1652 mt \n(0) s\n1434 1507 mt 1434 1453 L\n1351 1652 mt \n(0.1) s\n1970 1507 mt 1970 1453 L\n1887 1652 mt \n(0.2) s\n2505 1507 mt 2505 1453 L\n2422 1652 mt \n(0.3) s\n3041 1507 mt 3041 1453 L\n2958 1652 mt \n(0.4) s\n3577 1507 mt 3577 1453 L\n3494 1652 mt \n(0.5) s\n4112 1507 mt 4112 1453 L\n4029 1652 mt \n(0.6) s\n4648 1507 mt 4648 1453 L\n4565 1652 mt \n(0.7) s\n5183 1507 mt 5183 1453 L\n5100 1652 mt \n(0.8) s\n5719 1507 mt 5719 1453 L\n5636 1652 mt \n(0.9) s\n6255 1507 mt 6255 1453 L\n6222 1652 mt \n(1) s\ngs 899 494 5357 1014 MR c np\n12 w\n5356 0 899 513 2 MP stroke\n6255 513 PD\ngr\n\n12 w\ngs 6182 440 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 554 4 MP\nDP\ngr\n\ngs 899 494 5357 1014 MR c np\n2195 0 899 533 2 MP stroke\n2131 0 899 553 2 MP stroke\n2131 0 899 573 2 MP stroke\n2067 0 899 593 2 MP stroke\n2056 0 899 613 2 MP stroke\n2045 0 899 633 2 MP stroke\n2035 0 899 652 2 MP stroke\n2024 0 899 672 2 MP stroke\n2024 0 899 692 2 MP stroke\n2013 0 899 712 2 MP stroke\n2003 0 899 732 2 MP stroke\n2003 0 899 752 2 MP stroke\n2003 0 899 772 2 MP stroke\n1992 0 899 791 2 MP stroke\n1981 0 899 811 2 MP stroke\n1971 0 899 831 2 MP stroke\n1971 0 899 851 2 MP stroke\n1971 0 899 871 2 MP stroke\n1971 0 899 891 2 MP stroke\n1960 0 899 911 2 MP stroke\n1960 0 899 930 2 MP stroke\n1949 0 899 950 2 MP stroke\n1949 0 899 970 2 MP stroke\n1949 0 899 990 2 MP stroke\n1949 0 899 1010 2 MP stroke\n1938 0 899 1030 2 MP stroke\n1938 0 899 1050 2 MP stroke\n1938 0 899 1070 2 MP stroke\n1928 0 899 1089 2 MP stroke\n1928 0 899 1109 2 MP stroke\n1928 0 899 1129 2 MP stroke\n1917 0 899 1149 2 MP stroke\n1906 0 899 1169 2 MP stroke\n1906 0 899 1189 2 MP stroke\n1906 0 899 1209 2 MP stroke\n1896 0 899 1228 2 MP stroke\n1885 0 899 1248 2 MP stroke\n1885 0 899 1268 2 MP stroke\n1874 0 899 1288 2 MP stroke\n1863 0 899 1308 2 MP stroke\n1863 0 899 1328 2 MP stroke\n1853 0 899 1348 2 MP stroke\n1853 0 899 1367 2 MP stroke\n1842 0 899 1387 2 MP stroke\n1842 0 899 1407 2 MP stroke\n1842 0 899 1427 2 MP stroke\n1821 0 899 1447 2 MP stroke\n1821 0 899 1467 2 MP stroke\n1746 0 899 1487 2 MP stroke\ngr\n\n2737  345 mt \n(nk300c30Dct) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3437  405 mt \n(L) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3490  345 mt \n(W0 \\(dimension 0\\)) s\n6 w\n1 sg\n0 1014 5356 0 0 -1014 899 3061 4 MP\nPP\n-5356 0 0 1014 5356 0 0 -1014 899 3061 5 MP stroke\n4 w\nDO\n0 sg\n 899 3061 mt  899 2047 L\n 899 2047 mt  899 2047 L\n1434 3061 mt 1434 2047 L\n1434 2047 mt 1434 2047 L\n1970 3061 mt 1970 2047 L\n1970 2047 mt 1970 2047 L\n2505 3061 mt 2505 2047 L\n2505 2047 mt 2505 2047 L\n3041 3061 mt 3041 2047 L\n3041 2047 mt 3041 2047 L\n3577 3061 mt 3577 2047 L\n3577 2047 mt 3577 2047 L\n4112 3061 mt 4112 2047 L\n4112 2047 mt 4112 2047 L\n4648 3061 mt 4648 2047 L\n4648 2047 mt 4648 2047 L\n5183 3061 mt 5183 2047 L\n5183 2047 mt 5183 2047 L\n5719 3061 mt 5719 2047 L\n5719 2047 mt 5719 2047 L\n6255 3061 mt 6255 2047 L\n6255 2047 mt 6255 2047 L\nSO\n6 w\n 899 3061 mt 6255 3061 L\n 899 3061 mt  899 2047 L\n 899 3061 mt  899 3007 L\n 866 3206 mt \n(0) s\n1434 3061 mt 1434 3007 L\n1351 3206 mt \n(0.1) s\n1970 3061 mt 1970 3007 L\n1887 3206 mt \n(0.2) s\n2505 3061 mt 2505 3007 L\n2422 3206 mt \n(0.3) s\n3041 3061 mt 3041 3007 L\n2958 3206 mt \n(0.4) s\n3577 3061 mt 3577 3007 L\n3494 3206 mt \n(0.5) s\n4112 3061 mt 4112 3007 L\n4029 3206 mt \n(0.6) s\n4648 3061 mt 4648 3007 L\n4565 3206 mt \n(0.7) s\n5183 3061 mt 5183 3007 L\n5100 3206 mt \n(0.8) s\n5719 3061 mt 5719 3007 L\n5636 3206 mt \n(0.9) s\n6255 3061 mt 6255 3007 L\n6222 3206 mt \n(1) s\ngs 899 2047 5357 1015 MR c np\n12 w\n140 0 3244 2095 2 MP stroke\n64 0 3116 2143 2 MP stroke\n32 0 3116 2191 2 MP stroke\n161 0 3094 2240 2 MP stroke\n65 0 3094 2288 2 MP stroke\n97 0 3062 2336 2 MP stroke\n3117 0 3052 2385 2 MP stroke\n215 0 3019 2433 2 MP stroke\n86 0 3019 2481 2 MP stroke\n128 0 3009 2529 2 MP stroke\n32 0 3009 2578 2 MP stroke\n268 0 2998 2626 2 MP stroke\n54 0 2987 2674 2 MP stroke\n54 0 2987 2723 2 MP stroke\n32 0 2987 2771 2 MP stroke\n128 0 2977 2819 2 MP stroke\n247 0 2944 2867 2 MP stroke\n65 0 2944 2916 2 MP stroke\n182 0 2912 2964 2 MP stroke\n246 0 2902 3012 2 MP stroke\ngr\n\n12 w\n2737 1898 mt \n(nk300c30Dct) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3437 1958 mt \n(L) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3490 1898 mt \n(W0 \\(dimension 1\\)) s\n6 w\n1 sg\n0 1014 5356 0 0 -1014 899 4615 4 MP\nPP\n-5356 0 0 1014 5356 0 0 -1014 899 4615 5 MP stroke\n4 w\nDO\n0 sg\n 899 4615 mt  899 3601 L\n 899 3601 mt  899 3601 L\n1434 4615 mt 1434 3601 L\n1434 3601 mt 1434 3601 L\n1970 4615 mt 1970 3601 L\n1970 3601 mt 1970 3601 L\n2505 4615 mt 2505 3601 L\n2505 3601 mt 2505 3601 L\n3041 4615 mt 3041 3601 L\n3041 3601 mt 3041 3601 L\n3577 4615 mt 3577 3601 L\n3577 3601 mt 3577 3601 L\n4112 4615 mt 4112 3601 L\n4112 3601 mt 4112 3601 L\n4648 4615 mt 4648 3601 L\n4648 3601 mt 4648 3601 L\n5183 4615 mt 5183 3601 L\n5183 3601 mt 5183 3601 L\n5719 4615 mt 5719 3601 L\n5719 3601 mt 5719 3601 L\n6255 4615 mt 6255 3601 L\n6255 3601 mt 6255 3601 L\nSO\n6 w\n 899 4615 mt 6255 4615 L\n 899 4615 mt  899 3601 L\n 899 4615 mt  899 4561 L\n 866 4760 mt \n(0) s\n1434 4615 mt 1434 4561 L\n1351 4760 mt \n(0.1) s\n1970 4615 mt 1970 4561 L\n1887 4760 mt \n(0.2) s\n2505 4615 mt 2505 4561 L\n2422 4760 mt \n(0.3) s\n3041 4615 mt 3041 4561 L\n2958 4760 mt \n(0.4) s\n3577 4615 mt 3577 4561 L\n3494 4760 mt \n(0.5) s\n4112 4615 mt 4112 4561 L\n4029 4760 mt \n(0.6) s\n4648 4615 mt 4648 4561 L\n4565 4760 mt \n(0.7) s\n5183 4615 mt 5183 4561 L\n5100 4760 mt \n(0.8) s\n5719 4615 mt 5719 4561 L\n5636 4760 mt \n(0.9) s\n6255 4615 mt 6255 4561 L\n6222 4760 mt \n(1) s\ngs 899 3601 5357 1015 MR c np\n12 w\n11 0 6244 3854 2 MP stroke\n6255 3854 PD\ngr\n\n12 w\ngs 6182 3781 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 3895 4 MP\nDP\ngr\n\ngs 899 3601 5357 1015 MR c np\n54 0 6201 4108 2 MP stroke\n6255 4108 PD\ngr\n\ngs 6182 4035 147 147 MR c np\n0 j\n0 82 -71 -41 71 -41 6231 4149 4 MP\nDP\ngr\n\ngs 899 3601 5357 1015 MR c np\n32 0 3427 4361 2 MP stroke\ngr\n\n2737 3452 mt \n(nk300c30Dct) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 96 FMSR\n\n3437 3512 mt \n(L) s\n%%IncludeResource: font Helvetica\n/Helvetica /ISOLatin1Encoding 120 FMSR\n\n3490 3452 mt \n(W0 \\(dimension 2\\)) s\n6 w\n\nend %%Color Dict\n\neplot\n%%EndObject\n\nepage\nend\n\nshowpage\n\n%%Trailer\n%%EOF\n"
  },
  {
    "path": "src/matlab/experimental/vietoris_rips_bootstrap/parfor_test.m",
    "content": "clc; clear all; close all;\n\nn = 100;\nk = 2000;\n\n%%\ntic();\nfor i = 1:n\n    values = randn(k, k);\nend\ntoc()\n\n%%\ntic();\nparfor i = 1:n\n    values = randn(k, k);\nend\ntoc()\n"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/circle_example.m",
    "content": "clc; clear; close all;\n\nnum_samples = 11;\nsample_size = 40;\n\nmax_dimension = 1;\nnum_points = 1000;\nmax_filtration_value = 0.3;\n\nn = num_points;\nmaxDistance = max_filtration_value;\n\npoints = examples.PointCloudExamples.getRandomSpherePoints(n, max_dimension);\n\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nutility.RandomUtility.initializeWithSeed(0);\nbootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metric.impl.EuclideanMetricSpace(points), maxDistance, max_dimension, num_samples, sample_size);\nbarcodes = bootstrapper.performProjectionBootstrap()\n\n%%\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.caption = 'Landmark samples from random points on a circle'\noptions.filename = 'circle';\noptions.file_format = 'eps';\noptions.min_dimension = 0;\noptions.max_dimension = 1;\n\nplot_barcodes(filtration_value_intervals, options);\n\n"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/circle_incremental.m",
    "content": "clc; clear; close all;\n\nutility.RandomUtility.initializeWithSeed(5);\n\nn = 300;\nmax_sample_size = 82;\nincrement_size = 1;\ninitial_sample_size = 2;\nmax_dimension = 1;\nmaxDistance = 0.1;\nset = [1:n] - 1;\n\nsample_size = initial_sample_size;\nsample = [];\n\npoints = examples.PointCloudExamples.getEquispacedCirclePoints(n);\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nlist = java.util.ArrayList;\n\nnum_samples = 0;\n\nwhile (sample_size <= max_sample_size)\n    sample = randsample(set, sample_size);\n    list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, sample));\n    num_samples = num_samples + 1;\n    \n    sample_size = sample_size + increment_size;\nend\n\nbootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance);\n\n\nbarcodes = bootstrapper.performProjectionBootstrap()\n\n%%\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.caption = 'Incremental samples from random points on a circle';\noptions.filename = 'incremental-circle-barcodes';\noptions.file_format = 'eps';\noptions.min_dimension = 1;\noptions.max_dimension = 1\n\nplot_barcodes(filtration_value_intervals, options);\n\n\n\n"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/circle_pairwise.m",
    "content": "clc; clear; close all;\n\nnum_samples = 20;\nsample_size = 8;\n\nmax_dimension = 1;\nnum_points = 1000;\nmax_filtration_value = 0.1;\n\nn = num_points;\nmaxDistance = max_filtration_value;\n\npoints = examples.PointCloudExamples.getRandomFigure8Points(n);\n%points = examples.PointCloudExamples.getRandomSpherePoints(n, 2);\n\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nexpected_betti_sequence = [1, 2]';\n\nsamples = cell(num_samples, 1);\n\nfor i = 1:num_samples\n    samples{i} = randsample(0:(num_points - 1), sample_size);\nend\n\ngraph = zeros(num_samples, num_samples);\n\nfor i = 1:num_samples\n    for j = (i+1):num_samples\n        list = java.util.ArrayList;\n\n        list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, samples{i}));\n        list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, samples{j}));\n        \n        bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance);\n        barcodes = bootstrapper.performProjectionBootstrap();\n        \n        betti_sequence = barcodes.getBettiSequence();\n        \n        if (expected_betti_sequence == betti_sequence)\n            graph(i, j) = 1;\n            graph(j, i) = 1;\n        end\n    end\nend\n\n\n%%\nn = num_samples;\n\npoints = [cos(2 * pi * (1:n) / n)' sin(2 * pi * (1:n) / n)'];\n\ng_handle = figure;\ngplot(graph, points, 'g-o');\naxis equal;\ntitle('Connectivity graph for points in figure-8');\n\nfor K = 1:n\n    text(cos(2 * pi * (K) / n), sin(2 * pi * (K) / n), sprintf('%d', K))\nend\n\nset(gca,'XTickLabel',{''})\nset(gca,'YTickLabel',{''})\n\nsaveas(g_handle, 'connectivity-figure-8', 'pdf');"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/figure8_example.m",
    "content": "clc; clear; close all;\n\nutility.RandomUtility.initializeWithSeed(0);\n\nnum_samples = 41;\nsample_size = 20;\n\nmax_dimension = 1;\nnum_points = 1000;\nmax_filtration_value = 0.1;\n\nn = num_points;\nmaxDistance = max_filtration_value;\n\npoints = examples.PointCloudExamples.getRandomFigure8Points(n);\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nbootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metric.impl.EuclideanMetricSpace(points), maxDistance, max_dimension, num_samples, sample_size);\nbarcodes = bootstrapper.performProjectionBootstrap([1, 2])\n\n\n%%\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.caption = 'Landmark samples from random points on a figure-8';\noptions.filename = 'figure-8-barcodes';\noptions.file_format = 'eps';\noptions.min_dimension = 1;\noptions.max_dimension = 1\n\nplot_barcodes(filtration_value_intervals, options);\n\n%%\nselections = [];\n\nindices = [6 7 10 15 16 17 21 22 23 24 25 26 27];\n\nfor i = 1:length(indices)\n    index = indices(i);\n    selections = [selections bootstrapper.getLandmarkSelector(index)];\nend\n\nlist = java.util.ArrayList;\n\nfor i = 1:length(selections)\n    list.add(selections(i));\nend\n\nnew_bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance);\nbarcodes = new_bootstrapper.performProjectionBootstrap()\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.caption = 'Reselected landmark samples from random points on a figure-8';\noptions.filename = 'reselected-figure-8-barcodes';\noptions.file_format = 'eps';\noptions.min_dimension = 1;\noptions.max_dimension = 1\n\nplot_barcodes(filtration_value_intervals, options);\n%%\n\nn = length(selections);\nexpected_betti_sequence = [1, 2]';\ngraph = zeros(n, n);\n\nfor i = 1:n\n    for j = (i+1):n\n        list = java.util.ArrayList;\n\n        list.add(selections(i));\n        list.add(selections(j));\n        \n        graph_bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance);\n        barcodes = graph_bootstrapper.performProjectionBootstrap();\n        \n        betti_sequence = barcodes.getBettiSequence();\n        \n        if (expected_betti_sequence == betti_sequence)\n            graph(i, j) = 1;\n            graph(j, i) = 1;\n        end\n    end\nend\n\n\n%%\npoints = [cos(2 * pi * (1:n) / n)' sin(2 * pi * (1:n) / n)'];\n\ng_handle = figure;\ngplot(graph, points, 'g-o');\naxis equal;\ntitle('Connectivity graph for reselected points in figure-8');\n\nfor K = 1:n\n    text(cos(2 * pi * (K) / n), sin(2 * pi * (K) / n), sprintf('%d', indices(K)))\nend\n\nset(gca,'XTickLabel',{''})\nset(gca,'YTickLabel',{''})\n\nsaveas(g_handle, 'reselected-connectivity-figure-8', 'eps');"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/figure8_incremental.m",
    "content": "clc; clear; close all;\n\n%utility.RandomUtility.initializeWithSeed(5);\n\nn = 200;\nmax_sample_size = 82;\nincrement_size = 1;\ninitial_sample_size = 2;\nmax_dimension = 1;\nmaxDistance = 0.2;\nset = [1:n] - 1;\n\nsample_size = initial_sample_size;\nsample = [];\n\npoints = examples.PointCloudExamples.getRandomFigure8Points(n);\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nlist = java.util.ArrayList;\n\nnum_samples = 0;\n\nwhile (sample_size <= max_sample_size)\n    sample = randsample(set, sample_size);\n    list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, sample));\n    num_samples = num_samples + 1;\n    \n    sample_size = sample_size + increment_size;\nend\n\nbootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance);\n\n\nbarcodes = bootstrapper.performProjectionBootstrap()\n\n%%\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.caption = 'Incremental samples from random points on a figure-8';\noptions.filename = 'incremental-figure-8-barcodes';\noptions.file_format = 'eps';\noptions.min_filtration_value = 0;\noptions.min_dimension = 1;\noptions.max_dimension = 1\noptions.line_width = 2;\nplot_barcodes(filtration_value_intervals, options);\n\n"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/figure8_pairwise.m",
    "content": "clc; clear; close all;\n\nutility.RandomUtility.initializeWithSeed(0);\n\nnum_samples = 41;\nsample_size = 20;\n\nmax_dimension = 1;\nnum_points = 1000;\nmax_filtration_value = 0.1;\n\nn = num_points;\nmaxDistance = max_filtration_value;\n\npoints = examples.PointCloudExamples.getRandomFigure8Points(n);\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nexpected_betti_sequence = [1, 2]';\n\nsamples = cell(num_samples, 1);\n\nfor i = 1:num_samples\n    samples{i} = randsample(0:(num_points - 1), sample_size);\nend\n\ngraph = zeros(num_samples, num_samples);\n\nfor i = 1:num_samples\n    for j = (i+1):num_samples\n        list = java.util.ArrayList;\n\n        list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, samples{i}));\n        list.add(metric.landmark.ExplicitLandmarkSelector(metricSpace, samples{j}));\n        \n        bootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metricSpace, list, max_dimension, maxDistance);\n        barcodes = bootstrapper.performProjectionBootstrap();\n        \n        betti_sequence = barcodes.getBettiSequence();\n        \n        if (expected_betti_sequence == betti_sequence)\n            graph(i, j) = 1;\n            graph(j, i) = 1;\n        end\n    end\nend\n\n\n%%\nn = num_samples;\n\npoints = [cos(2 * pi * (1:n) / n)' sin(2 * pi * (1:n) / n)'];\n\ng_handle = figure;\ngplot(graph, points, 'g-o');\naxis equal;\ntitle('Connectivity graph for points in figure-8');\n\nfor K = 1:n\n    text(cos(2 * pi * (K) / n), sin(2 * pi * (K) / n), sprintf('%d', K))\nend\n\nset(gca,'XTickLabel',{''})\nset(gca,'YTickLabel',{''})\n\nsaveas(g_handle, 'connectivity-figure-8', 'pdf');\n\n%%\n\n[max_degree, max_index] = max(sum(graph))\n \nsample = samples{max_index};\n \nselector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample);\n\nfilename = 'figure-8-highest-degree.pov';\ncreate_landmark_pov_file(selector, filename);\nrender_pov_file(filename);\n\n%%\n[min_degree, min_index] = min(sum(graph))\n \nsample = samples{min_index};\n \nselector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample);\n\nfilename = 'figure-8-lowest-degree.pov';\ncreate_landmark_pov_file(selector, filename);\nrender_pov_file(filename);"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/figure8_samples.m",
    "content": "clc; clear; close all;\n\n%%\nutility.RandomUtility.initializeWithSeed(0);\n\nsample_size = 50;\n\nmax_dimension = 1;\nnum_points = 300;\nmax_filtration_value = 0.1;\n\nn = num_points;\nmaxDistance = max_filtration_value;\n\npoints = examples.PointCloudExamples.getRandomFigure8Points(n);\npoints = points * 0.8;\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\n%%\n\nsample = (utility.RandomUtility.randomSubset(sample_size, num_points / 2));\nsample_0 = sample.toArray()\nsample = sample_0;\n\nselector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample);\n\nfilename = 'figure-8-landmark-0.pov';\ncreate_landmark_pov_file(selector, filename);\nrender_pov_file(filename);\n\n%%\n\nsample = (utility.RandomUtility.randomSubset(sample_size, num_points / 2));\nsample_1 = sample.toArray() + (num_points / 2);\nsample = sample_1;\n\nselector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample);\n\nfilename = 'figure-8-landmark-1.pov';\ncreate_landmark_pov_file(selector, filename);\nrender_pov_file(filename);\n\n%%\nsample_01 = [sample_0; sample_1]\nsample = sample_01;\n\nselector = metric.landmark.ExplicitLandmarkSelector(metricSpace, sample);\n\nfilename = 'figure-8-landmark-01.pov';\ncreate_landmark_pov_file(selector, filename);\nrender_pov_file(filename);"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/image_patch_examples.m",
    "content": "clc; clear; close all;\n\nload pointsRange.mat\nsize(pointsRange)\n\nnum_samples = 51;\nsample_size = 30;\nmax_dimension = 1;\n\nnum_divisions = 500;\n\nm_space = metric.impl.EuclideanMetricSpace(pointsRange)\nr_max = metric.utility.MetricUtility.estimateDiameter(m_space) / 2\nmax_filtration_value = r_max / 8\n\nbootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metric.impl.EuclideanMetricSpace(pointsRange), max_filtration_value, max_dimension, num_samples, sample_size);\nbarcodes = bootstrapper.performProjectionBootstrap([1, 1])\n\n%%\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\noptions.caption = sprintf('Image patch dataset: %d samples of size %d', num_samples - 1, sample_size);\noptions.filename = sprintf('image-patch-samples-constrained-%d-%d', num_samples - 1, sample_size);\noptions.file_format = 'eps';\noptions.min_dimension = 0;\noptions.max_dimension = 1\noptions.line_width = 2;\nplot_barcodes(filtration_value_intervals, options);\n\n"
  },
  {
    "path": "src/matlab/experimental/witness_bootstrap/torus_example.m",
    "content": "clc; clear; close all;\n\nnum_samples = 41;\nsample_size = 30;\n\nmax_dimension = 2;\nnum_points = 10000;\nmax_filtration_value = 0.1;\n\nn = num_points;\nmaxDistance = max_filtration_value;\n\npoints = examples.PointCloudExamples.getRandomSphereProductPoints(n, 1, 2);\n\nmetricSpace = metric.impl.EuclideanMetricSpace(points);\n\nutility.RandomUtility.initializeWithSeed(0);\nbootstrapper = homology.zigzag.bootstrap.WitnessBootstrapper(metric.impl.EuclideanMetricSpace(points), maxDistance, max_dimension, num_samples, sample_size);\nbarcodes = bootstrapper.performProjectionBootstrap([1, 2, 1])\n\n%%\n\ntransformer = homology.filtration.IdentityConverter.getInstance();\nfiltration_value_intervals = transformer.transform(barcodes);\n\nplot_barcodes(filtration_value_intervals, 1, 1, 'torus_1', 'Landmark samples from random points on a torus', 'eps', false, 2);\n\n"
  },
  {
    "path": "src/matlab/for_distribution/README",
    "content": "To run the MATLAB examples, perform the following steps:\r\n1. Run the 'load_javaplex.m' script from the current directory.\r\n2. Cd to the example directory of interest (e.g. 'basic_examples'), and run one of the scripts.\r\n\r\nNotes:\r\n- library files should be placed in 'lib'\r\n- common utility files are placed in the 'utilities' folder\r\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/barcode_plot_example.m",
    "content": "% This script shows how to plot barcodes directly to a file\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 2;\nmax_filtration_value = 4;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getHouseExample();\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions);\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% this initially creates a set of intervals which contains the filtration values\nfiltration_value_intervals = persistence.computeIntervals(stream)\n\n% set plot options - plot in eps format\noptions.filename = 'house-barcodes';\noptions.file_format = 'eps';\noptions.caption = 'House Example'\n\n% create the barcode plots\nplot_barcodes(filtration_value_intervals, options)\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/boundary_extraction_example.m",
    "content": "% This script demonstrates an example of the ExplicitSimplexStream class\n\n%% Manual construction\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% construct a triangle\nstream.addVertex(0);\nstream.addVertex(1);\nstream.addVertex(2);\nstream.addElement([0, 1]);\nstream.addElement([0, 2]);\nstream.addElement([1, 2]);\n\n% print out the total number of simplices in the complex\nsize = stream.getSize()\n\n% get the default persistence computation\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(3);\n\n% compute and print the intervals\ntriangle_intervals = persistence.computeIntervals(stream)\n\n% compute boundary\nd_1 = streams.utility.StreamUtility.createBoundaryMatrixAsDoubleSum(stream, 1)\n\n% convert from sparse form to array\nconverter = api.Plex4.createHomMatrixConverter(stream, stream);\nd_1_array = converter.toArray(d_1)\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/cellular_test.m",
    "content": "% This script computes various cellular homology examples\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% Cellular Sphere\n\ndimension = 100;\n\n% get the cellular sphere of the specified dimension\nstream = examples.CellStreamExamples.getCellularSphere(dimension);\n\n% get the total number of simplices in the complex\nsize = stream.getSize();\n\nZ2_persistence = api.Plex4.getModularCellularAlgorithm(dimension + 1, 2);\n\n% compute and print the intervals\nintervals = Z2_persistence.computeIntervals(stream)\n\n%% Klein Bottle\n\n% get the cellular sphere of the specified dimension\nstream = examples.CellStreamExamples.getCellularKleinBottle();\n\n% get the total number of simplices in the complex\nsize = stream.getSize();\n\n% get cellular homology algorithm over Z/2Z\nZ2_persistence = api.Plex4.getModularCellularAlgorithm(dimension + 1, 2);\n% get cellular homology algorithm over Z/3Z\nZ3_persistence = api.Plex4.getModularCellularAlgorithm(dimension + 1, 3);\n% get cellular homology algorithm over Q\nQ_persistence = api.Plex4.getRationalCellularAlgorithm(dimension + 1);\n\n% compute over Z/2Z - should give (1, 2, 1)\nZ2_intervals = Z2_persistence.computeIntervals(stream)\n\n% compute over Z/3Z - should give (1, 1, 0)\nZ3_intervals = Z3_persistence.computeIntervals(stream)\n\n% compute over Q - should give (1, 1, 0)\nQ_intervals = Q_persistence.computeIntervals(stream)\n\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/dump_example.m",
    "content": "% This script demonstrates the use of plex on a simple \"house\" example\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 2;\nmax_filtration_value = 4;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getHouseExample();\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions);\n\n\n%% Dump Example:\n\niterator = stream.iterator();\n\nwhile (iterator.hasNext())\n  % the next line will print the current simplex\n  simplex = iterator.next()\n  % here you can do whatever is needed with the simplex\n  filtration_value = stream.getFiltrationValue(simplex)\nend\n\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/endpoint_extraction_example.m",
    "content": "% This script demonstrates how to extract endpoints\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 2;\nmax_filtration_value = 4;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getHouseExample();\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions);\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% this initially creates a set of intervals which contains the filtration\n% indices (which are integers).\nintervals = persistence.computeIntervals(stream);\n\n% The next line extracts the interval endpoints for the dimension 0\n% barcode. Note that it ignores infinite intervals\nendpoints_dim_0 = homology.barcodes.BarcodeUtility.getEndpoints(intervals, 0, false)\n\n% The next line extracts the interval endpoints for the dimension 1\n% barcode. Note that it ignores infinite intervals\nendpoints_dim_1 = homology.barcodes.BarcodeUtility.getEndpoints(intervals, 1, false)\n\nplot_barcodes(intervals);\n\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/ensure_faces_test.m",
    "content": "clc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nstream = api.Plex4.createExplicitSimplexStream();\nfor i=1:4,\n    stream.addVertex(i,0);\nend\nstream.addElement([1,2,3,4], 2);\nstream.addElement([1,2,3], 1)\nstream.ensureAllFaces();\nstream.finalizeStream();\n\niterator = stream.iterator();\n\nwhile (iterator.hasNext())\n  % the next line will print the current simplex\n  simplex = iterator.next();\n  % here you can do whatever is needed with the simplex\n  filtration_value = stream.getFiltrationIndex(simplex);\n  display(sprintf('%s: %d', char(simplex.toString()), filtration_value));\nend\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/explicit_metric_space_test.m",
    "content": "%% \nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\ndistances = [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];\nm_space = metric.impl.ExplicitMetricSpace(distances);\nmax_dimension = 3;\nmax_filtration_value = 4;\n\nstream = api.Plex4.createVietorisRipsStream(m_space, max_dimension, max_filtration_value);\nstream.finalizeStream();\n\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\nfiltration_value_intervals = persistence.computeIntervals(stream);\n\n%%\n\nnum_landmark_points = 3;\nmaxmin_selector = api.Plex4.createMaxMinSelector(m_space, num_landmark_points);\n\nmaxmin_selector.getLandmarkPoints()\n\n% Computes R = max distance from a point to the set of landmarks\nmaxmin_selector.getMaxDistanceFromPointsToLandmarks()\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/explicit_simplex_test.m",
    "content": "% This script demonstrates an example of the ExplicitSimplexStream class\n\n%% Manual construction\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% construct a triangle\nstream.addVertex(0);\nstream.addVertex(1);\nstream.addVertex(2);\nstream.addElement([0, 1]);\nstream.addElement([0, 2]);\nstream.addElement([1, 2]);\n\n% print out the total number of simplices in the complex\nsize = stream.getSize()\n\n% get the default persistence computation\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(3);\n\n% compute and print the intervals\ntriangle_intervals = persistence.computeIntervals(stream)\n\n%% Example of n-sphere\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\ndimension = 9;\n\n% construct simplicial sphere\nstream.addElement(0:(dimension + 1));\nstream.ensureAllFaces();\nstream.removeElementIfPresent(0:(dimension + 1));\nstream.finalizeStream();\n\n% print out the total number of simplices in the complex\nsize = stream.getSize()\n\n% get the default persistence computation\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1);\n\n% compute and print the intervals\nn_sphere_intervals = persistence.computeIntervals(stream)\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/explicit_simplex_test2.m",
    "content": "% This script demonstrates an example of the ExplicitSimplexStream class\n\n%% Manual construction\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream(10);\n\n% construct a triangle\nstream.addVertex(0, 0);\nstream.addVertex(1, 1);\nstream.addVertex(2, 2);\nstream.addElement([0, 1], 3.88);\nstream.addElement([0, 2], 4.12);\nstream.addElement([1, 2], 5);\n\n% print out the total number of simplices in the complex\nsize = stream.getSize()\n\n\n\niterator = stream.iterator();\n\nwhile (iterator.hasNext())\n  % the next line will print the current simplex\n  simplex = iterator.next()\n  % here you can do whatever is needed with the simplex\n  filtration_value = stream.getFiltrationValue(simplex)\nend\n\n\n\n\n\n\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/filter_long_intervals.m",
    "content": "clc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 2;\nnum_points = 30;\nmax_filtration_value = 0.9;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, max_dimension);\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals and transform them to filtration values\nfiltration_value_intervals = persistence.computeIntervals(stream)\n\n\n%%\ndim_0_intervals = filtration_value_intervals.getIntervalsAtDimension(0)\n\nminimum_length = 0.7;\n\nlong_dim_0_intervals = homology.barcodes.BarcodeUtility.filterIntervalsByMinimumLength(dim_0_intervals, minimum_length)"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/house_example_test.m",
    "content": "% This script demonstrates the use of plex on a simple \"house\" example\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 2;\nmax_filtration_value = 4;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getHouseExample();\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions);\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(max_dimension);\n\n% this initially creates a set of intervals which contains the filtration\n% indices (which are integers).\nfiltration_value_intervals = persistence.computeIntervals(stream)\n\n% create the barcode plots\nplot_barcodes(filtration_value_intervals)"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/landmark_test.m",
    "content": "% This script shows the difference between randomized and maxmin landmark\n% selection.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nnum_points = 1000;\nnum_landmark_points = 100;\n\n% initialize the point cloud\npoint_cloud = examples.PointCloudExamples.getRandomFigure8Points(num_points);\n\n% create the landmark selectors\nrandom_selector = api.Plex4.createRandomSelector(point_cloud, num_landmark_points);\nmaxmin_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\n\n% extract the subset of landmark points from the original point cloud\n% Note: we need to increment the indices by 1 since Java uses 0-based\n% arrays\nrandom_points = point_cloud(random_selector.getLandmarkPoints() + 1, :);\nmaxmin_points = point_cloud(maxmin_selector.getLandmarkPoints() + 1, :);\n\n% Plot the landmark points\nsubplot(1, 2, 1);\nscatter(random_points(:,1), random_points(:, 2));\ntitle('Random landmark selection');\n\nsubplot(1, 2, 2);\nscatter(maxmin_points(:,1), maxmin_points(:, 2));\ntitle('Maxmin landmark selection');"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/representatives_example.m",
    "content": "% This script shows an example of computing a representative cycle for each barcode\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\ndimension = 9;\n\n% construct simplicial sphere\nstream.addElement(0:(dimension + 1));\nstream.ensureAllFaces();\nstream.removeElementIfPresent(0:(dimension + 1));\nstream.finalizeStream();\n\n% get the default persistence computation over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(dimension + 1, 2);\n\n% compute and print the intervals\nn_sphere_intervals = persistence.computeAnnotatedIntervals(stream)\n\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/simplicial_sphere_test.m",
    "content": "% This script demonstrates the computation of the homology of a\n% high-dimensional sphere that is beyond the reach of the previous version\n% of plex.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\ndimension = 15;\n\n% get the simplicial sphere of the specified dimension\nstream = examples.SimplexStreamExamples.getSimplicialSphere(dimension);\n\n% print out the total number of simplices in the complex\nsize = stream.getSize()\n\n% get the default persistence computation\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1);\n\n% compute and print the intervals\nintervals = persistence.computeIntervals(stream)\n\n"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/sphere_test.m",
    "content": "% This script calculates the intervals for a Lazy-Witness complex generated\n% from random points on the 2-sphere\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\ndimension = 2;\nnum_points = 10000;\nnum_landmark_points = 100;\nmax_filtration_value = 0.1;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension);\n\n% create a randomized landmark selector\nlandmark_selector = api.Plex4.createRandomSelector(point_cloud, num_landmark_points);\n% create a Lazy-Witness Stream - note that this sets the number of\n% divisions to the default value of 20\nstream = api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value, 1000);\n\n% print out the size of the stream - will be quite large since the complex\n% construction is very sensitive to the maximum filtration value\nsize = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1);\n\n% compute the intervals and transform them to filtration values\nfiltration_value_intervals = persistence.computeIntervals(stream);\n\n%% Output\n\n% create the barcode plots\nplot_barcodes(filtration_value_intervals);"
  },
  {
    "path": "src/matlab/for_distribution/basic_examples/vietoris_rips_example.m",
    "content": "clc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\ndimension = 1;\nmax_filtration_value = 1.3;\nnum_divisions = 20;\n\nn = 20;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomSpherePoints(n, dimension);\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, dimension + 1, max_filtration_value, num_divisions);\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1);\n\n% compute intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\nplot_barcodes(intervals)"
  },
  {
    "path": "src/matlab/for_distribution/benchmarks/rips_persistence.m",
    "content": "%% Rips-complex benchmark example\n% Note: make sure that you give matlab enough heap space to work with\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 4;\nmax_filtration_value = 0.3;\nnum_divisions = 10;\nnum_points = 220;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomFigure8Points(num_points);\n\nalgorithms = api.PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(max_dimension);\n\nfiltration_limit = 0.5;\nnum_sizes = 5;\nnum_algorithms = algorithms.size();\nmax_filtration_values = linspace(0, filtration_limit, num_sizes);\n\ntimes = zeros(num_algorithms, num_sizes);\nsizes = zeros(num_sizes, 1);\n\nfor f = 1:num_sizes\n    max_filtration_value = max_filtration_values(f);\n    stream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension + 1, max_filtration_value, num_divisions);\n    sizes(f) = stream.getSize();\n    \n    for i = 1:num_algorithms\n        algorithm = algorithms.get(i - 1);\n        algorithm.toString();\n        tic();\n        filtration_index_intervals = algorithm.computeIntervals(stream);\n        times(i, f) = toc();\n    end\nend\n\n%% Produce plot\n\nalgorithm_names = java_array('java.lang.String', num_algorithms);\n\nfor i = 1:num_algorithms\n    algorithm = algorithms.get(i - 1);\n    algorithm_names(i) = algorithm.toString();\nend\n\nh = figure;\nplot(sizes, times, '-o');\n\nlegend(cell(algorithm_names));\ngrid on;\n\nxlabel('Number of Simplices');\nylabel('Execution Time (s)');\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/basic_vr_example.jy",
    "content": "#!/usr/bin/env jython\n\nimport sys\n\n# Todo: make sure that this points to the correct location\nlibs = [\n    \"../lib/javaplex.jar\"\n    ]\nfor s in libs:\n    sys.path.append(s)\n\nimport edu.stanford.math.plex4\nimport edu.stanford.math.plex4.api\nimport edu.stanford.math.plex4.examples\nimport edu.stanford.math.plex4.io\n\nprint(\"Starting\")\nf8 = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomFigure8Points(50)\ntrefoil = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomTrefoilKnotPoints(200)\n\nprint(\"Created point sets\")\nf8s = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(f8, 2, 1.0)\ntrefoils = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(trefoil, 2, 1.0)\n\nprint \"Created simplex streams. Figure 8 has %d simplices and Trefoil has %d simplices\" % (f8s.getSize(), trefoils.getSize())\n\npH = edu.stanford.math.plex4.api.PersistenceAlgorithmInterface.getBooleanSimplicialAbsoluteHomology(2)\n\nf8bc = pH.computeIntervals(f8s)\nprint \"Computed intervals for figure 8:\\n%s\" % repr(f8bc)\n\ntfbc = pH.computeIntervals(trefoils)\nprint \"Computed intervals for trefoil:\\n%s\" % repr(tfbc)\n\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(tfbc, 0, 3.0, \"Trefoil Dimension 0\", \"trefoil_0.png\")\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(tfbc, 1, 3.0, \"Trefoil Dimension 1\", \"trefoil_1.png\")\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/cellular_example.jy",
    "content": "#!/usr/bin/env jython\n\nimport sys\n\n\n# Todo: make sure that this points to the correct location\nlibs = [\n    \"../lib/javaplex.jar\"\n    ]\nfor s in libs:\n    sys.path.append(s)\n\nimport edu.stanford.math.plex4\nimport edu.stanford.math.plex4.api\nimport edu.stanford.math.plex4.examples\nimport edu.stanford.math.plex4.io\n\n## Cellular Sphere\n\ndimension = 100\n\n# get the cellular sphere of the specified dimension\nstream = edu.stanford.math.plex4.examples.CellStreamExamples.getCellularSphere(dimension)\n\n# get the total number of simplices in the complex\nsize = stream.getSize()\n\nZ2_persistence = edu.stanford.math.plex4.api.Plex4.getModularCellularAlgorithm(dimension + 1, 2)\n\n# compute and print the intervals\nintervals = Z2_persistence.computeIntervals(stream)\n\nprint \"Computed intervals for cellular sphere:\\n%s\" % repr(intervals)\n\n\n## Klein Bottle\n\n# get the cellular sphere of the specified dimension\nstream = edu.stanford.math.plex4.examples.CellStreamExamples.getCellularKleinBottle()\n\n# get the total number of simplices in the complex\nsize = stream.getSize()\n\n# get cellular homology algorithm over Z/2Z\nZ2_persistence = edu.stanford.math.plex4.api.Plex4.getModularCellularAlgorithm(dimension + 1, 2)\n# get cellular homology algorithm over Z/3Z\nZ3_persistence = edu.stanford.math.plex4.api.Plex4.getModularCellularAlgorithm(dimension + 1, 3)\n# get cellular homology algorithm over Q\nQ_persistence = edu.stanford.math.plex4.api.Plex4.getRationalCellularAlgorithm(dimension + 1)\n\n# compute over Z/2Z - should give (1, 2, 1)\nZ2_intervals = Z2_persistence.computeIntervals(stream)\n\n# compute over Z/3Z - should give (1, 1, 0)\nZ3_intervals = Z3_persistence.computeIntervals(stream)\n\n# compute over Q - should give (1, 1, 0)\nQ_intervals = Q_persistence.computeIntervals(stream)\n\n\nprint \"Computed intervals for Klein bottle (over Z/2Z):\\n%s\" % repr(Z2_intervals)\nprint \"Computed intervals for Klein bottle (over Z/3Z):\\n%s\" % repr(Z3_intervals)\nprint \"Computed intervals for Klein bottle (over Q):\\n%s\" % repr(Q_intervals)\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/explicit_simplex_example.jy",
    "content": "#!/usr/bin/env jython\n\nimport sys\n\n# Todo: make sure that this points to the correct location\nlibs = [\n    \"../lib/javaplex.jar\"\n    ]\nfor s in libs:\n    sys.path.append(s)\n\nimport edu.stanford.math.plex4\nimport edu.stanford.math.plex4.api\nimport edu.stanford.math.plex4.examples\nimport edu.stanford.math.plex4.io\n\n## Manual construction\n\n# get a new ExplicitSimplexStream\nstream = edu.stanford.math.plex4.api.Plex4.createExplicitSimplexStream()\n\n# construct a triangle\nstream.addVertex(0)\nstream.addVertex(1)\nstream.addVertex(2)\nstream.addElement([0, 1])\nstream.addElement([0, 2])\nstream.addElement([1, 2])\n\n# print out the total number of simplices in the complex\nsize = stream.getSize()\n\n# get the default persistence computation\npersistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(3)\n\n# compute and print the intervals\ntriangle_intervals = persistence.computeIntervals(stream)\n\nprint \"Triangle intervals: \\n%s\" % repr(triangle_intervals)\n\n## Example of n-sphere\n\n# get a new ExplicitSimplexStream\nstream = edu.stanford.math.plex4.api.Plex4.createExplicitSimplexStream()\n\ndimension = 9\n\n# construct simplicial sphere\nstream.addElement(range(0, dimension + 2))\nstream.ensureAllFaces()\nstream.removeElementIfPresent(range(0, dimension + 2))\nstream.finalizeStream()\n\n# print out the total number of simplices in the complex\nsize = stream.getSize()\n\n# get the default persistence computation\npersistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1)\n\n# compute and print the intervals\nn_sphere_intervals = persistence.computeIntervals(stream)\n\nprint \"n-Sphere intervals: \\n%s\" % repr(n_sphere_intervals)\n\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/image_patch_example.jy",
    "content": "#!/usr/bin/env jython\n\nimport sys\n\n# Todo: make sure that this points to the correct location\nlibs = [\n    \"../lib/javaplex.jar\"\n    ]\nfor s in libs:\n    sys.path.append(s)\n\nimport edu.stanford.math.plex4\nimport edu.stanford.math.plex4.api\nimport edu.stanford.math.plex4.examples\nimport edu.stanford.math.plex4.io\n\nimport csv\nfrom jarray import array\nimport java\n\nfile_reader = csv.reader(open('pointsRange.csv'))\n\ndata = []\n\nfor row in file_reader:\n    d_row = []\n    for entry in row:\n        d_row.append(float(entry))\n    d_row_array = array(d_row, 'd')\n    data.append(d_row_array)\n\npointsRange = array(data, java.lang.Class.forName('[D'))\n\n\nmax_dimension = 3\nnum_landmark_points = 50\nnu = 1\nnum_divisions = 500\n\n# create a sequential maxmin landmark selector\nlandmark_selector = edu.stanford.math.plex4.api.Plex4.createMaxMinSelector(pointsRange, num_landmark_points)\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R / 3\n\n# create a lazy witness stream\nstream = edu.stanford.math.plex4.streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions)\nstream.finalizeStream()\n\n# print out the size of the stream - will be quite large since the complex\n# construction is very sensitive to the maximum filtration value\nnum_simplices = stream.getSize()\n\n# get persistence algorithm over Z/2Z\npersistence = edu.stanford.math.plex4.api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2)\n\n# compute the intervals\nintervals = persistence.computeIntervals(stream)\n\n# create the barcode plots\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(intervals, 0, max_filtration_value, \"Lazy-Witness Image Patch Dataset\", \"lw_im_patch_0.png\")\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(intervals, 1, max_filtration_value, \"Lazy-Witness Image Patch Dataset\", \"lw_im_patch_1.png\")\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(intervals, 2, max_filtration_value, \"Lazy-Witness Image Patch Dataset\", \"lw_im_patch_2.png\")\n\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/pointsRange.csv",
    "content": "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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0,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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0,-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n0.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\n0.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\n0.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\n0.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\n-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\n-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\n-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\n0.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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n0.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\n-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\n-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\n-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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n0.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\n-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\n-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\n0.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\n-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\n0.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\n-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\n-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\n-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\n0.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\n-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\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/quick_povray.sh",
    "content": "#!/bin/bash\n\npovray +Itorus.pov +H600 +W800 +Q3 +A"
  },
  {
    "path": "src/matlab/for_distribution/jython/representatives_example.jy",
    "content": "#!/usr/bin/env jython\n\nimport sys\n\n# Todo: make sure that this points to the correct location\nlibs = [\n    \"../lib/javaplex.jar\"\n    ]\nfor s in libs:\n    sys.path.append(s)\n\nimport edu.stanford.math.plex4\nimport edu.stanford.math.plex4.api\nimport edu.stanford.math.plex4.examples\nimport edu.stanford.math.plex4.io\n\n# get a new ExplicitSimplexStream\nstream = edu.stanford.math.plex4.api.Plex4.createExplicitSimplexStream()\n\ndimension = 5\n\n# construct simplicial sphere\nstream.addElement(range(0, dimension + 2))\nstream.ensureAllFaces()\nstream.removeElementIfPresent(range(0, dimension + 2))\nstream.finalizeStream()\n\n# get the default persistence computation over Z/2Z\npersistence = edu.stanford.math.plex4.api.Plex4.getModularSimplicialAlgorithm(dimension + 1, 2)\n\n# compute and print the intervals\nn_sphere_intervals = persistence.computeAnnotatedIntervals(stream)\n\nprint \"n-Sphere intervals: \\n%s\" % repr(n_sphere_intervals)\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/sphere_witness_example.jy",
    "content": "#!/usr/bin/env jython\n\nimport sys\n\n# Todo: make sure that this points to the correct location\nlibs = [\n    \"../lib/javaplex.jar\"\n    ]\nfor s in libs:\n    sys.path.append(s)\n\nimport edu.stanford.math.plex4\nimport edu.stanford.math.plex4.api\nimport edu.stanford.math.plex4.examples\nimport edu.stanford.math.plex4.io\n\n# This script calculates the intervals for a Lazy-Witness complex generated\n# from random points on the 2-sphere\n\ndimension = 2\nnum_points = 10000\nnum_landmark_points = 100\nmax_filtration_value = 0.1\n\n# create the set of points\npoint_cloud = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension)\n\n# create a randomized landmark selector\nlandmark_selector = edu.stanford.math.plex4.api.Plex4.createRandomSelector(point_cloud, num_landmark_points)\n# create a Lazy-Witness Stream - note that this sets the number of\n# divisions to the default value of 20\nstream = edu.stanford.math.plex4.api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value, 1000)\n\n# print out the size of the stream - will be quite large since the complex\n# construction is very sensitive to the maximum filtration value\nsize = stream.getSize()\n\n# get the default persistence algorithm\npersistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1)\n\n# compute the intervals and transform them to filtration values\nfiltration_value_intervals = persistence.computeIntervals(stream)\n\n## Output\n\n# create the barcode plots\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 0, max_filtration_value, \"Lazy-Witness Sphere\", \"lw_sphere_0.png\")\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 1, max_filtration_value, \"Lazy-Witness Sphere\", \"lw_sphere_1.png\")\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 2, max_filtration_value, \"Lazy-Witness Sphere\", \"lw_sphere_2.png\")\n\n\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/torus_witness_example.jy",
    "content": "#!/usr/bin/env jython\n\nimport sys\n\n# Todo: make sure that this points to the correct location\nlibs = [\n    \"../lib/javaplex.jar\"\n    ]\nfor s in libs:\n    sys.path.append(s)\n\nimport edu.stanford.math.plex4\nimport edu.stanford.math.plex4.api\nimport edu.stanford.math.plex4.examples\nimport edu.stanford.math.plex4.io\n\n# This script calculates the intervals for a Lazy-Witness complex generated\n# from random points on the 2-sphere\n\ndimension = 2\nnum_points = 10000\nnum_landmark_points = 100\nmax_filtration_value = 0.1\n\n# create the set of points\npoint_cloud = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomTorusPoints(num_points, 0.5, 1)\n\n# create a randomized landmark selector\nlandmark_selector = edu.stanford.math.plex4.api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points)\n# create a Lazy-Witness Stream - note that this sets the number of\n# divisions to the default value of 20\nstream = edu.stanford.math.plex4.api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value, 1000)\n\n# print out the size of the stream - will be quite large since the complex\n# construction is very sensitive to the maximum filtration value\nsize = stream.getSize()\n\n# get the default persistence algorithm\npersistence = edu.stanford.math.plex4.api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1)\n\n# compute the intervals and transform them to filtration values\nfiltration_value_intervals = persistence.computeIntervals(stream)\n\n## Output\n\n# create the barcode plots\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 0, max_filtration_value, \"Lazy-Witness Torus\", \"lw_torus_0.png\")\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 1, max_filtration_value, \"Lazy-Witness Torus\", \"lw_torus_1.png\")\nedu.stanford.math.plex4.io.BarcodeWriter.getInstance().writeToFile(filtration_value_intervals, 2, max_filtration_value, \"Lazy-Witness Torus\", \"lw_torus_2.png\")\n\n\n"
  },
  {
    "path": "src/matlab/for_distribution/jython/visualization_example.jy",
    "content": "#!/usr/bin/env jython\n\nimport sys\n\n# Todo: make sure that this points to the correct location\nlibs = [\n    \"../lib/javaplex.jar\",\n    \"../lib/plex-viewer.jar\"\n    ]\nfor s in libs:\n    sys.path.append(s)\n\nimport edu.stanford.math.plex4\nimport edu.stanford.math.plex4.api\nimport edu.stanford.math.plex4.examples\nimport edu.stanford.math.plex4.io\n\nimport edu.stanford.math.plex_viewer.pov\n\ntorus_points = edu.stanford.math.plex4.examples.PointCloudExamples.getRandomTorusPoints(400, 0.4, 0.8)\ntorus_stream = edu.stanford.math.plex4.api.Plex4.createVietorisRipsStream(torus_points, 2, 0.4)\n\nwriter = edu.stanford.math.plex_viewer.pov.SimplexStreamPovWriter()\n\nwriter.writeToFile(torus_stream, torus_points, 'torus.pov')\n\n"
  },
  {
    "path": "src/matlab/for_distribution/load_javaplex.m",
    "content": "% This script prepares the javaplex library for use\n\nclc; clear all; close all;\n% clear import;\n\njavaaddpath('./lib/javaplex.jar');\nimport edu.stanford.math.plex4.*;\n\njavaaddpath('./lib/plex-viewer.jar');\nimport edu.stanford.math.plex_viewer.*;\n\ncd './utility';\naddpath(pwd);\ncd '..';\n\n\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/bottleneck_distance_example.m",
    "content": "% This script shows the bottleneck distance example\n\n%% Bottleneck Distance Example\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get new ExplicitSimplexStreams\nstreamA = api.Plex4.createExplicitSimplexStream();\nstreamB = api.Plex4.createExplicitSimplexStream();\n\n% construct complex A\nstreamA.addVertex(1, 0);\nstreamA.addVertex(2, 0);\nstreamA.addVertex(3, 0);\nstreamA.addVertex(4, 0);\nstreamA.addVertex(5, 1);\nstreamA.addElement([1, 2], 0);\nstreamA.addElement([2, 3], 0);\nstreamA.addElement([3, 4], 0);\nstreamA.addElement([4, 1], 0);\nstreamA.addElement([3, 5], 2);\nstreamA.addElement([4, 5], 3);\nstreamA.addElement([3, 4, 5], 7);\nstreamA.finalizeStream();\n\n% construct complex B\nstreamB.addVertex(1, 0);\nstreamB.addVertex(2, 0);\nstreamB.addVertex(3, 0);\nstreamB.addVertex(4, 0);\nstreamB.addVertex(5, 2);\nstreamB.addElement([1, 2], 0);\nstreamB.addElement([2, 3], 0);\nstreamB.addElement([3, 4], 0);\nstreamB.addElement([4, 1], 0);\nstreamB.addElement([3, 5], 2);\nstreamB.addElement([4, 5], 2);\nstreamB.addElement([3, 4, 5], 10);\nstreamB.finalizeStream();\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\n% compute and print the intervals\nintervalsA = persistence.computeIntervals(streamA)\nintervalsB = persistence.computeIntervals(streamB)\n\n% compute the bottleneck distances\nintervalsA_dim0=intervalsA.getIntervalsAtDimension(0);\nintervalsB_dim0=intervalsB.getIntervalsAtDimension(0);\nbottleneck_distance_dim0 = edu.stanford.math.plex4.bottleneck.BottleneckDistance.computeBottleneckDistance(intervalsA_dim0,intervalsB_dim0)\nintervalsA_dim1=intervalsA.getIntervalsAtDimension(1);\nintervalsB_dim1=intervalsB.getIntervalsAtDimension(1);\nbottleneck_distance_dim1 = edu.stanford.math.plex4.bottleneck.BottleneckDistance.computeBottleneckDistance(intervalsA_dim1,intervalsB_dim1)\n\n\n\n\n\n\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/coreSubset.m",
    "content": "function core = coreSubset(points, densities, numPoints)\n\n% INPUT:\n%   points - N x n matrix of N points in R^n\n%   densities - vertical vector of length N whose i-th entry is the \n%       estimated density of the i-th point.\n%   numPoints - nonnegative integer less than or equal to N\n%\n% OUTPUT:\n%   core - numPoints x n matrix of the top numPoints densest points (as \n%       ranked by densities)\n\nimport edu.stanford.math.plex4.*;\n\n[A,sortedDensityIndices] = sort(densities,'descend');\ncore = points(sortedDensityIndices(1:numPoints),:);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/core_subsets_example.m",
    "content": "% This script demonstrates the use of the dense core subjects -\n% Appendix A\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% Prime Numbers Example\n\n% get a list of the first 500 primes\np = primes(3571)';\nlength(p)\n\n% estimate the density at each point with k = 1\ndensities1 = kDensitySlow(p, 1);\n% get the core subset of the top 10% densest points\ncore1 = coreSubset(p, densities1, 10)\n\n% estimate the density at each point with k = 50\ndensities50 = kDensitySlow(p, 50);\n% get the core subset of the top 10% densest points\ncore50 = coreSubset(p, densities50, 10)"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/cyclo_octane_example.m",
    "content": "% This shows the cyclo-octane example - Section 6\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nload pointsCycloOctane.mat\nsize(pointsCycloOctane)\n\nmax_dimension = 3;\nnum_landmark_points = 100;\nmax_filtration_value = 0.5;\nnu = 1;\nnum_divisions = 1000;\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(pointsCycloOctane, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'lazyCycloOctane';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/dct.m",
    "content": "function changeBasisDct = dct(patchSize)\n\n% INPUT:\n%   patchSize - size of the square patches.\n%\n% OUTPUT:\n%   changeBasisDct - patchSize^2 x patchSize^2-1 change-of-basis matrix.\n%       Let p be a matrix of patches, with mean zero and Euclidean norm \n%       one, in the pixel basis. We switch to the DCT (discrete cosine \n%       transform) basis by multiplying by matrix changeBasisDct:\n%           pDct = p * changeBasisDct;\n\nchangeBasisDct = zeros(patchSize^2,patchSize^2-1);\nv = zeros(patchSize^2,1);\nfor i = 0:patchSize-1\n    for j = 0:patchSize-1\n        for k = 0:patchSize-1\n            for m = 0:patchSize-1\n                v(1+k+patchSize*m,1) = cos(pi/patchSize*(k+1/2)*i)*cos(pi/patchSize*(m+1/2)*j);\n            end\n        end\n        if i~=0 || j~=0\n            changeBasisDct(:,i+patchSize*j) = v/norm(v);\n        end\n    end\nend"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/eulerCharacteristic.m",
    "content": "function  eulerCharacteristic(stream, max_dimension)\n\n% INPUT:\n%   stream - an instance of the class AbstractFilteredStream<Simplex>.\n%   max_dimension - the maximal dimension of a simplex in stream.\n%\n% OUTPUT:\n%   This function prints two Euler characteristic calculations: the first\n%   using the alternating sum of cells, and the second using the \n%   alternating sum of Betti numbers.\n\nimport edu.stanford.math.plex4.*;\n\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension + 1, 2);\n\nintervals = persistence.computeIntervals(stream);\ninfinite_barcodes = intervals.getInfiniteIntervals();\n\nbetti_sequence = infinite_barcodes.getBettiSequence();\n\neulerCharCell = 0;\neulerCharBetti = 0;\ncellStr = [];\nbettiStr = [];\n\nfor i = 0:(length(betti_sequence) - 1)\n    eulerCharBetti = eulerCharBetti + (-1)^(i) * betti_sequence(i + 1);\n    \n    if mod(i,2)==0\n        bettiStr = [bettiStr, ' + ', int2str(betti_sequence(i + 1))];\n    else\n        bettiStr = [bettiStr, ' - ', int2str(betti_sequence(i + 1))];\n    end \nend\n\nfor i = 0:(max_dimension)\n    skeleton_size = streams.utility.StreamUtility.getSkeletonSize(stream, i);\n    eulerCharCell = eulerCharCell + (-1)^(i) * skeleton_size;\n    \n    if mod(i,2)==0\n        cellStr = [cellStr, ' + ', int2str(skeleton_size)];\n    else\n        cellStr = [cellStr, ' - ', int2str(skeleton_size)];\n    end \nend\n\ndisp(['The Euler characteristic is ', int2str(eulerCharCell), ' = ', cellStr(4:end), ', using the alternating sum of cells.'])\ndisp(['The Euler characteristic is ', int2str(eulerCharBetti), ' = ', bettiStr(4:end), ', using the alternating sum of Betti numbers.'])"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/euler_characteristic_example.m",
    "content": "% This script shows an Euler characteristic example - Section 7.1\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\ndimension = 6;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% construct simplicial sphere\nstream.addElement(0:(dimension + 1));\nstream.ensureAllFaces();\nstream.removeElementIfPresent(0:(dimension + 1));\nstream.finalizeStream();\n\neulerCharacteristic(stream, dimension)\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/explicit_metric_space_example.m",
    "content": "% This script demonstrates the use of the explicit metric space - Section\n% 4.2\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% House example\n\n% create distance matrix\ndistances = [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]\n\n% create the metric space\nm_space = metric.impl.ExplicitMetricSpace(distances);\n\n% again, remember that indexing is 0-based!\nm_space.distance(0, 2)"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/explicit_simplex_example.m",
    "content": "% This script demonstrates the use of the explicit simplex streams -\n% Section 3.1\n\n%% Circle Example\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% construct a triangle\nstream.addVertex(0);\nstream.addVertex(1);\nstream.addVertex(2);\nstream.addElement([0, 1]);\nstream.addElement([0, 2]);\nstream.addElement([1, 2]);\nstream.finalizeStream();\n\n% print out the total number of simplices in the complex\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\n% compute and print the intervals\nintervals = persistence.computeIntervals(stream)\n\n% compute and print the intervals annotated with a representative cycle\nintervals = persistence.computeAnnotatedIntervals(stream)\n\n%% 9-sphere Example\n\ndimension = 9;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% construct simplicial sphere\nstream.addElement(0:(dimension + 1));\nstream.ensureAllFaces();\nstream.removeElementIfPresent(0:(dimension + 1));\nstream.finalizeStream();\n\n% print out the total number of simplices in the complex\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(dimension + 1, 2);\n\n% compute and print the intervals\nintervals = persistence.computeIntervals(stream)\n\n% compute and print the intervals annotated with a representative cycle\nintervals = persistence.computeAnnotatedIntervals(stream)\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/house_example.m",
    "content": "% This script shows the house example - Section 3.2\n\n%% House Example\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% construct the complex\nstream.addVertex(1, 0);\nstream.addVertex(2, 0);\nstream.addVertex(3, 0);\nstream.addVertex(4, 0);\nstream.addVertex(5, 1);\nstream.addElement([1, 2], 0);\nstream.addElement([2, 3], 0);\nstream.addElement([3, 4], 0);\nstream.addElement([4, 1], 0);\nstream.addElement([3, 5], 2);\nstream.addElement([4, 5], 3);\nstream.addElement([3, 4, 5], 7);\nstream.finalizeStream();\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\n% compute and print the intervals\nintervals = persistence.computeIntervals(stream)\n\n% store the intervals as Matlab matrices\nintervals_dim0 = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility.getEndpoints(intervals, 0, 0)\nintervals_dim1 = edu.stanford.math.plex4.homology.barcodes.BarcodeUtility.getEndpoints(intervals, 1, 0)\n\n% compute and print the intervals annotated with a representative cycle\nintervals = persistence.computeAnnotatedIntervals(stream)\n\n% get the infinite barcodes\ninfinite_barcodes = intervals.getInfiniteIntervals()\n\n% print out betti numbers array\nbetti_numbers_array = infinite_barcodes.getBettiSequence()\n\n% print out betti numbers in form {dimension: betti number}\nbetti_numbers_string = infinite_barcodes.getBettiNumbers()\n\n% create the barcode plots\noptions.filename = 'house';\noptions.max_filtration_value = 8;\noptions.file_format = 'eps';\nplot_barcodes(intervals, options);\n\n% validate\nstream.validateVerbose()\n\n% add illegal simplex\nstream.addElement([1, 4, 5], 0);\n\n% validate again\nstream.validateVerbose()\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/kDensitySlow.m",
    "content": "function densities = kDensitySlow(points, k)\r\n\r\n% INPUT:\r\n%   points - N x n matrix of N points in R^n\r\n%   k - positive integer less than N. This integer is a parameter for our \r\n%       density estimate.\r\n%\r\n% OUTPUT:\r\n%   densities - vertical vector of length N whose i-th entry is the \r\n%       estimated density of the i-th point. The estimated density at a \r\n%       point is the reciprocal of the distance from that point to its \r\n%       k-th closest neighbor.\r\n%\r\n% NOTES:\r\n%   The function kDensitySlow.m uses the function slmetric_pw.m, written by\r\n%   Dahua Lin, to compute distance matrices. Please see\r\n%   http://www.mathworks.com/matlabcentral/fileexchange/15935-computing-pairwise-distances-and-metrics\r\n%   for more information about the function slmetric_pw.m.\r\n%\r\n%   File kdDensitySlow.m is slow for large datasets (thus the name). If you\r\n%   are interested in a faster version, please email Henry Adams. The faster\r\n%   version relies on a MATLAB kd-tree package available here:\r\n%   http://www.mathworks.com/matlabcentral/fileexchange/21512-kd-tree-for-matlab\r\n\r\n% CONSTANTS:\r\nblockSize = 500; % If blockSize too small, the function will be slower than \r\n% it would be otherwise. If blockSize is too large, there will not be \r\n% enough memory for the computation. My default is blockSize = 500.\r\nmaxMatrixSize = 25000000; % This m-file will not create a matrix bigger than\r\n% maxMatrixSize. Constant blocksize will be lowered so that\r\n% N*blockSize<=maxMatrixSize.\r\n\r\nN = size(points,1); % N is the number of points\r\nif N*blockSize > maxMatrixSize\r\n    blockSize = floor(maxMatrixSize/N);\r\n    disp('Constant blockSize has been lowered. Expect a very long computation time. Please open m-file kDensitySlow.m for details.')\r\nend\r\n\r\ndensities = zeros(N,1);\r\nfor i = 1:floor(N/blockSize)\r\n    distances = slmetric_pw(points', points(blockSize*(i-1)+1:blockSize*i,:)', 'eucdist');\r\n    sortedDistances = sort(distances);\r\n    densities(blockSize*(i-1)+1:blockSize*i) = 1./sortedDistances(k+1,:)';\r\nend\r\n\r\n%remaining points\r\nnextPoint = floor(N/blockSize)*blockSize+1;\r\nif nextPoint <= N\r\n    distances = slmetric_pw(points', points(nextPoint:N,:)', 'eucdist');\r\n    sortedDistances = sort(distances);\r\n    densities(nextPoint:N) = 1./sortedDistances(k+1,:)';\r\nend\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction M = slmetric_pw(X1, X2, mtype, varargin)\r\n%SLMETRIC_PW Compute the metric between column vectors pairwisely\r\n%\r\n% [ Syntax ]\r\n%   - M = slmetric_pw(X1, X2, mtype);\r\n%   - M = slmetric_pw(X1, X2, mtype, ...);\r\n%\r\n% [ Arguments ]\r\n%   - X1, X2:       the sample matrices\r\n%   - mtype:        the string indicating the type of metric\r\n%   - M:            the resulting metric matrix\r\n%\r\n% [ Description ]\r\n%    - M = slmetric_pw(X1, X2, mtype) Computes the metrics between\r\n%      column vectors of X1 and X2 pairwisely, using the metric\r\n%      specified by mtype. \r\n%\r\n%      Both X1 and X2 are matrices with each column representing a \r\n%      sample. X1 and X2 should have the same number of rows. Suppose\r\n%      the size of X1 is d x n1, and the size of X2 is d x n2. Then \r\n%      the output metric matrix M will be of size n1 x n2, in which\r\n%      M(i, j) is the metric value between X1(:,i) and X2(:,j).\r\n%\r\n%    - M = slmetric_pw(X1, X2, mtype, ...) Some metric types requires\r\n%      extra parameters, which should be specified in params.\r\n%\r\n%      The supported metrics of this function are listed as follows: \r\n%      \\{:\r\n%        - eucdist:        Euclidean distance: \r\n%                          $ ||x - y|| $\r\n%\r\n%        - sqdist:         Square of Euclidean distance: \r\n%                          $ ||x - y||^2 $\r\n%\r\n%        - dotprod:        Canonical dot product: \r\n%                          $ <x,y> = x^T * y $ \r\n%\r\n%        - nrmcorr:        Normalized correlation (cosine angle):\r\n%                          $ (x^T * y ) / (||x|| * ||y||) $\r\n%\r\n%        - corrdist:       Normalized Correlation distance\r\n%                          $ 1 - nrmcorr(x, y) $\r\n%\r\n%        - angle:          Angle between two vectors (in radian)  \r\n%                          $ arccos (nrmcorr(x, y)) $\r\n%        - quadfrm:        Quadratic form:  \r\n%                          $ x^T * Q * y $\r\n%                         Q is specified in the 1st extra parameter \r\n%\r\n%        - quaddiff:       Quadratic form of difference:\r\n%                          $ (x - y)^T * Q * (x - y) $\r\n%                         Q is specified in the 1st extra parameter \r\n%\r\n%        - cityblk:        City block distance (abssum of difference)\r\n%                          $ sum_i |x_i - y_i| $\r\n%\r\n%        - maxdiff:        Maximum absolute difference  \r\n%                          $ max_i |x_i - y_i| $\r\n%\r\n%        - mindiff:        Minimum absolute difference\r\n%                          $ min_i |x_i - y_i| $\r\n%\r\n%        - minkowski:      Minkowski distance\r\n%                          $ (\\sum_i |x_i - y_i|^p)^(1/p) $\r\n%                         The order p is specified in the 1st extra parameter\r\n%\r\n%        - wsqdist:        Weighted square of Euclidean distance     \r\n%                          $ \\sum_i w_i (x_i - y_i)^2 $\r\n%                         the weights w is specified in 1st extra parameter \r\n%                         as a d x 1 column vector    \r\n%\r\n%        - hamming:        Hamming distance with threshold t\r\n%                          \\{\r\n%                              ht1 = x > t\r\n%                              ht2 = y > t\r\n%                              d = sum(ht1 ~= ht2)                  \r\n%                          \\}\r\n%                         use threshold t as the first extra param.\r\n%                         (by default, t is set to zero).\r\n%\r\n%        - hamming_nrm:    Normalized hamming distance, which equals the\r\n%                          ratio of the elements that differ.\r\n%                          \\{\r\n%                              ht1 = x > t\r\n%                              ht2 = y > t\r\n%                              d = sum(ht1 ~= ht2) / length(ht1)                \r\n%                          \\}\r\n%                          use threshold t as the first extra param.\r\n%                         (by default, t is set to zero).\r\n%\r\n%        - intersect:      Histogram Intersection\r\n%                           $ d = sum min(x, y) / min(sum(x), sum(y))$\r\n%\r\n%        - intersectdis:   Histogram intersection distance\r\n%                           $ d = 1 - sum min(x, y) / min(sum(x), sum(y)) $\r\n%\r\n%        - chisq:          Chi-Square Distance\r\n%                           $ d = sum (x(i) - y(i))^2/(2 * (x(i)+y(i))) $\r\n%\r\n%        - kldiv:          Kull-back Leibler divergence\r\n%                           $ d = sum x(i) log (x(i) / y(i)) $\r\n%\r\n%        - jeffrey:        Jeffrey divergence\r\n%                           $ d = KL(h1, (h1+h2)/2) + KL(h2, (h1+h2)/2) $\r\n%      \\:}\r\n%\r\n% [ Remarks ]\r\n%   - Both X1 and X2 should be a matrix of numeric values, except\r\n%     for case when metric type is 'hamming' or 'hamming_nrm'. \r\n%     For hamming or hamming_nrm metric, the input matrix can be logical.\r\n%\r\n% [ Examples ]\r\n%   - Compute different types of metrics in pairwise manner\r\n%     \\{\r\n%         % prepare sample matrix\r\n%         X1 = rand(10, 100);\r\n%         X2 = rand(10, 150);\r\n%\r\n%         % compute the euclidean distances (L2) \r\n%         % between the samples in X1 and X2\r\n%         M = slmetric_pw(X1, X2, 'eucdist');\r\n%\r\n%         % compute the eucidean distances between the samples\r\n%         % in X1 in a pairwise manner\r\n%         M = slmetric_pw(X1, X1, 'eucdist');\r\n%\r\n%         % compute the city block distances (L1)\r\n%         M = slmetric_pw(X1, X2, 'cityblk'); \r\n%\r\n%         % compute the normalize correlations\r\n%         M = slmetric_pw(X1, X2, 'nrmcorr');\r\n%\r\n%         % compute hamming distances\r\n%         M = slmetric_pw(X1, X2, 'hamming', 0.5);\r\n%         M2 = slmetric_pw((X1 > 0.5), (X2 > 0.5), 'hamming');\r\n%         assert(isequal(M, M2));\r\n%     \\}\r\n%\r\n%   - Compute the parameterized metrics\r\n%     \\{\r\n%         % compute weighted squared distances with user-supplied weights\r\n%         weights = rand(10, 1);\r\n%         M = slmetric_pw(X1, X2, 'wsqdist', weights);\r\n%\r\n%         % compute quadratic distances (x-y)^T * Q (x-y)\r\n%         Q = rand(10, 10);\r\n%         M = slmetric_pw(X1, X2, 'quaddiff', Q);\r\n%\r\n%         % compute Minkowski distance of order 3         \r\n%         M = slmetric_pw(X1, X2, 'minkowski', 3);\r\n%     \\}\r\n%\r\n% [ History ]\r\n%   - Created by Dahua Lin on Dec 06th, 2005\r\n%   - Modified by Dahua Lin on Apr 21st, 2005\r\n%       - regularize the error reporting\r\n%   - Modified by Dahua Lin on Sep 11st, 2005\r\n%       - completely rewrite the core codes based on new mex computation \r\n%         cores, and the runtime efficiency in both time and space is \r\n%         significantly increased.\r\n%   - Modified by Dahua Lin on Jul 02, 2007\r\n%       - rewrite the core computation based on the bsxfun introduced in\r\n%         MATLAB R2007a\r\n%       - rewrite the core-mex for cityblk, maxdiff, mindiff\r\n%       - introduce new metrics: corrdist, minkowski\r\n%   - Modified by Dahua Lin on Jul 30, 2007\r\n%       - Add the metric types for histograms, which are originally\r\n%         implemented in slhistmetric_pw in sltoolbox v1.\r\n%   - Modified by Dahua Lin on Aug 16, 2007\r\n%       - revise some of the help contents\r\n%\r\n\r\n\r\n%% parse and verify input arguments\r\nerror(nargchk(3, inf, nargin));\r\nassert(ischar(mtype), 'sltoolbox:slmetric_pw:invalidarg', ...\r\n    'The metric type should be a string.');\r\n\r\nif strcmp(mtype, 'hamming') || strcmp(mtype, 'hamming_nrm')\r\n    assert((isnumeric(X1) || islogical(X1)) && ndims(X1) == 2 && ...\r\n           (isnumeric(X2) || islogical(X2)) && ndims(X2) == 2, ...\r\n        'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be numeric or logical matrices.');        \r\nelse\r\n    assert(isnumeric(X1) && ndims(X1) == 2 && isnumeric(X2) && ndims(X2) == 2, ...\r\n        'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be numeric matrices.');\r\nend\r\n\r\nassert(isa(X2, class(X1)), ...\r\n    'sltoolbox:slmetric_pw:invalidarg', 'X1 and X2 should be of the same class.');\r\n\r\nif isempty(X1) || isempty(X2)\r\n    M = [];\r\n    return;\r\nend\r\n\r\n\r\n%% compute\r\nswitch mtype        \r\n    case {'eucdist', 'sqdist'}\r\n        checkdim(X1, X2);        \r\n        M = bsxfun(@plus, sum(X1 .* X1, 1)', (-2) * X1' * X2);        \r\n        M = bsxfun(@plus, sum(X2 .* X2, 1), M);        \r\n        M(M < 0) = 0;                        \r\n        if strcmp(mtype, 'eucdist')\r\n            M = sqrt(M);\r\n        end \r\n        \r\n    case 'dotprod'\r\n        checkdim(X1, X2);        \r\n        M = X1' * X2;\r\n                \r\n    case {'nrmcorr', 'corrdist', 'angle'}\r\n        checkdim(X1, X2);\r\n        ns1 = sqrt(sum(X1 .* X1, 1));\r\n        ns2 = sqrt(sum(X2 .* X2, 1));\r\n        ns1(ns1 == 0) = 1;  \r\n        ns2(ns2 == 0) = 1;\r\n        M = bsxfun(@times, X1' * X2, 1 ./ ns1');\r\n        M = bsxfun(@times, M, 1 ./ ns2);\r\n        switch mtype\r\n            case 'corrdist'\r\n                M = 1 - M;\r\n            case 'angle'\r\n                M = real(acos(M));\r\n        end\r\n                \r\n    case 'quadfrm'\r\n        Q = varargin{1};       \r\n        M = X1' * Q * X2;\r\n        \r\n    case 'quaddiff'\r\n        checkdim(X1, X2);        \r\n        Q = varargin{1};\r\n        M = X1' * (-(Q + Q')) * X2;\r\n        M = bsxfun(@plus, M, sum(X1 .* (Q * X1), 1)');\r\n        M = bsxfun(@plus, M, sum(X2 .* (Q * X2), 1));        \r\n                        \r\n    case 'cityblk'\r\n        checkdim(X1, X2);  \r\n        M = pwmetrics_cimp(X1, X2, int32(1));\r\n                        \r\n    case 'maxdiff'\r\n        checkdim(X1, X2); \r\n        M = pwmetrics_cimp(X1, X2, int32(3));\r\n        \r\n    case 'mindiff'\r\n        checkdim(X1, X2);  \r\n        M = pwmetrics_cimp(X1, X2, int32(2));\r\n        \r\n    case 'minkowski'\r\n        checkdim(X1, X2);\r\n        pord = varargin{1};\r\n        if ~isscalar(pord)\r\n            error('sltoolbox:slmetric_pw:invalidparam', ...\r\n                'the mikowski order should be a scalar');\r\n        end\r\n        pord = cast(pord, class(X1));        \r\n        M = pwmetrics_cimp(X1, X2, int32(4), pord);\r\n                       \r\n    case 'wsqdist'\r\n        d = checkdim(X1, X2);\r\n        w = varargin{1};\r\n        if ~isequal(size(w), [d, 1])\r\n            error('sltoolbox:slmetric_pw:invalidparam', ...\r\n                'the weights should be given as a d x 1 vector.');\r\n        end              \r\n        wX2 = bsxfun(@times, X2, w);\r\n        M = bsxfun(@plus, (-2) * X1' * wX2, sum(wX2 .* X2, 1));\r\n        clear wX2;        \r\n        wX1 = bsxfun(@times, X1, w);\r\n        M = bsxfun(@plus, M, sum(wX1 .* X1, 1)');      \r\n        \r\n    case {'hamming', 'hamming_nrm'}\r\n        checkdim(X1, X2);\r\n        if islogical(X1) && islogical(X2)\r\n            H1 = X1;\r\n            H2 = X2;\r\n        else\r\n            if isempty(varargin)\r\n                t = 0;\r\n            else\r\n                t = varargin{1};\r\n                assert(isnumeric(t) && isscalar(t), ...\r\n                    'sltoolbox:slmetric_pw:invalidparam', 't should be a numeric scalar.');\r\n            end\r\n            H1 = X1 > t;\r\n            H2 = X2 > t;\r\n        end\r\n        M = pwhamming_cimp(H1, H2);\r\n        if strcmp(mtype, 'hamming_nrm')\r\n            M = M / size(H1, 1);\r\n        end\r\n        \r\n    case 'intersect'\r\n        checkdim(X1, X2);\r\n        M = pwmetrics_cimp(X1, X2, int32(5));\r\n        \r\n    case 'intersectdis'\r\n        checkdim(X1, X2);\r\n        M = 1 - pwmetrics_cimp(X1, X2, int32(5));\r\n        \r\n    case 'chisq'\r\n        checkdim(X1, X2);\r\n        M = pwmetrics_cimp(X1, X2, int32(6));\r\n        \r\n    case 'kldiv'\r\n        checkdim(X1, X2);\r\n        M = pwmetrics_cimp(X1, X2, int32(7));\r\n        \r\n    case 'jeffrey'\r\n        checkdim(X1, X2);\r\n        M = pwmetrics_cimp(X1, X2, int32(8));\r\n        \r\n    otherwise\r\n        error('sltoolbox:slmetric_pw:unknowntype', 'Unknown metric type %s', mtype);\r\n        \r\n        \r\nend\r\n        \r\n%% Auxiliary function\r\n\r\nfunction d = checkdim(X1, X2)\r\n\r\nd = size(X1, 1);\r\nif d ~= size(X2, 1)\r\n    error('sltoolbox:slmetric_pw:sizmismatch', ...\r\n        'X1 and X2 have different sample dimensions');\r\nend\r\n\r\n\r\n\r\n\r\n\r\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/landmark_example.m",
    "content": "% This script shows the difference between randomized and maxmin landmark\n% selection - Section 5.2\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% Figure 8 Example\n\n% initialize the point cloud\npoint_cloud = examples.PointCloudExamples.getRandomFigure8Points(1000);\n\n% create the landmark selectors\nnum_landmark_points = 100;\nrandom_selector = api.Plex4.createRandomSelector(point_cloud, num_landmark_points);\nmaxmin_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\n\n% extract the subset of landmark points from the original point cloud\n% Note: we need to increment the indices by 1 since Java uses 0-based\n% arrays\nrandom_points = point_cloud(random_selector.getLandmarkPoints() + 1, :);\nmaxmin_points = point_cloud(maxmin_selector.getLandmarkPoints() + 1, :);\n\n% Plot the landmark points\nsubplot(1, 2, 1);\nscatter(random_points(:,1), random_points(:, 2), '+');\ntitle('Random landmark selection');\n\nsubplot(1, 2, 2);\nscatter(maxmin_points(:,1), maxmin_points(:, 2), '+');\ntitle('Maxmin landmark selection');\n\nprint('-depsc', 'landmarks.eps');\nsystem('epstopdf landmarks.eps')\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/lazy_witness_example.m",
    "content": "% This script calculates the intervals for a lazy witness complex - \n% Section 5.3\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% 2-Sphere Example\n\nmax_dimension = 3;\nnum_points = 1000;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, max_dimension - 1);\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = 2 * R;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'lazySphere';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/optical_image_example.m",
    "content": "% This shows the optical image patch example - Section 6\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% k = 300\nload pointsOpticalDct_k300.mat\nsize(pointsOpticalDct_k300)\n\nmax_dimension = 3;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 1000;\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(pointsOpticalDct_k300, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R / 4;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'lazyOpticalDct-k300';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\n% plot a projection of the dataset onto the first two DCT basis vectors\nfigure\nscatter(pointsOpticalDct_k300(:,1), pointsOpticalDct_k300(:,2), '.')\naxis square\n\n% k = 15\nload pointsOpticalDct_k15.mat\nsize(pointsOpticalDct_k15)\n\nmax_dimension = 3;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 500;\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(pointsOpticalDct_k15, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R / 4;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'lazyOpticalDct-k15';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\n% plot a projection of the dataset onto the first two DCT basis vectors\nfigure\nscatter(pointsOpticalDct_k15(:,1), pointsOpticalDct_k15(:,2), '.')\naxis square"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/pointcloud_example.m",
    "content": "% This script demonstrates the use of various point clouds - Section 4.1\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% House Example\n\n% create the set of points\npoint_cloud = [-1,0; 1,0; 1,2; -1,2; 0,3]\n\n% various examples of metric space methods\nm_space = metric.impl.EuclideanMetricSpace(point_cloud);\n% NB: javaPlex uses 0-based arrays!\nm_space.getPoint(0)\nm_space.getPoint(2)\nm_space.distance(m_space.getPoint(0), m_space.getPoint(2))\n\n%% Figure 8 Example\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomFigure8Points(1000);\n\nfigure\nscatter(point_cloud(:,1), point_cloud(:,2), '.')\naxis equal\n\n%% Torus Example\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomTorusPoints(2000, 1, 2);\n\nfigure\nscatter3(point_cloud(:,1), point_cloud(:,2), point_cloud(:,3), '.')\naxis equal\nview(60,40)\n\n%% Sphere Product Example\n\n% create the set of points\n% The following gets 1000 points on the torus S^1 x S^1 in R^4\n% One can use the same to get uniformly random points on S^k x ... x S^k\n% (any finite product of k-spheres)\npoint_cloud = examples.PointCloudExamples.getRandomSphereProductPoints(1000, 1, 2);\n\nfigure\nscatter(point_cloud(:,3), point_cloud(:,4), '.')\naxis equal\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/range_image_example.m",
    "content": "% This shows the range image patch example - Section 6\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nload pointsRange.mat\nsize(pointsRange)\n\nmax_dimension = 3;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 1000;\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(pointsRange, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R / 3;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\n\n% print out the size of the stream - will be quite large since the complex\n% construction is very sensitive to the maximum filtration value\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'lazyRange';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\n%% DCT\n\npointsRangeDct = pointsRange * dct(5);\n\nfigure;\nscatter(pointsRangeDct(:,1), pointsRangeDct(:,5), '.')\naxis square\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/rips_example.m",
    "content": "%% This script demonstrates the use of plex on a simple \"house\" example - \n%% Section 5.1\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% House Example\n\nmax_dimension = 3;\nmax_filtration_value = 4;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = [-1,0; 1,0; 1,2; -1,2; 0,3];\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'ripsHouse';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\n%% Torus Example\n\nmax_dimension = 3;\nmax_filtration_value = 0.9;\nnum_divisions = 1000;\n\n% create the set of points\nload pointsTorusGrid.mat\npoint_cloud = pointsTorusGrid;\nsize(point_cloud)\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'ripsTorus';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\noptions.side_by_side = true;\nplot_barcodes(intervals, options);\n\n% get the infinite barcodes\ninfinite_barcodes = intervals.getInfiniteIntervals();\n\n% print out betti numbers array\nbetti_numbers_array = infinite_barcodes.getBettiSequence()"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/sublevelset_example.m",
    "content": "% This script shows a sublevelset persistence example - Section 7.6\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% Example: Random input\nfilename='random';\nM=rand(100,100);\nintervals_sub = sublevelset_persistence(M,filename)\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/sublevelset_persistence.m",
    "content": "function intervals = sublevelset_persistence(M,filename)\n\n% INPUT:\n%   M - a matrix of size n x m\n%\n% OUTPUT:\n%   This function computes the sublevelset persistent homology of M in\n%   homological dimension 0 and 1.\n\nimport edu.stanford.math.plex4.*;\n\n[n,m]=size(M);\n\nmax_dimension=2;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream(max(max(M)));\n% The parameter max(max(M)) is supposed to be an upper bound on all\n% filtration values; if it is not added then Javaplex will round all\n% filtration values to be integers.\n\n% add vertices\nfor i=1:n\n    for j=1:m\n        stream.addVertex(ijNum(i,j,n),M(i,j));\n    end\nend\n\n% add horizontal edges\nfor i=1:n\n    for j=1:m-1\n        stream.addElement([ijNum(i,j,n),ijNum(i,j+1,n)],max(M(i,j),M(i,j+1)));\n    end\nend\n\n% add vertical edges\nfor i=1:n-1\n    for j=1:m\n        stream.addElement([ijNum(i,j,n),ijNum(i+1,j,n)],max(M(i,j),M(i+1,j)));\n    end\nend\n\n% add triangles and diagonal edges\nfor i=1:n-1\n    for j=1:m-1\n        filtValue=max([M(i,j),M(i,j+1),M(i+1,j),M(i+1,j+1)]);\n        stream.addElement([ijNum(i,j,n),ijNum(i+1,j+1,n)],filtValue);\n        stream.addElement([ijNum(i,j,n),ijNum(i,j+1,n),ijNum(i+1,j+1,n)],filtValue);\n        stream.addElement([ijNum(i,j,n),ijNum(i+1,j,n),ijNum(i+1,j+1,n)],filtValue);\n    end\nend\n\n%iterator = stream.iterator();\n%while (iterator.hasNext())\n%  simplex = iterator.next()\n%  filtration_value = stream.getFiltrationValue(simplex);\n%  disp(filtration_value)\n%end\n\nstream.finalizeStream();\n% num_simplimces = stream.getSize();\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\nintervals = persistence.computeIntervals(stream);\n% create the barcode plots\noptions.filename = filename;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\nend\n\n% The input to this function are the indices i,j in a matrix, and the\n% number of rows in the matrix n.\n% The output is the corresponding vertex number from 0 to (n+1)*(m+1)-1.\n% Vertices are counted from 0 to n*m-1, with the first column\n% labeled from 0 to n-1, where i ranges from 1 to the number of rows n, and\n% j ranges from 1 to the number of columns m.\nfunction vertexNumber=ijNum(i,j,n)\n\nvertexNumber=(i-1)+(j-1)*n;\n\nend"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_examples/witness_example.m",
    "content": "% This script calculates the intervals for a witness complex - Section 5.3\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n%% Torus Example\n\nnum_points = 10000;\nnum_landmark_points = 50;\nmax_dimension = 3;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomSphereProductPoints(num_points, 1, 2);\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R / 8;\n\n% create a witness stream\nstream = api.Plex4.createWitnessStream(landmark_selector, max_dimension, max_filtration_value, num_divisions);\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'witnessTorus';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_1.m",
    "content": "% Exercise 1\n\n% We order the vertices in a clockwise fashion, starting with\n% vertex 1 on the top left.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% add simplices\nfor i = 1:6\n    stream.addVertex(i);\nend\n\nstream.addElement([1, 2]);\nstream.addElement([1, 6]);\nstream.addElement([2, 3]);\nstream.addElement([2, 5]);\nstream.addElement([3, 4]);\nstream.addElement([3, 5]);\nstream.addElement([4, 5]);\nstream.addElement([5, 6]);\n\nstream.addElement([2, 3, 5]);\n\nstream.finalizeStream();\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\n% compute and print the intervals\nintervals = persistence.computeIntervals(stream)\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_11.m",
    "content": "% Exercise 11\n\n%% This script demonstrates the Vietoris-Rips complex on n evenly spaced \n%% points around the circle.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 4;\nmax_filtration_value = 2;\nnum_divisions = 1000;\n\n% Select n evenly-spaced points from the circle\nn=15;\npoint_cloud = [cos(2*pi/n*(0:n-1)'),sin(2*pi/n*(0:n-1)')];\nscatter(point_cloud(:,1),point_cloud(:,2)), axis equal\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'ripsCircle';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_12.m",
    "content": "% Exercise 12\n\n% Our planar dataset is 6 evenly spaced points on the unit circle. We build\n% a Vietoris-Rips stream which, at the correct filtration value, is an \n% octahedron.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nn = 6;\n\nangles = 2 * pi/n * (1:n)';\npointsS1 = [cos(angles), sin(angles)];\nscatter(pointsS1(:,1), pointsS1(:,2)), axis equal\n\nmax_dimension = 2;\nmax_filtration_value = 2;\nnum_divisions = 1000;\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(pointsS1, max_dimension + 1, max_filtration_value, num_divisions);\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension + 1, 2);\n\n% compute and print the intervals\nintervals = persistence.computeIntervals(stream)\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_13.m",
    "content": "% Exercise 13\n\n% Our planar dataset is 14 evenly spaced points on the unit circle. We \n% build a Vietoris-Rips stream which, at the correct filtration value, is \n% homeomorphic to the 6-sphere. It has 14 vertices because it is obtained \n% by suspending the 0-sphere six times, for a total of 2 + (6 * 2) = 14 \n% vertices.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nn = 14;\n\nangles = 2 * pi/n * (1:n)';\npointsS1 = [cos(angles), sin(angles)];\nscatter(pointsS1(:,1), pointsS1(:,2)), axis equal\n\nmax_dimension = 7;\nmax_filtration_value = 2;\nnum_divisions = 1000;\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(pointsS1, max_dimension + 1, max_filtration_value, num_divisions);\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension + 1, 2);\n\n% compute and print the intervals\nintervals = persistence.computeIntervals(stream)\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_14.m",
    "content": "% Exercise 14\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 4;\nmax_filtration_value = 5;\nnum_divisions = 1000;\n\n% Select the 8 vertices of the cube\npoint_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];\nscatter3(point_cloud(:,1),point_cloud(:,2),point_cloud(:,3)), view(100,10)\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'ripsCube';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_2.m",
    "content": "% Exercise 2\n\n% We use 9 vertices, which we think of as a 3x3 grid numbered as a \n% telephone keypad. We identify opposite sides. For a picture, see \n% Appendix B of the tutorial.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% add simplices\nstream.addElement([1, 2, 7]);\nstream.addElement([2, 7, 8]);\nstream.addElement([2, 3, 8]);\nstream.addElement([3, 8, 9]);\nstream.addElement([1, 3, 9]);\nstream.addElement([1, 7, 9]);\nstream.addElement([4, 7, 8]);\nstream.addElement([4, 5, 8]);\nstream.addElement([5, 8, 9]);\nstream.addElement([5, 6, 9]);\nstream.addElement([6, 7, 9]);\nstream.addElement([4, 6, 7]);\n\nstream.addElement([1, 4, 5]);\nstream.addElement([1, 2, 5]);\nstream.addElement([2, 5, 6]);\nstream.addElement([2, 3, 6]);\nstream.addElement([3, 6, 4]);\nstream.addElement([1, 3, 4]);\n\nstream.ensureAllFaces();\n\nstream.finalizeStream();\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\n% compute and print the intervals\nintervals = persistence.computeIntervals(stream)\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_21.m",
    "content": "% Exercise 21\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 3;\nnum_points = 1000;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 1000;\n\n% select points from the square [0,1] x [0,1] and then compute the distance\n% matrix for these points under the induced metric on the flat torus\ndistances = flatTorusDistanceMatrix(num_points);\n\n% create an explicit metric space from this distance matrix\nm_space = metric.impl.ExplicitMetricSpace(distances);\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4. createMaxMinSelector(m_space, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream();\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'lazyWitnessFlatTorus';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_22.m",
    "content": "% Exercise 22\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 3;\nnum_points = 1000;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 1000;\n\n% select points from the square [0,1] x [0,1] and then compute the distance\n% matrix for these points under the induced metric on the flat Klein bottle\ndistances = flatKleinDistanceMatrix(num_points);\n\n% create an explicit metric space from this distance matrix\nm_space = metric.impl.ExplicitMetricSpace(distances);\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4. createMaxMinSelector(m_space, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = R;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream();\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\nZ2_persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nZ2_intervals = Z2_persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions = struct;\noptions.filename = 'lazyWitnessFlatKlein-Z2';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(Z2_intervals, options);\n\n% get persistence algorithm over Z/3Z\nZ3_persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 3);\n\n% compute the intervals\nZ3_intervals = Z3_persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions = struct;\noptions.filename = 'lazyWitnessFlatKlein-Z3';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(Z3_intervals, options);\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_23.m",
    "content": "% Exercise 23\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 3;\nnum_points = 1000;\nnum_landmark_points = 50;\nnu = 1;\nnum_divisions = 1000;\n\n% select points from the unit sphere S^2 and then compute the distance\n% matrix for these points under the induced metric on the projective plane\ndistances = projPlaneDistanceMatrix(num_points);\n\n% create an explicit metric space from this distance matrix\nm_space = metric.impl.ExplicitMetricSpace(distances);\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4. createMaxMinSelector(m_space, num_landmark_points);\nR = landmark_selector.getMaxDistanceFromPointsToLandmarks()\nmax_filtration_value = 1.5 * R;\n\n% create a lazy witness stream\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream();\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\nZ2_persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nZ2_intervals = Z2_persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions = struct;\noptions.filename = 'lazyWitnessProjPlane-Z2';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(Z2_intervals, options);\n\n% get persistence algorithm over Z/3Z\nZ3_persistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 3);\n\n% compute the intervals\nZ3_intervals = Z3_persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions = struct;\noptions.filename = 'lazyWitnessProjPlane-Z3';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(Z3_intervals, options);\n"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_24.m",
    "content": "% Exercise 24\n\n% Thanks to Ulrich Bauer for this solution.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 3;\nnum_points = 10000;\nnum_landmark_points = 200;\nnu = 1;\nnum_divisions = 1000;\n\n% create the set of points\npoint_cloud = getDoubleTorusPoints(num_points, 0.001);\n\n% create a sequential maxmin landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\nlandmarks = point_cloud(landmark_selector.getLandmarkPoints() + 1, :);\n\n% plot point cloud in blue and landmarks in red\nhold on;\nplot3(point_cloud(:,1), point_cloud(:,2), point_cloud(:,3), '.')\nplot3(landmarks(:, 1), landmarks(:, 2) , landmarks(:, 3), '.r')\naxis equal\n\n% create a lazy witness stream\nmax_filtration_value = 0.1;\nstream = streams.impl.LazyWitnessStream(landmark_selector.getUnderlyingMetricSpace(), landmark_selector, max_dimension, max_filtration_value, nu, num_divisions);\nstream.finalizeStream()\n\n% print out the size of the stream\nnum_simplices = stream.getSize()\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'doubleTorus';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);\n\n% Note: Between filtration values 0.04 and 0.08, the correct Betti barcodes\n% Betti_0 = 1, Betti_1 = 4, and Betti_2 = 1 are generally obtained."
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_3.m",
    "content": "% Exercise 3\n\n% We use 9 vertices, which we think of as a 3x3 grid numbered as a \n% telephone keypad. We identify opposite sides, with left and right sides \n% identified with a twist. For a picture, see \n% Appendix B of the tutorial.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% add simplices\nstream.addElement([1, 2, 7]);\nstream.addElement([2, 7, 8]);\nstream.addElement([2, 3, 8]);\nstream.addElement([3, 8, 9]);\nstream.addElement([1, 3, 9]);\nstream.addElement([1, 4, 9]);\nstream.addElement([4, 7, 8]);\nstream.addElement([4, 5, 8]);\nstream.addElement([5, 8, 9]);\nstream.addElement([5, 6, 9]);\nstream.addElement([6, 4, 9]);\nstream.addElement([4, 6, 7]);\n\nstream.addElement([1, 4, 5]);\nstream.addElement([1, 2, 5]);\nstream.addElement([2, 5, 6]);\nstream.addElement([2, 3, 6]);\nstream.addElement([3, 6, 7]);\nstream.addElement([1, 3, 7]);\n\nstream.ensureAllFaces();\n\nstream.finalizeStream();\n\n% get persistence algorithm over Z/2Z\nZ2_persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\n% compute and print the intervals\nZ2_intervals = Z2_persistence.computeIntervals(stream)\n\n% get persistence  algorithm over Z/3Z\nZ3_persistence = api.Plex4.getModularSimplicialAlgorithm(3, 3);\n\n% compute and print the intervals\nZ3_intervals = Z3_persistence.computeIntervals(stream)"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_4.m",
    "content": "% Exercise 4\n\n% We use the minimal triangulation for the projective plane, which contains\n% 6 vertices. For a picture, see Appendix B of the tutorial.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\n% get a new ExplicitSimplexStream\nstream = api.Plex4.createExplicitSimplexStream();\n\n% add simplices\nstream.addElement([1, 2, 5]);\nstream.addElement([1, 2, 6]);\nstream.addElement([1, 3, 4]);\nstream.addElement([1, 3, 6]);\nstream.addElement([1, 4, 5]);\nstream.addElement([2, 3, 4]);\nstream.addElement([2, 3, 5]);\nstream.addElement([2, 4, 6]);\nstream.addElement([3, 5, 6]);\nstream.addElement([4, 5, 6]);\n\nstream.ensureAllFaces();\n\nstream.finalizeStream();\n\n% get persistence algorithm over Z/2Z\nZ2_persistence = api.Plex4.getModularSimplicialAlgorithm(3, 2);\n\n% compute and print the intervals\nZ2_intervals = Z2_persistence.computeIntervals(stream)\n\n% get persistence algorithm over Z/3Z\nZ3_persistence = api.Plex4.getModularSimplicialAlgorithm(3, 3);\n\n% compute and print the intervals\nZ3_intervals = Z3_persistence.computeIntervals(stream)"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_5.m",
    "content": "% Exercise 5\n\n% select points from the square [0,1] x [0,1] and then compute the distance\n% matrix for these points under the induced metric on the flat torus\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nnum_points = 1000;\ndistances = flatTorusDistanceMatrix(num_points);\n\n% create an explicit metric space from this distance matrix\nm_space = metric.impl.ExplicitMetricSpace(distances);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_6.m",
    "content": "% Exercise 6\n\n% select points from the square [0,1] x [0,1] and then compute the distance\n% matrix for these points under the induced metric on the flat Klein bottle\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nnum_points = 1000;\ndistances = flatKleinDistanceMatrix(num_points);\n\n% create an explicit metric space from this distance matrix\nm_space = metric.impl.ExplicitMetricSpace(distances);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_7.m",
    "content": "% Exercise 7\n\n% select points from the unit sphere S^2 and then compute the distance\n% matrix for these points under the induced metric on the projective plane\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nnum_points = 1000;\ndistances = projPlaneDistanceMatrix(num_points);\n\n% create an explicit metric space from this distance matrix\nm_space = metric.impl.ExplicitMetricSpace(distances);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_8.m",
    "content": "% Exercise 8\n\n%% This script demonstrates the Vietoris-Rips complex on the \"house with a\n%% garage\"\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 4;\nmax_filtration_value = 5;\nnum_divisions = 1000;\n\n% Select n evenly-spaced points from the circle\nn=9;\npoint_cloud = [-1,0;1,0;1,2;-1,2;0,3;4,0;4,2];\nscatter(point_cloud(:,1),point_cloud(:,2)), axis equal\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'ripsHouseWithGarage';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/exercise_9.m",
    "content": "% Exercise 9\n\n%% This script demonstrates the Vietoris-Rips complex of 75 points randomly\n%% sampled from a figure 8.\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\nmax_dimension = 3;\nmax_filtration_value = 1.1;\nnum_divisions = 1000;\n\n% Select 75 random points from the figure 8 space.\npoint_cloud = examples.PointCloudExamples.getRandomFigure8Points(75);\nscatter(point_cloud(:,1),point_cloud(:,2)), axis equal\n\n% create a Vietoris-Rips stream \nstream = api.Plex4.createVietorisRipsStream(point_cloud, max_dimension, max_filtration_value, num_divisions);\n\n% get persistence algorithm over Z/2Z\npersistence = api.Plex4.getModularSimplicialAlgorithm(max_dimension, 2);\n\n% compute the intervals\nintervals = persistence.computeIntervals(stream);\n\n% create the barcode plots\noptions.filename = 'ripsFigure8';\noptions.max_filtration_value = max_filtration_value;\noptions.max_dimension = max_dimension - 1;\nplot_barcodes(intervals, options);"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/flatKleinDistanceMatrix.m",
    "content": "function distances = flatKleinDistanceMatrix(numPoints)\n\n% INPUT:\n%   numPoints - number of points\n%\n% OUTPUT:\n%   distances - numPoints x numPoints distance matrix for randomly chosen \n%       points on the flat Klein bottle\n\nimport edu.stanford.math.plex4.*;\n\n% sample numPoints random points from [0,1] x [0,1]\npoints = rand(numPoints, 2);\n\n% create an empty matrix of size numPoints x numPoints\ndistances = zeros(numPoints);\n\nfor i = 1 : numPoints\n    for j = i : numPoints;\n        % compute the distance between points i and j in the induced metric\n        % on the flat Klein bottle\n        xDiff = abs(points(i, 1) - points(j, 1));\n        yDiff1 = abs(points(i, 2) - points(j, 2));\n        yDiff2 = abs(points(i, 2) - (1 - points(j, 2)));\n        distances(i, j) = min( [norm([xDiff, yDiff1]), norm([xDiff, 1 - yDiff1]), norm([1 - xDiff, yDiff2]), norm([1 - xDiff, 1 - yDiff2])] );\n        distances(j, i) = distances(i, j);\n    end\nend"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/flatTorusDistanceMatrix.m",
    "content": "function distances = flatTorusDistanceMatrix(numPoints)\n\n% INPUT:\n%   numPoints - number of points\n%\n% OUTPUT:\n%   distances - numPoints x numPoints distance matrix for randomly chosen \n%       points on the flat torus\n\nimport edu.stanford.math.plex4.*;\n\n% sample numPoints random points from [0,1] x [0,1]\npoints = rand(numPoints, 2);\n\n% create an empty matrix of size numPoints x numPoints\ndistances = zeros(numPoints);\n\nfor i = 1 : numPoints\n    for j = i : numPoints;\n        % compute the distance between points i and j in the induced metric\n        % on the flat torus\n        xDiff = abs(points(i, 1) - points(j, 1));\n        yDiff = abs(points(i, 2) - points(j, 2));\n        distances(i, j) = sqrt((min(xDiff, 1 - xDiff))^2 + (min(yDiff, 1 - yDiff))^2);\n        distances(j, i) = distances(i, j);\n    end\nend"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/getDoubleTorusPoints.m",
    "content": "function points = getDoubleTorusPoints(numPoints, tolerance)\n\n% INPUT:\n%   numPoints - number of points\n%   tolerance - tolerance level for accepting a point on the torus\n%\n% OUTPUT:\n%   distances - numPoints x 3 matrix of random points on a double torus\n%       embedded in R^3.\n\nimport edu.stanford.math.plex4.*;\n\npoints = zeros(numPoints, 3);\naccepted = 0;\nwhile (accepted < numPoints)\n    x = 1.1*(2*rand(1) - 1);\n    y = 0.7*(2*rand(1) - 1);\n    z = 0.3*(2*rand(1) - 1);\n    if (abs(((1-x^2)*x^2-y^2)^2 + z^2 - 0.045) < tolerance)\n        accepted = accepted + 1;\n        points(accepted, :) = [x, y, z];\n    end\nend"
  },
  {
    "path": "src/matlab/for_distribution/tutorial_solutions/projPlaneDistanceMatrix.m",
    "content": "function distances = projPlaneDistanceMatrix(numPoints)\n\n% INPUT:\n%   numPoints - number of points\n%\n% OUTPUT:\n%   distances - numPoints x numPoints distance matrix for randomly chosen \n%       points on the projective plane\n\nimport edu.stanford.math.plex4.*;\n\n% sample points from the unit sphere S^2\npoint_cloud = zeros(numPoints, 3);\nfor i = 1 : numPoints\n    point = randn(1, 3);\n    while norm(point) == 0\n        point = randn(1, 3);\n    end\n    point_cloud(i, :) = point / norm(point);\nend\n\n% create an empty matrix of size numPoints x numPoints\ndistances = zeros(numPoints);\n\nfor i = 1 : numPoints\n    for j = i : numPoints\n        % compute the distance between points i and j in the induced metric\n        % on the projective plane\n        dist1 = norm(point_cloud(i, :) - point_cloud(j, :));\n        dist2 = norm(point_cloud(i, :) + point_cloud(j, :));\n        distances(i, j) = min(dist1, dist2);\n        distances(j, i) = distances(i, j);\n    end\nend"
  },
  {
    "path": "src/matlab/for_distribution/utility/convert_sparse_matrix.m",
    "content": "function matlab_sparse_matrix = convert_sparse_matrix(sparse_primitivelib_matrix)\n% matlab_sparse_matrix = convert_sparse_matrix(formal_sum, matrix_converter)\n%\n% INPUTS:\n% sparse_primitivelib_matrix: an object of type DoubleSparseMatrix or\n% IntSparseMatrix\n%\n% OUTPUTS:\n% matlab_sparse_matrix: a matlab sparse matrix equivalent of the java\n% sparse matrix\n\n    import edu.stanford.math.plex4.*;\n    \n    m = sparse_primitivelib_matrix.getNumRows();\n    n = sparse_primitivelib_matrix.getNumColumns();\n    i = sparse_primitivelib_matrix.getRows()' + 1;\n    j = sparse_primitivelib_matrix.getColumns()' + 1;    \n    s = sparse_primitivelib_matrix.getValues()';\n    matlab_sparse_matrix = sparse(m, n);\n    for k = 1:length(i)\n        matlab_sparse_matrix(i(k), j(k)) = s(k);\n    end\nend"
  },
  {
    "path": "src/matlab/for_distribution/utility/create_landmark_pov_file.m",
    "content": "function [filename] = create_landmark_pov_file(landmark_selector, filename)\n\n    import edu.stanford.math.plex_viewer.*;\n\n    pov_writer = pov.LandmarkSelectorPovWriter();\n    pov_writer.writeToFile(landmark_selector, filename);\nend\n\n"
  },
  {
    "path": "src/matlab/for_distribution/utility/create_pov_file.m",
    "content": "function [filename] = create_pov_file(stream, points, filename)\n    import edu.stanford.math.plex_viewer.*;\n\n    pov_writer = pov.SimplexStreamPovWriter();\n    pov_writer.writeToFile(stream, points, filename);\nend\n\n"
  },
  {
    "path": "src/matlab/for_distribution/utility/flatten.m",
    "content": "function index = flatten(i, j, I, J)\n    index = J * (i - 1) + j;\nend"
  },
  {
    "path": "src/matlab/for_distribution/utility/persistence_diagram.m",
    "content": "function persistence_diagram(intervals, min_dimension, max_dimension, filename)\n% INPUT:\n%   intervals - the barcode collection to draw\n%   min_dimension - the minimum dimension to draw persistence diagram for (inclusive)\n%   max_dimension - the maximum dimension to draw persistence diagram for (inclusive)\n%   filename - the png filename to save to (optional)\n% OUTPUT:\n%   This function produces a persistence diagram for dimensions 0, ...,\n%   max_dimension, and displays it on screen. If a filename is specified,\n%   it also saves it to a file.\n\n    import edu.stanford.math.plex4.*;\n\n    threshold = 1e20;\n    \n     max_finite_endpoint = -threshold;\n     min_finite_endpoint = threshold;\n     \n     max_finite_startpoint = -threshold;\n     min_finite_startpoint = threshold;\n        \n     left_infinite_interval_found = 0;\n     right_infinite_interval_found = 0;\n        \n    for dimension = min_dimension:max_dimension\n    \n        endpoints = homology.barcodes.BarcodeUtility.getEndpoints(intervals, dimension, false);\n\n        num_intervals = size(endpoints, 1);\n       \n        \n        for i = 1:num_intervals\n            start = endpoints(i, 1);\n            finish = endpoints(i, 2);\n            \n            if (finish >= threshold)\n                right_infinite_interval_found = 1;\n            end\n            \n            if (start <= -threshold)\n                left_infinite_interval_found = 1;\n            end\n            \n            if (finish < threshold && finish > max_finite_endpoint)\n                max_finite_endpoint = finish;\n            end\n            \n            if (start < threshold && start > max_finite_startpoint)\n                max_finite_startpoint = start;\n            end\n            \n            if (start > -threshold && start < min_finite_startpoint)\n                min_finite_startpoint = start;\n            end\n            \n            if (finish > -threshold && finish < min_finite_endpoint)\n                min_finite_endpoint = finish;\n            end\n        end\n        \n    end\n    \n    h = figure;\n    hold on;\n    \n    if (right_infinite_interval_found)\n        y_max = max_finite_endpoint + 0.2 * (max_finite_endpoint - min_finite_endpoint);\n    else\n        y_max = max_finite_endpoint;\n    end\n    \n    y_min = min_finite_endpoint;\n    \n    if (left_infinite_interval_found)\n        x_min = min_finite_startpoint - 0.2 * (max_finite_startpoint - min_finite_startpoint);\n    else\n        x_min = min_finite_startpoint;\n    end\n    \n    x_max = max_finite_startpoint;\n    \n    for dimension = min_dimension:max_dimension\n        endpoints = homology.barcodes.BarcodeUtility.getEndpoints(intervals, dimension, false);\n        num_intervals = size(endpoints, 1);\n        \n        subhandle = subplot(1, max_dimension + 1, dimension + 1);\n        \n        for i = 1:num_intervals\n            start = endpoints(i, 1);\n            finish = endpoints(i, 2);\n            y = num_intervals - i + 1;\n            \n            if (finish >= threshold && start <= -threshold)\n                line([x_min, x_min], [y_max, y_max], 'Marker', '<');\n            end\n            \n            if (finish >= threshold && start > -threshold)\n                line([start, start], [y_max, y_max], 'Marker', '^');\n            end\n            \n            if (finish < threshold && start <= -threshold)\n               line([x_min, x_min], [finish, finish], 'Marker', '<');\n            end\n            \n            if (finish < threshold && start > -threshold)\n                line([start, start], [finish, finish], 'Marker', 'o');\n            end\n        end\n        \n        \n        axis([min(x_min, y_min), x_max, min(x_min, y_min), y_max]);\n        title(sprintf('Dim %d', dimension));\n        xlabel('Start');\n        ylabel('End');\n        %set(subhandle,'YTick',[]);\n        set(subhandle,'XGrid','on','YGrid','on');\n    end\n    \n    hold off;\n    \n    if (exist('filename'))\n        saveas(h, filename, 'png');\n    end\nend"
  },
  {
    "path": "src/matlab/for_distribution/utility/plot_barcodes.m",
    "content": "function [handle] = plot_barcodes(intervals, options)\n% INPUT:\n%   intervals - the barcode collection to draw\n% OPTIONS:\n%   min_filtration_value - the minimum filtration value (default value is 0)\n%   max_filtration_value - the maximum filtration value (default value inferred from intervals)\n%   min_dimension - the minimum dimension to draw intervals for (inclusive)\n%   max_dimension - the maximum dimension to draw intervals for (inclusive)\n%   filename - the filename to save to without the extension (equal to caption if not specified)\n%   caption - the caption for the image (equal to filename if not specified)\n%   file_format - the file type - png, eps, jpg, etc.\n%   side_by_side - whether to stack the plots side-by-side or not (default is false)\n%   line_width - the thickness of the barcodes (default value 0.5)\n% OUTPUT:\n%   This function produces a plot of the barcodes for dimensions 0, ...,\n%   max_dimension, and displays it on screen. If a filename is specified,\n%   it also saves it to a file. It also returns a handle to the figure drawn.\n\n    import edu.stanford.math.plex4.*;\n    \n    if (~exist('options', 'var'))\n        options = struct;\n    end\n\n    if (isfield(options, 'min_filtration_value'))\n        min_filtration_value = options.min_filtration_value;\n    end\n    \n    if (isfield(options, 'max_filtration_value'))\n        max_filtration_value = options.max_filtration_value;\n    end\n    \n    if (isfield(options, 'min_dimension'))\n        min_dimension = options.min_dimension;\n    else\n        min_dimension = 0;\n    end\n    \n    if (isfield(options, 'max_dimension'))\n        max_dimension = options.max_dimension;\n    else\n        max_dimension = length(intervals.getBettiSequence()) - 1;\n    end\n    \n    if (isfield(options, 'filename'))\n        filename = options.filename;\n    else\n        if (isfield(options, 'caption'))\n            filename = options.caption;\n        end\n    end\n    \n    if (isfield(options, 'caption'))\n        caption = options.caption;\n    else\n        if (isfield(options, 'filename'))\n            caption = options.filename;\n        end\n    end\n    \n    if (isfield(options, 'file_format'))\n        file_format = options.file_format;\n    else\n        file_format = 'png';\n    end\n    \n    if (isfield(options, 'side_by_side'))\n        side_by_side = options.side_by_side;\n    else\n        side_by_side = false;\n    end\n    \n    if (isfield(options, 'line_width'))\n        line_width = options.line_width;\n    else\n        line_width = 0.5;\n    end\n\n    import edu.stanford.math.plex4.*;\n    \n    threshold = 1e20;\n    epsilon = 1e-6;\n    \n    max_finite_endpoint = -threshold;\n    min_finite_endpoint = threshold;\n        \n    left_infinite_interval_found = 0;\n    right_infinite_interval_found = 0;\n        \n    for dimension = min_dimension:max_dimension\n        endpoints = homology.barcodes.BarcodeUtility.getEndpoints(intervals, dimension, false);\n\n        num_intervals = size(endpoints, 1);\n       \n        \n        for i = 1:num_intervals\n            start = endpoints(i, 1);\n            finish = endpoints(i, 2);\n            \n            if (finish >= threshold)\n                right_infinite_interval_found = 1;\n            end\n            \n            if (start <= -threshold)\n                left_infinite_interval_found = 1;\n            end\n            \n            if (finish < threshold && finish > max_finite_endpoint)\n                max_finite_endpoint = finish;\n            end\n            \n            if (start < threshold && start > max_finite_endpoint)\n                max_finite_endpoint = start;\n            end\n            \n            if (start > -threshold && start < min_finite_endpoint)\n                min_finite_endpoint = start;\n            end\n            \n            if (finish > -threshold && finish < min_finite_endpoint)\n                min_finite_endpoint = finish;\n            end\n        end\n        \n    end\n    \n    handle = figure;\n    hold on;\n    \n    if (exist('max_filtration_value', 'var'))\n        x_max = max_filtration_value;\n    elseif (right_infinite_interval_found)\n        x_max = max_finite_endpoint + 0.2 * (max_finite_endpoint - min_finite_endpoint);\n    else\n        x_max = max_finite_endpoint;\n    end\n    \n    if (exist('min_filtration_value', 'var'))\n        x_min = min_filtration_value;\n    elseif (left_infinite_interval_found)\n        x_min = min_finite_endpoint - 0.2 * (max_finite_endpoint - min_finite_endpoint);\n    else\n        x_min = min_finite_endpoint;\n    end\n    \n    point_width = 0.006 * (x_max - x_min);\n    \n    for dimension = min_dimension:max_dimension\n        endpoints = homology.barcodes.BarcodeUtility.getEndpoints(intervals, dimension, false);\n        num_intervals = size(endpoints, 1);\n        \n        if (side_by_side)\n            subhandle = subplot(1, max_dimension + 1 - min_dimension, dimension + 1 - min_dimension);\n        else\n            subhandle = subplot(max_dimension + 1 - min_dimension, 1, dimension + 1 - min_dimension);\n        end\n        \n        for i = 1:num_intervals\n            start = endpoints(i, 1);\n            finish = endpoints(i, 2);\n            y = num_intervals - i + 1;\n            \n            if (finish >= threshold && start <= -threshold)\n                line([x_min, x_max], [y, y], 'LineWidth', line_width);\n                line([x_min, x_min], [y, y], 'Marker', '<', 'LineWidth', line_width);\n                line([x_max, x_max], [y, y], 'Marker', '>', 'LineWidth', line_width);\n            end\n            \n            if (finish >= threshold && start > -threshold)\n                line([start, x_max], [y, y], 'LineWidth', line_width);\n                line([x_max, x_max], [y, y], 'Marker', '>', 'LineWidth', line_width);\n            end\n            \n            if (finish < threshold && start <= -threshold)\n                line([x_min, finish], [y, y], 'LineWidth', line_width);\n                line([x_min, x_min], [y, y], 'Marker', '<', 'LineWidth', line_width);\n            end\n            \n            if (finish < threshold && start > -threshold)\n                if (abs(finish - start) < epsilon)\n                    line([start - 0.5 * point_width, finish + 0.5 * point_width], [y, y], 'LineWidth', line_width);\n                else\n                    line([start, finish], [y, y], 'LineWidth', line_width);\n                end\n            end\n        end\n        \n        axis([x_min, x_max, 0, num_intervals + 1]);\n        set(subhandle,'YTick',[]);\n        set(subhandle,'XGrid','on','YGrid','on');\n        \n        if (exist('caption', 'var'))\n            title(sprintf('%s (dimension %d)', caption, dimension));\n        else\n            ylabel(sprintf('Dim %d', dimension));\n        end\n    end\n    \n    hold off;\n    \n    if (exist('filename', 'var'))\n        saveas(handle, filename, file_format);\n    end\nend\n"
  },
  {
    "path": "src/matlab/for_distribution/utility/render_onscreen.m",
    "content": "function [filename] = render_onscreen(stream, points)\n\n    import edu.stanford.math.plex_viewer.*;\n\n    Api.drawSimplexStream(stream, points);\nend\n\n"
  },
  {
    "path": "src/matlab/for_distribution/utility/render_pov_file.m",
    "content": "function result = render_pov_file(pov_file, width, height)\n    if (~exist('width', 'var'))\n        width = 1200;\n    end    \n\n    if (~exist('height', 'var'))\n        height = 900;\n    end\n    \n    quality = 3;\n    \n    command = sprintf('povray +I%s +W%d, +H%d +Q%d +A', pov_file, width, height, quality);\n    \n    result = system(command);\nend\n"
  },
  {
    "path": "src/matlab/for_distribution/utility/to_sparse_matlab_matrix.m",
    "content": "function matlab_sparse_matrix = to_sparse_matlab_matrix(formal_sum, matrix_converter)\n% matlab_sparse_matrix = to_sparse_matlab_matrix(formal_sum, matrix_converter)\n%\n% INPUTS:\n% formal_sum: an object of type DoubleSparseFormalSum<ObjectObjectPair<M, N>>\n% matrix_converter: the object of type DoubleMatrixConverter<M, N>\n%\n% OUTPUTS:\n% matlab_sparse_matrix: a sparse matrix which represents the same linear\n% transformation as the given formal sum\n\n    import edu.stanford.math.plex4.*;\n    \n    sparse_matrix_object = matrix_converter.toSparseMatrix(formal_sum);\n    matlab_sparse_matrix = convert_sparse_matrix(sparse_matrix_object);\nend"
  },
  {
    "path": "src/matlab/for_distribution/visualization_examples/landmark_set_pov.m",
    "content": "% This script calculates the intervals for a Lazy-Witness complex generated\n% from random points on the 2-sphere\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\ndimension = 2;\nnum_points = 1000;\nnum_landmark_points = 100;\nmax_filtration_value = 0.01;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension);\n\n% create a randomized landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\n% create a Lazy-Witness Stream - note that this sets the number of\n% divisions to the default value of 20\nstream = api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value);\n\n% print out the size of the stream - will be quite large since the complex\n% construction is very sensitive to the maximum filtration value\nsize = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1);\n\n% compute the intervals and transform them to filtration values\nfiltration_value_intervals = persistence.computeIntervals(stream);\n\n%% Output\n\nfilename = 'sphere_landmark.pov';\ncreate_landmark_pov_file(landmark_selector, filename);\nrender_pov_file(filename);\n"
  },
  {
    "path": "src/matlab/for_distribution/visualization_examples/witness_sphere_opengl.m",
    "content": "% This script calculates the intervals for a Lazy-Witness complex generated\n% from random points on the 2-sphere\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\ndimension = 2;\nnum_points = 1000;\nnum_landmark_points = 80;\nmax_filtration_value = 0.1;\n\n% create the set of points\npoint_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension);\n\n% create a maxmin-landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\n% create a Lazy-Witness Stream\nstream = api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value);\n\n% print out the size of the stream - will be quite large since the complex\n% construction is very sensitive to the maximum filtration value\nsize = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1);\n\n% compute the intervals and transform them to filtration values\nfiltration_value_intervals = persistence.computeIntervals(stream);\n\n%% Output\n\nrender_onscreen(stream, point_cloud);"
  },
  {
    "path": "src/matlab/for_distribution/visualization_examples/witness_sphere_pov.m",
    "content": "% This script calculates the intervals for a Lazy-Witness complex generated\n% from random points on the 2-sphere\n\nclc; clear; close all;\nimport edu.stanford.math.plex4.*;\n\ndimension = 2;\nnum_points = 1000;\nnum_landmark_points = 100;\nmax_filtration_value = 0.01;\n\n% create the set of points\n%point_cloud = examples.PointCloudExamples.getRandomSpherePoints(num_points, dimension);\npoint_cloud = examples.PointCloudExamples.getRandomTorusPoints(num_points, 0.4, 0.8);\n\n% create a randomized landmark selector\nlandmark_selector = api.Plex4.createMaxMinSelector(point_cloud, num_landmark_points);\n% create a Lazy-Witness Stream - note that this sets the number of\n% divisions to the default value of 20\nstream = api.Plex4.createLazyWitnessStream(landmark_selector, dimension + 1, max_filtration_value);\n\n% print out the size of the stream - will be quite large since the complex\n% construction is very sensitive to the maximum filtration value\nsize = stream.getSize()\n\n% get the default persistence algorithm\npersistence = api.Plex4.getDefaultSimplicialAlgorithm(dimension + 1);\n\n% compute the intervals and transform them to filtration values\nfiltration_value_intervals = persistence.computeIntervals(stream);\n\n%% Output\n\nfilename = 'sphere.pov';\ncreate_pov_file(stream, point_cloud, filename);\nrender_pov_file(filename);\n"
  },
  {
    "path": "src/processing/javaplex/library.properties",
    "content": "name=javaPlex\nauthorList=Andrew Tausz and Mikael Vejdemo-Johansson and Henry Adams\nurl=http://code.google.com/p/javaplex\ncategory=Geometry, Math\nsentence=Framework for computational topology\nparagraph=\nversion=@VERSION@\nprettyVersion=@PRETTYVERSION@\n\n"
  },
  {
    "path": "src/processing/javaplexDemo/State.java",
    "content": "public enum State {\n  ADDPOINTS,\n  MOVEBOARD,\n  ANIMATE\n};\n"
  },
  {
    "path": "src/processing/javaplexDemo/javaplexDemo.pde",
    "content": "//*****************************************\n// javaPlex called from Processing\n// Demo (c) 2012 Mikael Vejdemo-Johansson\n// Released under the New BSD License with\n// javaPlex.\n\n//*****************************************\n// Imports\n//*****************************************\n\nimport edu.stanford.math.plex4.api.*;\nimport edu.stanford.math.plex4.examples.*;\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.filtration.FiltrationConverter;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.homology.barcodes.*;\nimport java.util.Map.Entry;\nimport java.util.List;\n\n//*****************************************\n// Global variables\n//*****************************************\n\ndouble[][] pts;\n\nfloat offsetX,offsetY,sizeX,sizeY;\nint dragX,dragY,oldmouseX,oldmouseY;\n\ndouble eps = 0.01;\ndouble f = eps;\ndouble maxeps = 0.3;\n\nState state = State.ADDPOINTS;\n\nVietorisRipsStream<double[]> vrs;\nFiltrationConverter fc;\nAbstractPersistenceAlgorithm<Simplex> algo;\nBarcodeCollection<Double> ints=null;\n\n//*****************************************\n// Compute a new VietorisRipsStream\n//*****************************************\n\nvoid setupVRS() {\n  vrs = Plex4.createVietorisRipsStream(pts,2,maxeps,1000);\n  fc = vrs.getConverter();\n  ints=null;\n}\n\n//*****************************************\n// Reset the points buffer\n//*****************************************\n\nvoid resetPoints() {\n      pts=new double[0][2];\n      dragX=0;\n      dragY=0;\n      offsetX=0;\n      offsetY=0;\n      sizeX=5;\n      sizeY=5;\n      f = 10;\n      eps = 10;\n      maxeps = 300;\n}\n\n//*****************************************\n// Global setup function\n//*****************************************\n\nvoid setup() {\n  size(400,400,P2D);\n  frame.setResizable(true);\n  background(255);\n  \n  resetPoints();\n  setupVRS();\n}\n\n//*****************************************\n// On mousepress: \n// * if we can move the board, remember\n//   position for mouse-down so we can \n//   use it in mouseDragged() below.\n// * if we can add points, add a point.\n//*****************************************\n\nvoid mousePressed() {\n  if(state == State.MOVEBOARD) {\n      oldmouseX = mouseX;\n      oldmouseY = mouseY;\n  } else if(state == State.ADDPOINTS) {\n      double[] pt = new double[2];\n\n      translate(dragX,dragY);\n      translate(offsetX,offsetY);\n\n      pt[0] = mouseX;\n      pt[1] = mouseY;\n      \n      println(pt[0]+\",\"+pt[1]);\n      pts = (double[][]) append(pts,pt);\n      setupVRS();\n  }\n}\n\n//*****************************************\n// On mousedrag:\n// Update translation to reflect the offset \n// dragged.\n//*****************************************\n\nvoid mouseDragged() {\n  if(state == State.MOVEBOARD) {\n    dragX=mouseX-oldmouseX;\n    dragY=mouseY-oldmouseY;\n  }\n}\n\n\n//*****************************************\n// On keypress:\n// Implement state changes and other \n// effects as needed.\n// \n// Key mapping implemented is case \n// insensitive:\n// M     -- start moving the board\n// Q     -- quit\n// P     -- start adding points\n// A     -- animate the construction of a \n//          Vietoris-Rips complex\n// C     -- clear the board from its points\n// V     -- recompute a Vietoris-Rips complex\n// H     -- run a homology computation\n// +     -- increase step size by a factor of 10\n// -     -- decrease step size by a factor of 10\n// §     -- output number of points \n// LEFT  -- step Vietoris-Rips complex back\n// RIGHT -- step Vietoris-Rips complex forward\n//*****************************************\n\nvoid keyPressed() {\n  switch(key) {\n    case 'm':\n    case 'M':\n      state=State.MOVEBOARD;\n      break;\n    case 'q':\n    case 'Q':\n      exit();\n      break;\n    case 'p':\n    case 'P':\n      state=State.ADDPOINTS;\n      break;\n    case 'a':\n    case 'A':\n      state=State.ANIMATE;\n      f=eps;\n      break;  \n    case 'c':\n    case 'C':\n      state=State.ADDPOINTS;\n      resetPoints();\n      setupVRS();\n      break;\n    case 'v':\n    case 'V':\n      setupVRS();\n      ints = null;\n      break;\n    case 'h':\n    case 'H':\n      algo = Plex4.getDefaultSimplicialAlgorithm(2);\n      ints = algo.computeIntervals(vrs);\n      println(ints);\n      break;\n    case '+':\n      eps *= 10;\n      println(f+\": \"+eps);\n      break;\n    case '-':\n      eps /= 10;\n      println(f+\": \"+eps);\n      break;\n    case '§':\n      println(pts.length);\n      break;\n    case CODED:\n      switch(keyCode) {\n        case RIGHT:\n          f += eps;\n          println(f+\": \"+eps);\n          break;\n        case LEFT:\n          f -= eps;\n          println(f+\": \"+eps);\n          if(f<0)\n            f=0;\n          break;\n    }\n  }\n}\n\n//*****************************************\n// Main drawing loop. \n// Draws black circles for each point, \n// black lines for each edge, and \n// alpha-channel translucent triangles for\n// each 2-simplex \n// This is also where the Vietoris-Rips \n// parameter is stepped up in the animation\n// mode.\n//*****************************************\n\nvoid draw() {\n  background(255);\n  stroke(0);\n  fill(0);\n\n  if(state == State.ANIMATE && f < maxeps) {\n    f += eps;\n    println(f);\n  }\n\n  translate(dragX,dragY);\n  translate(offsetX,offsetY);\n\n  for(Simplex s : vrs) {\n    double fv = fc.getFiltrationValue(vrs.getFiltrationIndex(s));\n    if(fv > f)\n      continue;\n\n    int[] ix;\n    ix = s.getVertices();\n\n    switch(s.getDimension()) {\n      case 0:\n        fill(0);\n        ellipse((float)pts[ix[0]][0],(float)pts[ix[0]][1],sizeX,sizeY);\n        break;\n      case 1:\n        fill(0);\n        line((float)pts[ix[0]][0],(float)pts[ix[0]][1],\n            (float)pts[ix[1]][0],(float)pts[ix[1]][1]);\n        break;\n      case 2:\n        fill(0,0,255,20);\n        triangle((float)pts[ix[0]][0],(float)pts[ix[0]][1],\n            (float)pts[ix[1]][0],(float)pts[ix[1]][1],\n            (float)pts[ix[2]][0],(float)pts[ix[2]][1]);\n        break;\n      default:\n        continue;\n    }\n  }\n}\n"
  },
  {
    "path": "src/processing/readme.txt",
    "content": "This source code directory (src/processing) carries files relevant for using javaPlex\nas a Processing library. The subdirectory javaplex has the raw templates for files\nneeded to build the Processing plugin library, which gets deposited in dist/Processing\nas part of the build process. The subdirectory javaplexDemo is a Processing sketch\nthat relies on a working installation of the javaplex Processing plugin, and that \ndemonstrates how to integrate the library in a sketch.\n\nIn particular, the javaplexDemo sketch allows the user to place points in a plane\nand to step through the Vietoris-Rips complex on the placed points.\n\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/mapper/ClusteringTest.java",
    "content": "package edu.stanford.math.mapper;\n\nimport java.util.Arrays;\nimport java.util.List;\nimport java.util.Set;\n\nimport edu.stanford.math.clustering.DisjointSetSystem;\nimport edu.stanford.math.clustering.HierarchicalClustering;\nimport edu.stanford.math.clustering.SingleLinkageClustering;\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\nimport edu.stanford.math.plex4.utility.RandomUtility;\n\npublic class ClusteringTest {\n\n\t/**\n\t * @param args\n\t */\n\tpublic static void main(String[] args) {\n\t\t// TODO Auto-generated method stub\n\n\t\tint n = 40;\n\t\tint d = 2;\n\n\t\tRandomUtility.initializeWithSeed(0);\n\n\t\tdouble[][] points = PointCloudExamples.getGaussianPoints(n, d);\n\t\t/*\n\t\t * double[][] points = new double[][]{ new double[]{1}, new double[]{2},\n\t\t * \n\t\t * new double[]{6}, new double[]{7.1}, new double[]{9}, };\n\t\t */\n\t\tEuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points);\n\n\t\tSingleLinkageClustering clustering = new SingleLinkageClustering(metricSpace);\n\n\t\tdouble[] mergeTimes = clustering.getMergedDistances();\n\n\t\tSystem.out.println(Arrays.toString(mergeTimes));\n\n\t\t// List<Set<Integer>> clusters = clustering.getClusterAssignments(4);\n\n\t\tDisjointSetSystem setSystem = clustering.thresholdByNumClusters(3);\n\n\t\tList<Set<Integer>> clusters = HierarchicalClustering.getImpliedClusters(setSystem);\n\n\t\tSystem.out.println(clusters);\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/mapper/HistogramTest.java",
    "content": "package edu.stanford.math.mapper;\n\nimport edu.stanford.math.plex4.utility.RandomUtility;\n\npublic class HistogramTest {\n\n\t/**\n\t * @param args\n\t */\n\tpublic static void main(String[] args) {\n\t\t// TODO Auto-generated method stub\n\n\t\tdouble[] values = RandomUtility.normalArray(10000);\n\n\t\tHistogramCreator hist = new HistogramCreator(values, 20);\n\n\t\tSystem.out.println(hist);\n\t}\n\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/mapper/MapperTest.java",
    "content": "package edu.stanford.math.mapper;\n\nimport java.io.IOException;\nimport java.util.List;\n\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\nimport edu.stanford.math.plex4.graph.AbstractWeightedUndirectedGraph;\nimport edu.stanford.math.plex4.graph.io.GraphDotWriter;\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\nimport edu.stanford.math.plex4.streams.filter.RandomProjectionFilterFunction;\nimport gnu.trove.TIntHashSet;\n\npublic class MapperTest {\n\n\t/**\n\t * @param args\n\t */\n\tpublic static void main(String[] args) {\n\t\tint n = 1000;\n\n\t\tdouble[][] points = PointCloudExamples.getRandomCirclePoints(n);\n\n\t\tEuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points);\n\n\t\tRandomProjectionFilterFunction filter = new RandomProjectionFilterFunction(points);\n\n\t\tMapperSpecifier specifier = MapperSpecifier.create().numIntervals(6).overlap(0.4).numHistogramBuckets(6);\n\n\t\tList<TIntHashSet> partialClustering = MapperPipeline.producePartialClustering(filter, metricSpace, specifier);\n\t\t\n\t\tAbstractWeightedUndirectedGraph graph = MapperPipeline.intersectionGraph(partialClustering);\n\n\t\tSystem.out.println(graph);\n\t\t\n\t\tGraphDotWriter writer = new GraphDotWriter();\n\t\t\n\t\ttry {\n\t\t\twriter.writeToFile(graph, \"out.dot\");\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/CRCTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\n\r\nimport java.util.Random;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>CRCTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>CRCTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\npublic class CRCTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\tprivate static Random rand = new Random();\r\n\r\n\tstatic byte[] make_random_vecb(int len) {\r\n\t\tbyte[] return_val = new byte[len];\r\n\t\tfor (int i = 0; i < len; i++)\r\n\t\t\treturn_val[i] = (byte)rand.nextInt();\r\n\t\treturn return_val;\r\n\t}\r\n\r\n\tstatic short[] make_random_vecs(int len) {\r\n\t\tshort[] return_val = new short[len];\r\n\t\tfor (int i = 0; i < len; i++)\r\n\t\t\treturn_val[i] = (short)rand.nextInt();\r\n\t\treturn return_val;\r\n\t}\r\n\r\n\tstatic int[] make_random_veci(int len) {\r\n\t\tint[] return_val = new int[len];\r\n\t\tfor (int i = 0; i < len; i++)\r\n\t\t\treturn_val[i] = rand.nextInt();\r\n\t\treturn return_val;\r\n\t}\r\n\r\n\r\n\tstatic long[] make_random_vecl(int len) {\r\n\t\tlong[] return_val = new long[len];\r\n\t\tfor (int i = 0; i < len; i++)\r\n\t\t\treturn_val[i] = rand.nextLong();\r\n\t\treturn return_val;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\r\n\r\n\r\n\r\n\t\tassertEquals(\"hash64() vs known results\", 6032571786410196032L, \r\n\t\t\t\tCRC.hash64(6493655788058667850L, -8059720649035354885L));\r\n\t\tassertEquals(\"hash64() vs known results\", -7545405129268806290L, \r\n\t\t\t\tCRC.hash64(-4826024319188083941L, 2296441913178217571L));\r\n\t\tassertEquals(\"hash64() vs known results\", 8482303710699910840L, \r\n\t\t\t\tCRC.hash64(7793617151736177165L, -8742675927873901475L));\r\n\t\tassertEquals(\"hash64() vs known results\", 7186347300825138971L, \r\n\t\t\t\tCRC.hash64(-8590399596178740821L, -3136225913772387823L));\r\n\t\tassertEquals(\"hash64() vs known results\", 6361592763524364868L, \r\n\t\t\t\tCRC.hash64(7966436672045297884L, -7513189249503151647L));\r\n\t\tassertEquals(\"hash64() vs known results\", -7567370645069542008L, \r\n\t\t\t\tCRC.hash64(-7877688441466048790L, -8284931960287653334L));\r\n\t\tassertEquals(\"hash64() vs known results\", 1837677831603613060L, \r\n\t\t\t\tCRC.hash64(1705758918867886652L, -4608094936528631270L));\r\n\t\tassertEquals(\"hash64() vs known results\", -8324081773154746428L, \r\n\t\t\t\tCRC.hash64(-2333750770659246085L, -7151290098236933228L));\r\n\t\tassertEquals(\"hash64() vs known results\", 3238470636471372185L, \r\n\t\t\t\tCRC.hash64(-8333681197765536164L, 149075111678084331L));\r\n\t\tassertEquals(\"hash64() vs known results\", 1172654483595358935L, \r\n\t\t\t\tCRC.hash64(-5226751851997133591L, 3928364761344881872L));\r\n\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t-3153723631256078275L, CRC.hash64(6493655788058667850L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t3532864025510917699L, CRC.hash64(-8059720649035354885L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t834313021983521126L, CRC.hash64(-4826024319188083941L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t-233124034201179335L, CRC.hash64(2296441913178217571L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t-8035689059781312722L, CRC.hash64(7793617151736177165L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t-4713891799828465575L, CRC.hash64(-8742675927873901475L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t8538319044851116518L, CRC.hash64(-8590399596178740821L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t6071268795809598228L, CRC.hash64(-3136225913772387823L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t-1436724243492114223L, CRC.hash64(7966436672045297884L, 0));\r\n\t\tassertEquals(\"hash64() vs known results\", \r\n\t\t\t\t-7638551461710678782L, CRC.hash64(-7513189249503151647L, 0));\r\n\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t388237006, CRC.hash32(-7258739192358877901L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t-577998612, CRC.hash32(5838237949386953820L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t1247909994, CRC.hash32(-3662795734954562691L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t840130721, CRC.hash32(5568351980849578531L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t-934514563, CRC.hash32(8685604269466863285L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t-1748466434, CRC.hash32(-4872510571857784608L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t-1163897527, CRC.hash32(-4062244458711989170L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t-1660784663, CRC.hash32(8190802628558026886L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t177484261, CRC.hash32(-4771253648750399554L, 0));\r\n\t\tassertEquals(\"hash32() vs known results\", \r\n\t\t\t\t74797589, CRC.hash32(8220262932303541715L, 0));\r\n\r\n\t}\r\n\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/ChainTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>ChainTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>ChainTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\npublic class ChainTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tint p = Persistence.baseModulus();\r\n\t\tint[] vertices = new int[] {1, 3, 4, 2};\r\n\t\tint[] v6 = new int[] {1, 3, 4, 2, 33, 11};\r\n\t\tSimplex test = Simplex.getSimplex(vertices);\r\n\t\tSimplex t6 = Simplex.getSimplex(v6);\r\n\t\tChain tchain = Chain.fromBoundary(test.boundaryArray(), p);\r\n\t\tChain tc6 = Chain.fromBoundary(t6.boundaryArray(), p);\r\n\t\tassertTrue(\"BDY(BDY(x)) is zero\", (tchain.boundary(p).equals(Chain.zero(p))));\r\n\t\tassertTrue(\"BDY(BDY(x)) is zero\", (tc6.boundary(p).equals(Chain.zero(p))));\r\n\t\tassertTrue(\"BDY(BDY(x)) is zero\", (((tchain.add(tc6, 4)).boundary(p)).equals(Chain.zero(p))));\r\n\r\n\t\tfor (int i = 0; i < 1000; i++) {\r\n\t\t\tChain foo = Chain.random(p);\r\n\t\t\tChain bar = Chain.random(p);\r\n\t\t\tChain bfoo = foo.boundary(p);\r\n\t\t\tChain bbar = bar.boundary(p);\r\n\t\t\tassertTrue(\"x+0 is x\", foo.add(Chain.zero(p),1).equals(foo));\r\n\t\t\tassertTrue(\"0+x is x\", Chain.zero(p).add(foo,1).equals(foo));\r\n\t\t\tassertTrue(\"BDY(BDY(x)) is zero\", ((bfoo.equals(Chain.zero(p))) || ((bfoo.boundary(p)).equals(Chain.zero(p)))));\r\n\t\t\tif ((!bfoo.equals(Chain.zero(p))) && (!bbar.equals(Chain.zero(p))) && (!((foo.add(bar, 1))).equals(Chain.zero(p)))) {\r\n\t\t\t\tassertTrue(\"BDY(x + y) equals BDY(x) + BDY(y)\",    \r\n\t\t\t\t\t\t((foo.add(bar, 1)).boundary(p)).ceq(bfoo.add(bbar, 1)));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/CubeHashTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>CubeHashTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>CubeHashTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\npublic class CubeHashTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tassertEquals(\"Empty list should have 0 elements\", 0, emptyList.size());\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/ExplicitStreamTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\nimport static org.junit.Assert.assertFalse;\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport java.util.Iterator;\r\n\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>ExplicitStreamTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>ExplicitStreamTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class ExplicitStreamTest {\r\n\r\n\tprivate static boolean member(int x, int[][] set) {\r\n\t\tfor (int i = 0; i < set.length; i++) {\r\n\t\t\tfor (int j = 0; j < set[i].length; j++) {\r\n\t\t\t\tif (x == set[i][j])\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\r\n\t\t// make sure that next() and size() agree\r\n\t\t{\r\n\t\t\tExplicitStream ex1 = new ExplicitStream();\r\n\t\t\tex1.add(new int[] {1}, 0.0);\r\n\t\t\tex1.add(new int[] {2}, 0.0);\r\n\t\t\tex1.add(new int[] {3}, 0.0);\r\n\t\t\tex1.add(new int[] {1,2}, 1.0);\r\n\t\t\tex1.add(new int[] {2,3}, 1.0);\r\n\t\t\tex1.add(new int[] {1,3}, 1.0);\r\n\t\t\tex1.add(new int[] {1,2,3}, 2.0);\r\n\t\t\tex1.close();\r\n\t\t\tassertTrue(\"ex1 has 7 elements\", ex1.size() == 7);\r\n\t\t\tint ex1_counter = 0;\r\n\t\t\twhile (ex1.hasNext()) {\r\n\t\t\t\tex1.next();\r\n\t\t\t\tex1_counter++;\r\n\t\t\t}\r\n\t\t\tassertTrue(\"ex1 really has 7 elements\", ex1_counter == 7);\r\n\t\t}\r\n\r\n\t\t// make sure that next() and dump() agree\r\n\t\t{\r\n\t\t\tPointData rdata = (PointData) new EuclideanArrayData(20, 4);\r\n\t\t\tRipsStream zstr = new RipsStream(0.0, 2, 2.0, rdata);\r\n\t\t\tSimplexStream zstream = (SimplexStream) zstr;\r\n\t\t\tExplicitStream estream = Plex.makeExplicit(zstr);\r\n\t\t\tassertEquals(\"converted right number of simplices\", zstr.size(), estream.size());\r\n\t\t\tExplicitStream.DComplex points = estream.dump(0);\r\n\t\t\tint counter = (points.C()).length;\r\n\t\t\twhile (points.hasNext()) {\r\n\t\t\t\tpoints = points.next();\r\n\t\t\t\tcounter += (points.C()).length;\r\n\t\t\t}\r\n\t\t\tassertEquals(\"counted right number of simplices\", zstr.size(), counter);\r\n\r\n\t\t\tExplicitStream.DComplex triangles = estream.dump(2);\r\n\t\t\tint[][] tvec = triangles.C();\r\n\t\t\tint[] s2 = tvec[tvec.length/2];\r\n\t\t\tint[] l1 = new int[] {s2[0], s2[1]};\r\n\t\t\testream.remove(l1);\r\n\t\t\tboolean caught_the_ise = false;\r\n\t\t\tassertFalse(\"verification fails\", (estream.verify(false)));\r\n\t\t\ttry{ estream.close(); } \r\n\t\t\tcatch(IllegalStateException ise) { \r\n\t\t\t\tcaught_the_ise = true;\r\n\t\t\t\testream.ensure_all_faces();        \r\n\t\t\t}\r\n\t\t\tfinally{}\r\n\t\t\tassertTrue(\"catch occurred\", caught_the_ise);\r\n\t\t\tassertTrue(\"verification succeeds after catch\", (estream.verify(false)));\r\n\t\t\testream.close();\r\n\r\n\t\t\tIterator<Simplex> iterator = estream.iterator();\r\n\t\t\tint last_fi = -1;\r\n\t\t\tint last_dimension = -1;\r\n\t\t\tSimplex iterator_current = null;\r\n\t\t\tSimplex stream_current = null;\r\n\r\n\t\t\tassertTrue(\"iterator start check\", iterator.hasNext());\r\n\t\t\tassertTrue(\"iterator start check\", estream.hasNext());\r\n\t\t\twhile(iterator.hasNext()) {\r\n\t\t\t\titerator_current = iterator.next();\r\n\t\t\t\tassertTrue(\"iterator check\", (estream.hasNext() &&\r\n\t\t\t\t\t\t((stream_current = estream.next()) != null) &&\r\n\t\t\t\t\t\t(iterator_current.equals(stream_current))));\r\n\t\t\t\tif (iterator_current.dimension() > last_dimension) {\r\n\t\t\t\t\tlast_dimension = iterator_current.dimension();\r\n\t\t\t\t\tlast_fi = -1;\r\n\t\t\t\t}\r\n\t\t\t\tassertTrue(\"nondecreasing fi's\", \r\n\t\t\t\t\t\t(last_fi <= iterator_current.findex()));\r\n\t\t\t\tlast_fi = iterator_current.findex();\r\n\t\t\t}\r\n\t\t\tassertTrue(\"estream iterator end check\", !estream.hasNext());\r\n\t\t}\r\n\r\n\t\t// check prune() operations\r\n\t\t{\r\n\t\t\tPointData rdata = (PointData) new EuclideanArrayData(20, 4);\r\n\t\t\tExplicitStream ex2 = Plex.makeExplicit(new RipsStream(0.0, 3, 2.0, rdata));\r\n\t\t\tint before_size = ex2.size();\r\n\t\t\tex2.prune(new int[] {1});\r\n\t\t\tex2.close();\r\n\t\t\tint after_size = ex2.size();\r\n\t\t\tassertTrue(\"ex2 got smaller\", (before_size > after_size));\r\n\t\t\tExplicitStream.DComplex pruned = ex2.dump(0);\r\n\t\t\tassertTrue(\"1 has been removed\", !member(1, pruned.C()));\r\n\t\t\twhile (pruned.hasNext()) {\r\n\t\t\t\tpruned = pruned.next();\r\n\t\t\t\tassertTrue(\"1 has been removed\", !member(1, pruned.C()));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// check iterator and stream next equivalence\r\n\r\n\r\n\t\tExplicitStream estream2 = Plex.ExplicitStream();\r\n\t\testream2.add(new double[][] { {2.1, 3.1}, {1.4, 2.3}, {2.9, .99} }, \r\n\t\t\t\tnew double[] {0.0, 0.0, 1.0});\r\n\t\testream2.add(new int[][] { {1}, {3}, {2} }, \r\n\t\t\t\tnew double[] {0.0, 0.0, 0.0});\r\n\t\tExplicitStream.DComplex force_close = estream2.dump(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Tests trying to close inconsistent stream.\r\n\t */\r\n\t@Test(expected=IllegalStateException.class)\r\n\tpublic void testForException1() {\r\n\t\tExplicitStream estream = Plex.ExplicitStream();\r\n\t\testream.add(new int[][] { {2, 3}, {1, 2}, {3, 1} }, \r\n\t\t\t\tnew double[] {0.0, 0.0, 1.0});\r\n\t\testream.add(new int[][] { {1}, {3}, {2} }, \r\n\t\t\t\tnew double[] {0.0, 0.0, 0.0});\r\n\t\testream.remove(new int[] {1});\r\n\t\tExplicitStream.DComplex loser = estream.dump(1);\r\n\t}\r\n\r\n\t/**\r\n\t * Tests mismatch of arguments to add().\r\n\t */\r\n\t@Test(expected=IllegalArgumentException.class)\r\n\tpublic void testForException2() {\r\n\t\tExplicitStream estream = Plex.ExplicitStream();\r\n\t\testream.add(new int[][] { {2, 3}, {1, 2}, {3, 1} }, \r\n\t\t\t\tnew double[] {0.0, 0.0, 1.0, 0.0});\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/LazyWitnessStreamTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * Tests for <code>LazyWitnessStream</code>.\r\n *\r\n * @version $ID$\r\n */\r\npublic class LazyWitnessStreamTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\r\n\t\t{\r\n\t\t\tPersistence p = Plex.Persistence();\r\n\t\t\tPointData data = (PointData) new EuclideanArrayData(5000, 3); \r\n\t\t\tint[] landmarks = WitnessStream.makeRandomLandmarks(data, 20);\r\n\t\t\tdouble R_max =  WitnessStream.estimateRmax(data, landmarks);\r\n\t\t\tdouble granularity = .00001;\r\n\t\t\tassertTrue(\"R_max not too big\", (R_max < .8));\r\n\t\t\tLazyWitnessStream lstr = \r\n\t\t\t\tnew LazyWitnessStream(granularity, 3, R_max, 2, landmarks, data);\r\n\t\t\tLazyWitnessStream zstr = \r\n\t\t\t\tnew LazyWitnessStream(0, 3, R_max, 2, landmarks, data);\r\n\t\t\tPersistenceInterval.Float[] lci = p.computeIntervals(lstr);\r\n\t\t\tPersistenceInterval.Float[] zci = p.computeIntervals(zstr);\r\n\t\t\tassertTrue(\"0-granularity test\", Plex.equalPersistenceIntervals(lci, zci, granularity));\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\tif (false) {\r\n\t\t\tPointData data = (PointData) new EuclideanArrayData(1000, 4); \r\n\t\t\tint[] landmarks = WitnessStream.makeRandomLandmarks(data, 20);\r\n\t\t\tdouble R_max =  WitnessStream.estimateRmax(data, landmarks);\r\n\t\t\tassertTrue(\"R_max not too big\", (R_max < .25));\r\n\t\t\tlong lazy_time = System.currentTimeMillis();\r\n\t\t\tLazyWitnessStream lstr = new LazyWitnessStream(.01, 3, R_max, 2, landmarks, data);\r\n\t\t\tlazy_time = System.currentTimeMillis() - lazy_time;\r\n\t\t\tassertTrue(\"Didn't take too long\", (lazy_time < 100));\r\n\t\t\tlong w_time = System.currentTimeMillis();\r\n\t\t\tWitnessStream wstr = new WitnessStream(.01, 3, R_max, landmarks, data);\r\n\t\t\tw_time = System.currentTimeMillis() - w_time;\r\n\t\t\tassertTrue(\"Didn't take too long\", (w_time < 2000));\r\n\t\t\tSimplexTable ltbl = new SimplexTable(lstr.size());\r\n\t\t\tSimplex s;\r\n\t\t\twhile((s = lstr.next()) != null)\r\n\t\t\t\tltbl.put(s);\r\n\t\t\twhile((s = wstr.next()) != null) {\r\n\t\t\t\tassertTrue(\"found all witness simplices in lzw stream\",\r\n\t\t\t\t\t\t(ltbl.get(s) != null));\r\n\t\t\t}\r\n\t\t}\r\n\t\t*/\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/MappedBufferDataTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>MappedBufferDataTest</code> class contains tests.\r\n *\r\n * @version $Id$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class MappedBufferDataTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\tdouble val(int p, int d, int dim) {\r\n\t\treturn (p + ((double)d)/((double) (1 + dim)));\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tString filename = \"tmp_mbd.bin\";\r\n\t\tMappedBufferData.delete(filename);\r\n\r\n\t\tint len = 1000;\r\n\t\tint dim = 39;\r\n\r\n\t\tdouble[][] test_vals = new double[len+1][dim];\r\n\r\n\t\tfor (int p = 1; p <= len; p++) {\r\n\t\t\tfor (int d = 0; d < dim; d++) {\r\n\t\t\t\ttest_vals[p][d] = val(p, d, dim);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t{\r\n\t\t\tMappedBufferData test = new MappedBufferData(filename, len, dim, 0.0, 1.0);\r\n\t\t\ttest = null;\r\n\t\t\tSystem.gc();\r\n\t\t\tSystem.gc();\r\n\t\t\tSystem.gc();\r\n\t\t}\r\n\r\n\t\tboolean loser = false;\r\n\r\n\t\t{\r\n\t\t\tMappedBufferData test = new MappedBufferData(filename, true);\r\n\t\t\tdouble[][] check_vals = new double[len+1][dim];\r\n\r\n\t\t\tfor (int p = 1; p <= len; p++) {\r\n\t\t\t\ttest.set_pt(p, test_vals[p]);\r\n\t\t\t}\r\n\r\n\t\t\tfor (int p = 1; p <= len; p++) {\r\n\t\t\t\ttest.get_pt(p, check_vals[p]);\r\n\t\t\t}\r\n\t\t\tfor (int p = 1; p <= len; p++) {\r\n\t\t\t\tfor (int d = 0; d < dim; d++) {\r\n\t\t\t\t\tassertTrue(\"test/check the same\", test_vals[p][d] == check_vals[p][d]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ttest.force();\r\n\t\t\ttest = null;\r\n\t\t\tSystem.gc();\r\n\t\t\tSystem.gc();\r\n\t\t\tSystem.gc();\r\n\t\t}\r\n\r\n\t\t{\r\n\t\t\tMappedBufferData test = new MappedBufferData(filename, false);\r\n\t\t\tdouble[][] check_vals = new double[len+1][dim];\r\n\r\n\t\t\tfor (int p = 1; p <= len; p++) {\r\n\t\t\t\ttest.get_pt(p, check_vals[p]);\r\n\t\t\t}\r\n\t\t\tfor (int p = 1; p <= len; p++) {\r\n\t\t\t\tfor (int d = 0; d < dim; d++) {\r\n\t\t\t\t\tassertTrue(\"test/check the same\", test_vals[p][d] == check_vals[p][d]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\ttest = null;\r\n\t\t\tSystem.gc();\r\n\t\t\tSystem.gc();\r\n\t\t\tSystem.gc();\r\n\t\t}\r\n\r\n\t\tMappedBufferData.delete(filename);\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/Packed2SimplexTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>Packed2SimplexTest</code> class contains tests.\r\n *\r\n * @version $Id$\r\n */\r\npublic class Packed2SimplexTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tassertEquals(\"Empty list should have 0 elements\", 0, emptyList.size());\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IllegalArgumentException.class)\r\n\t@SuppressWarnings(\"unused\")\r\n\tpublic void testForException() {\r\n\t\tSimplex sloser0 = Simplex.getSimplex(new int[] {-1, Integer.MAX_VALUE});\r\n\t\tSimplex sloser1 = Simplex.getSimplex(new int[] {1, 1});\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/Packed4SimplexTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>Packed4SimplexTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>Packed4SimplexTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class Packed4SimplexTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tassertTrue(\"Check constants\", Packed4Simplex.checkConstants());\r\n\t\tassertTrue(\"Packed4Simplex instances should get used\", \r\n\t\t\t\t(Simplex.getSimplex(new int[] {1, 2, 5})) instanceof Packed4Simplex);\r\n\t\tassertEquals(\"Packed4Simplex instances should be equal\", \r\n\t\t\t\tSimplex.getSimplex(new int[] {1, 2, 5}),\r\n\t\t\t\tSimplex.getSimplex(new int[] {5, 2, 1}));\r\n\t\tSimplex s4 = Simplex.getSimplex(new int[] {1, 2, 3, Integer.MAX_VALUE});\r\n\t\tassertTrue(\"s4 is okay\", s4.dimension() == 3);\r\n\t\tassertTrue(\"s4 is okay\", s4 instanceof Packed4Simplex);\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IllegalArgumentException.class)\r\n\tpublic void testForException() {\r\n\t\tSimplex sloser0 = Simplex.getSimplex(new int[] {0, 1, 4, Integer.MAX_VALUE});\r\n\t\tSimplex sloser1 = Simplex.getSimplex(new int[] {1, 1, 4, Integer.MAX_VALUE});\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/Packed6SimplexTest.java",
    "content": "\r\npackage edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>Packed6SimplexTest</code> class contains tests.\r\n *\r\n * @version $Id$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class Packed6SimplexTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tSimplex s6 = Simplex.getSimplex(new int[] {1, 2, 3, 4, Integer.MAX_VALUE});\r\n\t\tassertTrue(\"s6 is okay\", s6.dimension() == 4);\r\n\t\tassertTrue(\"s6 is okay\", s6 instanceof Packed6Simplex);\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IllegalArgumentException.class)\r\n\tpublic void testForException() {\r\n\t\tSimplex sloser0 = Simplex.getSimplex(new int[] {0, 2, 1, 4, Integer.MAX_VALUE});\r\n\t\tSimplex sloser1 = Simplex.getSimplex(new int[] {1, 2, 1, 4, Integer.MAX_VALUE});\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/PersistenceBasisTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\n\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>PersistenceTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>PersistenceTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class PersistenceBasisTest {        \r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tSimplexStream stream = TmpStream.PaperTestCase();\r\n\t\tPersistenceBasis P = new PersistenceBasis();\r\n\t\tPersistenceInterval[] expected = new PersistenceInterval[5];\r\n\r\n\t\texpected[0] = new PersistenceInterval.Int(0, 0, 1);\r\n\t\texpected[1] = new PersistenceInterval.Int(0, 0);\r\n\t\t//expected[2] = new PersistenceInterval.Int(0, 1, 1);\r\n\t\texpected[2] = new PersistenceInterval.Int(0, 1, 2);\r\n\t\texpected[3] = new PersistenceInterval.Int(1, 2, 5);\r\n\t\texpected[4] = new PersistenceInterval.Int(1, 3, 4);\r\n\r\n\t\tPersistenceBasisInterval[] intervals = P.computeRawIntervals(stream, 7);\r\n\t\tint counter = 0;\r\n\t\tfor (PersistenceBasisInterval i : intervals) {\r\n\t\t\tSystem.out.println(i);\r\n\t\t\tassertEquals(\"Got expected results\", i.toPersistenceInterval(),(expected[counter++]));\r\n\t\t}\t\t\t\r\n\r\n\t\t// make sure that the homology of the d-sphere is what we expect\r\n\t\tfor (int d = 1; d <= 5; d++) {\r\n\t\t\tSimplexStream ds = PointData.Discrete.DSphere(d);\r\n\t\t\tPersistenceBasis p = new PersistenceBasis();\r\n\t\t\tPlex.BettiNumbers gen = \r\n\t\t\t\tPlex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tint[] exp_init = new int[d+1];\r\n\t\t\texp_init[0] = 1;\r\n\t\t\texp_init[d] = 1;\r\n\t\t\tPlex.BettiNumbers exp_bn = new Plex.BettiNumbers(exp_init);\r\n\t\t\tassertEquals(\"sphere H* generators\", exp_bn, gen);\r\n\t\t}\r\n\r\n\t\t// Make sure that the homology of the S(d,k) (the k-skeleton of the\r\n\t\t// d-sphere) is what we expect.\r\n\t\t{\r\n\t\t\tSimplexStream ds;\r\n\t\t\tPersistenceBasis p;\r\n\t\t\tPlex.BettiNumbers gen_dk;\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(3,1);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 6}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(3,2);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 4}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(4,1);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 10}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(4,2);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 10}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(4,3);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 5}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(5,1);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 15}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(5,2);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 20}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(5,3);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 15}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(5,4);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 0, 6}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,1);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 21}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,2);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 35}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,3);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 35}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,4);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 0, 21}));\r\n\r\n\t\t\tp = new PersistenceBasis();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,5);\r\n\t\t\tgen_dk = Plex.FilterInfinite(PersistenceBasis.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 0, 0, 7}));\r\n\t\t}\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/PersistenceIntervalTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>PersistenceIntervalTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>PersistenceIntervalTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\n\r\npublic class PersistenceIntervalTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tassertEquals(\"Empty list should have 0 elements\", 0, emptyList.size());\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/PersistenceTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>PersistenceTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>PersistenceTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\npublic class PersistenceTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tSimplexStream stream = TmpStream.PaperTestCase();\r\n\t\tPersistence P = new Persistence();\r\n\t\tPersistenceInterval[] expected = new PersistenceInterval[5];\r\n\r\n\t\texpected[0] = new PersistenceInterval.Int(0, 0, 1);\r\n\t\texpected[1] = new PersistenceInterval.Int(0, 0);\r\n\t\t//expected[2] = new PersistenceInterval.Int(0, 1, 1);\r\n\t\texpected[2] = new PersistenceInterval.Int(0, 1, 2);\r\n\t\texpected[3] = new PersistenceInterval.Int(1, 2, 5);\r\n\t\texpected[4] = new PersistenceInterval.Int(1, 3, 4);\r\n\r\n\t\tPersistenceInterval[] intervals = P.computeRawIntervals(stream, false, 7);\r\n\t\tint counter = 0;\r\n\t\tfor (PersistenceInterval i : intervals) {\r\n\t\t\tassertTrue(\"Got expected results\", i.equals(expected[counter++]));\r\n\t\t}\r\n\r\n\t\t// make sure that the homology of the d-sphere is what we expect\r\n\t\tfor (int d = 1; d <= 5; d++) {\r\n\t\t\tSimplexStream ds = PointData.Discrete.DSphere(d);\r\n\t\t\tPersistence p = Plex.Persistence();\r\n\t\t\tPlex.BettiNumbers gen = \r\n\t\t\t\tPlex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tint[] exp_init = new int[d+1];\r\n\t\t\texp_init[0] = 1;\r\n\t\t\texp_init[d] = 1;\r\n\t\t\tPlex.BettiNumbers exp_bn = new Plex.BettiNumbers(exp_init);\r\n\t\t\tassertEquals(\"sphere H* generators\", exp_bn, gen);\r\n\t\t}\r\n\r\n\t\t// Make sure that the homology of the S(d,k) (the k-skeleton of the\r\n\t\t// d-sphere) is what we expect.\r\n\t\t{\r\n\t\t\tSimplexStream ds;\r\n\t\t\tPersistence p;\r\n\t\t\tPlex.BettiNumbers gen_dk;\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(3,1);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 6}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(3,2);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 4}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(4,1);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 10}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(4,2);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 10}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(4,3);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 5}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(5,1);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 15}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(5,2);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 20}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(5,3);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 15}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(5,4);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 0, 6}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,1);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 21}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,2);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 35}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,3);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 35}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,4);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 0, 21}));\r\n\r\n\t\t\tp = Plex.Persistence();\r\n\t\t\tds = PointData.Discrete.DSphereKskeleton(6,5);\r\n\t\t\tgen_dk = Plex.FilterInfinite(p.computeIntervals(ds));\r\n\t\t\tassertEquals(\"S(d,k) homology\", gen_dk, \r\n\t\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 0, 0, 0, 0, 7}));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\t@SuppressWarnings(\"unused\")\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/PlexSortTest.java",
    "content": "\r\npackage edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport java.util.Random;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>PlexSortTest</code> class provides tests for PlexSort.java.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class PlexSortTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\tpublic static int[] random_vec(int len, int max, Random rand) {\r\n\t\tint[] test = new int[len];\r\n\r\n\t\tfor (int i = 0; i < len; i++) {\r\n\t\t\tint val = rand.nextInt() % max;\r\n\t\t\ttest[i] = val;\r\n\t\t}\r\n\r\n\t\treturn test;\r\n\t}\r\n\r\n\tpublic static class TestComp extends PlexSort.Comp {\r\n\t\tpublic final boolean increasing;\r\n\t\tpublic int fn(int i, int j) { \r\n\t\t\tif (increasing) \r\n\t\t\t\treturn (i - j); \r\n\t\t\telse  \r\n\t\t\t\treturn (j - i);\r\n\t\t}\r\n\r\n\t\tpublic TestComp(boolean incr) {\r\n\t\t\tincreasing = incr;\r\n\t\t}\r\n\r\n\t\tpublic boolean check_random_vec(int[] vec) {\r\n\t\t\tfor (int i = 1; i < vec.length; i++) {\r\n\t\t\t\tif (increasing) {\r\n\t\t\t\t\tif (vec[i-1] > vec[i])\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (vec[i-1] < vec[i])\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic static boolean check_vec(int[] vec) {\r\n\t\tfor (int i = 1; i < vec.length; i++) {\r\n\t\t\tif (vec[i-1] > vec[i]) {\r\n\t\t\t\tSystem.out.printf(\"\\n### \");\r\n\t\t\t\tfor (int j = 0; j < vec.length; j++) {\r\n\t\t\t\t\tif (j == (i-1))\r\n\t\t\t\t\t\tSystem.out.printf(\" >>> %d \", vec[j]);\r\n\t\t\t\t\telse if (j == i)\r\n\t\t\t\t\t\tSystem.out.printf(\"%d <<< \", vec[j]);\r\n\t\t\t\t\telse \r\n\t\t\t\t\t\tSystem.out.printf(\"%d \", vec[j]);\r\n\t\t\t\t}\r\n\t\t\t\tSystem.out.printf(\"\\n\\n\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tint len_increasing = 100;\r\n\t\tTestComp tc_increasing = new TestComp(true);\r\n\t\tint[] tv_increasing = new int[len_increasing];\r\n\t\tfor (int i = 0; i < tv_increasing.length; i++) {\r\n\t\t\ttv_increasing[i] =  tv_increasing.length - i;\r\n\t\t}\r\n\t\t//PlexSort.comp_sort(tv_increasing, 0, tv_increasing.length, tc_increasing);\r\n\t\t//assertTrue(\"Sorted correctly\", tc_increasing.check_random_vec(tv_increasing));\r\n\r\n\t\tRandom rand = new Random(1);\r\n\t\tint counter = 100;\r\n\t\tint max_len = 1000;\r\n\t\tint min_len = 10;\r\n\t\twhile(counter-- > 0) {\r\n\t\t\tTestComp tc = new TestComp(rand.nextInt(2) == 1);\r\n\t\t\tint len = rand.nextInt(max_len - min_len) + min_len;\r\n\t\t\tint max = ((counter % 10) == 0)?2:(3+rand.nextInt(len-3));\r\n\t\t\tint[] vec = random_vec(len, max, rand);\r\n\t\t\tPlexSort.comp_sort(vec, 0, vec.length, tc);\r\n\t\t\t// PlexSort.xsort(vec, 0, vec.length); \r\n\t\t\tassertTrue(\"Sorted correctly\", tc.check_random_vec(vec));\r\n\t\t}\r\n\r\n\t\t// FIX THIS!\r\n\t\t/*\r\n\t\tif (false) {\r\n\t\t\tint pts[] = new int[] { 1, 6, 7, 8, 22, 30, 41, 42, 49 };\r\n\t\t\tdouble wts[] = new double[] { 1.0, 6.0, 7.0, 8.0, 22.0, 30.0, 41.0, 42.0, 49.0 };\r\n\t\t\tPlexSort.reverse_sort(pts, wts);\r\n\t\t\tfor (int i = 0; i < pts.length-1; i++)\r\n\t\t\t\tassertTrue(\"sorting by decreasing weights\", (pts[i] > pts[i+1]));\r\n\t\t}\r\n\t\t*/\r\n\t\t// FIX THIS!\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/PlexTest.java",
    "content": "\r\npackage edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n@SuppressWarnings(\"unused\")\r\npublic class PlexTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\tprivate static boolean is_present(int x, int[] y) {\r\n\t\tfor (int i = 0; i < y.length; i++) {\r\n\t\t\tif (x == y[i])\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tint[] set = new int[] {2, 4, 6, 8, 10, 15, 23, 45, 99, 1000};\r\n\t\tint[] subset = new int[3];\r\n\t\tint[] subset2 = new int[5];\r\n\t\tint[] subset3 = new int[50];\r\n\t\tint subset2_len = subset2.length - 1;\r\n\t\tint subset3_len = subset3.length/2;\r\n\t\tPlex.random_subset(set, set.length, subset, subset.length);\r\n\t\tPlex.random_subset(set, set.length, subset2, subset2_len);\r\n\t\tPlex.random_subset(100, subset3, subset3_len);\r\n\t\tfor(int i = 0; i < subset.length-1; i++) {\r\n\t\t\tassertTrue(\"increasing subset\", (subset[i] < subset[i+1]));\r\n\t\t\tassertTrue(\"is present\", is_present(subset[i], set));\r\n\t\t\tassertTrue(\"is present\", is_present(subset[i+1], set));\r\n\t\t}\r\n\t\tfor(int i = 0; i < subset2_len-1; i++) {\r\n\t\t\tassertTrue(\"increasing subset\", (subset2[i] < subset2[i+1]));\r\n\t\t\tassertTrue(\"is present\", is_present(subset2[i], set));\r\n\t\t\tassertTrue(\"is present\", is_present(subset2[i+1], set));\r\n\t\t}\r\n\t\tfor(int i = 0; i < subset3_len-1; i++) \r\n\t\t\tassertTrue(\"increasing subset\", (subset3[i] < subset3[i+1]));\r\n\t}\r\n\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/RipsStreamTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static java.lang.Math.PI;\r\nimport static java.lang.Math.cos;\r\nimport static java.lang.Math.sin;\r\nimport static java.lang.Math.sqrt;\r\nimport static org.junit.Assert.assertEquals;\r\nimport static org.junit.Assert.assertFalse;\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport java.util.Iterator;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>RipsStreamTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>RipsStreamTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class RipsStreamTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\r\n\t\t// check some misc things about RipsStreams\r\n\t\t{\r\n\t\t\tassertEquals(\"edge indices are okay\", true, RipsStream.check_edge_index(222));\r\n\t\t\tPointData data = (PointData) new Torus();\r\n\t\t\tPointData rdata = (PointData) new EuclideanArrayData(40, 4);\r\n\t\t\tRipsStream str = new RipsStream(.1, 3, 2.0, data);\r\n\t\t\tRipsStream rstr = new RipsStream(.05, 3, 2.0, rdata);\r\n\t\t\tRipsStream zstr = new RipsStream(0.0, 3, 2.0, rdata);\r\n\t\t\tSimplexStream stream = (SimplexStream) str;\r\n\t\t\tSimplexStream rstream = (SimplexStream) rstr;\r\n\t\t\tSimplexStream zstream = (SimplexStream) zstr;\r\n\t\t\tassertTrue(\"big enough stream\", (rstr.size() > 100000));\r\n\t\t\tassertTrue(\"big enough stream\", (zstr.size() > 0));\r\n\t\t}\r\n\r\n\t\t// check iterator and stream next for equivalence\r\n\t\t{\r\n\t\t\tPersistence p = Plex.Persistence();\r\n\t\t\tPointData data = (PointData) new EuclideanArrayData(100, 3); \r\n\t\t\tdouble max_dist = 2.0;\r\n\t\t\tRipsStream str = new RipsStream(.1, 2, max_dist, data);\r\n\t\t\tRipsStream strcpy = new RipsStream(.1, 2, max_dist, data);\r\n\t\t\tIterator<Simplex> iterator = strcpy.iterator();\r\n\r\n\t\t\tif (str.size() < 1000000) {\r\n\t\t\t\twhile(iterator.hasNext()) {\r\n\t\t\t\t\tassertTrue(\"iterator check\", (str.hasNext() &&\r\n\t\t\t\t\t\t\t(iterator.next()).equals(str.next())));\r\n\t\t\t\t}\r\n\t\t\t\tassertTrue(\"iterator check\", !str.hasNext());\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// make sure that the fixed dimensional iterators work\r\n\t\t{\r\n\t\t\tPointData data = (PointData) new EuclideanArrayData(20, 3); \r\n\t\t\tRipsStream rc = Plex.RipsStream(.1, 3, 20, data);\r\n\t\t\tRipsStream zc = Plex.RipsStream(0, 3, 20, data);\r\n\t\t\tint test_dimension = 1;\r\n\t\t\tIterator<Simplex> it_dim = rc.iterator(test_dimension);\r\n\t\t\tIterator<Simplex> it = rc.iterator();\r\n\t\t\tint counter = 0;\r\n\t\t\twhile(it.hasNext()) {\r\n\t\t\t\tSimplex n = it.next();\r\n\t\t\t\tif (n.dimension() == test_dimension) {\r\n\t\t\t\t\tSimplex n_d = it_dim.next();  \r\n\t\t\t\t\tcounter++;\r\n\t\t\t\t\tassertEquals(\"fixed d iterator\", n, n_d);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tassertTrue(\"fixed d iterator test\", (counter > 0));\r\n\t\t\tassertFalse(\"fixed d iterator done\", it_dim.hasNext());\r\n\t\t\tdouble cutoff = .75;\r\n\t\t\tSimplex[] matches_le = rc.matchingSimplices(test_dimension, cutoff, \r\n\t\t\t\t\tSimplexStream.ComparisonType.LE);\r\n\t\t\tSimplex[] matches_gt = rc.matchingSimplices(test_dimension, cutoff, \r\n\t\t\t\t\tSimplexStream.ComparisonType.GT);\r\n\t\t\tassertTrue(\"matching simplex test\", ((matches_gt.length > 0) &&\r\n\t\t\t\t\t(matches_le.length > 0)));\r\n\t\t\tassertTrue(\"matching simplex test\", (counter == (matches_gt.length +\r\n\t\t\t\t\tmatches_le.length)));\r\n\t\t\tSimplex[] zmatches_le = zc.matchingSimplices(test_dimension, cutoff, \r\n\t\t\t\t\tSimplexStream.ComparisonType.LE);\r\n\t\t\tSimplex[] zmatches_gt = zc.matchingSimplices(test_dimension, cutoff, \r\n\t\t\t\t\tSimplexStream.ComparisonType.GT);\r\n\t\t\tassertTrue(\"matching simplex test\", ((zmatches_gt.length > 0) &&\r\n\t\t\t\t\t(zmatches_le.length > 0)));\r\n\t\t\tassertTrue(\"matching simplex test\", (counter == (zmatches_gt.length +\r\n\t\t\t\t\tzmatches_le.length)));\r\n\t\t}\r\n\r\n\t\t// Check our calculation for the Homology of the 2-Torus for both a\r\n\t\t// RipsStream and an explicitly constructed one.\r\n\t\t{\r\n\t\t\tPersistence p = Plex.Persistence();\r\n\t\t\tint n = 20;\r\n\t\t\tint d = 2;\r\n\t\t\tdouble incr = (2.0 * PI)/n;\r\n\t\t\tTorus tor = Plex.Torus(n, d);\r\n\t\t\tdouble slop = 1.2 * sqrt(((double)d) * \r\n\t\t\t\t\t(((1.0 - cos(incr)) * (1.0 - cos(incr))) + \r\n\t\t\t\t\t\t\t(sin(incr) * sin(incr))));\r\n\t\t\tdouble granularity = slop/1000.0;\r\n\t\t\tRipsStream rc = Plex.RipsStream(granularity, d+1, slop, tor);\r\n\t\t\tRipsStream zc = Plex.RipsStream(0,           d+1, slop, tor);\r\n\t\t\tPersistenceInterval.Float[] rci = p.computeIntervals(rc);\r\n\t\t\tPlex.BettiNumbers gen_rc = Plex.FilterInfinite(rci);\r\n\t\t\tPersistenceInterval.Float[] zci = p.computeIntervals(zc);\r\n\t\t\tPlex.BettiNumbers expected_rc = \r\n\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 2, 1});\r\n\t\t\tassertEquals(\"2-torus betti numbers\", gen_rc, expected_rc);\r\n\t\t\tassertEquals(\"rci/zci lengths\", rci.length, zci.length);\r\n\r\n\t\t\t/*\r\n\t\t\tif (false) {\r\n\t\t\t\tSystem.out.printf(\"\\n\\n rci/zci (granularity = %f): \\n\", granularity);\r\n\t\t\t\tfor (int idx = 0; idx < rci.length; idx++) {\r\n\t\t\t\t\tSystem.out.printf(\"%s/%s\\n\", rci[idx].toString(), zci[idx].toString());\r\n\t\t\t\t}\r\n\t\t\t\tSystem.out.printf(\"\\n\\n\");\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\tassertTrue(\"0-granularity test\", Plex.equalPersistenceIntervals(rci, zci, granularity));\r\n\r\n\t\t\t/*\r\n\t\t\tif (false) {\r\n\t\t\t\t// example for the doc -- make sure it works\r\n\t\t\t\tSystem.out.printf(\"\\n\\np = Plex.Persistence()\\n\");\r\n\t\t\t\tSystem.out.printf(\"tor = Plex.Torus(%d, %d)\\n\", n, d);\r\n\t\t\t\tSystem.out.printf(\"rc = Plex.RipsStream(%f, %d, %f, tor)\\n\",\r\n\t\t\t\t\t\tslop/10, d+1, slop);\r\n\t\t\t\tSystem.out.printf(\"rc.size()\\n\");\r\n\t\t\t\tSystem.out.printf(\"res = Plex.FilterInfinite(p.computeIntervals(rc))\\n\");\r\n\t\t\t\tSystem.out.printf(\" %s\\n\\n\", gen_rc.toString());\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t}\r\n\r\n\t\t// test the homology calculation for a handmade torus\r\n\t\t{\r\n\t\t\tSimplexStream ttor = TmpStream.Torus();\r\n\t\t\tPersistence pt = new Persistence();\r\n\t\t\tPlex.BettiNumbers gen_tt = \r\n\t\t\t\tPlex.FilterInfinite(pt.computeIntervals(ttor));\r\n\t\t\tPlex.BettiNumbers expected_tt = \r\n\t\t\t\tnew Plex.BettiNumbers(new int[] {1, 2, 1});\r\n\t\t\tassertEquals(\"2-torus betti numbers\", gen_tt, expected_tt);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IllegalArgumentException.class)\r\n\tpublic void testForException() {\r\n\t\tEuclideanArrayData edata = new EuclideanArrayData(40, 4);\r\n\t\tdouble x = edata.coordinate(10, 4);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/SimplexFaceIteratorTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\nimport static org.junit.Assert.assertFalse;\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>SimplexFaceIteratorTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>SimplexFaceIteratorTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class SimplexFaceIteratorTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tassertEquals(\"Empty list should have 0 elements\", 0, emptyList.size());\r\n\t\tassertTrue(\"vectors of the same length are equal\", \r\n\t\t\t\tPlex.equalPtArrays((new int[5]),(new int[5])));\r\n\t\tSimplexFaceIterator test = \r\n\t\t\tnew SimplexFaceIterator(new int[] {3, 17, 57, 81}, 1);\r\n\t\tassertTrue(\"explicit face iterator hasNext\", test.hasNext());\r\n\t\tassertTrue(\"we know next\", Plex.equalPtArrays(test.next(), new int[] {3, 17}));\r\n\t\tassertTrue(\"we know next\", Plex.equalPtArrays(test.next(), new int[] {3, 57}));\r\n\t\tassertTrue(\"we know next\", Plex.equalPtArrays(test.next(), new int[] {3, 81}));\r\n\t\tassertTrue(\"we know next\", Plex.equalPtArrays(test.next(), new int[] {17, 57}));\r\n\t\tassertTrue(\"we know next\", Plex.equalPtArrays(test.next(), new int[] {17, 81}));\r\n\t\tassertTrue(\"we know next\", Plex.equalPtArrays(test.next(), new int[] {57, 81}));\r\n\t\tassertFalse(\"explicit face iterator !hasNext\", test.hasNext());\r\n\t\tint[] test_array = new int[] {1, 3, 17, 57, 81};\r\n\t\tassertTrue(\"array is length 5\", (test_array.length == 5));\r\n\t\tSimplexFaceIterator test3 = new SimplexFaceIterator(test_array, 3);\r\n\t\tint counter = 0;\r\n\t\twhile (test3.hasNext()) {\r\n\t\t\tint[] tmp = test3.next();\r\n\t\t\tcounter++;\r\n\t\t}\r\n\t\tassertTrue(\"there are 5 cofaces\", (counter == 5));\r\n\t\tSimplexFaceIterator test4 = new SimplexFaceIterator(test_array, 4);\r\n\t\tassertTrue(\"face iterator has one entry\", test4.hasNext());\r\n\t\ttest4.next();\r\n\t\tassertFalse(\"face iterator of length 1 !hasNext\", test4.hasNext());\r\n\t\tSimplexFaceIterator test5 = new SimplexFaceIterator(test_array, 5);\r\n\t\tassertFalse(\"impossible face iterator !hasNext\", test5.hasNext());\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/SimplexTableTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertEquals;\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport java.util.Iterator;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>SimplexTableTest</code> class.\r\n *\r\n * <p>Test code for the specialized Simplex interning class SimplexTable.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class SimplexTableTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t// Some not very precise timing information -- a very simple-minded\r\n\t// test suggested that Simplex creation was within a factor of 2 of a\r\n\t// handcrafted C code implementation. The numbers here are only\r\n\t// interesting as relative values, because they were collected without\r\n\t// trying for the best performance. I think that we can probably halve\r\n\t// these times when running in production mode.\r\n\t//\r\n\t// Construction only: 8.5M simplices Time: 3.6 secs\r\n\t// Construction and interning of 8.5M simplices -- Time: 6.8 secs\r\n\t// Construction, interning, bdy operation on 8.5M -- Time: 19.4 secs\r\n\t// Simplex construction -- Chain construction on 8.5M -- Time: 22.5 secs\r\n\t// Simplex construction -- add chains together on 8.5M -- Time: 25.8 secs\r\n\r\n\t/**\r\n\t * Tests creating a RipsStream and interning the elements in it, as\r\n\t * well as doing some Chain arithmetic.\r\n\t *\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tPointData rdata = (PointData) new EuclideanArrayData(40, 4); // EuclideanArrayData(120, 4);\r\n\t\tint rstr_size = 0; \r\n\t\tint rtbl_size = 0;\r\n\t\tSimplex s, t;\r\n\t\tRipsStream rstr = new RipsStream(.05, 3, 2.0, rdata);\r\n\t\tint rstr_initial_size = rstr.size();\r\n\t\tSimplexTable rtbl = new SimplexTable(1000);\r\n\t\tint initial_limit = rtbl.limit();\r\n\t\tIterator<Simplex> riter = rstr.iterator();\r\n\t\twhile ((riter.hasNext() && ((s = riter.next()) != null)) && \r\n\t\t\t\t(riter.hasNext() && ((t = riter.next()) != null))) {\r\n\t\t\tSimplex[] b = s.boundaryArray(); \r\n\t\t\tSimplex[] c = t.boundaryArray(); \r\n\t\t\tif (b != null) \r\n\t\t\t\tfor (int i = 0; i < b.length; i++) b[i] = rtbl.get(b[i]);\r\n\t\t\trtbl.put(s);\r\n\t\t\tif (c != null) \r\n\t\t\t\tfor (int i = 0; i < c.length; i++) c[i] = rtbl.get(c[i]);\r\n\t\t\trtbl.put(t);\r\n\t\t\tChain d = Chain.fromBoundary(b, Persistence.baseModulus());\r\n\t\t\tChain e = Chain.fromBoundary(c, Persistence.baseModulus());\r\n\t\t\tif(d != null) \r\n\t\t\t\tassert(rtbl.get(d.maxS()) != null);\r\n\t\t\tif(e != null) {\r\n\t\t\t\tif (d != null)\r\n\t\t\t\t\te = e.add(d, 1);\r\n\t\t\t\tassert((e == null) || (rtbl.get(e.maxS()) != null));\r\n\t\t\t}\r\n\t\t}\r\n\t\tassertTrue(\"table big enough\", ((rtbl.size() >= (rstr_initial_size - 2)) && \r\n\t\t\t\t(rtbl.size() > 0)));\r\n\t\tassertTrue(\"table grew\", (rtbl.limit() > initial_limit));\r\n\t\tint found = 0;\r\n\t\twhile (((s = rstr.next()) != null) && ((t = rstr.next()) != null)) {\r\n\t\t\tassertTrue(\"found s\", rtbl.get(s) != null);\r\n\t\t\tassertTrue(\"found t\", rtbl.get(t) != null);\r\n\t\t\tfound += 2;\r\n\t\t}\r\n\t\tassertEquals(\"found all\", rtbl.size(), found);\r\n\t\tassertEquals(\"stream empty\", rstr.size(), 0);\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/SimplexTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n@SuppressWarnings(\"unused\")\r\npublic class SimplexTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tint[] vertices = new int[] {1, 3, 4, 2};\r\n\t\tint[] v6 = new int[] {1, 3, 4, 6, 2, 8};\r\n\t\tSimplex test = Simplex.getSimplex(vertices);\r\n\t\tSimplex t6 = Simplex.getSimplex(v6);\r\n\t\tassertTrue(\"test.subset(t6)\", test.subset(t6));\r\n\t\tassertTrue(\"test.subset(t6)\", test.subset(t6, new int[10], new int[8]));\r\n\t\tint[] tverts = test.vertices();\r\n\t\tint[] t6verts = t6.vertices();\r\n\t\tassertTrue(\"s.vertices equals original vertices\", \r\n\t\t\t\tPlex.equalPtArrays(Simplex.getSimplex(vertices).vertices(),\r\n\t\t\t\t\t\tSimplex.vertex_sort(vertices)));\r\n\t\tassertTrue(\"s.vertices equals original vertices\", \r\n\t\t\t\tPlex.equalPtArrays(Simplex.getSimplex(v6).vertices(),\r\n\t\t\t\t\t\tSimplex.vertex_sort(v6)));\r\n\t\tSimplex[] test_bdy = test.boundaryArray();\r\n\t\tSimplex[] t6_bdy = t6.boundaryArray();\r\n\t\tassertTrue(\"second bdy elt is correct\",\r\n\t\t\t\ttest_bdy[1].equals(Simplex.getSimplex(new int[] {1, 3, 4})));\r\n\t\tassertTrue(\"second bdy elt is correct\",\r\n\t\t\t\tt6_bdy[1].equals(Simplex.getSimplex(new int[] {1, 3, 4, 6, 8})));\r\n\t\tSimplex e2 = Simplex.makeEdge(1, Integer.MAX_VALUE, -1);\r\n\t\tassertTrue(\"e2 is okay\", e2.dimension() == 1);\r\n\t\tassertTrue(\"e2 is okay\", e2 instanceof Packed2Simplex);\r\n\t}\r\n\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/TorusTest.java",
    "content": "\r\npackage edu.stanford.math.plex;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>TorusTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>TorusTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class TorusTest {\r\n\r\n\tprivate java.util.List<Object> emptyList;\r\n\r\n\t/**\r\n\t * Sets up the test fixture. \r\n\t * (Called before every test case method.)\r\n\t */\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\temptyList = new java.util.ArrayList<Object>();\r\n\t}\r\n\r\n\t/**\r\n\t * Tears down the test fixture. \r\n\t * (Called after every test case method.)\r\n\t */\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\temptyList = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Tests some behavior.\r\n\t *\r\n\t * @exception  whatever\r\n\t * @throws what is the difference between these 2\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */    \r\n\t@Test\r\n\tpublic void testSomeBehavior() {\r\n\t\tTorus tdata = new Torus();\r\n\t\tRipsStream rstr = new RipsStream(0.1, 3, 2.0, tdata); \r\n\t}\r\n\r\n\t/**\r\n\t * Tests some exceptional behavior.\r\n\t *\r\n\t * @exception  IndexOutOfBoundsException\r\n\t *\r\n\t * @see        java.lang.System#getProperty(java.lang.String)\r\n\t * @see        SecurityManager#checkPermission\r\n\t */\r\n\t@Test(expected=IndexOutOfBoundsException.class)\r\n\tpublic void testForException() {\r\n\t\tObject o = emptyList.get(0);\r\n\t}\r\n}\r\n\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex/WitnessStreamTest.java",
    "content": "package edu.stanford.math.plex;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\n/**\r\n * The <code>WitnessStreamTest</code> class.\r\n *\r\n * <p>Among the facilities provided by the <code>WitnessStreamTest</code> class\r\n * are whatever we want it to do.\r\n *\r\n * @version $ID$\r\n */\r\n@SuppressWarnings(\"unused\")\r\npublic class WitnessStreamTest {\r\n\r\n  private java.util.List<Object> emptyList;\r\n\r\n  /**\r\n   * Sets up the test fixture. \r\n   * (Called before every test case method.)\r\n   */\r\n  @Before\r\n    public void setUp() {\r\n    emptyList = new java.util.ArrayList<Object>();\r\n  }\r\n\r\n  /**\r\n   * Tears down the test fixture. \r\n   * (Called after every test case method.)\r\n   */\r\n  @After\r\n    public void tearDown() {\r\n    emptyList = null;\r\n  }\r\n        \r\n  /**\r\n   * Tests some behavior.\r\n   *\r\n   * @exception  whatever\r\n   * @throws what is the difference between these 2\r\n   *\r\n   * @see        java.lang.System#getProperty(java.lang.String)\r\n   * @see        SecurityManager#checkPermission\r\n   */    \r\n  @Test \r\n    public void testSomeBehavior() {\r\n\r\n    /////\r\n    ///// OLD NUMBERS -- not necessarily correct any longer\r\n    /////\r\n    /////for N=1000 L=40 \r\n    ///// LZW stream has 19668 simplices, took 0.285000 seconds\r\n    ///// Witness stream has 12916 simplices, took 10.476000 seconds\r\n    /////for N=5000 L=40\r\n    ///// LZW stream has 39137 simplices, took 0.161000 seconds\r\n    ///// Witness stream has 28216 simplices, took 11.702000 seconds\r\n    /////for N=10000 L=40\r\n    ///// LZW stream has 53498 simplices, took 0.095000 seconds\r\n    ///// Witness stream has 40272 simplices, took 3.201000 seconds\r\n    /////for N=100,000 L=100\r\n    ///// LZW stream has 119788 simplices, took 16.521000 seconds\r\n    /////for N=100,000 L=200\r\n    ///// LZW stream has 437243 simplices, took 48.663000 seconds\r\n    /////for N=100,000 L=400\r\n    ///// LZW stream has 1664175 simplices, took 191.450000 seconds\r\n    /////for N=100,000 L=1000\r\n    ///// LZW stream has 9878405 simplices, took 1201.353000 seconds\r\n    /////\r\n    ///// end of OLD NUMBERS \r\n    /////\r\n\r\n    // For N=100,000 and L=100\r\n    //With D: LZW stream has 119788 simplices, took 15.858000 seconds\r\n    //No D, i_cache: LZW stream has 119788 simplices, took 29.480000 seconds\r\n    //No D:  LZW stream has 119788 simplices, took 42.405000 seconds\r\n    //Witness stream has 101736 simplices, took 385.740000 seconds\r\n\r\n    // For N=100,000 and L=1000\r\n    //With D: LZW stream has 9878405 simplices, took 1218.642000 seconds\r\n    //No D: LZW stream has 9878405 simplices, took 4898.634000 seconds\r\n    //No D, i_cache: LZW stream has 9878405 simplices, took 3323.336000 seconds\r\n    // got bored waiting for the Witness results. I'll do it overnight.\r\n\r\n    // For N=2,000,000 and L=100\r\n    //LZW stream has 49840 simplices, took 416.387000 seconds\r\n\r\n    // For N=2,000,000 and L=100, R_max/4\r\n    //LZW stream has 26781 simplices, took 320.568000 seconds\r\n\r\n\t  /*\r\n    if (false) {\r\n      // skip for now\r\n      int N = 60000; // 00;\r\n      int L = 100; // 0;\r\n      PointData data = (PointData) new EuclideanArrayData(N, 4); \r\n      int[] landmarks = WitnessStream.makeRandomLandmarks(data, L);\r\n      double R_max =  0.025631; // WitnessStream.estimateRmax(data, landmarks);\r\n      long lazy_time = System.currentTimeMillis();\r\n      LazyWitnessStream lstr = new LazyWitnessStream(.01, 3, R_max, 2, landmarks, data);\r\n      lazy_time = System.currentTimeMillis() - lazy_time;\r\n      System.out.printf(\" For N=%d and L=%d\\nLZW stream has %d simplices, took %f seconds\\n\",\r\n                        N, L, lstr.size(), ((double)lazy_time)/1000);\r\n      long w_time = System.currentTimeMillis();\r\n      WitnessStream wstr = new WitnessStream(.01, 3, R_max, landmarks, data);\r\n      w_time = System.currentTimeMillis() - w_time;\r\n      System.out.printf(\"Witness stream has %d simplices, took %f seconds\\n\",\r\n                        wstr.size(), ((double)w_time)/1000);\r\n    }\r\n\r\n    if (false) {\r\n      // skip for now\r\n      int N = 600; // 00;\r\n      PointData data = (PointData) new EuclideanArrayData(N, 4); \r\n      long lazy_time = System.currentTimeMillis();\r\n      RipsStream rstr = new RipsStream(.01, 2, 20.0, data);\r\n      lazy_time = System.currentTimeMillis() - lazy_time;\r\n      System.out.printf(\" For N=%d Rips stream has %d simplices, took %f seconds\\n\",\r\n                        N, rstr.size(), ((double)lazy_time)/1000);\r\n    }\r\n    */\r\n  }\r\n\r\n  /**\r\n   * Tests some exceptional behavior.\r\n   *\r\n   * @exception  IndexOutOfBoundsException\r\n   *\r\n   * @see        java.lang.System#getProperty(java.lang.String)\r\n   * @see        SecurityManager#checkPermission\r\n   */\r\n  @Test(expected=IndexOutOfBoundsException.class)\r\n    public void testForException() {\r\n    Object o = emptyList.get(0);\r\n  }\r\n}\r\n          \r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/bottleneck/BottleneckDistanceTest.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\n\nimport java.util.List;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.api.Plex4;\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\n\npublic class BottleneckDistanceTest {\n\n\t@Before\n\tpublic void setUp() throws Exception {\n\t}\n\n\t@After\n\tpublic void tearDown() throws Exception {\n\t}\n\t\n\t//@Test\n\tpublic void test1() {\n\t\tBarcodeCollection<Double> collection1 = new BarcodeCollection<Double>();\n\t\tcollection1.addInterval(0, 1.0, 2.0);\n\t\t\n\t\tBarcodeCollection<Double> collection2 = new BarcodeCollection<Double>();\n\t\tcollection2.addInterval(0, 2.0, 3.0);\n\t\tcollection2.addInterval(0, 0.1, 0.2);\n\t\t\n\t\tdouble distance = BottleneckDistance.computeBottleneckDistance(collection1.getIntervalsAtDimension(0), collection2.getIntervalsAtDimension(0));\n\t\tSystem.out.println(distance);\n\t}\n\t\n\t@Test\n\tpublic void test2() {\n\t\tdouble maxFiltrationValue = 0.2;\n\t\tint n = 100;\n\t\t\n\t\tdouble[][] points1 = PointCloudExamples.getRandomCirclePoints(n);\n\t\tdouble[][] points2 = PointCloudExamples.getRandomCirclePoints(n/2);\n\t\t\n\t\tVietorisRipsStream<double[]> vr_complex1 = Plex4.createVietorisRipsStream(points1, 1, maxFiltrationValue, 1000);\n\t\tVietorisRipsStream<double[]> vr_complex2 = Plex4.createVietorisRipsStream(points2, 1, maxFiltrationValue, 1000);\n\t\t\n\t\tAbstractPersistenceAlgorithm<Simplex> peristenceAlgorithm = Plex4.getDefaultSimplicialAlgorithm(1);\n\t\t\n\t\tBarcodeCollection<Double> barcodeCollection1 = peristenceAlgorithm.computeIntervals(vr_complex1);\n\t\tBarcodeCollection<Double> barcodeCollection2 = peristenceAlgorithm.computeIntervals(vr_complex2);\n\t\t\n\t\tList<Interval<Double>> collection1 = barcodeCollection1.getIntervalsAtDimension(0);\n\t\tList<Interval<Double>> collection2 = barcodeCollection2.getIntervalsAtDimension(0);\n\t\t\n\t\tcollection1 = BottleneckDistance.truncate(collection1, 0, maxFiltrationValue);\n\t\tcollection2 = BottleneckDistance.truncate(collection2, 0, maxFiltrationValue);\n\t\t\n\t\tdouble bottleneckDistance = BottleneckDistance.computeBottleneckDistance(collection1, collection2);\n\t\t\n\t\tSystem.out.println(bottleneckDistance);\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/bottleneck/FordFulkersonTest.java",
    "content": "package edu.stanford.math.plex4.bottleneck;\n\nimport static org.junit.Assert.assertTrue;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\npublic class FordFulkersonTest {\n\n\t@Before\n\tpublic void setUp() throws Exception {\n\t}\n\n\t@After\n\tpublic void tearDown() throws Exception {\n\t}\n\n\t//@Test\n\tpublic void test1() {\n\t\tFlowNetwork network = new FlowNetwork();\n\t\tnetwork.addEdge(1, 2, 3);\n\t\tnetwork.addEdge(1, 3, 3);\n\t\tnetwork.addEdge(2, 3, 2);\n\t\tnetwork.addEdge(2, 4, 3);\n\t\tnetwork.addEdge(3, 5, 2);\n\t\tnetwork.addEdge(4, 5, 4);\n\t\tnetwork.addEdge(4, 6, 2);\n\t\tnetwork.addEdge(5, 6, 3);\n\n\t\tint flow = network.maxFlow(1, 6);\n\t\t\n\t\tSystem.out.println(\"Computed flow: \" + flow);\n\t\t\n\t\tassertTrue(\"Incorrect flow computed\", flow == 5);\n\t\t\n\t}\n\t\n\t@Test\n\tpublic void test2() {\n\t\tFlowNetwork network = new FlowNetwork();\n\t\tnetwork.addEdge(1, 2, 1000);\n\t\tnetwork.addEdge(1, 3, 1000);\n\t\tnetwork.addEdge(2, 3, 1);\n\t\tnetwork.addEdge(2, 4, 1000);\n\t\tnetwork.addEdge(3, 4, 1000);\n\n\t\tint flow = network.maxFlow(1, 4);\n\t\t\n\t\tSystem.out.println(\"Computed flow: \" + flow);\n\t\t\n\t\tassertTrue(\"Incorrect flow computed\", flow == 2000);\n\t\t\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/CustomFiltrationTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.api.Plex4;\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\n\npublic class CustomFiltrationTest {\n\n\t@Before\n\tpublic void setUp() throws Exception {\n\t}\n\n\t@After\n\tpublic void tearDown() throws Exception {\n\t}\n\n\t@Test\n\tpublic void testExample() {\n\t\n\t\tdouble[][] points = PointCloudExamples.getRandomCirclePoints(100);\n\t\tint maxDimension = 1;\n\t\tdouble[] filtrationValues = new double[] { 0, 0.01, 0.02, 0.05, 0.1, 0.11, 0.2, 0.3, 0.5 };\n\t\tVietorisRipsStream<double[]> stream = Plex4.createVietorisRipsStream(points, maxDimension + 1, filtrationValues);\n\t\tAbstractPersistenceAlgorithm<Simplex> algorithm = Plex4.getDefaultSimplicialAlgorithm(maxDimension + 1);\n\t\tBarcodeCollection<Double> intervals = algorithm.computeIntervals(stream);\n\t\tSystem.out.println(intervals);\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/FiltrationTimeTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport java.util.Iterator;\n\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.api.Plex4;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\n\npublic class FiltrationTimeTest {\n\t@Test\n\tpublic void testExample() {\n\t\t\n\t\tExplicitSimplexStream stream = Plex4.createExplicitSimplexStream(100);\n\t\tstream.addVertex(1, 17.23);\n\t\tstream.finalizeStream();\n\t\tIterator<Simplex> iterator = stream.iterator();\n\n\t\tdouble filtrationValue = 0;\n\n\t\twhile (iterator.hasNext()) {\n\t\t\tSimplex simplex = iterator.next();\n\t\t\tfiltrationValue = stream.getFiltrationValue(simplex);\n\t\t}\n\n\t\tAbstractPersistenceAlgorithm<Simplex> persistence = Plex4.getModularSimplicialAlgorithm(3, 2);\n\t\tBarcodeCollection<Double> intervals = persistence.computeIntervals(stream);\n\n\t\tSystem.out.println(\"FiltrationValue = \" + filtrationValue);\n\t\tSystem.out.println(\"intervals = \" + intervals);\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/FormalSumTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport java.util.Arrays;\nimport java.util.List;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.utility.FormalSumUtility;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanPrimitiveFreeModule;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.BooleanSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\n\npublic class FormalSumTest {\n\n\t@Before\n\tpublic void setUp() throws Exception {\n\t}\n\n\t@After\n\tpublic void tearDown() throws Exception {\n\t}\n\n\t@Test\n\tpublic void test() {\n\t\tIntSparseFormalSum<String> sum = new IntSparseFormalSum<String>();\n\n\t\tsum.put(1, \"a\");\n\t\tsum.put(3, \"b\");\n\t\tsum.put(-4, \"z\");\n\n\t\tSystem.out.println(\"IntSparseFormalSum: \" + sum);\n\n\t\tList<?> basisElements = FormalSumUtility.extractActiveBasisElements(sum);\n\n\t\tSystem.out.println(\"basis elements: \" + basisElements);\n\n\t\tList<Integer> coefficients = FormalSumUtility.extractCoefficients(sum);\n\n\t\tSystem.out.println(\"coefficients: \" + coefficients);\n\t}\n\n\tpublic static void testBooleanFormalSum() {\n\t\tBooleanPrimitiveFreeModule<String> chainModule = new BooleanPrimitiveFreeModule<String>();\n\n\t\tBooleanSparseFormalSum<String> sum = chainModule.createNewSum();\n\n\t\tsum.put(true, \"a\");\n\t\tsum.put(true, \"b\");\n\t\tsum.put(true, \"z\");\n\n\t\tSystem.out.println(\"BooleanPrimitiveFreeModule: \" + sum);\n\n\t\tList<?> basisElements = FormalSumUtility.extractActiveBasisElements(sum);\n\n\t\tSystem.out.println(\"basis elements: \" + basisElements);\n\t}\n\n\tpublic static void testObjectFormalSum() {\n\t\tObjectSparseFormalSum<Integer, String> sum = new ObjectSparseFormalSum<Integer, String>();\n\n\t\tsum.put(3, \"a\");\n\t\tsum.put(9, \"b\");\n\t\tsum.put(4, \"z\");\n\n\t\tSystem.out.println(\"ObjectSparseFormalSum: \" + sum);\n\n\t\tList<?> basisElements = FormalSumUtility.extractActiveBasisElements(sum);\n\n\t\tSystem.out.println(\"basis elements: \" + basisElements);\n\n\t\tList<?> coefficients = FormalSumUtility.extractCoefficients(sum);\n\n\t\tSystem.out.println(\"coefficients: \" + coefficients);\n\t}\n\n\tpublic static void testSimplices() {\n\t\tIntSparseFormalSum<Simplex> sum = new IntSparseFormalSum<Simplex>();\n\n\t\tsum.put(2, Simplex.makeSimplex(new int[] { 0, 1, 3 }));\n\t\tsum.put(-5, Simplex.makeSimplex(new int[] { 5, 6 }));\n\n\t\tSystem.out.println(\"IntSparseFormalSum: \" + sum);\n\n\t\tList<Simplex> basisElements = FormalSumUtility.extractActiveBasisElements(sum);\n\n\t\tSystem.out.println(\"basis elements: \" + basisElements);\n\n\t\tint[][] vertices = FormalSumUtility.extractVertices(basisElements);\n\n\t\tSystem.out.println(\"vertices:\");\n\n\t\tfor (int[] v : vertices) {\n\t\t\tSystem.out.println(Arrays.toString(v));\n\t\t}\n\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/GraphTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport static org.junit.Assert.assertTrue;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.graph.AbstractUndirectedGraph;\nimport edu.stanford.math.plex4.graph.UndirectedListGraph;\n\npublic class GraphTest {\n\n\t@Before\n\tpublic void setUp() throws Exception {\n\t}\n\n\t@After\n\tpublic void tearDown() throws Exception {\n\t}\n\n\t@Test\n\tpublic void testGraph() {\n\t\tAbstractUndirectedGraph graph = new UndirectedListGraph(4);\n\t\t\n\t\tgraph.addEdge(0, 1);\n\t\tassertTrue(\"numEdges does not work\", graph.getNumEdges() == 1);\n\t\tgraph.addEdge(0, 1);\n\t\tassertTrue(\"numEdges does not work\", graph.getNumEdges() == 1);\n\t\t\n\t\tgraph.addEdge(1, 2);\n\t\tgraph.addEdge(2, 3);\n\t\tgraph.addEdge(3, 0);\n\t\tassertTrue(\"numEdges does not work\", graph.getNumEdges() == 4);\n\t}\n\t\n\t@Test\n\tpublic void testCompleteGraph() {\n\t\tint n = 1000;\n\t\tAbstractUndirectedGraph graph = new UndirectedListGraph(n);\n\t\t\n\t\tfor (int i = 0; i < n; i++) {\n\t\t\tfor (int j = 0; j < i; j++) {\n\t\t\t\tgraph.addEdge(i, j);\n\t\t\t}\n\t\t}\n\n\t\tassertTrue(\"numEdges does not work\", graph.getNumEdges() == n * (n - 1) / 2);\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/HomVerificationTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.examples.SimplexStreamExamples;\nimport edu.stanford.math.plex4.homology.HomTester;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\n\npublic class HomVerificationTest {\n\n\t@Before\n\tpublic void setUp() throws Exception {\n\t}\n\n\t@After\n\tpublic void tearDown() throws Exception {\n\t}\n\n\t@Test\n\tpublic void dumpHomInformation() {\n\t\tAbstractFilteredStream<Simplex> domain = SimplexStreamExamples.getCircle(3);\n\t\tAbstractFilteredStream<Simplex> codomain = SimplexStreamExamples.getCircle(3);\n\t\tHomTester.dumpHomInformation(domain, codomain);\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/MultifilteredFlatteningTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.api.Plex4;\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\nimport edu.stanford.math.plex4.streams.filter.FilterFunction;\nimport edu.stanford.math.plex4.streams.filter.IntFilterFunction;\nimport edu.stanford.math.plex4.streams.filter.KernelDensityFilterFunction;\nimport edu.stanford.math.plex4.streams.filter.MaxSimplicialFilterFunction;\nimport edu.stanford.math.plex4.streams.impl.VietorisRipsStream;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.plex4.streams.multi.AbstractMultifilteredStream;\nimport edu.stanford.math.plex4.streams.multi.BifilteredMetricStream;\nimport edu.stanford.math.plex4.streams.multi.IncreasingOrthantFlattener;\n\npublic class MultifilteredFlatteningTest {\n\n\t@Before\n\tpublic void setUp() throws Exception {\n\t}\n\n\t@After\n\tpublic void tearDown() throws Exception {\n\t}\n\n\t@Test\n\tpublic void test() {\n\t\t// initialize constants\n\t\tint n = 100;\n\t\tint maxDimension = 1;\n\t\tdouble maxFiltrationValue = 0.4;\n\t\tdouble sigma = 0.4;\n\n\t\t// set direction of sets\n\t\tdouble[] principalDirection = new double[] { 0.05, 0.01 };\n\n\t\t// create a new metric space from random points on a circle\n\t\tdouble[][] points = PointCloudExamples.getRandomCirclePoints(n);\n\t\tEuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points);\n\n\t\t// create a vietoris rips complex from the points\n\t\tVietorisRipsStream<double[]> stream = Plex4.createVietorisRipsStream(metricSpace, maxDimension + 1, maxFiltrationValue);\n\t\tstream.finalizeStream();\n\n\t\t// initialize the kernel density function\n\t\tIntFilterFunction intFilterFunction = new KernelDensityFilterFunction(metricSpace, sigma);\n\t\tFilterFunction<Simplex> simplexFilterFunction = new MaxSimplicialFilterFunction(intFilterFunction);\n\n\t\t// create the bifiltered stream\n\t\tAbstractMultifilteredStream<Simplex> multifilteredStream = new BifilteredMetricStream<Simplex>(stream, simplexFilterFunction);\n\n\t\t// create a \"flattened\" version of the stream by considering increasing\n\t\t// subsets\n\t\tIncreasingOrthantFlattener<Simplex> flattener = new IncreasingOrthantFlattener<Simplex>(principalDirection);\n\t\tAbstractFilteredStream<Simplex> flattenedStream = flattener.collapse(multifilteredStream);\n\n\t\t// compute the persistent homology of the flattened complex, and print\n\t\t// the result\n\t\tAbstractPersistenceAlgorithm<Simplex> persistenceAlgorithm = Plex4.getDefaultSimplicialAlgorithm(maxDimension + 1);\n\t\tBarcodeCollection<Double> barcodes = persistenceAlgorithm.computeIntervals(flattenedStream);\n\t\tSystem.out.println(barcodes.toString());\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/VdsWitnessExample.java",
    "content": "package edu.stanford.math.plex4.example_tests;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPair;\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexPairComparator;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitSimplexStream;\r\nimport edu.stanford.math.plex4.streams.impl.ExplicitStream;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport edu.stanford.math.primitivelib.algebraic.impl.ModularIntField;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\n\r\npublic class VdsWitnessExample {\r\n\tIntAbstractField intField = ModularIntField.getInstance(2);\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\tRandomUtility.initializeWithSeed(0);\r\n\t}\r\n\r\n\t@After\r\n\tpublic void tearDown() {}\r\n\r\n\t\r\n\tpublic ExplicitSimplexStream getX() {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\tstream.addElement(new int[]{0});\r\n\t\tstream.addElement(new int[]{2});\r\n\t\tstream.addElement(new int[]{4});\r\n\t\tstream.addElement(new int[]{0, 2});\r\n\t\tstream.addElement(new int[]{0, 4});\r\n\t\tstream.addElement(new int[]{2, 4});\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\tpublic ExplicitSimplexStream getY() {\r\n\t\tExplicitSimplexStream stream = new ExplicitSimplexStream();\r\n\t\tstream.addElement(new int[]{1});\r\n\t\tstream.addElement(new int[]{3});\r\n\t\tstream.addElement(new int[]{5});\r\n\t\tstream.addElement(new int[]{1, 3});\r\n\t\tstream.addElement(new int[]{1, 5});\r\n\t\tstream.addElement(new int[]{3, 5});\r\n\t\treturn stream;\r\n\t}\r\n\t\r\n\tpublic ExplicitStream<SimplexPair> getZ() {\r\n\t\tExplicitStream<SimplexPair> subsetStream = new ExplicitStream<SimplexPair>(SimplexPairComparator.getInstance());\r\n\t\t\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{0}, new int[]{1}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{0}, new int[]{5}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{2}, new int[]{1}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{2}, new int[]{3}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{4}, new int[]{3}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{4}, new int[]{5}), 0);\r\n\t\t\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{0}, new int[]{1, 5}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{0, 2}, new int[]{1}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{2}, new int[]{1, 3}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{0, 4}, new int[]{5}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{4}, new int[]{3, 5}), 0);\r\n\t\tsubsetStream.addElement(new SimplexPair(new int[]{2, 4}, new int[]{3}), 0);\r\n\t\treturn subsetStream;\r\n\t}\r\n\t\r\n\t@Test\r\n\tpublic void test() {\r\n\t\t\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/VietorisRipsBootstrapTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport java.io.IOException;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.zigzag.bootstrap.VietorisRipsBootstrapper;\nimport edu.stanford.math.plex4.utility.RandomUtility;\n\npublic class VietorisRipsBootstrapTest {\n\t@Before\n\tpublic void setUp() {}\n\n\t@After\n\tpublic void tearDown() {}\n\t\n\t@Test\n\tpublic void testCircle() throws IOException {\n\t\tRandomUtility.initializeWithSeed(0);\n\t\t\n\t\tdouble[][] points = PointCloudExamples.getEquispacedCirclePoints(10000);\n\t\tdouble maxDistance = 1.3;\n\t\tint maxDimension = 1;\n\t\tint numSelections = 10;\n\t\tint selectionSize = 20;\n\t\t\n\t\n\t\tVietorisRipsBootstrapper bootstrapper = new VietorisRipsBootstrapper(points, maxDistance, maxDimension, numSelections, selectionSize);\n\t\tBarcodeCollection<Integer> barcodes = bootstrapper.performBootstrap();\n\t\t\n\t\tSystem.out.println(\"Zigzag barcodes\");\n\t\tSystem.out.println(barcodes);\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/WitnessBootstrapTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport java.io.IOException;\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.zigzag.bootstrap.WitnessBootstrapper;\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\nimport edu.stanford.math.plex4.metric.landmark.ExplicitLandmarkSelector;\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\nimport edu.stanford.math.plex4.utility.RandomUtility;\n\npublic class WitnessBootstrapTest {\n\t@Before\n\tpublic void setUp() {}\n\n\t@After\n\tpublic void tearDown() {}\n\t\n\t@Test\n\tpublic void testVdSExample() throws IOException {\n\t\tdouble[][] points = PointCloudExamples.getEquispacedCirclePoints(6);\n\t\tdouble maxDistance = 0.0;\n\t\t\n\t\tRandomUtility.initializeWithSeed(0);\n\t\tEuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points);\n\t\t\n\t\tList<LandmarkSelector<double[]>> list = new ArrayList<LandmarkSelector<double[]>>();\n\t\t\n\t\tlist.add(new ExplicitLandmarkSelector<double[]>(metricSpace, new int[]{0, 2, 4}));\n\t\tlist.add(new ExplicitLandmarkSelector<double[]>(metricSpace, new int[]{1, 3, 5}));\n\t\t\n\t\tWitnessBootstrapper<double[]> bootstrapper = new WitnessBootstrapper<double[]>(metricSpace, list, 1, maxDistance);\n\t\tBarcodeCollection<Integer> barcodes = bootstrapper.performProjectionBootstrap();\n\t\t\n\t\tSystem.out.println(\"Zigzag barcodes\");\n\t\tSystem.out.println(barcodes);\n\t}\n\t\n\t@Test\n\tpublic void testSimpleIdentityExample() throws IOException {\n\t\tdouble[][] points = PointCloudExamples.getEquispacedCirclePoints(6);\n\t\tdouble maxDistance = 0.0;\n\t\t\n\t\tRandomUtility.initializeWithSeed(0);\n\t\tEuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points);\n\t\t\n\t\tList<LandmarkSelector<double[]>> list = new ArrayList<LandmarkSelector<double[]>>();\n\t\t\n\t\tlist.add(new ExplicitLandmarkSelector<double[]>(metricSpace, new int[]{0, 2, 4}));\n\t\tlist.add(new ExplicitLandmarkSelector<double[]>(metricSpace, new int[]{0, 2, 4}));\n\t\t\n\t\tWitnessBootstrapper<double[]> bootstrapper = new WitnessBootstrapper<double[]>(metricSpace, list, 1, maxDistance);\n\t\tBarcodeCollection<Integer> barcodes = bootstrapper.performProjectionBootstrap();\n\t\t\n\t\tSystem.out.println(\"Zigzag barcodes\");\n\t\tSystem.out.println(barcodes);\n\t}\n\t\n\t//@Test\n\tpublic void testIdentityExample() throws IOException {\n\t\tint n = 10000;\n\t\tint l = 20;\n\t\tint dimension = 2;\n\t\tdouble[][] points = PointCloudExamples.getRandomSpherePoints(n, dimension);\n\t\tdouble maxDistance = 0.1;\n\t\t\n\t\tRandomUtility.initializeWithSeed(0);\n\t\tEuclideanMetricSpace metricSpace = new EuclideanMetricSpace(points);\n\t\t\n\t\tint[] indices = RandomUtility.randomSubset(l, n).toArray();\n\t\t\n\t\tList<LandmarkSelector<double[]>> list = new ArrayList<LandmarkSelector<double[]>>();\n\t\t\n\t\tlist.add(new ExplicitLandmarkSelector<double[]>(metricSpace, indices));\n\t\tlist.add(new ExplicitLandmarkSelector<double[]>(metricSpace, indices));\n\t\t\n\t\tWitnessBootstrapper<double[]> bootstrapper = new WitnessBootstrapper<double[]>(metricSpace, list, dimension, maxDistance);\n\t\tBarcodeCollection<Integer> barcodes = bootstrapper.performProjectionBootstrap();\n\t\t\n\t\tSystem.out.println(\"Zigzag barcodes\");\n\t\tSystem.out.println(barcodes);\n\t}\n\t\n\tpublic static int[] range(int start, int step, int end) {\n\t\tint length = (end - start) / step;\n\t\t\n\t\tint[] result = new int[length];\n\t\tint value = start;\n\t\tfor (int i = 0; i < length; i++) {\n\t\t\tresult[i] = value;\n\t\t\tvalue += step;\n\t\t}\n\t\t\n\t\treturn result;\n\t}\n}\n\n\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/example_tests/ZigZagTest.java",
    "content": "package edu.stanford.math.plex4.example_tests;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.List;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.examples.SimplexStreamExamples;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\nimport edu.stanford.math.plex4.homology.zigzag.HomologyBasisTracker;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.plex4.utility.RandomUtility;\nimport edu.stanford.math.primitivelib.algebraic.impl.ModularIntField;\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\n\npublic class ZigZagTest {\n\n\tIntAbstractField intField = ModularIntField.getInstance(2);\n\n\t@Before\n\tpublic void setUp() {\n\t\tRandomUtility.initializeWithSeed(0);\n\t}\n\n\t@After\n\tpublic void tearDown() {}\n\n\t/**\n\t * This function adds simplices to a simplicial complex, and then removes them in reverse order.\n\t */\n\t@Test\n\tpublic void testAddAndRemove() {\n\t\tAbstractFilteredStream<Simplex> stream = SimplexStreamExamples.getZomorodianCarlssonExample();\n\t\tHomologyBasisTracker<Simplex> zz = new HomologyBasisTracker<Simplex>(intField, SimplexComparator.getInstance());\n\n\t\tList<Simplex> elements = new ArrayList<Simplex>();\n\n\t\tfor (Simplex simplex: stream) {\n\t\t\telements.add(simplex);\n\t\t}\n\n\t\tfor (Simplex simplex: elements) {\n\t\t\tzz.add(simplex);\n\t\t}\n\t\t\n\t\tCollections.reverse(elements);\n\n\t\tfor (Simplex simplex: elements) {\n\t\t\tzz.remove(simplex);\n\t\t}\n\t\t\n\t\tBarcodeCollection<Integer> collection = zz.getBarcodes();\n\t\tSystem.out.println(collection);\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/homology/HomTester.java",
    "content": "package edu.stanford.math.plex4.homology;\r\n\r\nimport java.util.Iterator;\r\nimport java.util.List;\r\n\r\nimport org.apache.commons.math.fraction.Fraction;\r\n\r\nimport edu.stanford.math.plex4.api.Plex4;\r\nimport edu.stanford.math.plex4.autogen.homology.ObjectAbsoluteHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.ObjectPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.Interval;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.streams.derived.HomStream;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.IntSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectAlgebraicFreeModule;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\nimport edu.stanford.math.primitivelib.autogen.pair.ObjectObjectPair;\r\n\r\n\r\npublic class HomTester {\r\n\t\r\n\tpublic static void dumpHomInformation(AbstractFilteredStream<Simplex> domainStream, AbstractFilteredStream<Simplex> codomainStream) {\r\n\t\tHomStream<Simplex, Simplex> homStream = new HomStream<Simplex, Simplex>(domainStream, codomainStream);\r\n\t\tList<IntSparseFormalSum<ObjectObjectPair<Simplex, Simplex>>> homotopies = homStream.getHomotopies();\r\n\t\t\r\n\t\tSystem.out.println(\"Homotopies:\");\r\n\t\tfor (IntSparseFormalSum<ObjectObjectPair<Simplex, Simplex>> homotopy: homotopies) {\r\n\t\t\tSystem.out.println(\"$$\" + homotopy + \"$$\");\r\n\t\t}\r\n\t\t\r\n\t\tObjectPersistenceAlgorithm<Fraction, ObjectObjectPair<Simplex, Simplex>> persistence = Plex4.getRationalHomAlgorithm();\r\n\t\tObjectAlgebraicFreeModule<Fraction, ObjectObjectPair<Simplex, Simplex>> chain_module = persistence.getChainModule();\r\n\t\t\r\n\t\tAnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>>> barcode_collection = persistence.computeAnnotatedIndexIntervals(homStream);\r\n\r\n\t\tList<ObjectObjectPair<Interval<Integer>, ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>>>> intervals = barcode_collection.getIntervalGeneratorPairsAtDimension(0);\r\n\t\t\r\n\t    ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>> cycle_sum = chain_module.createNewSum();\r\n\r\n\t    Iterator<ObjectObjectPair<Interval<Integer>, ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>>>> iterator = intervals.iterator();\r\n\t    ObjectObjectPair<Interval<Integer>, ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>>> interval_generator_pair;\r\n\r\n\t    System.out.println(\"Generating Cycles:\");\r\n\t    \r\n\t    while (iterator.hasNext()) {\r\n\t        interval_generator_pair = iterator.next();\r\n\t        Interval<Integer> interval = interval_generator_pair.getFirst();\r\n\t        ObjectSparseFormalSum<Fraction, ObjectObjectPair<Simplex, Simplex>> generator = interval_generator_pair.getSecond();\r\n\t        if (interval.isInfinite()) {\r\n\t            chain_module.accumulate(cycle_sum, generator);\r\n\t            System.out.println(\"$$\" + generator + \"$$\");\r\n\t        }\r\n\t    }\r\n\t    \r\n\t    System.out.println(\"Cycle Sum:\");\r\n\t    System.out.println(\"$$\" + cycle_sum + \"$$\");\r\n\t    \r\n\t    ObjectAbsoluteHomology<Fraction, Simplex> basic_persistence = Plex4.getRationalSimplicialAlgorithm(2);\r\n\t    \r\n\t    System.out.println(basic_persistence.computeAnnotatedIndexIntervals(domainStream));\r\n\t    System.out.println(basic_persistence.computeAnnotatedIndexIntervals(codomainStream));\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/homology/PersistenceAlgorithmTester.java",
    "content": "package edu.stanford.math.plex4.homology;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.test_utility.Timing;\r\n\r\n/**\r\n * This class contains functions that verify the equality of different persistence algorithms.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class PersistenceAlgorithmTester {\r\n\r\n\t/**\r\n\t * This function verifies that all of the persistence algorithms in the supplied collection produce equal values when\r\n\t * applied to the given stream.\r\n\t * \r\n\t * @param <T> the basis element type\r\n\t * @param algorithms the set of algorithms to compare\r\n\t * @param stream the stream to compare on\r\n\t */\r\n\tpublic static <T> void verifyEquality(List<AbstractPersistenceAlgorithm<T>> algorithms, AbstractFilteredStream<T> stream) {\r\n\t\tSystem.out.println(\"Stream size: \" + stream.getSize());\r\n\t\tList<BarcodeCollection<Integer>> barcodes = new ArrayList<BarcodeCollection<Integer>>();\r\n\t\tfor (AbstractPersistenceAlgorithm<T> algorithm: algorithms) {\r\n\t\t\tTiming.restart();\r\n\t\t\tbarcodes.add(algorithm.computeIndexIntervals(stream));\r\n\t\t\t//System.out.println(barcodes.get(barcodes.size() - 1));\r\n\t\t\tTiming.stopAndDisplay(algorithm.toString());\r\n\t\t}\r\n\t\t\r\n\t\tint n = barcodes.size();\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tfor (int j = i + 1; j < n; j++) {\r\n\t\t\t\tif (!barcodes.get(i).equals(barcodes.get(j))) {\r\n\t\t\t\t\tSystem.out.println(algorithms.get(i) + \" != \" + algorithms.get(j));\r\n\t\t\t\t\tSystem.out.println(algorithms.get(i));\r\n\t\t\t\t\tSystem.out.println(barcodes.get(i));\r\n\t\t\t\t\tSystem.out.println(algorithms.get(j));\r\n\t\t\t\t\tSystem.out.println(barcodes.get(j));\r\n\t\t\t\t}\r\n\t\t\t\tassertTrue(\"Computed barcodes are not equal for algorithms \" + algorithms.get(i) + \" and \" + algorithms.get(j), barcodes.get(i).equals(barcodes.get(j)));\r\n\t\t\t}\r\n\t\t}\t\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function verifies that all of the persistence basis algorithms in the collection produce equal results.\r\n\t * \r\n\t * @param <T> the basis element type\r\n\t * @param <B> the type of the interval generators\r\n\t * @param algorithms the set of algorithms to compare\r\n\t * @param stream the stream to compare on\r\n\t */\r\n\tpublic static <T, B> void verifyEqualityWithGenerators(List<AbstractPersistenceBasisAlgorithm<T, B>> algorithms, AbstractFilteredStream<T> stream) {\r\n\t\tSystem.out.println(\"Stream size: \" + stream.getSize());\r\n\t\tList<AnnotatedBarcodeCollection<Integer, B>> barcodes = new ArrayList<AnnotatedBarcodeCollection<Integer, B>>();\r\n\t\tfor (AbstractPersistenceBasisAlgorithm<T, B> algorithm: algorithms) {\r\n\t\t\tTiming.restart();\r\n\t\t\tbarcodes.add(algorithm.computeAnnotatedIndexIntervals(stream));\r\n\t\t\tTiming.stopAndDisplay(algorithm.toString());\r\n\t\t}\r\n\t\t\r\n\t\tint n = barcodes.size();\r\n\t\tfor (int i = 0; i < n; i++) {\r\n\t\t\tfor (int j = i + 1; j < n; j++) {\r\n\t\t\t\tif (!barcodes.get(i).equals(barcodes.get(j))) {\r\n\t\t\t\t\tSystem.out.println(algorithms.get(i) + \" != \" + algorithms.get(j));\r\n\t\t\t\t\tSystem.out.println(algorithms.get(i));\r\n\t\t\t\t\tSystem.out.println(barcodes.get(i));\r\n\t\t\t\t\tSystem.out.println(algorithms.get(j));\r\n\t\t\t\t\tSystem.out.println(barcodes.get(j));\r\n\t\t\t\t}\r\n\t\t\t\tassertTrue(\"Computed barcodes are not equal for algorithms \" + algorithms.get(i) + \" and \" + algorithms.get(j), barcodes.get(i).equals(barcodes.get(j)));\r\n\t\t\t}\r\n\t\t}\t\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function verifies that all of the given persistence algorithms in the supplied collection produce\r\n\t * equal values when applied to each element in the given set of streams.\r\n\t * \r\n\t * @param <T> the basis element type\r\n\t * @param algorithms the set of algorithms to compare\r\n\t * @param streams the set of streams to use as comparisons\r\n\t */\r\n\tpublic static <T> void verifyEquality(List<AbstractPersistenceAlgorithm<T>> algorithms, Iterable<AbstractFilteredStream<T>> streams) {\r\n\t\tfor (AbstractFilteredStream<T> stream: streams) {\r\n\t\t\tverifyEquality(algorithms, stream);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function verifies that all of the given persistence algorithms in the supplied collection produce\r\n\t * equal values when applied to each element in the given set of streams.\r\n\t * \r\n\t * @param <T> the basis element type\r\n\t * @param <B> the type of the interval generators\r\n\t * @param algorithms the set of algorithms to compare\r\n\t * @param streams the set of streams to use as comparisons\r\n\t */\r\n\tpublic static <T, B> void verifyEqualityWithGenerators(List<AbstractPersistenceBasisAlgorithm<T, B>> algorithms, Iterable<AbstractFilteredStream<T>> streams) {\r\n\t\tfor (AbstractFilteredStream<T> stream: streams) {\r\n\t\t\tverifyEqualityWithGenerators(algorithms, stream);\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/homology/StreamTester.java",
    "content": "package edu.stanford.math.plex4.homology;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport edu.stanford.math.plex4.api.FilteredStreamInterface;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.test_utility.Timing;\r\n\r\n/**\r\n * This class contains functions for comparing streams (filtered chain\r\n * complexes) for equality.\r\n * \r\n * @author Andrew Tausz\r\n * \r\n */\r\npublic class StreamTester {\r\n\r\n\t/**\r\n\t * This function verifies that the Vietoris-Rips streams constructed by plex\r\n\t * 3 and plex 4 are equal.\r\n\t * \r\n\t * @param points\r\n\t *            the set of points in Euclidean space\r\n\t * @param maxDimension\r\n\t *            the maximum dimension of the complex\r\n\t * @param maxFiltrationValue\r\n\t *            the maximum filtration value (maximum distance allowable for\r\n\t *            an edge)\r\n\t * @param numDivisions\r\n\t *            the number of divisions of the interval [0,\r\n\t *            maxFiltrationValue]\r\n\t */\r\n\tpublic static void compareVietorisRipsStreams(double[][] points, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\t\tTiming.restart();\r\n\t\tAbstractFilteredStream<Simplex> plex3Stream = FilteredStreamInterface.createPlex3VietorisRipsStream(points, maxDimension, maxFiltrationValue,\r\n\t\t\t\tnumDivisions);\r\n\t\tTiming.stopAndDisplay(\"Plex 3 Vietoris-Rips Stream\");\r\n\r\n\t\tTiming.restart();\r\n\t\tAbstractFilteredStream<Simplex> plex4Stream = FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension, maxFiltrationValue,\r\n\t\t\t\tnumDivisions);\r\n\t\tTiming.stopAndDisplay(\"Plex 4 Vietoris-Rips Stream\");\r\n\r\n\t\tverifyEqual(plex3Stream, plex4Stream);\r\n\t}\r\n\r\n\t/**\r\n\t * This function verifies that the Lazy-Witness streams constructed by plex\r\n\t * 3 and plex 4 are equal.\r\n\t * \r\n\t * @param selector\r\n\t *            the selection of landmark points within a metric space\r\n\t * @param maxDimension\r\n\t *            the maximum dimension of the complex\r\n\t * @param maxFiltrationValue\r\n\t *            the maximum filtration value (maximum distance allowable for\r\n\t *            an edge)\r\n\t * @param numDivisions\r\n\t *            the number of divisions of the interval [0,\r\n\t *            maxFiltrationValue]\r\n\t */\r\n\tpublic static void compareLazyWitnessStreams(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\t\tTiming.restart();\r\n\t\tAbstractFilteredStream<Simplex> plex3Stream = FilteredStreamInterface.createPlex3LazyWitnessStream(selector, maxDimension, maxFiltrationValue,\r\n\t\t\t\tnumDivisions);\r\n\t\tTiming.stopAndDisplay(\"Plex 3 Lazy-Witness Stream\");\r\n\r\n\t\tTiming.restart();\r\n\t\tAbstractFilteredStream<Simplex> plex4Stream = FilteredStreamInterface.createPlex4LazyWitnessStream(selector, maxDimension, maxFiltrationValue,\r\n\t\t\t\tnumDivisions);\r\n\t\tTiming.stopAndDisplay(\"Plex 4 Lazy-Witness Stream\");\r\n\r\n\t\tverifyEqual(plex3Stream, plex4Stream);\r\n\t}\r\n\r\n\t/**\r\n\t * This function verifies that the Witness streams constructed by plex 3 and\r\n\t * plex 4 are equal.\r\n\t * \r\n\t * @param selector\r\n\t *            the selection of landmark points within a metric space\r\n\t * @param maxDimension\r\n\t *            the maximum dimension of the complex\r\n\t * @param maxFiltrationValue\r\n\t *            the maximum filtration value (maximum distance allowable for\r\n\t *            an edge)\r\n\t * @param numDivisions\r\n\t *            the number of divisions of the interval [0,\r\n\t *            maxFiltrationValue]\r\n\t */\r\n\tpublic static void compareWitnessStreams(LandmarkSelector<double[]> selector, int maxDimension, double maxFiltrationValue, int numDivisions) {\r\n\t\tTiming.restart();\r\n\t\tAbstractFilteredStream<Simplex> plex3Stream = FilteredStreamInterface\r\n\t\t\t\t.createPlex3WitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions);\r\n\t\tTiming.stopAndDisplay(\"Plex 3 Witness Stream\");\r\n\r\n\t\tTiming.restart();\r\n\t\tAbstractFilteredStream<Simplex> plex4Stream = FilteredStreamInterface\r\n\t\t\t\t.createPlex4WitnessStream(selector, maxDimension, maxFiltrationValue, numDivisions);\r\n\t\tTiming.stopAndDisplay(\"Plex 4 Witness Stream\");\r\n\r\n\t\tverifyEqual(plex3Stream, plex4Stream);\r\n\t}\r\n\r\n\t/**\r\n\t * This function compares two AbstractFilteredStream objects to make sure\r\n\t * that they contain the same set of objects with the same filtration\r\n\t * indices.\r\n\t * \r\n\t * @param <T>\r\n\t *            the underlying basis type for the filtered chain complexes\r\n\t * @param stream1\r\n\t *            the first stream\r\n\t * @param stream2\r\n\t *            the second stream\r\n\t */\r\n\tpublic static <T> void verifyEqual(AbstractFilteredStream<T> stream1, AbstractFilteredStream<T> stream2) {\r\n\t\tassertTrue(\"Streams have different sizes.\", stream1.getSize() == stream2.getSize());\r\n\t\tfor (T S : stream1) {\r\n\t\t\tassertTrue(\"Streams have different simplices.\", stream2.containsElement(S));\r\n\t\t\tassertTrue(\"Streams have different filtration indices.\", stream1.getFiltrationIndex(S) == stream2.getFiltrationIndex(S));\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/metric/SearchableMetricSpaceTester.java",
    "content": "package edu.stanford.math.plex4.metric;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\r\nimport gnu.trove.TIntHashSet;\r\nimport gnu.trove.TIntIterator;\r\n\r\n/**\r\n * This class contains functions for testing the validity of the\r\n * subclasses of AbstractSearchableMetricSpace. It verifies that the\r\n * claimed nearest points are indeed the nearest, etc.\r\n *  \r\n * @author Andrew Tausz\r\n */\r\npublic class SearchableMetricSpaceTester {\r\n\tprivate static final int K_MAX = 4;\r\n\t\r\n\t/**\r\n\t * This function verifies that the claimed nearest point to the query point is indeed the nearest point.\r\n\t * \r\n\t * @param <M>\r\n\t * @param metricSpace the metric space to test\r\n\t * @param queryPoint the query point\r\n\t */\r\n\tpublic static <M> void verifyNearestPoint(AbstractSearchableMetricSpace<M> metricSpace, M queryPoint) {\r\n\t\tint nearestPointIndex = metricSpace.getNearestPointIndex(queryPoint);\r\n\t\tM nearestPoint = metricSpace.getPoint(nearestPointIndex);\r\n\t\tdouble nearestDistance = metricSpace.distance(queryPoint, nearestPoint);\r\n\t\t\r\n\t\t// make sure that all other points are not closer than the nearest point\r\n\t\tfor (int j = 0; j < metricSpace.size(); j++) {\r\n\t\t\tif (queryPoint.equals(metricSpace.getPoint(j))) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tdouble distance = metricSpace.distance(queryPoint, metricSpace.getPoint(j));\r\n\t\t\tassertTrue(\"Claimed nearest point is not the nearest.\", nearestDistance <= distance);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function verifies that the k-nearest neighborhood returned is indeed the correct neighborhood.\r\n\t * \r\n\t * @param <M>\r\n\t * @param metricSpace the metric space to test\r\n\t * @param queryPoint the query point\r\n\t */\r\n\tpublic static <M> void verifyKNearestPoint(AbstractSearchableMetricSpace<M> metricSpace, M queryPoint) {\r\n\t\tint k = Math.min(metricSpace.size(), K_MAX);\r\n\t\tTIntHashSet kNearestNeighbors = metricSpace.getKNearestNeighbors(queryPoint, k);\r\n\t\t\r\n\t\t// make sure that k points were returned\r\n\t\tassertTrue(\"k-Nearest Neighborhood does not contain k points.\", kNearestNeighbors.size() == k);\r\n\t\t\r\n\t\t// make sure that non k-nearest points are not closer than k-nearest points\r\n\t\tdouble max_k_nn_distance = 0;\r\n\t\tfor (TIntIterator iterator = kNearestNeighbors.iterator(); iterator.hasNext(); ) {\r\n\t\t\tint index = iterator.next();\r\n\t\t\tmax_k_nn_distance = Math.max(max_k_nn_distance, metricSpace.distance(queryPoint, metricSpace.getPoint(index)));\r\n\t\t}\r\n\t\t\r\n\t\tfor (int j = 0; j < metricSpace.size(); j++) {\r\n\t\t\tif (!kNearestNeighbors.contains(j)) {\r\n\t\t\t\t// make sure that distance is greater than or equal to max_k_nn_distance\r\n\t\t\t\tdouble distance = metricSpace.distance(queryPoint, metricSpace.getPoint(j));\r\n\t\t\t\t\r\n\t\t\t\tif (max_k_nn_distance > distance) {\r\n\t\t\t\t\tSystem.out.println(\"stop\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tassertTrue(\"k-Nearest Neighborhood does not contain near point.\", max_k_nn_distance <= distance);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function performs the verifyNearestPoint test using each point in the metric space as a query point.\r\n\t * \r\n\t * @param <M>\r\n\t * @param metricSpace the metric space to test\r\n\t */\r\n\tpublic static <M> void verifyNearestPoints(AbstractSearchableMetricSpace<M> metricSpace) {\r\n\t\tfor (int i = 0; i < metricSpace.size(); i++) {\r\n\t\t\tM queryPoint = metricSpace.getPoint(i);\r\n\t\t\tverifyNearestPoint(metricSpace, queryPoint);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function performs the verifyKNearestPoint test using each point in the metric space as a query point.\r\n\t * \r\n\t * @param <M>\r\n\t * @param metricSpace the metric space to test\r\n\t */\r\n\tpublic static <M> void verifyKNearestPoints(AbstractSearchableMetricSpace<M> metricSpace) {\r\n\t\tfor (int i = 0; i < metricSpace.size(); i++) {\r\n\t\t\tM queryPoint = metricSpace.getPoint(i);\r\n\t\t\tverifyKNearestPoint(metricSpace, queryPoint);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function performs the nearest point verification for each point in the given array.\r\n\t * \r\n\t * @param <M>\r\n\t * @param metricSpace the metric space to test\r\n\t * @param queryPoints the set of query points\r\n\t */\r\n\tpublic static <M> void verifyNearestPoints(AbstractSearchableMetricSpace<M> metricSpace, M[] queryPoints) {\r\n\t\tfor (M queryPoint: queryPoints) {\r\n\t\t\tverifyNearestPoint(metricSpace, queryPoint);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function performs the k-nearest point verification for each point in the given array.\r\n\t * \r\n\t * @param <M>\r\n\t * @param metricSpace the metric space to test\r\n\t * @param queryPoints the set of query points\r\n\t */\r\n\tpublic static <M> void verifyKNearestPoints(AbstractSearchableMetricSpace<M> metricSpace, M[] queryPoints) {\r\n\t\tfor (M queryPoint: queryPoints) {\r\n\t\t\tverifyKNearestPoint(metricSpace, queryPoint);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function verifies that the epsilon neighborhood around each point in a searchable\r\n\t * finite metric space is indeed an epsilon neighborhood. \r\n\t * \r\n\t * @param <M>\r\n\t * @param metricSpace\r\n\t * @param epsilon\r\n\t */\r\n\tpublic static <M> void verifyNeighborhoods(AbstractSearchableMetricSpace<M> metricSpace, double epsilon) {\r\n\r\n\t\tfor (int i = 0; i < metricSpace.size(); i++) {\r\n\t\t\tM queryPoint = metricSpace.getPoint(i);\r\n\r\n\t\t\tTIntHashSet neighborhood = metricSpace.getOpenNeighborhood(queryPoint, epsilon);\r\n\r\n\t\t\t// make sure that the points in the neighborhood satisfy d(i, j) < epsilon \r\n\t\t\tfor (TIntIterator iterator = neighborhood.iterator(); iterator.hasNext(); ) {\r\n\t\t\t\tint j = iterator.next();\r\n\t\t\t\tdouble distance = metricSpace.distance(i, j);\r\n\r\n\t\t\t\tassertTrue(\"Epsilon neighborhood of point contains point further than epsilon away.\", distance < epsilon);\r\n\t\t\t}\r\n\r\n\t\t\t// make sure that points outside of the neighborhood satisfy d(i, j) >= epsilon\r\n\t\t\tfor (int j = 0; j < metricSpace.size(); j++) {\r\n\t\t\t\tif (neighborhood.contains(j) || i == j) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdouble distance = metricSpace.distance(i, j);\r\n\r\n\t\t\t\tassertTrue(\"Epsilon neighborhood of point does not contain valid point.\", distance >= epsilon);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/test_utility/Timing.java",
    "content": "package edu.stanford.math.plex4.test_utility;\n\nimport cern.colt.Timer;\n\n/**\n * This class contains static methods for measuring time intervals. It is exists\n * for convenience purposes so that one doesn't have to instantiate an object whenever\n * one wishes to measure a time interval.\n * \n * @author Andrew Tausz\n *\n */\npublic class Timing {\n\tprivate static Timer timer;\n\t\n\tprivate static void initialize() {\n\t\ttimer = new Timer();\n\t\t\n\t}\n\t\n\tpublic static void restart() {\n\t\tif (timer == null) {\n\t\t\tinitialize();\n\t\t}\n\t\ttimer.reset();\n\t\ttimer.start();\n\t}\n\t\n\tpublic static void stop() {\n\t\tif (timer == null) {\n\t\t\tinitialize();\n\t\t}\n\t\ttimer.stop();\n\t}\n\t\n\tpublic static void reset() {\n\t\tif (timer == null) {\n\t\t\tinitialize();\n\t\t}\n\t\ttimer.reset();\n\t}\n\t\n\tpublic static float seconds() {\n\t\tif (timer == null) {\n\t\t\tinitialize();\n\t\t}\n\t\treturn timer.seconds();\n\t}\n\t\n\tpublic static void stopAndDisplay() {\n\t\tif (timer == null) {\n\t\t\tinitialize();\n\t\t}\n\t\ttimer.stop();\n\t\tSystem.out.println(\"Elapsed time (s): \" + timer.seconds());\n\t\ttimer.reset();\n\t}\n\t\n\tpublic static void stopAndDisplay(String label) {\n\t\tif (timer == null) {\n\t\t\tinitialize();\n\t\t}\n\t\ttimer.stop();\n\t\tSystem.out.println(\"Elapsed time (s) for \" + label + \": \" + timer.seconds());\n\t\ttimer.reset();\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/unit_tests/DeSilvaMorozovJohanssonTest.java",
    "content": "package edu.stanford.math.plex4.unit_tests;\r\n\r\nimport static org.junit.Assert.assertTrue;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\nimport edu.stanford.math.plex4.autogen.homology.ObjectAbsoluteHomology;\r\nimport edu.stanford.math.plex4.autogen.homology.ObjectRelativeHomology;\r\nimport edu.stanford.math.plex4.examples.DeSilvaMorozovJohanssonExample;\r\nimport edu.stanford.math.plex4.homology.barcodes.AnnotatedBarcodeCollection;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Cell;\r\nimport edu.stanford.math.plex4.homology.chain_basis.CellComparator;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceBasisAlgorithm;\r\nimport edu.stanford.math.primitivelib.algebraic.impl.ModularIntegerField;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.ObjectAbstractField;\r\nimport edu.stanford.math.primitivelib.autogen.formal_sum.ObjectSparseFormalSum;\r\n\r\npublic class DeSilvaMorozovJohanssonTest {\r\n\tprivate final ObjectAbstractField<Integer> field = ModularIntegerField.getInstance(13);\r\n\tprivate final DeSilvaMorozovJohanssonExample<Integer> example = new DeSilvaMorozovJohanssonExample<Integer>(field);\r\n\t\r\n\t@Before\r\n\tpublic void setUp() throws Exception {\r\n\t}\r\n\r\n\t@After\r\n\tpublic void tearDown() throws Exception {\r\n\t}\r\n\r\n\t@Test\r\n\tpublic void testAbsoluteHomology() {\r\n\t\tAbstractPersistenceBasisAlgorithm<Cell, ObjectSparseFormalSum<Integer, Cell>> persistenceAlgorithm = new ObjectAbsoluteHomology<Integer, Cell>(field, CellComparator.getInstance(), 0, 3);\r\n\t\tAnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<Integer, Cell>> collection = persistenceAlgorithm.computeAnnotatedIndexIntervals(example.getCellComplex());\r\n\t\tassertTrue(collection.equals(example.getAbsoluteHomologyBarcodes()));\r\n\t}\r\n\t\r\n\t@Test\r\n\tpublic void testRelativeHomology() {\r\n\t\tAbstractPersistenceBasisAlgorithm<Cell, ObjectSparseFormalSum<Integer, Cell>> persistenceAlgorithm = new ObjectRelativeHomology<Integer, Cell>(field, CellComparator.getInstance(), 0, 3);\r\n\t\tAnnotatedBarcodeCollection<Integer, ObjectSparseFormalSum<Integer, Cell>> collection = persistenceAlgorithm.computeAnnotatedIndexIntervals(example.getCellComplex());\r\n\t\tassertTrue(collection.equals(example.getRelativeHomologyBarcodes()));\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/unit_tests/ExperimentalEqualityTest.java",
    "content": "package edu.stanford.math.plex4.unit_tests;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\nimport edu.stanford.math.plex4.api.FilteredStreamInterface;\r\nimport edu.stanford.math.plex4.api.PersistenceAlgorithmInterface;\r\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\r\nimport edu.stanford.math.plex4.examples.SimplexStreamExamples;\r\nimport edu.stanford.math.plex4.homology.PersistenceAlgorithmTester;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.homology.chain_basis.SimplexComparator;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.homology.zigzag.ZigZagHomology;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\nimport edu.stanford.math.primitivelib.algebraic.impl.ModularIntField;\r\nimport edu.stanford.math.primitivelib.autogen.algebraic.IntAbstractField;\r\n\r\npublic class ExperimentalEqualityTest {\r\n\tIntAbstractField intField = ModularIntField.getInstance(11);\r\n\t\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\tRandomUtility.initializeWithSeed(0);\r\n\t}\r\n\r\n\t@After\r\n\tpublic void tearDown() {}\r\n\r\n\tpublic List<AbstractPersistenceAlgorithm<Simplex>> getAlgorithms(int maxDimension) {\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = new ArrayList<AbstractPersistenceAlgorithm<Simplex>>();\r\n\t\talgorithms.add(PersistenceAlgorithmInterface.getPlex3SimplicialAbsoluteHomology(maxDimension));\r\n\t\talgorithms.add(new ZigZagHomology<Simplex>(intField, SimplexComparator.getInstance(), 0, maxDimension - 1));\r\n\t\t\r\n\t\treturn algorithms;\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function tests various small examples of filtered simplicial complexes.\r\n\t */\r\n\t@Test\r\n\tpublic void testSmallSimplexStreams() {\r\n\t\tint maxDimension = 4;\r\n\t\t\r\n\t\tList<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>();\r\n\t\t\r\n\t\tstreams.add(SimplexStreamExamples.getFilteredTriangle());\r\n\t\tstreams.add(SimplexStreamExamples.getZomorodianCarlssonExample());\r\n\t\tstreams.add(SimplexStreamExamples.getTriangle());\r\n\t\tstreams.add(SimplexStreamExamples.getTetrahedron());\r\n\t\tstreams.add(SimplexStreamExamples.getTorus());\r\n\t\tstreams.add(SimplexStreamExamples.getCircle(7));\r\n\t\tstreams.add(SimplexStreamExamples.getOctahedron());\r\n\t\tstreams.add(SimplexStreamExamples.getIcosahedron());\r\n\t\tstreams.add(SimplexStreamExamples.getAnnulus(4, 10));\r\n\t\t\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = getAlgorithms(maxDimension);\r\n\t\tPersistenceAlgorithmTester.verifyEquality(algorithms, streams);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function tests the algorithms on Vietoris-Rips complexes generated from point clouds.\r\n\t */\r\n\t@Test\r\n\tpublic void testVietorisRipsPointClouds() {\r\n\t\tfinal int n = 120;\r\n\t\tfinal int maxDimension = 4;\r\n\t\tfinal double maxFiltrationValue = 0.5;\r\n\t\tfinal int numDivisions = 10;\r\n\t\t\r\n\t\tList<double[][]> pointClouds = new ArrayList<double[][]>();\r\n\t\tpointClouds.add(PointCloudExamples.getEquispacedCirclePoints(n));\r\n\t\tpointClouds.add(PointCloudExamples.getGaussianPoints(n, maxDimension));\r\n\t\tpointClouds.add(PointCloudExamples.getRandomFigure8Points(n));\r\n\t\tpointClouds.add(PointCloudExamples.getRandomSpherePoints(maxDimension * n, maxDimension - 1));\r\n\t\t\r\n\t\tList<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>();\r\n\t\t\r\n\t\tfor (double[][] pointCloud: pointClouds) {\r\n\t\t\tstreams.add(FilteredStreamInterface.createPlex4VietorisRipsStream(pointCloud, maxDimension + 1, maxFiltrationValue, numDivisions));\r\n\t\t}\r\n\t\t\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = getAlgorithms(maxDimension);\r\n\t\tPersistenceAlgorithmTester.verifyEquality(algorithms, streams);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/unit_tests/PersistenceAlgorithmEqualityTest.java",
    "content": "package edu.stanford.math.plex4.unit_tests;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\nimport edu.stanford.math.plex4.api.FilteredStreamInterface;\r\nimport edu.stanford.math.plex4.api.PersistenceAlgorithmInterface;\r\nimport edu.stanford.math.plex4.examples.CellStreamExamples;\r\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\r\nimport edu.stanford.math.plex4.examples.SimplexStreamExamples;\r\nimport edu.stanford.math.plex4.homology.PersistenceAlgorithmTester;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Cell;\r\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\r\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\r\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\r\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\r\nimport edu.stanford.math.plex4.metric.landmark.RandomLandmarkSelector;\r\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\n\r\n/**\r\n * This class contains test for verifying that the different persistence algorithms produce the\r\n * same results.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class PersistenceAlgorithmEqualityTest {\r\n\t\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\tRandomUtility.initializeWithSeed(0);\r\n\t}\r\n\r\n\t@After\r\n\tpublic void tearDown() {}\r\n\r\n\t/**\r\n\t * This function tests various small examples of filtered simplicial complexes.\r\n\t */\r\n\t@Test\r\n\tpublic void testSmallSimplexStreams() {\r\n\t\tint maxDimension = 4;\r\n\t\t\r\n\t\tList<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>();\r\n\t\t\r\n\t\tstreams.add(SimplexStreamExamples.getZomorodianCarlssonExample());\r\n\t\tstreams.add(SimplexStreamExamples.getFilteredTriangle());\r\n\t\tstreams.add(SimplexStreamExamples.getTriangle());\r\n\t\tstreams.add(SimplexStreamExamples.getTetrahedron());\r\n\t\tstreams.add(SimplexStreamExamples.getTorus());\r\n\t\tstreams.add(SimplexStreamExamples.getCircle(7));\r\n\t\tstreams.add(SimplexStreamExamples.getOctahedron());\r\n\t\tstreams.add(SimplexStreamExamples.getIcosahedron());\r\n\t\tstreams.add(SimplexStreamExamples.getAnnulus(4, 10));\r\n\t\t\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(maxDimension);\r\n\t\tPersistenceAlgorithmTester.verifyEquality(algorithms, streams);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function tests various small examples of filtered cell complexes. Note that we only test\r\n\t * the orientable examples, due to differing results due to torsion.\r\n\t */\r\n\t@Test\r\n\tpublic void testSmallCellStreams() {\r\n\t\tint maxDimension = 4;\r\n\t\t\r\n\t\tList<AbstractFilteredStream<Cell>> streams = new ArrayList<AbstractFilteredStream<Cell>>();\r\n\t\t\r\n\t\tstreams.add(CellStreamExamples.getMorozovJohanssonExample());\r\n\t\tstreams.add(CellStreamExamples.getCellularSphere(maxDimension - 1));\r\n\t\tstreams.add(CellStreamExamples.getCellularTorus());\r\n\t\t\r\n\t\tList<AbstractPersistenceAlgorithm<Cell>> algorithms = PersistenceAlgorithmInterface.getAllCellularAbsoluteHomologyAlgorithms(maxDimension);\r\n\t\tPersistenceAlgorithmTester.verifyEquality(algorithms, streams);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function tests the algorithms on Vietoris-Rips complexes generated from point clouds.\r\n\t */\r\n\t@Test\r\n\tpublic void testVietorisRipsPointClouds() {\r\n\t\tfinal int n = 120;\r\n\t\tfinal int maxDimension = 5;\r\n\t\tfinal double maxFiltrationValue = 0.5;\r\n\t\tfinal int numDivisions = 10;\r\n\t\t\r\n\t\tList<double[][]> pointClouds = new ArrayList<double[][]>();\r\n\t\tpointClouds.add(PointCloudExamples.getEquispacedCirclePoints(n));\r\n\t\tpointClouds.add(PointCloudExamples.getGaussianPoints(n, maxDimension));\r\n\t\tpointClouds.add(PointCloudExamples.getRandomFigure8Points(n));\r\n\t\tpointClouds.add(PointCloudExamples.getRandomSpherePoints(maxDimension * n, maxDimension - 1));\r\n\t\t\r\n\t\tList<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>();\r\n\t\t\r\n\t\tfor (double[][] pointCloud: pointClouds) {\r\n\t\t\tstreams.add(FilteredStreamInterface.createPlex4VietorisRipsStream(pointCloud, maxDimension + 1, maxFiltrationValue, numDivisions));\r\n\t\t}\r\n\t\t\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(maxDimension - 1);\r\n\r\n\t\tPersistenceAlgorithmTester.verifyEquality(algorithms, streams);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function tests the algorithms on Lazy-Witness complexes generated from point clouds.\r\n\t */\r\n\t@Test\r\n\tpublic void testLazyWitnessPointClouds() {\r\n\t\tfinal int n = 500;\r\n\t\tfinal int l = 50;\r\n\t\tfinal int maxDimension = 3;\r\n\t\tfinal double maxFiltrationValue = 0.3;\r\n\t\tfinal int numDivisions = 10;\r\n\t\t\r\n\t\tList<double[][]> pointClouds = new ArrayList<double[][]>();\r\n\t\tpointClouds.add(PointCloudExamples.getEquispacedCirclePoints(n));\r\n\t\tpointClouds.add(PointCloudExamples.getGaussianPoints(n, maxDimension));\r\n\t\tpointClouds.add(PointCloudExamples.getRandomFigure8Points(n));\r\n\t\tpointClouds.add(PointCloudExamples.getRandomSpherePoints(maxDimension * n, maxDimension - 1));\r\n\t\t\r\n\t\tList<AbstractFilteredStream<Simplex>> streams = new ArrayList<AbstractFilteredStream<Simplex>>();\r\n\t\t\r\n\t\tfor (double[][] pointCloud: pointClouds) {\r\n\t\t\tLandmarkSelector<double[]> landmarkSet = new RandomLandmarkSelector<double[]>(new EuclideanMetricSpace(pointCloud), l);\r\n\t\t\tstreams.add(FilteredStreamInterface.createPlex4LazyWitnessStream(landmarkSet, maxDimension, maxFiltrationValue, numDivisions));\r\n\t\t}\r\n\t\t\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(maxDimension - 1);\r\n\t\tPersistenceAlgorithmTester.verifyEquality(algorithms, streams);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function tests a complex that contains approximately 500,000 simplices. It compares the\r\n\t * efficiency of the different algorithms on a large complex.\r\n\t */\r\n\t@Test\r\n\tpublic void testLargeFigure8Complex() {\r\n\t\tfinal int n = 220;\r\n\t\tfinal int maxDimension = 4;\r\n\t\tfinal double maxFiltrationValue = 0.5;\r\n\t\tfinal int numDivisions = 10;\r\n\t\t\r\n\t\tdouble[][] points = PointCloudExamples.getRandomFigure8Points(n);\r\n\t\tAbstractFilteredStream<Simplex> stream = FilteredStreamInterface.createPlex4VietorisRipsStream(points, maxDimension + 1, maxFiltrationValue, numDivisions);\r\n\t\t\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(maxDimension - 1);\r\n\t\tPersistenceAlgorithmTester.verifyEquality(algorithms, stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function compares the algorithms on a Vietoris-Rips stream generated from sampling a 6-dimensional sphere.\r\n\t */\r\n\t@Test\r\n\tpublic void testHighDimensionalSphere() {\r\n\t\tfinal int n = 48;\r\n\t\tfinal int sphereDimension = 6;\r\n\t\tfinal double maxFiltrationValue = 1.5;\r\n\t\tfinal int numDivisions = 10;\r\n\t\t\r\n\t\tdouble[][] points = PointCloudExamples.getRandomSpherePoints(n, sphereDimension);\r\n\t\tAbstractFilteredStream<Simplex> stream = FilteredStreamInterface.createPlex4VietorisRipsStream(points, sphereDimension + 1, maxFiltrationValue, numDivisions);\r\n\t\t\r\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllSimplicialAbsoluteHomologyAlgorithms(sphereDimension);\r\n\t\tPersistenceAlgorithmTester.verifyEquality(algorithms, stream);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/unit_tests/SearchableMetricSpaceTest.java",
    "content": "package edu.stanford.math.plex4.unit_tests;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\r\nimport edu.stanford.math.plex4.kd.KDEuclideanMetricSpace;\r\nimport edu.stanford.math.plex4.metric.SearchableMetricSpaceTester;\r\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\r\nimport edu.stanford.math.plex4.metric.interfaces.AbstractSearchableMetricSpace;\r\nimport edu.stanford.math.plex4.metric.utility.MetricUtility;\r\nimport edu.stanford.math.plex4.test_utility.Timing;\r\n\r\n/**\r\n * This class contains tests for verifying the functionality of the\r\n * metric space searching classes.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class SearchableMetricSpaceTest {\r\n\t\r\n\t// 2-D point cloud examples\r\n\tprivate List<double[][]> pointCloudExamples = new ArrayList<double[][]>();\r\n\t\r\n\t// 2-D query point set\r\n\tprivate double[][] queryPointSet = null;\r\n\t\r\n\tprivate int d = 3;\r\n\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\tint n = 20000;\r\n\t\t\r\n\t\tpointCloudExamples.add(PointCloudExamples.getRandomSpherePoints(n, d - 1));\r\n\r\n\t\tqueryPointSet = PointCloudExamples.getGaussianPoints(n, d);\r\n\t}\r\n\r\n\t@After\r\n\tpublic void tearDown() {\r\n\t\tpointCloudExamples = null;\r\n\t\tqueryPointSet = null;\r\n\t}\r\n\t\r\n\t@Test\r\n\tpublic void testNonKDMetricSpace2D() {\r\n\t\tTiming.restart();\r\n\t\tfor (double[][] pointCloud: this.pointCloudExamples) {\r\n\t\t\tAbstractSearchableMetricSpace<double[]> metricSpace = new EuclideanMetricSpace(pointCloud);\r\n\t\t\t\r\n\t\t\tdouble epsilon = MetricUtility.estimateDiameter(metricSpace) / 5.0;\r\n\t\t\t\r\n\t\t\tSearchableMetricSpaceTester.verifyNearestPoints(metricSpace, queryPointSet);\r\n\t\t\tSearchableMetricSpaceTester.verifyKNearestPoints(metricSpace, queryPointSet);\r\n\t\t\tSearchableMetricSpaceTester.verifyNeighborhoods(metricSpace, epsilon);\r\n\t\t}\r\n\t\tTiming.stopAndDisplay(\"Non KD\");\r\n\t}\r\n\t\r\n\t@Test\r\n\tpublic void testKDMetricSpace2D() {\r\n\t\tTiming.restart();\r\n\t\tfor (double[][] pointCloud: this.pointCloudExamples) {\r\n\t\t\tAbstractSearchableMetricSpace<double[]> metricSpace = new KDEuclideanMetricSpace(pointCloud);\r\n\t\t\t\r\n\t\t\tdouble epsilon = MetricUtility.estimateDiameter(metricSpace) / 5.0;\r\n\t\t\t\r\n\t\t\tSearchableMetricSpaceTester.verifyNearestPoints(metricSpace, queryPointSet);\r\n\t\t\tSearchableMetricSpaceTester.verifyKNearestPoints(metricSpace, queryPointSet);\r\n\t\t\tSearchableMetricSpaceTester.verifyNeighborhoods(metricSpace, epsilon);\r\n\t\t}\r\n\t\tTiming.stopAndDisplay(\"KD\");\r\n\t}\r\n}\r\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/unit_tests/SimplicialSphereTest.java",
    "content": "package edu.stanford.math.plex4.unit_tests;\n\nimport static org.junit.Assert.assertTrue;\n\nimport java.util.List;\n\nimport org.junit.After;\nimport org.junit.Before;\nimport org.junit.Test;\n\nimport edu.stanford.math.plex4.api.PersistenceAlgorithmInterface;\nimport edu.stanford.math.plex4.examples.SimplexStreamExamples;\nimport edu.stanford.math.plex4.homology.barcodes.BarcodeCollection;\nimport edu.stanford.math.plex4.homology.chain_basis.Simplex;\nimport edu.stanford.math.plex4.homology.interfaces.AbstractPersistenceAlgorithm;\nimport edu.stanford.math.plex4.streams.interfaces.AbstractFilteredStream;\nimport edu.stanford.math.plex4.test_utility.Timing;\n\n/**\n * This class tests different persistence algorithms on a simplicial sphere. Since plex 3 doesn't support\n * simplices of dimension greater than 7, this only tests plex 4 algorithms.\n * \n * @author Andrew Tausz\n *\n */\npublic class SimplicialSphereTest {\n\t\n\t\n\t@Before\n\tpublic void setUp() throws Exception {\n\t}\n\n\t@After\n\tpublic void tearDown() throws Exception {\n\t}\n\n\t/**\n\t * This function tests the plex 4 algorithms on a 16 dimensional simplicial sphere.\n\t */\n\t@Test\n\tpublic void testAbsoluteHomology() {\n\t\tfinal int sphereDimension = 16;\n\t\tfinal int maxHomologyDimension = sphereDimension + 5;\n\t\tList<AbstractPersistenceAlgorithm<Simplex>> algorithms = PersistenceAlgorithmInterface.getAllPlex4SimplicialAbsoluteHomologyAlgorithms(maxHomologyDimension);\n\t\tBarcodeCollection<Integer> correctAnswer = getSphereBarcodes(sphereDimension, maxHomologyDimension);\n\t\tAbstractFilteredStream<Simplex> stream = getSimplicialSphere(sphereDimension);\n\t\tSystem.out.println(String.format(\"Number of simplices in %d-sphere: %s\", sphereDimension, stream.getSize()));\n\t\tfor (AbstractPersistenceAlgorithm<Simplex> algorithm : algorithms) {\n\t\t\tTiming.restart();\n\t\t\tBarcodeCollection<Integer> collection = algorithm.computeIndexIntervals(stream);\n\t\t\tTiming.stopAndDisplay(algorithm.toString());\n\t\t\tassertTrue(correctAnswer.equals(collection));\n\t\t}\n\t}\n\t\n\tpublic static AbstractFilteredStream<Simplex> getSimplicialSphere(int dimension) {\n\t\treturn SimplexStreamExamples.getSimplicialSphere(dimension);\n\t}\n\t\n\tpublic static BarcodeCollection<Integer> getSphereBarcodes(int sphereDimension, int maxBarcodeDimension) {\n\t\tBarcodeCollection<Integer> collection = new BarcodeCollection<Integer>();\n\t\t\n\t\tif (maxBarcodeDimension >= 0) {\n\t\t\tcollection.addRightInfiniteInterval(0, 0);\n\t\t}\n\t\t\n\t\tif (maxBarcodeDimension >= sphereDimension) {\n\t\t\tcollection.addRightInfiniteInterval(sphereDimension, 0);\n\t\t}\n\t\t\n\t\treturn collection;\n\t}\n}\n"
  },
  {
    "path": "src_test/java/edu/stanford/math/plex4/unit_tests/StreamsTest.java",
    "content": "package edu.stanford.math.plex4.unit_tests;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport org.junit.After;\r\nimport org.junit.Before;\r\nimport org.junit.Test;\r\n\r\nimport edu.stanford.math.plex4.examples.PointCloudExamples;\r\nimport edu.stanford.math.plex4.homology.StreamTester;\r\nimport edu.stanford.math.plex4.metric.impl.EuclideanMetricSpace;\r\nimport edu.stanford.math.plex4.metric.landmark.LandmarkSelector;\r\nimport edu.stanford.math.plex4.metric.landmark.RandomLandmarkSelector;\r\nimport edu.stanford.math.plex4.utility.RandomUtility;\r\n\r\n/**\r\n * This class tests the equality of streams produced by plex 3 and plex 4.\r\n * \r\n * @author Andrew Tausz\r\n *\r\n */\r\npublic class StreamsTest {\r\n\tprivate final List<double[][]> pointClouds = new ArrayList<double[][]>();\r\n\tprivate final int n = 60;\r\n\tprivate final int l = n/2;\r\n\tprivate final int d = 4;\r\n\tprivate final int maxDimension = 4;\r\n\tprivate final double maxFiltrationValue = 0.3;\r\n\tprivate final int numDivisions = 20;\r\n\t\r\n\t@Before\r\n\tpublic void setUp() {\r\n\t\tRandomUtility.initializeWithSeed(4);\r\n\t\t\r\n\t\tpointClouds.add(PointCloudExamples.getEquispacedCirclePoints(n));\r\n\t\tpointClouds.add(PointCloudExamples.getGaussianPoints(n, d));\r\n\t\tpointClouds.add(PointCloudExamples.getRandomFigure8Points(n));\r\n\t\tpointClouds.add(PointCloudExamples.getRandomSpherePoints(n, d - 1));\r\n\t}\r\n\r\n\t@After\r\n\tpublic void tearDown() {}\r\n\t\r\n\t@Test\r\n\tpublic void testVietorisRips() {\r\n\t\tfor (double[][] pointCloud: pointClouds) {\r\n\t\t\tStreamTester.compareVietorisRipsStreams(pointCloud, maxDimension, maxFiltrationValue, numDivisions);\r\n\t\t}\r\n\t}\r\n\t\r\n\t@Test\r\n\tpublic void testLazyWitness() {\r\n\t\tfor (double[][] pointCloud: pointClouds) {\r\n\t\t\tLandmarkSelector<double[]> landmarkSet = new RandomLandmarkSelector<double[]>(new EuclideanMetricSpace(pointCloud), l);\r\n\t\t\tStreamTester.compareLazyWitnessStreams(landmarkSet, maxDimension, maxFiltrationValue, numDivisions);\r\n\t\t}\r\n\t}\r\n\t\r\n\t@Test\r\n\tpublic void testWitness() {\r\n\t\tfor (double[][] pointCloud: pointClouds) {\r\n\t\t\tLandmarkSelector<double[]> landmarkSet = new RandomLandmarkSelector<double[]>(new EuclideanMetricSpace(pointCloud), l);\r\n\t\t\tStreamTester.compareWitnessStreams(landmarkSet, maxDimension, maxFiltrationValue, numDivisions);\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "templates/homology/AbsoluteHomology.vm",
    "content": "package $packageName;\r\n\r\nimport java.util.Iterator;\r\n\r\n#set ($coefficientType = $templateTypes.get(0))\r\n#set ($objectType = $genericTypes.get(0))\r\n\r\n#set ($sumClassName = $utility.getAnnotatedClassName(\"SparseFormalSum\", $templateTypes, $genericTypes))\r\n#set ($fieldClassName = $utility.getAnnotatedClassName(\"AbstractField\", [$coefficientType], []))\r\n#set ($className = $utility.getAnnotatedClassName(\"AbsoluteHomology\", $templateTypes, $genericTypes))\r\n#set ($basicClassName = $utility.getClassName(\"AbsoluteHomology\", $templateTypes, $genericTypes))\r\n#set ($superClassName = $utility.getAnnotatedClassName(\"PersistentHomology\", $templateTypes, $genericTypes))\r\n\r\n#if ($coefficientType == \"boolean\")\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"PrimitiveFreeModule\", $templateTypes, $genericTypes))\r\n#else\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"AlgebraicFreeModule\", $templateTypes, $genericTypes))\r\n#end\r\n\r\n#set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n#set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n\r\n@Generated(value = { \"edu.stanford.math.plex4.generation.GeneratorDriver\" })\r\npublic class $className extends $superClassName {\r\n\t#if ($coefficientType == \"boolean\")\r\n\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t#else\r\n\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type $coefficientType\r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t#end\r\n\t\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, $sumClassName> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<$objectType, $sumClassName>, \r\n\t\t\tTHashMap<$objectType, $sumClassName>> RV_pair, \r\n\t\t\tAbstractFilteredStream<$objectType> stream) {\r\n\t\t\t\r\n\t\treturn this.getAnnotatedIntervals(RV_pair, stream, true);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<$objectType, $sumClassName>, \r\n\t\t\tTHashMap<$objectType, $sumClassName>> RV_pair,\r\n\t\t\tAbstractFilteredStream<$objectType> stream) {\r\n\t\t\t\r\n\t\treturn this.getIntervals(RV_pair, stream, true);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "templates/homology/ClassicalHomology.vm",
    "content": "package $packageName;\r\n\r\nimport java.util.Iterator;\r\n\r\n#set ($coefficientType = $templateTypes.get(0))\r\n#set ($objectType = $genericTypes.get(0))\r\n\r\n#set ($sumClassName = $utility.getAnnotatedClassName(\"SparseFormalSum\", $templateTypes, $genericTypes))\r\n#set ($fieldClassName = $utility.getAnnotatedClassName(\"AbstractField\", [$coefficientType], []))\r\n#set ($className = $utility.getAnnotatedClassName(\"ClassicalHomology\", $templateTypes, $genericTypes))\r\n#set ($basicClassName = $utility.getClassName(\"ClassicalHomology\", $templateTypes, $genericTypes))\r\n#set ($superClassName = $utility.getAnnotatedClassName(\"AbstractPersistenceAlgorithm\", [], $genericTypes))\r\n\r\n#if ($coefficientType == \"boolean\")\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"PrimitiveFreeModule\", $templateTypes, $genericTypes))\r\n#else\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"AlgebraicFreeModule\", $templateTypes, $genericTypes))\r\n#end\r\n\r\n#set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n#set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n\r\n/**\r\n * <p>This class performs the persistent homology algorithm as outlined in\r\n * the paper \"Computing Persistent Homology\" by Zomorodian and Carlsson.</p>\r\n * \r\n * <p>$coefficientType the underlying type of the coefficient field</p>\r\n * <p>$objectType the underlying basis type</p>\r\n *\r\n * @author autogen\r\n *\r\n * \r\n */\r\n@Generated(value = { \"edu.stanford.math.plex4.generation.GeneratorDriver\" })\r\npublic class $className extends $superClassName {\r\n\t#if (!($coefficientType == \"boolean\"))\r\n\tprotected final $fieldClassName field;\r\n\t#end\r\n\tprivate final $moduleClassName chainModule;\r\n\tprivate final Comparator<$objectType> basisComparator;\r\n\tprivate final int maxDimension;\r\n\tprivate final int minDimension;\r\n\t\r\n\tprivate THashSet<$objectType> markedSimplices = null;\r\n\tprivate THashMap<$objectType, $sumClassName> T = null;\r\n\tprivate Comparator<$objectType> filteredComparator = null;\r\n\t\r\n\t#if ($coefficientType == \"boolean\")\r\n\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.chainModule = new $moduleClassName();\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t#else\r\n\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type $coefficientType\r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.field = field;\r\n\t\tthis.chainModule = new $moduleClassName(this.field);\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t#end\r\n\t\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<$objectType> stream) {\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\t\t\r\n\t\tthis.filteredComparator = new FilteredComparator<$objectType>(stream, this.basisComparator);\r\n\t\tthis.markedSimplices = new THashSet<$objectType>();\r\n\t\tthis.T = new THashMap<$objectType, $sumClassName>();\r\n\t\t\r\n\t\tfor ($objectType simplex : stream) {\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(simplex) > maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(simplex) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t/*\r\n\t\t\t * Translation from paper:\r\n\t\t\t * \r\n\t\t\t * sigma_j = simplex\r\n\t\t\t * sigma_i = d.maxObject();\r\n\t\t\t * \r\n\t\t\t */\r\n\r\n\t\t\tthis.T.remove(simplex);\r\n\t\t\t\r\n\t\t\t$sumClassName d = this.removePivotRows(simplex, stream);\r\n\t\t\t\r\n\t\t\tif (d.isEmpty()) {\r\n\t\t\t\tthis.markedSimplices.add(simplex);\r\n\t\t\t} else {\r\n\t\t\t\t$objectType sigma_j = simplex;\r\n\t\t\t\t$objectType sigma_i = getMaximumObject(d);\r\n\t\t\t\tint k = stream.getDimension(sigma_i);\r\n\t\t\t\t\r\n\t\t\t\t// store j and d in $objectType[i]\r\n\t\t\t\tthis.T.put(sigma_i, d);\r\n\t\t\t\t\r\n\t\t\t\t// store interval\r\n\t\t\t\tint index_i = stream.getFiltrationIndex(sigma_i);\r\n\t\t\t\tint index_j = stream.getFiltrationIndex(sigma_j);\r\n\t\t\t\t\r\n\t\t\t\tassert (index_i <= index_j);\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t// don't store intervals that are simultaneously created and destroyed\r\n\t\t\t\tif ((index_j - index_i > 0) && k < maxDimension) {\r\n\t\t\t\t\tbarcodeCollection.addInterval(k, index_i, index_j);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tfor ($objectType simplex : this.markedSimplices) {\r\n\t\t\tif (!this.T.containsKey(simplex) || this.T.get(simplex).isEmpty()) {\r\n\t\t\t\tint k = stream.getDimension(simplex);\r\n\t\t\t\tif (k < maxDimension) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(k, stream.getFiltrationIndex(simplex));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\t\tthis.T = null;\r\n\t\tthis.markedSimplices = null;\r\n\t\tthis.filteredComparator = null;\r\n\t\t\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\t\r\n\tprivate $sumClassName removePivotRows($objectType simplex, AbstractFilteredStream<$objectType> stream) {\r\n\t\t$sumClassName d = chainModule.createNewSum(stream.getBoundaryCoefficients(simplex), stream.getBoundary(simplex));\r\n\r\n\t\t#if ($coefficientType == \"boolean\")\r\n\t\t$objectType current = null;\r\n\t\tfor (Iterator<$objectType> iterator = d.iterator(); iterator.hasNext(); ) {\r\n\t\t\tcurrent = iterator.next();\r\n\t\t\tif (!this.markedSimplices.contains(current)) {\r\n\t\t\t\titerator.remove();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#else\r\n\t\t\r\n\t\t#if ($utility.isPrimitive($coefficientType))\r\n\t\t\r\n\t\t// remove unmarked terms from d\r\n\t\tfor ($iteratorType iterator = d.iterator(); iterator.hasNext(); ) {\r\n\t\t\titerator.advance();\r\n\t\t\tif (!this.markedSimplices.contains(iterator.key())) {\r\n\t\t\t\titerator.remove();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#else\r\n\t\t\r\n\t\tfor (Iterator<Map.Entry<$objectType, $coefficientType>> iterator = d.iterator(); iterator.hasNext(); ) {\r\n\t\t\tMap.Entry<$objectType, $coefficientType> entry = iterator.next();\r\n\t\t\t\r\n\t\t\tif (!this.markedSimplices.contains(entry.getKey())) {\r\n\t\t\t\titerator.remove();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#end\r\n\t\t\r\n\t\t#end\r\n\t\t\r\n\t\t$objectType sigma_i = null;\r\n\t\t#if ($coefficientType == \"boolean\")\r\n\t\t$coefficientType q = $utility.getDefaultElement($coefficientType);\r\n\t\t#else\r\n\t\t$coefficientType q = this.field.getZero();\r\n\t\t#end\r\n\t\twhile (!d.isEmpty()) {\r\n\t\t\tsigma_i = getMaximumObject(d);\r\n\t\t\t\r\n\t\t\tif (!this.T.containsKey(sigma_i) || this.T.get(sigma_i).isEmpty()) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tq = T.get(sigma_i).getCoefficient(sigma_i);\r\n\t\t\t\r\n\t\t\t#if ($coefficientType == \"boolean\")\r\n\t\t\tif (q == $utility.getDefaultElement($coefficientType)) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t#else\r\n\t\t\tif (field.isZero(q)) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t#end\r\n\t\t\t\r\n\t\t\t#if ($coefficientType == \"boolean\")\r\n\t\t\tchainModule.accumulate(d, T.get(sigma_i), q);\r\n\t\t\t#else\r\n\t\t\tchainModule.accumulate(d, T.get(sigma_i), field.invert(q));\r\n\t\t\t#end\r\n\t\t}\r\n\t\t\r\n\t\treturn d;\r\n\t}\r\n\r\n\t\r\n\tprivate $objectType getMaximumObject($sumClassName chain) {\r\n\t\t$objectType maxObject = null;\r\n\t\t\r\n\t\t#if ($coefficientType == \"boolean\")\r\n\t\t$objectType current = null;\r\n\t\tfor (Iterator<$objectType> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\tcurrent = iterator.next();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(current, maxObject) > 0) {\r\n\t\t\t\tmaxObject = current;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#else\r\n\t\t\r\n\t\t#if ($utility.isPrimitive($coefficientType))\r\n\t\t\r\n\t\tfor ($iteratorType iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\titerator.advance();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(iterator.key(), maxObject) > 0) {\r\n\t\t\t\tmaxObject = iterator.key();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#else\r\n\t\t\r\n\t\tfor (Iterator<Map.Entry<$objectType, $coefficientType>> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\tMap.Entry<$objectType, $coefficientType> entry = iterator.next();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(entry.getKey(), maxObject) > 0) {\r\n\t\t\t\tmaxObject = entry.getKey();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#end\r\n\r\n\t\t#end\r\n\r\n\t\treturn maxObject;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "templates/homology/PersistenceAlgorithm.vm",
    "content": "package $packageName;\r\n\r\nimport java.util.Iterator;\r\n\r\n#set ($coefficientType = $templateTypes.get(0))\r\n#set ($objectType = $genericTypes.get(0))\r\n\r\n#set ($sumClassName = $utility.getAnnotatedClassName(\"SparseFormalSum\", $templateTypes, $genericTypes))\r\n#set ($fieldClassName = $utility.getAnnotatedClassName(\"AbstractField\", [$coefficientType], []))\r\n#set ($className = $utility.getAnnotatedClassName(\"PersistenceAlgorithm\", $templateTypes, $genericTypes))\r\n#set ($basicClassName = $utility.getClassName(\"PersistenceAlgorithm\", $templateTypes, $genericTypes))\r\n\r\n#if ($coefficientType == \"boolean\")\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"PrimitiveFreeModule\", $templateTypes, $genericTypes))\r\n#else\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"AlgebraicFreeModule\", $templateTypes, $genericTypes))\r\n#end\r\n\r\n#set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n#set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n\r\n/**\r\n * This class defines the functionality for a persistence algorithm with underlying\r\n * field type being $coefficientType and underlying basis element type being $objectType.\r\n * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm\r\n * and the actual implementations of the persistent homology/cohomology algorithms.\r\n * \r\n * <p>$coefficientType the underlying type of the coefficient field</p>\r\n * <p>$objectType the underlying basis type</p>\r\n * \r\n * @author autogen\r\n *\r\n */\r\n@Generated(value = { \"edu.stanford.math.plex4.generation.GeneratorDriver\" })\r\npublic abstract class $className extends AbstractPersistenceBasisAlgorithm<$objectType, $sumClassName> {\r\n\t#if (!($coefficientType == \"boolean\"))\r\n\t/**\r\n\t * This is the field over which we perform the arithmetic computations.\r\n\t */\r\n\tprotected final $fieldClassName field;\r\n\t#end\r\n\t\r\n\t/**\r\n\t * This objects performs the chain computations.\r\n\t */\r\n\tprotected final $moduleClassName chainModule;\r\n\t\r\n\t/**\r\n\t * This comparator defines the ordering on the basis elements.\r\n\t */\r\n\tprotected final Comparator<$objectType> basisComparator;\r\n\t\r\n\t/**\r\n\t * This comparator provides the dictionary ordering on filtration value - basis element\r\n\t * pairs.\r\n\t */\r\n\tprotected Comparator<$objectType> filteredComparator = null;\r\n\r\n\t/**\r\n\t * This stores the minimum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int minDimension = 0;\r\n\t\r\n\t/**\r\n\t * This stores the maximum dimension for which to compute (co)homology.\r\n\t */\r\n\tprotected int maxDimension = 2;\t\r\n\r\n\t#if ($coefficientType == \"boolean\")\r\n\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.chainModule = new $moduleClassName();\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t#else\r\n\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type $coefficientType\r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tthis.field = field;\r\n\t\tthis.chainModule = new $moduleClassName(this.field);\r\n\t\tthis.basisComparator = basisComparator;\r\n\t\tthis.minDimension = minDimension;\r\n\t\tthis.maxDimension = maxDimension;\r\n\t}\r\n\t#end\r\n\r\n\t/**\r\n\t * This function simply updates the filtered comparator to the one induced by the given filtered stream.\r\n\t * \r\n\t * @param stream the AbstractFilteredStream that provides the filtration index information\r\n\t */\r\n\tprotected void initializeFilteredComparator(AbstractFilteredStream<$objectType> stream) {\r\n\t\tthis.filteredComparator = new FilteredComparator<$objectType>(stream, this.basisComparator);\r\n\t}\r\n\r\n\t/**\r\n\t * This function returns the free module used for the arithmetic computations.\r\n\t * \r\n\t * @return the free module over chains in $objectType\r\n\t */\r\n\tpublic $moduleClassName getChainModule() {\r\n\t\treturn this.chainModule;\r\n\t}\r\n\t\r\n\t#if (!($coefficientType == \"boolean\"))\r\n\t/**\r\n\t * This function returns the field over which the homology is computed.\r\n\t * \r\n\t * @return the field over type $coefficientType\r\n\t */\r\n\tpublic $fieldClassName getField() {\r\n\t\treturn this.field;\r\n\t}\r\n\t#end\r\n\t\r\n\tpublic BarcodeCollection<Integer> computeIndexIntervals(AbstractFilteredStream<$objectType> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\treturn this.computeIntervalsImpl(stream);\r\n\t}\r\n\r\n\tpublic AnnotatedBarcodeCollection<Integer, $sumClassName> computeAnnotatedIndexIntervals(AbstractFilteredStream<$objectType> stream) {\r\n\t\tthis.initializeFilteredComparator(stream);\r\n\t\treturn this.computeAnnotatedIntervalsImpl(stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function provides the implementation of computeIntervals.\r\n\t * \r\n\t * @param stream the filtered chain complex \r\n\t * @return the persistence intervals of the given complex\r\n\t */\r\n\tprotected abstract BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<$objectType> stream);\r\n\t\r\n\t/**\r\n\t * This function provides the implementation of computeAnnotatedIntervals.\r\n\t * \r\n\t * @param stream the filtered chain complex\r\n\t * @return the augmented persistence intervals\r\n\t */\r\n\tprotected abstract AnnotatedBarcodeCollection<Integer, $sumClassName> computeAnnotatedIntervalsImpl(AbstractFilteredStream<$objectType> stream);\r\n\t\r\n\t/**\r\n\t * This function computes the operation low_A(j) as described in the paper. Note that if\r\n\t * the chain is empty (for example the column contains only zeros), then this function\r\n\t * returns null.\r\n\t * \r\n\t * @param chain the chain to search\r\n\t * @return  the lowest element of the chain\r\n\t */\r\n\tprotected $objectType low($sumClassName chain) {\r\n\t\r\n\t\t$objectType maxObject = null;\r\n\t\t\r\n\t\t#if ($coefficientType == \"boolean\")\r\n\t\t$objectType current = null;\r\n\t\tfor (Iterator<$objectType> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\tcurrent = iterator.next();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(current, maxObject) > 0) {\r\n\t\t\t\tmaxObject = current;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#else\r\n\t\t\r\n\t\t#if ($utility.isPrimitive($coefficientType))\r\n\t\t\r\n\t\tfor ($iteratorType iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\titerator.advance();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(iterator.key(), maxObject) > 0) {\r\n\t\t\t\tmaxObject = iterator.key();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#else\r\n\t\t\r\n\t\tfor (Iterator<Map.Entry<$objectType, $coefficientType>> iterator = chain.iterator(); iterator.hasNext(); ) {\r\n\t\t\tMap.Entry<$objectType, $coefficientType> entry = iterator.next();\r\n\t\t\tif (maxObject == null || this.filteredComparator.compare(entry.getKey(), maxObject) > 0) {\r\n\t\t\t\tmaxObject = entry.getKey();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t#end\r\n\r\n\t\t#end\r\n\r\n\t\treturn maxObject;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "templates/homology/PersistentHomology.vm",
    "content": "package $packageName;\r\n\r\nimport java.util.Iterator;\r\n\r\n#set ($coefficientType = $templateTypes.get(0))\r\n#set ($objectType = $genericTypes.get(0))\r\n\r\n#set ($sumClassName = $utility.getAnnotatedClassName(\"SparseFormalSum\", $templateTypes, $genericTypes))\r\n#set ($fieldClassName = $utility.getAnnotatedClassName(\"AbstractField\", [$coefficientType], []))\r\n#set ($className = $utility.getAnnotatedClassName(\"PersistentHomology\", $templateTypes, $genericTypes))\r\n#set ($basicClassName = $utility.getClassName(\"PersistentHomology\", $templateTypes, $genericTypes))\r\n#set ($superClassName = $utility.getAnnotatedClassName(\"PersistenceAlgorithm\", $templateTypes, $genericTypes))\r\n\r\n#if ($coefficientType == \"boolean\")\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"PrimitiveFreeModule\", $templateTypes, $genericTypes))\r\n#else\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"AlgebraicFreeModule\", $templateTypes, $genericTypes))\r\n#end\r\n\r\n#set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n#set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n\r\n/**\r\n * This class defines the functionality for a persistence algorithm with underlying\r\n * field type being $coefficientType and underlying basis element type being $objectType.\r\n * It acts as an intermediate layer between the interface AbstractPersistenceBasisAlgorithm\r\n * and the actual implementations of the persistent homology/cohomology algorithms.\r\n *  \r\n * <p>$coefficientType the underlying type of the coefficient field</p>\r\n * <p>$objectType the underlying basis type</p>\r\n * \r\n * @author autogen\r\n *\r\n */\r\n@Generated(value = { \"edu.stanford.math.plex4.generation.GeneratorDriver\" })\r\npublic abstract class $className extends $superClassName {\r\n\r\n\t#if ($coefficientType == \"boolean\")\r\n\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t#else\r\n\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type $coefficientType\r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t#end\r\n\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, $sumClassName> computeAnnotatedIntervalsImpl(AbstractFilteredStream<$objectType> stream) {\r\n\t\treturn this.getAnnotatedIntervals(this.pHcol(stream), stream);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> computeIntervalsImpl(AbstractFilteredStream<$objectType> stream) {\r\n\t\treturn this.getIntervals(this.pHcol(stream), stream);\r\n\t}\r\n\t\r\n\t/**\r\n\t * This function implements the pHcol algorithm described in the paper. It computes the decomposition\r\n\t * R = D * V, where D is the boundary matrix, R is reduced, and is invertible and upper triangular.\r\n\t * This function returns the pair (R, V). Note that in our implementation, we represent a matrix by\r\n\t * a hash map which maps a generating object to a formal sum which corresponds to a column in the matrix.\r\n\t * Note that this is simply a sparse representation of a linear transformation on a vector space with\r\n\t * free basis consisting of elements of type $objectType.\r\n\t * \r\n\t * @param stream the filtered chain complex which provides elements in increasing filtration order\r\n\t * @return a ObjectObjectPair containing the matrices R and V\r\n\t */\r\n\tprivate ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>> pHcol(AbstractFilteredStream<$objectType> stream) {\r\n\r\n\t\tTHashMap<$objectType, $sumClassName> R = new THashMap<$objectType, $sumClassName>();\r\n\t\tTHashMap<$objectType, $sumClassName> V = new THashMap<$objectType, $sumClassName>();\r\n\r\n\t\t/**\r\n\t\t * This maps a simplex to the set of columns containing the key as its low value.\r\n\t\t */\r\n\t\tTHashMap<$objectType, THashSet<$objectType>> lowMap = new THashMap<$objectType, THashSet<$objectType>>();\r\n\r\n\t\tfor ($objectType i : stream) {\r\n\t\t\t/*\r\n\t\t\t * Do not process simplices of higher dimension than maxDimension.\r\n\t\t\t */\r\n\t\t\tif (stream.getDimension(i) < this.minDimension) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (stream.getDimension(i) > this.maxDimension + 1) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// initialize V to be the identity matrix\r\n\t\t\t#if ($coefficientType == \"boolean\")\r\n\t\t\tV.put(i, this.chainModule.createNewSum(i));\r\n\t\t\t#else\r\n\t\t\tV.put(i, this.chainModule.createNewSum(this.field.valueOf(1), i));\r\n\t\t\t#end\r\n\r\n\t\t\t// form the column R[i] which equals the boundary of the current simplex.\r\n\t\t\t// store the column as a column in R\r\n\t\t\tR.put(i, chainModule.createNewSum(stream.getBoundaryCoefficients(i), stream.getBoundary(i)));\r\n\r\n\t\t\t// compute low_R(i)\r\n\t\t\t$objectType low_R_i = this.low(R.get(i));\r\n\r\n\t\t\t// if the boundary of i is empty, then continue to next iteration since there\r\n\t\t\t// is nothing to process\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tTHashSet<$objectType> matchingLowSimplices = lowMap.get(low_R_i);\r\n\t\t\twhile (matchingLowSimplices != null && !matchingLowSimplices.isEmpty()) {\r\n\t\t\t\tIterator<$objectType> iterator = matchingLowSimplices.iterator();\r\n\t\t\t\t/**\r\n\t\t\t\t * TODO: Is this the right thing to do???\r\n\t\t\t\t * Ie. should the iterator.next go at the end of the loop?\r\n\t\t\t\t */\r\n\t\t\t\t$objectType j = iterator.next();\r\n\r\n\t\t\t\t#if ($coefficientType == \"boolean\")\r\n\t\t\t\tassert (R.get(j).getCoefficient(low_R_i) == true);\r\n\t\t\t\t$coefficientType negative_c = R.get(i).getCoefficient(low_R_i);\r\n\t\t\t\t#else\r\n\t\t\t\t$coefficientType c = field.divide(R.get(i).getCoefficient(low_R_i), R.get(j).getCoefficient(low_R_i));\r\n\t\t\t\t$coefficientType negative_c = field.negate(c);\r\n\t\t\t\t#end\r\n\t\t\t\t//R.put(i, chainModule.subtract(R.get(i), chainModule.multiply(c, R.get(j))));\r\n\t\t\t\t//V.put(i, chainModule.subtract(V.get(i), chainModule.multiply(c, V.get(j))));\r\n\t\t\t\tthis.chainModule.accumulate(R.get(i), R.get(j), negative_c);\r\n\t\t\t\tthis.chainModule.accumulate(V.get(i), V.get(j), negative_c);\r\n\r\n\t\t\t\t// remove old low_R(i) entry\r\n\t\t\t\t//lowMap.get(low_R_i).remove(i);\r\n\r\n\t\t\t\t// recompute low_R(i)\r\n\t\t\t\tlow_R_i = this.low(R.get(i));\r\n\r\n\t\t\t\tmatchingLowSimplices = lowMap.get(low_R_i);\r\n\t\t\t}\r\n\r\n\t\t\t// store the low value in the map\r\n\t\t\tif (low_R_i != null) {\r\n\t\t\t\tif (!lowMap.containsKey(low_R_i)) {\r\n\t\t\t\t\tlowMap.put(low_R_i, new THashSet<$objectType>());\r\n\t\t\t\t}\r\n\t\t\t\tlowMap.get(low_R_i).add(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// at this point we have computed the decomposition R = D * V\r\n\t\t// we return the pair (R, V)\r\n\r\n\t\treturn new ObjectObjectPair<THashMap<$objectType, $sumClassName>, THashMap<$objectType, $sumClassName>>(R, V);\r\n\t}\r\n\t\r\n\tprotected abstract AnnotatedBarcodeCollection<Integer, $sumClassName> getAnnotatedIntervals(ObjectObjectPair<THashMap<$objectType, $sumClassName>, \r\n\t\t\tTHashMap<$objectType, $sumClassName>> RV_pair, \r\n\t\t\tAbstractFilteredStream<$objectType> stream);\r\n\r\n\tprotected abstract BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<$objectType, $sumClassName>, \r\n\t\t\tTHashMap<$objectType, $sumClassName>> RV_pair, \r\n\t\t\tAbstractFilteredStream<$objectType> stream);\r\n\r\n\tprotected AnnotatedBarcodeCollection<Integer, $sumClassName> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<$objectType, $sumClassName>, \r\n\t\t\tTHashMap<$objectType, $sumClassName>> RV_pair, \r\n\t\t\tAbstractFilteredStream<$objectType> stream, \r\n\t\t\tboolean absolute) {\r\n\t\t\t\r\n\t\tAnnotatedBarcodeCollection<Integer, $sumClassName> barcodeCollection = new AnnotatedBarcodeCollection<Integer, $sumClassName>();\r\n\r\n\t\tTHashMap<$objectType, $sumClassName> R = RV_pair.getFirst();\r\n\t\tTHashMap<$objectType, $sumClassName> V = RV_pair.getSecond();\r\n\r\n\t\tSet<$objectType> births = new THashSet<$objectType>();\r\n\r\n\t\tfor ($objectType i: stream) {\r\n\t\t\tif (!R.containsKey(i)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t$objectType low_R_i = this.low(R.get(i));\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\t\tbirths.add(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// simplex i kills low_R_i\r\n\t\t\t\tbirths.remove(low_R_i);\r\n\t\t\t\tbirths.remove(i);\r\n\t\t\t\tint start = stream.getFiltrationIndex(low_R_i);\r\n\t\t\t\tint end = stream.getFiltrationIndex(i);\r\n\t\t\t\tif (end > start) {\r\n\t\t\t\t\tif (absolute) {\r\n\t\t\t\t\t\tdimension = stream.getDimension(low_R_i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(stream.getDimension(low_R_i), start, end, R.get(i));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdimension = stream.getDimension(i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(dimension, start, end, V.get(i));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the elements in birth are the ones that are never killed\r\n\t\t// these correspond to semi-infinite intervals\r\n\t\tfor ($objectType i: births) {\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\tif (absolute) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbarcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i), V.get(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n\r\n\tprotected BarcodeCollection<Integer> getIntervals(\r\n\t\t\tObjectObjectPair<THashMap<$objectType, $sumClassName>, \r\n\t\t\tTHashMap<$objectType, $sumClassName>> RV_pair, \r\n\t\t\tAbstractFilteredStream<$objectType> stream, \r\n\t\t\tboolean absolute) {\r\n\t\t\t\r\n\t\tBarcodeCollection<Integer> barcodeCollection = new BarcodeCollection<Integer>();\r\n\r\n\t\tTHashMap<$objectType, $sumClassName> R = RV_pair.getFirst();\r\n\r\n\t\tSet<$objectType> births = new THashSet<$objectType>();\r\n\r\n\t\tfor ($objectType i: stream) {\r\n\t\t\tif (!R.containsKey(i)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t$objectType low_R_i = this.low(R.get(i));\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (low_R_i == null) {\r\n\t\t\t\tif (dimension <= this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\t\tbirths.add(i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// simplex i kills low_R_i\r\n\t\t\t\tbirths.remove(low_R_i);\r\n\t\t\t\tbirths.remove(i);\r\n\t\t\t\tint start = stream.getFiltrationIndex(low_R_i);\r\n\t\t\t\tint end = stream.getFiltrationIndex(i);\r\n\t\t\t\tif (end > start) {\r\n\t\t\t\t\tif (absolute) {\r\n\t\t\t\t\t\tdimension = stream.getDimension(low_R_i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(stream.getDimension(low_R_i), start, end);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdimension = stream.getDimension(i);\r\n\t\t\t\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension)\r\n\t\t\t\t\t\t\tbarcodeCollection.addInterval(dimension, start, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// the elements in birth are the ones that are never killed\r\n\t\t// these correspond to semi-infinite intervals\r\n\t\tfor ($objectType i: births) {\r\n\t\t\tint dimension = stream.getDimension(i);\r\n\t\t\tif (dimension < this.maxDimension && dimension >= this.minDimension) {\r\n\t\t\t\tif (absolute) {\r\n\t\t\t\t\tbarcodeCollection.addRightInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbarcodeCollection.addLeftInfiniteInterval(stream.getDimension(i), stream.getFiltrationIndex(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn barcodeCollection;\r\n\t}\r\n}\r\n"
  },
  {
    "path": "templates/homology/RelativeHomology.vm",
    "content": "package $packageName;\r\n\r\nimport java.util.Iterator;\r\n\r\n#set ($coefficientType = $templateTypes.get(0))\r\n#set ($objectType = $genericTypes.get(0))\r\n\r\n#set ($sumClassName = $utility.getAnnotatedClassName(\"SparseFormalSum\", $templateTypes, $genericTypes))\r\n#set ($fieldClassName = $utility.getAnnotatedClassName(\"AbstractField\", [$coefficientType], []))\r\n#set ($className = $utility.getAnnotatedClassName(\"RelativeHomology\", $templateTypes, $genericTypes))\r\n#set ($basicClassName = $utility.getClassName(\"RelativeHomology\", $templateTypes, $genericTypes))\r\n#set ($superClassName = $utility.getAnnotatedClassName(\"PersistentHomology\", $templateTypes, $genericTypes))\r\n\r\n#if ($coefficientType == \"boolean\")\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"PrimitiveFreeModule\", $templateTypes, $genericTypes))\r\n#else\r\n#set ($moduleClassName = $utility.getAnnotatedClassName(\"AlgebraicFreeModule\", $templateTypes, $genericTypes))\r\n#end\r\n\r\n#set ($mapType = $utility.getMapType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n#set ($iteratorType = $utility.getMapIteratorType($objectType, $coefficientType) + $utility.getGenericAnnotation([$objectType, $coefficientType]))\r\n\r\n@Generated(value = { \"edu.stanford.math.plex4.generation.GeneratorDriver\" })\r\npublic class $className extends $superClassName {\r\n\t#if ($coefficientType == \"boolean\")\r\n\t/**\r\n\t * This constructor initializes the object with a comparator on the basis type.\r\n\t * \r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName(Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t#else\r\n\t/**\r\n\t * This constructor initializes the object with a field and a comparator on the basis type.\r\n\t * \r\n\t * @param field a field structure on the type $coefficientType\r\n\t * @param basisComparator a comparator on the basis type $objectType\r\n\t * @param minDimension the minimum dimension to compute \r\n\t * @param maxDimension the maximum dimension to compute\r\n\t */\r\n\tpublic $basicClassName($fieldClassName field, Comparator<$objectType> basisComparator, int minDimension, int maxDimension) {\r\n\t\tsuper(field, basisComparator, minDimension, maxDimension);\r\n\t}\r\n\t#end\r\n\r\n\t@Override\r\n\tprotected AnnotatedBarcodeCollection<Integer, $sumClassName> getAnnotatedIntervals(\r\n\t\t\tObjectObjectPair<THashMap<$objectType, $sumClassName>, \r\n\t\t\tTHashMap<$objectType, $sumClassName>> RV_pair, \r\n\t\t\tAbstractFilteredStream<$objectType> stream) {\r\n\t\t\t\r\n\t\treturn this.getAnnotatedIntervals(RV_pair, stream, false);\r\n\t}\r\n\r\n\t@Override\r\n\tprotected BarcodeCollection<Integer> getIntervals(ObjectObjectPair<THashMap<$objectType, $sumClassName>, \r\n\t\t\tTHashMap<$objectType, $sumClassName>> RV_pair,\r\n\t\t\tAbstractFilteredStream<$objectType> stream) {\r\n\t\t\t\r\n\t\treturn this.getIntervals(RV_pair, stream, false);\r\n\t}\r\n}\r\n"
  }
]