From 4b3ee2b9ddd03436fd0df6b4c935963a4f42d1be Mon Sep 17 00:00:00 2001 From: Luca Heltai Date: Thu, 7 Aug 2014 14:53:46 +0200 Subject: [PATCH] Added two test files for FunctionManifoldChart --- tests/manifold/function_manifold_chart_01.cc | 82 ++++++ .../function_manifold_chart_01.output | 245 ++++++++++++++++++ tests/manifold/function_manifold_chart_02.cc | 82 ++++++ .../function_manifold_chart_02.output | 245 ++++++++++++++++++ 4 files changed, 654 insertions(+) create mode 100644 tests/manifold/function_manifold_chart_01.cc create mode 100644 tests/manifold/function_manifold_chart_01.output create mode 100644 tests/manifold/function_manifold_chart_02.cc create mode 100644 tests/manifold/function_manifold_chart_02.output diff --git a/tests/manifold/function_manifold_chart_01.cc b/tests/manifold/function_manifold_chart_01.cc new file mode 100644 index 0000000000..04e06cf539 --- /dev/null +++ b/tests/manifold/function_manifold_chart_01.cc @@ -0,0 +1,82 @@ +//---------------------------- function_manifold_chart --------------------------- +// Copyright (C) 2011, 2013 by the mathLab team. +// +// This file is subject to LGPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//---------------------------- function_manifold_chart --------------------------- + + +// Test the identity Manifold. + +#include "../tests.h" +#include +#include + + +// all include files you need here +#include +#include +#include +#include +#include +#include +#include + +// Helper function +template +void test(unsigned int ref=1) +{ + deallog << "Testing dim " << dim + << ", spacedim " << spacedim << std::endl; + + // Here the only allowed axis is z. In cylinder the default is x. + std::string push_forward_expression; + std::string pull_back_expression; + + switch(spacedim) { + case 2: + push_forward_expression = "x; y"; + pull_back_expression = "x; y"; + break; + case 3: + push_forward_expression = "x; y; z"; + pull_back_expression = "x; y; z"; + break; + default: + Assert(false, ExcInternalError()); + } + + FunctionManifoldChart manifold(push_forward_expression, + pull_back_expression); + + Triangulation tria; + GridGenerator::hyper_cube (tria, 0, 1); + + for(auto cell = tria.begin_active(); cell != tria.end(); ++cell) { + cell->set_all_manifold_ids(1); + } + + tria.set_manifold(1, manifold); + tria.refine_global(2); + + GridOut gridout; + gridout.write_msh(tria, deallog.get_file_stream()); +} + +int main () +{ + std::ofstream logfile("output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + + test<2,2>(); + test<3,3>(); + + return 0; +} + diff --git a/tests/manifold/function_manifold_chart_01.output b/tests/manifold/function_manifold_chart_01.output new file mode 100644 index 0000000000..fb8fedf6f4 --- /dev/null +++ b/tests/manifold/function_manifold_chart_01.output @@ -0,0 +1,245 @@ + +DEAL::Testing dim 2, spacedim 2 +$NOD +25 +1 0.00000 0.00000 0 +2 1.00000 0.00000 0 +3 0.00000 1.00000 0 +4 1.00000 1.00000 0 +5 0.500000 0.00000 0 +6 0.00000 0.500000 0 +7 1.00000 0.500000 0 +8 0.500000 1.00000 0 +9 0.500000 0.500000 0 +10 0.250000 0.00000 0 +11 0.750000 0.00000 0 +12 0.00000 0.250000 0 +13 0.00000 0.750000 0 +14 1.00000 0.250000 0 +15 1.00000 0.750000 0 +16 0.250000 1.00000 0 +17 0.750000 1.00000 0 +18 0.500000 0.250000 0 +19 0.500000 0.750000 0 +20 0.250000 0.500000 0 +21 0.750000 0.500000 0 +22 0.250000 0.250000 0 +23 0.750000 0.250000 0 +24 0.250000 0.750000 0 +25 0.750000 0.750000 0 +$ENDNOD +$ELM +16 +1 3 0 0 4 1 10 22 12 +2 3 0 0 4 10 5 18 22 +3 3 0 0 4 12 22 20 6 +4 3 0 0 4 22 18 9 20 +5 3 0 0 4 5 11 23 18 +6 3 0 0 4 11 2 14 23 +7 3 0 0 4 18 23 21 9 +8 3 0 0 4 23 14 7 21 +9 3 0 0 4 6 20 24 13 +10 3 0 0 4 20 9 19 24 +11 3 0 0 4 13 24 16 3 +12 3 0 0 4 24 19 8 16 +13 3 0 0 4 9 21 25 19 +14 3 0 0 4 21 7 15 25 +15 3 0 0 4 19 25 17 8 +16 3 0 0 4 25 15 4 17 +$ENDELM +DEAL::Testing dim 3, spacedim 3 +$NOD +125 +1 0.00000 0.00000 0.00000 +2 1.00000 0.00000 0.00000 +3 0.00000 1.00000 0.00000 +4 1.00000 1.00000 0.00000 +5 0.00000 0.00000 1.00000 +6 1.00000 0.00000 1.00000 +7 0.00000 1.00000 1.00000 +8 1.00000 1.00000 1.00000 +9 0.500000 0.00000 0.00000 +10 0.00000 0.500000 0.00000 +11 0.00000 0.00000 0.500000 +12 1.00000 0.500000 0.00000 +13 1.00000 0.00000 0.500000 +14 0.500000 1.00000 0.00000 +15 0.00000 1.00000 0.500000 +16 1.00000 1.00000 0.500000 +17 0.500000 0.00000 1.00000 +18 0.00000 0.500000 1.00000 +19 1.00000 0.500000 1.00000 +20 0.500000 1.00000 1.00000 +21 0.500000 0.00000 0.500000 +22 0.500000 0.500000 0.00000 +23 0.00000 0.500000 0.500000 +24 1.00000 0.500000 0.500000 +25 0.500000 1.00000 0.500000 +26 0.500000 0.500000 1.00000 +27 0.500000 0.500000 0.500000 +28 0.250000 0.00000 0.00000 +29 0.750000 0.00000 0.00000 +30 0.00000 0.250000 0.00000 +31 0.00000 0.750000 0.00000 +32 0.00000 0.00000 0.250000 +33 0.00000 0.00000 0.750000 +34 1.00000 0.250000 0.00000 +35 1.00000 0.750000 0.00000 +36 1.00000 0.00000 0.250000 +37 1.00000 0.00000 0.750000 +38 0.250000 1.00000 0.00000 +39 0.750000 1.00000 0.00000 +40 0.00000 1.00000 0.250000 +41 0.00000 1.00000 0.750000 +42 1.00000 1.00000 0.250000 +43 1.00000 1.00000 0.750000 +44 0.250000 0.00000 1.00000 +45 0.750000 0.00000 1.00000 +46 0.00000 0.250000 1.00000 +47 0.00000 0.750000 1.00000 +48 1.00000 0.250000 1.00000 +49 1.00000 0.750000 1.00000 +50 0.250000 1.00000 1.00000 +51 0.750000 1.00000 1.00000 +52 0.250000 0.00000 0.500000 +53 0.750000 0.00000 0.500000 +54 0.500000 0.00000 0.250000 +55 0.500000 0.00000 0.750000 +56 0.500000 0.250000 0.00000 +57 0.500000 0.750000 0.00000 +58 0.250000 0.500000 0.00000 +59 0.750000 0.500000 0.00000 +60 0.00000 0.500000 0.250000 +61 0.00000 0.500000 0.750000 +62 0.00000 0.250000 0.500000 +63 0.00000 0.750000 0.500000 +64 1.00000 0.500000 0.250000 +65 1.00000 0.500000 0.750000 +66 1.00000 0.250000 0.500000 +67 1.00000 0.750000 0.500000 +68 0.250000 1.00000 0.500000 +69 0.750000 1.00000 0.500000 +70 0.500000 1.00000 0.250000 +71 0.500000 1.00000 0.750000 +72 0.500000 0.250000 1.00000 +73 0.500000 0.750000 1.00000 +74 0.250000 0.500000 1.00000 +75 0.750000 0.500000 1.00000 +76 0.500000 0.500000 0.750000 +77 0.500000 0.500000 0.250000 +78 0.750000 0.500000 0.500000 +79 0.250000 0.500000 0.500000 +80 0.500000 0.750000 0.500000 +81 0.500000 0.250000 0.500000 +82 0.250000 0.00000 0.250000 +83 0.250000 0.00000 0.750000 +84 0.750000 0.00000 0.250000 +85 0.750000 0.00000 0.750000 +86 0.250000 0.250000 0.00000 +87 0.750000 0.250000 0.00000 +88 0.250000 0.750000 0.00000 +89 0.750000 0.750000 0.00000 +90 0.00000 0.250000 0.250000 +91 0.00000 0.750000 0.250000 +92 0.00000 0.250000 0.750000 +93 0.00000 0.750000 0.750000 +94 1.00000 0.250000 0.250000 +95 1.00000 0.750000 0.250000 +96 1.00000 0.250000 0.750000 +97 1.00000 0.750000 0.750000 +98 0.250000 1.00000 0.250000 +99 0.250000 1.00000 0.750000 +100 0.750000 1.00000 0.250000 +101 0.750000 1.00000 0.750000 +102 0.250000 0.250000 1.00000 +103 0.750000 0.250000 1.00000 +104 0.250000 0.750000 1.00000 +105 0.750000 0.750000 1.00000 +106 0.750000 0.750000 0.500000 +107 0.250000 0.750000 0.500000 +108 0.750000 0.250000 0.500000 +109 0.250000 0.250000 0.500000 +110 0.750000 0.500000 0.750000 +111 0.750000 0.500000 0.250000 +112 0.250000 0.500000 0.750000 +113 0.250000 0.500000 0.250000 +114 0.500000 0.750000 0.750000 +115 0.500000 0.250000 0.750000 +116 0.500000 0.750000 0.250000 +117 0.500000 0.250000 0.250000 +118 0.250000 0.250000 0.250000 +119 0.750000 0.250000 0.250000 +120 0.250000 0.750000 0.250000 +121 0.750000 0.750000 0.250000 +122 0.250000 0.250000 0.750000 +123 0.750000 0.250000 0.750000 +124 0.250000 0.750000 0.750000 +125 0.750000 0.750000 0.750000 +$ENDNOD +$ELM +64 +1 5 0 0 8 1 28 82 32 30 86 118 90 +2 5 0 0 8 28 9 54 82 86 56 117 118 +3 5 0 0 8 30 86 118 90 10 58 113 60 +4 5 0 0 8 86 56 117 118 58 22 77 113 +5 5 0 0 8 32 82 52 11 90 118 109 62 +6 5 0 0 8 82 54 21 52 118 117 81 109 +7 5 0 0 8 90 118 109 62 60 113 79 23 +8 5 0 0 8 118 117 81 109 113 77 27 79 +9 5 0 0 8 9 29 84 54 56 87 119 117 +10 5 0 0 8 29 2 36 84 87 34 94 119 +11 5 0 0 8 56 87 119 117 22 59 111 77 +12 5 0 0 8 87 34 94 119 59 12 64 111 +13 5 0 0 8 54 84 53 21 117 119 108 81 +14 5 0 0 8 84 36 13 53 119 94 66 108 +15 5 0 0 8 117 119 108 81 77 111 78 27 +16 5 0 0 8 119 94 66 108 111 64 24 78 +17 5 0 0 8 10 58 113 60 31 88 120 91 +18 5 0 0 8 58 22 77 113 88 57 116 120 +19 5 0 0 8 31 88 120 91 3 38 98 40 +20 5 0 0 8 88 57 116 120 38 14 70 98 +21 5 0 0 8 60 113 79 23 91 120 107 63 +22 5 0 0 8 113 77 27 79 120 116 80 107 +23 5 0 0 8 91 120 107 63 40 98 68 15 +24 5 0 0 8 120 116 80 107 98 70 25 68 +25 5 0 0 8 22 59 111 77 57 89 121 116 +26 5 0 0 8 59 12 64 111 89 35 95 121 +27 5 0 0 8 57 89 121 116 14 39 100 70 +28 5 0 0 8 89 35 95 121 39 4 42 100 +29 5 0 0 8 77 111 78 27 116 121 106 80 +30 5 0 0 8 111 64 24 78 121 95 67 106 +31 5 0 0 8 116 121 106 80 70 100 69 25 +32 5 0 0 8 121 95 67 106 100 42 16 69 +33 5 0 0 8 11 52 83 33 62 109 122 92 +34 5 0 0 8 52 21 55 83 109 81 115 122 +35 5 0 0 8 62 109 122 92 23 79 112 61 +36 5 0 0 8 109 81 115 122 79 27 76 112 +37 5 0 0 8 33 83 44 5 92 122 102 46 +38 5 0 0 8 83 55 17 44 122 115 72 102 +39 5 0 0 8 92 122 102 46 61 112 74 18 +40 5 0 0 8 122 115 72 102 112 76 26 74 +41 5 0 0 8 21 53 85 55 81 108 123 115 +42 5 0 0 8 53 13 37 85 108 66 96 123 +43 5 0 0 8 81 108 123 115 27 78 110 76 +44 5 0 0 8 108 66 96 123 78 24 65 110 +45 5 0 0 8 55 85 45 17 115 123 103 72 +46 5 0 0 8 85 37 6 45 123 96 48 103 +47 5 0 0 8 115 123 103 72 76 110 75 26 +48 5 0 0 8 123 96 48 103 110 65 19 75 +49 5 0 0 8 23 79 112 61 63 107 124 93 +50 5 0 0 8 79 27 76 112 107 80 114 124 +51 5 0 0 8 63 107 124 93 15 68 99 41 +52 5 0 0 8 107 80 114 124 68 25 71 99 +53 5 0 0 8 61 112 74 18 93 124 104 47 +54 5 0 0 8 112 76 26 74 124 114 73 104 +55 5 0 0 8 93 124 104 47 41 99 50 7 +56 5 0 0 8 124 114 73 104 99 71 20 50 +57 5 0 0 8 27 78 110 76 80 106 125 114 +58 5 0 0 8 78 24 65 110 106 67 97 125 +59 5 0 0 8 80 106 125 114 25 69 101 71 +60 5 0 0 8 106 67 97 125 69 16 43 101 +61 5 0 0 8 76 110 75 26 114 125 105 73 +62 5 0 0 8 110 65 19 75 125 97 49 105 +63 5 0 0 8 114 125 105 73 71 101 51 20 +64 5 0 0 8 125 97 49 105 101 43 8 51 +$ENDELM diff --git a/tests/manifold/function_manifold_chart_02.cc b/tests/manifold/function_manifold_chart_02.cc new file mode 100644 index 0000000000..f6ac49b13b --- /dev/null +++ b/tests/manifold/function_manifold_chart_02.cc @@ -0,0 +1,82 @@ +//---------------------------- function_manifold_chart --------------------------- +// Copyright (C) 2011, 2013 by the mathLab team. +// +// This file is subject to LGPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//---------------------------- function_manifold_chart --------------------------- + + +// Test the identity Manifold. + +#include "../tests.h" +#include +#include + + +// all include files you need here +#include +#include +#include +#include +#include +#include +#include + +// Helper function +template +void test(unsigned int ref=1) +{ + deallog << "Testing dim " << dim + << ", spacedim " << spacedim << std::endl; + + // Here the only allowed axis is z. In cylinder the default is x. + std::string push_forward_expression; + std::string pull_back_expression; + + switch(spacedim) { + case 2: + push_forward_expression = "x^2; y^2"; + pull_back_expression = "sqrt(x); sqrt(y)"; + break; + case 3: + push_forward_expression = "x^2; y^2; z^2"; + pull_back_expression = "sqrt(x); sqrt(y); sqrt(z)"; + break; + default: + Assert(false, ExcInternalError()); + } + + FunctionManifoldChart manifold(push_forward_expression, + pull_back_expression); + + Triangulation tria; + GridGenerator::hyper_cube (tria, 0, 1); + + for(auto cell = tria.begin_active(); cell != tria.end(); ++cell) { + cell->set_all_manifold_ids(1); + } + + tria.set_manifold(1, manifold); + tria.refine_global(2); + + GridOut gridout; + gridout.write_msh(tria, deallog.get_file_stream()); +} + +int main () +{ + std::ofstream logfile("output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + + test<2,2>(); + test<3,3>(); + + return 0; +} + diff --git a/tests/manifold/function_manifold_chart_02.output b/tests/manifold/function_manifold_chart_02.output new file mode 100644 index 0000000000..c5ce737ed5 --- /dev/null +++ b/tests/manifold/function_manifold_chart_02.output @@ -0,0 +1,245 @@ + +DEAL::Testing dim 2, spacedim 2 +$NOD +25 +1 0.00000 0.00000 0 +2 1.00000 0.00000 0 +3 0.00000 1.00000 0 +4 1.00000 1.00000 0 +5 0.250000 0.00000 0 +6 0.00000 0.250000 0 +7 1.00000 0.250000 0 +8 0.250000 1.00000 0 +9 0.250000 0.250000 0 +10 0.0625000 0.00000 0 +11 0.562500 0.00000 0 +12 0.00000 0.0625000 0 +13 0.00000 0.562500 0 +14 1.00000 0.0625000 0 +15 1.00000 0.562500 0 +16 0.0625000 1.00000 0 +17 0.562500 1.00000 0 +18 0.250000 0.0625000 0 +19 0.250000 0.562500 0 +20 0.0625000 0.250000 0 +21 0.562500 0.250000 0 +22 0.0625000 0.0625000 0 +23 0.562500 0.0625000 0 +24 0.0625000 0.562500 0 +25 0.562500 0.562500 0 +$ENDNOD +$ELM +16 +1 3 0 0 4 1 10 22 12 +2 3 0 0 4 10 5 18 22 +3 3 0 0 4 12 22 20 6 +4 3 0 0 4 22 18 9 20 +5 3 0 0 4 5 11 23 18 +6 3 0 0 4 11 2 14 23 +7 3 0 0 4 18 23 21 9 +8 3 0 0 4 23 14 7 21 +9 3 0 0 4 6 20 24 13 +10 3 0 0 4 20 9 19 24 +11 3 0 0 4 13 24 16 3 +12 3 0 0 4 24 19 8 16 +13 3 0 0 4 9 21 25 19 +14 3 0 0 4 21 7 15 25 +15 3 0 0 4 19 25 17 8 +16 3 0 0 4 25 15 4 17 +$ENDELM +DEAL::Testing dim 3, spacedim 3 +$NOD +125 +1 0.00000 0.00000 0.00000 +2 1.00000 0.00000 0.00000 +3 0.00000 1.00000 0.00000 +4 1.00000 1.00000 0.00000 +5 0.00000 0.00000 1.00000 +6 1.00000 0.00000 1.00000 +7 0.00000 1.00000 1.00000 +8 1.00000 1.00000 1.00000 +9 0.250000 0.00000 0.00000 +10 0.00000 0.250000 0.00000 +11 0.00000 0.00000 0.250000 +12 1.00000 0.250000 0.00000 +13 1.00000 0.00000 0.250000 +14 0.250000 1.00000 0.00000 +15 0.00000 1.00000 0.250000 +16 1.00000 1.00000 0.250000 +17 0.250000 0.00000 1.00000 +18 0.00000 0.250000 1.00000 +19 1.00000 0.250000 1.00000 +20 0.250000 1.00000 1.00000 +21 0.250000 0.00000 0.250000 +22 0.250000 0.250000 0.00000 +23 0.00000 0.250000 0.250000 +24 1.00000 0.250000 0.250000 +25 0.250000 1.00000 0.250000 +26 0.250000 0.250000 1.00000 +27 0.250000 0.250000 0.250000 +28 0.0625000 0.00000 0.00000 +29 0.562500 0.00000 0.00000 +30 0.00000 0.0625000 0.00000 +31 0.00000 0.562500 0.00000 +32 0.00000 0.00000 0.0625000 +33 0.00000 0.00000 0.562500 +34 1.00000 0.0625000 0.00000 +35 1.00000 0.562500 0.00000 +36 1.00000 0.00000 0.0625000 +37 1.00000 0.00000 0.562500 +38 0.0625000 1.00000 0.00000 +39 0.562500 1.00000 0.00000 +40 0.00000 1.00000 0.0625000 +41 0.00000 1.00000 0.562500 +42 1.00000 1.00000 0.0625000 +43 1.00000 1.00000 0.562500 +44 0.0625000 0.00000 1.00000 +45 0.562500 0.00000 1.00000 +46 0.00000 0.0625000 1.00000 +47 0.00000 0.562500 1.00000 +48 1.00000 0.0625000 1.00000 +49 1.00000 0.562500 1.00000 +50 0.0625000 1.00000 1.00000 +51 0.562500 1.00000 1.00000 +52 0.0625000 0.00000 0.250000 +53 0.562500 0.00000 0.250000 +54 0.250000 0.00000 0.0625000 +55 0.250000 0.00000 0.562500 +56 0.250000 0.0625000 0.00000 +57 0.250000 0.562500 0.00000 +58 0.0625000 0.250000 0.00000 +59 0.562500 0.250000 0.00000 +60 0.00000 0.250000 0.0625000 +61 0.00000 0.250000 0.562500 +62 0.00000 0.0625000 0.250000 +63 0.00000 0.562500 0.250000 +64 1.00000 0.250000 0.0625000 +65 1.00000 0.250000 0.562500 +66 1.00000 0.0625000 0.250000 +67 1.00000 0.562500 0.250000 +68 0.0625000 1.00000 0.250000 +69 0.562500 1.00000 0.250000 +70 0.250000 1.00000 0.0625000 +71 0.250000 1.00000 0.562500 +72 0.250000 0.0625000 1.00000 +73 0.250000 0.562500 1.00000 +74 0.0625000 0.250000 1.00000 +75 0.562500 0.250000 1.00000 +76 0.250000 0.250000 0.562500 +77 0.250000 0.250000 0.0625000 +78 0.562500 0.250000 0.250000 +79 0.0625000 0.250000 0.250000 +80 0.250000 0.562500 0.250000 +81 0.250000 0.0625000 0.250000 +82 0.0625000 0.00000 0.0625000 +83 0.0625000 0.00000 0.562500 +84 0.562500 0.00000 0.0625000 +85 0.562500 0.00000 0.562500 +86 0.0625000 0.0625000 0.00000 +87 0.562500 0.0625000 0.00000 +88 0.0625000 0.562500 0.00000 +89 0.562500 0.562500 0.00000 +90 0.00000 0.0625000 0.0625000 +91 0.00000 0.562500 0.0625000 +92 0.00000 0.0625000 0.562500 +93 0.00000 0.562500 0.562500 +94 1.00000 0.0625000 0.0625000 +95 1.00000 0.562500 0.0625000 +96 1.00000 0.0625000 0.562500 +97 1.00000 0.562500 0.562500 +98 0.0625000 1.00000 0.0625000 +99 0.0625000 1.00000 0.562500 +100 0.562500 1.00000 0.0625000 +101 0.562500 1.00000 0.562500 +102 0.0625000 0.0625000 1.00000 +103 0.562500 0.0625000 1.00000 +104 0.0625000 0.562500 1.00000 +105 0.562500 0.562500 1.00000 +106 0.562500 0.562500 0.250000 +107 0.0625000 0.562500 0.250000 +108 0.562500 0.0625000 0.250000 +109 0.0625000 0.0625000 0.250000 +110 0.562500 0.250000 0.562500 +111 0.562500 0.250000 0.0625000 +112 0.0625000 0.250000 0.562500 +113 0.0625000 0.250000 0.0625000 +114 0.250000 0.562500 0.562500 +115 0.250000 0.0625000 0.562500 +116 0.250000 0.562500 0.0625000 +117 0.250000 0.0625000 0.0625000 +118 0.0625000 0.0625000 0.0625000 +119 0.562500 0.0625000 0.0625000 +120 0.0625000 0.562500 0.0625000 +121 0.562500 0.562500 0.0625000 +122 0.0625000 0.0625000 0.562500 +123 0.562500 0.0625000 0.562500 +124 0.0625000 0.562500 0.562500 +125 0.562500 0.562500 0.562500 +$ENDNOD +$ELM +64 +1 5 0 0 8 1 28 82 32 30 86 118 90 +2 5 0 0 8 28 9 54 82 86 56 117 118 +3 5 0 0 8 30 86 118 90 10 58 113 60 +4 5 0 0 8 86 56 117 118 58 22 77 113 +5 5 0 0 8 32 82 52 11 90 118 109 62 +6 5 0 0 8 82 54 21 52 118 117 81 109 +7 5 0 0 8 90 118 109 62 60 113 79 23 +8 5 0 0 8 118 117 81 109 113 77 27 79 +9 5 0 0 8 9 29 84 54 56 87 119 117 +10 5 0 0 8 29 2 36 84 87 34 94 119 +11 5 0 0 8 56 87 119 117 22 59 111 77 +12 5 0 0 8 87 34 94 119 59 12 64 111 +13 5 0 0 8 54 84 53 21 117 119 108 81 +14 5 0 0 8 84 36 13 53 119 94 66 108 +15 5 0 0 8 117 119 108 81 77 111 78 27 +16 5 0 0 8 119 94 66 108 111 64 24 78 +17 5 0 0 8 10 58 113 60 31 88 120 91 +18 5 0 0 8 58 22 77 113 88 57 116 120 +19 5 0 0 8 31 88 120 91 3 38 98 40 +20 5 0 0 8 88 57 116 120 38 14 70 98 +21 5 0 0 8 60 113 79 23 91 120 107 63 +22 5 0 0 8 113 77 27 79 120 116 80 107 +23 5 0 0 8 91 120 107 63 40 98 68 15 +24 5 0 0 8 120 116 80 107 98 70 25 68 +25 5 0 0 8 22 59 111 77 57 89 121 116 +26 5 0 0 8 59 12 64 111 89 35 95 121 +27 5 0 0 8 57 89 121 116 14 39 100 70 +28 5 0 0 8 89 35 95 121 39 4 42 100 +29 5 0 0 8 77 111 78 27 116 121 106 80 +30 5 0 0 8 111 64 24 78 121 95 67 106 +31 5 0 0 8 116 121 106 80 70 100 69 25 +32 5 0 0 8 121 95 67 106 100 42 16 69 +33 5 0 0 8 11 52 83 33 62 109 122 92 +34 5 0 0 8 52 21 55 83 109 81 115 122 +35 5 0 0 8 62 109 122 92 23 79 112 61 +36 5 0 0 8 109 81 115 122 79 27 76 112 +37 5 0 0 8 33 83 44 5 92 122 102 46 +38 5 0 0 8 83 55 17 44 122 115 72 102 +39 5 0 0 8 92 122 102 46 61 112 74 18 +40 5 0 0 8 122 115 72 102 112 76 26 74 +41 5 0 0 8 21 53 85 55 81 108 123 115 +42 5 0 0 8 53 13 37 85 108 66 96 123 +43 5 0 0 8 81 108 123 115 27 78 110 76 +44 5 0 0 8 108 66 96 123 78 24 65 110 +45 5 0 0 8 55 85 45 17 115 123 103 72 +46 5 0 0 8 85 37 6 45 123 96 48 103 +47 5 0 0 8 115 123 103 72 76 110 75 26 +48 5 0 0 8 123 96 48 103 110 65 19 75 +49 5 0 0 8 23 79 112 61 63 107 124 93 +50 5 0 0 8 79 27 76 112 107 80 114 124 +51 5 0 0 8 63 107 124 93 15 68 99 41 +52 5 0 0 8 107 80 114 124 68 25 71 99 +53 5 0 0 8 61 112 74 18 93 124 104 47 +54 5 0 0 8 112 76 26 74 124 114 73 104 +55 5 0 0 8 93 124 104 47 41 99 50 7 +56 5 0 0 8 124 114 73 104 99 71 20 50 +57 5 0 0 8 27 78 110 76 80 106 125 114 +58 5 0 0 8 78 24 65 110 106 67 97 125 +59 5 0 0 8 80 106 125 114 25 69 101 71 +60 5 0 0 8 106 67 97 125 69 16 43 101 +61 5 0 0 8 76 110 75 26 114 125 105 73 +62 5 0 0 8 110 65 19 75 125 97 49 105 +63 5 0 0 8 114 125 105 73 71 101 51 20 +64 5 0 0 8 125 97 49 105 101 43 8 51 +$ENDELM -- 2.39.5