From b1a4a63cd0710e3be1edcfe30dce40d0267ba2cc Mon Sep 17 00:00:00 2001 From: Susanne Claus Date: Sun, 21 Dec 2025 21:34:58 +0100 Subject: [PATCH 1/7] table generator for quad meshing --- cpp/src/CMakeLists.txt | 12 + cpp/src/cell_topology.h | 230 +++++++++++++ cpp/src/cell_types.h | 29 +- cpp/src/cut_cell.cpp | 13 +- cpp/src/cut_cell.h | 9 + cpp/src/cut_context.cpp | 56 ++++ cpp/src/cut_context.h | 66 ++++ cpp/src/cut_hexahedron.cpp | 93 ++++++ cpp/src/cut_hexahedron.h | 27 ++ cpp/src/cut_mesh.cpp | 35 +- cpp/src/cut_mesh.h | 7 + cpp/src/cut_quadrilateral.cpp | 296 +++++++++++++++++ cpp/src/cut_quadrilateral.h | 30 ++ cpp/src/cut_quadrilateral_old.cpp | 313 ++++++++++++++++++ .../cut_quadrilateral_inside_tables.h | 68 ++++ .../cut_quadrilateral_interface_tables.h | 40 +++ .../cut_quadrilateral_outside_tables.h | 45 +++ python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py | 166 ++++++++++ python/demo/plot_quadrilateral_cases.py | 159 +++++++++ .../test_cut_vtk_mesh_hexahedron_smoke.py | 56 ++++ .../test_cut_vtk_mesh_triangulate_flag.py | 50 +++ python/tests/test_cutcell_original_info.py | 30 ++ python/tests/test_cutcontext_edge_reuse.py | 42 +++ python/tests/test_hex_classify.py | 87 +++++ python/tests/test_hex_emit.py | 131 ++++++++ python/tests/test_hex_polyhedron_export.py | 19 ++ python/tests/test_hex_variant.py | 46 +++ python/tests/test_quad_table_sanity.py | 42 +++ python/tests/test_quadrilateral.py | 50 +++ python/tests/test_single_corner.py | 11 + python/tests/test_single_corner_basic.py | 10 + python/tests/test_tables_cli.py | 36 ++ tablegen/cutcells_tablegen/__init__.py | 11 + tablegen/cutcells_tablegen/emit_c_headers.py | 267 +++++++++++++++ tablegen/cutcells_tablegen/normalize.py | 67 ++++ tablegen/cutcells_tablegen/topology.py | 97 ++++++ .../cutcells_tablegen/vtk_tables_import.py | 269 +++++++++++++++ tablegen/scripts/gen_tables.py | 58 ++++ 38 files changed, 3062 insertions(+), 11 deletions(-) create mode 100644 cpp/src/cell_topology.h create mode 100644 cpp/src/cut_context.cpp create mode 100644 cpp/src/cut_context.h create mode 100644 cpp/src/cut_hexahedron.cpp create mode 100644 cpp/src/cut_hexahedron.h create mode 100644 cpp/src/cut_quadrilateral.cpp create mode 100644 cpp/src/cut_quadrilateral.h create mode 100644 cpp/src/cut_quadrilateral_old.cpp create mode 100644 cpp/src/generated/cut_quadrilateral_inside_tables.h create mode 100644 cpp/src/generated/cut_quadrilateral_interface_tables.h create mode 100644 cpp/src/generated/cut_quadrilateral_outside_tables.h create mode 100644 python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py create mode 100644 python/demo/plot_quadrilateral_cases.py create mode 100644 python/tests/test_cut_vtk_mesh_hexahedron_smoke.py create mode 100644 python/tests/test_cut_vtk_mesh_triangulate_flag.py create mode 100644 python/tests/test_cutcell_original_info.py create mode 100644 python/tests/test_cutcontext_edge_reuse.py create mode 100644 python/tests/test_hex_classify.py create mode 100644 python/tests/test_hex_emit.py create mode 100644 python/tests/test_hex_polyhedron_export.py create mode 100644 python/tests/test_hex_variant.py create mode 100644 python/tests/test_quad_table_sanity.py create mode 100644 python/tests/test_quadrilateral.py create mode 100644 python/tests/test_single_corner.py create mode 100644 python/tests/test_single_corner_basic.py create mode 100644 python/tests/test_tables_cli.py create mode 100644 tablegen/cutcells_tablegen/__init__.py create mode 100644 tablegen/cutcells_tablegen/emit_c_headers.py create mode 100644 tablegen/cutcells_tablegen/normalize.py create mode 100644 tablegen/cutcells_tablegen/topology.py create mode 100644 tablegen/cutcells_tablegen/vtk_tables_import.py create mode 100644 tablegen/scripts/gen_tables.py diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index f33c25f..ff3a898 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -8,13 +8,22 @@ add_library(cutcells) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in version.h) include_directories(${CMAKE_CURRENT_BINARY_DIR}) +# Make headers in this directory discoverable for generated table headers +# (e.g. generated/*_tables.h includes "cell_types.h"). +target_include_directories(cutcells PUBLIC + $ + $) + set(HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/cell_types.h ${CMAKE_CURRENT_SOURCE_DIR}/cell_flags.h ${CMAKE_CURRENT_SOURCE_DIR}/cell_subdivision.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_triangle.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_interval.h + ${CMAKE_CURRENT_SOURCE_DIR}/cut_quadrilateral.h + ${CMAKE_CURRENT_SOURCE_DIR}/cut_hexahedron.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_tetrahedron.h + ${CMAKE_CURRENT_SOURCE_DIR}/cut_context.h ${CMAKE_CURRENT_SOURCE_DIR}/triangulation.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_cell.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_mesh.h @@ -27,7 +36,10 @@ set(HEADERS target_sources(cutcells PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/cut_interval.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_triangle.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cut_quadrilateral.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cut_hexahedron.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_tetrahedron.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cut_context.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_cell.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_mesh.cpp ${CMAKE_CURRENT_SOURCE_DIR}/write_vtk.cpp diff --git a/cpp/src/cell_topology.h b/cpp/src/cell_topology.h new file mode 100644 index 0000000..266cbff --- /dev/null +++ b/cpp/src/cell_topology.h @@ -0,0 +1,230 @@ +// Copyright (c) 2022 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT +#pragma once + +#include "cell_types.h" +#include +#include +#include + +namespace cutcells::cell +{ +/// @brief Cell topology data for edge-based clipping algorithms. +/// Edge and face numbering follows VTK conventions. + +//----------------------------------------------------------------------------- +// Edge definitions per cell type (VTK ordering) +//----------------------------------------------------------------------------- + +/// Interval: 1 edge (0-1) +inline constexpr std::array, 1> interval_edges = {{ + {0, 1} +}}; + +/// Triangle: 3 edges +/// VTK edge order: (0,1), (1,2), (2,0) +inline constexpr std::array, 3> triangle_edges = {{ + {0, 1}, {1, 2}, {2, 0} +}}; + +/// Quadrilateral: 4 edges +/// VTK edge order: (0,1), (1,2), (2,3), (3,0) +/// +/// 3 --- 2 +/// | | +/// 0 --- 1 +inline constexpr std::array, 4> quadrilateral_edges = {{ + {0, 1}, {1, 2}, {2, 3}, {3, 0} +}}; + +/// Tetrahedron: 6 edges +/// VTK edge order: (0,1), (1,2), (2,0), (0,3), (1,3), (2,3) +inline constexpr std::array, 6> tetrahedron_edges = {{ + {0, 1}, {1, 2}, {2, 0}, {0, 3}, {1, 3}, {2, 3} +}}; + +/// Hexahedron: 12 edges +/// VTK vertex numbering: +/// 7 -------- 6 +/// /| /| +/// / | / | +/// 4 -------- 5 | +/// | 3 ------|-- 2 +/// | / | / +/// |/ |/ +/// 0 -------- 1 +/// +/// VTK edge order: +/// Base: (0,1), (1,2), (2,3), (3,0) +/// Top: (4,5), (5,6), (6,7), (7,4) +/// Verticals: (0,4), (1,5), (2,6), (3,7) +inline constexpr std::array, 12> hexahedron_edges = {{ + // Base edges (0-3) + {0, 1}, {1, 2}, {2, 3}, {3, 0}, + // Top edges (4-7) + {4, 5}, {5, 6}, {6, 7}, {7, 4}, + // Vertical edges (8-11) + {0, 4}, {1, 5}, {2, 6}, {3, 7} +}}; + +/// Prism (Wedge): 9 edges +/// VTK vertex numbering: +/// 2 +/// /|\ +/// / | \ +/// 0-----1 +/// | | | +/// | 5 | +/// | /|\ | +/// |/ | \| +/// 3-----4 +/// +/// VTK edge order: +/// Bottom triangle: (0,1), (1,2), (2,0) +/// Top triangle: (3,4), (4,5), (5,3) +/// Verticals: (0,3), (1,4), (2,5) +inline constexpr std::array, 9> prism_edges = {{ + // Bottom triangle (0-2) + {0, 1}, {1, 2}, {2, 0}, + // Top triangle (3-5) + {3, 4}, {4, 5}, {5, 3}, + // Vertical edges (6-8) + {0, 3}, {1, 4}, {2, 5} +}}; + +/// Pyramid: 8 edges +/// VTK vertex numbering: +/// 4 +/// /|\ +/// / | \ +/// / | \ +/// / | \ +/// 3----|----2 +/// | | | +/// 0---------1 +/// +/// VTK edge order: +/// Base: (0,1), (1,2), (2,3), (3,0) +/// Apex connections: (0,4), (1,4), (2,4), (3,4) +inline constexpr std::array, 8> pyramid_edges = {{ + // Base edges (0-3) + {0, 1}, {1, 2}, {2, 3}, {3, 0}, + // Apex edges (4-7) + {0, 4}, {1, 4}, {2, 4}, {3, 4} +}}; + +//----------------------------------------------------------------------------- +// Edge count per cell type +//----------------------------------------------------------------------------- + +inline constexpr int num_edges(type cell_type) +{ + switch (cell_type) + { + case type::point: return 0; + case type::interval: return 1; + case type::triangle: return 3; + case type::quadrilateral: return 4; + case type::tetrahedron: return 6; + case type::hexahedron: return 12; + case type::prism: return 9; + case type::pyramid: return 8; + default: + throw std::invalid_argument("Unknown cell type in num_edges"); + } +} + +//----------------------------------------------------------------------------- +// Edge accessor (returns span to edge array for cell type) +//----------------------------------------------------------------------------- + +/// Get edges for a given cell type. +/// @param cell_type The cell type +/// @return Span of edge vertex pairs [v0, v1] for each edge +inline std::span> edges(type cell_type) +{ + switch (cell_type) + { + case type::interval: + return std::span(interval_edges); + case type::triangle: + return std::span(triangle_edges); + case type::quadrilateral: + return std::span(quadrilateral_edges); + case type::tetrahedron: + return std::span(tetrahedron_edges); + case type::hexahedron: + return std::span(hexahedron_edges); + case type::prism: + return std::span(prism_edges); + case type::pyramid: + return std::span(pyramid_edges); + default: + throw std::invalid_argument("Unknown cell type in edges()"); + } +} + +//----------------------------------------------------------------------------- +// Face definitions (for interface stitching, optional future use) +//----------------------------------------------------------------------------- + +/// Hexahedron: 6 faces (quads) +/// Face order: -X, +X, -Y, +Y, -Z, +Z (left, right, front, back, bottom, top) +inline constexpr std::array, 6> hexahedron_faces = {{ + {0, 3, 7, 4}, // -X (left) + {1, 2, 6, 5}, // +X (right) + {0, 1, 5, 4}, // -Y (front) + {3, 2, 6, 7}, // +Y (back) + {0, 1, 2, 3}, // -Z (bottom) + {4, 5, 6, 7} // +Z (top) +}}; + +/// Prism: 5 faces (2 triangles + 3 quads) +/// Represented as max 4 vertices per face, with -1 padding for triangles +inline constexpr std::array, 5> prism_faces = {{ + {0, 1, 2, -1}, // bottom triangle + {3, 4, 5, -1}, // top triangle + {0, 1, 4, 3}, // quad face + {1, 2, 5, 4}, // quad face + {2, 0, 3, 5} // quad face +}}; + +/// Pyramid: 5 faces (1 quad base + 4 triangles) +inline constexpr std::array, 5> pyramid_faces = {{ + {0, 1, 2, 3}, // base quad + {0, 1, 4, -1}, // triangle + {1, 2, 4, -1}, // triangle + {2, 3, 4, -1}, // triangle + {3, 0, 4, -1} // triangle +}}; + +//----------------------------------------------------------------------------- +// Face vertex count per face (for mixed cells) +//----------------------------------------------------------------------------- + +inline constexpr std::array hexahedron_face_sizes = {4, 4, 4, 4, 4, 4}; +inline constexpr std::array prism_face_sizes = {3, 3, 4, 4, 4}; +inline constexpr std::array pyramid_face_sizes = {4, 3, 3, 3, 3}; + +/// Get number of faces for a cell type +inline constexpr int num_faces(type cell_type) +{ + switch (cell_type) + { + case type::point: return 0; + case type::interval: return 0; + case type::triangle: return 1; + case type::quadrilateral: return 1; + case type::tetrahedron: return 4; + case type::hexahedron: return 6; + case type::prism: return 5; + case type::pyramid: return 5; + default: + throw std::invalid_argument("Unknown cell type in num_faces"); + } +} + +} // namespace cutcells::cell diff --git a/cpp/src/cell_types.h b/cpp/src/cell_types.h index e345a2f..71c9450 100644 --- a/cpp/src/cell_types.h +++ b/cpp/src/cell_types.h @@ -218,8 +218,18 @@ namespace cutcells cell_types[1]= type::quadrilateral; } break;} - case type::quadrilateral: {throw std::invalid_argument("quadrilateral yet not implemented"); - break;} + case type::quadrilateral: {if(ls_part=="phi=0") + { + cell_types.resize(1); + cell_types[0]= type::interval; + } + else + { + cell_types.resize(2); + cell_types[0]= type::triangle; + cell_types[1]= type::quadrilateral; + } + break;} case type::tetrahedron: {if(ls_part=="phi=0") { cell_types.resize(2); @@ -233,8 +243,19 @@ namespace cutcells cell_types[1]= type::prism; } break;} - case type::hexahedron: {throw std::invalid_argument("hexahedron yet not implemented"); - break;} + case type::hexahedron: {if(ls_part=="phi=0") + { + cell_types.resize(2); + cell_types[0]= type::triangle; + cell_types[1]= type::quadrilateral; + } + else + { + cell_types.resize(2); + cell_types[0]= type::tetrahedron; + cell_types[1]= type::prism; + } + break;} case type::prism: {throw std::invalid_argument("prism yet not implemented"); break;} case type::pyramid: {throw std::invalid_argument("pyramid yet not implemented"); diff --git a/cpp/src/cut_cell.cpp b/cpp/src/cut_cell.cpp index 007f1e8..a1fc888 100644 --- a/cpp/src/cut_cell.cpp +++ b/cpp/src/cut_cell.cpp @@ -7,6 +7,8 @@ #include "cut_cell.h" #include "cut_tetrahedron.h" #include "cut_triangle.h" +#include "cut_quadrilateral.h" +#include "cut_hexahedron.h" #include "cut_interval.h" #include "cell_flags.h" #include "cell_subdivision.h" @@ -16,6 +18,7 @@ #include #include #include +#include namespace cutcells::cell{ @@ -103,9 +106,11 @@ namespace cutcells::cell{ break; case type::triangle: vol +=triangle::volume(vertex_coordinates,gdim); break; + case type::quadrilateral: vol +=quadrilateral::volume(vertex_coordinates,gdim); + break; case type::tetrahedron: vol +=tetrahedron::volume(vertex_coordinates,gdim); break; - default: throw std::invalid_argument("Only intervals, triangles and tetrahedra are implemented for volume computations so far."); + default: throw std::invalid_argument("Only intervals, triangles, quadrilaterals and tetrahedra are implemented for volume computations so far."); break; } } @@ -126,9 +131,13 @@ namespace cutcells::cell{ break; case type::triangle: triangle::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); break; + case type::quadrilateral: quadrilateral::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); + break; case type::tetrahedron: tetrahedron::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); break; - default: throw std::invalid_argument("Only intervals, triangles and tetrahedra are implemented for cutting so far."); + case type::hexahedron: hexahedron::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); + break; + default: throw std::invalid_argument("Only intervals, triangles, quadrilaterals, tetrahedra and hexahedra are implemented for cutting so far."); break; } } diff --git a/cpp/src/cut_cell.h b/cpp/src/cut_cell.h index 4e15e7d..b85a94f 100644 --- a/cpp/src/cut_cell.h +++ b/cpp/src/cut_cell.h @@ -43,6 +43,15 @@ namespace cutcells /// these correspond to the local numbering of intersected facets or vertices /// vertices are indicated by a shift of 100 in the numbering vertex 1 -> 101 etc. std::vector _vertex_parent_entity; + + /// Parent cell type before cutting + type _parent_cell_type; + + /// Parent vertex coordinates (V*gdim) + std::vector _parent_vertex_coords; + + /// Parent vertex IDs (context-global ids) + std::vector _parent_vertex_ids; }; template diff --git a/cpp/src/cut_context.cpp b/cpp/src/cut_context.cpp new file mode 100644 index 0000000..7228f61 --- /dev/null +++ b/cpp/src/cut_context.cpp @@ -0,0 +1,56 @@ +// Copyright (c) 2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT + +#include "cut_context.h" +#include +#include + +namespace cutcells +{ + int get_or_create_intersection_vid( + CutContext& ctx, + int gv0, int gv1, + const double* p0, const double* p1, + double phi0, double phi1) + { + constexpr double eps = 1e-12; + + // If endpoint has phi==0, return that endpoint (no new vertex) + if (std::abs(phi0) < eps) + return gv0; + if (std::abs(phi1) < eps) + return gv1; + + // Create edge key + EdgeKey key(gv0, gv1); + + // Check if intersection already exists + auto it = ctx.edge_to_vid.find(key); + if (it != ctx.edge_to_vid.end()) + { + return it->second; + } + + // Create new intersection vertex + int new_vid = ctx.num_original_vertices + static_cast(ctx.edge_to_vid.size()); + + // Compute intersection point using linear interpolation + double t = phi0 / (phi0 - phi1); + + // Add coordinates + for (int d = 0; d < ctx.gdim; ++d) + { + double coord = p0[d] + t * (p1[d] - p0[d]); + ctx.ip_coords.push_back(coord); + } + + // Store mapping + ctx.edge_to_vid[key] = new_vid; + + return new_vid; + } + +} // namespace cutcells diff --git a/cpp/src/cut_context.h b/cpp/src/cut_context.h new file mode 100644 index 0000000..4801d21 --- /dev/null +++ b/cpp/src/cut_context.h @@ -0,0 +1,66 @@ +// Copyright (c) 2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT +#pragma once + +#include +#include +#include + +namespace cutcells +{ + /// Edge key for identifying unique edges (always a < b) + struct EdgeKey + { + int a, b; + + EdgeKey(int v0, int v1) : a(v0 < v1 ? v0 : v1), b(v0 < v1 ? v1 : v0) {} + + bool operator==(const EdgeKey& other) const noexcept + { + return a == other.a && b == other.b; + } + }; + + /// Hash functor for EdgeKey + struct EdgeKeyHash + { + std::size_t operator()(const EdgeKey& key) const noexcept + { + // Simple hash combination + return std::hash()(key.a) ^ (std::hash()(key.b) << 1); + } + }; + + /// Context for managing edge-owned intersection vertices + /// Ensures no duplicate intersection vertices across cells + struct CutContext + { + /// Number of original vertices in the context + int num_original_vertices; + + /// Geometric dimension + int gdim; + + /// Map from edge to global vertex id + std::unordered_map edge_to_vid; + + /// Packed coordinates of new intersection vertices only (size = num_new_verts * gdim) + std::vector ip_coords; + + CutContext(int nv, int dim) : num_original_vertices(nv), gdim(dim) {} + }; + + /// Get or create intersection vertex on edge + /// Returns global vertex id + /// If endpoint has phi==0, returns that endpoint's id (no new vertex) + /// Otherwise creates (or reuses) edge intersection vertex + int get_or_create_intersection_vid( + CutContext& ctx, + int gv0, int gv1, + const double* p0, const double* p1, + double phi0, double phi1); + +} // namespace cutcells diff --git a/cpp/src/cut_hexahedron.cpp b/cpp/src/cut_hexahedron.cpp new file mode 100644 index 0000000..8291dac --- /dev/null +++ b/cpp/src/cut_hexahedron.cpp @@ -0,0 +1,93 @@ +// Copyright (c) 2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT + +#include "cut_hexahedron.h" + +#include "cell_types.h" +#include "cut_cell.h" + +#include +#include +#include +#include + +namespace cutcells::cell::hexahedron +{ + namespace + { + // Minimal fallback: subdivide the VTK-ordered hexahedron into tetrahedra. + // VTK vertex numbering (from cell_topology.h): + // 0:(0,0,0) 1:(1,0,0) 2:(1,1,0) 3:(0,1,0) 4:(0,0,1) 5:(1,0,1) 6:(1,1,1) 7:(0,1,1) + // + // Decomposition using the body diagonal (0-6), yielding 6 tets: + // (0,1,2,6), (0,2,3,6), (0,3,7,6), (0,7,4,6), (0,4,5,6), (0,5,1,6) + inline constexpr std::array, 6> hex_to_tets = {{ + {0, 1, 2, 6}, + {0, 2, 3, 6}, + {0, 3, 7, 6}, + {0, 7, 4, 6}, + {0, 4, 5, 6}, + {0, 5, 1, 6}, + }}; + } + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate) + { + if (vertex_coordinates.size() != static_cast(8 * gdim)) + throw std::invalid_argument("hexahedron::cut expects 8 vertices"); + if (ls_values.size() != 8) + throw std::invalid_argument("hexahedron::cut expects 8 level set values"); + + CutCell tet_mesh; + tet_mesh._gdim = gdim; + tet_mesh._tdim = 3; + tet_mesh._vertex_coords.assign(vertex_coordinates.begin(), vertex_coordinates.end()); + + tet_mesh._connectivity.resize(hex_to_tets.size()); + tet_mesh._types.resize(hex_to_tets.size(), type::tetrahedron); + + for (std::size_t i = 0; i < hex_to_tets.size(); ++i) + { + tet_mesh._connectivity[i] = {hex_to_tets[i][0], hex_to_tets[i][1], hex_to_tets[i][2], hex_to_tets[i][3]}; + } + + // Reuse existing per-tet cutting + merge pipeline. + // This is a correctness-first fallback until table-driven hex clipping is implemented. + cutcells::cell::recursive_cut(tet_mesh, ls_values, cut_type_str, triangulate); + cut_cell = std::move(tet_mesh); + } + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate) + { + cut_cell.resize(cut_type_str.size()); + for (std::size_t i = 0; i < cut_type_str.size(); ++i) + { + cut(vertex_coordinates, gdim, ls_values, cut_type_str[i], cut_cell[i], triangulate); + } + } + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); +} diff --git a/cpp/src/cut_hexahedron.h b/cpp/src/cut_hexahedron.h new file mode 100644 index 0000000..310dd74 --- /dev/null +++ b/cpp/src/cut_hexahedron.h @@ -0,0 +1,27 @@ +// Copyright (c) 2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT +#pragma once + +#include "cut_cell.h" +#include "cell_types.h" + +#include +#include +#include +#include + +namespace cutcells::cell::hexahedron +{ + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate = false); + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate = false); +} diff --git a/cpp/src/cut_mesh.cpp b/cpp/src/cut_mesh.cpp index 7719af5..8ebb248 100644 --- a/cpp/src/cut_mesh.cpp +++ b/cpp/src/cut_mesh.cpp @@ -253,14 +253,26 @@ namespace cutcells::mesh std::span vtk_type, const std::string& cut_type_str) { - cutcells::mesh::CutCells cut_cells; + return cut_vtk_mesh(ls_vals, points, + connectivity, offset, + vtk_type, + cut_type_str, + true); + } - bool triangulate = true; + template + cutcells::mesh::CutMesh cut_vtk_mesh(std::span ls_vals, std::span points, + std::span connectivity, std::span offset, + std::span vtk_type, + const std::string& cut_type_str, + bool triangulate) + { + cutcells::mesh::CutCells cut_cells; auto intersected_cells = locate_cells(ls_vals, points, - connectivity, offset, - vtk_type, - cell::cut_type::phieq0); + connectivity, offset, + vtk_type, + cell::cut_type::phieq0); cut_cells._cut_cells.resize(intersected_cells.size()); cut_cells._parent_map.resize(intersected_cells.size()); @@ -329,5 +341,18 @@ namespace cutcells::mesh std::span vtk_type, const std::string& cut_type_str); + template + cutcells::mesh::CutMesh cut_vtk_mesh(std::span ls_vals, std::span points, + std::span connectivity, std::span offset, + std::span vtk_type, + const std::string& cut_type_str, + bool triangulate); + template + cutcells::mesh::CutMesh cut_vtk_mesh(std::span ls_vals, std::span points, + std::span connectivity, std::span offset, + std::span vtk_type, + const std::string& cut_type_str, + bool triangulate); + //----------------------------------------------------------------------------- } diff --git a/cpp/src/cut_mesh.h b/cpp/src/cut_mesh.h index 37241c9..913fa1a 100644 --- a/cpp/src/cut_mesh.h +++ b/cpp/src/cut_mesh.h @@ -94,4 +94,11 @@ namespace cutcells::mesh std::span connectivity, std::span offset, std::span vtk_type, const std::string& cut_type_str); + + template + cutcells::mesh::CutMesh cut_vtk_mesh(std::span ls_vals, std::span points, + std::span connectivity, std::span offset, + std::span vtk_type, + const std::string& cut_type_str, + bool triangulate); } \ No newline at end of file diff --git a/cpp/src/cut_quadrilateral.cpp b/cpp/src/cut_quadrilateral.cpp new file mode 100644 index 0000000..4cfbe40 --- /dev/null +++ b/cpp/src/cut_quadrilateral.cpp @@ -0,0 +1,296 @@ +// Copyright (c) 2022-2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT + +#include "cut_quadrilateral.h" +#include "cell_flags.h" +#include "cell_topology.h" +#include "cut_interval.h" +#include "cut_triangle.h" +#include "generated/cut_quadrilateral_inside_tables.h" +#include "generated/cut_quadrilateral_outside_tables.h" +#include "generated/cut_quadrilateral_interface_tables.h" +#include "triangulation.h" +#include "utils.h" + +#include +#include +#include +#include + +namespace cutcells::cell::quadrilateral +{ + namespace + { + template + void compute_intersection_points(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const int flag, + std::vector& intersection_points, + std::unordered_map& vertex_case_map) + { + const auto& intersected = intersected_edges[flag]; + + intersection_points.clear(); + vertex_case_map.clear(); + + std::vector v0(gdim); + std::vector v1(gdim); + std::vector ip(gdim); + + int ip_index = 0; + for (int e = 0; e < 4; ++e) + { + if (intersected[e] == 0) + continue; + + const int v0_id = edges[e][0]; + const int v1_id = edges[e][1]; + + for (int j = 0; j < gdim; ++j) + { + v0[j] = vertex_coordinates[v0_id * gdim + j]; + v1[j] = vertex_coordinates[v1_id * gdim + j]; + } + + const T ls0 = ls_values[v0_id]; + const T ls1 = ls_values[v1_id]; + + interval::compute_intersection_point(0.0, v0, v1, ls0, ls1, ip); + + for (int j = 0; j < gdim; ++j) + { + intersection_points.push_back(ip[j]); + } + + vertex_case_map[e] = ip_index; + ++ip_index; + } + } + template + void decode_case(const std::span vertex_coordinates, const int gdim, int flag, + const int* case_offsets, const type* cell_types, + const int (*subcell_verts)[MaxVerts], + const std::span intersection_points, + bool triangulate, CutCell& cut_cell, + std::unordered_map& edge_ip_map) + { + const int cell_begin = case_offsets[flag]; + const int cell_end = case_offsets[flag + 1]; + + // Map from token (edge id or 100+vid) to local vertex index in cut_cell._vertex_coords + std::unordered_map token_to_local; + + // Prefill edge intersections so they get stable indices + for (const auto& kv : edge_ip_map) + { + const int token = kv.first; // edge id + const int ip_idx = kv.second; + const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); + token_to_local[token] = local_idx; + cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = intersection_points[ip_idx * gdim + j]; + } + + auto get_local = [&](int token) -> int + { + auto it = token_to_local.find(token); + if (it != token_to_local.end()) + return it->second; + + const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); + token_to_local[token] = local_idx; + cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); + + if (token < 100) + { + // edge intersection point + const int ip_idx = edge_ip_map.at(token); + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = intersection_points[ip_idx * gdim + j]; + } + else + { + const int vid = token - 100; + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = vertex_coordinates[vid * gdim + j]; + } + return local_idx; + }; + + for (int cell_idx = cell_begin; cell_idx < cell_end; ++cell_idx) + { + const type sub_type = cell_types[cell_idx]; + const int* verts = subcell_verts[cell_idx]; + + std::vector verts_local; + for (int i = 0; i < MaxVerts; ++i) + { + const int token = verts[i]; + if (token == -1) + break; + verts_local.push_back(get_local(token)); + } + + if (triangulate && sub_type == type::quadrilateral && verts_local.size() == 4) + { + // split into two triangles (0,1,2) and (0,2,3) + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back({verts_local[0], verts_local[1], verts_local[2]}); + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back({verts_local[0], verts_local[2], verts_local[3]}); + } + else + { + cut_cell._types.push_back(sub_type); + cut_cell._connectivity.push_back(std::move(verts_local)); + } + } + } + } // namespace + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate) + { + const int flag_interior = get_entity_flag(ls_values, false); + + if (flag_interior == 0 || flag_interior == 15) + { + throw std::invalid_argument("quadrilateral is not intersected and therefore cannot be cut"); + } + + // Store parent geometry + cut_cell._parent_cell_type = type::quadrilateral; + cut_cell._parent_vertex_coords.resize(4 * gdim); + cut_cell._parent_vertex_ids.resize(4); + for (int i = 0; i < 4; ++i) + { + for (int j = 0; j < gdim; ++j) + { + cut_cell._parent_vertex_coords[i * gdim + j] = vertex_coordinates[i * gdim + j]; + } + cut_cell._parent_vertex_ids[i] = i; + } + + // Compute intersections (shared for all parts) + std::vector intersection_points; + std::unordered_map vertex_case_map; + compute_intersection_points(vertex_coordinates, gdim, ls_values, flag_interior, intersection_points, vertex_case_map); + + cut_cell._gdim = gdim; + cut_cell._vertex_coords.clear(); + cut_cell._types.clear(); + cut_cell._connectivity.clear(); + + // Ambiguous opposite-corner cases (masks 0b0101, 0b1010) are already disambiguated in the generated tables + // into two disjoint pieces (two triangles for volume, two segments for interface). + + if (cut_type_str == "phi=0") + { + cut_cell._tdim = 1; + std::span ip_span(intersection_points.data(), intersection_points.size()); + decode_case(vertex_coordinates, gdim, flag_interior, + case_subcell_offset_interface, subcell_type_interface, + subcell_verts_interface, ip_span, triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi<0") + { + cut_cell._tdim = 2; + std::span ip_span(intersection_points.data(), intersection_points.size()); + decode_case(vertex_coordinates, gdim, flag_interior, + case_subcell_offset_inside, subcell_type_inside, + subcell_verts_inside, ip_span, triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi>0") + { + cut_cell._tdim = 2; + const int flag_exterior = get_entity_flag(ls_values, true); + std::span ip_span(intersection_points.data(), intersection_points.size()); + decode_case(vertex_coordinates, gdim, flag_exterior, + case_subcell_offset_outside, subcell_type_outside, + subcell_verts_outside, ip_span, triangulate, cut_cell, vertex_case_map); + } + else + { + throw std::invalid_argument("cutting type unknown"); + } + + cutcells::utils::create_vertex_parent_entity_map(vertex_case_map, cut_cell._vertex_parent_entity); + } + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate) + { + const int flag_interior = get_entity_flag(ls_values, false); + if (flag_interior == 0 || flag_interior == 15) + { + throw std::invalid_argument("quadrilateral is not intersected and therefore cannot be cut"); + } + + cut_cell.resize(cut_type_str.size()); + for (std::size_t i = 0; i < cut_type_str.size(); ++i) + { + cut(vertex_coordinates, gdim, ls_values, cut_type_str[i], cut_cell[i], triangulate); + } + } + + template + T volume(const std::span vertex_coordinates, const int gdim) + { + // Split quad into two triangles (0-1-2) and (0-2-3) + std::vector t0; + t0.reserve(3 * gdim); + for (int j = 0; j < gdim; ++j) + { + t0.push_back(vertex_coordinates[0 * gdim + j]); + } + for (int j = 0; j < gdim; ++j) + { + t0.push_back(vertex_coordinates[1 * gdim + j]); + } + for (int j = 0; j < gdim; ++j) + { + t0.push_back(vertex_coordinates[2 * gdim + j]); + } + + std::vector t1; + t1.reserve(3 * gdim); + for (int j = 0; j < gdim; ++j) + { + t1.push_back(vertex_coordinates[0 * gdim + j]); + } + for (int j = 0; j < gdim; ++j) + { + t1.push_back(vertex_coordinates[2 * gdim + j]); + } + for (int j = 0; j < gdim; ++j) + { + t1.push_back(vertex_coordinates[3 * gdim + j]); + } + + return triangle::volume(t0, gdim) + triangle::volume(t1, gdim); + } + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); + + template double volume(const std::span vertex_coordinates, const int gdim); + template float volume(const std::span vertex_coordinates, const int gdim); +} diff --git a/cpp/src/cut_quadrilateral.h b/cpp/src/cut_quadrilateral.h new file mode 100644 index 0000000..c514845 --- /dev/null +++ b/cpp/src/cut_quadrilateral.h @@ -0,0 +1,30 @@ +// Copyright (c) 2022-2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT +#pragma once + +#include "cut_cell.h" +#include "cell_types.h" + +#include +#include +#include +#include + +namespace cutcells::cell::quadrilateral +{ + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate=false); + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate=false); + + template + T volume(const std::span vertex_coordinates, const int gdim); +} diff --git a/cpp/src/cut_quadrilateral_old.cpp b/cpp/src/cut_quadrilateral_old.cpp new file mode 100644 index 0000000..142be7e --- /dev/null +++ b/cpp/src/cut_quadrilateral_old.cpp @@ -0,0 +1,313 @@ +// Copyright (c) 2022-2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT + +#include "cut_quadrilateral.h" +#include "cell_flags.h" +#include "cell_topology.h" +#include "cut_interval.h" +#include "cut_triangle.h" +#include "generated/cut_quadrilateral_inside_tables.h" +#include "generated/cut_quadrilateral_outside_tables.h" +#include "generated/cut_quadrilateral_interface_tables.h" +#include "triangulation.h" +#include "utils.h" + +#include +#include +#include +#include + +namespace cutcells::cell::quadrilateral +{ + using namespace cutcells::cell::generated; + + namespace + { + template + void compute_intersection_points(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const int flag, + std::vector& intersection_points, + std::unordered_map& vertex_case_map) + { + // Per-case edge flags come from the generated table; use them to locate linear edge/edge intersections. + const auto& intersected = cut_quadrilateral_inside_intersected_edges[flag]; + + int num_intersection_points = 0; + for (int e = 0; e < 4; ++e) + { + if (intersected[e] == 1) + ++num_intersection_points; + } + + intersection_points.resize(num_intersection_points * gdim); + + std::vector v0(gdim); + std::vector v1(gdim); + std::vector ip(gdim); + + int ip_index = 0; + for (int e = 0; e < 4; ++e) + { + if (intersected[e] == 0) + continue; + + const int v0_id = quadrilateral_edges[e][0]; + const int v1_id = quadrilateral_edges[e][1]; + + for (int j = 0; j < gdim; ++j) + { + v0[j] = vertex_coordinates[v0_id * gdim + j]; + v1[j] = vertex_coordinates[v1_id * gdim + j]; + } + + const T ls0 = ls_values[v0_id]; + const T ls1 = ls_values[v1_id]; + + interval::compute_intersection_point(0.0, v0, v1, ls0, ls1, ip); + + for (int j = 0; j < gdim; ++j) + { + intersection_points[ip_index * gdim + j] = ip[j]; + } + + vertex_case_map[e] = ip_index; + ++ip_index; + } + } + + // sub_element stores a flat stream: [n, v0, ..., v{n-1}] repeated per emitted cell. + // sub_element_offset tells us which cell stream entries belong to a case; this helper finds + // the starting token index for a given emitted cell id. + inline int cell_token_start(const int target_cell_idx, const int* sub_element, const int total_cells) + { + int token_idx = 0; + for (int c = 0; c < target_cell_idx && c < total_cells; ++c) + { + const int nverts = sub_element[token_idx]; + token_idx += 1 + nverts; + } + return token_idx; + } + + template + void append_vertex_if_needed(int token, const std::span vertex_coordinates, int gdim, + std::unordered_map& vertex_case_map, + std::vector& out_coords) + { + if (vertex_case_map.find(token) != vertex_case_map.end()) + return; + + // token represents original vertex 100+vid; store it once and reuse via vertex_case_map + const int vid = token - 100; + const int local_idx = static_cast(out_coords.size() / gdim); + vertex_case_map[token] = local_idx; + out_coords.resize(out_coords.size() + gdim); + for (int j = 0; j < gdim; ++j) + { + out_coords[local_idx * gdim + j] = vertex_coordinates[vid * gdim + j]; + } + } + + template + void decode_case(const std::span vertex_coordinates, const int gdim, int flag, + const int* sub_element_offset, const type* sub_element_cell_types, const int* sub_element, + bool triangulate, CutCell& cut_cell, std::unordered_map& vertex_case_map) + { + const int cell_begin = sub_element_offset[flag]; + const int cell_end = sub_element_offset[flag + 1]; + // sub_element_offset has length NCases+1 (16+1 here); the last entry stores the total emitted cells. + const int total_cells = sub_element_offset[16]; + + // Ensure original vertices referenced in this case are appended + int token_idx = cell_token_start(cell_begin, sub_element, total_cells); + for (int cell_idx = cell_begin; cell_idx < cell_end; ++cell_idx) + { + const int nverts = sub_element[token_idx]; + for (int i = 1; i <= nverts; ++i) + { + const int token = sub_element[token_idx + i]; + if (token >= 100) + { + append_vertex_if_needed(token, vertex_coordinates, gdim, vertex_case_map, cut_cell._vertex_coords); + } + } + token_idx += 1 + nverts; + } + + // Build connectivity + token_idx = cell_token_start(cell_begin, sub_element, total_cells); + for (int cell_idx = cell_begin; cell_idx < cell_end; ++cell_idx) + { + const int nverts = sub_element[token_idx]; + const type sub_type = sub_element_cell_types[cell_idx]; + + std::vector verts_local(nverts); + for (int i = 0; i < nverts; ++i) + { + const int token = sub_element[token_idx + 1 + i]; + if (token >= 100) + { + verts_local[i] = vertex_case_map[token]; + } + else + { + // edge intersection point + verts_local[i] = vertex_case_map[token]; + } + } + + if (triangulate && sub_type == type::quadrilateral) + { + int verts_arr[4] = {verts_local[0], verts_local[1], verts_local[2], verts_local[3]}; + std::vector> tris; + triangulation(sub_type, verts_arr, tris); + for (auto& tri : tris) + { + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back(tri); + } + } + else + { + cut_cell._types.push_back(sub_type); + cut_cell._connectivity.push_back(std::move(verts_local)); + } + + token_idx += 1 + nverts; + } + } + } // namespace + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate) + { + const int flag_interior = get_entity_flag(ls_values, false); + + if (flag_interior == 0 || flag_interior == 15) + { + throw std::invalid_argument("quadrilateral is not intersected and therefore cannot be cut"); + } + + // Compute intersections (shared for all parts) + std::vector intersection_points; + std::unordered_map vertex_case_map; + compute_intersection_points(vertex_coordinates, gdim, ls_values, flag_interior, intersection_points, vertex_case_map); + + cut_cell._gdim = gdim; + cut_cell._vertex_coords = intersection_points; + cut_cell._types.clear(); + cut_cell._connectivity.clear(); + + // Ambiguous opposite-corner cases (masks 0b0101, 0b1010) are already disambiguated in the generated tables + // into two disjoint pieces (two triangles for volume, two segments for interface). + + if (cut_type_str == "phi=0") + { + cut_cell._tdim = 1; + const int* offsets = cut_quadrilateral_interface_sub_element_offset; + const type* cell_types = cut_quadrilateral_interface_sub_element_cell_types; + const int* sub_el = cut_quadrilateral_interface_sub_element; + decode_case(vertex_coordinates, gdim, flag_interior, offsets, cell_types, sub_el, triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi<0") + { + cut_cell._tdim = 2; + const int* offsets = cut_quadrilateral_inside_sub_element_offset; + const type* cell_types = cut_quadrilateral_inside_sub_element_cell_types; + const int* sub_el = cut_quadrilateral_inside_sub_element; + decode_case(vertex_coordinates, gdim, flag_interior, offsets, cell_types, sub_el, triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi>0") + { + cut_cell._tdim = 2; + const int flag_exterior = get_entity_flag(ls_values, true); + const int* offsets = cut_quadrilateral_outside_sub_element_offset; + const type* cell_types = cut_quadrilateral_outside_sub_element_cell_types; + const int* sub_el = cut_quadrilateral_outside_sub_element; + decode_case(vertex_coordinates, gdim, flag_exterior, offsets, cell_types, sub_el, triangulate, cut_cell, vertex_case_map); + } + else + { + throw std::invalid_argument("cutting type unknown"); + } + + cutcells::utils::create_vertex_parent_entity_map(vertex_case_map, cut_cell._vertex_parent_entity); + } + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate) + { + const int flag_interior = get_entity_flag(ls_values, false); + if (flag_interior == 0 || flag_interior == 15) + { + throw std::invalid_argument("quadrilateral is not intersected and therefore cannot be cut"); + } + + cut_cell.resize(cut_type_str.size()); + for (std::size_t i = 0; i < cut_type_str.size(); ++i) + { + cut(vertex_coordinates, gdim, ls_values, cut_type_str[i], cut_cell[i], triangulate); + } + } + + template + T volume(const std::span vertex_coordinates, const int gdim) + { + // Split quad into two triangles (0-1-2) and (0-2-3) + std::vector t0; + t0.reserve(3 * gdim); + for (int j = 0; j < gdim; ++j) + { + t0.push_back(vertex_coordinates[0 * gdim + j]); + } + for (int j = 0; j < gdim; ++j) + { + t0.push_back(vertex_coordinates[1 * gdim + j]); + } + for (int j = 0; j < gdim; ++j) + { + t0.push_back(vertex_coordinates[2 * gdim + j]); + } + + std::vector t1; + t1.reserve(3 * gdim); + for (int j = 0; j < gdim; ++j) + { + t1.push_back(vertex_coordinates[0 * gdim + j]); + } + for (int j = 0; j < gdim; ++j) + { + t1.push_back(vertex_coordinates[2 * gdim + j]); + } + for (int j = 0; j < gdim; ++j) + { + t1.push_back(vertex_coordinates[3 * gdim + j]); + } + + return triangle::volume(t0, gdim) + triangle::volume(t1, gdim); + } + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); + + template double volume(const std::span vertex_coordinates, const int gdim); + template float volume(const std::span vertex_coordinates, const int gdim); +} diff --git a/cpp/src/generated/cut_quadrilateral_inside_tables.h b/cpp/src/generated/cut_quadrilateral_inside_tables.h new file mode 100644 index 0000000..842a333 --- /dev/null +++ b/cpp/src/generated/cut_quadrilateral_inside_tables.h @@ -0,0 +1,68 @@ +#ifndef CUT_CELLS_QUADRILATERAL_INSIDE_TABLES_H +#define CUT_CELLS_QUADRILATERAL_INSIDE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::quadrilateral { + +// Topology +constexpr int edges[4][2] = {{0,1}, {1,2}, {2,3}, {3,0}}; + +// Intersected edges per case (1 = intersected, 0 = not intersected) +constexpr int intersected_edges[16][4] = { + { 0, 0, 0, 0 }, + { 1, 0, 0, 1 }, + { 1, 1, 0, 0 }, + { 0, 1, 0, 1 }, + { 0, 1, 1, 0 }, + { 1, 1, 1, 1 }, + { 1, 0, 1, 0 }, + { 0, 0, 1, 1 }, + { 0, 0, 1, 1 }, + { 1, 0, 1, 0 }, + { 1, 1, 1, 1 }, + { 0, 1, 1, 0 }, + { 0, 1, 0, 1 }, + { 1, 1, 0, 0 }, + { 1, 0, 0, 1 }, + { 0, 0, 0, 0 } +}; + +// Number of subcells produced for each case (inside volume) +constexpr int num_subcells_inside[16] = { 0, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_inside[17] = { 0, 0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 13, 15, 16, 18, 20, 21 }; + +// Cell types for inside subcells +constexpr type subcell_type_inside[21] = { cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral }; + +// Subcell vertices (max 4 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, >=100 = 100+vertex_id +constexpr int subcell_verts_inside[21][4] = { + { 100, 0, 3, -1 }, + { 0, 101, 1, -1 }, + { 100, 101, 1, 3 }, + { 1, 102, 2, -1 }, + { 100, 0, 3, -1 }, + { 102, 1, 2, -1 }, + { 0, 101, 102, 2 }, + { 3, 100, 101, -1 }, + { 3, 101, 102, 2 }, + { 2, 103, 3, -1 }, + { 100, 0, 2, 103 }, + { 101, 1, 0, -1 }, + { 103, 3, 2, -1 }, + { 2, 103, 100, -1 }, + { 2, 100, 101, 1 }, + { 1, 102, 103, 3 }, + { 1, 102, 103, -1 }, + { 1, 103, 100, 0 }, + { 0, 101, 102, -1 }, + { 0, 102, 103, 3 }, + { 100, 101, 102, 103 } +}; + +} // namespace cutcells::cell::quadrilateral + +#endif // CUT_CELLS_QUADRILATERAL_INSIDE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_quadrilateral_interface_tables.h b/cpp/src/generated/cut_quadrilateral_interface_tables.h new file mode 100644 index 0000000..0cdce2d --- /dev/null +++ b/cpp/src/generated/cut_quadrilateral_interface_tables.h @@ -0,0 +1,40 @@ +#ifndef CUT_CELLS_QUADRILATERAL_INTERFACE_TABLES_H +#define CUT_CELLS_QUADRILATERAL_INTERFACE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::quadrilateral { + +// Number of subcells produced for each case (interface volume) +constexpr int num_subcells_interface[16] = { 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_interface[17] = { 0, 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 16 }; + +// Cell types for interface subcells +constexpr type subcell_type_interface[16] = { cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval, cell::type::interval }; + +// Subcell vertices (max 2 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, >=100 = 100+vertex_id +constexpr int subcell_verts_interface[16][2] = { + { 0, 3 }, + { 0, 1 }, + { 1, 3 }, + { 1, 2 }, + { 0, 3 }, + { 1, 2 }, + { 0, 2 }, + { 2, 3 }, + { 2, 3 }, + { 0, 2 }, + { 0, 1 }, + { 2, 3 }, + { 1, 2 }, + { 1, 3 }, + { 0, 1 }, + { 0, 3 } +}; + +} // namespace cutcells::cell::quadrilateral + +#endif // CUT_CELLS_QUADRILATERAL_INTERFACE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_quadrilateral_outside_tables.h b/cpp/src/generated/cut_quadrilateral_outside_tables.h new file mode 100644 index 0000000..13359f8 --- /dev/null +++ b/cpp/src/generated/cut_quadrilateral_outside_tables.h @@ -0,0 +1,45 @@ +#ifndef CUT_CELLS_QUADRILATERAL_OUTSIDE_TABLES_H +#define CUT_CELLS_QUADRILATERAL_OUTSIDE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::quadrilateral { + +// Number of subcells produced for each case (outside volume) +constexpr int num_subcells_outside[16] = { 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 0 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_outside[17] = { 0, 1, 3, 5, 6, 8, 10, 11, 12, 14, 15, 17, 18, 19, 20, 21, 21 }; + +// Cell types for outside subcells +constexpr type subcell_type_outside[21] = { cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle }; + +// Subcell vertices (max 4 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, >=100 = 100+vertex_id +constexpr int subcell_verts_outside[21][4] = { + { 100, 101, 102, 103 }, + { 0, 101, 102, -1 }, + { 0, 102, 103, 3 }, + { 1, 102, 103, -1 }, + { 1, 103, 100, 0 }, + { 1, 102, 103, 3 }, + { 2, 103, 100, -1 }, + { 2, 100, 101, 1 }, + { 101, 1, 2, 103 }, + { 103, 3, 0, 101 }, + { 100, 0, 2, 103 }, + { 2, 103, 3, -1 }, + { 3, 100, 101, -1 }, + { 3, 101, 102, 2 }, + { 0, 101, 102, 2 }, + { 100, 0, 1, 102 }, + { 102, 2, 3, 100 }, + { 1, 102, 2, -1 }, + { 100, 101, 1, 3 }, + { 0, 101, 1, -1 }, + { 100, 0, 3, -1 } +}; + +} // namespace cutcells::cell::quadrilateral + +#endif // CUT_CELLS_QUADRILATERAL_OUTSIDE_TABLES_H \ No newline at end of file diff --git a/python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py b/python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py new file mode 100644 index 0000000..c8882ac --- /dev/null +++ b/python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py @@ -0,0 +1,166 @@ +"""Demo: cut a complex level set through a *quadrilateral* (VTK_QUAD) mesh. + +Run (from repo root): + conda run -n fenicsx-dev python python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py + +Optional: + conda run -n fenicsx-dev python python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py --n 60 --save cut_quad_mesh.vtu + +Notes: +- Uses `cutcells.cut_vtk_mesh` (C++ implementation + generated quad tables). +- Requires `pyvista` for plotting/saving VTU in Python. +""" + +from __future__ import annotations + +import argparse + +import numpy as np + +import cutcells + + +def level_set_popcorn_2d(xyz: np.ndarray) -> float: + """2D 'popcorn'-like implicit function on z=0 plane. + + Negative values are "inside". + """ + x, y = float(xyz[0]), float(xyz[1]) + + r0 = 0.65 + r = (x * x + y * y) ** 0.5 + + value = r - r0 + + # Add bumps around a ring (gaussian perturbations) + sigma2 = 0.02 + for k in range(10): + ang = 2.0 * np.pi * k / 10.0 + cx = 0.9 * r0 * np.cos(ang) + cy = 0.9 * r0 * np.sin(ang) + d2 = (x - cx) ** 2 + (y - cy) ** 2 + value -= 0.22 * np.exp(-d2 / sigma2) + + # Add mild sinusoidal ripples to make the interface less symmetric + value += 0.05 * np.sin(6.0 * x) * np.cos(5.0 * y) + + return value + + +def create_quad_mesh(x0: float, y0: float, x1: float, y1: float, nx: int, ny: int): + """Create a structured quad mesh in VTK-unstructured-array form. + + Returns: + points: (npts, 3) + connectivity: (ncells*4,) + offset: (ncells,) + celltypes: (ncells,) filled with VTK_QUAD (9) + """ + xs = np.linspace(x0, x1, nx) + ys = np.linspace(y0, y1, ny) + + points = np.zeros((nx * ny, 3), dtype=float) + p = 0 + for j in range(ny): + for i in range(nx): + points[p, 0] = xs[i] + points[p, 1] = ys[j] + points[p, 2] = 0.0 + p += 1 + + def vid(i: int, j: int) -> int: + return j * nx + i + + ncx = nx - 1 + ncy = ny - 1 + ncells = ncx * ncy + + connectivity = np.zeros((ncells * 4,), dtype=np.int32) + offset = np.zeros((ncells,), dtype=np.int32) + celltypes = np.full((ncells,), 9, dtype=np.int32) # VTK_QUAD + + c = 0 + k = 0 + for j in range(ncy): + for i in range(ncx): + offset[c] = k + # (i,j)->(i+1,j)->(i+1,j+1)->(i,j+1) + connectivity[k + 0] = vid(i, j) + connectivity[k + 1] = vid(i + 1, j) + connectivity[k + 2] = vid(i + 1, j + 1) + connectivity[k + 3] = vid(i, j + 1) + k += 4 + c += 1 + + return points, connectivity, offset, celltypes + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Cut a complex level set through a quadrilateral mesh" + ) + parser.add_argument( + "--n", type=int, default=45, help="Points per axis (mesh is (n x n) points)" + ) + parser.add_argument( + "--save", type=str, default=None, help="Optional output VTU filename" + ) + parser.add_argument( + "--triangulate", + action=argparse.BooleanOptionalAction, + default=True, + help="Triangulate cut cells (default: True). Use --no-triangulate to preserve quads.", + ) + args = parser.parse_args() + + try: + import pyvista as pv + except Exception as exc: # pragma: no cover + raise SystemExit( + "pyvista is required for this demo. Install with: `python -m pip install pyvista`\n" + f"Import error: {exc}" + ) + + n = int(args.n) + points, conn, off, celltypes = create_quad_mesh(-1.0, -1.0, 1.0, 1.0, n, n) + + # level set at points + ls = np.array([level_set_popcorn_2d(p) for p in points], dtype=float) + + # Cut mesh and also extract all inside (phi<0) background cells for context + cut_mesh = cutcells.cut_vtk_mesh( + ls, points, conn, off, celltypes, "phi<0", triangulate=bool(args.triangulate) + ) + inside_cells = cutcells.locate_cells(ls, points, conn, off, celltypes, "phi<0") + + # Build a pyvista grid for visualization + cells_with_counts = np.empty((len(off) * 5,), dtype=np.int32) + cells_with_counts[0::5] = 4 + cells_with_counts[1::5] = conn[0::4] + cells_with_counts[2::5] = conn[1::4] + cells_with_counts[3::5] = conn[2::4] + cells_with_counts[4::5] = conn[3::4] + + bg = pv.UnstructuredGrid(cells_with_counts, celltypes, points) + + cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape((-1, 3)) + cut_cells = np.asarray(cut_mesh.cells, dtype=np.int32) + cut_types = np.asarray(cut_mesh.types, dtype=np.int32) + pv_cut = pv.UnstructuredGrid(cut_cells, cut_types, cut_points) + extract = bg.extract_cells(inside_cells) + merged = extract.merge(pv_cut) + + pl = pv.Plotter() + pl.add_mesh(bg, color="white", show_edges=True, opacity=0.25) + pl.add_mesh(merged, show_edges=True) + pl.camera_position = "xy" + + if args.save: + merged.save(args.save) + print(f"Saved: {args.save}") + + pl.show() + + +if __name__ == "__main__": + main() diff --git a/python/demo/plot_quadrilateral_cases.py b/python/demo/plot_quadrilateral_cases.py new file mode 100644 index 0000000..ef6d5f6 --- /dev/null +++ b/python/demo/plot_quadrilateral_cases.py @@ -0,0 +1,159 @@ +"""Plot all 16 marching-squares cases for quadrilateral clipping. + +Run from repo root (fenicsx-dev env): + PYTHONPATH=tablegen python python/demo/plot_quadrilateral_cases.py [--save out.png] +""" + +from __future__ import annotations + +import argparse +from pathlib import Path +from typing import Iterable, List, Sequence, Tuple + +import matplotlib.pyplot as plt + +# Use the tablegen package directly +import sys + +REPO_ROOT = Path(__file__).resolve().parents[2] +sys.path.insert(0, str(REPO_ROOT / "tablegen")) + +from cutcells_tablegen.topology import edge_endpoints # noqa: E402 +from cutcells_tablegen.vtk_tables_import import ClipCase, EmittedCell, get_cases # noqa: E402 + +Point = Tuple[float, float] + + +def build_vertices(mask: int) -> Tuple[List[Point], List[Point]]: + """Return base vertices and edge intersection points for a given mask. + + Mask bit i=1 means vertex i is inside (phi<0). We assign ls=-1 inside, +1 outside, + so intersections land at the midpoint of sign-changing edges. + """ + verts: List[Point] = [(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)] + edges = edge_endpoints("quadrilateral") + ls = [-1.0 if (mask >> i) & 1 else 1.0 for i in range(4)] + + ip: List[Point] = [(float("nan"), float("nan")) for _ in range(len(edges))] + for e, (v0, v1) in enumerate(edges): + if (ls[v0] < 0) != (ls[v1] < 0): + t = abs(ls[v0]) / (abs(ls[v0]) + abs(ls[v1])) # with +-1 -> 0.5 + x = verts[v0][0] * (1 - t) + verts[v1][0] * t + y = verts[v0][1] * (1 - t) + verts[v1][1] * t + ip[e] = (x, y) + return verts, ip + + +def ref_to_point( + ref: Tuple[str, int], verts: Sequence[Point], ip: Sequence[Point] +) -> Point: + kind, idx = ref + if kind == "V": + return verts[idx] + if kind == "E": + return ip[idx] + raise ValueError(f"Unknown ref {ref}") + + +def draw_cells( + ax, + cells: Iterable[EmittedCell], + verts: Sequence[Point], + ip: Sequence[Point], + color: str, + label: str, +): + for cell in cells: + coords = [ref_to_point(r, verts, ip) for r in cell.vertices] + xs, ys = zip(*coords) + ax.fill( + xs, + ys, + facecolor=color, + alpha=0.5, + edgecolor="k", + linewidth=0.5, + label=label, + ) + label = "_nolegend_" # only label first patch + + +def draw_segments( + ax, + cells: Iterable[EmittedCell], + verts: Sequence[Point], + ip: Sequence[Point], + color: str, + label: str, +): + for cell in cells: + coords = [ref_to_point(r, verts, ip) for r in cell.vertices] + xs, ys = zip(*coords) + ax.plot(xs, ys, color=color, linewidth=2.0, label=label) + label = "_nolegend_" + + +def plot_cases(save: Path | None = None) -> None: + inside_cases: List[ClipCase] = get_cases("quadrilateral", "inside") + outside_cases: List[ClipCase] = get_cases("quadrilateral", "outside") + interface_cases: List[ClipCase] = get_cases("quadrilateral", "interface") + + fig, axes = plt.subplots(4, 4, figsize=(12, 12), constrained_layout=True) + + for mask in range(16): + ax = axes[mask // 4][mask % 4] + verts, ip = build_vertices(mask) + + # Draw original quad boundary + quad_x = [verts[0][0], verts[1][0], verts[2][0], verts[3][0], verts[0][0]] + quad_y = [verts[0][1], verts[1][1], verts[2][1], verts[3][1], verts[0][1]] + ax.plot( + quad_x, + quad_y, + "k--", + linewidth=1.5, + alpha=0.3, + label="quad" if mask == 0 else "_nolegend_", + ) + + # Draw outside first (so inside can overlay) + draw_cells( + ax, outside_cases[mask].cells, verts, ip, color="red", label="outside" + ) + draw_cells( + ax, inside_cases[mask].cells, verts, ip, color="blue", label="inside" + ) + draw_segments( + ax, interface_cases[mask].cells, verts, ip, color="black", label="interface" + ) + + ax.set_title(f"mask {mask:04b}") + ax.set_aspect("equal") + ax.set_xlim(-0.1, 1.1) + ax.set_ylim(-0.1, 1.1) + ax.axis("off") + + handles, labels = axes[0][0].get_legend_handles_labels() + if handles: + fig.legend(handles, labels, loc="upper center", ncol=4) + + if save: + fig.savefig(save, dpi=200) + else: + plt.show() + + +def main() -> None: + parser = argparse.ArgumentParser(description="Plot all quadrilateral clip cases") + parser.add_argument( + "--save", + type=Path, + default=None, + help="Path to save the figure instead of showing", + ) + args = parser.parse_args() + plot_cases(args.save) + + +if __name__ == "__main__": + main() diff --git a/python/tests/test_cut_vtk_mesh_hexahedron_smoke.py b/python/tests/test_cut_vtk_mesh_hexahedron_smoke.py new file mode 100644 index 0000000..483a0c7 --- /dev/null +++ b/python/tests/test_cut_vtk_mesh_hexahedron_smoke.py @@ -0,0 +1,56 @@ +# Copyright (c) 2025 ONERA +# Authors: Susanne Claus +# This file is part of CutCells +# +# SPDX-License-Identifier: MIT + +import numpy as np + +import cutcells + +VTK_TETRA = 10 +VTK_HEXAHEDRON = 12 + + +def _single_unit_hex_vtk(): + """One VTK_HEXAHEDRON cell on the unit cube in VTK vertex order.""" + points = np.array( + [ + [0.0, 0.0, 0.0], # 0 + [1.0, 0.0, 0.0], # 1 + [1.0, 1.0, 0.0], # 2 + [0.0, 1.0, 0.0], # 3 + [0.0, 0.0, 1.0], # 4 + [1.0, 0.0, 1.0], # 5 + [1.0, 1.0, 1.0], # 6 + [0.0, 1.0, 1.0], # 7 + ], + dtype=float, + ) + + connectivity = np.array([0, 1, 2, 3, 4, 5, 6, 7], dtype=np.int32) + offset = np.array([0], dtype=np.int32) + vtk_type = np.array([VTK_HEXAHEDRON], dtype=np.int32) + + return points, connectivity, offset, vtk_type + + +def test_cut_vtk_mesh_single_hexahedron_smoke(): + points, connectivity, offset, vtk_type = _single_unit_hex_vtk() + + # Intersecting cut: split by plane x=0.3 + ls_vals = points[:, 0] - 0.3 + + cut_mesh = cutcells.cut_vtk_mesh( + ls_vals, + points, + connectivity, + offset, + vtk_type, + "phi<0", + triangulate=True, + ) + + assert len(cut_mesh.types) > 0 + # Fallback hex implementation cuts via tetrahedra; with triangulate=True it should be tetra-dominant. + assert VTK_TETRA in list(cut_mesh.types) diff --git a/python/tests/test_cut_vtk_mesh_triangulate_flag.py b/python/tests/test_cut_vtk_mesh_triangulate_flag.py new file mode 100644 index 0000000..1925710 --- /dev/null +++ b/python/tests/test_cut_vtk_mesh_triangulate_flag.py @@ -0,0 +1,50 @@ +# Copyright (c) 2025 ONERA +# Authors: Susanne Claus +# This file is part of CutCells +# +# SPDX-License-Identifier: MIT + +import numpy as np + +import cutcells + +VTK_TRIANGLE = 5 +VTK_QUAD = 9 + + +def _quad_mesh_2x2_single_cell(): + """One VTK_QUAD cell on [0,1]x[0,1] in z=0 plane.""" + points = np.array( + [ + [0.0, 0.0, 0.0], + [1.0, 0.0, 0.0], + [1.0, 1.0, 0.0], + [0.0, 1.0, 0.0], + ], + dtype=float, + ) + + connectivity = np.array([0, 1, 2, 3], dtype=np.int32) + offset = np.array([0], dtype=np.int32) + vtk_type = np.array([VTK_QUAD], dtype=np.int32) + + return points, connectivity, offset, vtk_type + + +def test_cut_vtk_mesh_triangulate_flag_controls_output_types(): + points, connectivity, offset, vtk_type = _quad_mesh_2x2_single_cell() + + # Level set: phi = x - 0.3 produces a vertical cut line inside the quad. + # This is a 2-inside/2-outside case that can naturally produce a quad when not triangulated. + ls_vals = points[:, 0] - 0.3 + + cut_mesh_quads = cutcells.cut_vtk_mesh( + ls_vals, points, connectivity, offset, vtk_type, "phi<0", triangulate=False + ) + assert VTK_QUAD in list(cut_mesh_quads.types) + + cut_mesh_tris = cutcells.cut_vtk_mesh( + ls_vals, points, connectivity, offset, vtk_type, "phi<0", triangulate=True + ) + assert VTK_QUAD not in list(cut_mesh_tris.types) + assert VTK_TRIANGLE in list(cut_mesh_tris.types) diff --git a/python/tests/test_cutcell_original_info.py b/python/tests/test_cutcell_original_info.py new file mode 100644 index 0000000..23dfc7f --- /dev/null +++ b/python/tests/test_cutcell_original_info.py @@ -0,0 +1,30 @@ +"""Test that CutCell stores original cell information.""" + +import cutcells +import numpy as np + + +def test_cutcell_original_info(): + """Verify CutCell stores original vertex coords and IDs.""" + # Create a simple quad + vertices = np.array([[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0]], dtype=float) + ls_values = np.array([-0.5, -0.5, 0.5, 0.5], dtype=float) + + # Cut it + cut = cutcells.cut( + cutcells.CellType.quadrilateral, vertices, 2, ls_values, "phi<0", False + ) + + # For now, just verify the cut doesn't crash + # TODO: Once Python bindings expose _parent_* fields, verify: + # - cut._parent_cell_type == cutcells.CellType.quadrilateral + # - cut._parent_vertex_coords matches vertices + # - cut._parent_vertex_ids is [0,1,2,3] (or similar default) + + assert len(cut.types) > 0, "Should produce some cut cells" + assert cut.vertex_coords is not None, "Should have vertex coordinates" + + +if __name__ == "__main__": + test_cutcell_original_info() + print("✓ test_cutcell_original_info passed") diff --git a/python/tests/test_cutcontext_edge_reuse.py b/python/tests/test_cutcontext_edge_reuse.py new file mode 100644 index 0000000..137a3f4 --- /dev/null +++ b/python/tests/test_cutcontext_edge_reuse.py @@ -0,0 +1,42 @@ +"""Test CutContext for edge-owned intersection vertices.""" + +import numpy as np + + +def test_cutcontext_edge_reuse(): + """Test that CutContext correctly deduplicates edge intersections. + + This is a placeholder test until CutContext is exposed to Python. + The actual functionality will be tested in C++ or through integration tests. + """ + # TODO: Once CutContext is exposed to Python bindings, implement: + # 1. Create CutContext with num_original_vertices=4, gdim=2 + # 2. Insert edge (0,1) with phi values → get vid1 + # 3. Insert same edge again → get same vid (reuse) + # 4. Insert edge with endpoint phi==0 → returns original vertex id + # 5. Verify ip_coords has exactly one entry per unique intersection + + # For now, just verify the concept works through existing cut operations + # which should internally use similar logic + import cutcells + + # Create a quad and cut it + vertices = np.array([[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0]], dtype=float) + ls_values = np.array([-0.5, 0.5, 0.5, -0.5], dtype=float) + + cut = cutcells.cut( + cutcells.CellType.quadrilateral, vertices, 2, ls_values, "phi<0", False + ) + + # Basic sanity: cut should produce cells + assert len(cut.types) > 0 + assert cut.vertex_coords is not None + + # TODO: When CutContext is integrated, verify: + # - Same edge intersections produce same vertex ids + # - No duplicate vertices for shared edges + + +if __name__ == "__main__": + test_cutcontext_edge_reuse() + print("✓ test_cutcontext_edge_reuse passed (placeholder)") diff --git a/python/tests/test_hex_classify.py b/python/tests/test_hex_classify.py new file mode 100644 index 0000000..14d0a83 --- /dev/null +++ b/python/tests/test_hex_classify.py @@ -0,0 +1,87 @@ +import random + +from tools.cutcells_tables.classify.hex_mc33 import ( + classify_hex, + permute_mask, + RAW_TO_BASE_ID, + CANONICAL_MASKS, + ambiguous_faces_mask, + edges_mask_from_cell_mask, + body_saddle_sign_hex, + asymptotic_decider_quad, +) +from tools.cutcells_tables.symmetry.cube import SYMMETRIES + + +def test_orbit_canonicalization_exhaustive(): + # Every raw mask maps to canonical mask present in CANONICAL_MASKS + canonical_set = set(CANONICAL_MASKS) + for m in range(256): + info = classify_hex(m) + assert info.canonical_mask in canonical_set + # Check RAW_TO_* consistency + c2 = classify_hex(info.canonical_mask) + assert RAW_TO_BASE_ID[m] == c2.base_id + + +def test_symmetry_equivalence_random(): + rng = random.Random(1234) + for _ in range(200): + m = rng.randrange(256) + info = classify_hex(m) + for sid in rng.sample(range(len(SYMMETRIES)), 5): + pm = permute_mask(m, sid) + info_p = classify_hex(pm) + assert info.base_id == info_p.base_id + + +def test_ambiguous_faces_patterns(): + # Construct masks with one ambiguous face (face 0) pattern 0101 / 1010 + # Face 0 assumed (0,1,2,3) + pattern_0101 = 0 + pattern_1010 = 0 + # set bits: v0=1,v1=0,v2=1,v3=0 -> 0b0101 -> vertices 0,2 + pattern_0101 |= (1 << 0) | (1 << 2) + # 1010 -> vertices 1,3 + pattern_1010 |= (1 << 1) | (1 << 3) + assert ambiguous_faces_mask(pattern_0101) & 1 + assert ambiguous_faces_mask(pattern_1010) & 1 + + +def test_edges_mask_parity_random(): + for m in range(256): + em = edges_mask_from_cell_mask(m) + # For each edge bit set ensure its endpoints differ + for ei, (a, b) in enumerate( + ( + (0, 1), + (1, 2), + (2, 3), + (3, 0), + (4, 5), + (5, 6), + (6, 7), + (7, 4), + (0, 4), + (1, 5), + (2, 6), + (3, 7), + ) + ): + if (em >> ei) & 1: + assert ((m >> a) & 1) != ((m >> b) & 1) + + +def test_body_saddle_sign_center_consistency(): + # If all phi are symmetric around zero, interior sign should align with center + phi = [-1.0, 1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0] + s = body_saddle_sign_hex(phi) + # center value is ~0 so sign may be 1 (>=0). Accept either but function should return int 0/1 + assert s in (0, 1) + + +def test_asymptotic_decider_basic(): + # Values produce center < 0 -> returns 1 + assert asymptotic_decider_quad(-1, 1, 1, -1) == 1 + # values produce center > 0 -> returns 0 + assert asymptotic_decider_quad(1, 1, 1, 1) == 0 diff --git a/python/tests/test_hex_emit.py b/python/tests/test_hex_emit.py new file mode 100644 index 0000000..28f072d --- /dev/null +++ b/python/tests/test_hex_emit.py @@ -0,0 +1,131 @@ +from pathlib import Path +from tools.cutcells_tables.emit.hex_emit import write_hex_header, generate_hex_tables +from tools.cutcells_tables.build.hex_variant import build_hex_variant +from tools.cutcells_tables.classify.hex_mc33 import classify_hex +from tools.cutcells_tables.cells.hex import EDGES as HEX_EDGES + + +def _loop_nz(loop): + # replicate heuristic from variant builder for test validation + coords = [ + (0.0, 0.0, 0.0), + (1.0, 0.0, 0.0), + (1.0, 1.0, 0.0), + (0.0, 1.0, 0.0), + (0.0, 0.0, 1.0), + (1.0, 0.0, 1.0), + (1.0, 1.0, 1.0), + (0.0, 1.0, 1.0), + ] + for a, b in HEX_EDGES: + ax, ay, az = coords[a] + bx, by, bz = coords[b] + coords.append(((ax + bx) * 0.5, (ay + by) * 0.5, (az + bz) * 0.5)) + vs = loop.verts + nz = 0.0 + for i in range(len(vs)): + x1, y1, z1 = coords[vs[i]] + x2, y2, z2 = coords[vs[(i + 1) % len(vs)]] + nz += (x1 - x2) * (y1 + y2) + return nz + + +def test_generate_hex_tables_basic(tmp_path: Path): + acc = generate_hex_tables() + # 256 raw masks covered indirectly via base groupings; ensure some content + assert len(acc.poly_descs) > 0 + # variant_lut_offsets length == NUM_BASES + # monotonic offsets + assert all(x <= y for x, y in zip(acc.variant_lut_offsets, acc.variant_lut_offsets[1:])) + out = tmp_path / "hex.hpp" + write_hex_header(out) + assert out.exists() + text_full = out.read_text() + assert "hex_canon_base" in text_full + lines = text_full.splitlines() + assert any(line.startswith("// Hash:") for line in lines[:3]) + # New pools & fields + assert "hex_surface_pool" in text_full + assert "hex_inside_pool" in text_full + assert "hex_outside_pool" in text_full + assert "surf_off" in text_full + assert "in_off" in text_full + assert "out_off" in text_full + + +def test_inside_outside_faces_nonempty_for_mixed_masks(): + # pick some masks with both inside/outside bits (not all 0 or all 1) + samples = [0b00001111, 0b01010101, 0b00111100, 0b10011001] + for m in samples: + info = classify_hex(m) + # choose variant bits 0 for simplicity + vp = build_hex_variant(m, 0) + # If there is at least one crossing we expect at least one inside or outside face polygon + if info.edges_mask != 0: + assert len(vp.inside_faces) + len(vp.outside_faces) >= 1 + + +def test_iso_loop_orientation_samples(): + # sample masks with various configurations + samples = [0b00001111, 0b00110011, 0b01011010, 0b11110000, 0b10100101] + for m in samples: + vp = build_hex_variant(m, 0) + # All loops should have non-negative nz after orientation normalization + for L in vp.iso_loops: + assert _loop_nz(L) >= -1e-9 + + +def test_hash_stability(tmp_path: Path): + out1 = tmp_path / "hex1.hpp" + out2 = tmp_path / "hex2.hpp" + write_hex_header(out1) + write_hex_header(out2) + h1 = out1.read_text().splitlines()[0] + h2 = out2.read_text().splitlines()[0] + assert h1 == h2 + + +def test_watertight_edge_degree_samples(): + # sample several masks to ensure each iso vertex appears degree 2 in loops + masks = [i for i in range(1, 255, 17)] # sparse sampling + for m in masks: + vp = build_hex_variant(m, 0) + # build adjacency counts + for L in vp.iso_loops: + n = len(L.verts) + for i in range(n): + a = L.verts[i] + b = L.verts[(i + 1) % n] + assert a != b + # Previous degree>=2 aggregate test fails for single triangles (each vertex listed once). + # Instead ensure no vertex appears only once across *multiple* loops causing open chains. + counts = {} + for L in vp.iso_loops: + for v in L.verts: + counts[v] = counts.get(v, 0) + 1 + if len(vp.iso_loops) > 1: + # Only enforce for vertices that appear in more than one distinct loop + loop_membership = {} + for li, L in enumerate(vp.iso_loops): + for v in set(L.verts): + loop_membership.setdefault(v, set()).add(li) + for v, loops in loop_membership.items(): + if len(loops) > 1: + assert counts[v] >= 2 + + +def test_interior_bit_presence_variant_doubling(): + # Find a mask whose base sets needs_interior_bit + candidates = [] + for m in range(256): + info = classify_hex(m) + if info.needs_interior_bit: + candidates.append((m, info)) + break + if not candidates: + # Heuristic may not mark any mask in some configurations; skip gracefully + return + m, info = candidates[0] + # K should include interior bit; ensure at least one variant beyond face-only combinations + face_bits = bin(info.ambiguous_faces_mask).count("1") + assert info.K == face_bits + 1 diff --git a/python/tests/test_hex_polyhedron_export.py b/python/tests/test_hex_polyhedron_export.py new file mode 100644 index 0000000..ccc0e48 --- /dev/null +++ b/python/tests/test_hex_polyhedron_export.py @@ -0,0 +1,19 @@ +from tools.cutcells_tables.export.hex_polyhedron import build_hex_polyhedra + + +def test_single_corner_tetra_inside_polyhedron(): + # Mask with only corner 0 inside + m = 1 + data = build_hex_polyhedra(m, 0) + assert data.inside is not None, "Inside tetra should be watertight" + # Tetra has 4 faces (iso + 3 corner faces) + assert data.inside.n_faces == 4 + assert sum(data.inside.face_sizes) == len(data.inside.faces_stream) + + +def test_full_or_empty_masks_no_polyhedra(): + # No iso surface => boundaries not mixed (pure hex/no cut) -> cannot form cut polyhedra + for m in (0, 0xFF): + data = build_hex_polyhedra(m, 0) + # Either inside or outside degenerates; both can't be polyhedron with iso surface absent + assert data.inside is None or data.outside is None diff --git a/python/tests/test_hex_variant.py b/python/tests/test_hex_variant.py new file mode 100644 index 0000000..5180bd8 --- /dev/null +++ b/python/tests/test_hex_variant.py @@ -0,0 +1,46 @@ +from tools.cutcells_tables.build.hex_variant import build_hex_variant +from tools.cutcells_tables.classify.hex_mc33 import edges_mask_from_cell_mask, classify_hex + + +def test_variant_loops_basic(): + for mask in (0, 0xFF, 0b00001111, 0b11110000, 0b01011010): + vp = build_hex_variant(mask, 0) + em = edges_mask_from_cell_mask(mask) + if em == 0: + assert len(vp.iso_loops) == 0 + else: + # loops may be >1 now; ensure each closed and edge-vertex indices + for loop in vp.iso_loops: + assert loop.is_closed() + assert all(v >= 8 for v in loop.verts) + + +def test_vertex_mask_matches_loop(): + mask = 0b01011010 + vp = build_hex_variant(mask, 0) + bits = 0 + for coll in (vp.iso_loops, vp.inside_faces, vp.outside_faces): + for L in coll: + for v in L.verts: + bits |= 1 << v + assert bits == vp.vmask + + +def test_deterministic_ordering(): + mask = 0b01011010 + v1 = build_hex_variant(mask, 0) + v2 = build_hex_variant(mask, 0) + assert [L.verts for L in v1.iso_loops] == [L.verts for L in v2.iso_loops] + + +def test_variant_bit_effect_when_ambiguous(): + # Construct an ambiguous face mask: bottom face 0101 (vertices 0,2 active) + mask = (1 << 0) | (1 << 2) + info = classify_hex(mask) + if info.K == 0: + return # no ambiguous faces in this mask; skip + vA = build_hex_variant(mask, 0) + vB = build_hex_variant(mask, 1) + # Either different loops or identical if degenerate; ensure deterministic order regardless + assert [L.verts for L in vA.iso_loops] == sorted([L.verts for L in vA.iso_loops]) + assert [L.verts for L in vB.iso_loops] == sorted([L.verts for L in vB.iso_loops]) diff --git a/python/tests/test_quad_table_sanity.py b/python/tests/test_quad_table_sanity.py new file mode 100644 index 0000000..b450ce0 --- /dev/null +++ b/python/tests/test_quad_table_sanity.py @@ -0,0 +1,42 @@ +"""Test quad table sanity checks.""" + + +def test_quad_table_sanity(): + """Validate quad tables structure and token encoding. + + This is a C++-level validation that would check: + - Offsets are monotonic + - Last offset equals TOTAL subcells + - Vert offsets monotonic + - Every token is either edge_id in [0,3] or 100+vid with vid in [0,3] + + For now, this is a placeholder. The actual validation happens in C++ + through compilation and existing integration tests. + """ + # TODO: When table validation utilities are exposed to Python, implement: + # 1. Load quad_case_subcell_offset_inside + # 2. Verify monotonic: offset[i] <= offset[i+1] + # 3. Verify offset[16] == 21 (total subcells) + # 4. Load quad_subcell_verts_inside + # 5. For each token != -1: verify token < 4 OR 100 <= token <= 103 + + # The quad tables are now defined in cut_quadrilateral_tables.h + # and are validated through successful compilation and existing tests + import cutcells + import numpy as np + + # Run a basic cut to ensure tables work + vertices = np.array([[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0]], dtype=float) + ls_values = np.array([-0.5, 0.5, 0.5, -0.5], dtype=float) + + cut = cutcells.cut( + cutcells.CellType.quadrilateral, vertices, 2, ls_values, "phi<0", False + ) + + # Should produce valid output + assert len(cut.types) > 0 + assert cut.vertex_coords is not None + + # Basic validation passed if we got here + print(f"Produced {len(cut.types)} subcells") + print("✓ test_quad_table_sanity passed") diff --git a/python/tests/test_quadrilateral.py b/python/tests/test_quadrilateral.py new file mode 100644 index 0000000..7809167 --- /dev/null +++ b/python/tests/test_quadrilateral.py @@ -0,0 +1,50 @@ +# Copyright (c) 2025 ONERA +# Authors: Susanne Claus +# This file is part of CutCells +# +# SPDX-License-Identifier: MIT +import numpy as np +import pytest + +import cutcells + +VTK_TRIANGLE = 5 +VTK_QUAD = 9 + + +def _square_vertices(): + return np.array([0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0], dtype=float) + + +def test_quadrilateral_opposite_corners_disconnected(): + vertices = _square_vertices() + ls_values = np.array([-0.5, 0.5, -0.5, 0.5], dtype=float) + + cut_inside = cutcells.cut( + cutcells.CellType.quadrilateral, vertices, 2, ls_values, "phi<0", False + ) + assert cut_inside.types == [VTK_TRIANGLE, VTK_TRIANGLE] + assert np.isclose(cut_inside.volume(), 0.25) + + cut_outside = cutcells.cut( + cutcells.CellType.quadrilateral, vertices, 2, ls_values, "phi>0", False + ) + assert cut_outside.types == [VTK_QUAD, VTK_QUAD] + assert np.isclose(cut_outside.volume(), 0.75) + + +def test_quadrilateral_pentagon_splits_triangle_quad(): + vertices = _square_vertices() + ls_values = np.array([0.5, -0.5, -0.5, -0.5], dtype=float) + + cut_inside = cutcells.cut( + cutcells.CellType.quadrilateral, vertices, 2, ls_values, "phi<0", False + ) + assert cut_inside.types == [VTK_TRIANGLE, VTK_QUAD] + assert np.isclose(cut_inside.volume(), 0.875) + + cut_outside = cutcells.cut( + cutcells.CellType.quadrilateral, vertices, 2, ls_values, "phi>0", False + ) + assert cut_outside.types == [VTK_TRIANGLE] + assert np.isclose(cut_outside.volume(), 0.125) diff --git a/python/tests/test_single_corner.py b/python/tests/test_single_corner.py new file mode 100644 index 0000000..7099447 --- /dev/null +++ b/python/tests/test_single_corner.py @@ -0,0 +1,11 @@ +from tools.cutcells_tables.build.hex_variant import build_hex_variant + + +def test_single_inside_corner_triangle(): + mask = 1 # only corner 0 inside + vp = build_hex_variant(mask, 0) + assert len(vp.iso_loops) == 1, f"expected 1 iso loop, got {len(vp.iso_loops)}" + L = vp.iso_loops[0] + assert len(L.verts) == 3, f"expected triangle, got {L.verts}" + assert all(v >= 8 for v in L.verts), "loop should use edge vertices only" + assert len(set(L.verts)) == 3, "triangle vertices must be distinct" diff --git a/python/tests/test_single_corner_basic.py b/python/tests/test_single_corner_basic.py new file mode 100644 index 0000000..4a0348a --- /dev/null +++ b/python/tests/test_single_corner_basic.py @@ -0,0 +1,10 @@ +from tools.cutcells_tables.build.hex_variant import build_hex_variant + +def test_single_inside_corner_triangle(): + mask = 1 # only corner 0 inside + vp = build_hex_variant(mask, 0) + assert len(vp.iso_loops) == 1, f"expected 1 iso loop, got {len(vp.iso_loops)}" + L = vp.iso_loops[0] + assert len(L.verts) == 3, f"expected triangle, got {L.verts}" + assert all(v >= 8 for v in L.verts), "loop should use edge vertices only" + assert len(set(L.verts)) == 3, "triangle vertices must be distinct" diff --git a/python/tests/test_tables_cli.py b/python/tests/test_tables_cli.py new file mode 100644 index 0000000..02fed66 --- /dev/null +++ b/python/tests/test_tables_cli.py @@ -0,0 +1,36 @@ +"""Test CLI functionality.""" + +import subprocess +import sys +from pathlib import Path + +# Add tools directory to path for imports +tools_dir = Path(__file__).parent.parent.parent +sys.path.insert(0, str(tools_dir)) + + +def test_cli_list(): + """Test CLI list command.""" + result = subprocess.run( + [sys.executable, "-m", "tools.cutcells_tables.cli", "list"], + capture_output=True, + text=True, + cwd=tools_dir.parent, + ) + + assert result.returncode == 0 + assert "generate-hex" in result.stdout + + +def test_cli_dump_hex_base(): + """Test CLI dump-hex-base command.""" + result = subprocess.run( + [sys.executable, "-m", "tools.cutcells_tables.cli", "dump-hex-base", "--mask", "173"], + capture_output=True, + text=True, + cwd=tools_dir.parent, + ) + + assert result.returncode == 0 + assert "Mask: 173" in result.stdout + assert "Base ID:" in result.stdout diff --git a/tablegen/cutcells_tablegen/__init__.py b/tablegen/cutcells_tablegen/__init__.py new file mode 100644 index 0000000..37a97ae --- /dev/null +++ b/tablegen/cutcells_tablegen/__init__.py @@ -0,0 +1,11 @@ +"""Table generation utilities for CutCells (VTK TableBasedClip style). + +Use with `conda activate fenicsx-dev` before running tablegen scripts. +""" + +__all__ = [ + "topology", + "vtk_tables_import", + "normalize", + "emit_c_headers", +] diff --git a/tablegen/cutcells_tablegen/emit_c_headers.py b/tablegen/cutcells_tablegen/emit_c_headers.py new file mode 100644 index 0000000..b609110 --- /dev/null +++ b/tablegen/cutcells_tablegen/emit_c_headers.py @@ -0,0 +1,267 @@ +"""Emit CutCells-style C++ headers from normalized tables.""" + +from __future__ import annotations + +from pathlib import Path +from typing import Dict, List + +from .topology import num_edges + +CELL_ENUM_LITERALS = [ + "cell::type::point", + "cell::type::interval", + "cell::type::triangle", + "cell::type::tetrahedron", + "cell::type::quadrilateral", + "cell::type::hexahedron", + "cell::type::prism", + "cell::type::pyramid", +] + + +def _brace_join(rows: List[str]) -> str: + return "{ " + ", ".join(rows) + " }" + + +def _format_int_list(values: List[int]) -> str: + return _brace_join([str(v) for v in values]) + + +def _format_cell_type_list(values: List[int]) -> str: + mapped = [] + for v in values: + if v < 0 or v >= len(CELL_ENUM_LITERALS): + raise ValueError(f"Cell type enum value {v} out of range") + mapped.append(CELL_ENUM_LITERALS[v]) + return _brace_join(mapped) + + +def _format_matrix(matrix: List[List[int]]) -> str: + inner = ["{ " + ", ".join(str(v) for v in row) + " }" for row in matrix] + return "{\n" + ",\n".join(f" {row}" for row in inner) + "\n}" + + +def _header_guard(cell_type: str, table_kind: str) -> str: + return f"CUT_CELLS_{cell_type.upper()}_{table_kind.upper()}_TABLES_H" + + +def emit_header( + cell_type: str, table_kind: str, arrays: Dict[str, List], output_dir: Path +) -> Path: + """Write a single header for one cell type + table kind (inside/outside/interface).""" + output_dir.mkdir(parents=True, exist_ok=True) + path = output_dir / f"cut_{cell_type}_{table_kind}_tables.h" + + n_cases = len(arrays["intersected_edges"]) + n_edges = num_edges(cell_type) + guard = _header_guard(cell_type, table_kind) + + lines: List[str] = [] + lines.append(f"#ifndef {guard}") + lines.append(f"#define {guard}") + lines.append("") + lines.append('#include "cell_types.h"') + lines.append("") + lines.append("namespace cutcells::cell::generated {") + lines.append("") + lines.append( + f"constexpr int cut_{cell_type}_{table_kind}_intersected_edges[{n_cases}][{n_edges}] = " + + _format_matrix(arrays["intersected_edges"]) + + ";" + ) + lines.append("") + lines.append( + f"constexpr int cut_{cell_type}_{table_kind}_sub_element_offset[{n_cases + 1}] = " + + _format_int_list(arrays["sub_element_offset"]) + + ";" + ) + lines.append("") + lines.append( + f"constexpr cell::type cut_{cell_type}_{table_kind}_sub_element_cell_types[{len(arrays['sub_element_cell_types'])}] = " + + _format_cell_type_list(arrays["sub_element_cell_types"]) + + ";" + ) + lines.append("") + lines.append( + f"constexpr int cut_{cell_type}_{table_kind}_sub_element[{len(arrays['sub_element'])}] = " + + _format_int_list(arrays["sub_element"]) + + ";" + ) + + extra_coords = arrays.get("extra_coords", []) + if extra_coords: + lines.append("") + lines.append( + f"constexpr double cut_{cell_type}_{table_kind}_extra_coords[{len(extra_coords)}] = " + + _format_int_list(extra_coords) + + ";" + ) + + lines.append("") + lines.append("} // namespace cutcells::cell::generated") + lines.append("") + lines.append(f"#endif // {guard}") + + path.write_text("\n".join(lines)) + return path + + +def emit_all( + cell_type: str, tables_by_kind: Dict[str, Dict[str, List]], output_dir: Path +) -> List[Path]: + written: List[Path] = [] + for kind, arrays in tables_by_kind.items(): + written.append(emit_header(cell_type, kind, arrays, output_dir)) + return written + + +def _emit_tet_like_header( + cell_type: str, table_kind: str, arrays: Dict[str, List], output_dir: Path +) -> Path: + """Write header in tetrahedron-like format with fixed-width 2D arrays.""" + output_dir.mkdir(parents=True, exist_ok=True) + path = output_dir / f"cut_{cell_type}_{table_kind}_tables.h" + + n_cases = len(arrays["intersected_edges"]) + n_edges = num_edges(cell_type) + guard = _header_guard(cell_type, table_kind) + + # Convert VTK flat format to tet-like format + # Extract subcells from flat stream + subcells_data = _extract_subcells_from_flat(arrays) + + lines: List[str] = [] + lines.append(f"#ifndef {guard}") + lines.append(f"#define {guard}") + lines.append("") + lines.append('#include "cell_types.h"') + lines.append("") + lines.append(f"namespace cutcells::cell::{cell_type} {{") + lines.append("") + + # Topology and intersected_edges only in the "inside" header to avoid redefinition + if table_kind == "inside": + # Topology (if quad/hex) + if cell_type == "quadrilateral": + lines.append("// Topology") + lines.append("constexpr int edges[4][2] = {{0,1}, {1,2}, {2,3}, {3,0}};") + lines.append("") + elif cell_type == "hexahedron": + lines.append("// Topology") + lines.append("constexpr int edges[12][2] = {") + lines.append(" {0,1}, {1,2}, {2,3}, {3,0}, // bottom face") + lines.append(" {4,5}, {5,6}, {6,7}, {7,4}, // top face") + lines.append(" {0,4}, {1,5}, {2,6}, {3,7} // vertical edges") + lines.append("};") + lines.append("") + lines.append("constexpr int faces[6][4] = {") + lines.append(" {0,3,2,1}, {4,5,6,7}, // bottom, top") + lines.append(" {0,1,5,4}, {1,2,6,5}, // front, right") + lines.append(" {2,3,7,6}, {3,0,4,7} // back, left") + lines.append("};") + lines.append("") + + # Intersected edges + lines.append( + f"// Intersected edges per case (1 = intersected, 0 = not intersected)" + ) + lines.append( + f"constexpr int intersected_edges[{n_cases}][{n_edges}] = " + + _format_matrix(arrays["intersected_edges"]) + + ";" + ) + lines.append("") + + # Number of subcells per case + num_subcells_per_case = [] + for i in range(n_cases): + start = arrays["sub_element_offset"][i] + end = arrays["sub_element_offset"][i + 1] + num_subcells_per_case.append(end - start) + + lines.append(f"// Number of subcells produced for each case ({table_kind} volume)") + lines.append( + f"constexpr int num_subcells_{table_kind}[{n_cases}] = " + + _format_int_list(num_subcells_per_case) + + ";" + ) + lines.append("") + + # Offset into subcell array + lines.append(f"// Offset into subcell array for each case") + lines.append( + f"constexpr int case_subcell_offset_{table_kind}[{n_cases + 1}] = " + + _format_int_list(arrays["sub_element_offset"]) + + ";" + ) + lines.append("") + + # Cell types + total_subcells = len(arrays["sub_element_cell_types"]) + lines.append(f"// Cell types for {table_kind} subcells") + lines.append( + f"constexpr type subcell_type_{table_kind}[{total_subcells}] = " + + _format_cell_type_list(arrays["sub_element_cell_types"]) + + ";" + ) + lines.append("") + + # Subcell vertices (fixed-width 2D array with -1 padding) + max_verts = subcells_data["max_verts_per_subcell"] + padded_verts = subcells_data["padded_vertices"] + + lines.append( + f"// Subcell vertices (max {max_verts} vertices per subcell, -1 padding)" + ) + lines.append(f"// Tokens: <100 = edge id, >=100 = 100+vertex_id") + lines.append( + f"constexpr int subcell_verts_{table_kind}[{total_subcells}][{max_verts}] = " + + _format_matrix(padded_verts) + + ";" + ) + + lines.append("") + lines.append(f"}} // namespace cutcells::cell::{cell_type}") + lines.append("") + lines.append(f"#endif // {guard}") + + path.write_text("\n".join(lines)) + return path + + +def _extract_subcells_from_flat(arrays: Dict[str, List]) -> Dict: + """Extract subcell data from VTK flat format.""" + sub_element = arrays["sub_element"] + num_subcells = len(arrays["sub_element_cell_types"]) + + subcells = [] + idx = 0 + for _ in range(num_subcells): + nverts = sub_element[idx] + verts = sub_element[idx + 1 : idx + 1 + nverts] + subcells.append(verts) + idx += 1 + nverts + + # Find max vertices + max_verts = max(len(v) for v in subcells) if subcells else 0 + + # Pad with -1 + padded = [] + for verts in subcells: + row = list(verts) + [-1] * (max_verts - len(verts)) + padded.append(row) + + return { + "max_verts_per_subcell": max_verts, + "padded_vertices": padded, + } + + +def emit_all_tet_like( + cell_type: str, tables_by_kind: Dict[str, Dict[str, List]], output_dir: Path +) -> List[Path]: + """Emit tables in tetrahedron-like format (fixed-width 2D arrays).""" + written: List[Path] = [] + for kind, arrays in tables_by_kind.items(): + written.append(_emit_tet_like_header(cell_type, kind, arrays, output_dir)) + return written diff --git a/tablegen/cutcells_tablegen/normalize.py b/tablegen/cutcells_tablegen/normalize.py new file mode 100644 index 0000000..2bc1870 --- /dev/null +++ b/tablegen/cutcells_tablegen/normalize.py @@ -0,0 +1,67 @@ +"""Normalize VTK clip tables to CutCells token streams.""" + +from __future__ import annotations + +from typing import Dict, List, Sequence + +from .topology import num_edges +from .vtk_tables_import import ClipCase, PointRef + +# Mapping matches enum order in cpp/src/cell_types.h +CELL_TYPE_TO_ENUM: Dict[str, int] = { + "point": 0, + "interval": 1, + "triangle": 2, + "tetrahedron": 3, + "quadrilateral": 4, + "hexahedron": 5, + "prism": 6, + "pyramid": 7, +} + + +def token_from_ref(ref: PointRef) -> int: + kind, idx = ref + if kind == "V": + return 100 + idx + if kind == "E": + return idx + raise ValueError(f"Unsupported point reference: {ref}") + + +def build_intersected_edges(case: ClipCase, num_edges_in_cell: int) -> List[int]: + flags = [0] * num_edges_in_cell + for e in case.intersected_edges: + if e < 0 or e >= num_edges_in_cell: + raise ValueError(f"Edge id {e} outside range 0..{num_edges_in_cell - 1}") + flags[e] = 1 + return flags + + +def normalize_cases(cell_type: str, cases: Sequence[ClipCase]) -> Dict[str, List]: + n_edges = num_edges(cell_type) + + intersected_edges: List[List[int]] = [] + sub_element_offset: List[int] = [0] + sub_element_cell_types: List[int] = [] + sub_element: List[int] = [] + + for case in cases: + intersected_edges.append(build_intersected_edges(case, n_edges)) + + for emitted in case.cells: + if emitted.cell_type not in CELL_TYPE_TO_ENUM: + raise ValueError(f"Unknown emitted cell type: {emitted.cell_type}") + sub_element_cell_types.append(CELL_TYPE_TO_ENUM[emitted.cell_type]) + sub_element.append(len(emitted.vertices)) + sub_element.extend(token_from_ref(ref) for ref in emitted.vertices) + + sub_element_offset.append(len(sub_element_cell_types)) + + return { + "intersected_edges": intersected_edges, + "sub_element_offset": sub_element_offset, + "sub_element_cell_types": sub_element_cell_types, + "sub_element": sub_element, + "extra_coords": [], # placeholder; fill if Steiner points are added later + } diff --git a/tablegen/cutcells_tablegen/topology.py b/tablegen/cutcells_tablegen/topology.py new file mode 100644 index 0000000..6fd67f5 --- /dev/null +++ b/tablegen/cutcells_tablegen/topology.py @@ -0,0 +1,97 @@ +"""VTK-consistent topology helpers for CutCells table generation.""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import List, Tuple + + +@dataclass(frozen=True) +class CellTopology: + name: str + num_vertices: int + edges: Tuple[Tuple[int, int], ...] + + +# VTK edge numbering (matches cut_tetrahedron conventions already used elsewhere). +CELL_TOPOLOGY = { + "quadrilateral": CellTopology( + name="quadrilateral", + num_vertices=4, + edges=((0, 1), (1, 2), (2, 3), (3, 0)), + ), + "hexahedron": CellTopology( + name="hexahedron", + num_vertices=8, + edges=( + (0, 1), # 0 + (1, 2), # 1 + (2, 3), # 2 + (3, 0), # 3 + (4, 5), # 4 + (5, 6), # 5 + (6, 7), # 6 + (7, 4), # 7 + (0, 4), # 8 + (1, 5), # 9 + (2, 6), # 10 + (3, 7), # 11 + ), + ), + "prism": CellTopology( + name="prism", + num_vertices=6, + edges=( + (0, 1), # 0 + (1, 2), # 1 + (2, 0), # 2 + (3, 4), # 3 + (4, 5), # 4 + (5, 3), # 5 + (0, 3), # 6 + (1, 4), # 7 + (2, 5), # 8 + ), + ), + "pyramid": CellTopology( + name="pyramid", + num_vertices=5, + edges=( + (0, 1), # 0 + (1, 2), # 1 + (2, 3), # 2 + (3, 0), # 3 + (0, 4), # 4 + (1, 4), # 5 + (2, 4), # 6 + (3, 4), # 7 + ), + ), +} + + +def get_topology(cell_type: str) -> CellTopology: + topo = CELL_TOPOLOGY.get(cell_type) + if topo is None: + raise ValueError(f"Unsupported cell type: {cell_type}") + return topo + + +def edge_endpoints(cell_type: str) -> Tuple[Tuple[int, int], ...]: + return get_topology(cell_type).edges + + +def num_vertices(cell_type: str) -> int: + return get_topology(cell_type).num_vertices + + +def num_edges(cell_type: str) -> int: + return len(get_topology(cell_type).edges) + + +def edge_count(cell_type: str) -> int: + return num_edges(cell_type) + + +def supported_cell_types() -> List[str]: + return list(CELL_TOPOLOGY.keys()) diff --git a/tablegen/cutcells_tablegen/vtk_tables_import.py b/tablegen/cutcells_tablegen/vtk_tables_import.py new file mode 100644 index 0000000..bffa0e8 --- /dev/null +++ b/tablegen/cutcells_tablegen/vtk_tables_import.py @@ -0,0 +1,269 @@ +"""Adapters for VTK TableBasedClip tables. + +Populate the stubs with canonical VTK connectivity to regenerate CutCells tables. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import List, Literal, Tuple + +from .topology import edge_endpoints + +PointRef = Tuple[Literal["V", "E"], int] + + +@dataclass(frozen=True) +class EmittedCell: + cell_type: str + vertices: Tuple[PointRef, ...] + + +@dataclass(frozen=True) +class ClipCase: + intersected_edges: Tuple[int, ...] + cells: Tuple[EmittedCell, ...] + + +TableKind = Literal["inside", "outside", "interface"] + + +@dataclass(frozen=True) +class ClipTables: + inside: List[ClipCase] + outside: List[ClipCase] + interface: List[ClipCase] + + +# TODO: replace stubs with actual VTK TableBasedClip data for each cell type. +VTK_TABLES: dict[str, ClipTables] = {} + + +def register_tables(cell_type: str, tables: ClipTables) -> None: + VTK_TABLES[cell_type] = tables + + +def get_tables(cell_type: str) -> ClipTables: + tables = VTK_TABLES.get(cell_type) + if tables is None: + raise NotImplementedError( + f"VTK TableBasedClip data for '{cell_type}' not registered yet" + ) + return tables + + +def get_cases(cell_type: str, table_kind: TableKind) -> List[ClipCase]: + tables = get_tables(cell_type) + if table_kind == "inside": + return tables.inside + if table_kind == "outside": + return tables.outside + if table_kind == "interface": + return tables.interface + raise ValueError(f"Unknown table kind: {table_kind}") + + +def registered_cell_types() -> List[str]: + return list(VTK_TABLES.keys()) + + +# --- Quadrilateral TableBasedClip (marching squares style) ----------------- + + +def _mask_bits(mask: int) -> List[bool]: + return [(mask >> i) & 1 == 1 for i in range(4)] + + +def _intersected_edges(mask: int) -> Tuple[int, ...]: + inside = _mask_bits(mask) + edges = [] + for e, (v0, v1) in enumerate(edge_endpoints("quadrilateral")): + if inside[v0] != inside[v1]: + edges.append(e) + return tuple(edges) + + +def _polygon_for_mask(mask: int) -> List[PointRef]: + inside = _mask_bits(mask) + poly: List[PointRef] = [] + for i in range(4): + if inside[i]: + poly.append(("V", i)) + j = (i + 1) % 4 + if inside[i] != inside[j]: + poly.append(("E", i)) + return poly + + +def _triangulate(poly: List[PointRef]) -> List[EmittedCell]: + if len(poly) < 3: + return [] + if len(poly) == 3: + return [EmittedCell(cell_type="triangle", vertices=tuple(poly))] + if len(poly) == 4: + return [EmittedCell(cell_type="quadrilateral", vertices=tuple(poly))] + # fan triangulation for n>4 + tris: List[EmittedCell] = [] + anchor = poly[0] + for i in range(1, len(poly) - 1): + tris.append( + EmittedCell(cell_type="triangle", vertices=(anchor, poly[i], poly[i + 1])) + ) + return tris + + +def _build_inside_case(mask: int) -> ClipCase: + inside = _mask_bits(mask) + inside_count = sum(inside) + edges = _intersected_edges(mask) + + cells: List[EmittedCell] = [] + + if inside_count == 0: + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + if inside_count == 4: + cells.append( + EmittedCell( + cell_type="quadrilateral", + vertices=(("V", 0), ("V", 1), ("V", 2), ("V", 3)), + ) + ) + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + if inside_count == 3: + # Split pentagon into triangle + quad using diagonal from outside corner to opposite + outside_vertex = next(i for i, flag in enumerate(inside) if not flag) + prev_vertex = (outside_vertex + 3) % 4 + next_vertex = (outside_vertex + 1) % 4 + opp_vertex = (outside_vertex + 2) % 4 + edge_prev = prev_vertex + edge_next = outside_vertex + + cells.append( + EmittedCell( + cell_type="triangle", + vertices=(("E", edge_next), ("V", next_vertex), ("V", opp_vertex)), + ) + ) + cells.append( + EmittedCell( + cell_type="quadrilateral", + vertices=( + ("E", edge_next), + ("V", opp_vertex), + ("V", prev_vertex), + ("E", edge_prev), + ), + ) + ) + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + # Opposite corners: emit two disjoint triangles to avoid ambiguity + if mask == 0b0101: + cells.append( + EmittedCell(cell_type="triangle", vertices=(("V", 0), ("E", 0), ("E", 3))) + ) + cells.append( + EmittedCell(cell_type="triangle", vertices=(("V", 2), ("E", 1), ("E", 2))) + ) + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + if mask == 0b1010: + cells.append( + EmittedCell(cell_type="triangle", vertices=(("V", 1), ("E", 1), ("E", 0))) + ) + cells.append( + EmittedCell(cell_type="triangle", vertices=(("V", 3), ("E", 3), ("E", 2))) + ) + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + poly = _polygon_for_mask(mask) + cells.extend(_triangulate(poly)) + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + +def _build_outside_case(mask: int) -> ClipCase: + # Ambiguous opposite-corner cases: emit outside as two quads (hex split) + if mask == 0b0101: + # inside corners: v0, v2; outside polygon (hex) order: V1, E1, E2, V3, E3, E0 + cells = ( + EmittedCell( + cell_type="quadrilateral", + vertices=(("V", 1), ("E", 1), ("E", 2), ("V", 3)), + ), + EmittedCell( + cell_type="quadrilateral", + vertices=(("V", 3), ("E", 3), ("E", 0), ("V", 1)), + ), + ) + return ClipCase(intersected_edges=_intersected_edges(mask), cells=cells) + + if mask == 0b1010: + # inside corners: v1, v3; outside hex order: V0, E0, E1, V2, E2, E3 + cells = ( + EmittedCell( + cell_type="quadrilateral", + vertices=(("V", 0), ("E", 0), ("E", 1), ("V", 2)), + ), + EmittedCell( + cell_type="quadrilateral", + vertices=(("V", 2), ("E", 2), ("E", 3), ("V", 0)), + ), + ) + return ClipCase(intersected_edges=_intersected_edges(mask), cells=cells) + + # For general cases, use phi>0 polygon (complement of inside mask). + # Invert the mask to get the outside region + return _build_inside_case(mask ^ 0b1111) + + +def _build_interface_case(mask: int) -> ClipCase: + edges = _intersected_edges(mask) + cells: List[EmittedCell] = [] + + if len(edges) == 0: + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + # Opposite corners -> two disjoint segments + if mask == 0b0101: + cells.append(EmittedCell(cell_type="interval", vertices=(("E", 0), ("E", 3)))) + cells.append(EmittedCell(cell_type="interval", vertices=(("E", 1), ("E", 2)))) + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + if mask == 0b1010: + cells.append(EmittedCell(cell_type="interval", vertices=(("E", 0), ("E", 1)))) + cells.append(EmittedCell(cell_type="interval", vertices=(("E", 2), ("E", 3)))) + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + # All other cases: single segment connecting the two intersection edges in order + if len(edges) == 2: + cells.append( + EmittedCell( + cell_type="interval", vertices=(("E", edges[0]), ("E", edges[1])) + ) + ) + else: + # Should not happen for marching squares, fallback to empty + cells = [] + + return ClipCase(intersected_edges=edges, cells=tuple(cells)) + + +def _build_quadrilateral_tables() -> ClipTables: + inside_cases: List[ClipCase] = [] + outside_cases: List[ClipCase] = [] + interface_cases: List[ClipCase] = [] + + for mask in range(16): + inside_cases.append(_build_inside_case(mask)) + outside_cases.append(_build_outside_case(mask)) + interface_cases.append(_build_interface_case(mask)) + + return ClipTables( + inside=inside_cases, outside=outside_cases, interface=interface_cases + ) + + +# Register quad tables eagerly +register_tables("quadrilateral", _build_quadrilateral_tables()) diff --git a/tablegen/scripts/gen_tables.py b/tablegen/scripts/gen_tables.py new file mode 100644 index 0000000..1c74873 --- /dev/null +++ b/tablegen/scripts/gen_tables.py @@ -0,0 +1,58 @@ +"""Generate CutCells clip tables (tetrahedron-like format). + +Usage: + conda activate fenicsx-dev + python tablegen/scripts/gen_tables.py --cell-type quadrilateral + +Generates tables in tet-like format (fixed-width 2D arrays with -1 padding) +instead of VTK's variable-length format. +Default output: cpp/src/generated/ +""" + +from __future__ import annotations + +import argparse +from pathlib import Path + +from cutcells_tablegen.emit_c_headers import emit_all_tet_like +from cutcells_tablegen.normalize import normalize_cases +from cutcells_tablegen.vtk_tables_import import get_cases, registered_cell_types + + +def generate_for_cell(cell_type: str, out_dir: Path) -> None: + tables = {} + for kind in ("inside", "outside", "interface"): + cases = get_cases(cell_type, kind) + tables[kind] = normalize_cases(cell_type, cases) + emit_all_tet_like(cell_type, tables, out_dir) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Generate CutCells clip tables (tet-like format)" + ) + available = registered_cell_types() + parser.add_argument( + "--cell-type", + choices=available, + nargs="*", + default=available, + help="Cell types to generate", + ) + parser.add_argument( + "--out", + type=Path, + default=Path("cpp/src/generated"), + help="Output directory for generated headers", + ) + return parser.parse_args() + + +def main() -> None: + args = parse_args() + for cell_type in args.cell_type: + generate_for_cell(cell_type, args.out) + + +if __name__ == "__main__": + main() From 549ed2c8b3bfa9ecd518c5f05859519ef8e11397 Mon Sep 17 00:00:00 2001 From: Susanne Claus Date: Mon, 22 Dec 2025 22:03:02 +0100 Subject: [PATCH 2/7] add hex, pyramid and wedge --- cpp/src/CMakeLists.txt | 4 + cpp/src/cut_cell.cpp | 12 +- cpp/src/cut_hexahedron.cpp | 293 ++- cpp/src/cut_prism.cpp | 336 +++ cpp/src/cut_prism.h | 27 + cpp/src/cut_pyramid.cpp | 337 +++ cpp/src/cut_pyramid.h | 27 + cpp/src/cut_quadrilateral.cpp | 107 +- .../generated/cut_hexahedron_inside_tables.h | 1851 +++++++++++++++++ .../cut_hexahedron_interface_tables.h | 1031 +++++++++ .../generated/cut_hexahedron_outside_tables.h | 1578 ++++++++++++++ cpp/src/generated/cut_prism_inside_tables.h | 340 +++ .../generated/cut_prism_interface_tables.h | 181 ++ cpp/src/generated/cut_prism_outside_tables.h | 272 +++ cpp/src/generated/cut_pyramid_inside_tables.h | 132 ++ .../generated/cut_pyramid_interface_tables.h | 66 + .../generated/cut_pyramid_outside_tables.h | 96 + .../cut_quadrilateral_inside_tables.h | 18 +- .../cut_quadrilateral_interface_tables.h | 3 + .../cut_quadrilateral_outside_tables.h | 13 +- python/CMakeLists.txt | 31 +- python/cutcells/wrapper.cpp | 8 +- .../cut_hexahedron_cases_subplots.py | 221 ++ .../demo/cut_hexahedron/cut_hexahedron_n0.py | 118 ++ python/demo/cut_prism/cut_prism_n0.py | 124 ++ python/demo/cut_pyramid/cut_pyramid_n0.py | 128 ++ .../cut_quadrilateral/cut_quadrilateral.py | 94 + python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py | 119 ++ python/demo/cut_vtk_mesh/cut_mesh_3D.py | 161 +- .../cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py | 164 ++ python/demo/plot_quadrilateral_cases.py | 219 +- python/popcorn_hex_mesh3D.png | Bin 0 -> 475994 bytes .../test_cut_vtk_mesh_hexahedron_smoke.py | 11 +- python/tests/test_cut_vtk_mesh_prism_smoke.py | 51 + .../tests/test_cut_vtk_mesh_pyramid_smoke.py | 50 + python/tests/test_hex_classify.py | 7 + python/tests/test_hex_emit.py | 11 +- python/tests/test_hex_polyhedron_export.py | 7 + python/tests/test_hex_variant.py | 12 +- python/tests/test_hexahedron_special_point.py | 65 + python/tests/test_prism_special_point.py | 61 + python/tests/test_pyramid_special_point.py | 65 + python/tests/test_quadrilateral_ambiguity.py | 135 ++ python/tests/test_single_corner.py | 7 + python/tests/test_single_corner_basic.py | 8 + python/tests/test_tables_cli.py | 16 +- tablegen/cutcells_tablegen/emit_c_headers.py | 209 +- tablegen/cutcells_tablegen/normalize.py | 30 +- tablegen/cutcells_tablegen/topology.py | 6 +- .../vtk_tablebasedclip_parser.py | 268 +++ .../cutcells_tablegen/vtk_tables_import.py | 389 +++- tablegen/scripts/gen_tables.py | 6 + 52 files changed, 9365 insertions(+), 160 deletions(-) create mode 100644 cpp/src/cut_prism.cpp create mode 100644 cpp/src/cut_prism.h create mode 100644 cpp/src/cut_pyramid.cpp create mode 100644 cpp/src/cut_pyramid.h create mode 100644 cpp/src/generated/cut_hexahedron_inside_tables.h create mode 100644 cpp/src/generated/cut_hexahedron_interface_tables.h create mode 100644 cpp/src/generated/cut_hexahedron_outside_tables.h create mode 100644 cpp/src/generated/cut_prism_inside_tables.h create mode 100644 cpp/src/generated/cut_prism_interface_tables.h create mode 100644 cpp/src/generated/cut_prism_outside_tables.h create mode 100644 cpp/src/generated/cut_pyramid_inside_tables.h create mode 100644 cpp/src/generated/cut_pyramid_interface_tables.h create mode 100644 cpp/src/generated/cut_pyramid_outside_tables.h create mode 100644 python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py create mode 100644 python/demo/cut_hexahedron/cut_hexahedron_n0.py create mode 100644 python/demo/cut_prism/cut_prism_n0.py create mode 100644 python/demo/cut_pyramid/cut_pyramid_n0.py create mode 100644 python/demo/cut_quadrilateral/cut_quadrilateral.py create mode 100644 python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py create mode 100644 python/demo/cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py create mode 100644 python/popcorn_hex_mesh3D.png create mode 100644 python/tests/test_cut_vtk_mesh_prism_smoke.py create mode 100644 python/tests/test_cut_vtk_mesh_pyramid_smoke.py create mode 100644 python/tests/test_hexahedron_special_point.py create mode 100644 python/tests/test_prism_special_point.py create mode 100644 python/tests/test_pyramid_special_point.py create mode 100644 python/tests/test_quadrilateral_ambiguity.py create mode 100644 tablegen/cutcells_tablegen/vtk_tablebasedclip_parser.py diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index ff3a898..0a8ab3a 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -22,6 +22,8 @@ set(HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/cut_interval.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_quadrilateral.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_hexahedron.h + ${CMAKE_CURRENT_SOURCE_DIR}/cut_prism.h + ${CMAKE_CURRENT_SOURCE_DIR}/cut_pyramid.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_tetrahedron.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_context.h ${CMAKE_CURRENT_SOURCE_DIR}/triangulation.h @@ -38,6 +40,8 @@ target_sources(cutcells PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/cut_triangle.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_quadrilateral.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_hexahedron.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cut_prism.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/cut_pyramid.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_tetrahedron.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_context.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_cell.cpp diff --git a/cpp/src/cut_cell.cpp b/cpp/src/cut_cell.cpp index a1fc888..01ba9de 100644 --- a/cpp/src/cut_cell.cpp +++ b/cpp/src/cut_cell.cpp @@ -9,6 +9,8 @@ #include "cut_triangle.h" #include "cut_quadrilateral.h" #include "cut_hexahedron.h" +#include "cut_prism.h" +#include "cut_pyramid.h" #include "cut_interval.h" #include "cell_flags.h" #include "cell_subdivision.h" @@ -135,9 +137,13 @@ namespace cutcells::cell{ break; case type::tetrahedron: tetrahedron::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); break; - case type::hexahedron: hexahedron::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); - break; - default: throw std::invalid_argument("Only intervals, triangles, quadrilaterals, tetrahedra and hexahedra are implemented for cutting so far."); + case type::hexahedron: hexahedron::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); + break; + case type::prism: prism::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); + break; + case type::pyramid: pyramid::cut(vertex_coordinates, gdim, ls_values, cut_type_str, cut_cell, triangulate); + break; + default: throw std::invalid_argument("Only intervals, triangles, quadrilaterals, tetrahedra, hexahedra, prisms and pyramids are implemented for cutting so far."); break; } } diff --git a/cpp/src/cut_hexahedron.cpp b/cpp/src/cut_hexahedron.cpp index 8291dac..8ba5c20 100644 --- a/cpp/src/cut_hexahedron.cpp +++ b/cpp/src/cut_hexahedron.cpp @@ -6,32 +6,229 @@ #include "cut_hexahedron.h" -#include "cell_types.h" +#include "cell_flags.h" #include "cut_cell.h" +#include "cut_interval.h" +#include "generated/cut_hexahedron_inside_tables.h" +#include "generated/cut_hexahedron_interface_tables.h" +#include "generated/cut_hexahedron_outside_tables.h" +#include "utils.h" #include #include #include +#include #include namespace cutcells::cell::hexahedron { namespace { - // Minimal fallback: subdivide the VTK-ordered hexahedron into tetrahedra. - // VTK vertex numbering (from cell_topology.h): - // 0:(0,0,0) 1:(1,0,0) 2:(1,1,0) 3:(0,1,0) 4:(0,0,1) 5:(1,0,1) 6:(1,1,1) 7:(0,1,1) - // - // Decomposition using the body diagonal (0-6), yielding 6 tets: - // (0,1,2,6), (0,2,3,6), (0,3,7,6), (0,7,4,6), (0,4,5,6), (0,5,1,6) - inline constexpr std::array, 6> hex_to_tets = {{ - {0, 1, 2, 6}, - {0, 2, 3, 6}, - {0, 3, 7, 6}, - {0, 7, 4, 6}, - {0, 4, 5, 6}, - {0, 5, 1, 6}, - }}; + [[noreturn]] void throw_missing_token(const int flag, const int token, const char* where) + { + throw std::runtime_error(std::string(where) + ": missing token=" + std::to_string(token) + + " for flag=" + std::to_string(flag)); + } + + int lookup_token_or_throw(const std::unordered_map& vertex_case_map, + const int flag, + const int token, + const char* where) + { + const auto it = vertex_case_map.find(token); + if (it == vertex_case_map.end()) + throw_missing_token(flag, token, where); + return it->second; + } + + template + void compute_intersection_points(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const int flag, + std::vector& intersection_points, + std::unordered_map& vertex_case_map) + { + intersection_points.clear(); + vertex_case_map.clear(); + + std::vector v0(gdim); + std::vector v1(gdim); + std::vector ip(gdim); + + int ip_index = 0; + for (int e = 0; e < 12; ++e) + { + if (intersected_edges[flag][e] == 0) + continue; + + const int v0_id = edges[e][0]; + const int v1_id = edges[e][1]; + + for (int j = 0; j < gdim; ++j) + { + v0[j] = vertex_coordinates[v0_id * gdim + j]; + v1[j] = vertex_coordinates[v1_id * gdim + j]; + } + + const T ls0 = ls_values[v0_id]; + const T ls1 = ls_values[v1_id]; + + interval::compute_intersection_point(0.0, v0, v1, ls0, ls1, ip); + + for (int j = 0; j < gdim; ++j) + intersection_points.push_back(ip[j]); + + vertex_case_map[e] = ip_index; + ++ip_index; + } + } + + template + void ensure_vertex_token(const std::span vertex_coordinates, const int gdim, + const int token, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + if (vertex_case_map.find(token) != vertex_case_map.end()) + return; + + const int vid = token - 100; + const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); + vertex_case_map[token] = local_idx; + cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = vertex_coordinates[vid * gdim + j]; + } + + template + void ensure_special_token(const std::span vertex_coordinates, const int gdim, + const int flag, const int token, + const int* special_point_count, + const int* special_point_offset, + const int* special_point_data, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + if (vertex_case_map.find(token) != vertex_case_map.end()) + return; + + const int sp_id = token - 200; + const int count = special_point_count[flag]; + if (sp_id < 0 || sp_id >= count) + throw std::runtime_error("Invalid special point id in table"); + + int idx = special_point_offset[flag]; + for (int sid = 0; sid < sp_id; ++sid) + { + const int nrefs = special_point_data[idx++]; + idx += nrefs; + } + + const int nrefs = special_point_data[idx++]; + if (nrefs <= 0) + throw std::runtime_error("Malformed special point definition"); + + std::vector coord(gdim, T(0)); + for (int r = 0; r < nrefs; ++r) + { + const int ref = special_point_data[idx++]; + + if (ref < 100) + { + // Edge intersection point (already stored in cut_cell at index vertex_case_map[edge_id]) + const int local = lookup_token_or_throw(vertex_case_map, flag, ref, "ensure_special_token(ref<100)"); + for (int j = 0; j < gdim; ++j) + coord[j] += cut_cell._vertex_coords[local * gdim + j]; + } + else if (ref < 200) + { + // Original vertex (not necessarily added yet) + const int vid = ref - 100; + for (int j = 0; j < gdim; ++j) + coord[j] += vertex_coordinates[vid * gdim + j]; + } + else + { + // Special point reference (rare): ensure and reuse + ensure_special_token(vertex_coordinates, gdim, flag, ref, + special_point_count, special_point_offset, special_point_data, + cut_cell, vertex_case_map); + const int local = lookup_token_or_throw(vertex_case_map, flag, ref, "ensure_special_token(ref>=200)"); + for (int j = 0; j < gdim; ++j) + coord[j] += cut_cell._vertex_coords[local * gdim + j]; + } + } + + for (int j = 0; j < gdim; ++j) + coord[j] /= static_cast(nrefs); + + const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); + vertex_case_map[token] = local_idx; + cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = coord[j]; + } + + template + void decode_case(const std::span vertex_coordinates, const int gdim, + const int flag, + const int* case_offsets, + const type* cell_types, + const int (*subcell_verts)[MaxVerts], + const int* special_point_count, + const int* special_point_offset, + const int* special_point_data, + bool triangulate, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + const int cell_begin = case_offsets[flag]; + const int cell_end = case_offsets[flag + 1]; + + for (int cell_idx = cell_begin; cell_idx < cell_end; ++cell_idx) + { + const type sub_type = cell_types[cell_idx]; + const int* verts = subcell_verts[cell_idx]; + + std::vector verts_local; + verts_local.reserve(MaxVerts); + for (int i = 0; i < MaxVerts; ++i) + { + const int token = verts[i]; + if (token == -1) + break; + + if (token < 100) + { + // Edge intersection token: already present + } + else if (token < 200) + { + ensure_vertex_token(vertex_coordinates, gdim, token, cut_cell, vertex_case_map); + } + else + { + ensure_special_token(vertex_coordinates, gdim, flag, token, + special_point_count, special_point_offset, special_point_data, + cut_cell, vertex_case_map); + } + + verts_local.push_back(lookup_token_or_throw(vertex_case_map, flag, token, "decode_case")); + } + + if (triangulate && sub_type == type::quadrilateral && verts_local.size() == 4) + { + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back({verts_local[0], verts_local[1], verts_local[2]}); + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back({verts_local[0], verts_local[2], verts_local[3]}); + } + else + { + cut_cell._types.push_back(sub_type); + cut_cell._connectivity.push_back(std::move(verts_local)); + } + } + } } template @@ -44,23 +241,65 @@ namespace cutcells::cell::hexahedron if (ls_values.size() != 8) throw std::invalid_argument("hexahedron::cut expects 8 level set values"); - CutCell tet_mesh; - tet_mesh._gdim = gdim; - tet_mesh._tdim = 3; - tet_mesh._vertex_coords.assign(vertex_coordinates.begin(), vertex_coordinates.end()); + // CutCells convention: case mask bit i is set when phi_i < 0. + const int flag_lt0 = get_entity_flag(ls_values, false); + if (flag_lt0 == 0 || flag_lt0 == 255) + { + throw std::invalid_argument("hexahedron is not intersected and therefore cannot be cut"); + } + + // Store parent geometry + cut_cell._parent_cell_type = type::hexahedron; + cut_cell._parent_vertex_coords.resize(8 * gdim); + cut_cell._parent_vertex_ids.resize(8); + for (int i = 0; i < 8; ++i) + { + for (int j = 0; j < gdim; ++j) + cut_cell._parent_vertex_coords[i * gdim + j] = vertex_coordinates[i * gdim + j]; + cut_cell._parent_vertex_ids[i] = i; + } + + // Compute intersections (shared for all parts) + std::vector intersection_points; + std::unordered_map vertex_case_map; + compute_intersection_points(vertex_coordinates, gdim, ls_values, flag_lt0, + intersection_points, vertex_case_map); - tet_mesh._connectivity.resize(hex_to_tets.size()); - tet_mesh._types.resize(hex_to_tets.size(), type::tetrahedron); + cut_cell._gdim = gdim; + cut_cell._vertex_coords = std::move(intersection_points); + cut_cell._types.clear(); + cut_cell._connectivity.clear(); - for (std::size_t i = 0; i < hex_to_tets.size(); ++i) + if (cut_type_str == "phi=0") + { + cut_cell._tdim = 2; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_interface, subcell_type_interface, subcell_verts_interface, + special_point_count_interface, special_point_offset_interface, special_point_data_interface, + triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi<0") + { + cut_cell._tdim = 3; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_inside, subcell_type_inside, subcell_verts_inside, + special_point_count_inside, special_point_offset_inside, special_point_data_inside, + triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi>0") + { + cut_cell._tdim = 3; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_outside, subcell_type_outside, subcell_verts_outside, + special_point_count_outside, special_point_offset_outside, special_point_data_outside, + triangulate, cut_cell, vertex_case_map); + } + else { - tet_mesh._connectivity[i] = {hex_to_tets[i][0], hex_to_tets[i][1], hex_to_tets[i][2], hex_to_tets[i][3]}; + throw std::invalid_argument("cutting type unknown"); } - // Reuse existing per-tet cutting + merge pipeline. - // This is a correctness-first fallback until table-driven hex clipping is implemented. - cutcells::cell::recursive_cut(tet_mesh, ls_values, cut_type_str, triangulate); - cut_cell = std::move(tet_mesh); + cutcells::utils::create_vertex_parent_entity_map(vertex_case_map, cut_cell._vertex_parent_entity); } template diff --git a/cpp/src/cut_prism.cpp b/cpp/src/cut_prism.cpp new file mode 100644 index 0000000..acc9faf --- /dev/null +++ b/cpp/src/cut_prism.cpp @@ -0,0 +1,336 @@ +// Copyright (c) 2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT + +#include "cut_prism.h" + +#include "cell_flags.h" +#include "cut_cell.h" +#include "cut_interval.h" +#include "generated/cut_prism_inside_tables.h" +#include "generated/cut_prism_interface_tables.h" +#include "generated/cut_prism_outside_tables.h" +#include "utils.h" + +#include +#include +#include +#include +#include + +namespace cutcells::cell::prism +{ + namespace + { + // VTK_WEDGE / CutCells prism vertex ordering assumed: + // bottom tri: 0,1,2 ; top tri: 3,4,5. + // Edge ids must match the VTK TableBasedClip case stream. + constexpr int edges[9][2] = { + {0, 1}, {1, 2}, {2, 0}, // bottom triangle + {3, 4}, {4, 5}, {5, 3}, // top triangle + {0, 3}, {1, 4}, {2, 5} // vertical edges + }; + + [[noreturn]] void throw_missing_token(const int flag, const int token, const char* where) + { + throw std::runtime_error(std::string(where) + ": missing token=" + std::to_string(token) + + " for flag=" + std::to_string(flag)); + } + + int lookup_token_or_throw(const std::unordered_map& vertex_case_map, + const int flag, + const int token, + const char* where) + { + const auto it = vertex_case_map.find(token); + if (it == vertex_case_map.end()) + throw_missing_token(flag, token, where); + return it->second; + } + + template + void compute_intersection_points(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const int flag, + std::vector& intersection_points, + std::unordered_map& vertex_case_map) + { + intersection_points.clear(); + vertex_case_map.clear(); + + std::vector v0(gdim); + std::vector v1(gdim); + std::vector ip(gdim); + + int ip_index = 0; + for (int e = 0; e < 9; ++e) + { + if (intersected_edges[flag][e] == 0) + continue; + + const int v0_id = edges[e][0]; + const int v1_id = edges[e][1]; + + for (int j = 0; j < gdim; ++j) + { + v0[j] = vertex_coordinates[v0_id * gdim + j]; + v1[j] = vertex_coordinates[v1_id * gdim + j]; + } + + const T ls0 = ls_values[v0_id]; + const T ls1 = ls_values[v1_id]; + + interval::compute_intersection_point(0.0, v0, v1, ls0, ls1, ip); + + for (int j = 0; j < gdim; ++j) + intersection_points.push_back(ip[j]); + + vertex_case_map[e] = ip_index; + ++ip_index; + } + } + + template + void ensure_vertex_token(const std::span vertex_coordinates, const int gdim, + const int token, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + if (vertex_case_map.find(token) != vertex_case_map.end()) + return; + + const int vid = token - 100; + const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); + vertex_case_map[token] = local_idx; + cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = vertex_coordinates[vid * gdim + j]; + } + + template + void ensure_special_token(const std::span vertex_coordinates, const int gdim, + const int flag, const int token, + const int* special_point_count, + const int* special_point_offset, + const int* special_point_data, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + if (vertex_case_map.find(token) != vertex_case_map.end()) + return; + + const int sp_id = token - 200; + const int count = special_point_count[flag]; + if (sp_id < 0 || sp_id >= count) + throw std::runtime_error("Invalid special point id in table"); + + int idx = special_point_offset[flag]; + for (int sid = 0; sid < sp_id; ++sid) + { + const int nrefs = special_point_data[idx++]; + idx += nrefs; + } + + const int nrefs = special_point_data[idx++]; + if (nrefs <= 0) + throw std::runtime_error("Malformed special point definition"); + + std::vector coord(gdim, T(0)); + for (int r = 0; r < nrefs; ++r) + { + const int ref = special_point_data[idx++]; + + if (ref < 100) + { + const int local = lookup_token_or_throw(vertex_case_map, flag, ref, + "ensure_special_token(ref<100)"); + for (int j = 0; j < gdim; ++j) + coord[j] += cut_cell._vertex_coords[local * gdim + j]; + } + else if (ref < 200) + { + const int vid = ref - 100; + for (int j = 0; j < gdim; ++j) + coord[j] += vertex_coordinates[vid * gdim + j]; + } + else + { + ensure_special_token(vertex_coordinates, gdim, flag, ref, + special_point_count, special_point_offset, special_point_data, + cut_cell, vertex_case_map); + const int local = lookup_token_or_throw(vertex_case_map, flag, ref, + "ensure_special_token(ref>=200)"); + for (int j = 0; j < gdim; ++j) + coord[j] += cut_cell._vertex_coords[local * gdim + j]; + } + } + + for (int j = 0; j < gdim; ++j) + coord[j] /= static_cast(nrefs); + + const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); + vertex_case_map[token] = local_idx; + cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = coord[j]; + } + + template + void decode_case(const std::span vertex_coordinates, const int gdim, + const int flag, + const int* case_offsets, + const type* cell_types, + const int (*subcell_verts)[MaxVerts], + const int* special_point_count, + const int* special_point_offset, + const int* special_point_data, + bool triangulate, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + const int cell_begin = case_offsets[flag]; + const int cell_end = case_offsets[flag + 1]; + + for (int cell_idx = cell_begin; cell_idx < cell_end; ++cell_idx) + { + const type sub_type = cell_types[cell_idx]; + const int* verts = subcell_verts[cell_idx]; + + std::vector verts_local; + verts_local.reserve(MaxVerts); + for (int i = 0; i < MaxVerts; ++i) + { + const int token = verts[i]; + if (token == -1) + break; + + if (token < 100) + { + // Edge intersection token: already present + } + else if (token < 200) + { + ensure_vertex_token(vertex_coordinates, gdim, token, cut_cell, vertex_case_map); + } + else + { + ensure_special_token(vertex_coordinates, gdim, flag, token, + special_point_count, special_point_offset, special_point_data, + cut_cell, vertex_case_map); + } + + verts_local.push_back(lookup_token_or_throw(vertex_case_map, flag, token, "decode_case")); + } + + if (triangulate && sub_type == type::quadrilateral && verts_local.size() == 4) + { + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back({verts_local[0], verts_local[1], verts_local[2]}); + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back({verts_local[0], verts_local[2], verts_local[3]}); + } + else + { + cut_cell._types.push_back(sub_type); + cut_cell._connectivity.push_back(std::move(verts_local)); + } + } + } + } + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate) + { + if (vertex_coordinates.size() != static_cast(6 * gdim)) + throw std::invalid_argument("prism::cut expects 6 vertices"); + if (ls_values.size() != 6) + throw std::invalid_argument("prism::cut expects 6 level set values"); + + // CutCells convention: case mask bit i is set when phi_i < 0. + const int flag_lt0 = get_entity_flag(ls_values, false); + if (flag_lt0 == 0 || flag_lt0 == 63) + throw std::invalid_argument("prism is not intersected and therefore cannot be cut"); + + // Store parent geometry + cut_cell._parent_cell_type = type::prism; + cut_cell._parent_vertex_coords.resize(6 * gdim); + cut_cell._parent_vertex_ids.resize(6); + for (int i = 0; i < 6; ++i) + { + for (int j = 0; j < gdim; ++j) + cut_cell._parent_vertex_coords[i * gdim + j] = vertex_coordinates[i * gdim + j]; + cut_cell._parent_vertex_ids[i] = i; + } + + // Compute intersections (shared for all parts) + std::vector intersection_points; + std::unordered_map vertex_case_map; + compute_intersection_points(vertex_coordinates, gdim, ls_values, flag_lt0, + intersection_points, vertex_case_map); + + cut_cell._gdim = gdim; + cut_cell._vertex_coords = std::move(intersection_points); + cut_cell._types.clear(); + cut_cell._connectivity.clear(); + + if (cut_type_str == "phi=0") + { + cut_cell._tdim = 2; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_interface, subcell_type_interface, subcell_verts_interface, + special_point_count_interface, special_point_offset_interface, special_point_data_interface, + triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi<0") + { + cut_cell._tdim = 3; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_inside, subcell_type_inside, subcell_verts_inside, + special_point_count_inside, special_point_offset_inside, special_point_data_inside, + triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi>0") + { + cut_cell._tdim = 3; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_outside, subcell_type_outside, subcell_verts_outside, + special_point_count_outside, special_point_offset_outside, special_point_data_outside, + triangulate, cut_cell, vertex_case_map); + } + else + { + throw std::invalid_argument("cutting type unknown"); + } + + cutcells::utils::create_vertex_parent_entity_map(vertex_case_map, cut_cell._vertex_parent_entity); + } + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate) + { + cut_cell.resize(cut_type_str.size()); + for (std::size_t i = 0; i < cut_type_str.size(); ++i) + cut(vertex_coordinates, gdim, ls_values, cut_type_str[i], cut_cell[i], triangulate); + } + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); +} diff --git a/cpp/src/cut_prism.h b/cpp/src/cut_prism.h new file mode 100644 index 0000000..4b2201c --- /dev/null +++ b/cpp/src/cut_prism.h @@ -0,0 +1,27 @@ +// Copyright (c) 2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT +#pragma once + +#include "cell_types.h" +#include "cut_cell.h" + +#include +#include +#include +#include + +namespace cutcells::cell::prism +{ + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate = false); + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate = false); +} diff --git a/cpp/src/cut_pyramid.cpp b/cpp/src/cut_pyramid.cpp new file mode 100644 index 0000000..3907a93 --- /dev/null +++ b/cpp/src/cut_pyramid.cpp @@ -0,0 +1,337 @@ +// Copyright (c) 2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT + +#include "cut_pyramid.h" + +#include "cell_flags.h" +#include "cut_cell.h" +#include "cut_interval.h" +#include "generated/cut_pyramid_inside_tables.h" +#include "generated/cut_pyramid_interface_tables.h" +#include "generated/cut_pyramid_outside_tables.h" +#include "utils.h" + +#include +#include +#include +#include + +namespace cutcells::cell::pyramid +{ + namespace + { + // VTK_PYRAMID vertex ordering assumed: + // base quad: 0,1,2,3 and apex: 4. + // Edge ids must match the VTK TableBasedClip case stream. + constexpr int edges[8][2] = { + {0, 1}, {1, 2}, {2, 3}, {3, 0}, // base + {0, 4}, {1, 4}, {2, 4}, {3, 4} // sides + }; + + [[noreturn]] void throw_missing_token(const int flag, const int token, const char* where) + { + throw std::runtime_error(std::string(where) + ": missing token=" + std::to_string(token) + + " for flag=" + std::to_string(flag)); + } + + int lookup_token_or_throw(const std::unordered_map& vertex_case_map, + const int flag, + const int token, + const char* where) + { + const auto it = vertex_case_map.find(token); + if (it == vertex_case_map.end()) + throw_missing_token(flag, token, where); + return it->second; + } + + template + void compute_intersection_points(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const int flag, + std::vector& intersection_points, + std::unordered_map& vertex_case_map) + { + intersection_points.clear(); + vertex_case_map.clear(); + + std::vector v0(gdim); + std::vector v1(gdim); + std::vector ip(gdim); + + int ip_index = 0; + for (int e = 0; e < 8; ++e) + { + if (intersected_edges[flag][e] == 0) + continue; + + const int v0_id = edges[e][0]; + const int v1_id = edges[e][1]; + + for (int j = 0; j < gdim; ++j) + { + v0[j] = vertex_coordinates[v0_id * gdim + j]; + v1[j] = vertex_coordinates[v1_id * gdim + j]; + } + + const T ls0 = ls_values[v0_id]; + const T ls1 = ls_values[v1_id]; + + interval::compute_intersection_point(0.0, v0, v1, ls0, ls1, ip); + + for (int j = 0; j < gdim; ++j) + intersection_points.push_back(ip[j]); + + vertex_case_map[e] = ip_index; + ++ip_index; + } + } + + template + void ensure_vertex_token(const std::span vertex_coordinates, const int gdim, + const int token, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + if (vertex_case_map.find(token) != vertex_case_map.end()) + return; + + const int vid = token - 100; + const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); + vertex_case_map[token] = local_idx; + cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = vertex_coordinates[vid * gdim + j]; + } + + template + void ensure_special_token(const std::span vertex_coordinates, const int gdim, + const int flag, const int token, + const int* special_point_count, + const int* special_point_offset, + const int* special_point_data, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + if (vertex_case_map.find(token) != vertex_case_map.end()) + return; + + if (special_point_count == nullptr || special_point_offset == nullptr || special_point_data == nullptr) + throw std::runtime_error("Special points referenced but not available for this table"); + + const int sp_id = token - 200; + const int count = special_point_count[flag]; + if (sp_id < 0 || sp_id >= count) + throw std::runtime_error("Invalid special point id in table"); + + int idx = special_point_offset[flag]; + for (int sid = 0; sid < sp_id; ++sid) + { + const int nrefs = special_point_data[idx++]; + idx += nrefs; + } + + const int nrefs = special_point_data[idx++]; + if (nrefs <= 0) + throw std::runtime_error("Malformed special point definition"); + + std::vector coord(gdim, T(0)); + for (int r = 0; r < nrefs; ++r) + { + const int ref = special_point_data[idx++]; + + if (ref < 100) + { + const int local = lookup_token_or_throw(vertex_case_map, flag, ref, + "ensure_special_token(ref<100)"); + for (int j = 0; j < gdim; ++j) + coord[j] += cut_cell._vertex_coords[local * gdim + j]; + } + else if (ref < 200) + { + const int vid = ref - 100; + for (int j = 0; j < gdim; ++j) + coord[j] += vertex_coordinates[vid * gdim + j]; + } + else + { + ensure_special_token(vertex_coordinates, gdim, flag, ref, + special_point_count, special_point_offset, special_point_data, + cut_cell, vertex_case_map); + const int local = lookup_token_or_throw(vertex_case_map, flag, ref, + "ensure_special_token(ref>=200)"); + for (int j = 0; j < gdim; ++j) + coord[j] += cut_cell._vertex_coords[local * gdim + j]; + } + } + + for (int j = 0; j < gdim; ++j) + coord[j] /= static_cast(nrefs); + + const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); + vertex_case_map[token] = local_idx; + cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); + for (int j = 0; j < gdim; ++j) + cut_cell._vertex_coords[local_idx * gdim + j] = coord[j]; + } + + template + void decode_case(const std::span vertex_coordinates, const int gdim, + const int flag, + const int* case_offsets, + const type* cell_types, + const int (*subcell_verts)[MaxVerts], + const int* special_point_count, + const int* special_point_offset, + const int* special_point_data, + bool triangulate, + CutCell& cut_cell, + std::unordered_map& vertex_case_map) + { + const int cell_begin = case_offsets[flag]; + const int cell_end = case_offsets[flag + 1]; + + for (int cell_idx = cell_begin; cell_idx < cell_end; ++cell_idx) + { + const type sub_type = cell_types[cell_idx]; + const int* verts = subcell_verts[cell_idx]; + + std::vector verts_local; + verts_local.reserve(MaxVerts); + for (int i = 0; i < MaxVerts; ++i) + { + const int token = verts[i]; + if (token == -1) + break; + + if (token < 100) + { + // Edge intersection token: already present + } + else if (token < 200) + { + ensure_vertex_token(vertex_coordinates, gdim, token, cut_cell, vertex_case_map); + } + else + { + ensure_special_token(vertex_coordinates, gdim, flag, token, + special_point_count, special_point_offset, special_point_data, + cut_cell, vertex_case_map); + } + + verts_local.push_back(lookup_token_or_throw(vertex_case_map, flag, token, "decode_case")); + } + + if (triangulate && sub_type == type::quadrilateral && verts_local.size() == 4) + { + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back({verts_local[0], verts_local[1], verts_local[2]}); + cut_cell._types.push_back(type::triangle); + cut_cell._connectivity.push_back({verts_local[0], verts_local[2], verts_local[3]}); + } + else + { + cut_cell._types.push_back(sub_type); + cut_cell._connectivity.push_back(std::move(verts_local)); + } + } + } + } + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate) + { + if (vertex_coordinates.size() != static_cast(5 * gdim)) + throw std::invalid_argument("pyramid::cut expects 5 vertices"); + if (ls_values.size() != 5) + throw std::invalid_argument("pyramid::cut expects 5 level set values"); + + // CutCells convention: case mask bit i is set when phi_i < 0. + const int flag_lt0 = get_entity_flag(ls_values, false); + if (flag_lt0 == 0 || flag_lt0 == 31) + throw std::invalid_argument("pyramid is not intersected and therefore cannot be cut"); + + // Store parent geometry + cut_cell._parent_cell_type = type::pyramid; + cut_cell._parent_vertex_coords.resize(5 * gdim); + cut_cell._parent_vertex_ids.resize(5); + for (int i = 0; i < 5; ++i) + { + for (int j = 0; j < gdim; ++j) + cut_cell._parent_vertex_coords[i * gdim + j] = vertex_coordinates[i * gdim + j]; + cut_cell._parent_vertex_ids[i] = i; + } + + // Compute intersections (shared for all parts) + std::vector intersection_points; + std::unordered_map vertex_case_map; + compute_intersection_points(vertex_coordinates, gdim, ls_values, flag_lt0, + intersection_points, vertex_case_map); + + cut_cell._gdim = gdim; + cut_cell._vertex_coords = std::move(intersection_points); + cut_cell._types.clear(); + cut_cell._connectivity.clear(); + + if (cut_type_str == "phi=0") + { + cut_cell._tdim = 2; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_interface, subcell_type_interface, subcell_verts_interface, + nullptr, nullptr, nullptr, + triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi<0") + { + cut_cell._tdim = 3; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_inside, subcell_type_inside, subcell_verts_inside, + special_point_count_inside, special_point_offset_inside, special_point_data_inside, + triangulate, cut_cell, vertex_case_map); + } + else if (cut_type_str == "phi>0") + { + cut_cell._tdim = 3; + decode_case(vertex_coordinates, gdim, flag_lt0, + case_subcell_offset_outside, subcell_type_outside, subcell_verts_outside, + special_point_count_outside, special_point_offset_outside, special_point_data_outside, + triangulate, cut_cell, vertex_case_map); + } + else + { + throw std::invalid_argument("cutting type unknown"); + } + + cutcells::utils::create_vertex_parent_entity_map(vertex_case_map, cut_cell._vertex_parent_entity); + } + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate) + { + cut_cell.resize(cut_type_str.size()); + for (std::size_t i = 0; i < cut_type_str.size(); ++i) + cut(vertex_coordinates, gdim, ls_values, cut_type_str[i], cut_cell[i], triangulate); + } + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); + + template void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate); +} diff --git a/cpp/src/cut_pyramid.h b/cpp/src/cut_pyramid.h new file mode 100644 index 0000000..1bf2851 --- /dev/null +++ b/cpp/src/cut_pyramid.h @@ -0,0 +1,27 @@ +// Copyright (c) 2025 ONERA +// Authors: Susanne Claus +// This file is part of CutCells +// +// SPDX-License-Identifier: MIT +#pragma once + +#include "cell_types.h" +#include "cut_cell.h" + +#include +#include +#include +#include + +namespace cutcells::cell::pyramid +{ + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::string& cut_type_str, + CutCell& cut_cell, bool triangulate = false); + + template + void cut(const std::span vertex_coordinates, const int gdim, + const std::span ls_values, const std::vector& cut_type_str, + std::vector>& cut_cell, bool triangulate = false); +} diff --git a/cpp/src/cut_quadrilateral.cpp b/cpp/src/cut_quadrilateral.cpp index 4cfbe40..67cee56 100644 --- a/cpp/src/cut_quadrilateral.cpp +++ b/cpp/src/cut_quadrilateral.cpp @@ -24,6 +24,22 @@ namespace cutcells::cell::quadrilateral { namespace { + inline bool case_is_ambiguous(int flag) + { + // Opposite-corner patterns 0b0101 (5) and 0b1010 (10) + return flag == 5 || flag == 10; + } + + inline bool asymptotic_decider(double f0, double f1, double f2, double f3) + { + // Bilinear form for marching squares; true -> choose diagonal (0,2), false -> (1,3) + // This form is invariant to scaling of phi. + const double d = f0 * f2 - f1 * f3; + // Tie-break: when d==0 (center exactly on interface), prefer the alternate variant + // to keep the opposite-corners case disconnected. + return d > 0.0; + } + template void compute_intersection_points(const std::span vertex_coordinates, const int gdim, const std::span ls_values, const int flag, @@ -69,16 +85,14 @@ namespace cutcells::cell::quadrilateral } } template - void decode_case(const std::span vertex_coordinates, const int gdim, int flag, - const int* case_offsets, const type* cell_types, - const int (*subcell_verts)[MaxVerts], - const std::span intersection_points, - bool triangulate, CutCell& cut_cell, - std::unordered_map& edge_ip_map) + void decode_range(const std::span vertex_coordinates, const int gdim, + const int cell_begin, const int cell_end, + const type* cell_types, + const int (*subcell_verts)[MaxVerts], + const std::span intersection_points, + bool triangulate, CutCell& cut_cell, + std::unordered_map& edge_ip_map) { - const int cell_begin = case_offsets[flag]; - const int cell_end = case_offsets[flag + 1]; - // Map from token (edge id or 100+vid) to local vertex index in cut_cell._vertex_coords std::unordered_map token_to_local; @@ -149,6 +163,20 @@ namespace cutcells::cell::quadrilateral } } } + + template + void decode_case(const std::span vertex_coordinates, const int gdim, int flag, + const int* case_offsets, const type* cell_types, + const int (*subcell_verts)[MaxVerts], + const std::span intersection_points, + bool triangulate, CutCell& cut_cell, + std::unordered_map& edge_ip_map) + { + decode_range(vertex_coordinates, gdim, + case_offsets[flag], case_offsets[flag + 1], + cell_types, subcell_verts, + intersection_points, triangulate, cut_cell, edge_ip_map); + } } // namespace template @@ -186,33 +214,70 @@ namespace cutcells::cell::quadrilateral cut_cell._types.clear(); cut_cell._connectivity.clear(); - // Ambiguous opposite-corner cases (masks 0b0101, 0b1010) are already disambiguated in the generated tables - // into two disjoint pieces (two triangles for volume, two segments for interface). + const bool is_amb = case_is_ambiguous(flag_interior); + const int variant = asymptotic_decider(ls_values[0], ls_values[1], ls_values[2], ls_values[3]) ? 0 : 1; if (cut_type_str == "phi=0") { cut_cell._tdim = 1; std::span ip_span(intersection_points.data(), intersection_points.size()); - decode_case(vertex_coordinates, gdim, flag_interior, - case_subcell_offset_interface, subcell_type_interface, - subcell_verts_interface, ip_span, triangulate, cut_cell, vertex_case_map); + if (is_amb) + { + const int amb_id = amb_case_id[flag_interior]; + const int begin = amb_range_interface[4 * amb_id + 2 * variant + 0]; + const int end = amb_range_interface[4 * amb_id + 2 * variant + 1]; + decode_range(vertex_coordinates, gdim, begin, end, + subcell_type_interface, subcell_verts_interface, + ip_span, triangulate, cut_cell, vertex_case_map); + } + else + { + decode_case(vertex_coordinates, gdim, flag_interior, + case_subcell_offset_interface, subcell_type_interface, + subcell_verts_interface, ip_span, triangulate, cut_cell, vertex_case_map); + } } else if (cut_type_str == "phi<0") { cut_cell._tdim = 2; std::span ip_span(intersection_points.data(), intersection_points.size()); - decode_case(vertex_coordinates, gdim, flag_interior, - case_subcell_offset_inside, subcell_type_inside, - subcell_verts_inside, ip_span, triangulate, cut_cell, vertex_case_map); + if (is_amb) + { + const int amb_id = amb_case_id[flag_interior]; + const int begin = amb_range_inside[4 * amb_id + 2 * variant + 0]; + const int end = amb_range_inside[4 * amb_id + 2 * variant + 1]; + decode_range(vertex_coordinates, gdim, begin, end, + subcell_type_inside, subcell_verts_inside, + ip_span, triangulate, cut_cell, vertex_case_map); + } + else + { + decode_case(vertex_coordinates, gdim, flag_interior, + case_subcell_offset_inside, subcell_type_inside, + subcell_verts_inside, ip_span, triangulate, cut_cell, vertex_case_map); + } } else if (cut_type_str == "phi>0") { cut_cell._tdim = 2; - const int flag_exterior = get_entity_flag(ls_values, true); std::span ip_span(intersection_points.data(), intersection_points.size()); - decode_case(vertex_coordinates, gdim, flag_exterior, - case_subcell_offset_outside, subcell_type_outside, - subcell_verts_outside, ip_span, triangulate, cut_cell, vertex_case_map); + // Note: the generated "outside" tables are keyed by the *interior* mask (phi<0), + // i.e. they already represent the complement region. + if (is_amb) + { + const int amb_id = amb_case_id[flag_interior]; + const int begin = amb_range_outside[4 * amb_id + 2 * variant + 0]; + const int end = amb_range_outside[4 * amb_id + 2 * variant + 1]; + decode_range(vertex_coordinates, gdim, begin, end, + subcell_type_outside, subcell_verts_outside, + ip_span, triangulate, cut_cell, vertex_case_map); + } + else + { + decode_case(vertex_coordinates, gdim, flag_interior, + case_subcell_offset_outside, subcell_type_outside, + subcell_verts_outside, ip_span, triangulate, cut_cell, vertex_case_map); + } } else { diff --git a/cpp/src/generated/cut_hexahedron_inside_tables.h b/cpp/src/generated/cut_hexahedron_inside_tables.h new file mode 100644 index 0000000..871a915 --- /dev/null +++ b/cpp/src/generated/cut_hexahedron_inside_tables.h @@ -0,0 +1,1851 @@ +#ifndef CUT_CELLS_HEXAHEDRON_INSIDE_TABLES_H +#define CUT_CELLS_HEXAHEDRON_INSIDE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::hexahedron { + +// Topology +constexpr int edges[12][2] = { + {0,1}, {1,2}, {2,3}, {3,0}, // bottom face + {4,5}, {5,6}, {6,7}, {7,4}, // top face + {0,4}, {1,5}, {3,7}, {2,6} // vertical edges (VTK TableBasedClip ordering) +}; + +constexpr int faces[6][4] = { + {0,3,2,1}, {4,5,6,7}, // bottom, top + {0,1,5,4}, {1,2,6,5}, // front, right + {2,3,7,6}, {3,0,4,7} // back, left +}; + +// Intersected edges per case (1 = intersected, 0 = not intersected) +constexpr int intersected_edges[256][12] = { + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0 }, + { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, + { 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0 }, + { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, + { 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1 }, + { 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1 }, + { 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1 }, + { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0 }, + { 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0 }, + { 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0 }, + { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1 }, + { 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1 }, + { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 }, + { 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0 }, + { 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0 }, + { 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0 }, + { 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0 }, + { 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1 }, + { 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1 }, + { 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1 }, + { 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1 }, + { 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0 }, + { 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0 }, + { 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0 }, + { 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0 }, + { 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1 }, + { 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1 }, + { 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1 }, + { 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1 }, + { 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0 }, + { 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0 }, + { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, + { 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0 }, + { 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1 }, + { 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1 }, + { 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1 }, + { 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1 }, + { 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0 }, + { 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0 }, + { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0 }, + { 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0 }, + { 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1 }, + { 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1 }, + { 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1 }, + { 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1 }, + { 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0 }, + { 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0 }, + { 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 }, + { 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0 }, + { 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1 }, + { 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1 }, + { 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1 }, + { 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 }, + { 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0 }, + { 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0 }, + { 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0 }, + { 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0 }, + { 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1 }, + { 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1 }, + { 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 }, + { 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1 }, + { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1 }, + { 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1 }, + { 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1 }, + { 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 }, + { 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 }, + { 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0 }, + { 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0 }, + { 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0 }, + { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1 }, + { 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1 }, + { 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1 }, + { 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1 }, + { 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0 }, + { 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0 }, + { 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0 }, + { 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0 }, + { 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1 }, + { 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1 }, + { 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1 }, + { 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1 }, + { 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0 }, + { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 }, + { 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0 }, + { 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0 }, + { 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1 }, + { 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1 }, + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + { 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1 }, + { 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0 }, + { 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0 }, + { 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, + { 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0 }, + { 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1 }, + { 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1 }, + { 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1 }, + { 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0 }, + { 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0 }, + { 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0 }, + { 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0 }, + { 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1 }, + { 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1 }, + { 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1 }, + { 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1 }, + { 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0 }, + { 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 }, + { 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0 }, + { 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1 }, + { 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1 }, + { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1 }, + { 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0 }, + { 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0 }, + { 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0 }, + { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0 }, + { 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1 }, + { 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1 }, + { 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1 }, + { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1 }, + { 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0 }, + { 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0 }, + { 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0 }, + { 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0 }, + { 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0 }, + { 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0 }, + { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1 }, + { 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1 }, + { 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1 }, + { 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1 }, + { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0 }, + { 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0 }, + { 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0 }, + { 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0 }, + { 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1 }, + { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1 }, + { 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1 }, + { 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0 }, + { 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0 }, + { 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 }, + { 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0 }, + { 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1 }, + { 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1 }, + { 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1 }, + { 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1 }, + { 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0 }, + { 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0 }, + { 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0 }, + { 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0 }, + { 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1 }, + { 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, + { 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1 }, + { 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1 }, + { 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0 }, + { 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, + { 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0 }, + { 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0 }, + { 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1 }, + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, + { 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1 }, + { 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1 }, + { 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0 }, + { 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0 }, + { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 }, + { 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0 }, + { 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1 }, + { 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1 }, + { 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0 }, + { 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0 }, + { 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0 }, + { 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0 }, + { 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1 }, + { 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1 }, + { 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1 }, + { 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1 }, + { 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0 }, + { 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0 }, + { 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0 }, + { 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 }, + { 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 }, + { 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1 }, + { 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1 }, + { 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1 }, + { 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 }, + { 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1 }, + { 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1 }, + { 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0 }, + { 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0 }, + { 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0 }, + { 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0 }, + { 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 }, + { 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1 }, + { 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1 }, + { 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1 }, + { 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0 }, + { 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0 }, + { 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0 }, + { 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0 }, + { 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1 }, + { 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1 }, + { 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1 }, + { 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1 }, + { 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0 }, + { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0 }, + { 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0 }, + { 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0 }, + { 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1 }, + { 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1 }, + { 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1 }, + { 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1 }, + { 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0 }, + { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0 }, + { 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1 }, + { 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1 }, + { 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1 }, + { 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1 }, + { 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0 }, + { 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0 }, + { 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0 }, + { 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0 }, + { 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1 }, + { 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1 }, + { 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1 }, + { 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1 }, + { 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0 }, + { 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0 }, + { 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 }, + { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1 }, + { 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1 }, + { 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0 }, + { 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0 }, + { 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0 }, + { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, + { 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1 }, + { 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1 }, + { 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1 }, + { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0 }, + { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, + { 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +// Number of subcells produced for each case (inside volume) +constexpr int num_subcells_inside[256] = { 0, 1, 1, 1, 1, 6, 1, 6, 1, 1, 6, 6, 1, 6, 6, 1, 1, 1, 6, 6, 2, 7, 7, 8, 6, 6, 5, 5, 7, 8, 8, 8, 1, 6, 1, 6, 6, 5, 6, 5, 2, 7, 7, 8, 7, 8, 8, 8, 1, 6, 6, 1, 7, 8, 8, 8, 7, 8, 8, 8, 2, 10, 10, 2, 1, 2, 6, 7, 1, 7, 6, 8, 6, 7, 5, 8, 6, 8, 5, 8, 6, 7, 5, 8, 7, 2, 8, 10, 5, 8, 5, 5, 8, 10, 5, 5, 1, 7, 6, 8, 6, 8, 1, 8, 7, 2, 8, 10, 8, 10, 8, 2, 6, 8, 5, 8, 8, 10, 8, 2, 8, 10, 5, 5, 10, 6, 5, 8, 1, 6, 2, 7, 6, 5, 7, 8, 1, 6, 7, 8, 6, 5, 8, 8, 1, 6, 7, 8, 7, 8, 2, 10, 6, 1, 8, 8, 8, 8, 10, 2, 6, 5, 7, 8, 5, 5, 8, 5, 7, 8, 2, 10, 8, 5, 10, 5, 6, 5, 8, 8, 8, 5, 10, 5, 8, 8, 10, 2, 10, 5, 6, 8, 1, 7, 7, 2, 6, 8, 8, 10, 6, 8, 8, 10, 1, 8, 8, 2, 6, 8, 8, 10, 8, 10, 10, 6, 5, 8, 5, 5, 8, 2, 5, 8, 6, 8, 8, 10, 5, 5, 8, 5, 8, 10, 10, 6, 8, 5, 2, 8, 1, 8, 8, 2, 8, 5, 2, 8, 8, 2, 5, 8, 2, 8, 8, 1 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_inside[257] = { 0, 0, 1, 2, 3, 4, 10, 11, 17, 18, 19, 25, 31, 32, 38, 44, 45, 46, 47, 53, 59, 61, 68, 75, 83, 89, 95, 100, 105, 112, 120, 128, 136, 137, 143, 144, 150, 156, 161, 167, 172, 174, 181, 188, 196, 203, 211, 219, 227, 228, 234, 240, 241, 248, 256, 264, 272, 279, 287, 295, 303, 305, 315, 325, 327, 328, 330, 336, 343, 344, 351, 357, 365, 371, 378, 383, 391, 397, 405, 410, 418, 424, 431, 436, 444, 451, 453, 461, 471, 476, 484, 489, 494, 502, 512, 517, 522, 523, 530, 536, 544, 550, 558, 559, 567, 574, 576, 584, 594, 602, 612, 620, 622, 628, 636, 641, 649, 657, 667, 675, 677, 685, 695, 700, 705, 715, 721, 726, 734, 735, 741, 743, 750, 756, 761, 768, 776, 777, 783, 790, 798, 804, 809, 817, 825, 826, 832, 839, 847, 854, 862, 864, 874, 880, 881, 889, 897, 905, 913, 923, 925, 931, 936, 943, 951, 956, 961, 969, 974, 981, 989, 991, 1001, 1009, 1014, 1024, 1029, 1035, 1040, 1048, 1056, 1064, 1069, 1079, 1084, 1092, 1100, 1110, 1112, 1122, 1127, 1133, 1141, 1142, 1149, 1156, 1158, 1164, 1172, 1180, 1190, 1196, 1204, 1212, 1222, 1223, 1231, 1239, 1241, 1247, 1255, 1263, 1273, 1281, 1291, 1301, 1307, 1312, 1320, 1325, 1330, 1338, 1340, 1345, 1353, 1359, 1367, 1375, 1385, 1390, 1395, 1403, 1408, 1416, 1426, 1436, 1442, 1450, 1455, 1457, 1465, 1466, 1474, 1482, 1484, 1492, 1497, 1499, 1507, 1515, 1517, 1522, 1530, 1532, 1540, 1548, 1549 }; + +// Cell types for inside subcells +constexpr type subcell_type_inside[1549] = { cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron }; + +// Subcell vertices (max 8 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_inside[1549][8] = { + { 100, 0, 3, 8, -1, -1, -1, -1 }, + { 101, 0, 9, 1, -1, -1, -1, -1 }, + { 101, 1, 9, 100, 3, 8, -1, -1 }, + { 102, 1, 11, 2, -1, -1, -1, -1 }, + { 100, 102, 2, 3, 200, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 1, 11, 102, 200, -1, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 0, 200, 100, 8, -1, -1, -1, -1 }, + { 3, 8, 100, 200, -1, -1, -1, -1 }, + { 102, 2, 11, 101, 0, 9, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 3, 8, 100, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 200, -1, -1, -1, -1 }, + { 3, 100, 102, 2, 200, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 103, 3, 2, 10, -1, -1, -1, -1 }, + { 103, 10, 2, 100, 8, 0, -1, -1 }, + { 103, 3, 0, 101, 200, -1, -1, -1 }, + { 2, 103, 101, 1, 200, -1, -1, -1 }, + { 1, 101, 9, 200, -1, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 2, 103, 200, 10, -1, -1, -1, -1 }, + { 3, 103, 10, 200, -1, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 1, 101, 9, 200, -1, -1, -1, -1 }, + { 101, 103, 100, 200, -1, -1, -1, -1 }, + { 1, 2, 103, 101, 200, -1, -1, -1 }, + { 103, 2, 10, 200, -1, -1, -1, -1 }, + { 103, 3, 10, 102, 1, 11, -1, -1 }, + { 10, 103, 102, 11, 200, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 0, 100, 8, 200, -1, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 102, 1, 11, 200, -1, -1, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 10, 103, 102, 11, 200, -1, -1, -1 }, + { 3, 103, 10, 200, -1, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 3, 0, 101, 103, 200, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 8, 9, 11, 10 }, + { 104, 4, 8, 7, -1, -1, -1, -1 }, + { 100, 3, 0, 104, 7, 4, -1, -1 }, + { 104, 101, 0, 8, 200, -1, -1, -1 }, + { 4, 9, 101, 104, 200, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 101, 1, 0, 200, -1, -1, -1, -1 }, + { 4, 200, 104, 7, -1, -1, -1, -1 }, + { 8, 7, 104, 200, -1, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 200, -1, -1, -1, -1 }, + { 9, 101, 104, 4, 200, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 4, 8, 7, -1, -1, -1, -1 }, + { 102, 2, 1, 11, -1, -1, -1, -1 }, + { 102, 2, 3, 100, 200, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 1, 11, 102, 200, -1, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 100, 104, 4, 0, 200, -1, -1, -1 }, + { 4, 104, 7, 200, -1, -1, -1, -1 }, + { 104, 101, 0, 8, 200, -1, -1, -1 }, + { 9, 101, 104, 4, 200, -1, -1, -1 }, + { 104, 8, 7, 200, -1, -1, -1, -1 }, + { 4, 104, 7, 200, -1, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 101, 9, 11, 102, 200, -1, -1, -1 }, + { 11, 2, 102, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 200, -1, -1, -1, -1 }, + { 3, 100, 102, 2, 200, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 104, 101, 100, 200, -1, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 4, 9, 101, 200, -1, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 11, 2, 102, 200, -1, -1, -1, -1 }, + { 103, 104, 8, 3, 200, -1, -1, -1 }, + { 10, 7, 104, 103, 200, -1, -1, -1 }, + { 7, 4, 104, 200, -1, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 10, 200, 103, 2, -1, -1, -1, -1 }, + { 3, 2, 103, 200, -1, -1, -1, -1 }, + { 0, 2, 103, 100, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 7, 4, 104, 200, -1, -1, -1, -1 }, + { 104, 100, 103, 200, -1, -1, -1, -1 }, + { 7, 104, 103, 10, 200, -1, -1, -1 }, + { 103, 2, 10, 200, -1, -1, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 103, 10, 7, 104, 2, -1, -1, -1 }, + { 4, 9, 101, 104, 1, -1, -1, -1 }, + { 2, 103, 101, 1, 104, -1, -1, -1 }, + { 2, 1, 4, 7, 104, -1, -1, -1 }, + { 100, 101, 103, 104, -1, -1, -1, -1 }, + { 7, 104, 103, 10, 2, -1, -1, -1 }, + { 4, 9, 101, 104, 1, -1, -1, -1 }, + { 103, 101, 1, 2, 104, -1, -1, -1 }, + { 7, 2, 1, 4, 104, -1, -1, -1 }, + { 104, 8, 3, 103, 200, -1, -1, -1 }, + { 10, 7, 104, 103, 200, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 7, 4, 104, 200, -1, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 103, 102, 11, 10, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 104, 100, 103, 200, -1, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 103, 10, 7, 200, -1, -1, -1 }, + { 10, 103, 102, 11, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 101, 103, 104, 200, -1, -1, -1, -1 }, + { 103, 10, 7, 104, 200, -1, -1, -1 }, + { 102, 103, 101, 200, -1, -1, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 104, 4, 9, 101, 200, -1, -1, -1 }, + { 7, 4, 104, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 200, -1, -1, -1 }, + { 103, 104, 100, 200, -1, -1, -1, -1 }, + { 104, 101, 100, 200, -1, -1, -1, -1 }, + { 104, 4, 9, 101, 200, -1, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 10, 7, 104, 103, 200, -1, -1, -1 }, + { 4, 104, 7, 200, -1, -1, -1, -1 }, + { 105, 5, 9, 4, -1, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 9, 105, 5, 200, -1, -1, -1, -1 }, + { 105, 4, 5, 200, -1, -1, -1, -1 }, + { 0, 100, 200, 3, -1, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 101, 0, 1, 105, 4, 5, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 8, 4, 105, 100, 200, -1, -1, -1 }, + { 105, 4, 5, 200, -1, -1, -1, -1 }, + { 102, 1, 9, 105, 200, -1, -1, -1 }, + { 11, 102, 105, 5, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 11, 102, 200, 2, -1, -1, -1, -1 }, + { 1, 102, 2, 200, -1, -1, -1, -1 }, + { 100, 105, 102, 0, 9, 1, -1, -1 }, + { 100, 102, 2, 3, 8, -1, -1, -1 }, + { 11, 102, 105, 5, 4, -1, -1, -1 }, + { 8, 4, 105, 100, 102, -1, -1, -1 }, + { 8, 2, 11, 4, 102, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 105, 102, 101, 200, -1, -1, -1, -1 }, + { 5, 11, 102, 105, 200, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 101, 100, 105, 102, -1, -1, -1, -1 }, + { 2, 3, 100, 102, 8, -1, -1, -1 }, + { 11, 102, 105, 5, 4, -1, -1, -1 }, + { 100, 8, 4, 105, 102, -1, -1, -1 }, + { 2, 11, 4, 8, 102, -1, -1, -1 }, + { 103, 3, 2, 10, -1, -1, -1, -1 }, + { 105, 9, 4, 5, -1, -1, -1, -1 }, + { 105, 100, 8, 4, 200, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 105, 4, 5, 200, -1, -1, -1, -1 }, + { 9, 105, 5, 200, -1, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 100, 0, 2, 103, 200, -1, -1, -1 }, + { 2, 10, 103, 200, -1, -1, -1, -1 }, + { 103, 3, 0, 101, 200, -1, -1, -1 }, + { 1, 2, 103, 101, 200, -1, -1, -1 }, + { 103, 10, 3, 200, -1, -1, -1, -1 }, + { 2, 10, 103, 200, -1, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 101, 105, 5, 1, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 8, 4, 105, 100, 200, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 103, 100, 101, 200, -1, -1, -1, -1 }, + { 103, 2, 10, 200, -1, -1, -1, -1 }, + { 103, 101, 1, 2, 200, -1, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 105, 102, 1, 9, 200, -1, -1, -1 }, + { 11, 102, 105, 5, 200, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 102, 11, 10, 103, 200, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 0, 1, 9, 100, 102, 105, -1, -1 }, + { 102, 100, 105, 200, -1, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 103, 100, 102, 200, -1, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 105, 5, 11, 102, 200, -1, -1, -1 }, + { 4, 5, 105, 200, -1, -1, -1, -1 }, + { 101, 102, 103, 200, -1, -1, -1, -1 }, + { 0, 101, 103, 3, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 105, 102, 101, 200, -1, -1, -1, -1 }, + { 105, 4, 5, 200, -1, -1, -1, -1 }, + { 105, 5, 11, 102, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 101, 102, 103, 100, 200, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 105, 102, 101, 200, -1, -1, -1, -1 }, + { 105, 5, 11, 102, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 8, 4, 105, 100, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 105, 9, 5, 104, 8, 7, -1, -1 }, + { 7, 5, 105, 104, 200, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 0, 3, 100, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 105, 5, 9, 200, -1, -1, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 7, 5, 105, 104, 200, -1, -1, -1 }, + { 8, 7, 104, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 200, -1, -1, -1, -1 }, + { 8, 104, 101, 0, 200, -1, -1, -1 }, + { 101, 1, 0, 200, -1, -1, -1, -1 }, + { 3, 1, 5, 7, 100, 101, 105, 104 }, + { 102, 1, 9, 105, 200, -1, -1, -1 }, + { 5, 11, 102, 105, 200, -1, -1, -1 }, + { 102, 2, 1, 200, -1, -1, -1, -1 }, + { 11, 2, 102, 200, -1, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 105, 104, 7, 5, 200, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 100, 105, 102, 0, 9, 1, -1, -1 }, + { 105, 102, 100, 200, -1, -1, -1, -1 }, + { 100, 102, 2, 3, 200, -1, -1, -1 }, + { 104, 105, 100, 200, -1, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 102, 105, 5, 11, 200, -1, -1, -1 }, + { 2, 102, 11, 200, -1, -1, -1, -1 }, + { 101, 104, 105, 200, -1, -1, -1, -1 }, + { 0, 8, 104, 101, 200, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 102, 101, 105, 200, -1, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 102, 105, 5, 11, 200, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 105, 200, -1, -1, -1 }, + { 100, 101, 102, 200, -1, -1, -1, -1 }, + { 102, 101, 105, 200, -1, -1, -1, -1 }, + { 102, 105, 5, 11, 200, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 3, 100, 102, 2, 200, -1, -1, -1 }, + { 11, 2, 102, 200, -1, -1, -1, -1 }, + { 103, 104, 8, 3, 200, -1, -1, -1 }, + { 7, 104, 103, 10, 200, -1, -1, -1 }, + { 103, 3, 2, 200, -1, -1, -1, -1 }, + { 10, 103, 2, 200, -1, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 104, 7, 5, 105, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 0, 2, 103, 100, 200, -1, -1, -1 }, + { 103, 104, 100, 200, -1, -1, -1, -1 }, + { 103, 2, 10, 200, -1, -1, -1, -1 }, + { 103, 10, 7, 104, 200, -1, -1, -1 }, + { 7, 5, 105, 104, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 104, 101, 103, 8, 0, 3, -1, -1 }, + { 101, 103, 104, 200, -1, -1, -1, -1 }, + { 104, 103, 10, 7, 200, -1, -1, -1 }, + { 105, 101, 104, 200, -1, -1, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 103, 101, 1, 2, 200, -1, -1, -1 }, + { 10, 103, 2, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 101, 200, -1, -1, -1 }, + { 104, 100, 103, 200, -1, -1, -1, -1 }, + { 103, 100, 101, 200, -1, -1, -1, -1 }, + { 103, 101, 1, 2, 200, -1, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 7, 104, 103, 10, 200, -1, -1, -1 }, + { 2, 10, 103, 200, -1, -1, -1, -1 }, + { 103, 104, 105, 102, 10, 7, 5, 11 }, + { 3, 8, 9, 1, 103, 104, 105, 102 }, + { 100, 105, 102, 0, 9, 1, -1, -1 }, + { 7, 5, 105, 104, 200, -1, -1, -1 }, + { 104, 105, 100, 200, -1, -1, -1, -1 }, + { 104, 100, 103, 200, -1, -1, -1, -1 }, + { 10, 7, 104, 103, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 103, 100, 102, 200, -1, -1, -1, -1 }, + { 5, 7, 10, 11, 200, -1, -1, -1 }, + { 102, 100, 105, 200, -1, -1, -1, -1 }, + { 5, 11, 102, 105, 200, -1, -1, -1 }, + { 0, 8, 3, 101, 104, 103, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 105, 101, 104, 200, -1, -1, -1, -1 }, + { 105, 102, 101, 200, -1, -1, -1, -1 }, + { 11, 102, 105, 5, 200, -1, -1, -1 }, + { 10, 103, 102, 11, 200, -1, -1, -1 }, + { 102, 103, 101, 200, -1, -1, -1, -1 }, + { 7, 10, 11, 5, 200, -1, -1, -1 }, + { 103, 104, 101, 200, -1, -1, -1, -1 }, + { 7, 104, 103, 10, 200, -1, -1, -1 }, + { 103, 104, 105, 102, 10, 7, 5, 11 }, + { 101, 102, 105, 100, 103, 104, -1, -1 }, + { 106, 5, 6, 11, -1, -1, -1, -1 }, + { 100, 8, 0, 3, -1, -1, -1, -1 }, + { 106, 5, 6, 11, -1, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 5, 6, 106, 200, -1, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 9, 200, 101, 0, -1, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 106, 11, 1, 101, 200, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 5, 6, 106, 200, -1, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 101, 100, 8, 9, 200, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 102, 1, 2, 106, 5, 6, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 2, 3, 100, 102, 200, -1, -1, -1 }, + { 100, 8, 0, 200, -1, -1, -1, -1 }, + { 3, 8, 100, 200, -1, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 102, 106, 6, 2, 200, -1, -1, -1 }, + { 6, 106, 5, 200, -1, -1, -1, -1 }, + { 2, 102, 106, 6, 200, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 9, 101, 0, 200, -1, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 106, 5, 6, 200, -1, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 100, 101, 102, 200, -1, -1, -1, -1 }, + { 100, 3, 8, 200, -1, -1, -1, -1 }, + { 100, 102, 2, 3, 200, -1, -1, -1 }, + { 2, 102, 106, 6, 200, -1, -1, -1 }, + { 6, 106, 5, 200, -1, -1, -1, -1 }, + { 103, 106, 6, 10, 200, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 106, 5, 6, 200, -1, -1, -1, -1 }, + { 2, 200, 103, 3, -1, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 106, 6, 10, 103, 200, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 106, 5, 6, 200, -1, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 103, 100, 0, 2, 200, -1, -1, -1 }, + { 0, 100, 8, 200, -1, -1, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 101, 103, 3, 0, 9, -1, -1, -1 }, + { 10, 103, 106, 6, 5, -1, -1, -1 }, + { 9, 5, 106, 101, 103, -1, -1, -1 }, + { 9, 3, 10, 5, 103, -1, -1, -1 }, + { 1, 2, 11, 101, 103, 106, -1, -1 }, + { 103, 101, 106, 200, -1, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 106, 6, 10, 103, 200, -1, -1, -1 }, + { 5, 6, 106, 200, -1, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 200, -1, -1, -1, -1 }, + { 10, 103, 106, 6, 200, -1, -1, -1 }, + { 106, 5, 6, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 200, -1, -1, -1, -1 }, + { 10, 103, 106, 6, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 100, 8, 0, 200, -1, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 5, 6, 106, 200, -1, -1, -1, -1 }, + { 102, 101, 106, 103, -1, -1, -1, -1 }, + { 3, 0, 101, 103, 9, -1, -1, -1 }, + { 10, 103, 106, 6, 5, -1, -1, -1 }, + { 101, 9, 5, 106, 103, -1, -1, -1 }, + { 3, 10, 5, 9, 103, -1, -1, -1 }, + { 102, 103, 100, 101, 200, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 106, 103, 102, 200, -1, -1, -1, -1 }, + { 106, 6, 10, 103, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 6, 106, 5, 200, -1, -1, -1, -1 }, + { 104, 7, 6, 106, 200, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 5, 106, 11, 200, -1, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 4, 104, 200, 8, -1, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 106, 104, 7, 6, 200, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 5, 106, 11, 200, -1, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 104, 4, 0, 100, 200, -1, -1, -1 }, + { 0, 3, 100, 200, -1, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 101, 0, 8, 104, 1, -1, -1, -1 }, + { 7, 6, 106, 104, 11, -1, -1, -1 }, + { 1, 101, 106, 11, 104, -1, -1, -1 }, + { 1, 11, 7, 8, 104, -1, -1, -1 }, + { 101, 104, 106, 9, 4, 5, -1, -1 }, + { 104, 106, 101, 200, -1, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 106, 104, 7, 6, 200, -1, -1, -1 }, + { 11, 106, 6, 200, -1, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 6, 106, 104, 7, 200, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 106, 6, 2, 102, 200, -1, -1, -1 }, + { 2, 1, 102, 200, -1, -1, -1, -1 }, + { 100, 102, 106, 104, 0, 1, 5, 4 }, + { 3, 2, 6, 7, 100, 102, 106, 104 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 106, 101, 104, 200, -1, -1, -1, -1 }, + { 101, 0, 8, 104, 200, -1, -1, -1 }, + { 102, 101, 106, 200, -1, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 104, 7, 6, 106, 200, -1, -1, -1 }, + { 8, 7, 104, 200, -1, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 2, 102, 106, 6, 200, -1, -1, -1 }, + { 102, 101, 106, 200, -1, -1, -1, -1 }, + { 102, 100, 101, 200, -1, -1, -1, -1 }, + { 3, 100, 102, 2, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 6, 7, 3, 2, 200, -1, -1, -1 }, + { 104, 106, 101, 200, -1, -1, -1, -1 }, + { 6, 106, 104, 7, 200, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 104, 8, 3, 103, 4, -1, -1, -1 }, + { 2, 11, 106, 103, 5, -1, -1, -1 }, + { 4, 104, 106, 5, 103, -1, -1, -1 }, + { 4, 5, 2, 3, 103, -1, -1, -1 }, + { 104, 103, 106, 7, 10, 6, -1, -1 }, + { 103, 106, 104, 200, -1, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 100, 103, 104, 200, -1, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 106, 103, 2, 11, 200, -1, -1, -1 }, + { 5, 106, 11, 200, -1, -1, -1, -1 }, + { 1, 2, 11, 101, 103, 106, -1, -1 }, + { 101, 106, 103, 104, -1, -1, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 103, 104, 101, 3, 8, 0, -1, -1 }, + { 106, 104, 103, 6, 7, 10, -1, -1 }, + { 106, 103, 101, 11, 2, 1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 106, 103, 101, 104, -1, -1, -1, -1 }, + { 104, 101, 100, 103, -1, -1, -1, -1 }, + { 103, 106, 104, 10, 6, 7, -1, -1 }, + { 106, 104, 103, 200, -1, -1, -1, -1 }, + { 103, 104, 8, 3, 200, -1, -1, -1 }, + { 102, 106, 103, 200, -1, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 8, 104, 4, 200, -1, -1, -1, -1 }, + { 103, 106, 104, 10, 6, 7, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 102, 106, 103, 200, -1, -1, -1, -1 }, + { 102, 103, 100, 200, -1, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 100, 103, 104, 200, -1, -1, -1, -1 }, + { 5, 1, 0, 4, 200, -1, -1, -1 }, + { 104, 103, 106, 200, -1, -1, -1, -1 }, + { 5, 4, 104, 106, 200, -1, -1, -1 }, + { 4, 9, 5, 104, 101, 106, -1, -1 }, + { 103, 104, 101, 3, 8, 0, -1, -1 }, + { 10, 7, 6, 103, 104, 106, -1, -1 }, + { 104, 106, 101, 103, -1, -1, -1, -1 }, + { 103, 102, 106, 101, -1, -1, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 100, 101, 102, 103, 104, -1, -1, -1 }, + { 106, 103, 102, 104, -1, -1, -1, -1 }, + { 106, 102, 101, 104, -1, -1, -1, -1 }, + { 106, 11, 6, 105, 9, 4, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 4, 105, 100, 8, 200, -1, -1, -1 }, + { 100, 0, 3, 200, -1, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 105, 4, 6, 106, 200, -1, -1, -1 }, + { 6, 11, 106, 200, -1, -1, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 1, 101, 106, 11, 200, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 1, 101, 106, 11, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 100, 3, 8, 200, -1, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 6, 11, 106, 200, -1, -1, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 2, 102, 106, 6, 200, -1, -1, -1 }, + { 1, 102, 2, 200, -1, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 1, 9, 105, 102, 200, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 1, 9, 0, 102, 105, 100, -1, -1 }, + { 105, 102, 100, 200, -1, -1, -1, -1 }, + { 102, 2, 3, 100, 200, -1, -1, -1 }, + { 106, 102, 105, 200, -1, -1, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 3, 8, 100, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 102, 0, 4, 6, 2 }, + { 101, 105, 106, 102, 200, -1, -1, -1 }, + { 102, 100, 101, 200, -1, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 2, 3, 100, 102, 200, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 103, 2, 11, 106, 200, -1, -1, -1 }, + { 6, 10, 103, 106, 200, -1, -1, -1 }, + { 103, 3, 2, 200, -1, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 106, 105, 4, 6, 200, -1, -1, -1 }, + { 4, 105, 9, 200, -1, -1, -1, -1 }, + { 0, 9, 11, 2, 100, 105, 106, 103 }, + { 100, 105, 106, 103, 8, 4, 6, 10 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 106, 103, 101, 200, -1, -1, -1, -1 }, + { 101, 103, 3, 0, 200, -1, -1, -1 }, + { 105, 106, 101, 200, -1, -1, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 103, 106, 6, 10, 200, -1, -1, -1 }, + { 3, 103, 10, 200, -1, -1, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 105, 106, 101, 200, -1, -1, -1, -1 }, + { 105, 101, 100, 200, -1, -1, -1, -1 }, + { 8, 4, 105, 100, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 6, 4, 8, 10, 200, -1, -1, -1 }, + { 103, 101, 106, 200, -1, -1, -1, -1 }, + { 6, 10, 103, 106, 200, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 1, 9, 105, 102, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 103, 102, 106, 200, -1, -1, -1, -1 }, + { 103, 10, 3, 200, -1, -1, -1, -1 }, + { 103, 106, 6, 10, 200, -1, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 4, 105, 9, 200, -1, -1, -1, -1 }, + { 1, 9, 0, 102, 105, 100, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 106, 102, 105, 200, -1, -1, -1, -1 }, + { 106, 103, 102, 200, -1, -1, -1, -1 }, + { 10, 103, 106, 6, 200, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 103, 100, 102, 200, -1, -1, -1, -1 }, + { 4, 8, 10, 6, 200, -1, -1, -1 }, + { 100, 105, 102, 200, -1, -1, -1, -1 }, + { 4, 105, 100, 8, 200, -1, -1, -1 }, + { 102, 101, 105, 106, 200, -1, -1, -1 }, + { 101, 102, 103, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 200, -1, -1, -1, -1 }, + { 103, 106, 6, 10, 200, -1, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 0, 101, 103, 3, 200, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 100, 105, 106, 103, 8, 4, 6, 10 }, + { 102, 103, 106, 101, 100, 105, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 7, 6, 106, 104, 200, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 7, 6, 106, 104, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 100, 0, 3, 200, -1, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 11, 106, 6, 200, -1, -1, -1, -1 }, + { 105, 106, 101, 104, -1, -1, -1, -1 }, + { 8, 104, 101, 0, 1, -1, -1, -1 }, + { 7, 6, 106, 104, 11, -1, -1, -1 }, + { 101, 106, 11, 1, 104, -1, -1, -1 }, + { 8, 1, 11, 7, 104, -1, -1, -1 }, + { 105, 101, 100, 104, 200, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 106, 105, 104, 200, -1, -1, -1, -1 }, + { 106, 104, 7, 6, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 1, 101, 106, 11, 200, -1, -1, -1 }, + { 6, 11, 106, 200, -1, -1, -1, -1 }, + { 105, 106, 102, 200, -1, -1, -1, -1 }, + { 9, 105, 102, 1, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 104, 8, 7, 200, -1, -1, -1, -1 }, + { 104, 7, 6, 106, 200, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 2, 1, 102, 200, -1, -1, -1, -1 }, + { 105, 102, 100, 9, 1, 0, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 106, 102, 105, 200, -1, -1, -1, -1 }, + { 106, 105, 104, 200, -1, -1, -1, -1 }, + { 7, 6, 106, 104, 200, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 104, 105, 100, 200, -1, -1, -1, -1 }, + { 2, 6, 7, 3, 200, -1, -1, -1 }, + { 100, 105, 102, 200, -1, -1, -1, -1 }, + { 2, 3, 100, 102, 200, -1, -1, -1 }, + { 105, 106, 102, 101, 200, -1, -1, -1 }, + { 101, 104, 105, 200, -1, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 104, 7, 6, 106, 200, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 0, 8, 104, 101, 200, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 3, 2, 6, 7, 100, 102, 106, 104 }, + { 101, 100, 102, 105, 104, 106, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 106, 104, 103, 200, -1, -1, -1, -1 }, + { 104, 8, 3, 103, 200, -1, -1, -1 }, + { 105, 104, 106, 200, -1, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 103, 2, 11, 106, 200, -1, -1, -1 }, + { 3, 2, 103, 200, -1, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 105, 104, 106, 200, -1, -1, -1, -1 }, + { 105, 100, 104, 200, -1, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 100, 103, 104, 200, -1, -1, -1, -1 }, + { 11, 2, 0, 9, 200, -1, -1, -1 }, + { 103, 106, 104, 200, -1, -1, -1, -1 }, + { 11, 106, 103, 2, 200, -1, -1, -1 }, + { 103, 101, 106, 2, 1, 11, -1, -1 }, + { 8, 3, 0, 104, 103, 101, -1, -1 }, + { 104, 103, 106, 7, 10, 6, -1, -1 }, + { 103, 101, 106, 104, -1, -1, -1, -1 }, + { 104, 106, 105, 101, -1, -1, -1, -1 }, + { 2, 11, 1, 103, 106, 101, -1, -1 }, + { 103, 106, 104, 10, 6, 7, -1, -1 }, + { 100, 104, 105, 101, 103, -1, -1, -1 }, + { 106, 105, 104, 103, -1, -1, -1, -1 }, + { 106, 101, 105, 103, -1, -1, -1, -1 }, + { 6, 10, 7, 106, 103, 104, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 102, 106, 103, 200, -1, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 9, 105, 102, 1, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 105, 104, 106, 200, -1, -1, -1, -1 }, + { 3, 8, 9, 1, 200, -1, -1, -1 }, + { 104, 103, 106, 200, -1, -1, -1, -1 }, + { 3, 103, 104, 8, 200, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 9, 0, 1, 105, 100, 102, -1, -1 }, + { 102, 103, 100, 105, -1, -1, -1, -1 }, + { 105, 104, 106, 103, -1, -1, -1, -1 }, + { 104, 105, 100, 103, -1, -1, -1, -1 }, + { 105, 106, 102, 103, -1, -1, -1, -1 }, + { 10, 7, 6, 103, 104, 106, -1, -1 }, + { 103, 104, 101, 3, 8, 0, -1, -1 }, + { 102, 101, 105, 106, 103, -1, -1, -1 }, + { 104, 105, 101, 103, -1, -1, -1, -1 }, + { 104, 106, 105, 103, -1, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 104, 103, 106, 200, -1, -1, -1, -1 }, + { 105, 106, 102, 101, 200, -1, -1, -1 }, + { 106, 103, 102, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 200, -1, -1, -1 }, + { 100, 103, 104, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 101, 200, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 107, 6, 7, 10, -1, -1, -1, -1 }, + { 100, 3, 10, 107, 200, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 7, 107, 6, 200, -1, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 8, 100, 200, 0, -1, -1, -1, -1 }, + { 3, 100, 0, 200, -1, -1, -1, -1 }, + { 101, 0, 9, 1, -1, -1, -1, -1 }, + { 107, 7, 10, 6, -1, -1, -1, -1 }, + { 107, 100, 3, 10, 200, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 7, 107, 6, 200, -1, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 100, 8, 9, 101, 200, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 107, 10, 2, 102, 200, -1, -1, -1 }, + { 6, 107, 102, 11, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 102, 2, 1, 200, -1, -1, -1, -1 }, + { 6, 107, 200, 7, -1, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 100, 102, 107, 3, 2, 10, -1, -1 }, + { 100, 107, 7, 8, 0, -1, -1, -1 }, + { 6, 107, 102, 11, 1, -1, -1, -1 }, + { 0, 1, 102, 100, 107, -1, -1, -1 }, + { 0, 7, 6, 1, 107, -1, -1, -1 }, + { 107, 10, 2, 102, 200, -1, -1, -1 }, + { 11, 6, 107, 102, 200, -1, -1, -1 }, + { 107, 7, 10, 200, -1, -1, -1, -1 }, + { 6, 7, 107, 200, -1, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 102, 101, 9, 11, 200, -1, -1, -1 }, + { 9, 101, 0, 200, -1, -1, -1, -1 }, + { 100, 102, 107, 3, 2, 10, -1, -1 }, + { 102, 107, 100, 200, -1, -1, -1, -1 }, + { 100, 107, 7, 8, 200, -1, -1, -1 }, + { 101, 102, 100, 200, -1, -1, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 107, 102, 11, 6, 200, -1, -1, -1 }, + { 7, 107, 6, 200, -1, -1, -1, -1 }, + { 107, 7, 6, 103, 3, 2, -1, -1 }, + { 2, 6, 107, 103, 200, -1, -1, -1 }, + { 0, 2, 103, 100, 200, -1, -1, -1 }, + { 8, 0, 100, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 200, -1, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 107, 6, 7, 200, -1, -1, -1, -1 }, + { 101, 103, 3, 0, 200, -1, -1, -1 }, + { 2, 103, 101, 1, 200, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 1, 101, 9, 200, -1, -1, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 103, 2, 6, 107, 200, -1, -1, -1 }, + { 6, 7, 107, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 200, -1, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 101, 103, 100, 200, -1, -1, -1, -1 }, + { 101, 9, 1, 200, -1, -1, -1, -1 }, + { 101, 1, 2, 103, 200, -1, -1, -1 }, + { 2, 6, 107, 103, 200, -1, -1, -1 }, + { 6, 7, 107, 200, -1, -1, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 102, 107, 103, 200, -1, -1, -1, -1 }, + { 11, 6, 107, 102, 200, -1, -1, -1 }, + { 107, 6, 7, 200, -1, -1, -1, -1 }, + { 103, 100, 102, 107, -1, -1, -1, -1 }, + { 7, 8, 100, 107, 0, -1, -1, -1 }, + { 6, 107, 102, 11, 1, -1, -1, -1 }, + { 100, 0, 1, 102, 107, -1, -1, -1 }, + { 7, 6, 1, 0, 107, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 3, 0, 101, 103, 200, -1, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 107, 103, 102, 200, -1, -1, -1, -1 }, + { 107, 6, 7, 200, -1, -1, -1, -1 }, + { 107, 102, 11, 6, 200, -1, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 9, 101, 0, 200, -1, -1, -1, -1 }, + { 103, 100, 101, 102, 200, -1, -1, -1 }, + { 100, 103, 107, 200, -1, -1, -1, -1 }, + { 107, 103, 102, 200, -1, -1, -1, -1 }, + { 107, 102, 11, 6, 200, -1, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 6, 7, 107, 200, -1, -1, -1, -1 }, + { 104, 8, 4, 107, 10, 6, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 3, 100, 0, 200, -1, -1, -1, -1 }, + { 100, 107, 104, 200, -1, -1, -1, -1 }, + { 3, 10, 107, 100, 200, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 101, 0, 8, 104, 200, -1, -1, -1 }, + { 4, 9, 101, 104, 200, -1, -1, -1 }, + { 101, 1, 0, 200, -1, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 104, 107, 6, 4, 200, -1, -1, -1 }, + { 6, 107, 10, 200, -1, -1, -1, -1 }, + { 100, 107, 104, 200, -1, -1, -1, -1 }, + { 3, 10, 107, 100, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 101, 100, 104, 200, -1, -1, -1, -1 }, + { 101, 9, 1, 200, -1, -1, -1, -1 }, + { 101, 104, 4, 9, 200, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 6, 107, 10, 200, -1, -1, -1, -1 }, + { 102, 107, 10, 2, 200, -1, -1, -1 }, + { 6, 107, 102, 11, 200, -1, -1, -1 }, + { 102, 2, 1, 200, -1, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 107, 6, 4, 104, 200, -1, -1, -1 }, + { 4, 8, 104, 200, -1, -1, -1, -1 }, + { 3, 10, 2, 100, 107, 102, -1, -1 }, + { 107, 100, 102, 200, -1, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 104, 100, 107, 200, -1, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 102, 11, 6, 107, 200, -1, -1, -1 }, + { 1, 11, 102, 200, -1, -1, -1, -1 }, + { 104, 101, 102, 107, 4, 9, 11, 6 }, + { 8, 0, 2, 10, 104, 101, 102, 107 }, + { 100, 102, 107, 3, 2, 10, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 101, 102, 100, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 200, -1, -1, -1, -1 }, + { 4, 9, 101, 104, 200, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 104, 100, 107, 200, -1, -1, -1, -1 }, + { 11, 9, 4, 6, 200, -1, -1, -1 }, + { 107, 100, 102, 200, -1, -1, -1, -1 }, + { 11, 6, 107, 102, 200, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 2, 6, 107, 103, 200, -1, -1, -1 }, + { 3, 2, 103, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 200, -1, -1, -1, -1 }, + { 3, 103, 104, 8, 200, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 0, 4, 6, 2, 100, 104, 107, 103 }, + { 103, 104, 101, 3, 8, 0, -1, -1 }, + { 104, 101, 103, 200, -1, -1, -1, -1 }, + { 103, 101, 1, 2, 200, -1, -1, -1 }, + { 107, 104, 103, 200, -1, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 101, 104, 4, 9, 200, -1, -1, -1 }, + { 1, 101, 9, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 104, 200, -1, -1, -1 }, + { 103, 100, 101, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 200, -1, -1, -1, -1 }, + { 101, 104, 4, 9, 200, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 2, 103, 101, 1, 200, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 200, -1, -1, -1, -1 }, + { 3, 103, 104, 8, 200, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 102, 107, 103, 200, -1, -1, -1, -1 }, + { 102, 1, 11, 200, -1, -1, -1, -1 }, + { 102, 11, 6, 107, 200, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 4, 8, 104, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 100, 200, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 102, 107, 103, 200, -1, -1, -1, -1 }, + { 102, 11, 6, 107, 200, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 102, 103, 101, 200, -1, -1, -1, -1 }, + { 102, 107, 103, 200, -1, -1, -1, -1 }, + { 6, 107, 102, 11, 200, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 107, 104, 103, 200, -1, -1, -1, -1 }, + { 9, 4, 6, 11, 200, -1, -1, -1 }, + { 104, 101, 103, 200, -1, -1, -1, -1 }, + { 9, 101, 104, 4, 200, -1, -1, -1 }, + { 104, 101, 102, 107, 4, 9, 11, 6 }, + { 103, 107, 102, 100, 104, 101, -1, -1 }, + { 107, 105, 4, 7, 200, -1, -1, -1 }, + { 6, 5, 105, 107, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 6, 200, 107, 10, -1, -1, -1, -1 }, + { 7, 10, 107, 200, -1, -1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 100, 3, 10, 107, 0, -1, -1, -1 }, + { 6, 5, 105, 107, 9, -1, -1, -1 }, + { 0, 100, 105, 9, 107, -1, -1, -1 }, + { 0, 9, 6, 10, 107, -1, -1, -1 }, + { 107, 105, 4, 7, 200, -1, -1, -1 }, + { 5, 105, 107, 6, 200, -1, -1, -1 }, + { 107, 7, 10, 200, -1, -1, -1, -1 }, + { 6, 107, 10, 200, -1, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 105, 5, 1, 101, 200, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 105, 100, 107, 200, -1, -1, -1, -1 }, + { 100, 3, 10, 107, 200, -1, -1, -1 }, + { 101, 100, 105, 200, -1, -1, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 107, 6, 5, 105, 200, -1, -1, -1 }, + { 10, 6, 107, 200, -1, -1, -1, -1 }, + { 105, 107, 102, 5, 6, 11, -1, -1 }, + { 105, 102, 1, 9, 4, -1, -1, -1 }, + { 2, 102, 107, 10, 7, -1, -1, -1 }, + { 4, 7, 107, 105, 102, -1, -1, -1 }, + { 4, 1, 2, 7, 102, -1, -1, -1 }, + { 102, 100, 105, 1, 0, 9, -1, -1 }, + { 102, 100, 105, 107, -1, -1, -1, -1 }, + { 6, 5, 11, 107, 105, 102, -1, -1 }, + { 3, 10, 2, 100, 107, 102, -1, -1 }, + { 4, 7, 8, 105, 107, 100, -1, -1 }, + { 5, 11, 6, 105, 102, 107, -1, -1 }, + { 102, 105, 107, 200, -1, -1, -1, -1 }, + { 105, 4, 7, 107, 200, -1, -1, -1 }, + { 101, 105, 102, 200, -1, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 107, 10, 2, 102, 200, -1, -1, -1 }, + { 7, 10, 107, 200, -1, -1, -1, -1 }, + { 7, 8, 4, 107, 100, 105, -1, -1 }, + { 102, 107, 100, 2, 10, 3, -1, -1 }, + { 11, 6, 5, 102, 107, 105, -1, -1 }, + { 107, 105, 100, 102, -1, -1, -1, -1 }, + { 102, 101, 105, 100, -1, -1, -1, -1 }, + { 105, 4, 7, 107, 200, -1, -1, -1 }, + { 6, 5, 105, 107, 200, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 107, 103, 2, 6, 200, -1, -1, -1 }, + { 2, 103, 3, 200, -1, -1, -1, -1 }, + { 100, 107, 105, 8, 7, 4, -1, -1 }, + { 107, 105, 100, 200, -1, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 103, 107, 100, 200, -1, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 105, 107, 6, 5, 200, -1, -1, -1 }, + { 9, 105, 5, 200, -1, -1, -1, -1 }, + { 2, 1, 5, 6, 103, 101, 105, 107 }, + { 103, 101, 105, 107, 3, 0, 4, 7 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 101, 100, 105, 200, -1, -1, -1, -1 }, + { 101, 103, 100, 200, -1, -1, -1, -1 }, + { 2, 103, 101, 1, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 103, 107, 100, 200, -1, -1, -1, -1 }, + { 5, 6, 2, 1, 200, -1, -1, -1 }, + { 107, 105, 100, 200, -1, -1, -1, -1 }, + { 5, 105, 107, 6, 200, -1, -1, -1 }, + { 11, 6, 5, 102, 107, 105, -1, -1 }, + { 107, 102, 105, 200, -1, -1, -1, -1 }, + { 102, 1, 9, 105, 200, -1, -1, -1 }, + { 103, 102, 107, 200, -1, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 105, 4, 7, 107, 200, -1, -1, -1 }, + { 9, 4, 105, 200, -1, -1, -1, -1 }, + { 9, 0, 1, 105, 100, 102, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 6, 5, 11, 107, 105, 102, -1, -1 }, + { 105, 102, 100, 107, -1, -1, -1, -1 }, + { 107, 103, 102, 100, -1, -1, -1, -1 }, + { 11, 6, 5, 102, 107, 105, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 103, 102, 107, 200, -1, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 0, 101, 103, 3, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 101, 105, 102, 200, -1, -1, -1, -1 }, + { 7, 4, 0, 3, 200, -1, -1, -1 }, + { 105, 107, 102, 200, -1, -1, -1, -1 }, + { 7, 107, 105, 4, 200, -1, -1, -1 }, + { 6, 5, 11, 107, 105, 102, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 103, 100, 101, 102, 107, -1, -1, -1 }, + { 105, 101, 100, 107, -1, -1, -1, -1 }, + { 105, 102, 101, 107, -1, -1, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 5, 105, 107, 6, 200, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 104, 105, 100, 107, -1, -1, -1, -1 }, + { 10, 107, 100, 3, 0, -1, -1, -1 }, + { 6, 5, 105, 107, 9, -1, -1, -1 }, + { 100, 105, 9, 0, 107, -1, -1, -1 }, + { 10, 0, 9, 6, 107, -1, -1, -1 }, + { 104, 105, 101, 200, -1, -1, -1, -1 }, + { 8, 104, 101, 0, 200, -1, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 107, 105, 104, 200, -1, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 107, 6, 5, 105, 200, -1, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 100, 200, -1, -1, -1 }, + { 100, 107, 104, 200, -1, -1, -1, -1 }, + { 107, 105, 104, 200, -1, -1, -1, -1 }, + { 107, 6, 5, 105, 200, -1, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 3, 10, 107, 100, 200, -1, -1, -1 }, + { 6, 107, 10, 200, -1, -1, -1, -1 }, + { 105, 107, 102, 5, 6, 11, -1, -1 }, + { 107, 102, 105, 200, -1, -1, -1, -1 }, + { 105, 102, 1, 9, 200, -1, -1, -1 }, + { 104, 107, 105, 200, -1, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 102, 107, 10, 2, 200, -1, -1, -1 }, + { 1, 102, 2, 200, -1, -1, -1, -1 }, + { 102, 100, 105, 1, 0, 9, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 107, 102, 105, 6, 11, 5, -1, -1 }, + { 102, 100, 105, 107, -1, -1, -1, -1 }, + { 107, 105, 104, 100, -1, -1, -1, -1 }, + { 105, 107, 102, 5, 6, 11, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 104, 107, 105, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 200, -1, -1, -1, -1 }, + { 0, 8, 104, 101, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 101, 105, 102, 200, -1, -1, -1, -1 }, + { 10, 8, 0, 2, 200, -1, -1, -1 }, + { 102, 105, 107, 200, -1, -1, -1, -1 }, + { 10, 2, 102, 107, 200, -1, -1, -1 }, + { 107, 102, 105, 6, 11, 5, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 104, 105, 101, 100, 107, -1, -1, -1 }, + { 102, 100, 101, 107, -1, -1, -1, -1 }, + { 102, 101, 105, 107, -1, -1, -1, -1 }, + { 104, 103, 107, 200, -1, -1, -1, -1 }, + { 8, 3, 103, 104, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 105, 5, 9, 200, -1, -1, -1, -1 }, + { 105, 107, 6, 5, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 2, 103, 3, 200, -1, -1, -1, -1 }, + { 104, 100, 103, 107, 200, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 105, 107, 6, 5, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 104, 101, 103, 8, 0, 3, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 105, 101, 104, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 6, 5, 105, 107, 200, -1, -1, -1 }, + { 2, 6, 107, 103, 200, -1, -1, -1 }, + { 107, 104, 103, 200, -1, -1, -1, -1 }, + { 1, 5, 6, 2, 200, -1, -1, -1 }, + { 103, 104, 101, 200, -1, -1, -1, -1 }, + { 1, 2, 103, 101, 200, -1, -1, -1 }, + { 2, 1, 5, 6, 103, 101, 105, 107 }, + { 100, 103, 101, 104, 107, 105, -1, -1 }, + { 107, 102, 105, 6, 11, 5, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 103, 102, 107, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 200, -1, -1, -1, -1 }, + { 8, 3, 103, 104, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 104, 107, 105, 200, -1, -1, -1, -1 }, + { 1, 3, 8, 9, 200, -1, -1, -1 }, + { 105, 107, 102, 200, -1, -1, -1, -1 }, + { 1, 9, 105, 102, 200, -1, -1, -1 }, + { 102, 105, 107, 11, 5, 6, -1, -1 }, + { 1, 9, 0, 102, 105, 100, -1, -1 }, + { 103, 107, 104, 100, 102, -1, -1, -1 }, + { 105, 100, 104, 102, -1, -1, -1, -1 }, + { 105, 104, 107, 102, -1, -1, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 11, 6, 5, 102, 107, 105, -1, -1 }, + { 105, 104, 107, 102, -1, -1, -1, -1 }, + { 102, 103, 101, 104, -1, -1, -1, -1 }, + { 103, 102, 107, 104, -1, -1, -1, -1 }, + { 102, 101, 105, 104, -1, -1, -1, -1 }, + { 105, 107, 102, 5, 6, 11, -1, -1 }, + { 105, 107, 102, 200, -1, -1, -1, -1 }, + { 104, 100, 103, 107, 200, -1, -1, -1 }, + { 107, 103, 102, 200, -1, -1, -1, -1 }, + { 101, 102, 103, 100, 200, -1, -1, -1 }, + { 101, 105, 102, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 105, 200, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 106, 5, 11, 107, 7, 10, -1, -1 }, + { 100, 107, 7, 8, 200, -1, -1, -1 }, + { 10, 107, 100, 3, 200, -1, -1, -1 }, + { 100, 8, 0, 200, -1, -1, -1, -1 }, + { 3, 100, 0, 200, -1, -1, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 107, 10, 11, 106, 200, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 11, 1, 101, 106, 200, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 106, 107, 10, 11, 200, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 8, 7, 5, 9, 100, 107, 106, 101 }, + { 100, 107, 106, 101, 3, 10, 11, 1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 10, 2, 102, 107, 200, -1, -1, -1 }, + { 102, 2, 1, 200, -1, -1, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 102, 107, 100, 200, -1, -1, -1, -1 }, + { 107, 7, 8, 100, 200, -1, -1, -1 }, + { 106, 107, 102, 200, -1, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 8, 0, 100, 200, -1, -1, -1, -1 }, + { 102, 106, 107, 200, -1, -1, -1, -1 }, + { 2, 102, 107, 10, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 7, 10, 107, 200, -1, -1, -1, -1 }, + { 102, 107, 100, 2, 10, 3, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 106, 107, 102, 200, -1, -1, -1, -1 }, + { 106, 102, 101, 200, -1, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 101, 102, 100, 200, -1, -1, -1, -1 }, + { 7, 5, 9, 8, 200, -1, -1, -1 }, + { 100, 102, 107, 200, -1, -1, -1, -1 }, + { 7, 8, 100, 107, 200, -1, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 2, 103, 3, 200, -1, -1, -1, -1 }, + { 103, 106, 107, 200, -1, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 106, 11, 5, 200, -1, -1, -1, -1 }, + { 103, 106, 107, 200, -1, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 100, 103, 107, 200, -1, -1, -1, -1 }, + { 100, 8, 0, 200, -1, -1, -1, -1 }, + { 100, 107, 7, 8, 200, -1, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 5, 106, 11, 200, -1, -1, -1, -1 }, + { 2, 11, 1, 103, 106, 101, -1, -1 }, + { 106, 103, 101, 200, -1, -1, -1, -1 }, + { 103, 3, 0, 101, 200, -1, -1, -1 }, + { 107, 103, 106, 200, -1, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 0, 9, 101, 200, -1, -1, -1, -1 }, + { 2, 11, 1, 103, 106, 101, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 107, 103, 106, 200, -1, -1, -1, -1 }, + { 107, 100, 103, 200, -1, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 5, 9, 8, 7, 200, -1, -1, -1 }, + { 101, 106, 103, 200, -1, -1, -1, -1 }, + { 5, 106, 101, 9, 200, -1, -1, -1 }, + { 103, 102, 106, 107, 3, 1, 5, 7 }, + { 103, 102, 106, 107, 200, -1, -1, -1 }, + { 107, 100, 103, 200, -1, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 7, 8, 100, 107, 200, -1, -1, -1 }, + { 0, 100, 8, 200, -1, -1, -1, -1 }, + { 102, 106, 107, 103, 200, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 3, 0, 101, 103, 200, -1, -1, -1 }, + { 9, 101, 0, 200, -1, -1, -1, -1 }, + { 8, 7, 5, 9, 100, 107, 106, 101 }, + { 103, 100, 107, 102, 101, 106, -1, -1 }, + { 10, 11, 106, 107, 200, -1, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 4, 8, 104, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 106, 11, 5, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 100, 107, 104, 200, -1, -1, -1, -1 }, + { 100, 0, 3, 200, -1, -1, -1, -1 }, + { 100, 3, 10, 107, 200, -1, -1, -1 }, + { 10, 11, 106, 107, 200, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 106, 101, 104, 200, -1, -1, -1, -1 }, + { 104, 101, 0, 8, 200, -1, -1, -1 }, + { 107, 106, 104, 200, -1, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 0, 101, 1, 200, -1, -1, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 10, 11, 106, 107, 200, -1, -1, -1 }, + { 107, 106, 104, 200, -1, -1, -1, -1 }, + { 107, 104, 100, 200, -1, -1, -1, -1 }, + { 3, 10, 107, 100, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 11, 10, 3, 1, 200, -1, -1, -1 }, + { 101, 104, 106, 200, -1, -1, -1, -1 }, + { 11, 1, 101, 106, 200, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 10, 2, 102, 107, 200, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 1, 102, 2, 200, -1, -1, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 106, 107, 102, 200, -1, -1, -1, -1 }, + { 106, 104, 107, 200, -1, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 104, 100, 107, 200, -1, -1, -1, -1 }, + { 1, 0, 4, 5, 200, -1, -1, -1 }, + { 100, 102, 107, 200, -1, -1, -1, -1 }, + { 1, 102, 100, 0, 200, -1, -1, -1 }, + { 5, 4, 9, 106, 104, 101, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 107, 106, 104, 200, -1, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 2, 102, 107, 10, 200, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 102, 101, 106, 200, -1, -1, -1, -1 }, + { 8, 0, 2, 10, 200, -1, -1, -1 }, + { 101, 104, 106, 200, -1, -1, -1, -1 }, + { 8, 104, 101, 0, 200, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 2, 3, 10, 102, 100, 107, -1, -1 }, + { 107, 104, 100, 102, -1, -1, -1, -1 }, + { 102, 101, 106, 104, -1, -1, -1, -1 }, + { 101, 102, 100, 104, -1, -1, -1, -1 }, + { 102, 106, 107, 104, -1, -1, -1, -1 }, + { 107, 106, 104, 103, -1, -1, -1, -1 }, + { 3, 103, 104, 8, 4, -1, -1, -1 }, + { 2, 11, 106, 103, 5, -1, -1, -1 }, + { 104, 106, 5, 4, 103, -1, -1, -1 }, + { 3, 4, 5, 2, 103, -1, -1, -1 }, + { 107, 104, 100, 103, 200, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 106, 107, 103, 200, -1, -1, -1, -1 }, + { 106, 103, 2, 11, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 101, 104, 106, 9, 4, 5, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 103, 101, 106, 2, 1, 11, -1, -1 }, + { 101, 104, 106, 103, -1, -1, -1, -1 }, + { 103, 106, 107, 104, -1, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 100, 103, 107, 104, 101, -1, -1, -1 }, + { 106, 107, 103, 101, -1, -1, -1, -1 }, + { 106, 104, 107, 101, -1, -1, -1, -1 }, + { 107, 103, 102, 106, 200, -1, -1, -1 }, + { 103, 107, 104, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 3, 103, 104, 8, 200, -1, -1, -1 }, + { 4, 8, 104, 200, -1, -1, -1, -1 }, + { 100, 102, 106, 104, 0, 1, 5, 4 }, + { 107, 104, 106, 103, 100, 102, -1, -1 }, + { 4, 9, 5, 104, 101, 106, -1, -1 }, + { 104, 101, 103, 8, 0, 3, -1, -1 }, + { 107, 103, 102, 106, 104, -1, -1, -1 }, + { 101, 102, 103, 104, -1, -1, -1, -1 }, + { 101, 106, 102, 104, -1, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 101, 104, 106, 200, -1, -1, -1, -1 }, + { 102, 106, 107, 103, 200, -1, -1, -1 }, + { 106, 104, 107, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 104, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 200, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 10, 11, 106, 107, 200, -1, -1, -1 }, + { 7, 10, 107, 200, -1, -1, -1, -1 }, + { 107, 106, 105, 200, -1, -1, -1, -1 }, + { 7, 107, 105, 4, 200, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 105, 100, 107, 200, -1, -1, -1, -1 }, + { 107, 100, 3, 10, 200, -1, -1, -1 }, + { 106, 105, 107, 200, -1, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 3, 100, 0, 200, -1, -1, -1, -1 }, + { 105, 107, 106, 200, -1, -1, -1, -1 }, + { 4, 7, 107, 105, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 101, 1, 0, 200, -1, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 4, 7, 8, 105, 107, 100, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 106, 105, 107, 200, -1, -1, -1, -1 }, + { 106, 101, 105, 200, -1, -1, -1, -1 }, + { 1, 101, 106, 11, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 101, 100, 105, 200, -1, -1, -1, -1 }, + { 10, 3, 1, 11, 200, -1, -1, -1 }, + { 100, 107, 105, 200, -1, -1, -1, -1 }, + { 10, 107, 100, 3, 200, -1, -1, -1 }, + { 106, 105, 107, 102, -1, -1, -1, -1 }, + { 1, 9, 105, 102, 4, -1, -1, -1 }, + { 2, 102, 107, 10, 7, -1, -1, -1 }, + { 105, 4, 7, 107, 102, -1, -1, -1 }, + { 1, 2, 7, 4, 102, -1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 102, 100, 105, 1, 0, 9, -1, -1 }, + { 2, 3, 10, 102, 100, 107, -1, -1 }, + { 100, 107, 105, 102, -1, -1, -1, -1 }, + { 102, 106, 107, 105, -1, -1, -1, -1 }, + { 106, 102, 101, 105, 200, -1, -1, -1 }, + { 105, 107, 106, 200, -1, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 107, 10, 2, 102, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 4, 7, 107, 105, 200, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 100, 107, 105, 8, 7, 4, -1, -1 }, + { 3, 10, 2, 100, 107, 102, -1, -1 }, + { 101, 105, 106, 102, 100, -1, -1, -1 }, + { 107, 102, 106, 100, -1, -1, -1, -1 }, + { 107, 106, 105, 100, -1, -1, -1, -1 }, + { 107, 106, 105, 200, -1, -1, -1, -1 }, + { 7, 107, 105, 4, 200, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 103, 106, 107, 200, -1, -1, -1, -1 }, + { 103, 3, 2, 200, -1, -1, -1, -1 }, + { 103, 2, 11, 106, 200, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 9, 4, 105, 200, -1, -1, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 106, 105, 107, 200, -1, -1, -1, -1 }, + { 106, 107, 103, 200, -1, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 0, 2, 103, 100, 200, -1, -1, -1 }, + { 103, 107, 100, 200, -1, -1, -1, -1 }, + { 9, 11, 2, 0, 200, -1, -1, -1 }, + { 100, 107, 105, 200, -1, -1, -1, -1 }, + { 9, 0, 100, 105, 200, -1, -1, -1 }, + { 106, 103, 101, 11, 2, 1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 107, 103, 106, 200, -1, -1, -1, -1 }, + { 107, 106, 105, 200, -1, -1, -1, -1 }, + { 4, 7, 107, 105, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 105, 106, 101, 200, -1, -1, -1, -1 }, + { 3, 7, 4, 0, 200, -1, -1, -1 }, + { 101, 106, 103, 200, -1, -1, -1, -1 }, + { 3, 0, 101, 103, 200, -1, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 105, 100, 107, 4, 8, 7, -1, -1 }, + { 107, 100, 103, 105, -1, -1, -1, -1 }, + { 105, 106, 101, 103, -1, -1, -1, -1 }, + { 101, 100, 105, 103, -1, -1, -1, -1 }, + { 105, 107, 106, 103, -1, -1, -1, -1 }, + { 106, 107, 103, 102, 200, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 105, 107, 106, 200, -1, -1, -1, -1 }, + { 105, 4, 7, 107, 200, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 1, 9, 105, 102, 200, -1, -1, -1 }, + { 4, 105, 9, 200, -1, -1, -1, -1 }, + { 100, 105, 102, 0, 9, 1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 103, 102, 106, 107, 100, -1, -1, -1 }, + { 105, 107, 106, 100, -1, -1, -1, -1 }, + { 105, 106, 102, 100, -1, -1, -1, -1 }, + { 0, 3, 7, 4, 101, 103, 107, 105 }, + { 102, 101, 103, 106, 105, 107, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 107, 105, 100, 200, -1, -1, -1, -1 }, + { 106, 102, 101, 105, 200, -1, -1, -1 }, + { 105, 101, 100, 200, -1, -1, -1, -1 }, + { 103, 100, 101, 102, 200, -1, -1, -1 }, + { 103, 107, 100, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 107, 200, -1, -1, -1 }, + { 107, 106, 105, 200, -1, -1, -1, -1 }, + { 8, 9, 11, 10, 104, 105, 106, 107 }, + { 104, 107, 106, 105, 200, -1, -1, -1 }, + { 107, 104, 100, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 10, 107, 100, 3, 200, -1, -1, -1 }, + { 0, 3, 100, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 106, 200, -1, -1, -1 }, + { 104, 105, 101, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 8, 104, 101, 0, 200, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 100, 107, 106, 101, 3, 10, 11, 1 }, + { 105, 101, 106, 104, 100, 107, -1, -1 }, + { 106, 105, 104, 107, 200, -1, -1, -1 }, + { 105, 106, 102, 200, -1, -1, -1, -1 }, + { 102, 106, 107, 200, -1, -1, -1, -1 }, + { 102, 107, 10, 2, 200, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 9, 105, 102, 1, 200, -1, -1, -1 }, + { 2, 1, 102, 200, -1, -1, -1, -1 }, + { 0, 1, 9, 100, 102, 105, -1, -1 }, + { 100, 102, 107, 3, 2, 10, -1, -1 }, + { 104, 107, 106, 105, 100, -1, -1, -1 }, + { 102, 106, 107, 100, -1, -1, -1, -1 }, + { 102, 105, 106, 100, -1, -1, -1, -1 }, + { 101, 104, 107, 102, 0, 8, 10, 2 }, + { 106, 102, 107, 105, 101, 104, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 107, 100, 102, 200, -1, -1, -1, -1 }, + { 106, 102, 101, 105, 200, -1, -1, -1 }, + { 102, 100, 101, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 100, 200, -1, -1, -1 }, + { 104, 100, 107, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 105, 200, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 107, 106, 105, 104, 200, -1, -1, -1 }, + { 104, 103, 107, 200, -1, -1, -1, -1 }, + { 103, 106, 107, 200, -1, -1, -1, -1 }, + { 103, 2, 11, 106, 200, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 8, 3, 103, 104, 200, -1, -1, -1 }, + { 2, 103, 3, 200, -1, -1, -1, -1 }, + { 0, 9, 11, 2, 100, 105, 106, 103 }, + { 104, 100, 105, 107, 103, 106, -1, -1 }, + { 103, 101, 106, 2, 1, 11, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 107, 106, 105, 104, 103, -1, -1, -1 }, + { 101, 104, 105, 103, -1, -1, -1, -1 }, + { 101, 105, 106, 103, -1, -1, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 101, 106, 103, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 106, 200, -1, -1, -1 }, + { 106, 107, 103, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 104, 200, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 101, 200, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 104, 103, 102, 105, 8, 3, 1, 9 }, + { 106, 105, 102, 107, 104, 103, -1, -1 }, + { 1, 9, 0, 102, 105, 100, -1, -1 }, + { 102, 100, 105, 200, -1, -1, -1, -1 }, + { 106, 105, 104, 107, 200, -1, -1, -1 }, + { 105, 100, 104, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 100, 200, -1, -1, -1 }, + { 103, 100, 102, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 107, 200, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 103, 104, 101, 200, -1, -1, -1, -1 }, + { 102, 101, 105, 106, 200, -1, -1, -1 }, + { 101, 104, 105, 200, -1, -1, -1, -1 }, + { 107, 106, 105, 104, 200, -1, -1, -1 }, + { 107, 104, 103, 200, -1, -1, -1, -1 }, + { 107, 103, 102, 106, 200, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 104, 105, 106, 107 } +}; + +// Special points (e.g. centroid): per-case definition streams +constexpr int special_point_count_inside[256] = { 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0 }; +constexpr int special_point_offset_inside[257] = { 0, 0, 0, 0, 0, 0, 3, 3, 9, 9, 9, 12, 18, 18, 24, 30, 30, 30, 30, 33, 39, 39, 44, 49, 56, 59, 65, 65, 65, 70, 77, 83, 89, 89, 92, 92, 98, 101, 101, 107, 107, 107, 112, 117, 124, 129, 135, 142, 148, 148, 154, 160, 160, 165, 171, 178, 184, 189, 196, 202, 208, 208, 215, 222, 222, 222, 222, 225, 230, 230, 235, 241, 248, 251, 256, 256, 262, 268, 275, 275, 281, 284, 289, 289, 295, 300, 300, 306, 313, 313, 319, 319, 319, 325, 332, 332, 332, 332, 337, 343, 350, 356, 362, 362, 368, 373, 373, 379, 386, 393, 400, 406, 406, 412, 419, 419, 425, 432, 439, 445, 445, 451, 458, 458, 458, 465, 465, 465, 473, 473, 476, 476, 481, 484, 484, 489, 495, 495, 501, 506, 513, 519, 519, 526, 532, 532, 538, 543, 550, 555, 561, 561, 568, 574, 574, 580, 586, 593, 599, 606, 606, 609, 609, 614, 620, 620, 620, 626, 626, 631, 637, 637, 644, 650, 650, 657, 657, 663, 663, 670, 676, 682, 682, 689, 689, 696, 702, 709, 709, 716, 716, 716, 724, 724, 729, 734, 734, 740, 746, 753, 760, 766, 773, 779, 786, 786, 792, 798, 798, 804, 811, 817, 824, 831, 838, 845, 845, 845, 851, 851, 851, 857, 857, 857, 865, 871, 877, 884, 891, 891, 891, 897, 897, 904, 911, 918, 918, 924, 924, 924, 932, 932, 938, 944, 944, 950, 950, 950, 958, 964, 964, 964, 972, 972, 980, 988, 988 }; +constexpr int special_point_data_inside[988] = { 2, 8, 11, 5, 8, 9, 3, 2, 11, 2, 10, 9, 5, 9, 8, 1, 2, 10, 5, 8, 10, 0, 1, 11, 5, 10, 11, 3, 0, 9, 2, 7, 1, 5, 1, 3, 9, 4, 7, 4, 4, 7, 11, 11, 4, 11, 2, 7, 7, 6, 3, 2, 11, 9, 4, 7, 2, 2, 4, 5, 4, 0, 7, 10, 2, 4, 11, 1, 4, 4, 6, 0, 1, 11, 10, 7, 4, 5, 11, 9, 10, 7, 4, 5, 9, 11, 10, 4, 7, 2, 3, 5, 5, 3, 1, 8, 4, 5, 2, 2, 4, 5, 4, 0, 5, 11, 2, 4, 2, 10, 5, 5, 4, 5, 4, 10, 10, 6, 8, 4, 5, 1, 2, 10, 4, 10, 3, 4, 4, 5, 10, 11, 8, 4, 5, 6, 0, 3, 10, 11, 5, 4, 5, 11, 10, 8, 5, 4, 5, 3, 7, 0, 9, 5, 5, 7, 5, 8, 0, 1, 4, 7, 8, 2, 2, 5, 7, 5, 3, 2, 11, 6, 0, 8, 7, 5, 11, 2, 5, 5, 7, 3, 11, 2, 4, 5, 9, 2, 2, 6, 0, 9, 5, 7, 10, 2, 5, 5, 1, 7, 10, 2, 5, 1, 5, 7, 2, 10, 6, 100, 102, 103, 104, 5, 7, 6, 101, 103, 102, 105, 7, 5, 2, 0, 6, 4, 8, 3, 6, 6, 4, 6, 5, 8, 8, 5, 0, 2, 9, 5, 6, 6, 9, 5, 6, 2, 3, 8, 2, 3, 5, 4, 0, 8, 5, 5, 5, 8, 10, 9, 5, 6, 5, 3, 1, 10, 6, 5, 6, 10, 6, 5, 1, 0, 8, 5, 10, 8, 9, 6, 5, 2, 8, 11, 4, 0, 3, 11, 11, 5, 3, 7, 1, 11, 6, 4, 2, 1, 8, 8, 5, 2, 6, 0, 8, 7, 6, 101, 104, 100, 102, 6, 2, 5, 0, 2, 4, 5, 11, 5, 1, 5, 3, 8, 4, 6, 103, 104, 100, 102, 5, 1, 4, 6, 11, 3, 3, 5, 0, 4, 1, 11, 6, 6, 1, 11, 6, 4, 8, 3, 5, 2, 6, 1, 9, 4, 5, 6, 4, 2, 3, 8, 5, 4, 6, 2, 8, 3, 4, 4, 9, 3, 3, 5, 4, 6, 0, 3, 10, 6, 101, 103, 100, 105, 6, 4, 6, 1, 9, 4, 6, 10, 3, 6, 102, 100, 103, 106, 4, 6, 5, 6, 4, 0, 10, 3, 5, 8, 9, 7, 6, 11, 6, 7, 6, 11, 9, 0, 3, 5, 7, 3, 1, 6, 11, 6, 9, 1, 2, 6, 7, 8, 6, 105, 100, 104, 106, 2, 6, 5, 6, 2, 0, 7, 8, 5, 9, 11, 8, 3, 2, 6, 104, 103, 100, 105, 11, 9, 6, 106, 104, 105, 102, 3, 1, 7, 100, 101, 102, 103, 104, 105, 106, 2, 0, 6, 4, 9, 1, 6, 6, 2, 7, 1, 4, 9, 0, 7, 7, 5, 9, 11, 8, 7, 6, 5, 0, 2, 8, 7, 6, 4, 6, 7, 9, 9, 6, 8, 7, 6, 2, 1, 9, 5, 1, 3, 11, 6, 7, 6, 3, 0, 9, 11, 6, 7, 5, 11, 9, 8, 6, 7, 5, 0, 4, 3, 10, 6, 4, 6, 10, 1, 1, 6, 3, 10, 6, 4, 9, 1, 4, 4, 8, 1, 1, 5, 4, 6, 0, 1, 11, 6, 100, 107, 104, 101, 11, 9, 5, 2, 6, 3, 8, 4, 5, 6, 4, 2, 1, 9, 5, 4, 6, 2, 9, 1, 6, 3, 8, 4, 6, 11, 1, 5, 6, 4, 0, 11, 1, 6, 103, 104, 107, 102, 9, 11, 2, 10, 9, 4, 1, 0, 10, 10, 5, 1, 5, 3, 10, 6, 5, 0, 2, 4, 7, 10, 4, 2, 3, 9, 9, 5, 2, 6, 0, 9, 5, 6, 100, 107, 103, 101, 5, 1, 5, 3, 7, 1, 9, 4, 6, 102, 105, 101, 103, 7, 3, 5, 9, 8, 5, 6, 10, 6, 8, 0, 1, 5, 6, 10, 5, 5, 1, 3, 6, 10, 5, 8, 10, 9, 1, 2, 6, 105, 102, 101, 104, 10, 8, 6, 8, 3, 2, 6, 5, 9, 5, 6, 2, 0, 5, 9, 6, 104, 103, 107, 105, 1, 5, 6, 107, 105, 104, 103, 1, 3, 7, 101, 100, 103, 102, 105, 104, 107, 4, 11, 5, 0, 0, 4, 10, 7, 0, 0, 5, 7, 5, 10, 2, 1, 5, 5, 1, 7, 8, 0, 6, 2, 10, 7, 5, 9, 0, 6, 102, 100, 101, 106, 7, 5, 5, 3, 7, 2, 11, 5, 6, 2, 11, 5, 7, 8, 0, 5, 7, 5, 3, 0, 9, 6, 103, 101, 100, 107, 5, 7, 5, 1, 5, 7, 0, 8, 5, 5, 7, 3, 9, 0, 5, 8, 10, 4, 5, 11, 6, 4, 5, 11, 10, 3, 0, 5, 10, 11, 8, 0, 1, 6, 104, 101, 100, 107, 11, 10, 6, 10, 2, 1, 5, 4, 8, 6, 107, 100, 104, 106, 1, 5, 6, 106, 101, 102, 107, 8, 10, 5, 2, 0, 4, 11, 5, 5, 5, 1, 3, 4, 8, 7, 100, 103, 107, 104, 101, 102, 106, 5, 10, 11, 7, 4, 9, 5, 11, 9, 10, 3, 0, 6, 4, 7, 10, 11, 1, 0, 6, 105, 100, 101, 106, 10, 11, 5, 2, 0, 4, 10, 7, 6, 7, 4, 9, 11, 2, 3, 6, 107, 100, 103, 106, 9, 11, 6, 106, 101, 105, 107, 3, 7, 5, 7, 3, 1, 4, 9, 7, 103, 102, 101, 100, 107, 106, 105, 5, 9, 11, 10, 0, 3, 5, 11, 10, 8, 1, 0, 5, 10, 8, 9, 2, 1, 7, 104, 105, 101, 100, 107, 106, 102, 5, 11, 9, 8, 2, 3, 7, 100, 104, 107, 103, 101, 105, 106, 7, 103, 107, 104, 100, 102, 106, 105, 7, 107, 106, 105, 104, 103, 102, 101 }; + +} // namespace cutcells::cell::hexahedron + +#endif // CUT_CELLS_HEXAHEDRON_INSIDE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_hexahedron_interface_tables.h b/cpp/src/generated/cut_hexahedron_interface_tables.h new file mode 100644 index 0000000..2623586 --- /dev/null +++ b/cpp/src/generated/cut_hexahedron_interface_tables.h @@ -0,0 +1,1031 @@ +#ifndef CUT_CELLS_HEXAHEDRON_INTERFACE_TABLES_H +#define CUT_CELLS_HEXAHEDRON_INTERFACE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::hexahedron { + +// Number of subcells produced for each case (interface volume) +constexpr int num_subcells_interface[256] = { 0, 1, 1, 1, 1, 6, 1, 5, 1, 1, 6, 5, 1, 5, 5, 1, 1, 1, 6, 5, 2, 7, 7, 6, 6, 5, 4, 3, 7, 6, 6, 5, 1, 6, 1, 5, 6, 4, 5, 3, 2, 7, 7, 6, 7, 6, 6, 5, 1, 5, 5, 1, 7, 6, 6, 5, 7, 6, 6, 5, 2, 2, 2, 1, 1, 2, 6, 7, 1, 7, 5, 6, 6, 7, 4, 6, 5, 6, 3, 5, 6, 7, 4, 6, 7, 2, 6, 2, 4, 6, 4, 3, 6, 2, 3, 2, 1, 7, 5, 6, 5, 6, 1, 5, 7, 2, 6, 2, 6, 2, 5, 1, 5, 6, 3, 5, 6, 2, 5, 1, 6, 2, 3, 2, 2, 2, 2, 1, 1, 6, 2, 7, 6, 4, 7, 6, 1, 5, 7, 6, 5, 3, 6, 5, 1, 5, 7, 6, 7, 6, 2, 2, 5, 1, 6, 5, 6, 5, 2, 1, 6, 4, 7, 6, 4, 4, 6, 3, 7, 6, 2, 2, 6, 3, 2, 2, 5, 3, 6, 5, 6, 3, 2, 2, 6, 5, 2, 1, 2, 2, 2, 1, 1, 7, 7, 2, 5, 6, 6, 2, 5, 6, 6, 2, 1, 5, 5, 1, 5, 6, 6, 2, 6, 2, 2, 2, 3, 5, 3, 2, 5, 1, 2, 1, 5, 6, 6, 2, 3, 3, 5, 2, 6, 2, 2, 2, 5, 2, 1, 1, 1, 5, 5, 1, 5, 2, 1, 1, 5, 1, 2, 1, 1, 1, 1, 0 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_interface[257] = { 0, 0, 1, 2, 3, 4, 10, 11, 16, 17, 18, 24, 29, 30, 35, 40, 41, 42, 43, 49, 54, 56, 63, 70, 76, 82, 87, 91, 94, 101, 107, 113, 118, 119, 125, 126, 131, 137, 141, 146, 149, 151, 158, 165, 171, 178, 184, 190, 195, 196, 201, 206, 207, 214, 220, 226, 231, 238, 244, 250, 255, 257, 259, 261, 262, 263, 265, 271, 278, 279, 286, 291, 297, 303, 310, 314, 320, 325, 331, 334, 339, 345, 352, 356, 362, 369, 371, 377, 379, 383, 389, 393, 396, 402, 404, 407, 409, 410, 417, 422, 428, 433, 439, 440, 445, 452, 454, 460, 462, 468, 470, 475, 476, 481, 487, 490, 495, 501, 503, 508, 509, 515, 517, 520, 522, 524, 526, 528, 529, 530, 536, 538, 545, 551, 555, 562, 568, 569, 574, 581, 587, 592, 595, 601, 606, 607, 612, 619, 625, 632, 638, 640, 642, 647, 648, 654, 659, 665, 670, 672, 673, 679, 683, 690, 696, 700, 704, 710, 713, 720, 726, 728, 730, 736, 739, 741, 743, 748, 751, 757, 762, 768, 771, 773, 775, 781, 786, 788, 789, 791, 793, 795, 796, 797, 804, 811, 813, 818, 824, 830, 832, 837, 843, 849, 851, 852, 857, 862, 863, 868, 874, 880, 882, 888, 890, 892, 894, 897, 902, 905, 907, 912, 913, 915, 916, 921, 927, 933, 935, 938, 941, 946, 948, 954, 956, 958, 960, 965, 967, 968, 969, 970, 975, 980, 981, 986, 988, 989, 990, 995, 996, 998, 999, 1000, 1001, 1002, 1002 }; + +// Cell types for interface subcells +constexpr type subcell_type_interface[1002] = { cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle }; + +// Subcell vertices (max 4 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_interface[1002][4] = { + { 0, 8, 3, -1 }, + { 0, 1, 9, -1 }, + { 1, 3, 8, 9 }, + { 1, 2, 11, -1 }, + { 2, 200, 3, -1 }, + { 0, 200, 1, -1 }, + { 1, 200, 11, -1 }, + { 11, 200, 2, -1 }, + { 0, 8, 200, -1 }, + { 3, 200, 8, -1 }, + { 2, 0, 9, 11 }, + { 9, 200, 11, -1 }, + { 8, 200, 9, -1 }, + { 3, 200, 8, -1 }, + { 2, 200, 3, -1 }, + { 11, 200, 2, -1 }, + { 3, 10, 2, -1 }, + { 10, 8, 0, 2 }, + { 3, 200, 0, -1 }, + { 1, 200, 2, -1 }, + { 1, 9, 200, -1 }, + { 0, 200, 9, -1 }, + { 2, 200, 10, -1 }, + { 3, 10, 200, -1 }, + { 10, 200, 8, -1 }, + { 8, 200, 9, -1 }, + { 1, 9, 200, -1 }, + { 1, 200, 2, -1 }, + { 2, 200, 10, -1 }, + { 3, 1, 11, 10 }, + { 11, 200, 10, -1 }, + { 10, 200, 8, -1 }, + { 0, 8, 200, -1 }, + { 0, 200, 1, -1 }, + { 1, 200, 11, -1 }, + { 9, 200, 11, -1 }, + { 11, 200, 10, -1 }, + { 3, 10, 200, -1 }, + { 3, 200, 0, -1 }, + { 0, 200, 9, -1 }, + { 8, 10, 11, 9 }, + { 4, 7, 8, -1 }, + { 3, 7, 4, 0 }, + { 0, 200, 8, -1 }, + { 4, 200, 9, -1 }, + { 9, 200, 1, -1 }, + { 1, 200, 0, -1 }, + { 4, 7, 200, -1 }, + { 8, 200, 7, -1 }, + { 3, 200, 7, -1 }, + { 1, 200, 3, -1 }, + { 9, 200, 1, -1 }, + { 4, 200, 9, -1 }, + { 7, 200, 4, -1 }, + { 4, 7, 8, -1 }, + { 2, 11, 1, -1 }, + { 2, 200, 3, -1 }, + { 0, 200, 1, -1 }, + { 11, 200, 2, -1 }, + { 1, 200, 11, -1 }, + { 3, 200, 7, -1 }, + { 4, 200, 0, -1 }, + { 4, 7, 200, -1 }, + { 0, 200, 8, -1 }, + { 4, 200, 9, -1 }, + { 8, 200, 7, -1 }, + { 4, 7, 200, -1 }, + { 2, 200, 0, -1 }, + { 9, 200, 11, -1 }, + { 11, 200, 2, -1 }, + { 2, 200, 3, -1 }, + { 3, 200, 7, -1 }, + { 7, 200, 4, -1 }, + { 4, 200, 9, -1 }, + { 9, 200, 11, -1 }, + { 11, 200, 2, -1 }, + { 8, 200, 3, -1 }, + { 10, 200, 7, -1 }, + { 7, 200, 4, -1 }, + { 4, 200, 8, -1 }, + { 10, 2, 200, -1 }, + { 3, 200, 2, -1 }, + { 0, 200, 2, -1 }, + { 4, 200, 0, -1 }, + { 7, 200, 4, -1 }, + { 10, 200, 7, -1 }, + { 2, 200, 10, -1 }, + { 3, 0, 8, -1 }, + { 10, 2, 7, -1 }, + { 4, 1, 9, -1 }, + { 2, 1, 4, 7 }, + { 10, 2, 7, -1 }, + { 4, 1, 9, -1 }, + { 7, 2, 1, 4 }, + { 8, 200, 3, -1 }, + { 10, 200, 7, -1 }, + { 4, 200, 8, -1 }, + { 7, 200, 4, -1 }, + { 3, 200, 1, -1 }, + { 11, 200, 10, -1 }, + { 11, 1, 200, -1 }, + { 0, 200, 1, -1 }, + { 4, 200, 0, -1 }, + { 7, 200, 4, -1 }, + { 10, 200, 7, -1 }, + { 11, 200, 10, -1 }, + { 11, 1, 200, -1 }, + { 3, 0, 8, -1 }, + { 10, 200, 7, -1 }, + { 9, 200, 11, -1 }, + { 11, 200, 10, -1 }, + { 4, 200, 9, -1 }, + { 7, 200, 4, -1 }, + { 4, 200, 9, -1 }, + { 9, 200, 11, -1 }, + { 11, 200, 10, -1 }, + { 10, 200, 7, -1 }, + { 4, 7, 200, -1 }, + { 5, 4, 9, -1 }, + { 8, 200, 4, -1 }, + { 9, 200, 0, -1 }, + { 9, 5, 200, -1 }, + { 4, 200, 5, -1 }, + { 0, 200, 3, -1 }, + { 8, 3, 200, -1 }, + { 0, 4, 5, 1 }, + { 5, 200, 1, -1 }, + { 1, 200, 3, -1 }, + { 8, 3, 200, -1 }, + { 8, 200, 4, -1 }, + { 4, 200, 5, -1 }, + { 1, 200, 9, -1 }, + { 5, 200, 11, -1 }, + { 5, 4, 200, -1 }, + { 9, 200, 4, -1 }, + { 11, 200, 2, -1 }, + { 1, 2, 200, -1 }, + { 0, 1, 9, -1 }, + { 2, 8, 3, -1 }, + { 5, 4, 11, -1 }, + { 8, 2, 11, 4 }, + { 2, 200, 0, -1 }, + { 0, 200, 4, -1 }, + { 5, 4, 200, -1 }, + { 5, 200, 11, -1 }, + { 11, 200, 2, -1 }, + { 2, 8, 3, -1 }, + { 5, 4, 11, -1 }, + { 2, 11, 4, 8 }, + { 3, 10, 2, -1 }, + { 9, 5, 4, -1 }, + { 8, 200, 4, -1 }, + { 9, 200, 0, -1 }, + { 4, 200, 5, -1 }, + { 9, 5, 200, -1 }, + { 10, 200, 8, -1 }, + { 0, 200, 2, -1 }, + { 2, 200, 10, -1 }, + { 3, 200, 0, -1 }, + { 1, 200, 2, -1 }, + { 10, 200, 3, -1 }, + { 2, 200, 10, -1 }, + { 0, 200, 4, -1 }, + { 5, 200, 1, -1 }, + { 5, 4, 200, -1 }, + { 8, 200, 4, -1 }, + { 10, 200, 8, -1 }, + { 2, 200, 10, -1 }, + { 1, 200, 2, -1 }, + { 5, 200, 1, -1 }, + { 5, 4, 200, -1 }, + { 1, 200, 9, -1 }, + { 5, 200, 11, -1 }, + { 9, 200, 4, -1 }, + { 5, 4, 200, -1 }, + { 3, 200, 1, -1 }, + { 11, 200, 10, -1 }, + { 10, 200, 3, -1 }, + { 0, 1, 9, -1 }, + { 8, 200, 4, -1 }, + { 11, 200, 10, -1 }, + { 10, 200, 8, -1 }, + { 5, 200, 11, -1 }, + { 4, 200, 5, -1 }, + { 3, 200, 0, -1 }, + { 0, 200, 4, -1 }, + { 4, 200, 5, -1 }, + { 5, 200, 11, -1 }, + { 11, 200, 10, -1 }, + { 10, 200, 3, -1 }, + { 5, 200, 11, -1 }, + { 11, 200, 10, -1 }, + { 10, 200, 8, -1 }, + { 8, 200, 4, -1 }, + { 5, 4, 200, -1 }, + { 9, 8, 7, 5 }, + { 7, 200, 5, -1 }, + { 3, 200, 7, -1 }, + { 0, 200, 3, -1 }, + { 9, 200, 0, -1 }, + { 5, 200, 9, -1 }, + { 5, 200, 1, -1 }, + { 7, 200, 5, -1 }, + { 8, 200, 7, -1 }, + { 0, 200, 8, -1 }, + { 1, 200, 0, -1 }, + { 3, 1, 5, 7 }, + { 1, 200, 9, -1 }, + { 5, 200, 11, -1 }, + { 2, 200, 1, -1 }, + { 11, 200, 2, -1 }, + { 9, 200, 8, -1 }, + { 7, 200, 5, -1 }, + { 7, 8, 200, -1 }, + { 0, 1, 9, -1 }, + { 2, 200, 3, -1 }, + { 7, 200, 5, -1 }, + { 3, 200, 7, -1 }, + { 5, 200, 11, -1 }, + { 2, 11, 200, -1 }, + { 0, 200, 8, -1 }, + { 2, 200, 0, -1 }, + { 11, 200, 2, -1 }, + { 5, 200, 11, -1 }, + { 7, 200, 5, -1 }, + { 7, 8, 200, -1 }, + { 5, 200, 11, -1 }, + { 7, 200, 5, -1 }, + { 3, 200, 7, -1 }, + { 2, 200, 3, -1 }, + { 11, 200, 2, -1 }, + { 8, 200, 3, -1 }, + { 10, 200, 7, -1 }, + { 3, 200, 2, -1 }, + { 10, 2, 200, -1 }, + { 9, 200, 8, -1 }, + { 7, 200, 5, -1 }, + { 5, 200, 9, -1 }, + { 9, 200, 0, -1 }, + { 0, 200, 2, -1 }, + { 2, 200, 10, -1 }, + { 10, 200, 7, -1 }, + { 7, 200, 5, -1 }, + { 5, 200, 9, -1 }, + { 8, 3, 0, -1 }, + { 10, 200, 7, -1 }, + { 5, 200, 1, -1 }, + { 7, 200, 5, -1 }, + { 1, 200, 2, -1 }, + { 10, 2, 200, -1 }, + { 1, 200, 2, -1 }, + { 5, 200, 1, -1 }, + { 7, 200, 5, -1 }, + { 10, 200, 7, -1 }, + { 2, 200, 10, -1 }, + { 10, 11, 5, 7 }, + { 3, 8, 9, 1 }, + { 0, 1, 9, -1 }, + { 5, 7, 10, 11 }, + { 0, 8, 3, -1 }, + { 7, 10, 11, 5 }, + { 10, 11, 5, 7 }, + { 5, 11, 6, -1 }, + { 8, 3, 0, -1 }, + { 5, 11, 6, -1 }, + { 11, 200, 1, -1 }, + { 9, 200, 5, -1 }, + { 5, 200, 6, -1 }, + { 6, 200, 11, -1 }, + { 9, 0, 200, -1 }, + { 1, 200, 0, -1 }, + { 11, 200, 1, -1 }, + { 9, 200, 5, -1 }, + { 6, 200, 11, -1 }, + { 5, 200, 6, -1 }, + { 1, 200, 3, -1 }, + { 8, 200, 9, -1 }, + { 8, 3, 200, -1 }, + { 1, 5, 6, 2 }, + { 0, 200, 1, -1 }, + { 2, 200, 3, -1 }, + { 8, 200, 0, -1 }, + { 3, 200, 8, -1 }, + { 1, 200, 5, -1 }, + { 6, 200, 2, -1 }, + { 6, 5, 200, -1 }, + { 6, 200, 2, -1 }, + { 2, 200, 0, -1 }, + { 9, 0, 200, -1 }, + { 9, 200, 5, -1 }, + { 5, 200, 6, -1 }, + { 9, 200, 5, -1 }, + { 8, 200, 9, -1 }, + { 3, 200, 8, -1 }, + { 2, 200, 3, -1 }, + { 6, 200, 2, -1 }, + { 6, 5, 200, -1 }, + { 6, 200, 10, -1 }, + { 2, 200, 11, -1 }, + { 11, 200, 5, -1 }, + { 5, 200, 6, -1 }, + { 2, 3, 200, -1 }, + { 10, 200, 3, -1 }, + { 6, 200, 10, -1 }, + { 2, 200, 11, -1 }, + { 5, 200, 6, -1 }, + { 11, 200, 5, -1 }, + { 10, 200, 8, -1 }, + { 0, 200, 2, -1 }, + { 0, 8, 200, -1 }, + { 1, 2, 11, -1 }, + { 3, 9, 0, -1 }, + { 6, 5, 10, -1 }, + { 9, 3, 10, 5 }, + { 1, 2, 11, -1 }, + { 9, 200, 5, -1 }, + { 10, 200, 8, -1 }, + { 8, 200, 9, -1 }, + { 6, 200, 10, -1 }, + { 5, 200, 6, -1 }, + { 1, 200, 5, -1 }, + { 3, 200, 1, -1 }, + { 10, 200, 3, -1 }, + { 6, 200, 10, -1 }, + { 5, 200, 6, -1 }, + { 6, 200, 10, -1 }, + { 10, 200, 8, -1 }, + { 8, 200, 0, -1 }, + { 0, 200, 1, -1 }, + { 1, 200, 5, -1 }, + { 5, 200, 6, -1 }, + { 3, 9, 0, -1 }, + { 6, 5, 10, -1 }, + { 3, 10, 5, 9 }, + { 6, 200, 10, -1 }, + { 10, 200, 8, -1 }, + { 8, 200, 9, -1 }, + { 9, 200, 5, -1 }, + { 6, 5, 200, -1 }, + { 7, 200, 6, -1 }, + { 5, 200, 4, -1 }, + { 5, 11, 200, -1 }, + { 6, 200, 11, -1 }, + { 4, 200, 8, -1 }, + { 7, 8, 200, -1 }, + { 7, 200, 6, -1 }, + { 5, 200, 4, -1 }, + { 6, 200, 11, -1 }, + { 5, 11, 200, -1 }, + { 3, 200, 7, -1 }, + { 4, 200, 0, -1 }, + { 0, 200, 3, -1 }, + { 9, 5, 4, -1 }, + { 0, 1, 8, -1 }, + { 7, 11, 6, -1 }, + { 1, 11, 7, 8 }, + { 9, 5, 4, -1 }, + { 11, 200, 1, -1 }, + { 3, 200, 7, -1 }, + { 1, 200, 3, -1 }, + { 7, 200, 6, -1 }, + { 11, 6, 200, -1 }, + { 5, 200, 4, -1 }, + { 7, 200, 6, -1 }, + { 4, 200, 8, -1 }, + { 7, 8, 200, -1 }, + { 1, 200, 5, -1 }, + { 6, 200, 2, -1 }, + { 2, 200, 1, -1 }, + { 0, 4, 5, 1 }, + { 3, 2, 6, 7 }, + { 9, 5, 4, -1 }, + { 0, 200, 8, -1 }, + { 6, 200, 2, -1 }, + { 2, 200, 0, -1 }, + { 7, 200, 6, -1 }, + { 8, 200, 7, -1 }, + { 9, 5, 4, -1 }, + { 6, 7, 3, 2 }, + { 7, 6, 10, -1 }, + { 8, 4, 3, -1 }, + { 2, 5, 11, -1 }, + { 4, 5, 2, 3 }, + { 7, 6, 10, -1 }, + { 5, 200, 4, -1 }, + { 0, 200, 2, -1 }, + { 4, 200, 0, -1 }, + { 2, 200, 11, -1 }, + { 5, 11, 200, -1 }, + { 1, 2, 11, -1 }, + { 4, 9, 5, -1 }, + { 3, 0, 8, -1 }, + { 6, 10, 7, -1 }, + { 11, 1, 2, -1 }, + { 7, 6, 10, -1 }, + { 4, 9, 5, -1 }, + { 10, 7, 6, -1 }, + { 8, 200, 3, -1 }, + { 1, 200, 5, -1 }, + { 3, 200, 1, -1 }, + { 5, 200, 4, -1 }, + { 8, 4, 200, -1 }, + { 10, 7, 6, -1 }, + { 5, 1, 0, 4 }, + { 4, 9, 5, -1 }, + { 3, 0, 8, -1 }, + { 10, 7, 6, -1 }, + { 4, 9, 5, -1 }, + { 7, 6, 10, -1 }, + { 11, 9, 4, 6 }, + { 9, 200, 0, -1 }, + { 8, 200, 4, -1 }, + { 0, 200, 3, -1 }, + { 8, 3, 200, -1 }, + { 11, 200, 9, -1 }, + { 4, 200, 6, -1 }, + { 6, 200, 11, -1 }, + { 4, 200, 6, -1 }, + { 0, 200, 4, -1 }, + { 1, 200, 0, -1 }, + { 11, 200, 1, -1 }, + { 6, 200, 11, -1 }, + { 11, 200, 1, -1 }, + { 1, 200, 3, -1 }, + { 3, 200, 8, -1 }, + { 8, 200, 4, -1 }, + { 4, 200, 6, -1 }, + { 6, 200, 11, -1 }, + { 4, 200, 6, -1 }, + { 6, 200, 2, -1 }, + { 1, 2, 200, -1 }, + { 1, 200, 9, -1 }, + { 9, 200, 4, -1 }, + { 1, 9, 0, -1 }, + { 2, 200, 3, -1 }, + { 4, 200, 6, -1 }, + { 6, 200, 2, -1 }, + { 8, 200, 4, -1 }, + { 3, 200, 8, -1 }, + { 0, 2, 6, 4 }, + { 8, 200, 4, -1 }, + { 4, 200, 6, -1 }, + { 6, 200, 2, -1 }, + { 2, 200, 3, -1 }, + { 8, 3, 200, -1 }, + { 2, 200, 11, -1 }, + { 6, 200, 10, -1 }, + { 3, 200, 2, -1 }, + { 10, 200, 3, -1 }, + { 11, 200, 9, -1 }, + { 4, 200, 6, -1 }, + { 4, 9, 200, -1 }, + { 0, 9, 11, 2 }, + { 8, 10, 6, 4 }, + { 1, 2, 11, -1 }, + { 3, 200, 0, -1 }, + { 4, 200, 6, -1 }, + { 0, 200, 4, -1 }, + { 6, 200, 10, -1 }, + { 3, 10, 200, -1 }, + { 1, 2, 11, -1 }, + { 6, 4, 8, 10 }, + { 1, 200, 9, -1 }, + { 3, 200, 1, -1 }, + { 10, 200, 3, -1 }, + { 6, 200, 10, -1 }, + { 4, 200, 6, -1 }, + { 4, 9, 200, -1 }, + { 1, 9, 0, -1 }, + { 4, 8, 10, 6 }, + { 6, 200, 10, -1 }, + { 4, 200, 6, -1 }, + { 0, 200, 4, -1 }, + { 3, 200, 0, -1 }, + { 10, 200, 3, -1 }, + { 8, 10, 6, 4 }, + { 11, 200, 9, -1 }, + { 9, 200, 8, -1 }, + { 7, 8, 200, -1 }, + { 7, 200, 6, -1 }, + { 6, 200, 11, -1 }, + { 7, 200, 6, -1 }, + { 3, 200, 7, -1 }, + { 0, 200, 3, -1 }, + { 9, 200, 0, -1 }, + { 11, 200, 9, -1 }, + { 11, 6, 200, -1 }, + { 0, 1, 8, -1 }, + { 7, 11, 6, -1 }, + { 8, 1, 11, 7 }, + { 7, 200, 6, -1 }, + { 3, 200, 7, -1 }, + { 1, 200, 3, -1 }, + { 11, 200, 1, -1 }, + { 6, 200, 11, -1 }, + { 1, 200, 9, -1 }, + { 9, 200, 8, -1 }, + { 8, 200, 7, -1 }, + { 7, 200, 6, -1 }, + { 6, 200, 2, -1 }, + { 2, 200, 1, -1 }, + { 9, 0, 1, -1 }, + { 2, 6, 7, 3 }, + { 7, 200, 6, -1 }, + { 6, 200, 2, -1 }, + { 2, 200, 0, -1 }, + { 0, 200, 8, -1 }, + { 7, 8, 200, -1 }, + { 3, 2, 6, 7 }, + { 7, 6, 10, -1 }, + { 8, 200, 3, -1 }, + { 11, 200, 9, -1 }, + { 9, 200, 8, -1 }, + { 2, 200, 11, -1 }, + { 3, 200, 2, -1 }, + { 7, 6, 10, -1 }, + { 11, 2, 0, 9 }, + { 2, 11, 1, -1 }, + { 8, 3, 0, -1 }, + { 7, 6, 10, -1 }, + { 2, 11, 1, -1 }, + { 10, 7, 6, -1 }, + { 6, 10, 7, -1 }, + { 3, 8, 9, 1 }, + { 7, 6, 10, -1 }, + { 9, 0, 1, -1 }, + { 10, 7, 6, -1 }, + { 3, 0, 8, -1 }, + { 7, 6, 10, -1 }, + { 6, 10, 7, -1 }, + { 3, 200, 10, -1 }, + { 7, 200, 8, -1 }, + { 7, 6, 200, -1 }, + { 10, 200, 6, -1 }, + { 8, 200, 0, -1 }, + { 3, 0, 200, -1 }, + { 0, 1, 9, -1 }, + { 7, 6, 10, -1 }, + { 3, 200, 10, -1 }, + { 7, 200, 8, -1 }, + { 10, 200, 6, -1 }, + { 7, 6, 200, -1 }, + { 1, 200, 3, -1 }, + { 8, 200, 9, -1 }, + { 9, 200, 1, -1 }, + { 10, 200, 2, -1 }, + { 11, 200, 6, -1 }, + { 11, 1, 200, -1 }, + { 2, 200, 1, -1 }, + { 6, 200, 7, -1 }, + { 10, 7, 200, -1 }, + { 3, 10, 2, -1 }, + { 7, 0, 8, -1 }, + { 11, 1, 6, -1 }, + { 0, 7, 6, 1 }, + { 10, 200, 2, -1 }, + { 11, 200, 6, -1 }, + { 7, 200, 10, -1 }, + { 6, 200, 7, -1 }, + { 2, 200, 0, -1 }, + { 9, 200, 11, -1 }, + { 9, 0, 200, -1 }, + { 3, 10, 2, -1 }, + { 7, 200, 8, -1 }, + { 9, 200, 11, -1 }, + { 8, 200, 9, -1 }, + { 11, 200, 6, -1 }, + { 7, 6, 200, -1 }, + { 7, 3, 2, 6 }, + { 2, 200, 6, -1 }, + { 0, 200, 2, -1 }, + { 8, 200, 0, -1 }, + { 7, 200, 8, -1 }, + { 6, 200, 7, -1 }, + { 3, 200, 0, -1 }, + { 1, 200, 2, -1 }, + { 0, 200, 9, -1 }, + { 1, 9, 200, -1 }, + { 7, 200, 3, -1 }, + { 2, 200, 6, -1 }, + { 6, 200, 7, -1 }, + { 7, 200, 8, -1 }, + { 8, 200, 9, -1 }, + { 9, 200, 1, -1 }, + { 1, 200, 2, -1 }, + { 2, 200, 6, -1 }, + { 6, 200, 7, -1 }, + { 7, 200, 3, -1 }, + { 3, 200, 1, -1 }, + { 11, 1, 200, -1 }, + { 11, 200, 6, -1 }, + { 6, 200, 7, -1 }, + { 7, 0, 8, -1 }, + { 11, 1, 6, -1 }, + { 7, 6, 1, 0 }, + { 3, 200, 0, -1 }, + { 7, 200, 3, -1 }, + { 6, 200, 7, -1 }, + { 11, 200, 6, -1 }, + { 9, 200, 11, -1 }, + { 9, 0, 200, -1 }, + { 11, 200, 6, -1 }, + { 9, 200, 11, -1 }, + { 8, 200, 9, -1 }, + { 7, 200, 8, -1 }, + { 6, 200, 7, -1 }, + { 8, 10, 6, 4 }, + { 6, 200, 4, -1 }, + { 4, 200, 0, -1 }, + { 3, 0, 200, -1 }, + { 3, 200, 10, -1 }, + { 10, 200, 6, -1 }, + { 0, 200, 8, -1 }, + { 4, 200, 9, -1 }, + { 1, 200, 0, -1 }, + { 9, 200, 1, -1 }, + { 8, 200, 10, -1 }, + { 6, 200, 4, -1 }, + { 6, 10, 200, -1 }, + { 3, 200, 10, -1 }, + { 1, 200, 3, -1 }, + { 9, 200, 1, -1 }, + { 4, 200, 9, -1 }, + { 6, 200, 4, -1 }, + { 6, 10, 200, -1 }, + { 10, 200, 2, -1 }, + { 11, 200, 6, -1 }, + { 2, 200, 1, -1 }, + { 11, 1, 200, -1 }, + { 8, 200, 10, -1 }, + { 6, 200, 4, -1 }, + { 4, 200, 8, -1 }, + { 3, 10, 2, -1 }, + { 0, 200, 1, -1 }, + { 6, 200, 4, -1 }, + { 4, 200, 0, -1 }, + { 11, 200, 6, -1 }, + { 1, 200, 11, -1 }, + { 4, 6, 11, 9 }, + { 8, 0, 2, 10 }, + { 3, 10, 2, -1 }, + { 11, 9, 4, 6 }, + { 6, 200, 4, -1 }, + { 2, 200, 6, -1 }, + { 3, 200, 2, -1 }, + { 8, 200, 3, -1 }, + { 4, 200, 8, -1 }, + { 0, 4, 6, 2 }, + { 3, 0, 8, -1 }, + { 1, 200, 2, -1 }, + { 6, 200, 4, -1 }, + { 2, 200, 6, -1 }, + { 4, 200, 9, -1 }, + { 1, 9, 200, -1 }, + { 4, 200, 9, -1 }, + { 6, 200, 4, -1 }, + { 2, 200, 6, -1 }, + { 1, 200, 2, -1 }, + { 9, 200, 1, -1 }, + { 8, 200, 3, -1 }, + { 3, 200, 1, -1 }, + { 1, 200, 11, -1 }, + { 11, 200, 6, -1 }, + { 6, 200, 4, -1 }, + { 4, 200, 8, -1 }, + { 11, 200, 6, -1 }, + { 6, 200, 4, -1 }, + { 4, 200, 0, -1 }, + { 0, 200, 1, -1 }, + { 11, 1, 200, -1 }, + { 3, 0, 8, -1 }, + { 9, 4, 6, 11 }, + { 4, 6, 11, 9 }, + { 4, 200, 7, -1 }, + { 6, 200, 5, -1 }, + { 5, 200, 9, -1 }, + { 9, 200, 4, -1 }, + { 6, 10, 200, -1 }, + { 7, 200, 10, -1 }, + { 8, 4, 7, -1 }, + { 3, 0, 10, -1 }, + { 6, 9, 5, -1 }, + { 0, 9, 6, 10 }, + { 4, 200, 7, -1 }, + { 6, 200, 5, -1 }, + { 7, 200, 10, -1 }, + { 6, 10, 200, -1 }, + { 0, 200, 4, -1 }, + { 5, 200, 1, -1 }, + { 1, 200, 0, -1 }, + { 8, 4, 7, -1 }, + { 3, 200, 10, -1 }, + { 5, 200, 1, -1 }, + { 1, 200, 3, -1 }, + { 6, 200, 5, -1 }, + { 10, 200, 6, -1 }, + { 5, 11, 6, -1 }, + { 1, 4, 9, -1 }, + { 10, 7, 2, -1 }, + { 4, 1, 2, 7 }, + { 1, 9, 0, -1 }, + { 6, 5, 11, -1 }, + { 3, 10, 2, -1 }, + { 4, 7, 8, -1 }, + { 5, 11, 6, -1 }, + { 4, 200, 7, -1 }, + { 2, 200, 0, -1 }, + { 0, 200, 4, -1 }, + { 10, 200, 2, -1 }, + { 7, 200, 10, -1 }, + { 7, 8, 4, -1 }, + { 2, 3, 10, -1 }, + { 11, 6, 5, -1 }, + { 4, 200, 7, -1 }, + { 6, 200, 5, -1 }, + { 9, 200, 4, -1 }, + { 5, 200, 9, -1 }, + { 7, 200, 3, -1 }, + { 2, 200, 6, -1 }, + { 2, 3, 200, -1 }, + { 8, 4, 7, -1 }, + { 9, 200, 0, -1 }, + { 2, 200, 6, -1 }, + { 0, 200, 2, -1 }, + { 6, 200, 5, -1 }, + { 9, 5, 200, -1 }, + { 2, 1, 5, 6 }, + { 3, 7, 4, 0 }, + { 8, 4, 7, -1 }, + { 5, 6, 2, 1 }, + { 11, 6, 5, -1 }, + { 1, 200, 9, -1 }, + { 7, 200, 3, -1 }, + { 3, 200, 1, -1 }, + { 4, 200, 7, -1 }, + { 9, 200, 4, -1 }, + { 9, 0, 1, -1 }, + { 7, 8, 4, -1 }, + { 6, 5, 11, -1 }, + { 11, 6, 5, -1 }, + { 7, 4, 0, 3 }, + { 6, 5, 11, -1 }, + { 7, 8, 4, -1 }, + { 8, 200, 10, -1 }, + { 9, 200, 8, -1 }, + { 5, 200, 9, -1 }, + { 6, 200, 5, -1 }, + { 10, 200, 6, -1 }, + { 3, 0, 10, -1 }, + { 6, 9, 5, -1 }, + { 10, 0, 9, 6 }, + { 0, 200, 8, -1 }, + { 8, 200, 10, -1 }, + { 10, 200, 6, -1 }, + { 6, 200, 5, -1 }, + { 5, 200, 1, -1 }, + { 1, 200, 0, -1 }, + { 6, 200, 5, -1 }, + { 5, 200, 1, -1 }, + { 1, 200, 3, -1 }, + { 3, 200, 10, -1 }, + { 6, 10, 200, -1 }, + { 5, 11, 6, -1 }, + { 1, 200, 9, -1 }, + { 8, 200, 10, -1 }, + { 9, 200, 8, -1 }, + { 10, 200, 2, -1 }, + { 1, 2, 200, -1 }, + { 1, 9, 0, -1 }, + { 10, 2, 3, -1 }, + { 6, 5, 11, -1 }, + { 5, 11, 6, -1 }, + { 10, 8, 0, 2 }, + { 6, 5, 11, -1 }, + { 10, 2, 3, -1 }, + { 8, 200, 3, -1 }, + { 9, 200, 8, -1 }, + { 5, 200, 9, -1 }, + { 6, 200, 5, -1 }, + { 2, 200, 6, -1 }, + { 2, 3, 200, -1 }, + { 6, 200, 5, -1 }, + { 2, 200, 6, -1 }, + { 0, 200, 2, -1 }, + { 9, 200, 0, -1 }, + { 5, 200, 9, -1 }, + { 8, 3, 0, -1 }, + { 1, 5, 6, 2 }, + { 2, 1, 5, 6 }, + { 6, 5, 11, -1 }, + { 1, 3, 8, 9 }, + { 11, 6, 5, -1 }, + { 1, 9, 0, -1 }, + { 3, 0, 8, -1 }, + { 11, 6, 5, -1 }, + { 5, 11, 6, -1 }, + { 5, 7, 10, 11 }, + { 7, 200, 8, -1 }, + { 3, 200, 10, -1 }, + { 8, 200, 0, -1 }, + { 3, 0, 200, -1 }, + { 5, 200, 7, -1 }, + { 10, 200, 11, -1 }, + { 11, 200, 5, -1 }, + { 9, 200, 5, -1 }, + { 11, 200, 1, -1 }, + { 0, 200, 9, -1 }, + { 1, 200, 0, -1 }, + { 5, 200, 7, -1 }, + { 10, 200, 11, -1 }, + { 10, 7, 200, -1 }, + { 8, 7, 5, 9 }, + { 3, 1, 11, 10 }, + { 1, 200, 5, -1 }, + { 5, 200, 7, -1 }, + { 10, 7, 200, -1 }, + { 10, 200, 2, -1 }, + { 2, 200, 1, -1 }, + { 10, 2, 3, -1 }, + { 7, 200, 8, -1 }, + { 1, 200, 5, -1 }, + { 5, 200, 7, -1 }, + { 0, 200, 1, -1 }, + { 8, 200, 0, -1 }, + { 10, 200, 2, -1 }, + { 2, 200, 0, -1 }, + { 0, 200, 9, -1 }, + { 9, 200, 5, -1 }, + { 5, 200, 7, -1 }, + { 7, 200, 10, -1 }, + { 2, 3, 10, -1 }, + { 7, 5, 9, 8 }, + { 5, 200, 7, -1 }, + { 7, 200, 3, -1 }, + { 2, 3, 200, -1 }, + { 2, 200, 11, -1 }, + { 11, 200, 5, -1 }, + { 2, 200, 11, -1 }, + { 0, 200, 2, -1 }, + { 8, 200, 0, -1 }, + { 7, 200, 8, -1 }, + { 5, 200, 7, -1 }, + { 5, 11, 200, -1 }, + { 2, 11, 1, -1 }, + { 3, 200, 0, -1 }, + { 5, 200, 7, -1 }, + { 7, 200, 3, -1 }, + { 9, 200, 5, -1 }, + { 0, 200, 9, -1 }, + { 2, 11, 1, -1 }, + { 5, 9, 8, 7 }, + { 3, 7, 5, 1 }, + { 0, 200, 1, -1 }, + { 1, 200, 5, -1 }, + { 5, 200, 7, -1 }, + { 7, 200, 8, -1 }, + { 0, 8, 200, -1 }, + { 9, 200, 5, -1 }, + { 5, 200, 7, -1 }, + { 7, 200, 3, -1 }, + { 3, 200, 0, -1 }, + { 9, 0, 200, -1 }, + { 8, 7, 5, 9 }, + { 10, 200, 11, -1 }, + { 8, 200, 10, -1 }, + { 4, 200, 8, -1 }, + { 5, 200, 4, -1 }, + { 11, 200, 5, -1 }, + { 5, 200, 4, -1 }, + { 4, 200, 0, -1 }, + { 0, 200, 3, -1 }, + { 3, 200, 10, -1 }, + { 10, 200, 11, -1 }, + { 11, 200, 5, -1 }, + { 4, 9, 5, -1 }, + { 0, 200, 8, -1 }, + { 10, 200, 11, -1 }, + { 8, 200, 10, -1 }, + { 11, 200, 1, -1 }, + { 0, 1, 200, -1 }, + { 4, 9, 5, -1 }, + { 11, 10, 3, 1 }, + { 10, 200, 2, -1 }, + { 8, 200, 10, -1 }, + { 4, 200, 8, -1 }, + { 5, 200, 4, -1 }, + { 1, 200, 5, -1 }, + { 1, 2, 200, -1 }, + { 10, 2, 3, -1 }, + { 1, 0, 4, 5 }, + { 5, 4, 9, -1 }, + { 8, 0, 2, 10 }, + { 9, 5, 4, -1 }, + { 2, 3, 10, -1 }, + { 8, 4, 3, -1 }, + { 2, 5, 11, -1 }, + { 3, 4, 5, 2 }, + { 2, 200, 11, -1 }, + { 0, 200, 2, -1 }, + { 4, 200, 0, -1 }, + { 5, 200, 4, -1 }, + { 11, 200, 5, -1 }, + { 9, 5, 4, -1 }, + { 3, 0, 8, -1 }, + { 2, 11, 1, -1 }, + { 9, 5, 4, -1 }, + { 1, 2, 11, -1 }, + { 5, 200, 4, -1 }, + { 1, 200, 5, -1 }, + { 3, 200, 1, -1 }, + { 8, 200, 3, -1 }, + { 4, 200, 8, -1 }, + { 0, 4, 5, 1 }, + { 4, 9, 5, -1 }, + { 8, 3, 0, -1 }, + { 9, 5, 4, -1 }, + { 11, 200, 9, -1 }, + { 10, 200, 11, -1 }, + { 7, 200, 10, -1 }, + { 4, 200, 7, -1 }, + { 9, 200, 4, -1 }, + { 7, 8, 4, -1 }, + { 3, 200, 10, -1 }, + { 11, 200, 9, -1 }, + { 10, 200, 11, -1 }, + { 9, 200, 0, -1 }, + { 3, 0, 200, -1 }, + { 4, 200, 7, -1 }, + { 0, 200, 4, -1 }, + { 1, 200, 0, -1 }, + { 11, 200, 1, -1 }, + { 10, 200, 11, -1 }, + { 10, 7, 200, -1 }, + { 4, 7, 8, -1 }, + { 10, 3, 1, 11 }, + { 1, 4, 9, -1 }, + { 10, 7, 2, -1 }, + { 1, 2, 7, 4 }, + { 8, 4, 7, -1 }, + { 1, 9, 0, -1 }, + { 2, 3, 10, -1 }, + { 10, 200, 2, -1 }, + { 2, 200, 0, -1 }, + { 0, 200, 4, -1 }, + { 4, 200, 7, -1 }, + { 10, 7, 200, -1 }, + { 8, 4, 7, -1 }, + { 3, 10, 2, -1 }, + { 4, 200, 7, -1 }, + { 7, 200, 3, -1 }, + { 3, 200, 2, -1 }, + { 2, 200, 11, -1 }, + { 11, 200, 9, -1 }, + { 9, 200, 4, -1 }, + { 7, 8, 4, -1 }, + { 9, 11, 2, 0 }, + { 11, 1, 2, -1 }, + { 3, 7, 4, 0 }, + { 1, 2, 11, -1 }, + { 4, 7, 8, -1 }, + { 4, 200, 7, -1 }, + { 7, 200, 3, -1 }, + { 3, 200, 1, -1 }, + { 1, 200, 9, -1 }, + { 4, 9, 200, -1 }, + { 0, 1, 9, -1 }, + { 8, 4, 7, -1 }, + { 0, 3, 7, 4 }, + { 7, 8, 4, -1 }, + { 8, 9, 11, 10 }, + { 9, 200, 0, -1 }, + { 11, 200, 9, -1 }, + { 10, 200, 11, -1 }, + { 3, 200, 10, -1 }, + { 0, 200, 3, -1 }, + { 11, 200, 1, -1 }, + { 10, 200, 11, -1 }, + { 8, 200, 10, -1 }, + { 0, 200, 8, -1 }, + { 1, 200, 0, -1 }, + { 3, 1, 11, 10 }, + { 10, 200, 2, -1 }, + { 8, 200, 10, -1 }, + { 9, 200, 8, -1 }, + { 1, 200, 9, -1 }, + { 2, 200, 1, -1 }, + { 0, 1, 9, -1 }, + { 3, 10, 2, -1 }, + { 0, 2, 10, 8 }, + { 10, 2, 3, -1 }, + { 2, 200, 11, -1 }, + { 11, 200, 9, -1 }, + { 9, 200, 8, -1 }, + { 8, 200, 3, -1 }, + { 2, 3, 200, -1 }, + { 0, 9, 11, 2 }, + { 2, 11, 1, -1 }, + { 3, 0, 8, -1 }, + { 1, 2, 11, -1 }, + { 8, 9, 1, 3 }, + { 1, 9, 0, -1 }, + { 3, 0, 8, -1 } +}; + +// Special points (e.g. centroid): per-case definition streams +constexpr int special_point_count_interface[256] = { 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }; +constexpr int special_point_offset_interface[257] = { 0, 0, 0, 0, 0, 0, 3, 3, 9, 9, 9, 12, 18, 18, 24, 30, 30, 30, 30, 33, 39, 39, 44, 49, 56, 59, 65, 65, 65, 70, 77, 83, 89, 89, 92, 92, 98, 101, 101, 107, 107, 107, 112, 117, 124, 129, 135, 142, 148, 148, 154, 160, 160, 165, 171, 178, 184, 189, 196, 202, 208, 208, 208, 208, 208, 208, 208, 211, 216, 216, 221, 227, 234, 237, 242, 242, 248, 254, 261, 261, 267, 270, 275, 275, 281, 286, 286, 292, 292, 292, 298, 298, 298, 304, 304, 304, 304, 304, 309, 315, 322, 328, 334, 334, 340, 345, 345, 351, 351, 358, 358, 364, 364, 370, 377, 377, 383, 390, 390, 396, 396, 402, 402, 402, 402, 402, 402, 402, 402, 402, 405, 405, 410, 413, 413, 418, 424, 424, 430, 435, 442, 448, 448, 455, 461, 461, 467, 472, 479, 484, 490, 490, 490, 496, 496, 502, 508, 515, 521, 521, 521, 524, 524, 529, 535, 535, 535, 541, 541, 546, 552, 552, 552, 558, 558, 558, 558, 564, 564, 571, 577, 583, 583, 583, 583, 590, 596, 596, 596, 596, 596, 596, 596, 596, 601, 606, 606, 612, 618, 625, 625, 631, 638, 644, 644, 644, 650, 656, 656, 662, 669, 675, 675, 682, 682, 682, 682, 682, 688, 688, 688, 694, 694, 694, 694, 700, 706, 713, 713, 713, 713, 719, 719, 726, 726, 726, 726, 732, 732, 732, 732, 732, 738, 744, 744, 750, 750, 750, 750, 756, 756, 756, 756, 756, 756, 756, 756 }; +constexpr int special_point_data_interface[756] = { 2, 8, 11, 5, 8, 9, 3, 2, 11, 2, 10, 9, 5, 9, 8, 1, 2, 10, 5, 8, 10, 0, 1, 11, 5, 10, 11, 3, 0, 9, 2, 7, 1, 5, 1, 3, 9, 4, 7, 4, 4, 7, 11, 11, 4, 11, 2, 7, 7, 6, 3, 2, 11, 9, 4, 7, 2, 2, 4, 5, 4, 0, 7, 10, 2, 4, 11, 1, 4, 4, 6, 0, 1, 11, 10, 7, 4, 5, 11, 9, 10, 7, 4, 5, 9, 11, 10, 4, 7, 2, 3, 5, 5, 3, 1, 8, 4, 5, 2, 2, 4, 5, 4, 0, 5, 11, 2, 4, 2, 10, 5, 5, 4, 5, 4, 10, 10, 6, 8, 4, 5, 1, 2, 10, 4, 10, 3, 4, 4, 5, 10, 11, 8, 4, 5, 6, 0, 3, 10, 11, 5, 4, 5, 11, 10, 8, 5, 4, 5, 3, 7, 0, 9, 5, 5, 7, 5, 8, 0, 1, 4, 7, 8, 2, 2, 5, 7, 5, 3, 2, 11, 6, 0, 8, 7, 5, 11, 2, 5, 5, 7, 3, 11, 2, 4, 5, 9, 2, 2, 6, 0, 9, 5, 7, 10, 2, 5, 5, 1, 7, 10, 2, 5, 1, 5, 7, 2, 10, 2, 0, 6, 4, 8, 3, 6, 6, 4, 6, 5, 8, 8, 5, 0, 2, 9, 5, 6, 6, 9, 5, 6, 2, 3, 8, 2, 3, 5, 4, 0, 8, 5, 5, 5, 8, 10, 9, 5, 6, 5, 3, 1, 10, 6, 5, 6, 10, 6, 5, 1, 0, 8, 5, 10, 8, 9, 6, 5, 2, 8, 11, 4, 0, 3, 11, 11, 5, 3, 7, 1, 11, 6, 4, 2, 1, 8, 8, 5, 2, 6, 0, 8, 7, 5, 0, 2, 4, 5, 11, 5, 1, 5, 3, 8, 4, 4, 6, 11, 3, 3, 5, 0, 4, 1, 11, 6, 6, 1, 11, 6, 4, 8, 3, 5, 2, 6, 1, 9, 4, 5, 6, 4, 2, 3, 8, 5, 4, 6, 2, 8, 3, 4, 4, 9, 3, 3, 5, 4, 6, 0, 3, 10, 6, 1, 9, 4, 6, 10, 3, 5, 6, 4, 0, 10, 3, 5, 8, 9, 7, 6, 11, 6, 7, 6, 11, 9, 0, 3, 5, 7, 3, 1, 6, 11, 6, 9, 1, 2, 6, 7, 8, 5, 6, 2, 0, 7, 8, 5, 9, 11, 8, 3, 2, 2, 0, 6, 4, 9, 1, 6, 6, 2, 7, 1, 4, 9, 0, 7, 7, 5, 9, 11, 8, 7, 6, 5, 0, 2, 8, 7, 6, 4, 6, 7, 9, 9, 6, 8, 7, 6, 2, 1, 9, 5, 1, 3, 11, 6, 7, 6, 3, 0, 9, 11, 6, 7, 5, 11, 9, 8, 6, 7, 5, 0, 4, 3, 10, 6, 4, 6, 10, 1, 1, 6, 3, 10, 6, 4, 9, 1, 4, 4, 8, 1, 1, 5, 4, 6, 0, 1, 11, 5, 2, 6, 3, 8, 4, 5, 6, 4, 2, 1, 9, 5, 4, 6, 2, 9, 1, 6, 3, 8, 4, 6, 11, 1, 5, 6, 4, 0, 11, 1, 2, 10, 9, 4, 1, 0, 10, 10, 5, 1, 5, 3, 10, 6, 5, 0, 2, 4, 7, 10, 4, 2, 3, 9, 9, 5, 2, 6, 0, 9, 5, 5, 3, 7, 1, 9, 4, 5, 9, 8, 5, 6, 10, 6, 8, 0, 1, 5, 6, 10, 5, 5, 1, 3, 6, 10, 5, 8, 10, 9, 1, 2, 6, 8, 3, 2, 6, 5, 9, 5, 6, 2, 0, 5, 9, 4, 11, 5, 0, 0, 4, 10, 7, 0, 0, 5, 7, 5, 10, 2, 1, 5, 5, 1, 7, 8, 0, 6, 2, 10, 7, 5, 9, 0, 5, 3, 7, 2, 11, 5, 6, 2, 11, 5, 7, 8, 0, 5, 7, 5, 3, 0, 9, 5, 1, 5, 7, 0, 8, 5, 5, 7, 3, 9, 0, 5, 8, 10, 4, 5, 11, 6, 4, 5, 11, 10, 3, 0, 5, 10, 11, 8, 0, 1, 6, 10, 2, 1, 5, 4, 8, 5, 2, 0, 4, 11, 5, 5, 5, 1, 3, 4, 8, 5, 10, 11, 7, 4, 9, 5, 11, 9, 10, 3, 0, 6, 4, 7, 10, 11, 1, 0, 5, 2, 0, 4, 10, 7, 6, 7, 4, 9, 11, 2, 3, 5, 7, 3, 1, 4, 9, 5, 9, 11, 10, 0, 3, 5, 11, 10, 8, 1, 0, 5, 10, 8, 9, 2, 1, 5, 11, 9, 8, 2, 3 }; + +} // namespace cutcells::cell::hexahedron + +#endif // CUT_CELLS_HEXAHEDRON_INTERFACE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_hexahedron_outside_tables.h b/cpp/src/generated/cut_hexahedron_outside_tables.h new file mode 100644 index 0000000..b8cf519 --- /dev/null +++ b/cpp/src/generated/cut_hexahedron_outside_tables.h @@ -0,0 +1,1578 @@ +#ifndef CUT_CELLS_HEXAHEDRON_OUTSIDE_TABLES_H +#define CUT_CELLS_HEXAHEDRON_OUTSIDE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::hexahedron { + +// Number of subcells produced for each case (outside volume) +constexpr int num_subcells_outside[256] = { 1, 8, 8, 2, 8, 5, 2, 8, 8, 2, 5, 8, 2, 8, 8, 1, 8, 2, 5, 8, 6, 10, 10, 8, 5, 8, 5, 5, 10, 8, 8, 6, 8, 5, 2, 8, 5, 5, 8, 5, 6, 10, 10, 8, 10, 8, 8, 6, 2, 8, 8, 1, 10, 8, 8, 6, 10, 8, 8, 6, 2, 7, 7, 1, 8, 6, 5, 10, 2, 10, 8, 8, 5, 10, 5, 8, 8, 8, 5, 6, 5, 10, 5, 8, 10, 2, 8, 7, 5, 8, 5, 5, 8, 7, 5, 6, 2, 10, 8, 8, 8, 8, 1, 6, 10, 2, 8, 7, 8, 7, 6, 1, 8, 8, 5, 6, 8, 7, 6, 1, 8, 7, 5, 6, 7, 2, 6, 1, 8, 5, 6, 10, 5, 5, 10, 8, 2, 8, 10, 8, 8, 5, 8, 6, 2, 8, 10, 8, 10, 8, 2, 7, 8, 1, 8, 6, 8, 6, 7, 1, 5, 5, 10, 8, 5, 5, 8, 5, 10, 8, 2, 7, 8, 5, 7, 6, 8, 5, 8, 6, 8, 5, 7, 6, 8, 6, 7, 1, 7, 6, 2, 1, 2, 10, 10, 2, 8, 8, 8, 7, 8, 8, 8, 7, 1, 6, 6, 1, 8, 8, 8, 7, 8, 7, 7, 2, 5, 6, 5, 6, 6, 1, 6, 1, 8, 8, 8, 7, 5, 5, 6, 6, 8, 7, 7, 2, 6, 6, 1, 1, 1, 6, 6, 1, 6, 6, 1, 1, 6, 1, 6, 1, 1, 1, 1, 0 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_outside[257] = { 0, 1, 9, 17, 19, 27, 32, 34, 42, 50, 52, 57, 65, 67, 75, 83, 84, 92, 94, 99, 107, 113, 123, 133, 141, 146, 154, 159, 164, 174, 182, 190, 196, 204, 209, 211, 219, 224, 229, 237, 242, 248, 258, 268, 276, 286, 294, 302, 308, 310, 318, 326, 327, 337, 345, 353, 359, 369, 377, 385, 391, 393, 400, 407, 408, 416, 422, 427, 437, 439, 449, 457, 465, 470, 480, 485, 493, 501, 509, 514, 520, 525, 535, 540, 548, 558, 560, 568, 575, 580, 588, 593, 598, 606, 613, 618, 624, 626, 636, 644, 652, 660, 668, 669, 675, 685, 687, 695, 702, 710, 717, 723, 724, 732, 740, 745, 751, 759, 766, 772, 773, 781, 788, 793, 799, 806, 808, 814, 815, 823, 828, 834, 844, 849, 854, 864, 872, 874, 882, 892, 900, 908, 913, 921, 927, 929, 937, 947, 955, 965, 973, 975, 982, 990, 991, 999, 1005, 1013, 1019, 1026, 1027, 1032, 1037, 1047, 1055, 1060, 1065, 1073, 1078, 1088, 1096, 1098, 1105, 1113, 1118, 1125, 1131, 1139, 1144, 1152, 1158, 1166, 1171, 1178, 1184, 1192, 1198, 1205, 1206, 1213, 1219, 1221, 1222, 1224, 1234, 1244, 1246, 1254, 1262, 1270, 1277, 1285, 1293, 1301, 1308, 1309, 1315, 1321, 1322, 1330, 1338, 1346, 1353, 1361, 1368, 1375, 1377, 1382, 1388, 1393, 1399, 1405, 1406, 1412, 1413, 1421, 1429, 1437, 1444, 1449, 1454, 1460, 1466, 1474, 1481, 1488, 1490, 1496, 1502, 1503, 1504, 1505, 1511, 1517, 1518, 1524, 1530, 1531, 1532, 1538, 1539, 1545, 1546, 1547, 1548, 1549, 1549 }; + +// Cell types for outside subcells +constexpr type subcell_type_outside[1549] = { cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::hexahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron }; + +// Subcell vertices (max 8 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_outside[1549][8] = { + { 100, 101, 102, 103, 104, 105, 106, 107 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 103, 104, 101, 200, -1, -1, -1, -1 }, + { 102, 101, 105, 106, 200, -1, -1, -1 }, + { 101, 104, 105, 200, -1, -1, -1, -1 }, + { 107, 106, 105, 104, 200, -1, -1, -1 }, + { 107, 104, 103, 200, -1, -1, -1, -1 }, + { 107, 103, 102, 106, 200, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 1, 9, 0, 102, 105, 100, -1, -1 }, + { 102, 100, 105, 200, -1, -1, -1, -1 }, + { 106, 105, 104, 107, 200, -1, -1, -1 }, + { 105, 100, 104, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 100, 200, -1, -1, -1 }, + { 103, 100, 102, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 107, 200, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 104, 103, 102, 105, 8, 3, 1, 9 }, + { 106, 105, 102, 107, 104, 103, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 101, 106, 103, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 106, 200, -1, -1, -1 }, + { 106, 107, 103, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 104, 200, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 101, 200, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 103, 101, 106, 2, 1, 11, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 107, 106, 105, 104, 103, -1, -1, -1 }, + { 101, 104, 105, 103, -1, -1, -1, -1 }, + { 101, 105, 106, 103, -1, -1, -1, -1 }, + { 0, 9, 11, 2, 100, 105, 106, 103 }, + { 104, 100, 105, 107, 103, 106, -1, -1 }, + { 107, 106, 105, 104, 200, -1, -1, -1 }, + { 104, 103, 107, 200, -1, -1, -1, -1 }, + { 103, 106, 107, 200, -1, -1, -1, -1 }, + { 103, 2, 11, 106, 200, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 8, 3, 103, 104, 200, -1, -1, -1 }, + { 2, 103, 3, 200, -1, -1, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 107, 100, 102, 200, -1, -1, -1, -1 }, + { 106, 102, 101, 105, 200, -1, -1, -1 }, + { 102, 100, 101, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 100, 200, -1, -1, -1 }, + { 104, 100, 107, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 105, 200, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 101, 104, 107, 102, 0, 8, 10, 2 }, + { 106, 102, 107, 105, 101, 104, -1, -1 }, + { 0, 1, 9, 100, 102, 105, -1, -1 }, + { 100, 102, 107, 3, 2, 10, -1, -1 }, + { 104, 107, 106, 105, 100, -1, -1, -1 }, + { 102, 106, 107, 100, -1, -1, -1, -1 }, + { 102, 105, 106, 100, -1, -1, -1, -1 }, + { 106, 105, 104, 107, 200, -1, -1, -1 }, + { 105, 106, 102, 200, -1, -1, -1, -1 }, + { 102, 106, 107, 200, -1, -1, -1, -1 }, + { 102, 107, 10, 2, 200, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 9, 105, 102, 1, 200, -1, -1, -1 }, + { 2, 1, 102, 200, -1, -1, -1, -1 }, + { 100, 107, 106, 101, 3, 10, 11, 1 }, + { 105, 101, 106, 104, 100, 107, -1, -1 }, + { 105, 104, 107, 106, 200, -1, -1, -1 }, + { 104, 105, 101, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 8, 104, 101, 0, 200, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 105, 200, -1, -1, -1 }, + { 107, 104, 100, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 10, 107, 100, 3, 200, -1, -1, -1 }, + { 0, 3, 100, 200, -1, -1, -1, -1 }, + { 8, 9, 11, 10, 104, 105, 106, 107 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 107, 105, 100, 200, -1, -1, -1, -1 }, + { 106, 102, 101, 105, 200, -1, -1, -1 }, + { 105, 101, 100, 200, -1, -1, -1, -1 }, + { 103, 100, 101, 102, 200, -1, -1, -1 }, + { 103, 107, 100, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 107, 200, -1, -1, -1 }, + { 107, 106, 105, 200, -1, -1, -1, -1 }, + { 0, 3, 7, 4, 101, 103, 107, 105 }, + { 102, 101, 103, 106, 105, 107, -1, -1 }, + { 100, 105, 102, 0, 9, 1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 103, 102, 106, 107, 100, -1, -1, -1 }, + { 105, 107, 106, 100, -1, -1, -1, -1 }, + { 105, 106, 102, 100, -1, -1, -1, -1 }, + { 106, 107, 103, 102, 200, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 105, 107, 106, 200, -1, -1, -1, -1 }, + { 105, 4, 7, 107, 200, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 1, 9, 105, 102, 200, -1, -1, -1 }, + { 4, 105, 9, 200, -1, -1, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 105, 100, 107, 4, 8, 7, -1, -1 }, + { 107, 100, 103, 105, -1, -1, -1, -1 }, + { 105, 106, 101, 103, -1, -1, -1, -1 }, + { 101, 100, 105, 103, -1, -1, -1, -1 }, + { 105, 107, 106, 103, -1, -1, -1, -1 }, + { 106, 103, 101, 11, 2, 1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 107, 103, 106, 200, -1, -1, -1, -1 }, + { 107, 106, 105, 200, -1, -1, -1, -1 }, + { 4, 7, 107, 105, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 105, 106, 101, 200, -1, -1, -1, -1 }, + { 3, 7, 4, 0, 200, -1, -1, -1 }, + { 101, 106, 103, 200, -1, -1, -1, -1 }, + { 3, 0, 101, 103, 200, -1, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 106, 105, 107, 200, -1, -1, -1, -1 }, + { 106, 107, 103, 200, -1, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 0, 2, 103, 100, 200, -1, -1, -1 }, + { 103, 107, 100, 200, -1, -1, -1, -1 }, + { 9, 11, 2, 0, 200, -1, -1, -1 }, + { 100, 107, 105, 200, -1, -1, -1, -1 }, + { 9, 0, 100, 105, 200, -1, -1, -1 }, + { 107, 106, 105, 200, -1, -1, -1, -1 }, + { 7, 107, 105, 4, 200, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 103, 106, 107, 200, -1, -1, -1, -1 }, + { 103, 3, 2, 200, -1, -1, -1, -1 }, + { 103, 2, 11, 106, 200, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 9, 4, 105, 200, -1, -1, -1, -1 }, + { 100, 107, 105, 8, 7, 4, -1, -1 }, + { 3, 10, 2, 100, 107, 102, -1, -1 }, + { 101, 105, 106, 102, 100, -1, -1, -1 }, + { 107, 102, 106, 100, -1, -1, -1, -1 }, + { 107, 106, 105, 100, -1, -1, -1, -1 }, + { 106, 102, 101, 105, 200, -1, -1, -1 }, + { 105, 107, 106, 200, -1, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 107, 10, 2, 102, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 4, 7, 107, 105, 200, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 102, 100, 105, 1, 0, 9, -1, -1 }, + { 2, 3, 10, 102, 100, 107, -1, -1 }, + { 100, 107, 105, 102, -1, -1, -1, -1 }, + { 102, 106, 107, 105, -1, -1, -1, -1 }, + { 106, 105, 107, 102, -1, -1, -1, -1 }, + { 1, 9, 105, 102, 4, -1, -1, -1 }, + { 2, 102, 107, 10, 7, -1, -1, -1 }, + { 105, 4, 7, 107, 102, -1, -1, -1 }, + { 1, 2, 7, 4, 102, -1, -1, -1 }, + { 4, 7, 8, 105, 107, 100, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 106, 105, 107, 200, -1, -1, -1, -1 }, + { 106, 101, 105, 200, -1, -1, -1, -1 }, + { 1, 101, 106, 11, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 101, 100, 105, 200, -1, -1, -1, -1 }, + { 10, 3, 1, 11, 200, -1, -1, -1 }, + { 100, 107, 105, 200, -1, -1, -1, -1 }, + { 10, 107, 100, 3, 200, -1, -1, -1 }, + { 105, 107, 106, 200, -1, -1, -1, -1 }, + { 4, 7, 107, 105, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 101, 1, 0, 200, -1, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 105, 100, 107, 200, -1, -1, -1, -1 }, + { 107, 100, 3, 10, 200, -1, -1, -1 }, + { 106, 105, 107, 200, -1, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 3, 100, 0, 200, -1, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 10, 11, 106, 107, 200, -1, -1, -1 }, + { 7, 10, 107, 200, -1, -1, -1, -1 }, + { 107, 106, 105, 200, -1, -1, -1, -1 }, + { 7, 107, 105, 4, 200, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 101, 104, 106, 200, -1, -1, -1, -1 }, + { 102, 106, 107, 103, 200, -1, -1, -1 }, + { 106, 104, 107, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 104, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 200, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 4, 9, 5, 104, 101, 106, -1, -1 }, + { 104, 101, 103, 8, 0, 3, -1, -1 }, + { 107, 103, 102, 106, 104, -1, -1, -1 }, + { 101, 102, 103, 104, -1, -1, -1, -1 }, + { 101, 106, 102, 104, -1, -1, -1, -1 }, + { 100, 102, 106, 104, 0, 1, 5, 4 }, + { 107, 104, 106, 103, 100, 102, -1, -1 }, + { 107, 103, 102, 106, 200, -1, -1, -1 }, + { 103, 107, 104, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 3, 103, 104, 8, 200, -1, -1, -1 }, + { 4, 8, 104, 200, -1, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 100, 103, 107, 104, 101, -1, -1, -1 }, + { 106, 107, 103, 101, -1, -1, -1, -1 }, + { 106, 104, 107, 101, -1, -1, -1, -1 }, + { 101, 104, 106, 9, 4, 5, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 103, 101, 106, 2, 1, 11, -1, -1 }, + { 101, 104, 106, 103, -1, -1, -1, -1 }, + { 103, 106, 107, 104, -1, -1, -1, -1 }, + { 107, 104, 100, 103, 200, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 106, 107, 103, 200, -1, -1, -1, -1 }, + { 106, 103, 2, 11, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 107, 106, 104, 103, -1, -1, -1, -1 }, + { 3, 103, 104, 8, 4, -1, -1, -1 }, + { 2, 11, 106, 103, 5, -1, -1, -1 }, + { 104, 106, 5, 4, 103, -1, -1, -1 }, + { 3, 4, 5, 2, 103, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 2, 3, 10, 102, 100, 107, -1, -1 }, + { 107, 104, 100, 102, -1, -1, -1, -1 }, + { 102, 101, 106, 104, -1, -1, -1, -1 }, + { 101, 102, 100, 104, -1, -1, -1, -1 }, + { 102, 106, 107, 104, -1, -1, -1, -1 }, + { 5, 4, 9, 106, 104, 101, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 107, 106, 104, 200, -1, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 2, 102, 107, 10, 200, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 102, 101, 106, 200, -1, -1, -1, -1 }, + { 8, 0, 2, 10, 200, -1, -1, -1 }, + { 101, 104, 106, 200, -1, -1, -1, -1 }, + { 8, 104, 101, 0, 200, -1, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 106, 107, 102, 200, -1, -1, -1, -1 }, + { 106, 104, 107, 200, -1, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 104, 100, 107, 200, -1, -1, -1, -1 }, + { 1, 0, 4, 5, 200, -1, -1, -1 }, + { 100, 102, 107, 200, -1, -1, -1, -1 }, + { 1, 102, 100, 0, 200, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 10, 2, 102, 107, 200, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 1, 102, 2, 200, -1, -1, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 10, 11, 106, 107, 200, -1, -1, -1 }, + { 107, 106, 104, 200, -1, -1, -1, -1 }, + { 107, 104, 100, 200, -1, -1, -1, -1 }, + { 3, 10, 107, 100, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 11, 10, 3, 1, 200, -1, -1, -1 }, + { 101, 104, 106, 200, -1, -1, -1, -1 }, + { 11, 1, 101, 106, 200, -1, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 106, 101, 104, 200, -1, -1, -1, -1 }, + { 104, 101, 0, 8, 200, -1, -1, -1 }, + { 107, 106, 104, 200, -1, -1, -1, -1 }, + { 11, 106, 107, 10, 200, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 0, 101, 1, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 100, 107, 104, 200, -1, -1, -1, -1 }, + { 100, 0, 3, 200, -1, -1, -1, -1 }, + { 100, 3, 10, 107, 200, -1, -1, -1 }, + { 10, 11, 106, 107, 200, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 10, 11, 106, 107, 200, -1, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 4, 8, 104, 200, -1, -1, -1, -1 }, + { 104, 107, 106, 200, -1, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 106, 11, 5, 200, -1, -1, -1, -1 }, + { 8, 7, 5, 9, 100, 107, 106, 101 }, + { 103, 100, 107, 102, 101, 106, -1, -1 }, + { 102, 106, 107, 103, 200, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 3, 0, 101, 103, 200, -1, -1, -1 }, + { 9, 101, 0, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 107, 200, -1, -1, -1 }, + { 107, 100, 103, 200, -1, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 7, 8, 100, 107, 200, -1, -1, -1 }, + { 0, 100, 8, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 107, 3, 1, 5, 7 }, + { 2, 11, 1, 103, 106, 101, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 107, 103, 106, 200, -1, -1, -1, -1 }, + { 107, 100, 103, 200, -1, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 5, 9, 8, 7, 200, -1, -1, -1 }, + { 101, 106, 103, 200, -1, -1, -1, -1 }, + { 5, 106, 101, 9, 200, -1, -1, -1 }, + { 2, 11, 1, 103, 106, 101, -1, -1 }, + { 106, 103, 101, 200, -1, -1, -1, -1 }, + { 103, 3, 0, 101, 200, -1, -1, -1 }, + { 107, 103, 106, 200, -1, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 0, 9, 101, 200, -1, -1, -1, -1 }, + { 103, 106, 107, 200, -1, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 100, 103, 107, 200, -1, -1, -1, -1 }, + { 100, 8, 0, 200, -1, -1, -1, -1 }, + { 100, 107, 7, 8, 200, -1, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 5, 106, 11, 200, -1, -1, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 2, 103, 3, 200, -1, -1, -1, -1 }, + { 103, 106, 107, 200, -1, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 106, 11, 5, 200, -1, -1, -1, -1 }, + { 102, 107, 100, 2, 10, 3, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 106, 107, 102, 200, -1, -1, -1, -1 }, + { 106, 102, 101, 200, -1, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 101, 102, 100, 200, -1, -1, -1, -1 }, + { 7, 5, 9, 8, 200, -1, -1, -1 }, + { 100, 102, 107, 200, -1, -1, -1, -1 }, + { 7, 8, 100, 107, 200, -1, -1, -1 }, + { 102, 106, 107, 200, -1, -1, -1, -1 }, + { 2, 102, 107, 10, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 7, 10, 107, 200, -1, -1, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 102, 107, 100, 200, -1, -1, -1, -1 }, + { 107, 7, 8, 100, 200, -1, -1, -1 }, + { 106, 107, 102, 200, -1, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 8, 0, 100, 200, -1, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 107, 102, 106, 200, -1, -1, -1, -1 }, + { 10, 2, 102, 107, 200, -1, -1, -1 }, + { 102, 2, 1, 200, -1, -1, -1, -1 }, + { 8, 7, 5, 9, 100, 107, 106, 101 }, + { 100, 107, 106, 101, 3, 10, 11, 1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 11, 1, 101, 106, 200, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 5, 7, 107, 106, 200, -1, -1, -1 }, + { 106, 107, 10, 11, 200, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 100, 107, 7, 8, 200, -1, -1, -1 }, + { 10, 107, 100, 3, 200, -1, -1, -1 }, + { 100, 8, 0, 200, -1, -1, -1, -1 }, + { 3, 100, 0, 200, -1, -1, -1, -1 }, + { 7, 107, 106, 5, 200, -1, -1, -1 }, + { 107, 10, 11, 106, 200, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 106, 5, 11, 107, 7, 10, -1, -1 }, + { 105, 107, 102, 5, 6, 11, -1, -1 }, + { 105, 107, 102, 200, -1, -1, -1, -1 }, + { 104, 100, 103, 107, 200, -1, -1, -1 }, + { 107, 103, 102, 200, -1, -1, -1, -1 }, + { 101, 102, 103, 100, 200, -1, -1, -1 }, + { 101, 105, 102, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 105, 200, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 11, 6, 5, 102, 107, 105, -1, -1 }, + { 105, 104, 107, 102, -1, -1, -1, -1 }, + { 102, 103, 101, 104, -1, -1, -1, -1 }, + { 103, 102, 107, 104, -1, -1, -1, -1 }, + { 102, 101, 105, 104, -1, -1, -1, -1 }, + { 102, 105, 107, 11, 5, 6, -1, -1 }, + { 1, 9, 0, 102, 105, 100, -1, -1 }, + { 103, 107, 104, 100, 102, -1, -1, -1 }, + { 105, 100, 104, 102, -1, -1, -1, -1 }, + { 105, 104, 107, 102, -1, -1, -1, -1 }, + { 107, 102, 105, 6, 11, 5, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 103, 102, 107, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 200, -1, -1, -1, -1 }, + { 8, 3, 103, 104, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 104, 107, 105, 200, -1, -1, -1, -1 }, + { 1, 3, 8, 9, 200, -1, -1, -1 }, + { 105, 107, 102, 200, -1, -1, -1, -1 }, + { 1, 9, 105, 102, 200, -1, -1, -1 }, + { 2, 1, 5, 6, 103, 101, 105, 107 }, + { 100, 103, 101, 104, 107, 105, -1, -1 }, + { 104, 101, 103, 8, 0, 3, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 105, 101, 104, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 6, 5, 105, 107, 200, -1, -1, -1 }, + { 2, 6, 107, 103, 200, -1, -1, -1 }, + { 107, 104, 103, 200, -1, -1, -1, -1 }, + { 1, 5, 6, 2, 200, -1, -1, -1 }, + { 103, 104, 101, 200, -1, -1, -1, -1 }, + { 1, 2, 103, 101, 200, -1, -1, -1 }, + { 104, 100, 103, 107, 200, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 105, 107, 6, 5, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 104, 103, 107, 200, -1, -1, -1, -1 }, + { 8, 3, 103, 104, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 105, 5, 9, 200, -1, -1, -1, -1 }, + { 105, 107, 6, 5, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 2, 103, 3, 200, -1, -1, -1, -1 }, + { 107, 102, 105, 6, 11, 5, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 104, 105, 101, 100, 107, -1, -1, -1 }, + { 102, 100, 101, 107, -1, -1, -1, -1 }, + { 102, 101, 105, 107, -1, -1, -1, -1 }, + { 105, 107, 102, 5, 6, 11, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 104, 107, 105, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 200, -1, -1, -1, -1 }, + { 0, 8, 104, 101, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 101, 105, 102, 200, -1, -1, -1, -1 }, + { 10, 8, 0, 2, 200, -1, -1, -1 }, + { 102, 105, 107, 200, -1, -1, -1, -1 }, + { 10, 2, 102, 107, 200, -1, -1, -1 }, + { 102, 100, 105, 1, 0, 9, -1, -1 }, + { 10, 2, 3, 107, 102, 100, -1, -1 }, + { 107, 102, 105, 6, 11, 5, -1, -1 }, + { 102, 100, 105, 107, -1, -1, -1, -1 }, + { 107, 105, 104, 100, -1, -1, -1, -1 }, + { 105, 107, 102, 5, 6, 11, -1, -1 }, + { 107, 102, 105, 200, -1, -1, -1, -1 }, + { 105, 102, 1, 9, 200, -1, -1, -1 }, + { 104, 107, 105, 200, -1, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 102, 107, 10, 2, 200, -1, -1, -1 }, + { 1, 102, 2, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 100, 200, -1, -1, -1 }, + { 100, 107, 104, 200, -1, -1, -1, -1 }, + { 107, 105, 104, 200, -1, -1, -1, -1 }, + { 107, 6, 5, 105, 200, -1, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 3, 10, 107, 100, 200, -1, -1, -1 }, + { 6, 107, 10, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 200, -1, -1, -1, -1 }, + { 8, 104, 101, 0, 200, -1, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 107, 105, 104, 200, -1, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 107, 6, 5, 105, 200, -1, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 104, 105, 100, 107, -1, -1, -1, -1 }, + { 10, 107, 100, 3, 0, -1, -1, -1 }, + { 6, 5, 105, 107, 9, -1, -1, -1 }, + { 100, 105, 9, 0, 107, -1, -1, -1 }, + { 10, 0, 9, 6, 107, -1, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 105, 104, 107, 200, -1, -1, -1, -1 }, + { 5, 105, 107, 6, 200, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 6, 5, 11, 107, 105, 102, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 103, 100, 101, 102, 107, -1, -1, -1 }, + { 105, 101, 100, 107, -1, -1, -1, -1 }, + { 105, 102, 101, 107, -1, -1, -1, -1 }, + { 11, 6, 5, 102, 107, 105, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 103, 102, 107, 200, -1, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 0, 101, 103, 3, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 101, 105, 102, 200, -1, -1, -1, -1 }, + { 7, 4, 0, 3, 200, -1, -1, -1 }, + { 105, 107, 102, 200, -1, -1, -1, -1 }, + { 7, 107, 105, 4, 200, -1, -1, -1 }, + { 9, 0, 1, 105, 100, 102, -1, -1 }, + { 107, 105, 100, 7, 4, 8, -1, -1 }, + { 6, 5, 11, 107, 105, 102, -1, -1 }, + { 105, 102, 100, 107, -1, -1, -1, -1 }, + { 107, 103, 102, 100, -1, -1, -1, -1 }, + { 11, 6, 5, 102, 107, 105, -1, -1 }, + { 107, 102, 105, 200, -1, -1, -1, -1 }, + { 102, 1, 9, 105, 200, -1, -1, -1 }, + { 103, 102, 107, 200, -1, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 105, 4, 7, 107, 200, -1, -1, -1 }, + { 9, 4, 105, 200, -1, -1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 101, 100, 105, 200, -1, -1, -1, -1 }, + { 101, 103, 100, 200, -1, -1, -1, -1 }, + { 2, 103, 101, 1, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 103, 107, 100, 200, -1, -1, -1, -1 }, + { 5, 6, 2, 1, 200, -1, -1, -1 }, + { 107, 105, 100, 200, -1, -1, -1, -1 }, + { 5, 105, 107, 6, 200, -1, -1, -1 }, + { 2, 1, 5, 6, 103, 101, 105, 107 }, + { 103, 101, 105, 107, 3, 0, 4, 7 }, + { 100, 107, 105, 8, 7, 4, -1, -1 }, + { 107, 105, 100, 200, -1, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 103, 107, 100, 200, -1, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 105, 107, 6, 5, 200, -1, -1, -1 }, + { 9, 105, 5, 200, -1, -1, -1, -1 }, + { 105, 4, 7, 107, 200, -1, -1, -1 }, + { 6, 5, 105, 107, 200, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 7, 3, 103, 107, 200, -1, -1, -1 }, + { 107, 103, 2, 6, 200, -1, -1, -1 }, + { 2, 103, 3, 200, -1, -1, -1, -1 }, + { 7, 8, 4, 107, 100, 105, -1, -1 }, + { 102, 107, 100, 2, 10, 3, -1, -1 }, + { 11, 6, 5, 102, 107, 105, -1, -1 }, + { 107, 105, 100, 102, -1, -1, -1, -1 }, + { 102, 101, 105, 100, -1, -1, -1, -1 }, + { 5, 11, 6, 105, 102, 107, -1, -1 }, + { 102, 105, 107, 200, -1, -1, -1, -1 }, + { 105, 4, 7, 107, 200, -1, -1, -1 }, + { 101, 105, 102, 200, -1, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 107, 10, 2, 102, 200, -1, -1, -1 }, + { 7, 10, 107, 200, -1, -1, -1, -1 }, + { 102, 100, 105, 1, 0, 9, -1, -1 }, + { 102, 100, 105, 107, -1, -1, -1, -1 }, + { 6, 5, 11, 107, 105, 102, -1, -1 }, + { 3, 10, 2, 100, 107, 102, -1, -1 }, + { 4, 7, 8, 105, 107, 100, -1, -1 }, + { 105, 107, 102, 5, 6, 11, -1, -1 }, + { 105, 102, 1, 9, 4, -1, -1, -1 }, + { 2, 102, 107, 10, 7, -1, -1, -1 }, + { 4, 7, 107, 105, 102, -1, -1, -1 }, + { 4, 1, 2, 7, 102, -1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 105, 100, 107, 200, -1, -1, -1, -1 }, + { 100, 3, 10, 107, 200, -1, -1, -1 }, + { 101, 100, 105, 200, -1, -1, -1, -1 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 107, 6, 5, 105, 200, -1, -1, -1 }, + { 10, 6, 107, 200, -1, -1, -1, -1 }, + { 107, 105, 4, 7, 200, -1, -1, -1 }, + { 5, 105, 107, 6, 200, -1, -1, -1 }, + { 107, 7, 10, 200, -1, -1, -1, -1 }, + { 6, 107, 10, 200, -1, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 105, 5, 1, 101, 200, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 8, 4, 7, 100, 105, 107, -1, -1 }, + { 100, 3, 10, 107, 0, -1, -1, -1 }, + { 6, 5, 105, 107, 9, -1, -1, -1 }, + { 0, 100, 105, 9, 107, -1, -1, -1 }, + { 0, 9, 6, 10, 107, -1, -1, -1 }, + { 107, 105, 4, 7, 200, -1, -1, -1 }, + { 6, 5, 105, 107, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 6, 200, 107, 10, -1, -1, -1, -1 }, + { 7, 10, 107, 200, -1, -1, -1, -1 }, + { 104, 101, 102, 107, 4, 9, 11, 6 }, + { 103, 107, 102, 100, 104, 101, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 102, 103, 101, 200, -1, -1, -1, -1 }, + { 102, 107, 103, 200, -1, -1, -1, -1 }, + { 6, 107, 102, 11, 200, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 107, 104, 103, 200, -1, -1, -1, -1 }, + { 9, 4, 6, 11, 200, -1, -1, -1 }, + { 104, 101, 103, 200, -1, -1, -1, -1 }, + { 9, 101, 104, 4, 200, -1, -1, -1 }, + { 103, 107, 104, 100, 200, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 102, 107, 103, 200, -1, -1, -1, -1 }, + { 102, 11, 6, 107, 200, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 200, -1, -1, -1, -1 }, + { 3, 103, 104, 8, 200, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 102, 107, 103, 200, -1, -1, -1, -1 }, + { 102, 1, 11, 200, -1, -1, -1, -1 }, + { 102, 11, 6, 107, 200, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 4, 8, 104, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 104, 200, -1, -1, -1 }, + { 103, 100, 101, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 200, -1, -1, -1, -1 }, + { 101, 104, 4, 9, 200, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 2, 103, 101, 1, 200, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 103, 104, 101, 3, 8, 0, -1, -1 }, + { 104, 101, 103, 200, -1, -1, -1, -1 }, + { 103, 101, 1, 2, 200, -1, -1, -1 }, + { 107, 104, 103, 200, -1, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 6, 107, 103, 2, 200, -1, -1, -1 }, + { 101, 104, 4, 9, 200, -1, -1, -1 }, + { 1, 101, 9, 200, -1, -1, -1, -1 }, + { 0, 4, 6, 2, 100, 104, 107, 103 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 2, 6, 107, 103, 200, -1, -1, -1 }, + { 3, 2, 103, 200, -1, -1, -1, -1 }, + { 103, 107, 104, 200, -1, -1, -1, -1 }, + { 3, 103, 104, 8, 200, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 100, 102, 107, 3, 2, 10, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 101, 102, 100, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 200, -1, -1, -1, -1 }, + { 4, 9, 101, 104, 200, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 104, 100, 107, 200, -1, -1, -1, -1 }, + { 11, 9, 4, 6, 200, -1, -1, -1 }, + { 107, 100, 102, 200, -1, -1, -1, -1 }, + { 11, 6, 107, 102, 200, -1, -1, -1 }, + { 104, 101, 102, 107, 4, 9, 11, 6 }, + { 8, 0, 2, 10, 104, 101, 102, 107 }, + { 3, 10, 2, 100, 107, 102, -1, -1 }, + { 107, 100, 102, 200, -1, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 104, 100, 107, 200, -1, -1, -1, -1 }, + { 6, 4, 104, 107, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 102, 11, 6, 107, 200, -1, -1, -1 }, + { 1, 11, 102, 200, -1, -1, -1, -1 }, + { 102, 107, 10, 2, 200, -1, -1, -1 }, + { 6, 107, 102, 11, 200, -1, -1, -1 }, + { 102, 2, 1, 200, -1, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 10, 107, 104, 8, 200, -1, -1, -1 }, + { 107, 6, 4, 104, 200, -1, -1, -1 }, + { 4, 8, 104, 200, -1, -1, -1, -1 }, + { 100, 107, 104, 200, -1, -1, -1, -1 }, + { 3, 10, 107, 100, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 101, 100, 104, 200, -1, -1, -1, -1 }, + { 101, 9, 1, 200, -1, -1, -1, -1 }, + { 101, 104, 4, 9, 200, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 6, 107, 10, 200, -1, -1, -1, -1 }, + { 101, 0, 8, 104, 200, -1, -1, -1 }, + { 4, 9, 101, 104, 200, -1, -1, -1 }, + { 101, 1, 0, 200, -1, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 8, 10, 107, 104, 200, -1, -1, -1 }, + { 104, 107, 6, 4, 200, -1, -1, -1 }, + { 6, 107, 10, 200, -1, -1, -1, -1 }, + { 4, 104, 107, 6, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 3, 100, 0, 200, -1, -1, -1, -1 }, + { 100, 107, 104, 200, -1, -1, -1, -1 }, + { 3, 10, 107, 100, 200, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 104, 8, 4, 107, 10, 6, -1, -1 }, + { 103, 100, 101, 102, 200, -1, -1, -1 }, + { 100, 103, 107, 200, -1, -1, -1, -1 }, + { 107, 103, 102, 200, -1, -1, -1, -1 }, + { 107, 102, 11, 6, 200, -1, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 6, 7, 107, 200, -1, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 3, 0, 101, 103, 200, -1, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 107, 103, 102, 200, -1, -1, -1, -1 }, + { 107, 6, 7, 200, -1, -1, -1, -1 }, + { 107, 102, 11, 6, 200, -1, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 9, 101, 0, 200, -1, -1, -1, -1 }, + { 103, 100, 102, 107, -1, -1, -1, -1 }, + { 7, 8, 100, 107, 0, -1, -1, -1 }, + { 6, 107, 102, 11, 1, -1, -1, -1 }, + { 100, 0, 1, 102, 107, -1, -1, -1 }, + { 7, 6, 1, 0, 107, -1, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 102, 107, 103, 200, -1, -1, -1, -1 }, + { 11, 6, 107, 102, 200, -1, -1, -1 }, + { 107, 6, 7, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 200, -1, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 101, 103, 100, 200, -1, -1, -1, -1 }, + { 101, 9, 1, 200, -1, -1, -1, -1 }, + { 101, 1, 2, 103, 200, -1, -1, -1 }, + { 2, 6, 107, 103, 200, -1, -1, -1 }, + { 6, 7, 107, 200, -1, -1, -1, -1 }, + { 101, 103, 3, 0, 200, -1, -1, -1 }, + { 2, 103, 101, 1, 200, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 1, 101, 9, 200, -1, -1, -1, -1 }, + { 3, 103, 107, 7, 200, -1, -1, -1 }, + { 103, 2, 6, 107, 200, -1, -1, -1 }, + { 6, 7, 107, 200, -1, -1, -1, -1 }, + { 2, 6, 107, 103, 200, -1, -1, -1 }, + { 0, 2, 103, 100, 200, -1, -1, -1 }, + { 8, 0, 100, 200, -1, -1, -1, -1 }, + { 100, 103, 107, 200, -1, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 107, 6, 7, 200, -1, -1, -1, -1 }, + { 107, 7, 6, 103, 3, 2, -1, -1 }, + { 100, 102, 107, 3, 2, 10, -1, -1 }, + { 102, 107, 100, 200, -1, -1, -1, -1 }, + { 100, 107, 7, 8, 200, -1, -1, -1 }, + { 101, 102, 100, 200, -1, -1, -1, -1 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 107, 102, 11, 6, 200, -1, -1, -1 }, + { 7, 107, 6, 200, -1, -1, -1, -1 }, + { 107, 10, 2, 102, 200, -1, -1, -1 }, + { 11, 6, 107, 102, 200, -1, -1, -1 }, + { 107, 7, 10, 200, -1, -1, -1, -1 }, + { 6, 7, 107, 200, -1, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 102, 101, 9, 11, 200, -1, -1, -1 }, + { 9, 101, 0, 200, -1, -1, -1, -1 }, + { 100, 102, 107, 3, 2, 10, -1, -1 }, + { 100, 107, 7, 8, 0, -1, -1, -1 }, + { 6, 107, 102, 11, 1, -1, -1, -1 }, + { 0, 1, 102, 100, 107, -1, -1, -1 }, + { 0, 7, 6, 1, 107, -1, -1, -1 }, + { 107, 10, 2, 102, 200, -1, -1, -1 }, + { 6, 107, 102, 11, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 102, 2, 1, 200, -1, -1, -1, -1 }, + { 6, 107, 200, 7, -1, -1, -1, -1 }, + { 10, 107, 7, 200, -1, -1, -1, -1 }, + { 107, 100, 3, 10, 200, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 7, 107, 6, 200, -1, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 100, 8, 9, 101, 200, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 101, 0, 9, 1, -1, -1, -1, -1 }, + { 107, 7, 10, 6, -1, -1, -1, -1 }, + { 100, 3, 10, 107, 200, -1, -1, -1 }, + { 8, 100, 107, 7, 200, -1, -1, -1 }, + { 7, 107, 6, 200, -1, -1, -1, -1 }, + { 107, 10, 6, 200, -1, -1, -1, -1 }, + { 8, 100, 200, 0, -1, -1, -1, -1 }, + { 3, 100, 0, 200, -1, -1, -1, -1 }, + { 107, 6, 7, 10, -1, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 104, 103, 106, 200, -1, -1, -1, -1 }, + { 105, 106, 102, 101, 200, -1, -1, -1 }, + { 106, 103, 102, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 200, -1, -1, -1 }, + { 100, 103, 104, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 101, 200, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 10, 7, 6, 103, 104, 106, -1, -1 }, + { 103, 104, 101, 3, 8, 0, -1, -1 }, + { 102, 101, 105, 106, 103, -1, -1, -1 }, + { 104, 105, 101, 103, -1, -1, -1, -1 }, + { 104, 106, 105, 103, -1, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 9, 0, 1, 105, 100, 102, -1, -1 }, + { 102, 103, 100, 105, -1, -1, -1, -1 }, + { 105, 104, 106, 103, -1, -1, -1, -1 }, + { 104, 105, 100, 103, -1, -1, -1, -1 }, + { 105, 106, 102, 103, -1, -1, -1, -1 }, + { 6, 10, 7, 106, 103, 104, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 102, 106, 103, 200, -1, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 9, 105, 102, 1, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 105, 104, 106, 200, -1, -1, -1, -1 }, + { 3, 8, 9, 1, 200, -1, -1, -1 }, + { 104, 103, 106, 200, -1, -1, -1, -1 }, + { 3, 103, 104, 8, 200, -1, -1, -1 }, + { 2, 11, 1, 103, 106, 101, -1, -1 }, + { 103, 106, 104, 10, 6, 7, -1, -1 }, + { 100, 104, 105, 101, 103, -1, -1, -1 }, + { 106, 105, 104, 103, -1, -1, -1, -1 }, + { 106, 101, 105, 103, -1, -1, -1, -1 }, + { 103, 101, 106, 2, 1, 11, -1, -1 }, + { 8, 3, 0, 104, 103, 101, -1, -1 }, + { 104, 103, 106, 7, 10, 6, -1, -1 }, + { 103, 101, 106, 104, -1, -1, -1, -1 }, + { 104, 106, 105, 101, -1, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 105, 104, 106, 200, -1, -1, -1, -1 }, + { 105, 100, 104, 200, -1, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 100, 103, 104, 200, -1, -1, -1, -1 }, + { 11, 2, 0, 9, 200, -1, -1, -1 }, + { 103, 106, 104, 200, -1, -1, -1, -1 }, + { 11, 106, 103, 2, 200, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 106, 104, 103, 200, -1, -1, -1, -1 }, + { 104, 8, 3, 103, 200, -1, -1, -1 }, + { 105, 104, 106, 200, -1, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 103, 2, 11, 106, 200, -1, -1, -1 }, + { 3, 2, 103, 200, -1, -1, -1, -1 }, + { 3, 2, 6, 7, 100, 102, 106, 104 }, + { 101, 100, 102, 105, 104, 106, -1, -1 }, + { 105, 106, 102, 101, 200, -1, -1, -1 }, + { 101, 104, 105, 200, -1, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 104, 7, 6, 106, 200, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 0, 8, 104, 101, 200, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 105, 102, 100, 9, 1, 0, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 106, 102, 105, 200, -1, -1, -1, -1 }, + { 106, 105, 104, 200, -1, -1, -1, -1 }, + { 7, 6, 106, 104, 200, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 104, 105, 100, 200, -1, -1, -1, -1 }, + { 2, 6, 7, 3, 200, -1, -1, -1 }, + { 100, 105, 102, 200, -1, -1, -1, -1 }, + { 2, 3, 100, 102, 200, -1, -1, -1 }, + { 105, 106, 102, 200, -1, -1, -1, -1 }, + { 9, 105, 102, 1, 200, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 104, 8, 7, 200, -1, -1, -1, -1 }, + { 104, 7, 6, 106, 200, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 2, 1, 102, 200, -1, -1, -1, -1 }, + { 105, 101, 100, 104, 200, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 106, 105, 104, 200, -1, -1, -1, -1 }, + { 106, 104, 7, 6, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 1, 101, 106, 11, 200, -1, -1, -1 }, + { 6, 11, 106, 200, -1, -1, -1, -1 }, + { 105, 106, 101, 104, -1, -1, -1, -1 }, + { 8, 104, 101, 0, 1, -1, -1, -1 }, + { 7, 6, 106, 104, 11, -1, -1, -1 }, + { 101, 106, 11, 1, 104, -1, -1, -1 }, + { 8, 1, 11, 7, 104, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 7, 6, 106, 104, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 100, 0, 3, 200, -1, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 11, 106, 6, 200, -1, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 104, 106, 105, 200, -1, -1, -1, -1 }, + { 7, 6, 106, 104, 200, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 100, 105, 106, 103, 8, 4, 6, 10 }, + { 102, 103, 106, 101, 100, 105, -1, -1 }, + { 102, 101, 105, 106, 200, -1, -1, -1 }, + { 101, 102, 103, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 200, -1, -1, -1, -1 }, + { 103, 106, 6, 10, 200, -1, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 0, 101, 103, 3, 200, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 1, 9, 0, 102, 105, 100, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 106, 102, 105, 200, -1, -1, -1, -1 }, + { 106, 103, 102, 200, -1, -1, -1, -1 }, + { 10, 103, 106, 6, 200, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 103, 100, 102, 200, -1, -1, -1, -1 }, + { 4, 8, 10, 6, 200, -1, -1, -1 }, + { 100, 105, 102, 200, -1, -1, -1, -1 }, + { 4, 105, 100, 8, 200, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 1, 9, 105, 102, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 103, 102, 106, 200, -1, -1, -1, -1 }, + { 103, 10, 3, 200, -1, -1, -1, -1 }, + { 103, 106, 6, 10, 200, -1, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 4, 105, 9, 200, -1, -1, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 105, 106, 101, 200, -1, -1, -1, -1 }, + { 105, 101, 100, 200, -1, -1, -1, -1 }, + { 8, 4, 105, 100, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 6, 4, 8, 10, 200, -1, -1, -1 }, + { 103, 101, 106, 200, -1, -1, -1, -1 }, + { 6, 10, 103, 106, 200, -1, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 106, 103, 101, 200, -1, -1, -1, -1 }, + { 101, 103, 3, 0, 200, -1, -1, -1 }, + { 105, 106, 101, 200, -1, -1, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 103, 106, 6, 10, 200, -1, -1, -1 }, + { 3, 103, 10, 200, -1, -1, -1, -1 }, + { 0, 9, 11, 2, 100, 105, 106, 103 }, + { 100, 105, 106, 103, 8, 4, 6, 10 }, + { 103, 2, 11, 106, 200, -1, -1, -1 }, + { 6, 10, 103, 106, 200, -1, -1, -1 }, + { 103, 3, 2, 200, -1, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 11, 9, 105, 106, 200, -1, -1, -1 }, + { 106, 105, 4, 6, 200, -1, -1, -1 }, + { 4, 105, 9, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 102, 200, -1, -1, -1 }, + { 102, 100, 101, 200, -1, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 2, 3, 100, 102, 200, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 102, 0, 4, 6, 2 }, + { 1, 9, 0, 102, 105, 100, -1, -1 }, + { 105, 102, 100, 200, -1, -1, -1, -1 }, + { 102, 2, 3, 100, 200, -1, -1, -1 }, + { 106, 102, 105, 200, -1, -1, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 3, 8, 100, 200, -1, -1, -1, -1 }, + { 6, 106, 105, 4, 200, -1, -1, -1 }, + { 2, 102, 106, 6, 200, -1, -1, -1 }, + { 1, 102, 2, 200, -1, -1, -1, -1 }, + { 102, 105, 106, 200, -1, -1, -1, -1 }, + { 1, 9, 105, 102, 200, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 1, 101, 106, 11, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 100, 3, 8, 200, -1, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 6, 11, 106, 200, -1, -1, -1, -1 }, + { 4, 6, 106, 105, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 101, 105, 106, 200, -1, -1, -1, -1 }, + { 1, 101, 106, 11, 200, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 100, 105, 9, 0, 200, -1, -1, -1 }, + { 4, 105, 100, 8, 200, -1, -1, -1 }, + { 100, 0, 3, 200, -1, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 9, 105, 106, 11, 200, -1, -1, -1 }, + { 105, 4, 6, 106, 200, -1, -1, -1 }, + { 6, 11, 106, 200, -1, -1, -1, -1 }, + { 106, 11, 6, 105, 9, 4, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 100, 101, 102, 103, 104, -1, -1, -1 }, + { 106, 103, 102, 104, -1, -1, -1, -1 }, + { 106, 102, 101, 104, -1, -1, -1, -1 }, + { 4, 9, 5, 104, 101, 106, -1, -1 }, + { 103, 104, 101, 3, 8, 0, -1, -1 }, + { 10, 7, 6, 103, 104, 106, -1, -1 }, + { 104, 106, 101, 103, -1, -1, -1, -1 }, + { 103, 102, 106, 101, -1, -1, -1, -1 }, + { 103, 106, 104, 10, 6, 7, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 102, 106, 103, 200, -1, -1, -1, -1 }, + { 102, 103, 100, 200, -1, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 100, 103, 104, 200, -1, -1, -1, -1 }, + { 5, 1, 0, 4, 200, -1, -1, -1 }, + { 104, 103, 106, 200, -1, -1, -1, -1 }, + { 5, 4, 104, 106, 200, -1, -1, -1 }, + { 103, 106, 104, 10, 6, 7, -1, -1 }, + { 106, 104, 103, 200, -1, -1, -1, -1 }, + { 103, 104, 8, 3, 200, -1, -1, -1 }, + { 102, 106, 103, 200, -1, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 8, 104, 4, 200, -1, -1, -1, -1 }, + { 106, 103, 101, 11, 2, 1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 106, 103, 101, 104, -1, -1, -1, -1 }, + { 104, 101, 100, 103, -1, -1, -1, -1 }, + { 1, 2, 11, 101, 103, 106, -1, -1 }, + { 101, 106, 103, 104, -1, -1, -1, -1 }, + { 104, 106, 101, 4, 5, 9, -1, -1 }, + { 103, 104, 101, 3, 8, 0, -1, -1 }, + { 106, 104, 103, 6, 7, 10, -1, -1 }, + { 104, 103, 106, 7, 10, 6, -1, -1 }, + { 103, 106, 104, 200, -1, -1, -1, -1 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 100, 103, 104, 200, -1, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 106, 103, 2, 11, 200, -1, -1, -1 }, + { 5, 106, 11, 200, -1, -1, -1, -1 }, + { 7, 6, 10, 104, 106, 103, -1, -1 }, + { 104, 8, 3, 103, 4, -1, -1, -1 }, + { 2, 11, 106, 103, 5, -1, -1, -1 }, + { 4, 104, 106, 5, 103, -1, -1, -1 }, + { 4, 5, 2, 3, 103, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 2, 102, 106, 6, 200, -1, -1, -1 }, + { 102, 101, 106, 200, -1, -1, -1, -1 }, + { 102, 100, 101, 200, -1, -1, -1, -1 }, + { 3, 100, 102, 2, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 6, 7, 3, 2, 200, -1, -1, -1 }, + { 104, 106, 101, 200, -1, -1, -1, -1 }, + { 6, 106, 104, 7, 200, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 106, 101, 104, 200, -1, -1, -1, -1 }, + { 101, 0, 8, 104, 200, -1, -1, -1 }, + { 102, 101, 106, 200, -1, -1, -1, -1 }, + { 6, 2, 102, 106, 200, -1, -1, -1 }, + { 2, 0, 101, 102, 200, -1, -1, -1 }, + { 104, 7, 6, 106, 200, -1, -1, -1 }, + { 8, 7, 104, 200, -1, -1, -1, -1 }, + { 100, 102, 106, 104, 0, 1, 5, 4 }, + { 3, 2, 6, 7, 100, 102, 106, 104 }, + { 104, 106, 5, 4, 200, -1, -1, -1 }, + { 6, 106, 104, 7, 200, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 5, 106, 102, 1, 200, -1, -1, -1 }, + { 106, 6, 2, 102, 200, -1, -1, -1 }, + { 2, 1, 102, 200, -1, -1, -1, -1 }, + { 101, 104, 106, 9, 4, 5, -1, -1 }, + { 104, 106, 101, 200, -1, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 106, 104, 7, 6, 200, -1, -1, -1 }, + { 11, 106, 6, 200, -1, -1, -1, -1 }, + { 9, 5, 4, 101, 106, 104, -1, -1 }, + { 101, 0, 8, 104, 1, -1, -1, -1 }, + { 7, 6, 106, 104, 11, -1, -1, -1 }, + { 1, 101, 106, 11, 104, -1, -1, -1 }, + { 1, 11, 7, 8, 104, -1, -1, -1 }, + { 106, 104, 7, 6, 200, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 5, 106, 11, 200, -1, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 104, 4, 0, 100, 200, -1, -1, -1 }, + { 0, 3, 100, 200, -1, -1, -1, -1 }, + { 104, 7, 6, 106, 200, -1, -1, -1 }, + { 4, 104, 106, 5, 200, -1, -1, -1 }, + { 5, 106, 11, 200, -1, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 4, 104, 200, 8, -1, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 102, 103, 100, 101, 200, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 106, 103, 102, 200, -1, -1, -1, -1 }, + { 106, 6, 10, 103, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 6, 106, 5, 200, -1, -1, -1, -1 }, + { 102, 101, 106, 103, -1, -1, -1, -1 }, + { 3, 0, 101, 103, 9, -1, -1, -1 }, + { 10, 103, 106, 6, 5, -1, -1, -1 }, + { 101, 9, 5, 106, 103, -1, -1, -1 }, + { 3, 10, 5, 9, 103, -1, -1, -1 }, + { 103, 102, 106, 200, -1, -1, -1, -1 }, + { 10, 103, 106, 6, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 100, 8, 0, 200, -1, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 5, 6, 106, 200, -1, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 103, 102, 106, 200, -1, -1, -1, -1 }, + { 10, 103, 106, 6, 200, -1, -1, -1 }, + { 106, 5, 6, 200, -1, -1, -1, -1 }, + { 1, 2, 11, 101, 103, 106, -1, -1 }, + { 103, 101, 106, 200, -1, -1, -1, -1 }, + { 101, 9, 5, 106, 200, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 106, 6, 10, 103, 200, -1, -1, -1 }, + { 5, 6, 106, 200, -1, -1, -1, -1 }, + { 101, 106, 103, 1, 11, 2, -1, -1 }, + { 101, 103, 3, 0, 9, -1, -1, -1 }, + { 10, 103, 106, 6, 5, -1, -1, -1 }, + { 9, 5, 106, 101, 103, -1, -1, -1 }, + { 9, 3, 10, 5, 103, -1, -1, -1 }, + { 106, 6, 10, 103, 200, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 106, 5, 6, 200, -1, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 103, 100, 0, 2, 200, -1, -1, -1 }, + { 0, 100, 8, 200, -1, -1, -1, -1 }, + { 103, 106, 6, 10, 200, -1, -1, -1 }, + { 2, 11, 106, 103, 200, -1, -1, -1 }, + { 11, 5, 106, 200, -1, -1, -1, -1 }, + { 106, 5, 6, 200, -1, -1, -1, -1 }, + { 2, 200, 103, 3, -1, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 100, 101, 102, 200, -1, -1, -1, -1 }, + { 100, 3, 8, 200, -1, -1, -1, -1 }, + { 100, 102, 2, 3, 200, -1, -1, -1 }, + { 2, 102, 106, 6, 200, -1, -1, -1 }, + { 6, 106, 5, 200, -1, -1, -1, -1 }, + { 2, 102, 106, 6, 200, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 9, 101, 0, 200, -1, -1, -1, -1 }, + { 101, 106, 102, 200, -1, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 106, 5, 6, 200, -1, -1, -1, -1 }, + { 100, 0, 1, 102, 200, -1, -1, -1 }, + { 2, 3, 100, 102, 200, -1, -1, -1 }, + { 100, 8, 0, 200, -1, -1, -1, -1 }, + { 3, 8, 100, 200, -1, -1, -1, -1 }, + { 1, 5, 106, 102, 200, -1, -1, -1 }, + { 102, 106, 6, 2, 200, -1, -1, -1 }, + { 6, 106, 5, 200, -1, -1, -1, -1 }, + { 102, 1, 2, 106, 5, 6, -1, -1 }, + { 106, 11, 1, 101, 200, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 5, 6, 106, 200, -1, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 101, 100, 8, 9, 200, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 101, 106, 11, 1, 200, -1, -1, -1 }, + { 9, 5, 106, 101, 200, -1, -1, -1 }, + { 5, 6, 106, 200, -1, -1, -1, -1 }, + { 106, 6, 11, 200, -1, -1, -1, -1 }, + { 9, 200, 101, 0, -1, -1, -1, -1 }, + { 1, 0, 101, 200, -1, -1, -1, -1 }, + { 100, 8, 0, 3, -1, -1, -1, -1 }, + { 106, 5, 6, 11, -1, -1, -1, -1 }, + { 106, 5, 6, 11, -1, -1, -1, -1 }, + { 103, 104, 105, 102, 10, 7, 5, 11 }, + { 101, 102, 105, 100, 103, 104, -1, -1 }, + { 0, 8, 3, 101, 104, 103, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 105, 101, 104, 200, -1, -1, -1, -1 }, + { 105, 102, 101, 200, -1, -1, -1, -1 }, + { 11, 102, 105, 5, 200, -1, -1, -1 }, + { 10, 103, 102, 11, 200, -1, -1, -1 }, + { 102, 103, 101, 200, -1, -1, -1, -1 }, + { 7, 10, 11, 5, 200, -1, -1, -1 }, + { 103, 104, 101, 200, -1, -1, -1, -1 }, + { 7, 104, 103, 10, 200, -1, -1, -1 }, + { 100, 105, 102, 0, 9, 1, -1, -1 }, + { 7, 5, 105, 104, 200, -1, -1, -1 }, + { 104, 105, 100, 200, -1, -1, -1, -1 }, + { 104, 100, 103, 200, -1, -1, -1, -1 }, + { 10, 7, 104, 103, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 103, 100, 102, 200, -1, -1, -1, -1 }, + { 5, 7, 10, 11, 200, -1, -1, -1 }, + { 102, 100, 105, 200, -1, -1, -1, -1 }, + { 5, 11, 102, 105, 200, -1, -1, -1 }, + { 103, 104, 105, 102, 10, 7, 5, 11 }, + { 3, 8, 9, 1, 103, 104, 105, 102 }, + { 100, 104, 105, 101, 200, -1, -1, -1 }, + { 104, 100, 103, 200, -1, -1, -1, -1 }, + { 103, 100, 101, 200, -1, -1, -1, -1 }, + { 103, 101, 1, 2, 200, -1, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 7, 104, 103, 10, 200, -1, -1, -1 }, + { 2, 10, 103, 200, -1, -1, -1, -1 }, + { 104, 101, 103, 8, 0, 3, -1, -1 }, + { 101, 103, 104, 200, -1, -1, -1, -1 }, + { 104, 103, 10, 7, 200, -1, -1, -1 }, + { 105, 101, 104, 200, -1, -1, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 103, 101, 1, 2, 200, -1, -1, -1 }, + { 10, 103, 2, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 0, 2, 103, 100, 200, -1, -1, -1 }, + { 103, 104, 100, 200, -1, -1, -1, -1 }, + { 103, 2, 10, 200, -1, -1, -1, -1 }, + { 103, 10, 7, 104, 200, -1, -1, -1 }, + { 7, 5, 105, 104, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 103, 104, 8, 3, 200, -1, -1, -1 }, + { 7, 104, 103, 10, 200, -1, -1, -1 }, + { 103, 3, 2, 200, -1, -1, -1, -1 }, + { 10, 103, 2, 200, -1, -1, -1, -1 }, + { 8, 104, 105, 9, 200, -1, -1, -1 }, + { 104, 7, 5, 105, 200, -1, -1, -1 }, + { 5, 9, 105, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 105, 200, -1, -1, -1 }, + { 100, 101, 102, 200, -1, -1, -1, -1 }, + { 102, 101, 105, 200, -1, -1, -1, -1 }, + { 102, 105, 5, 11, 200, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 3, 100, 102, 2, 200, -1, -1, -1 }, + { 11, 2, 102, 200, -1, -1, -1, -1 }, + { 101, 104, 105, 200, -1, -1, -1, -1 }, + { 0, 8, 104, 101, 200, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 102, 101, 105, 200, -1, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 102, 105, 5, 11, 200, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 100, 105, 102, 0, 9, 1, -1, -1 }, + { 105, 102, 100, 200, -1, -1, -1, -1 }, + { 100, 102, 2, 3, 200, -1, -1, -1 }, + { 104, 105, 100, 200, -1, -1, -1, -1 }, + { 5, 105, 104, 7, 200, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 102, 105, 5, 11, 200, -1, -1, -1 }, + { 2, 102, 11, 200, -1, -1, -1, -1 }, + { 102, 1, 9, 105, 200, -1, -1, -1 }, + { 5, 11, 102, 105, 200, -1, -1, -1 }, + { 102, 2, 1, 200, -1, -1, -1, -1 }, + { 11, 2, 102, 200, -1, -1, -1, -1 }, + { 9, 8, 104, 105, 200, -1, -1, -1 }, + { 105, 104, 7, 5, 200, -1, -1, -1 }, + { 7, 104, 8, 200, -1, -1, -1, -1 }, + { 3, 1, 5, 7, 100, 101, 105, 104 }, + { 5, 1, 101, 105, 200, -1, -1, -1 }, + { 7, 5, 105, 104, 200, -1, -1, -1 }, + { 8, 7, 104, 200, -1, -1, -1, -1 }, + { 104, 105, 101, 200, -1, -1, -1, -1 }, + { 8, 104, 101, 0, 200, -1, -1, -1 }, + { 101, 1, 0, 200, -1, -1, -1, -1 }, + { 7, 5, 105, 104, 200, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 0, 3, 100, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 105, 5, 9, 200, -1, -1, -1, -1 }, + { 105, 9, 5, 104, 8, 7, -1, -1 }, + { 101, 102, 103, 100, 200, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 105, 102, 101, 200, -1, -1, -1, -1 }, + { 105, 5, 11, 102, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 8, 4, 105, 100, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 101, 102, 103, 200, -1, -1, -1, -1 }, + { 0, 101, 103, 3, 200, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 105, 102, 101, 200, -1, -1, -1, -1 }, + { 105, 4, 5, 200, -1, -1, -1, -1 }, + { 105, 5, 11, 102, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 0, 1, 9, 100, 102, 105, -1, -1 }, + { 102, 100, 105, 200, -1, -1, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 103, 100, 102, 200, -1, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 10, 8, 100, 103, 200, -1, -1, -1 }, + { 105, 5, 11, 102, 200, -1, -1, -1 }, + { 4, 5, 105, 200, -1, -1, -1, -1 }, + { 105, 102, 1, 9, 200, -1, -1, -1 }, + { 11, 102, 105, 5, 200, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 102, 11, 10, 103, 200, -1, -1, -1 }, + { 10, 3, 103, 200, -1, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 8, 4, 105, 100, 200, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 103, 100, 101, 200, -1, -1, -1, -1 }, + { 103, 2, 10, 200, -1, -1, -1, -1 }, + { 103, 101, 1, 2, 200, -1, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 103, 3, 0, 101, 200, -1, -1, -1 }, + { 1, 2, 103, 101, 200, -1, -1, -1 }, + { 103, 10, 3, 200, -1, -1, -1, -1 }, + { 2, 10, 103, 200, -1, -1, -1, -1 }, + { 0, 4, 105, 101, 200, -1, -1, -1 }, + { 101, 105, 5, 1, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 105, 100, 8, 4, 200, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 105, 4, 5, 200, -1, -1, -1, -1 }, + { 9, 105, 5, 200, -1, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 100, 0, 2, 103, 200, -1, -1, -1 }, + { 2, 10, 103, 200, -1, -1, -1, -1 }, + { 103, 3, 2, 10, -1, -1, -1, -1 }, + { 105, 9, 4, 5, -1, -1, -1, -1 }, + { 101, 100, 105, 102, -1, -1, -1, -1 }, + { 2, 3, 100, 102, 8, -1, -1, -1 }, + { 11, 102, 105, 5, 4, -1, -1, -1 }, + { 100, 8, 4, 105, 102, -1, -1, -1 }, + { 2, 11, 4, 8, 102, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 4, 105, 101, 0, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 105, 102, 101, 200, -1, -1, -1, -1 }, + { 5, 11, 102, 105, 200, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 100, 105, 102, 0, 9, 1, -1, -1 }, + { 100, 102, 2, 3, 8, -1, -1, -1 }, + { 11, 102, 105, 5, 4, -1, -1, -1 }, + { 8, 4, 105, 100, 102, -1, -1, -1 }, + { 8, 2, 11, 4, 102, -1, -1, -1 }, + { 102, 1, 9, 105, 200, -1, -1, -1 }, + { 11, 102, 105, 5, 200, -1, -1, -1 }, + { 5, 105, 4, 200, -1, -1, -1, -1 }, + { 105, 9, 4, 200, -1, -1, -1, -1 }, + { 11, 102, 200, 2, -1, -1, -1, -1 }, + { 1, 102, 2, 200, -1, -1, -1, -1 }, + { 1, 101, 105, 5, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 100, 105, 101, 200, -1, -1, -1, -1 }, + { 8, 4, 105, 100, 200, -1, -1, -1 }, + { 105, 4, 5, 200, -1, -1, -1, -1 }, + { 101, 0, 1, 105, 4, 5, -1, -1 }, + { 100, 8, 4, 105, 200, -1, -1, -1 }, + { 0, 100, 105, 9, 200, -1, -1, -1 }, + { 9, 105, 5, 200, -1, -1, -1, -1 }, + { 105, 4, 5, 200, -1, -1, -1, -1 }, + { 0, 100, 200, 3, -1, -1, -1, -1 }, + { 8, 100, 3, 200, -1, -1, -1, -1 }, + { 105, 5, 9, 4, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 200, -1, -1, -1 }, + { 103, 104, 100, 200, -1, -1, -1, -1 }, + { 104, 101, 100, 200, -1, -1, -1, -1 }, + { 104, 4, 9, 101, 200, -1, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 10, 7, 104, 103, 200, -1, -1, -1 }, + { 4, 104, 7, 200, -1, -1, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 101, 103, 104, 200, -1, -1, -1, -1 }, + { 103, 10, 7, 104, 200, -1, -1, -1 }, + { 102, 103, 101, 200, -1, -1, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 11, 10, 103, 102, 200, -1, -1, -1 }, + { 104, 4, 9, 101, 200, -1, -1, -1 }, + { 7, 4, 104, 200, -1, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 0, 100, 104, 4, 200, -1, -1, -1 }, + { 104, 100, 103, 200, -1, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 103, 10, 7, 200, -1, -1, -1 }, + { 10, 103, 102, 11, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 104, 8, 3, 103, 200, -1, -1, -1 }, + { 10, 7, 104, 103, 200, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 7, 4, 104, 200, -1, -1, -1, -1 }, + { 3, 1, 102, 103, 200, -1, -1, -1 }, + { 103, 102, 11, 10, 200, -1, -1, -1 }, + { 11, 102, 1, 200, -1, -1, -1, -1 }, + { 100, 101, 103, 104, -1, -1, -1, -1 }, + { 7, 104, 103, 10, 2, -1, -1, -1 }, + { 4, 9, 101, 104, 1, -1, -1, -1 }, + { 103, 101, 1, 2, 104, -1, -1, -1 }, + { 7, 2, 1, 4, 104, -1, -1, -1 }, + { 3, 0, 8, 103, 101, 104, -1, -1 }, + { 103, 10, 7, 104, 2, -1, -1, -1 }, + { 4, 9, 101, 104, 1, -1, -1, -1 }, + { 2, 103, 101, 1, 104, -1, -1, -1 }, + { 2, 1, 4, 7, 104, -1, -1, -1 }, + { 0, 2, 103, 100, 200, -1, -1, -1 }, + { 4, 0, 100, 104, 200, -1, -1, -1 }, + { 7, 4, 104, 200, -1, -1, -1, -1 }, + { 104, 100, 103, 200, -1, -1, -1, -1 }, + { 7, 104, 103, 10, 200, -1, -1, -1 }, + { 103, 2, 10, 200, -1, -1, -1, -1 }, + { 103, 104, 8, 3, 200, -1, -1, -1 }, + { 10, 7, 104, 103, 200, -1, -1, -1 }, + { 7, 4, 104, 200, -1, -1, -1, -1 }, + { 104, 4, 8, 200, -1, -1, -1, -1 }, + { 10, 200, 103, 2, -1, -1, -1, -1 }, + { 3, 2, 103, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 200, -1, -1, -1, -1 }, + { 3, 100, 102, 2, 200, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 104, 101, 100, 200, -1, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 4, 9, 101, 200, -1, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 11, 2, 102, 200, -1, -1, -1, -1 }, + { 104, 101, 0, 8, 200, -1, -1, -1 }, + { 9, 101, 104, 4, 200, -1, -1, -1 }, + { 104, 8, 7, 200, -1, -1, -1, -1 }, + { 4, 104, 7, 200, -1, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 101, 9, 11, 102, 200, -1, -1, -1 }, + { 11, 2, 102, 200, -1, -1, -1, -1 }, + { 102, 2, 3, 100, 200, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 1, 11, 102, 200, -1, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 100, 104, 4, 0, 200, -1, -1, -1 }, + { 4, 104, 7, 200, -1, -1, -1, -1 }, + { 104, 4, 8, 7, -1, -1, -1, -1 }, + { 102, 2, 1, 11, -1, -1, -1, -1 }, + { 3, 7, 104, 100, 200, -1, -1, -1 }, + { 1, 3, 100, 101, 200, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 101, 100, 104, 200, -1, -1, -1, -1 }, + { 9, 101, 104, 4, 200, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 101, 0, 8, 200, -1, -1, -1 }, + { 4, 9, 101, 104, 200, -1, -1, -1 }, + { 9, 1, 101, 200, -1, -1, -1, -1 }, + { 101, 1, 0, 200, -1, -1, -1, -1 }, + { 4, 200, 104, 7, -1, -1, -1, -1 }, + { 8, 7, 104, 200, -1, -1, -1, -1 }, + { 100, 3, 0, 104, 7, 4, -1, -1 }, + { 104, 4, 8, 7, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 8, 9, 11, 10 }, + { 11, 102, 101, 9, 200, -1, -1, -1 }, + { 10, 103, 102, 11, 200, -1, -1, -1 }, + { 3, 103, 10, 200, -1, -1, -1, -1 }, + { 103, 101, 102, 200, -1, -1, -1, -1 }, + { 3, 0, 101, 103, 200, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 10, 103, 102, 11, 200, -1, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 0, 100, 8, 200, -1, -1, -1, -1 }, + { 100, 102, 103, 200, -1, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 102, 1, 11, 200, -1, -1, -1, -1 }, + { 103, 3, 10, 102, 1, 11, -1, -1 }, + { 8, 100, 103, 10, 200, -1, -1, -1 }, + { 9, 101, 100, 8, 200, -1, -1, -1 }, + { 1, 101, 9, 200, -1, -1, -1, -1 }, + { 101, 103, 100, 200, -1, -1, -1, -1 }, + { 1, 2, 103, 101, 200, -1, -1, -1 }, + { 103, 2, 10, 200, -1, -1, -1, -1 }, + { 103, 3, 0, 101, 200, -1, -1, -1 }, + { 2, 103, 101, 1, 200, -1, -1, -1 }, + { 1, 101, 9, 200, -1, -1, -1, -1 }, + { 101, 0, 9, 200, -1, -1, -1, -1 }, + { 2, 103, 200, 10, -1, -1, -1, -1 }, + { 3, 103, 10, 200, -1, -1, -1, -1 }, + { 103, 10, 2, 100, 8, 0, -1, -1 }, + { 103, 3, 2, 10, -1, -1, -1, -1 }, + { 9, 11, 102, 101, 200, -1, -1, -1 }, + { 8, 9, 101, 100, 200, -1, -1, -1 }, + { 3, 8, 100, 200, -1, -1, -1, -1 }, + { 100, 101, 102, 200, -1, -1, -1, -1 }, + { 3, 100, 102, 2, 200, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 102, 2, 11, 101, 0, 9, -1, -1 }, + { 100, 102, 2, 3, 200, -1, -1, -1 }, + { 0, 1, 102, 100, 200, -1, -1, -1 }, + { 1, 11, 102, 200, -1, -1, -1, -1 }, + { 102, 11, 2, 200, -1, -1, -1, -1 }, + { 0, 200, 100, 8, -1, -1, -1, -1 }, + { 3, 8, 100, 200, -1, -1, -1, -1 }, + { 102, 1, 11, 2, -1, -1, -1, -1 }, + { 101, 1, 9, 100, 3, 8, -1, -1 }, + { 101, 0, 9, 1, -1, -1, -1, -1 }, + { 100, 0, 3, 8, -1, -1, -1, -1 } +}; + +// Special points (e.g. centroid): per-case definition streams +constexpr int special_point_count_outside[256] = { 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 }; +constexpr int special_point_offset_outside[257] = { 0, 0, 8, 16, 16, 24, 24, 24, 30, 38, 38, 38, 44, 44, 50, 56, 56, 64, 64, 64, 70, 70, 77, 84, 91, 91, 97, 97, 97, 104, 111, 117, 123, 131, 131, 131, 137, 137, 137, 143, 143, 143, 150, 157, 164, 171, 177, 184, 190, 190, 196, 202, 202, 209, 215, 222, 228, 235, 242, 248, 254, 254, 259, 264, 264, 272, 272, 272, 279, 279, 286, 292, 299, 299, 306, 306, 312, 318, 325, 325, 331, 331, 338, 338, 344, 351, 351, 357, 362, 362, 368, 368, 368, 374, 379, 379, 382, 382, 389, 395, 402, 408, 414, 414, 420, 427, 427, 433, 438, 445, 450, 456, 456, 462, 469, 469, 475, 482, 487, 493, 493, 499, 504, 504, 507, 512, 512, 515, 515, 523, 523, 523, 530, 530, 530, 537, 543, 543, 549, 556, 563, 569, 569, 576, 582, 582, 588, 595, 602, 609, 615, 615, 620, 626, 626, 632, 638, 645, 651, 656, 656, 656, 656, 663, 669, 669, 669, 675, 675, 682, 688, 688, 693, 699, 699, 704, 707, 713, 713, 720, 726, 732, 732, 737, 740, 747, 753, 758, 758, 763, 766, 766, 766, 766, 773, 780, 780, 786, 792, 799, 804, 810, 817, 823, 828, 828, 834, 840, 840, 846, 853, 859, 864, 871, 876, 881, 881, 881, 887, 887, 890, 896, 896, 899, 899, 905, 911, 918, 923, 923, 923, 929, 932, 939, 944, 949, 949, 955, 958, 958, 958, 958, 964, 970, 970, 976, 979, 979, 979, 985, 985, 988, 988, 988, 988, 988, 988 }; +constexpr int special_point_data_outside[988] = { 7, 107, 106, 105, 104, 103, 102, 101, 7, 103, 107, 104, 100, 102, 106, 105, 7, 100, 104, 107, 103, 101, 105, 106, 5, 11, 9, 8, 2, 3, 7, 104, 105, 101, 100, 107, 106, 102, 5, 10, 8, 9, 2, 1, 5, 11, 10, 8, 1, 0, 5, 9, 11, 10, 0, 3, 7, 103, 102, 101, 100, 107, 106, 105, 5, 7, 3, 1, 4, 9, 6, 106, 101, 105, 107, 3, 7, 6, 107, 100, 103, 106, 9, 11, 6, 7, 4, 9, 11, 2, 3, 5, 2, 0, 4, 10, 7, 6, 105, 100, 101, 106, 10, 11, 6, 4, 7, 10, 11, 1, 0, 5, 11, 9, 10, 3, 0, 5, 10, 11, 7, 4, 9, 7, 100, 103, 107, 104, 101, 102, 106, 5, 5, 1, 3, 4, 8, 5, 2, 0, 4, 11, 5, 6, 106, 101, 102, 107, 8, 10, 6, 107, 100, 104, 106, 1, 5, 6, 10, 2, 1, 5, 4, 8, 6, 104, 101, 100, 107, 11, 10, 5, 10, 11, 8, 0, 1, 6, 4, 5, 11, 10, 3, 0, 5, 8, 10, 4, 5, 11, 5, 5, 7, 3, 9, 0, 5, 1, 5, 7, 0, 8, 6, 103, 101, 100, 107, 5, 7, 5, 7, 5, 3, 0, 9, 6, 2, 11, 5, 7, 8, 0, 5, 3, 7, 2, 11, 5, 6, 102, 100, 101, 106, 7, 5, 6, 2, 10, 7, 5, 9, 0, 5, 5, 1, 7, 8, 0, 5, 7, 5, 10, 2, 1, 4, 10, 7, 0, 0, 4, 11, 5, 0, 0, 7, 101, 100, 103, 102, 105, 104, 107, 6, 107, 105, 104, 103, 1, 3, 6, 104, 103, 107, 105, 1, 5, 5, 6, 2, 0, 5, 9, 6, 8, 3, 2, 6, 5, 9, 6, 105, 102, 101, 104, 10, 8, 5, 8, 10, 9, 1, 2, 5, 5, 1, 3, 6, 10, 6, 8, 0, 1, 5, 6, 10, 5, 9, 8, 5, 6, 10, 6, 102, 105, 101, 103, 7, 3, 5, 3, 7, 1, 9, 4, 6, 100, 107, 103, 101, 5, 1, 5, 2, 6, 0, 9, 5, 4, 2, 3, 9, 9, 5, 0, 2, 4, 7, 10, 5, 1, 5, 3, 10, 6, 4, 1, 0, 10, 10, 2, 10, 9, 6, 103, 104, 107, 102, 9, 11, 5, 6, 4, 0, 11, 1, 6, 3, 8, 4, 6, 11, 1, 5, 4, 6, 2, 9, 1, 5, 6, 4, 2, 1, 9, 5, 2, 6, 3, 8, 4, 6, 100, 107, 104, 101, 11, 9, 5, 4, 6, 0, 1, 11, 4, 4, 8, 1, 1, 6, 3, 10, 6, 4, 9, 1, 4, 6, 10, 1, 1, 5, 0, 4, 3, 10, 6, 5, 11, 9, 8, 6, 7, 6, 3, 0, 9, 11, 6, 7, 5, 1, 3, 11, 6, 7, 6, 8, 7, 6, 2, 1, 9, 4, 6, 7, 9, 9, 5, 0, 2, 8, 7, 6, 5, 9, 11, 8, 7, 6, 4, 9, 0, 7, 7, 2, 7, 1, 4, 9, 1, 6, 6, 2, 0, 6, 7, 100, 101, 102, 103, 104, 105, 106, 6, 106, 104, 105, 102, 3, 1, 6, 104, 103, 100, 105, 11, 9, 5, 9, 11, 8, 3, 2, 5, 6, 2, 0, 7, 8, 6, 105, 100, 104, 106, 2, 6, 6, 9, 1, 2, 6, 7, 8, 5, 7, 3, 1, 6, 11, 6, 7, 6, 11, 9, 0, 3, 5, 8, 9, 7, 6, 11, 5, 6, 4, 0, 10, 3, 6, 102, 100, 103, 106, 4, 6, 6, 1, 9, 4, 6, 10, 3, 6, 101, 103, 100, 105, 6, 4, 5, 4, 6, 0, 3, 10, 4, 4, 9, 3, 3, 5, 4, 6, 2, 8, 3, 5, 6, 4, 2, 3, 8, 5, 2, 6, 1, 9, 4, 6, 1, 11, 6, 4, 8, 3, 5, 0, 4, 1, 11, 6, 4, 6, 11, 3, 3, 6, 103, 104, 100, 102, 5, 1, 5, 1, 5, 3, 8, 4, 5, 0, 2, 4, 5, 11, 6, 101, 104, 100, 102, 6, 2, 5, 2, 6, 0, 8, 7, 4, 2, 1, 8, 8, 5, 3, 7, 1, 11, 6, 4, 0, 3, 11, 11, 2, 8, 11, 5, 10, 8, 9, 6, 5, 6, 10, 6, 5, 1, 0, 8, 5, 3, 1, 10, 6, 5, 5, 8, 10, 9, 5, 6, 4, 0, 8, 5, 5, 2, 3, 5, 6, 9, 5, 6, 2, 3, 8, 5, 0, 2, 9, 5, 6, 4, 6, 5, 8, 8, 4, 8, 3, 6, 6, 2, 0, 6, 6, 101, 103, 102, 105, 7, 5, 6, 100, 102, 103, 104, 5, 7, 5, 1, 5, 7, 2, 10, 5, 5, 1, 7, 10, 2, 6, 0, 9, 5, 7, 10, 2, 4, 5, 9, 2, 2, 5, 5, 7, 3, 11, 2, 6, 0, 8, 7, 5, 11, 2, 5, 7, 5, 3, 2, 11, 4, 7, 8, 2, 2, 5, 7, 5, 8, 0, 1, 5, 3, 7, 0, 9, 5, 5, 11, 10, 8, 5, 4, 6, 0, 3, 10, 11, 5, 4, 5, 10, 11, 8, 4, 5, 4, 10, 3, 4, 4, 6, 8, 4, 5, 1, 2, 10, 4, 5, 4, 10, 10, 4, 2, 10, 5, 5, 5, 4, 0, 5, 11, 2, 2, 2, 4, 5, 3, 1, 8, 4, 5, 2, 3, 5, 5, 9, 11, 10, 4, 7, 5, 11, 9, 10, 7, 4, 6, 0, 1, 11, 10, 7, 4, 4, 11, 1, 4, 4, 5, 4, 0, 7, 10, 2, 2, 2, 4, 6, 3, 2, 11, 9, 4, 7, 4, 11, 2, 7, 7, 4, 4, 7, 11, 11, 5, 1, 3, 9, 4, 7, 2, 7, 1, 5, 10, 11, 3, 0, 9, 5, 8, 10, 0, 1, 11, 5, 9, 8, 1, 2, 10, 2, 10, 9, 5, 8, 9, 3, 2, 11, 2, 8, 11 }; + +} // namespace cutcells::cell::hexahedron + +#endif // CUT_CELLS_HEXAHEDRON_OUTSIDE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_prism_inside_tables.h b/cpp/src/generated/cut_prism_inside_tables.h new file mode 100644 index 0000000..ff5f5db --- /dev/null +++ b/cpp/src/generated/cut_prism_inside_tables.h @@ -0,0 +1,340 @@ +#ifndef CUT_CELLS_PRISM_INSIDE_TABLES_H +#define CUT_CELLS_PRISM_INSIDE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::prism { + +// Intersected edges per case (1 = intersected, 0 = not intersected) +constexpr int intersected_edges[64][9] = { + { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 1, 0, 0, 0, 1, 0, 0 }, + { 1, 1, 0, 0, 0, 0, 0, 1, 0 }, + { 0, 1, 1, 0, 0, 0, 1, 1, 0 }, + { 0, 1, 1, 0, 0, 0, 0, 0, 1 }, + { 1, 1, 0, 0, 0, 0, 1, 0, 1 }, + { 1, 0, 1, 0, 0, 0, 0, 1, 1 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 1 }, + { 0, 0, 0, 1, 0, 1, 1, 0, 0 }, + { 1, 0, 1, 1, 0, 1, 0, 0, 0 }, + { 1, 1, 0, 1, 0, 1, 1, 1, 0 }, + { 0, 1, 1, 1, 0, 1, 0, 1, 0 }, + { 0, 1, 1, 1, 0, 1, 1, 0, 1 }, + { 1, 1, 0, 1, 0, 1, 0, 0, 1 }, + { 1, 0, 1, 1, 0, 1, 1, 1, 1 }, + { 0, 0, 0, 1, 0, 1, 0, 1, 1 }, + { 0, 0, 0, 1, 1, 0, 0, 1, 0 }, + { 1, 0, 1, 1, 1, 0, 1, 1, 0 }, + { 1, 1, 0, 1, 1, 0, 0, 0, 0 }, + { 0, 1, 1, 1, 1, 0, 1, 0, 0 }, + { 0, 1, 1, 1, 1, 0, 0, 1, 1 }, + { 1, 1, 0, 1, 1, 0, 1, 1, 1 }, + { 1, 0, 1, 1, 1, 0, 0, 0, 1 }, + { 0, 0, 0, 1, 1, 0, 1, 0, 1 }, + { 0, 0, 0, 0, 1, 1, 1, 1, 0 }, + { 1, 0, 1, 0, 1, 1, 0, 1, 0 }, + { 1, 1, 0, 0, 1, 1, 1, 0, 0 }, + { 0, 1, 1, 0, 1, 1, 0, 0, 0 }, + { 0, 1, 1, 0, 1, 1, 1, 1, 1 }, + { 1, 1, 0, 0, 1, 1, 0, 1, 1 }, + { 1, 0, 1, 0, 1, 1, 1, 0, 1 }, + { 0, 0, 0, 0, 1, 1, 0, 0, 1 }, + { 0, 0, 0, 0, 1, 1, 0, 0, 1 }, + { 1, 0, 1, 0, 1, 1, 1, 0, 1 }, + { 1, 1, 0, 0, 1, 1, 0, 1, 1 }, + { 0, 1, 1, 0, 1, 1, 1, 1, 1 }, + { 0, 1, 1, 0, 1, 1, 0, 0, 0 }, + { 1, 1, 0, 0, 1, 1, 1, 0, 0 }, + { 1, 0, 1, 0, 1, 1, 0, 1, 0 }, + { 0, 0, 0, 0, 1, 1, 1, 1, 0 }, + { 0, 0, 0, 1, 1, 0, 1, 0, 1 }, + { 1, 0, 1, 1, 1, 0, 0, 0, 1 }, + { 1, 1, 0, 1, 1, 0, 1, 1, 1 }, + { 0, 1, 1, 1, 1, 0, 0, 1, 1 }, + { 0, 1, 1, 1, 1, 0, 1, 0, 0 }, + { 1, 1, 0, 1, 1, 0, 0, 0, 0 }, + { 1, 0, 1, 1, 1, 0, 1, 1, 0 }, + { 0, 0, 0, 1, 1, 0, 0, 1, 0 }, + { 0, 0, 0, 1, 0, 1, 0, 1, 1 }, + { 1, 0, 1, 1, 0, 1, 1, 1, 1 }, + { 1, 1, 0, 1, 0, 1, 0, 0, 1 }, + { 0, 1, 1, 1, 0, 1, 1, 0, 1 }, + { 0, 1, 1, 1, 0, 1, 0, 1, 0 }, + { 1, 1, 0, 1, 0, 1, 1, 1, 0 }, + { 1, 0, 1, 1, 0, 1, 0, 0, 0 }, + { 0, 0, 0, 1, 0, 1, 1, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 1, 1, 1 }, + { 1, 0, 1, 0, 0, 0, 0, 1, 1 }, + { 1, 1, 0, 0, 0, 0, 1, 0, 1 }, + { 0, 1, 1, 0, 0, 0, 0, 0, 1 }, + { 0, 1, 1, 0, 0, 0, 1, 1, 0 }, + { 1, 1, 0, 0, 0, 0, 0, 1, 0 }, + { 1, 0, 1, 0, 0, 0, 1, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +// Number of subcells produced for each case (inside volume) +constexpr int num_subcells_inside[64] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 7, 7, 1, 6, 1, 6, 6, 7, 6, 7, 1, 6, 6, 1, 7, 3, 3, 2, 1, 6, 6, 7, 1, 6, 6, 7, 1, 6, 7, 3, 6, 1, 3, 2, 1, 7, 6, 3, 6, 3, 1, 2, 1, 7, 7, 2, 7, 2, 2, 1 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_inside[65] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 21, 27, 33, 40, 47, 48, 54, 55, 61, 67, 74, 80, 87, 88, 94, 100, 101, 108, 111, 114, 116, 117, 123, 129, 136, 137, 143, 149, 156, 157, 163, 170, 173, 179, 180, 183, 185, 186, 193, 199, 202, 208, 211, 212, 214, 215, 222, 229, 231, 238, 240, 242, 243 }; + +// Cell types for inside subcells +constexpr type subcell_type_inside[243] = { cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::hexahedron, cell::type::prism, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::prism }; + +// Subcell vertices (max 8 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_inside[243][8] = { + { 6, 0, 2, 100, -1, -1, -1, -1 }, + { 7, 1, 0, 101, -1, -1, -1, -1 }, + { 2, 6, 100, 1, 7, 101, -1, -1 }, + { 8, 2, 1, 102, -1, -1, -1, -1 }, + { 1, 8, 102, 0, 6, 100, -1, -1 }, + { 0, 7, 101, 2, 8, 102, -1, -1 }, + { 100, 101, 102, 6, 7, 8, -1, -1 }, + { 6, 5, 3, 103, -1, -1, -1, -1 }, + { 100, 0, 2, 103, 3, 5, -1, -1 }, + { 6, 0, 101, 103, 200, -1, -1, -1 }, + { 103, 101, 7, 3, 200, -1, -1, -1 }, + { 103, 3, 5, 200, -1, -1, -1, -1 }, + { 5, 6, 103, 200, -1, -1, -1, -1 }, + { 101, 1, 7, 200, -1, -1, -1, -1 }, + { 101, 0, 1, 200, -1, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 2, 1, 101, 100, 200, -1, -1, -1 }, + { 2, 100, 103, 5, 200, -1, -1, -1 }, + { 5, 103, 3, 200, -1, -1, -1, -1 }, + { 103, 101, 7, 3, 200, -1, -1, -1 }, + { 101, 1, 7, 200, -1, -1, -1, -1 }, + { 8, 102, 103, 5, 200, -1, -1, -1 }, + { 102, 2, 6, 103, 200, -1, -1, -1 }, + { 102, 1, 2, 200, -1, -1, -1, -1 }, + { 1, 102, 8, 200, -1, -1, -1, -1 }, + { 103, 6, 3, 200, -1, -1, -1, -1 }, + { 103, 3, 5, 200, -1, -1, -1, -1 }, + { 100, 103, 102, 200, -1, -1, -1, -1 }, + { 0, 100, 102, 1, 200, -1, -1, -1 }, + { 0, 3, 103, 100, 200, -1, -1, -1 }, + { 3, 5, 103, 200, -1, -1, -1, -1 }, + { 103, 5, 8, 102, 200, -1, -1, -1 }, + { 102, 8, 1, 200, -1, -1, -1, -1 }, + { 102, 101, 103, 2, 0, 6, -1, -1 }, + { 5, 3, 7, 8, 200, -1, -1, -1 }, + { 7, 101, 102, 8, 200, -1, -1, -1 }, + { 103, 102, 101, 200, -1, -1, -1, -1 }, + { 103, 3, 5, 200, -1, -1, -1, -1 }, + { 3, 103, 101, 7, 200, -1, -1, -1 }, + { 8, 102, 103, 5, 200, -1, -1, -1 }, + { 100, 102, 101, 103, -1, -1, -1, -1 }, + { 5, 3, 7, 8, 200, -1, -1, -1 }, + { 8, 7, 101, 102, 200, -1, -1, -1 }, + { 103, 102, 101, 200, -1, -1, -1, -1 }, + { 103, 3, 5, 200, -1, -1, -1, -1 }, + { 103, 101, 7, 3, 200, -1, -1, -1 }, + { 102, 103, 5, 8, 200, -1, -1, -1 }, + { 7, 3, 4, 104, -1, -1, -1, -1 }, + { 6, 100, 104, 3, 200, -1, -1, -1 }, + { 100, 0, 7, 104, 200, -1, -1, -1 }, + { 100, 2, 0, 200, -1, -1, -1, -1 }, + { 2, 100, 6, 200, -1, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 4, 3, 200, -1, -1, -1, -1 }, + { 101, 1, 0, 104, 4, 3, -1, -1 }, + { 101, 104, 100, 200, -1, -1, -1, -1 }, + { 1, 101, 100, 2, 200, -1, -1, -1 }, + { 1, 4, 104, 101, 200, -1, -1, -1 }, + { 4, 3, 104, 200, -1, -1, -1, -1 }, + { 104, 3, 6, 100, 200, -1, -1, -1 }, + { 100, 6, 2, 200, -1, -1, -1, -1 }, + { 7, 1, 102, 104, 200, -1, -1, -1 }, + { 104, 102, 8, 4, 200, -1, -1, -1 }, + { 104, 4, 3, 200, -1, -1, -1, -1 }, + { 3, 7, 104, 200, -1, -1, -1, -1 }, + { 102, 2, 8, 200, -1, -1, -1, -1 }, + { 102, 1, 2, 200, -1, -1, -1, -1 }, + { 100, 102, 104, 0, 1, 7, -1, -1 }, + { 3, 4, 8, 6, 200, -1, -1, -1 }, + { 8, 102, 100, 6, 200, -1, -1, -1 }, + { 104, 100, 102, 200, -1, -1, -1, -1 }, + { 104, 4, 3, 200, -1, -1, -1, -1 }, + { 4, 104, 102, 8, 200, -1, -1, -1 }, + { 6, 100, 104, 3, 200, -1, -1, -1 }, + { 101, 102, 104, 200, -1, -1, -1, -1 }, + { 0, 2, 102, 101, 200, -1, -1, -1 }, + { 0, 101, 104, 3, 200, -1, -1, -1 }, + { 3, 104, 4, 200, -1, -1, -1, -1 }, + { 104, 102, 8, 4, 200, -1, -1, -1 }, + { 102, 2, 8, 200, -1, -1, -1, -1 }, + { 101, 100, 102, 104, -1, -1, -1, -1 }, + { 3, 4, 8, 6, 200, -1, -1, -1 }, + { 6, 8, 102, 100, 200, -1, -1, -1 }, + { 104, 100, 102, 200, -1, -1, -1, -1 }, + { 104, 4, 3, 200, -1, -1, -1, -1 }, + { 104, 102, 8, 4, 200, -1, -1, -1 }, + { 100, 104, 3, 6, 200, -1, -1, -1 }, + { 4, 7, 104, 5, 6, 103, -1, -1 }, + { 103, 100, 104, 200, -1, -1, -1, -1 }, + { 5, 103, 104, 4, 200, -1, -1, -1 }, + { 5, 2, 100, 103, 200, -1, -1, -1 }, + { 2, 0, 100, 200, -1, -1, -1, -1 }, + { 100, 0, 7, 104, 200, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 103, 101, 200, -1, -1, -1, -1 }, + { 4, 5, 103, 104, 200, -1, -1, -1 }, + { 4, 104, 101, 1, 200, -1, -1, -1 }, + { 1, 101, 0, 200, -1, -1, -1, -1 }, + { 101, 103, 6, 0, 200, -1, -1, -1 }, + { 103, 5, 6, 200, -1, -1, -1, -1 }, + { 103, 104, 4, 5, 100, 101, 1, 2 }, + { 4, 5, 8, 104, 103, 102, -1, -1 }, + { 1, 7, 6, 2, 200, -1, -1, -1 }, + { 6, 7, 104, 103, 200, -1, -1, -1 }, + { 102, 103, 104, 200, -1, -1, -1, -1 }, + { 102, 1, 2, 200, -1, -1, -1, -1 }, + { 2, 6, 103, 102, 200, -1, -1, -1 }, + { 7, 1, 102, 104, 200, -1, -1, -1 }, + { 102, 103, 104, 8, 5, 4, -1, -1 }, + { 102, 103, 104, 100, -1, -1, -1, -1 }, + { 102, 104, 100, 1, 7, 0, -1, -1 }, + { 6, 0, 2, 103, 101, 102, -1, -1 }, + { 103, 102, 101, 104, -1, -1, -1, -1 }, + { 5, 8, 4, 103, 102, 104, -1, -1 }, + { 8, 4, 5, 102, 104, 103, -1, -1 }, + { 100, 101, 104, 103, 102, -1, -1, -1 }, + { 8, 4, 5, 105, -1, -1, -1, -1 }, + { 8, 2, 100, 105, 200, -1, -1, -1 }, + { 105, 100, 6, 5, 200, -1, -1, -1 }, + { 105, 5, 4, 200, -1, -1, -1, -1 }, + { 4, 8, 105, 200, -1, -1, -1, -1 }, + { 100, 0, 6, 200, -1, -1, -1, -1 }, + { 100, 2, 0, 200, -1, -1, -1, -1 }, + { 7, 101, 105, 4, 200, -1, -1, -1 }, + { 101, 1, 8, 105, 200, -1, -1, -1 }, + { 101, 0, 1, 200, -1, -1, -1, -1 }, + { 0, 101, 7, 200, -1, -1, -1, -1 }, + { 105, 8, 5, 200, -1, -1, -1, -1 }, + { 105, 5, 4, 200, -1, -1, -1, -1 }, + { 101, 100, 105, 1, 2, 8, -1, -1 }, + { 4, 5, 6, 7, 200, -1, -1, -1 }, + { 6, 100, 101, 7, 200, -1, -1, -1 }, + { 105, 101, 100, 200, -1, -1, -1, -1 }, + { 105, 5, 4, 200, -1, -1, -1, -1 }, + { 5, 105, 100, 6, 200, -1, -1, -1 }, + { 7, 101, 105, 4, 200, -1, -1, -1 }, + { 102, 2, 1, 105, 5, 4, -1, -1 }, + { 102, 100, 105, 200, -1, -1, -1, -1 }, + { 1, 0, 100, 102, 200, -1, -1, -1 }, + { 1, 102, 105, 4, 200, -1, -1, -1 }, + { 4, 105, 5, 200, -1, -1, -1, -1 }, + { 105, 100, 6, 5, 200, -1, -1, -1 }, + { 100, 0, 6, 200, -1, -1, -1, -1 }, + { 102, 105, 101, 200, -1, -1, -1, -1 }, + { 2, 102, 101, 0, 200, -1, -1, -1 }, + { 2, 5, 105, 102, 200, -1, -1, -1 }, + { 5, 4, 105, 200, -1, -1, -1, -1 }, + { 105, 4, 7, 101, 200, -1, -1, -1 }, + { 101, 7, 0, 200, -1, -1, -1, -1 }, + { 102, 101, 100, 105, -1, -1, -1, -1 }, + { 4, 5, 6, 7, 200, -1, -1, -1 }, + { 7, 6, 100, 101, 200, -1, -1, -1 }, + { 105, 101, 100, 200, -1, -1, -1, -1 }, + { 105, 5, 4, 200, -1, -1, -1, -1 }, + { 105, 100, 6, 5, 200, -1, -1, -1 }, + { 101, 105, 4, 7, 200, -1, -1, -1 }, + { 3, 6, 103, 4, 8, 105, -1, -1 }, + { 103, 105, 100, 200, -1, -1, -1, -1 }, + { 3, 4, 105, 103, 200, -1, -1, -1 }, + { 3, 103, 100, 0, 200, -1, -1, -1 }, + { 0, 100, 2, 200, -1, -1, -1, -1 }, + { 100, 105, 8, 2, 200, -1, -1, -1 }, + { 105, 4, 8, 200, -1, -1, -1, -1 }, + { 3, 4, 7, 103, 105, 101, -1, -1 }, + { 0, 6, 8, 1, 200, -1, -1, -1 }, + { 8, 6, 103, 105, 200, -1, -1, -1 }, + { 101, 105, 103, 200, -1, -1, -1, -1 }, + { 101, 0, 1, 200, -1, -1, -1, -1 }, + { 1, 8, 105, 101, 200, -1, -1, -1 }, + { 6, 0, 101, 103, 200, -1, -1, -1 }, + { 8, 2, 1, 105, 100, 101, -1, -1 }, + { 105, 101, 100, 103, -1, -1, -1, -1 }, + { 4, 7, 3, 105, 101, 103, -1, -1 }, + { 105, 102, 103, 200, -1, -1, -1, -1 }, + { 4, 105, 103, 3, 200, -1, -1, -1 }, + { 4, 1, 102, 105, 200, -1, -1, -1 }, + { 1, 2, 102, 200, -1, -1, -1, -1 }, + { 102, 2, 6, 103, 200, -1, -1, -1 }, + { 103, 6, 3, 200, -1, -1, -1, -1 }, + { 105, 103, 3, 4, 102, 100, 0, 1 }, + { 101, 105, 103, 7, 4, 3, -1, -1 }, + { 101, 105, 103, 102, -1, -1, -1, -1 }, + { 101, 103, 102, 0, 6, 2, -1, -1 }, + { 7, 3, 4, 101, 103, 105, -1, -1 }, + { 102, 100, 103, 105, 101, -1, -1, -1 }, + { 5, 8, 105, 3, 7, 104, -1, -1 }, + { 5, 3, 6, 105, 104, 100, -1, -1 }, + { 2, 8, 7, 0, 200, -1, -1, -1 }, + { 7, 8, 105, 104, 200, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 100, 2, 0, 200, -1, -1, -1, -1 }, + { 0, 7, 104, 100, 200, -1, -1, -1 }, + { 8, 2, 100, 105, 200, -1, -1, -1 }, + { 104, 101, 105, 200, -1, -1, -1, -1 }, + { 3, 104, 105, 5, 200, -1, -1, -1 }, + { 3, 0, 101, 104, 200, -1, -1, -1 }, + { 0, 1, 101, 200, -1, -1, -1, -1 }, + { 101, 1, 8, 105, 200, -1, -1, -1 }, + { 105, 8, 5, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 6, 3, 5, -1, -1 }, + { 100, 104, 105, 101, -1, -1, -1, -1 }, + { 100, 105, 101, 2, 8, 1, -1, -1 }, + { 105, 104, 102, 200, -1, -1, -1, -1 }, + { 5, 3, 104, 105, 200, -1, -1, -1 }, + { 5, 105, 102, 2, 200, -1, -1, -1 }, + { 2, 102, 1, 200, -1, -1, -1, -1 }, + { 102, 104, 7, 1, 200, -1, -1, -1 }, + { 104, 3, 7, 200, -1, -1, -1, -1 }, + { 7, 1, 0, 104, 102, 100, -1, -1 }, + { 104, 100, 102, 105, -1, -1, -1, -1 }, + { 3, 6, 5, 104, 100, 105, -1, -1 }, + { 104, 105, 5, 3, 101, 102, 2, 0 }, + { 6, 5, 3, 100, 105, 104, -1, -1 }, + { 101, 102, 105, 104, 100, -1, -1, -1 }, + { 6, 7, 8, 103, 104, 105, -1, -1 }, + { 103, 104, 105, 100, -1, -1, -1, -1 }, + { 2, 8, 7, 0, 200, -1, -1, -1 }, + { 8, 105, 104, 7, 200, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 100, 2, 0, 200, -1, -1, -1, -1 }, + { 100, 0, 7, 104, 200, -1, -1, -1 }, + { 105, 8, 2, 100, 200, -1, -1, -1 }, + { 104, 105, 103, 101, -1, -1, -1, -1 }, + { 0, 6, 8, 1, 200, -1, -1, -1 }, + { 6, 103, 105, 8, 200, -1, -1, -1 }, + { 101, 105, 103, 200, -1, -1, -1, -1 }, + { 101, 0, 1, 200, -1, -1, -1, -1 }, + { 101, 1, 8, 105, 200, -1, -1, -1 }, + { 103, 6, 0, 101, 200, -1, -1, -1 }, + { 105, 101, 100, 8, 1, 2, -1, -1 }, + { 103, 100, 101, 104, 105, -1, -1, -1 }, + { 105, 103, 104, 102, -1, -1, -1, -1 }, + { 1, 7, 6, 2, 200, -1, -1, -1 }, + { 7, 104, 103, 6, 200, -1, -1, -1 }, + { 102, 103, 104, 200, -1, -1, -1, -1 }, + { 102, 1, 2, 200, -1, -1, -1, -1 }, + { 102, 2, 6, 103, 200, -1, -1, -1 }, + { 104, 7, 1, 102, 200, -1, -1, -1 }, + { 104, 100, 102, 7, 0, 1, -1, -1 }, + { 105, 102, 100, 103, 104, -1, -1, -1 }, + { 103, 102, 101, 6, 2, 0, -1, -1 }, + { 104, 101, 102, 105, 103, -1, -1, -1 }, + { 100, 101, 102, 103, 104, 105, -1, -1 } +}; + +// Special points (e.g. centroid): per-case definition streams +constexpr int special_point_count_inside[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0 }; +constexpr int special_point_offset_inside[65] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 13, 20, 26, 34, 42, 42, 49, 49, 55, 62, 70, 76, 84, 84, 90, 96, 96, 104, 104, 104, 104, 104, 111, 118, 126, 126, 132, 138, 146, 146, 152, 160, 160, 166, 166, 166, 166, 166, 174, 180, 180, 186, 186, 186, 186, 186, 194, 202, 202, 210, 210, 210, 210 }; +constexpr int special_point_data_inside[210] = { 6, 0, 1, 7, 3, 5, 6, 5, 1, 2, 5, 3, 7, 6, 5, 3, 6, 2, 1, 8, 5, 1, 0, 3, 5, 8, 7, 3, 5, 8, 7, 103, 102, 101, 7, 101, 102, 103, 5, 3, 7, 8, 6, 3, 4, 7, 0, 2, 6, 5, 2, 1, 4, 3, 6, 6, 1, 2, 8, 4, 3, 7, 7, 4, 3, 6, 8, 104, 100, 102, 5, 2, 0, 3, 4, 8, 7, 102, 100, 104, 3, 4, 8, 6, 5, 4, 5, 2, 0, 7, 5, 5, 4, 1, 0, 6, 7, 2, 1, 7, 6, 102, 104, 103, 6, 2, 0, 6, 5, 4, 8, 6, 4, 5, 8, 1, 0, 7, 7, 5, 4, 7, 6, 105, 101, 100, 5, 0, 1, 4, 5, 6, 5, 0, 2, 5, 4, 7, 7, 100, 101, 105, 4, 5, 6, 7, 5, 4, 3, 0, 2, 8, 7, 1, 0, 6, 8, 101, 103, 105, 5, 3, 4, 1, 2, 6, 7, 0, 2, 8, 7, 100, 105, 104, 5, 5, 3, 0, 1, 8, 5, 3, 5, 2, 1, 7, 7, 104, 105, 100, 2, 0, 7, 8, 7, 105, 103, 101, 0, 1, 8, 6, 7, 103, 104, 102, 1, 2, 6, 7 }; + +} // namespace cutcells::cell::prism + +#endif // CUT_CELLS_PRISM_INSIDE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_prism_interface_tables.h b/cpp/src/generated/cut_prism_interface_tables.h new file mode 100644 index 0000000..c8d613d --- /dev/null +++ b/cpp/src/generated/cut_prism_interface_tables.h @@ -0,0 +1,181 @@ +#ifndef CUT_CELLS_PRISM_INTERFACE_TABLES_H +#define CUT_CELLS_PRISM_INTERFACE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::prism { + +// Number of subcells produced for each case (interface volume) +constexpr int num_subcells_interface[64] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 5, 6, 5, 2, 1, 1, 6, 1, 5, 6, 2, 5, 1, 1, 5, 5, 1, 2, 2, 2, 1, 1, 6, 6, 2, 1, 5, 5, 1, 1, 5, 2, 2, 5, 1, 2, 1, 1, 2, 5, 2, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_interface[65] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 20, 26, 31, 33, 34, 35, 41, 42, 47, 53, 55, 60, 61, 62, 67, 72, 73, 75, 77, 79, 80, 81, 87, 93, 95, 96, 101, 106, 107, 108, 113, 115, 117, 122, 123, 125, 126, 127, 129, 134, 136, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152 }; + +// Cell types for interface subcells +constexpr type subcell_type_interface[152] = { cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle }; + +// Subcell vertices (max 4 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_interface[152][4] = { + { 6, 0, 2, -1 }, + { 7, 1, 0, -1 }, + { 2, 1, 7, 6 }, + { 8, 2, 1, -1 }, + { 1, 0, 6, 8 }, + { 0, 2, 8, 7 }, + { 6, 8, 7, -1 }, + { 6, 5, 3, -1 }, + { 0, 3, 5, 2 }, + { 6, 200, 0, -1 }, + { 7, 200, 3, -1 }, + { 3, 200, 5, -1 }, + { 5, 200, 6, -1 }, + { 1, 200, 7, -1 }, + { 0, 200, 1, -1 }, + { 2, 200, 1, -1 }, + { 5, 200, 2, -1 }, + { 5, 3, 200, -1 }, + { 7, 200, 3, -1 }, + { 1, 200, 7, -1 }, + { 5, 200, 8, -1 }, + { 2, 200, 6, -1 }, + { 1, 200, 2, -1 }, + { 1, 8, 200, -1 }, + { 6, 200, 3, -1 }, + { 3, 200, 5, -1 }, + { 1, 200, 0, -1 }, + { 0, 200, 3, -1 }, + { 3, 200, 5, -1 }, + { 5, 200, 8, -1 }, + { 8, 200, 1, -1 }, + { 2, 6, 0, -1 }, + { 5, 3, 7, 8 }, + { 5, 3, 7, 8 }, + { 7, 3, 4, -1 }, + { 3, 200, 6, -1 }, + { 0, 200, 7, -1 }, + { 2, 200, 0, -1 }, + { 2, 6, 200, -1 }, + { 7, 200, 4, -1 }, + { 4, 200, 3, -1 }, + { 1, 4, 3, 0 }, + { 2, 200, 1, -1 }, + { 1, 200, 4, -1 }, + { 4, 200, 3, -1 }, + { 3, 200, 6, -1 }, + { 6, 200, 2, -1 }, + { 7, 200, 1, -1 }, + { 8, 200, 4, -1 }, + { 4, 200, 3, -1 }, + { 3, 200, 7, -1 }, + { 2, 200, 8, -1 }, + { 1, 200, 2, -1 }, + { 0, 7, 1, -1 }, + { 3, 4, 8, 6 }, + { 0, 200, 2, -1 }, + { 3, 200, 0, -1 }, + { 3, 4, 200, -1 }, + { 8, 200, 4, -1 }, + { 2, 200, 8, -1 }, + { 3, 4, 8, 6 }, + { 4, 5, 6, 7 }, + { 4, 200, 5, -1 }, + { 5, 200, 2, -1 }, + { 2, 200, 0, -1 }, + { 0, 200, 7, -1 }, + { 7, 200, 4, -1 }, + { 4, 200, 5, -1 }, + { 1, 200, 4, -1 }, + { 1, 0, 200, -1 }, + { 6, 200, 0, -1 }, + { 5, 200, 6, -1 }, + { 4, 1, 2, 5 }, + { 4, 5, 8, -1 }, + { 1, 7, 6, 2 }, + { 8, 4, 5, -1 }, + { 1, 0, 7, -1 }, + { 6, 0, 2, -1 }, + { 5, 8, 4, -1 }, + { 8, 4, 5, -1 }, + { 8, 4, 5, -1 }, + { 8, 200, 2, -1 }, + { 6, 200, 5, -1 }, + { 5, 200, 4, -1 }, + { 4, 200, 8, -1 }, + { 0, 200, 6, -1 }, + { 2, 200, 0, -1 }, + { 4, 200, 7, -1 }, + { 1, 200, 8, -1 }, + { 0, 200, 1, -1 }, + { 0, 7, 200, -1 }, + { 8, 200, 5, -1 }, + { 5, 200, 4, -1 }, + { 1, 8, 2, -1 }, + { 4, 5, 6, 7 }, + { 2, 5, 4, 1 }, + { 1, 200, 0, -1 }, + { 4, 200, 1, -1 }, + { 4, 5, 200, -1 }, + { 6, 200, 5, -1 }, + { 0, 200, 6, -1 }, + { 0, 200, 2, -1 }, + { 2, 200, 5, -1 }, + { 5, 200, 4, -1 }, + { 4, 200, 7, -1 }, + { 7, 200, 0, -1 }, + { 4, 5, 6, 7 }, + { 3, 4, 8, 6 }, + { 3, 200, 4, -1 }, + { 0, 200, 3, -1 }, + { 0, 2, 200, -1 }, + { 8, 200, 2, -1 }, + { 4, 200, 8, -1 }, + { 3, 4, 7, -1 }, + { 0, 6, 8, 1 }, + { 8, 2, 1, -1 }, + { 4, 7, 3, -1 }, + { 3, 200, 4, -1 }, + { 4, 200, 1, -1 }, + { 1, 200, 2, -1 }, + { 2, 200, 6, -1 }, + { 6, 200, 3, -1 }, + { 3, 0, 1, 4 }, + { 7, 3, 4, -1 }, + { 0, 2, 6, -1 }, + { 7, 3, 4, -1 }, + { 5, 3, 7, 8 }, + { 5, 3, 6, -1 }, + { 2, 8, 7, 0 }, + { 5, 200, 3, -1 }, + { 3, 200, 0, -1 }, + { 0, 200, 1, -1 }, + { 1, 200, 8, -1 }, + { 8, 200, 5, -1 }, + { 6, 5, 3, -1 }, + { 2, 1, 8, -1 }, + { 5, 200, 3, -1 }, + { 2, 200, 5, -1 }, + { 2, 1, 200, -1 }, + { 7, 200, 1, -1 }, + { 3, 200, 7, -1 }, + { 7, 1, 0, -1 }, + { 3, 6, 5, -1 }, + { 5, 2, 0, 3 }, + { 6, 5, 3, -1 }, + { 6, 7, 8, -1 }, + { 2, 8, 7, 0 }, + { 0, 6, 8, 1 }, + { 8, 2, 1, -1 }, + { 1, 7, 6, 2 }, + { 7, 1, 0, -1 }, + { 6, 0, 2, -1 } +}; + +// Special points (e.g. centroid): per-case definition streams +constexpr int special_point_count_interface[64] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +constexpr int special_point_offset_interface[65] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 13, 20, 26, 26, 26, 26, 33, 33, 39, 46, 46, 52, 52, 52, 58, 64, 64, 64, 64, 64, 64, 64, 71, 78, 78, 78, 84, 90, 90, 90, 96, 96, 96, 102, 102, 102, 102, 102, 102, 108, 108, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114 }; +constexpr int special_point_data_interface[114] = { 6, 0, 1, 7, 3, 5, 6, 5, 1, 2, 5, 3, 7, 6, 5, 3, 6, 2, 1, 8, 5, 1, 0, 3, 5, 8, 6, 3, 4, 7, 0, 2, 6, 5, 2, 1, 4, 3, 6, 6, 1, 2, 8, 4, 3, 7, 5, 2, 0, 3, 4, 8, 5, 4, 5, 2, 0, 7, 5, 5, 4, 1, 0, 6, 6, 2, 0, 6, 5, 4, 8, 6, 4, 5, 8, 1, 0, 7, 5, 0, 1, 4, 5, 6, 5, 0, 2, 5, 4, 7, 5, 4, 3, 0, 2, 8, 5, 3, 4, 1, 2, 6, 5, 5, 3, 0, 1, 8, 5, 3, 5, 2, 1, 7 }; + +} // namespace cutcells::cell::prism + +#endif // CUT_CELLS_PRISM_INTERFACE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_prism_outside_tables.h b/cpp/src/generated/cut_prism_outside_tables.h new file mode 100644 index 0000000..42de440 --- /dev/null +++ b/cpp/src/generated/cut_prism_outside_tables.h @@ -0,0 +1,272 @@ +#ifndef CUT_CELLS_PRISM_OUTSIDE_TABLES_H +#define CUT_CELLS_PRISM_OUTSIDE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::prism { + +// Number of subcells produced for each case (outside volume) +constexpr int num_subcells_outside[64] = { 1, 2, 2, 7, 2, 7, 7, 1, 2, 1, 3, 6, 3, 6, 7, 1, 2, 3, 1, 6, 3, 7, 6, 1, 7, 6, 6, 1, 7, 6, 6, 1, 2, 3, 3, 7, 1, 6, 6, 1, 7, 6, 7, 6, 6, 1, 6, 1, 7, 7, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_outside[65] = { 0, 1, 3, 5, 12, 14, 21, 28, 29, 31, 32, 35, 41, 44, 50, 57, 58, 60, 63, 64, 70, 73, 80, 86, 87, 94, 100, 106, 107, 114, 120, 126, 127, 129, 132, 135, 142, 143, 149, 155, 156, 163, 169, 176, 182, 188, 189, 195, 196, 203, 210, 216, 222, 228, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 243 }; + +// Cell types for outside subcells +constexpr type subcell_type_outside[243] = { cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::hexahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::hexahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::hexahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron }; + +// Subcell vertices (max 8 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_outside[243][8] = { + { 100, 101, 102, 103, 104, 105, -1, -1 }, + { 103, 102, 101, 6, 2, 0, -1, -1 }, + { 104, 101, 102, 105, 103, -1, -1, -1 }, + { 104, 100, 102, 7, 0, 1, -1, -1 }, + { 105, 102, 100, 103, 104, -1, -1, -1 }, + { 105, 103, 104, 102, -1, -1, -1, -1 }, + { 1, 7, 6, 2, 200, -1, -1, -1 }, + { 7, 104, 103, 6, 200, -1, -1, -1 }, + { 102, 103, 104, 200, -1, -1, -1, -1 }, + { 102, 1, 2, 200, -1, -1, -1, -1 }, + { 102, 2, 6, 103, 200, -1, -1, -1 }, + { 104, 7, 1, 102, 200, -1, -1, -1 }, + { 105, 101, 100, 8, 1, 2, -1, -1 }, + { 103, 100, 101, 104, 105, -1, -1, -1 }, + { 104, 105, 103, 101, -1, -1, -1, -1 }, + { 0, 6, 8, 1, 200, -1, -1, -1 }, + { 6, 103, 105, 8, 200, -1, -1, -1 }, + { 101, 105, 103, 200, -1, -1, -1, -1 }, + { 101, 0, 1, 200, -1, -1, -1, -1 }, + { 101, 1, 8, 105, 200, -1, -1, -1 }, + { 103, 6, 0, 101, 200, -1, -1, -1 }, + { 103, 104, 105, 100, -1, -1, -1, -1 }, + { 2, 8, 7, 0, 200, -1, -1, -1 }, + { 8, 105, 104, 7, 200, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 100, 2, 0, 200, -1, -1, -1, -1 }, + { 100, 0, 7, 104, 200, -1, -1, -1 }, + { 105, 8, 2, 100, 200, -1, -1, -1 }, + { 6, 7, 8, 103, 104, 105, -1, -1 }, + { 6, 5, 3, 100, 105, 104, -1, -1 }, + { 101, 102, 105, 104, 100, -1, -1, -1 }, + { 104, 105, 5, 3, 101, 102, 2, 0 }, + { 7, 1, 0, 104, 102, 100, -1, -1 }, + { 104, 100, 102, 105, -1, -1, -1, -1 }, + { 3, 6, 5, 104, 100, 105, -1, -1 }, + { 105, 104, 102, 200, -1, -1, -1, -1 }, + { 5, 3, 104, 105, 200, -1, -1, -1 }, + { 5, 105, 102, 2, 200, -1, -1, -1 }, + { 2, 102, 1, 200, -1, -1, -1, -1 }, + { 102, 104, 7, 1, 200, -1, -1, -1 }, + { 104, 3, 7, 200, -1, -1, -1, -1 }, + { 100, 104, 105, 6, 3, 5, -1, -1 }, + { 100, 104, 105, 101, -1, -1, -1, -1 }, + { 100, 105, 101, 2, 8, 1, -1, -1 }, + { 104, 101, 105, 200, -1, -1, -1, -1 }, + { 3, 104, 105, 5, 200, -1, -1, -1 }, + { 3, 0, 101, 104, 200, -1, -1, -1 }, + { 0, 1, 101, 200, -1, -1, -1, -1 }, + { 101, 1, 8, 105, 200, -1, -1, -1 }, + { 105, 8, 5, 200, -1, -1, -1, -1 }, + { 5, 3, 6, 105, 104, 100, -1, -1 }, + { 2, 8, 7, 0, 200, -1, -1, -1 }, + { 7, 8, 105, 104, 200, -1, -1, -1 }, + { 100, 104, 105, 200, -1, -1, -1, -1 }, + { 100, 2, 0, 200, -1, -1, -1, -1 }, + { 0, 7, 104, 100, 200, -1, -1, -1 }, + { 8, 2, 100, 105, 200, -1, -1, -1 }, + { 5, 8, 105, 3, 7, 104, -1, -1 }, + { 7, 3, 4, 101, 103, 105, -1, -1 }, + { 102, 100, 103, 105, 101, -1, -1, -1 }, + { 101, 105, 103, 7, 4, 3, -1, -1 }, + { 101, 105, 103, 102, -1, -1, -1, -1 }, + { 101, 103, 102, 0, 6, 2, -1, -1 }, + { 105, 103, 3, 4, 102, 100, 0, 1 }, + { 105, 102, 103, 200, -1, -1, -1, -1 }, + { 4, 105, 103, 3, 200, -1, -1, -1 }, + { 4, 1, 102, 105, 200, -1, -1, -1 }, + { 1, 2, 102, 200, -1, -1, -1, -1 }, + { 102, 2, 6, 103, 200, -1, -1, -1 }, + { 103, 6, 3, 200, -1, -1, -1, -1 }, + { 8, 2, 1, 105, 100, 101, -1, -1 }, + { 105, 101, 100, 103, -1, -1, -1, -1 }, + { 4, 7, 3, 105, 101, 103, -1, -1 }, + { 3, 4, 7, 103, 105, 101, -1, -1 }, + { 0, 6, 8, 1, 200, -1, -1, -1 }, + { 8, 6, 103, 105, 200, -1, -1, -1 }, + { 101, 105, 103, 200, -1, -1, -1, -1 }, + { 101, 0, 1, 200, -1, -1, -1, -1 }, + { 1, 8, 105, 101, 200, -1, -1, -1 }, + { 6, 0, 101, 103, 200, -1, -1, -1 }, + { 103, 105, 100, 200, -1, -1, -1, -1 }, + { 3, 4, 105, 103, 200, -1, -1, -1 }, + { 3, 103, 100, 0, 200, -1, -1, -1 }, + { 0, 100, 2, 200, -1, -1, -1, -1 }, + { 100, 105, 8, 2, 200, -1, -1, -1 }, + { 105, 4, 8, 200, -1, -1, -1, -1 }, + { 3, 6, 103, 4, 8, 105, -1, -1 }, + { 102, 101, 100, 105, -1, -1, -1, -1 }, + { 4, 5, 6, 7, 200, -1, -1, -1 }, + { 7, 6, 100, 101, 200, -1, -1, -1 }, + { 105, 101, 100, 200, -1, -1, -1, -1 }, + { 105, 5, 4, 200, -1, -1, -1, -1 }, + { 105, 100, 6, 5, 200, -1, -1, -1 }, + { 101, 105, 4, 7, 200, -1, -1, -1 }, + { 102, 105, 101, 200, -1, -1, -1, -1 }, + { 2, 102, 101, 0, 200, -1, -1, -1 }, + { 2, 5, 105, 102, 200, -1, -1, -1 }, + { 5, 4, 105, 200, -1, -1, -1, -1 }, + { 105, 4, 7, 101, 200, -1, -1, -1 }, + { 101, 7, 0, 200, -1, -1, -1, -1 }, + { 102, 100, 105, 200, -1, -1, -1, -1 }, + { 1, 0, 100, 102, 200, -1, -1, -1 }, + { 1, 102, 105, 4, 200, -1, -1, -1 }, + { 4, 105, 5, 200, -1, -1, -1, -1 }, + { 105, 100, 6, 5, 200, -1, -1, -1 }, + { 100, 0, 6, 200, -1, -1, -1, -1 }, + { 102, 2, 1, 105, 5, 4, -1, -1 }, + { 101, 100, 105, 1, 2, 8, -1, -1 }, + { 4, 5, 6, 7, 200, -1, -1, -1 }, + { 6, 100, 101, 7, 200, -1, -1, -1 }, + { 105, 101, 100, 200, -1, -1, -1, -1 }, + { 105, 5, 4, 200, -1, -1, -1, -1 }, + { 5, 105, 100, 6, 200, -1, -1, -1 }, + { 7, 101, 105, 4, 200, -1, -1, -1 }, + { 7, 101, 105, 4, 200, -1, -1, -1 }, + { 101, 1, 8, 105, 200, -1, -1, -1 }, + { 101, 0, 1, 200, -1, -1, -1, -1 }, + { 0, 101, 7, 200, -1, -1, -1, -1 }, + { 105, 8, 5, 200, -1, -1, -1, -1 }, + { 105, 5, 4, 200, -1, -1, -1, -1 }, + { 8, 2, 100, 105, 200, -1, -1, -1 }, + { 105, 100, 6, 5, 200, -1, -1, -1 }, + { 105, 5, 4, 200, -1, -1, -1, -1 }, + { 4, 8, 105, 200, -1, -1, -1, -1 }, + { 100, 0, 6, 200, -1, -1, -1, -1 }, + { 100, 2, 0, 200, -1, -1, -1, -1 }, + { 8, 4, 5, 105, -1, -1, -1, -1 }, + { 8, 4, 5, 102, 104, 103, -1, -1 }, + { 100, 101, 104, 103, 102, -1, -1, -1 }, + { 6, 0, 2, 103, 101, 102, -1, -1 }, + { 103, 102, 101, 104, -1, -1, -1, -1 }, + { 5, 8, 4, 103, 102, 104, -1, -1 }, + { 102, 103, 104, 8, 5, 4, -1, -1 }, + { 102, 103, 104, 100, -1, -1, -1, -1 }, + { 102, 104, 100, 1, 7, 0, -1, -1 }, + { 4, 5, 8, 104, 103, 102, -1, -1 }, + { 1, 7, 6, 2, 200, -1, -1, -1 }, + { 6, 7, 104, 103, 200, -1, -1, -1 }, + { 102, 103, 104, 200, -1, -1, -1, -1 }, + { 102, 1, 2, 200, -1, -1, -1, -1 }, + { 2, 6, 103, 102, 200, -1, -1, -1 }, + { 7, 1, 102, 104, 200, -1, -1, -1 }, + { 103, 104, 4, 5, 100, 101, 1, 2 }, + { 104, 103, 101, 200, -1, -1, -1, -1 }, + { 4, 5, 103, 104, 200, -1, -1, -1 }, + { 4, 104, 101, 1, 200, -1, -1, -1 }, + { 1, 101, 0, 200, -1, -1, -1, -1 }, + { 101, 103, 6, 0, 200, -1, -1, -1 }, + { 103, 5, 6, 200, -1, -1, -1, -1 }, + { 103, 100, 104, 200, -1, -1, -1, -1 }, + { 5, 103, 104, 4, 200, -1, -1, -1 }, + { 5, 2, 100, 103, 200, -1, -1, -1 }, + { 2, 0, 100, 200, -1, -1, -1, -1 }, + { 100, 0, 7, 104, 200, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 4, 7, 104, 5, 6, 103, -1, -1 }, + { 101, 100, 102, 104, -1, -1, -1, -1 }, + { 3, 4, 8, 6, 200, -1, -1, -1 }, + { 6, 8, 102, 100, 200, -1, -1, -1 }, + { 104, 100, 102, 200, -1, -1, -1, -1 }, + { 104, 4, 3, 200, -1, -1, -1, -1 }, + { 104, 102, 8, 4, 200, -1, -1, -1 }, + { 100, 104, 3, 6, 200, -1, -1, -1 }, + { 101, 102, 104, 200, -1, -1, -1, -1 }, + { 0, 2, 102, 101, 200, -1, -1, -1 }, + { 0, 101, 104, 3, 200, -1, -1, -1 }, + { 3, 104, 4, 200, -1, -1, -1, -1 }, + { 104, 102, 8, 4, 200, -1, -1, -1 }, + { 102, 2, 8, 200, -1, -1, -1, -1 }, + { 100, 102, 104, 0, 1, 7, -1, -1 }, + { 3, 4, 8, 6, 200, -1, -1, -1 }, + { 8, 102, 100, 6, 200, -1, -1, -1 }, + { 104, 100, 102, 200, -1, -1, -1, -1 }, + { 104, 4, 3, 200, -1, -1, -1, -1 }, + { 4, 104, 102, 8, 200, -1, -1, -1 }, + { 6, 100, 104, 3, 200, -1, -1, -1 }, + { 7, 1, 102, 104, 200, -1, -1, -1 }, + { 104, 102, 8, 4, 200, -1, -1, -1 }, + { 104, 4, 3, 200, -1, -1, -1, -1 }, + { 3, 7, 104, 200, -1, -1, -1, -1 }, + { 102, 2, 8, 200, -1, -1, -1, -1 }, + { 102, 1, 2, 200, -1, -1, -1, -1 }, + { 101, 104, 100, 200, -1, -1, -1, -1 }, + { 1, 101, 100, 2, 200, -1, -1, -1 }, + { 1, 4, 104, 101, 200, -1, -1, -1 }, + { 4, 3, 104, 200, -1, -1, -1, -1 }, + { 104, 3, 6, 100, 200, -1, -1, -1 }, + { 100, 6, 2, 200, -1, -1, -1, -1 }, + { 101, 1, 0, 104, 4, 3, -1, -1 }, + { 6, 100, 104, 3, 200, -1, -1, -1 }, + { 100, 0, 7, 104, 200, -1, -1, -1 }, + { 100, 2, 0, 200, -1, -1, -1, -1 }, + { 2, 100, 6, 200, -1, -1, -1, -1 }, + { 104, 7, 4, 200, -1, -1, -1, -1 }, + { 104, 4, 3, 200, -1, -1, -1, -1 }, + { 7, 3, 4, 104, -1, -1, -1, -1 }, + { 100, 102, 101, 103, -1, -1, -1, -1 }, + { 5, 3, 7, 8, 200, -1, -1, -1 }, + { 8, 7, 101, 102, 200, -1, -1, -1 }, + { 103, 102, 101, 200, -1, -1, -1, -1 }, + { 103, 3, 5, 200, -1, -1, -1, -1 }, + { 103, 101, 7, 3, 200, -1, -1, -1 }, + { 102, 103, 5, 8, 200, -1, -1, -1 }, + { 102, 101, 103, 2, 0, 6, -1, -1 }, + { 5, 3, 7, 8, 200, -1, -1, -1 }, + { 7, 101, 102, 8, 200, -1, -1, -1 }, + { 103, 102, 101, 200, -1, -1, -1, -1 }, + { 103, 3, 5, 200, -1, -1, -1, -1 }, + { 3, 103, 101, 7, 200, -1, -1, -1 }, + { 8, 102, 103, 5, 200, -1, -1, -1 }, + { 100, 103, 102, 200, -1, -1, -1, -1 }, + { 0, 100, 102, 1, 200, -1, -1, -1 }, + { 0, 3, 103, 100, 200, -1, -1, -1 }, + { 3, 5, 103, 200, -1, -1, -1, -1 }, + { 103, 5, 8, 102, 200, -1, -1, -1 }, + { 102, 8, 1, 200, -1, -1, -1, -1 }, + { 8, 102, 103, 5, 200, -1, -1, -1 }, + { 102, 2, 6, 103, 200, -1, -1, -1 }, + { 102, 1, 2, 200, -1, -1, -1, -1 }, + { 1, 102, 8, 200, -1, -1, -1, -1 }, + { 103, 6, 3, 200, -1, -1, -1, -1 }, + { 103, 3, 5, 200, -1, -1, -1, -1 }, + { 100, 101, 103, 200, -1, -1, -1, -1 }, + { 2, 1, 101, 100, 200, -1, -1, -1 }, + { 2, 100, 103, 5, 200, -1, -1, -1 }, + { 5, 103, 3, 200, -1, -1, -1, -1 }, + { 103, 101, 7, 3, 200, -1, -1, -1 }, + { 101, 1, 7, 200, -1, -1, -1, -1 }, + { 6, 0, 101, 103, 200, -1, -1, -1 }, + { 103, 101, 7, 3, 200, -1, -1, -1 }, + { 103, 3, 5, 200, -1, -1, -1, -1 }, + { 5, 6, 103, 200, -1, -1, -1, -1 }, + { 101, 1, 7, 200, -1, -1, -1, -1 }, + { 101, 0, 1, 200, -1, -1, -1, -1 }, + { 100, 0, 2, 103, 3, 5, -1, -1 }, + { 6, 5, 3, 103, -1, -1, -1, -1 }, + { 100, 101, 102, 6, 7, 8, -1, -1 }, + { 0, 7, 101, 2, 8, 102, -1, -1 }, + { 1, 8, 102, 0, 6, 100, -1, -1 }, + { 8, 2, 1, 102, -1, -1, -1, -1 }, + { 2, 6, 100, 1, 7, 101, -1, -1 }, + { 7, 1, 0, 101, -1, -1, -1, -1 }, + { 6, 0, 2, 100, -1, -1, -1, -1 } +}; + +// Special points (e.g. centroid): per-case definition streams +constexpr int special_point_count_outside[64] = { 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +constexpr int special_point_offset_outside[65] = { 0, 0, 0, 0, 8, 8, 16, 24, 24, 24, 24, 24, 30, 30, 36, 44, 44, 44, 44, 44, 50, 50, 58, 64, 64, 72, 78, 84, 84, 92, 99, 106, 106, 106, 106, 106, 114, 114, 120, 126, 126, 134, 140, 148, 155, 161, 161, 168, 168, 176, 184, 190, 197, 203, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210 }; +constexpr int special_point_data_outside[210] = { 7, 103, 104, 102, 1, 2, 6, 7, 7, 105, 103, 101, 0, 1, 8, 6, 7, 104, 105, 100, 2, 0, 7, 8, 5, 3, 5, 2, 1, 7, 5, 5, 3, 0, 1, 8, 7, 0, 2, 8, 7, 100, 105, 104, 5, 3, 4, 1, 2, 6, 7, 1, 0, 6, 8, 101, 103, 105, 5, 4, 3, 0, 2, 8, 7, 100, 101, 105, 4, 5, 6, 7, 5, 0, 2, 5, 4, 7, 5, 0, 1, 4, 5, 6, 7, 5, 4, 7, 6, 105, 101, 100, 6, 4, 5, 8, 1, 0, 7, 6, 2, 0, 6, 5, 4, 8, 7, 2, 1, 7, 6, 102, 104, 103, 5, 5, 4, 1, 0, 6, 5, 4, 5, 2, 0, 7, 7, 102, 100, 104, 3, 4, 8, 6, 5, 2, 0, 3, 4, 8, 7, 4, 3, 6, 8, 104, 100, 102, 6, 1, 2, 8, 4, 3, 7, 5, 2, 1, 4, 3, 6, 6, 3, 4, 7, 0, 2, 6, 7, 101, 102, 103, 5, 3, 7, 8, 7, 3, 5, 8, 7, 103, 102, 101, 5, 1, 0, 3, 5, 8, 6, 5, 3, 6, 2, 1, 8, 5, 1, 2, 5, 3, 7, 6, 0, 1, 7, 3, 5, 6 }; + +} // namespace cutcells::cell::prism + +#endif // CUT_CELLS_PRISM_OUTSIDE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_pyramid_inside_tables.h b/cpp/src/generated/cut_pyramid_inside_tables.h new file mode 100644 index 0000000..2f85e5b --- /dev/null +++ b/cpp/src/generated/cut_pyramid_inside_tables.h @@ -0,0 +1,132 @@ +#ifndef CUT_CELLS_PYRAMID_INSIDE_TABLES_H +#define CUT_CELLS_PYRAMID_INSIDE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::pyramid { + +// Intersected edges per case (1 = intersected, 0 = not intersected) +constexpr int intersected_edges[32][8] = { + { 0, 0, 0, 0, 0, 0, 0, 0 }, + { 1, 0, 0, 1, 1, 0, 0, 0 }, + { 1, 1, 0, 0, 0, 1, 0, 0 }, + { 0, 1, 0, 1, 1, 1, 0, 0 }, + { 0, 1, 1, 0, 0, 0, 1, 0 }, + { 1, 1, 1, 1, 1, 0, 1, 0 }, + { 1, 0, 1, 0, 0, 1, 1, 0 }, + { 0, 0, 1, 1, 1, 1, 1, 0 }, + { 0, 0, 1, 1, 0, 0, 0, 1 }, + { 1, 0, 1, 0, 1, 0, 0, 1 }, + { 1, 1, 1, 1, 0, 1, 0, 1 }, + { 0, 1, 1, 0, 1, 1, 0, 1 }, + { 0, 1, 0, 1, 0, 0, 1, 1 }, + { 1, 1, 0, 0, 1, 0, 1, 1 }, + { 1, 0, 0, 1, 0, 1, 1, 1 }, + { 0, 0, 0, 0, 1, 1, 1, 1 }, + { 0, 0, 0, 0, 1, 1, 1, 1 }, + { 1, 0, 0, 1, 0, 1, 1, 1 }, + { 1, 1, 0, 0, 1, 0, 1, 1 }, + { 0, 1, 0, 1, 0, 0, 1, 1 }, + { 0, 1, 1, 0, 1, 1, 0, 1 }, + { 1, 1, 1, 1, 0, 1, 0, 1 }, + { 1, 0, 1, 0, 1, 0, 0, 1 }, + { 0, 0, 1, 1, 0, 0, 0, 1 }, + { 0, 0, 1, 1, 1, 1, 1, 0 }, + { 1, 0, 1, 0, 0, 1, 1, 0 }, + { 1, 1, 1, 1, 1, 0, 1, 0 }, + { 0, 1, 1, 0, 0, 0, 1, 0 }, + { 0, 1, 0, 1, 1, 1, 0, 0 }, + { 1, 1, 0, 0, 0, 1, 0, 0 }, + { 1, 0, 0, 1, 1, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0 } +}; + +// Number of subcells produced for each case (inside volume) +constexpr int num_subcells_inside[32] = { 0, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 6, 2, 2, 6, 2, 2, 6, 2, 2, 6, 2, 2, 1 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_inside[33] = { 0, 0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 13, 15, 16, 18, 20, 21, 22, 24, 26, 32, 34, 36, 42, 44, 46, 52, 54, 56, 62, 64, 66, 67 }; + +// Cell types for inside subcells +constexpr type subcell_type_inside[67] = { cell::type::tetrahedron, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::hexahedron, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid }; + +// Subcell vertices (max 8 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_inside[67][8] = { + { 100, 0, 3, 4, -1, -1, -1, -1 }, + { 101, 1, 0, 5, -1, -1, -1, -1 }, + { 1, 5, 101, 3, 4, 100, -1, -1 }, + { 102, 2, 1, 6, -1, -1, -1, -1 }, + { 100, 0, 4, 102, 1, 6, -1, -1 }, + { 3, 100, 4, 2, 102, 6, -1, -1 }, + { 2, 6, 102, 0, 5, 101, -1, -1 }, + { 4, 5, 6, 100, 101, 102, -1, -1 }, + { 102, 2, 6, 100, 3, 4, -1, -1 }, + { 103, 3, 2, 7, -1, -1, -1, -1 }, + { 0, 4, 100, 2, 7, 103, -1, -1 }, + { 103, 3, 7, 101, 0, 5, -1, -1 }, + { 2, 103, 7, 1, 101, 5, -1, -1 }, + { 7, 4, 5, 103, 100, 101, -1, -1 }, + { 101, 1, 5, 103, 2, 7, -1, -1 }, + { 3, 7, 103, 1, 6, 102, -1, -1 }, + { 6, 7, 4, 102, 103, 100, -1, -1 }, + { 100, 0, 4, 102, 1, 6, -1, -1 }, + { 5, 6, 7, 101, 102, 103, -1, -1 }, + { 103, 3, 7, 101, 0, 5, -1, -1 }, + { 100, 101, 102, 103, 4, 5, 6, 7 }, + { 4, 5, 6, 7, 104, -1, -1, -1 }, + { 104, 5, 7, 100, 0, 3, -1, -1 }, + { 5, 6, 7, 104, -1, -1, -1, -1 }, + { 104, 6, 4, 101, 1, 0, -1, -1 }, + { 6, 7, 4, 104, -1, -1, -1, -1 }, + { 6, 7, 3, 1, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 7, 6, 104, 200, -1, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 104, 6, 1, 101, 200, -1, -1, -1 }, + { 104, 7, 5, 102, 2, 1, -1, -1 }, + { 7, 4, 5, 104, -1, -1, -1, -1 }, + { 0, 1, 5, 100, 102, 104, -1, -1 }, + { 2, 3, 7, 102, 100, 104, -1, -1 }, + { 7, 4, 0, 2, 200, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 101, 104, 102, 200, -1, -1, -1, -1 }, + { 4, 7, 104, 200, -1, -1, -1, -1 }, + { 4, 104, 101, 0, 200, -1, -1, -1 }, + { 104, 7, 2, 102, 200, -1, -1, -1 }, + { 100, 102, 104, 3, 2, 7, -1, -1 }, + { 100, 101, 102, 104, -1, -1, -1, -1 }, + { 104, 4, 6, 103, 3, 2, -1, -1 }, + { 4, 5, 6, 104, -1, -1, -1, -1 }, + { 5, 6, 2, 0, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 103, 104, 100, 200, -1, -1, -1, -1 }, + { 6, 5, 104, 200, -1, -1, -1, -1 }, + { 6, 104, 103, 2, 200, -1, -1, -1 }, + { 104, 5, 0, 100, 200, -1, -1, -1 }, + { 3, 0, 4, 103, 101, 104, -1, -1 }, + { 1, 2, 6, 101, 103, 104, -1, -1 }, + { 103, 101, 104, 2, 1, 6, -1, -1 }, + { 103, 100, 101, 104, -1, -1, -1, -1 }, + { 4, 5, 1, 3, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 102, 104, 103, 200, -1, -1, -1, -1 }, + { 5, 4, 104, 200, -1, -1, -1, -1 }, + { 5, 104, 102, 1, 200, -1, -1, -1 }, + { 104, 4, 3, 103, 200, -1, -1, -1 }, + { 102, 100, 104, 1, 0, 5, -1, -1 }, + { 102, 103, 100, 104, -1, -1, -1, -1 }, + { 101, 103, 104, 0, 3, 4, -1, -1 }, + { 101, 102, 103, 104, -1, -1, -1, -1 }, + { 100, 101, 102, 103, 104, -1, -1, -1 } +}; + +// Special points (e.g. centroid): per-case definition streams +constexpr int special_point_count_inside[32] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0 }; +constexpr int special_point_offset_inside[33] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 16, 16, 16, 24, 24, 24, 32, 32, 32, 32 }; +constexpr int special_point_data_inside[32] = { 7, 7, 6, 3, 1, 100, 101, 104, 7, 4, 7, 0, 2, 101, 102, 104, 7, 6, 5, 2, 0, 103, 100, 104, 7, 5, 4, 1, 3, 102, 103, 104 }; + +} // namespace cutcells::cell::pyramid + +#endif // CUT_CELLS_PYRAMID_INSIDE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_pyramid_interface_tables.h b/cpp/src/generated/cut_pyramid_interface_tables.h new file mode 100644 index 0000000..1607c70 --- /dev/null +++ b/cpp/src/generated/cut_pyramid_interface_tables.h @@ -0,0 +1,66 @@ +#ifndef CUT_CELLS_PYRAMID_INTERFACE_TABLES_H +#define CUT_CELLS_PYRAMID_INTERFACE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::pyramid { + +// Number of subcells produced for each case (interface volume) +constexpr int num_subcells_interface[32] = { 0, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 0 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_interface[33] = { 0, 0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 13, 15, 16, 18, 20, 21, 22, 24, 26, 27, 29, 31, 32, 33, 35, 36, 38, 39, 40, 41, 42, 42 }; + +// Cell types for interface subcells +constexpr type subcell_type_interface[42] = { cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle }; + +// Subcell vertices (max 4 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_interface[42][4] = { + { 0, 4, 3, -1 }, + { 1, 5, 0, -1 }, + { 1, 3, 4, 5 }, + { 2, 6, 1, -1 }, + { 0, 1, 6, 4 }, + { 4, 6, 2, 3 }, + { 2, 0, 5, 6 }, + { 4, 5, 6, -1 }, + { 2, 3, 4, 6 }, + { 3, 7, 2, -1 }, + { 0, 2, 7, 4 }, + { 3, 0, 5, 7 }, + { 7, 5, 1, 2 }, + { 7, 4, 5, -1 }, + { 1, 2, 7, 5 }, + { 3, 1, 6, 7 }, + { 6, 7, 4, -1 }, + { 0, 1, 6, 4 }, + { 5, 6, 7, -1 }, + { 3, 0, 5, 7 }, + { 4, 7, 6, 5 }, + { 4, 5, 6, 7 }, + { 5, 0, 3, 7 }, + { 5, 6, 7, -1 }, + { 6, 1, 0, 4 }, + { 6, 7, 4, -1 }, + { 6, 7, 3, 1 }, + { 7, 2, 1, 5 }, + { 7, 4, 5, -1 }, + { 0, 1, 5, -1 }, + { 2, 3, 7, -1 }, + { 7, 4, 0, 2 }, + { 3, 7, 2, -1 }, + { 4, 3, 2, 6 }, + { 4, 5, 6, -1 }, + { 5, 6, 2, 0 }, + { 3, 0, 4, -1 }, + { 1, 2, 6, -1 }, + { 2, 6, 1, -1 }, + { 4, 5, 1, 3 }, + { 1, 5, 0, -1 }, + { 0, 4, 3, -1 } +}; + +} // namespace cutcells::cell::pyramid + +#endif // CUT_CELLS_PYRAMID_INTERFACE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_pyramid_outside_tables.h b/cpp/src/generated/cut_pyramid_outside_tables.h new file mode 100644 index 0000000..f68c5fc --- /dev/null +++ b/cpp/src/generated/cut_pyramid_outside_tables.h @@ -0,0 +1,96 @@ +#ifndef CUT_CELLS_PYRAMID_OUTSIDE_TABLES_H +#define CUT_CELLS_PYRAMID_OUTSIDE_TABLES_H + +#include "cell_types.h" + +namespace cutcells::cell::pyramid { + +// Number of subcells produced for each case (outside volume) +constexpr int num_subcells_outside[32] = { 1, 2, 2, 6, 2, 2, 6, 2, 2, 6, 2, 2, 6, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 0 }; + +// Offset into subcell array for each case +constexpr int case_subcell_offset_outside[33] = { 0, 1, 3, 5, 11, 13, 15, 21, 23, 25, 31, 33, 35, 41, 43, 45, 46, 47, 49, 51, 52, 54, 56, 57, 58, 60, 61, 63, 64, 65, 66, 67, 67 }; + +// Cell types for outside subcells +constexpr type subcell_type_outside[67] = { cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::tetrahedron, cell::type::tetrahedron, cell::type::pyramid, cell::type::pyramid, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::pyramid, cell::type::hexahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::prism, cell::type::tetrahedron, cell::type::prism, cell::type::tetrahedron, cell::type::tetrahedron }; + +// Subcell vertices (max 8 vertices per subcell, -1 padding) +// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id +constexpr int subcell_verts_outside[67][8] = { + { 100, 101, 102, 103, 104, -1, -1, -1 }, + { 101, 103, 104, 0, 3, 4, -1, -1 }, + { 101, 102, 103, 104, -1, -1, -1, -1 }, + { 102, 100, 104, 1, 0, 5, -1, -1 }, + { 102, 103, 100, 104, -1, -1, -1, -1 }, + { 4, 5, 1, 3, 200, -1, -1, -1 }, + { 1, 102, 103, 3, 200, -1, -1, -1 }, + { 102, 104, 103, 200, -1, -1, -1, -1 }, + { 5, 4, 104, 200, -1, -1, -1, -1 }, + { 5, 104, 102, 1, 200, -1, -1, -1 }, + { 104, 4, 3, 103, 200, -1, -1, -1 }, + { 103, 101, 104, 2, 1, 6, -1, -1 }, + { 103, 100, 101, 104, -1, -1, -1, -1 }, + { 3, 0, 4, 103, 101, 104, -1, -1 }, + { 1, 2, 6, 101, 103, 104, -1, -1 }, + { 5, 6, 2, 0, 200, -1, -1, -1 }, + { 2, 103, 100, 0, 200, -1, -1, -1 }, + { 103, 104, 100, 200, -1, -1, -1, -1 }, + { 6, 5, 104, 200, -1, -1, -1, -1 }, + { 6, 104, 103, 2, 200, -1, -1, -1 }, + { 104, 5, 0, 100, 200, -1, -1, -1 }, + { 104, 4, 6, 103, 3, 2, -1, -1 }, + { 4, 5, 6, 104, -1, -1, -1, -1 }, + { 100, 102, 104, 3, 2, 7, -1, -1 }, + { 100, 101, 102, 104, -1, -1, -1, -1 }, + { 7, 4, 0, 2, 200, -1, -1, -1 }, + { 0, 101, 102, 2, 200, -1, -1, -1 }, + { 101, 104, 102, 200, -1, -1, -1, -1 }, + { 4, 7, 104, 200, -1, -1, -1, -1 }, + { 4, 104, 101, 0, 200, -1, -1, -1 }, + { 104, 7, 2, 102, 200, -1, -1, -1 }, + { 0, 1, 5, 100, 102, 104, -1, -1 }, + { 2, 3, 7, 102, 100, 104, -1, -1 }, + { 104, 7, 5, 102, 2, 1, -1, -1 }, + { 7, 4, 5, 104, -1, -1, -1, -1 }, + { 6, 7, 3, 1, 200, -1, -1, -1 }, + { 3, 100, 101, 1, 200, -1, -1, -1 }, + { 100, 104, 101, 200, -1, -1, -1, -1 }, + { 7, 6, 104, 200, -1, -1, -1, -1 }, + { 7, 104, 100, 3, 200, -1, -1, -1 }, + { 104, 6, 1, 101, 200, -1, -1, -1 }, + { 104, 6, 4, 101, 1, 0, -1, -1 }, + { 6, 7, 4, 104, -1, -1, -1, -1 }, + { 104, 5, 7, 100, 0, 3, -1, -1 }, + { 5, 6, 7, 104, -1, -1, -1, -1 }, + { 4, 5, 6, 7, 104, -1, -1, -1 }, + { 100, 101, 102, 103, 4, 5, 6, 7 }, + { 5, 6, 7, 101, 102, 103, -1, -1 }, + { 103, 3, 7, 101, 0, 5, -1, -1 }, + { 6, 7, 4, 102, 103, 100, -1, -1 }, + { 100, 0, 4, 102, 1, 6, -1, -1 }, + { 3, 7, 103, 1, 6, 102, -1, -1 }, + { 7, 4, 5, 103, 100, 101, -1, -1 }, + { 101, 1, 5, 103, 2, 7, -1, -1 }, + { 103, 3, 7, 101, 0, 5, -1, -1 }, + { 2, 103, 7, 1, 101, 5, -1, -1 }, + { 0, 4, 100, 2, 7, 103, -1, -1 }, + { 103, 3, 2, 7, -1, -1, -1, -1 }, + { 4, 5, 6, 100, 101, 102, -1, -1 }, + { 102, 2, 6, 100, 3, 4, -1, -1 }, + { 2, 6, 102, 0, 5, 101, -1, -1 }, + { 100, 0, 4, 102, 1, 6, -1, -1 }, + { 3, 100, 4, 2, 102, 6, -1, -1 }, + { 102, 2, 1, 6, -1, -1, -1, -1 }, + { 1, 5, 101, 3, 4, 100, -1, -1 }, + { 101, 1, 0, 5, -1, -1, -1, -1 }, + { 100, 0, 3, 4, -1, -1, -1, -1 } +}; + +// Special points (e.g. centroid): per-case definition streams +constexpr int special_point_count_outside[32] = { 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +constexpr int special_point_offset_outside[33] = { 0, 0, 0, 0, 8, 8, 8, 16, 16, 16, 24, 24, 24, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 }; +constexpr int special_point_data_outside[32] = { 7, 5, 4, 1, 3, 102, 103, 104, 7, 6, 5, 2, 0, 103, 100, 104, 7, 4, 7, 0, 2, 101, 102, 104, 7, 7, 6, 3, 1, 100, 101, 104 }; + +} // namespace cutcells::cell::pyramid + +#endif // CUT_CELLS_PYRAMID_OUTSIDE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_quadrilateral_inside_tables.h b/cpp/src/generated/cut_quadrilateral_inside_tables.h index 842a333..cd0c0bf 100644 --- a/cpp/src/generated/cut_quadrilateral_inside_tables.h +++ b/cpp/src/generated/cut_quadrilateral_inside_tables.h @@ -2,6 +2,7 @@ #define CUT_CELLS_QUADRILATERAL_INSIDE_TABLES_H #include "cell_types.h" +#include namespace cutcells::cell::quadrilateral { @@ -28,6 +29,10 @@ constexpr int intersected_edges[16][4] = { { 0, 0, 0, 0 } }; +// Ambiguity metadata (opposite-corner cases) +constexpr uint8_t case_is_ambiguous_tbl[16] = { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }; +constexpr int8_t amb_case_id[16] = { -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1 }; + // Number of subcells produced for each case (inside volume) constexpr int num_subcells_inside[16] = { 0, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1 }; @@ -35,11 +40,11 @@ constexpr int num_subcells_inside[16] = { 0, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, constexpr int case_subcell_offset_inside[17] = { 0, 0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 13, 15, 16, 18, 20, 21 }; // Cell types for inside subcells -constexpr type subcell_type_inside[21] = { cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral }; +constexpr type subcell_type_inside[25] = { cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral }; // Subcell vertices (max 4 vertices per subcell, -1 padding) // Tokens: <100 = edge id, >=100 = 100+vertex_id -constexpr int subcell_verts_inside[21][4] = { +constexpr int subcell_verts_inside[25][4] = { { 100, 0, 3, -1 }, { 0, 101, 1, -1 }, { 100, 101, 1, 3 }, @@ -60,9 +65,16 @@ constexpr int subcell_verts_inside[21][4] = { { 1, 103, 100, 0 }, { 0, 101, 102, -1 }, { 0, 102, 103, 3 }, - { 100, 101, 102, 103 } + { 100, 101, 102, 103 }, + { 100, 0, 1, 102 }, + { 100, 102, 2, 3 }, + { 101, 1, 2, 103 }, + { 101, 103, 3, 0 } }; +// Ambiguity override ranges: [begin0,end0,begin1,end1] per ambiguous case +constexpr int amb_range_inside[8] = { 21, 23, 4, 6, 11, 13, 23, 25 }; + } // namespace cutcells::cell::quadrilateral #endif // CUT_CELLS_QUADRILATERAL_INSIDE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_quadrilateral_interface_tables.h b/cpp/src/generated/cut_quadrilateral_interface_tables.h index 0cdce2d..59c68f2 100644 --- a/cpp/src/generated/cut_quadrilateral_interface_tables.h +++ b/cpp/src/generated/cut_quadrilateral_interface_tables.h @@ -35,6 +35,9 @@ constexpr int subcell_verts_interface[16][2] = { { 0, 3 } }; +// Ambiguity override ranges: [begin0,end0,begin1,end1] per ambiguous case +constexpr int amb_range_interface[8] = { 10, 12, 4, 6, 10, 12, 4, 6 }; + } // namespace cutcells::cell::quadrilateral #endif // CUT_CELLS_QUADRILATERAL_INTERFACE_TABLES_H \ No newline at end of file diff --git a/cpp/src/generated/cut_quadrilateral_outside_tables.h b/cpp/src/generated/cut_quadrilateral_outside_tables.h index 13359f8..8ea445b 100644 --- a/cpp/src/generated/cut_quadrilateral_outside_tables.h +++ b/cpp/src/generated/cut_quadrilateral_outside_tables.h @@ -12,11 +12,11 @@ constexpr int num_subcells_outside[16] = { 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1 constexpr int case_subcell_offset_outside[17] = { 0, 1, 3, 5, 6, 8, 10, 11, 12, 14, 15, 17, 18, 19, 20, 21, 21 }; // Cell types for outside subcells -constexpr type subcell_type_outside[21] = { cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle }; +constexpr type subcell_type_outside[25] = { cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::quadrilateral, cell::type::triangle, cell::type::quadrilateral, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle, cell::type::triangle }; // Subcell vertices (max 4 vertices per subcell, -1 padding) // Tokens: <100 = edge id, >=100 = 100+vertex_id -constexpr int subcell_verts_outside[21][4] = { +constexpr int subcell_verts_outside[25][4] = { { 100, 101, 102, 103 }, { 0, 101, 102, -1 }, { 0, 102, 103, 3 }, @@ -37,9 +37,16 @@ constexpr int subcell_verts_outside[21][4] = { { 1, 102, 2, -1 }, { 100, 101, 1, 3 }, { 0, 101, 1, -1 }, - { 100, 0, 3, -1 } + { 100, 0, 3, -1 }, + { 100, 0, 3, -1 }, + { 102, 1, 2, -1 }, + { 101, 0, 1, -1 }, + { 103, 2, 3, -1 } }; +// Ambiguity override ranges: [begin0,end0,begin1,end1] per ambiguous case +constexpr int amb_range_outside[8] = { 23, 25, 8, 10, 15, 17, 21, 23 }; + } // namespace cutcells::cell::quadrilateral #endif // CUT_CELLS_QUADRILATERAL_OUTSIDE_TABLES_H \ No newline at end of file diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index d734910..eb4b76a 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -16,6 +16,13 @@ if (TARGET cutcells) add_library(CUTCELLS::cutcells ALIAS cutcells) else() # Find CutCells (C++) + # Prefer the in-repo build if present, so `pip install -e python` uses local C++ changes. + if (NOT DEFINED CutCells_DIR) + set(_local_cutcells_prefix "${CMAKE_CURRENT_LIST_DIR}/../cpp/build-dir/prefix") + if (EXISTS "${_local_cutcells_prefix}/lib/cmake/cutcells/CutCellsConfig.cmake") + list(PREPEND CMAKE_PREFIX_PATH "${_local_cutcells_prefix}") + endif() + endif() find_package(CutCells REQUIRED) endif() @@ -46,6 +53,28 @@ endif() get_target_property(_location CUTCELLS::cutcells LOCATION) get_filename_component(_cutcells_dir ${_location} DIRECTORY) -set_target_properties(_cutcellscpp PROPERTIES INSTALL_RPATH ${_cutcells_dir}) + +# Ensure we load the CutCells library we just found/linked against. +# In conda environments it's common to also have a (possibly older) libcutcells.dylib +# available on the default RPATH; if that appears before our in-repo prefix, dyld +# will pick the wrong one at runtime. +set_target_properties(_cutcellscpp PROPERTIES + INSTALL_RPATH "${_cutcells_dir}" + BUILD_RPATH "${_cutcells_dir}" + BUILD_WITH_INSTALL_RPATH TRUE + INSTALL_RPATH_USE_LINK_PATH FALSE) + +if(APPLE AND DEFINED ENV{CONDA_PREFIX}) + # scikit-build/nanobind often injects ${CONDA_PREFIX}/lib as an LC_RPATH ahead of ours. + # If that environment contains another libcutcells.dylib, dyld will load the wrong one. + # Reorder RPATHs post-link so the in-repo CutCells lib directory is searched first. + set(_conda_lib "$ENV{CONDA_PREFIX}/lib") + add_custom_command(TARGET _cutcellscpp POST_BUILD + COMMAND install_name_tool -delete_rpath "${_conda_lib}" $ || true + COMMAND install_name_tool -delete_rpath "${_cutcells_dir}" $ || true + COMMAND install_name_tool -add_rpath "${_cutcells_dir}" $ + COMMAND install_name_tool -add_rpath "${_conda_lib}" $ + VERBATIM) +endif() install(TARGETS _cutcellscpp LIBRARY DESTINATION cutcells) diff --git a/python/cutcells/wrapper.cpp b/python/cutcells/wrapper.cpp index d80d3b5..f812e0d 100644 --- a/python/cutcells/wrapper.cpp +++ b/python/cutcells/wrapper.cpp @@ -287,14 +287,18 @@ void declare_float(nb::module_& m, std::string type) m.def("cut_vtk_mesh", [](nb::ndarray& ls_vals, nb::ndarray& points, nb::ndarray& connectivity, nb::ndarray& offset, nb::ndarray& vtk_type, - const std::string& cut_type_str){ + const std::string& cut_type_str, + bool triangulate){ return mesh::cut_vtk_mesh(std::span(ls_vals.data(),ls_vals.size()), std::span(points.data(),points.size()), std::span(connectivity.data(),connectivity.size()), std::span(offset.data(),offset.size()), std::span(vtk_type.data(),vtk_type.size()), - cut_type_str); + cut_type_str, + triangulate); } + , nb::arg("ls_vals"), nb::arg("points"), nb::arg("connectivity"), nb::arg("offset"), nb::arg("vtk_type"), + nb::arg("cut_type_str"), nb::arg("triangulate") = true , "cut vtk mesh"); } diff --git a/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py b/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py new file mode 100644 index 0000000..a651c46 --- /dev/null +++ b/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py @@ -0,0 +1,221 @@ +import argparse +import math + +import cutcells +import numpy as np +import pyvista as pv + + +# VTK cell type ids (used by PyVista UnstructuredGrid) +VTK_TETRA = 10 +VTK_HEXAHEDRON = 12 +VTK_WEDGE = 13 +VTK_PYRAMID = 14 + + +def unit_cube_vertices() -> np.ndarray: + # VTK_HEXAHEDRON / CutCells hexahedron vertex order: + # 0:(0,0,0) 1:(1,0,0) 2:(1,1,0) 3:(0,1,0) + # 4:(0,0,1) 5:(1,0,1) 6:(1,1,1) 7:(0,1,1) + return np.array( + [ + [0.0, 0.0, 0.0], + [1.0, 0.0, 0.0], + [1.0, 1.0, 0.0], + [0.0, 1.0, 0.0], + [0.0, 0.0, 1.0], + [1.0, 0.0, 1.0], + [1.0, 1.0, 1.0], + [0.0, 1.0, 1.0], + ], + dtype=float, + ) + + +def ls_values_from_case_id(case_id: int) -> np.ndarray: + # CutCells convention: bit i is set when phi_i < 0. + # We use a simple +/-1 pattern. + ls = np.empty(8, dtype=float) + for i in range(8): + ls[i] = -1.0 if ((case_id >> i) & 1) else 1.0 + return ls + + +def on_unit_cube_edge(p: np.ndarray, tol: float = 1e-12) -> bool: + # A point is on an edge if at least two coordinates are on the boundary {0,1} + on_boundary = np.isclose(p, 0.0, atol=tol) | np.isclose(p, 1.0, atol=tol) + return int(on_boundary.sum()) >= 2 + + +def main() -> None: + parser = argparse.ArgumentParser( + description=( + "Visualize VTK_HEXAHEDRON interface-cut cases in 3x5 interactive subplots (15 at a time). " + "Use 'n'/'p' keys to page through batches." + ) + ) + parser.add_argument( + "--batch", + type=int, + default=0, + help="0-based batch index (each batch shows 15 intersected cases).", + ) + parser.add_argument( + "--screenshot", + default="", + help="Optional screenshot filename (empty disables).", + ) + parser.add_argument( + "--show", + action=argparse.BooleanOptionalAction, + default=True, + help="Show an interactive window (disable for headless runs).", + ) + args = parser.parse_args() + + vertex_coordinates = unit_cube_vertices() + + # Exclude non-intersected masks. + case_ids = [i for i in range(256) if i not in (0, 255)] + batch_size = 15 + num_batches = int(math.ceil(len(case_ids) / batch_size)) + + batch = int(args.batch) + if batch < 0: + batch = 0 + if batch >= num_batches: + batch = num_batches - 1 + + pl = pv.Plotter(shape=(3, 5), off_screen=not args.show) + + cube = pv.Cube(center=(0.5, 0.5, 0.5), x_length=1.0, y_length=1.0, z_length=1.0) + + def render_batch(batch_index: int) -> None: + pl.clear() + + start = batch_index * batch_size + for i in range(batch_size): + global_idx = start + i + row = i // 5 + col = i % 5 + pl.subplot(row, col) + + if global_idx >= len(case_ids): + pl.add_text("(no case)", font_size=10) + pl.add_mesh(cube, style="wireframe", color="black", line_width=1) + pl.camera_position = "iso" + continue + + case_id = case_ids[global_idx] + ls_values = ls_values_from_case_id(case_id) + + try: + # Inside volume (phi<0) + inside_cell = cutcells.cut( + cutcells.CellType.hexahedron, + vertex_coordinates, + 3, + ls_values, + "phi<0", + False, + ) + inside_points = np.asarray(inside_cell.vertex_coords, dtype=float).reshape( + -1, 3 + ) + inside_grid = pv.UnstructuredGrid( + inside_cell.connectivity, inside_cell.types, inside_points + ) + + # Interface surface (phi=0) + cut_cell = cutcells.cut( + cutcells.CellType.hexahedron, + vertex_coordinates, + 3, + ls_values, + "phi=0", + False, + ) + + points = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + grid = pv.UnstructuredGrid( + cut_cell.connectivity, cut_cell.types, points + ) + + edge_mask = np.array([on_unit_cube_edge(p) for p in points], dtype=bool) + + pl.add_text( + f"case {case_id}", + font_size=10, + ) + pl.add_mesh(cube, style="wireframe", color="black", line_width=1) + + # Render inside composition behind the interface + inside_types = np.asarray(inside_grid.celltypes, dtype=int) + type_specs = [ + (VTK_HEXAHEDRON, "hex", "seagreen"), + (VTK_WEDGE, "prism", "gold"), + (VTK_PYRAMID, "pyr", "orchid"), + (VTK_TETRA, "tet", "lightskyblue"), + ] + + counts = [] + for vtk_id, label, color in type_specs: + cell_ids = np.where(inside_types == vtk_id)[0] + if cell_ids.size == 0: + continue + subgrid = inside_grid.extract_cells(cell_ids) + pl.add_mesh( + subgrid, + color=color, + opacity=0.25, + show_edges=True, + line_width=1, + ) + counts.append(f"{label}:{int(cell_ids.size)}") + + if counts: + pl.add_text("\n".join(counts), position="lower_left", font_size=9) + + pl.add_mesh(grid, show_edges=True, opacity=0.75) + + pc = pv.PolyData(points) + pc["non_edge"] = (~edge_mask).astype(np.int32) + pl.add_mesh( + pc, + scalars="non_edge", + render_points_as_spheres=True, + point_size=10, + cmap=["dodgerblue", "crimson"], + ) + except Exception as e: # pragma: no cover + pl.add_text(f"case {case_id}\nERROR\n{type(e).__name__}", font_size=10) + pl.add_mesh(cube, style="wireframe", color="black", line_width=1) + + pl.camera_position = "iso" + + pl.render() + print( + f"batch {batch_index + 1}/{num_batches} (cases {start}..{min(start + batch_size - 1, len(case_ids) - 1)})" + ) + + def next_batch() -> None: + nonlocal batch + batch = (batch + 1) % num_batches + render_batch(batch) + + def prev_batch() -> None: + nonlocal batch + batch = (batch - 1) % num_batches + render_batch(batch) + + pl.add_key_event("n", next_batch) + pl.add_key_event("p", prev_batch) + + render_batch(batch) + + screenshot = args.screenshot if args.screenshot else None + pl.show(screenshot=screenshot) + + +if __name__ == "__main__": + main() diff --git a/python/demo/cut_hexahedron/cut_hexahedron_n0.py b/python/demo/cut_hexahedron/cut_hexahedron_n0.py new file mode 100644 index 0000000..3f313cf --- /dev/null +++ b/python/demo/cut_hexahedron/cut_hexahedron_n0.py @@ -0,0 +1,118 @@ +import argparse + +import cutcells +import numpy as np +import pyvista as pv + + +def unit_cube_vertices() -> np.ndarray: + # VTK_HEXAHEDRON / CutCells hexahedron vertex order: + # 0:(0,0,0) 1:(1,0,0) 2:(1,1,0) 3:(0,1,0) + # 4:(0,0,1) 5:(1,0,1) 6:(1,1,1) 7:(0,1,1) + return np.array( + [ + [0.0, 0.0, 0.0], + [1.0, 0.0, 0.0], + [1.0, 1.0, 0.0], + [0.0, 1.0, 0.0], + [0.0, 0.0, 1.0], + [1.0, 0.0, 1.0], + [1.0, 1.0, 1.0], + [0.0, 1.0, 1.0], + ], + dtype=float, + ) + + +def case_id_from_ls_values(ls_values: np.ndarray) -> int: + # CutCells convention: a vertex contributes bit i if phi_i < 0 + case_id = 0 + for i, v in enumerate(ls_values.tolist()): + if v < 0: + case_id |= 1 << i + return case_id + + +def on_unit_cube_edge(p: np.ndarray, tol: float = 1e-12) -> bool: + # A point is on an edge if at least two coordinates are on the boundary {0,1} + on_boundary = np.isclose(p, 0.0, atol=tol) | np.isclose(p, 1.0, atol=tol) + return int(on_boundary.sum()) >= 2 + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Demonstrate a hexahedron interface cut that introduces an interior special point (VTK's N0)." + ) + parser.add_argument( + "--screenshot", + default="n0_demo.png", + help="Output screenshot filename (set to empty string to disable).", + ) + parser.add_argument( + "--show", + action=argparse.BooleanOptionalAction, + default=True, + help="Show an interactive window (disable for headless runs).", + ) + args = parser.parse_args() + + vertex_coordinates = unit_cube_vertices() + + # This sign pattern corresponds to a VTK hexahedron case known to use N0 in the table. + # (Used in the regression test: vertices 0,1,6 are inside (phi<0), others outside.) + ls_values = np.array([-1.0, -1.1, 1.2, 1.3, 1.4, 1.5, -1.6, 1.7], dtype=float) + case_id = case_id_from_ls_values(ls_values) + + cut_cell = cutcells.cut( + cutcells.CellType.hexahedron, + vertex_coordinates, + 3, + ls_values, + "phi=0", + False, + ) + + points = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + grid = pv.UnstructuredGrid(cut_cell.connectivity, cut_cell.types, points) + + edge_mask = np.array([on_unit_cube_edge(p) for p in points], dtype=bool) + interior_points = points[~edge_mask] + + print(f"hexahedron case_id (phi<0 bits): {case_id}") + print(f"cut_cell: n_vertices={points.shape[0]}, n_cells={grid.n_cells}") + print(f"points on unit-cube edges: {int(edge_mask.sum())}") + print(f"points not on edges (interior/face): {int((~edge_mask).sum())}") + if interior_points.size: + print("example non-edge point(s) (typically includes N0):") + for p in interior_points[:8]: + print(" ", p) + + # Visualization + pl = pv.Plotter(off_screen=not args.show) + + # Show the reference cube as wireframe + cube = pv.Cube(center=(0.5, 0.5, 0.5), x_length=1.0, y_length=1.0, z_length=1.0) + pl.add_mesh(cube, style="wireframe", color="black", line_width=1) + + # Show the interface mesh + pl.add_mesh(grid, show_edges=True, opacity=0.75) + + # Highlight interior/non-edge points (where N0 typically appears) + point_cloud = pv.PolyData(points) + point_cloud["non_edge"] = (~edge_mask).astype(np.int32) + pl.add_mesh( + point_cloud, + scalars="non_edge", + render_points_as_spheres=True, + point_size=14, + cmap=["dodgerblue", "crimson"], + ) + + pl.camera_position = "iso" + + screenshot = args.screenshot if args.screenshot else None + pl.show(screenshot=screenshot) + + +if __name__ == "__main__": + main() diff --git a/python/demo/cut_prism/cut_prism_n0.py b/python/demo/cut_prism/cut_prism_n0.py new file mode 100644 index 0000000..7898f27 --- /dev/null +++ b/python/demo/cut_prism/cut_prism_n0.py @@ -0,0 +1,124 @@ +import argparse + +import cutcells +import numpy as np +import pyvista as pv + + +def unit_right_triangular_prism_vertices() -> np.ndarray: + # VTK_WEDGE / CutCells prism vertex order: + # bottom tri: 0:(0,0,0) 1:(1,0,0) 2:(0,1,0) + # top tri: 3:(0,0,1) 4:(1,0,1) 5:(0,1,1) + return np.array( + [ + [0.0, 0.0, 0.0], + [1.0, 0.0, 0.0], + [0.0, 1.0, 0.0], + [0.0, 0.0, 1.0], + [1.0, 0.0, 1.0], + [0.0, 1.0, 1.0], + ], + dtype=float, + ) + + +def case_id_from_ls_values(ls_values: np.ndarray) -> int: + # CutCells convention: a vertex contributes bit i if phi_i < 0 + case_id = 0 + for i, v in enumerate(ls_values.tolist()): + if v < 0: + case_id |= 1 << i + return case_id + + +def is_strictly_inside_unit_prism(p: np.ndarray, tol: float = 1e-12) -> bool: + # Strict interior of unit right-triangular prism: + # x>0, y>0, x+y<1, 0 tol and y > tol and (x + y) < (1.0 - tol) and z > tol and z < (1.0 - tol) + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Demonstrate a prism (VTK_WEDGE) interface cut that introduces an interior special point (VTK's N0)." + ) + parser.add_argument( + "--screenshot", + default="prism_n0_demo.png", + help="Output screenshot filename (set to empty string to disable).", + ) + parser.add_argument( + "--show", + action=argparse.BooleanOptionalAction, + default=True, + help="Show an interactive window (disable for headless runs).", + ) + args = parser.parse_args() + + vertex_coordinates = unit_right_triangular_prism_vertices() + + # Case id 10 (mask bits set at vertices {1,3}) is known to use N0 in the interface table. + ls_values = np.array([1.0, -1.0, 1.0, -1.0, 1.0, 1.0], dtype=float) + case_id = case_id_from_ls_values(ls_values) + + cut_cell = cutcells.cut( + cutcells.CellType.prism, + vertex_coordinates, + 3, + ls_values, + "phi=0", + False, + ) + + points = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + grid = pv.UnstructuredGrid(cut_cell.connectivity, cut_cell.types, points) + + interior_mask = np.array( + [is_strictly_inside_unit_prism(p) for p in points], dtype=bool + ) + + print(f"prism case_id (phi<0 bits): {case_id}") + print(f"cut_cell: n_vertices={points.shape[0]}, n_cells={grid.n_cells}") + print(f"strictly interior points: {int(interior_mask.sum())}") + if interior_mask.any(): + print("example interior point(s) (typically includes N0):") + for p in points[interior_mask][:8]: + print(" ", p) + + pl = pv.Plotter(off_screen=not args.show) + + # Reference prism wireframe + ref = pv.PolyData(vertex_coordinates) + # show its convex hull-ish outline via edges of the 5 faces + faces = np.hstack( + [ + [3, 0, 1, 2], + [3, 3, 5, 4], + [4, 0, 1, 4, 3], + [4, 1, 2, 5, 4], + [4, 2, 0, 3, 5], + ] + ).astype(np.int64) + surf = pv.PolyData(vertex_coordinates, faces) + pl.add_mesh(surf, style="wireframe", color="black", line_width=1) + + pl.add_mesh(grid, show_edges=True, opacity=0.75) + + pc = pv.PolyData(points) + pc["interior"] = interior_mask.astype(np.int32) + pl.add_mesh( + pc, + scalars="interior", + render_points_as_spheres=True, + point_size=14, + cmap=["dodgerblue", "crimson"], + ) + + pl.camera_position = "iso" + + screenshot = args.screenshot if args.screenshot else None + pl.show(screenshot=screenshot) + + +if __name__ == "__main__": + main() diff --git a/python/demo/cut_pyramid/cut_pyramid_n0.py b/python/demo/cut_pyramid/cut_pyramid_n0.py new file mode 100644 index 0000000..c4db709 --- /dev/null +++ b/python/demo/cut_pyramid/cut_pyramid_n0.py @@ -0,0 +1,128 @@ +import argparse + +import cutcells +import numpy as np +import pyvista as pv + + +def unit_square_pyramid_vertices() -> np.ndarray: + # VTK_PYRAMID / CutCells pyramid vertex order: + # base quad: 0:(0,0,0) 1:(1,0,0) 2:(1,1,0) 3:(0,1,0) + # apex: 4:(0.5,0.5,1) + return np.array( + [ + [0.0, 0.0, 0.0], + [1.0, 0.0, 0.0], + [1.0, 1.0, 0.0], + [0.0, 1.0, 0.0], + [0.5, 0.5, 1.0], + ], + dtype=float, + ) + + +def case_id_from_ls_values(ls_values: np.ndarray) -> int: + # CutCells convention: a vertex contributes bit i if phi_i < 0 + case_id = 0 + for i, v in enumerate(ls_values.tolist()): + if v < 0: + case_id |= 1 << i + return case_id + + +def is_strictly_inside_unit_pyramid(p: np.ndarray, tol: float = 1e-12) -> bool: + # Strict interior of the unit square pyramid with apex at (0.5,0.5,1). + # For a horizontal slice at height z, the cross-section is a square centered at (0.5,0.5) + # with half-width 0.5*(1-z). + x, y, z = float(p[0]), float(p[1]), float(p[2]) + if not (z > tol and z < 1.0 - tol): + return False + half = 0.5 * (1.0 - z) + return (abs(x - 0.5) < (half - tol)) and (abs(y - 0.5) < (half - tol)) + + +def main() -> None: + parser = argparse.ArgumentParser( + description=( + "Demonstrate a pyramid (VTK_PYRAMID) volume cut that introduces an interior special point (VTK's N0)." + ) + ) + parser.add_argument( + "--screenshot", + default="pyramid_n0_demo.png", + help="Output screenshot filename (set to empty string to disable).", + ) + parser.add_argument( + "--show", + action=argparse.BooleanOptionalAction, + default=True, + help="Show an interactive window (disable for headless runs).", + ) + args = parser.parse_args() + + vertex_coordinates = unit_square_pyramid_vertices() + + # Pick a concrete case that (per generated pyramid volume tables) uses token 200 (N0). + # Pyramid has 5 vertices => 32 cases; case id 19 corresponds to mask bits set at vertices {0,1,4}. + ls_values = np.array([-1.0, -1.0, 1.0, 1.0, -1.0], dtype=float) + case_id = case_id_from_ls_values(ls_values) + + cut_cell = cutcells.cut( + cutcells.CellType.pyramid, + vertex_coordinates, + 3, + ls_values, + "phi<0", + False, + ) + + points = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + grid = pv.UnstructuredGrid(cut_cell.connectivity, cut_cell.types, points) + + interior_mask = np.array( + [is_strictly_inside_unit_pyramid(p) for p in points], dtype=bool + ) + + print(f"pyramid case_id (phi<0 bits): {case_id}") + print(f"cut_cell: n_vertices={points.shape[0]}, n_cells={grid.n_cells}") + print(f"strictly interior points: {int(interior_mask.sum())}") + if interior_mask.any(): + print("example interior point(s) (typically includes N0):") + for p in points[interior_mask][:8]: + print(" ", p) + + pl = pv.Plotter(off_screen=not args.show) + + # Reference pyramid wireframe + faces = np.hstack( + [ + [4, 0, 1, 2, 3], + [3, 0, 1, 4], + [3, 1, 2, 4], + [3, 2, 3, 4], + [3, 3, 0, 4], + ] + ).astype(np.int64) + surf = pv.PolyData(vertex_coordinates, faces) + pl.add_mesh(surf, style="wireframe", color="black", line_width=1) + + pl.add_mesh(grid, show_edges=True, opacity=0.75) + + pc = pv.PolyData(points) + pc["interior"] = interior_mask.astype(np.int32) + pl.add_mesh( + pc, + scalars="interior", + render_points_as_spheres=True, + point_size=14, + cmap=["dodgerblue", "crimson"], + ) + + pl.camera_position = "iso" + + screenshot = args.screenshot if args.screenshot else None + pl.show(screenshot=screenshot) + + +if __name__ == "__main__": + main() diff --git a/python/demo/cut_quadrilateral/cut_quadrilateral.py b/python/demo/cut_quadrilateral/cut_quadrilateral.py new file mode 100644 index 0000000..c7f373d --- /dev/null +++ b/python/demo/cut_quadrilateral/cut_quadrilateral.py @@ -0,0 +1,94 @@ +"""Demo: cut a level set through quadrilateral cells using CutCells. + +Run (from repo root, fenicsx-dev env): + conda run -n fenicsx-dev python python/demo/cut_quadrilateral/cut_quadrilateral.py + +Optional: + conda run -n fenicsx-dev python python/demo/cut_quadrilateral/cut_quadrilateral.py --write-vtk out_prefix + +This uses the installed CutCells Python bindings, which call the C++ implementation +(and therefore the generated quadrilateral clip tables). +""" + +from __future__ import annotations + +import argparse +from pathlib import Path + +import numpy as np + +import cutcells + + +def cut_one_quad(ls_values: np.ndarray, write_vtk_prefix: str | None = None) -> None: + # Unit square quad: (0,0)->(1,0)->(1,1)->(0,1) + vertex_coordinates = np.array([0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0], dtype=float) + gdim = 2 + + inside = cutcells.cut( + cutcells.CellType.quadrilateral, + vertex_coordinates, + gdim, + ls_values, + "phi<0", + False, + ) + outside = cutcells.cut( + cutcells.CellType.quadrilateral, + vertex_coordinates, + gdim, + ls_values, + "phi>0", + False, + ) + interface = cutcells.cut( + cutcells.CellType.quadrilateral, + vertex_coordinates, + gdim, + ls_values, + "phi=0", + False, + ) + + print(f"ls={ls_values.tolist()}") + print(f" inside: volume={inside.volume():.6f}, vtk_types={inside.types}") + print(f" outside: volume={outside.volume():.6f}, vtk_types={outside.types}") + print(f" iface: cells={len(interface.types)}, vtk_types={interface.types}") + + if write_vtk_prefix: + inside.write_vtk(f"{write_vtk_prefix}_inside.vtu") + outside.write_vtk(f"{write_vtk_prefix}_outside.vtu") + interface.write_vtk(f"{write_vtk_prefix}_interface.vtu") + print(f" wrote: {write_vtk_prefix}_inside.vtu / _outside.vtu / _interface.vtu") + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Cut a level set through a quadrilateral" + ) + parser.add_argument( + "--write-vtk", + type=str, + default=None, + help="Prefix for VTK output files (writes *_inside.vtu, *_outside.vtu, *_interface.vtu)", + ) + args = parser.parse_args() + + # Two canonical ambiguity checks + a generic slanted cut + cases = [ + (np.array([-0.5, 0.5, -0.5, 0.5], dtype=float), "opp_corners"), + (np.array([0.5, -0.5, -0.5, -0.5], dtype=float), "single_outside_corner"), + (np.array([-1.0, -0.2, 0.7, 1.3], dtype=float), "slanted"), + ] + + for ls, name in cases: + prefix = None + if args.write_vtk: + prefix = str( + Path(args.write_vtk).with_name(f"{Path(args.write_vtk).name}_{name}") + ) + cut_one_quad(ls, prefix) + + +if __name__ == "__main__": + main() diff --git a/python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py b/python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py new file mode 100644 index 0000000..dbc439c --- /dev/null +++ b/python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py @@ -0,0 +1,119 @@ +import argparse + +import cutcells +import numpy as np +import pyvista as pv + + +VTK_HEXAHEDRON = 12 + + +def level_set(x: np.ndarray) -> float: + # A smooth but nontrivial implicit surface: sphere with bumps. + r0 = 0.6 + r = np.sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]) + + s = r0 - r + + for k in range(5): + xk = r0 / np.sqrt(5.0) * 2.0 * np.cos(2.0 * k * np.pi / 5.0) + yk = r0 / np.sqrt(5.0) * 2.0 * np.sin(2.0 * k * np.pi / 5.0) + zk = r0 / np.sqrt(5.0) + d2 = (x[0] - xk) ** 2 + (x[1] - yk) ** 2 + (x[2] - zk) ** 2 + s += 2.0 * np.exp(-d2 / 0.04) + + for k in range(5, 10): + kk = k - 5 + xk = r0 / np.sqrt(5.0) * 2.0 * np.cos((2.0 * kk - 1.0) * np.pi / 5.0) + yk = r0 / np.sqrt(5.0) * 2.0 * np.sin((2.0 * kk - 1.0) * np.pi / 5.0) + zk = -r0 / np.sqrt(5.0) + d2 = (x[0] - xk) ** 2 + (x[1] - yk) ** 2 + (x[2] - zk) ** 2 + s += 2.0 * np.exp(-d2 / 0.04) + + # Flip sign so phi<0 picks the "inside" of the bumpy shape. + return -s + + +def _vertex_id(i: int, j: int, k: int, nx: int, ny: int) -> int: + return i + (nx + 1) * (j + (ny + 1) * k) + + +def create_structured_hex_grid(x0, y0, z0, x1, y1, z1, nx, ny, nz): + xs = np.linspace(x0, x1, nx + 1) + ys = np.linspace(y0, y1, ny + 1) + zs = np.linspace(z0, z1, nz + 1) + + xx, yy, zz = np.meshgrid(xs, ys, zs, indexing="ij") + points = np.c_[xx.ravel(), yy.ravel(), zz.ravel()].astype(float) + + num_cells = nx * ny * nz + connectivity = np.empty(num_cells * 8, dtype=np.int32) + offset = np.empty(num_cells, dtype=np.int32) + celltypes = np.full(num_cells, VTK_HEXAHEDRON, dtype=np.int32) + + c = 0 + for k in range(nz): + for j in range(ny): + for i in range(nx): + v0 = _vertex_id(i, j, k, nx, ny) + v1 = _vertex_id(i + 1, j, k, nx, ny) + v2 = _vertex_id(i + 1, j + 1, k, nx, ny) + v3 = _vertex_id(i, j + 1, k, nx, ny) + v4 = _vertex_id(i, j, k + 1, nx, ny) + v5 = _vertex_id(i + 1, j, k + 1, nx, ny) + v6 = _vertex_id(i + 1, j + 1, k + 1, nx, ny) + v7 = _vertex_id(i, j + 1, k + 1, nx, ny) + + offset[c] = 8 * c + connectivity[8 * c : 8 * c + 8] = [v0, v1, v2, v3, v4, v5, v6, v7] + c += 1 + + return points, connectivity, offset, celltypes + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--n", type=int, default=14, help="Cells per axis") + parser.add_argument( + "--triangulate", + action=argparse.BooleanOptionalAction, + default=True, + help="Triangulate interface quads (default: True)", + ) + args = parser.parse_args() + + n = args.n + points, connectivity, offset, celltypes = create_structured_hex_grid( + -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, n, n, n + ) + + ls_values = np.array([level_set(p) for p in points], dtype=float) + + cut_mesh = cutcells.cut_vtk_mesh( + ls_values, + points, + connectivity, + offset, + celltypes, + "phi<0", + triangulate=args.triangulate, + ) + + # PyVista expects VTK "cells" layout: [n0, ids..., n1, ids..., ...] + cells = np.empty(celltypes.size * 9, dtype=np.int32) + cells[0::9] = 8 + cells.reshape(-1, 9)[:, 1:] = connectivity.reshape(-1, 8) + + pv_in = pv.UnstructuredGrid(cells, celltypes, points) + cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + pv_cut = pv.UnstructuredGrid(cut_mesh.cells, cut_mesh.types, cut_points) + + pl = pv.Plotter() + pl.add_mesh(pv_in, show_edges=True, style="wireframe", opacity=0.15) + pl.add_mesh(pv_cut, show_edges=True) + pl.camera_position = "xy" + pl.show() + + +if __name__ == "__main__": + main() diff --git a/python/demo/cut_vtk_mesh/cut_mesh_3D.py b/python/demo/cut_vtk_mesh/cut_mesh_3D.py index 71375ad..27f1681 100644 --- a/python/demo/cut_vtk_mesh/cut_mesh_3D.py +++ b/python/demo/cut_vtk_mesh/cut_mesh_3D.py @@ -2,88 +2,105 @@ import numpy as np import pyvista as pv + def level_set(x): - r0 = 0.6 - r = np.sqrt(x[0]*x[0] + x[1]*x[1] + x[2]*x[2]) - - sum = r0 - r - for k in range(0,5): - xk = r0/np.sqrt(5.0)*2*np.cos(2*k*np.pi/5) - yk = r0/np.sqrt(5.0)*2*np.sin(2*k*np.pi/5) - zk = r0/np.sqrt(5.0) - tmp = (x[0] - xk)*(x[0] - xk) + (x[1] - yk)*(x[1] - yk) \ - + (x[2] - zk)*(x[2] - zk) - sum += 2*np.exp(-tmp/(0.04)) - - for k in range(5,10): - xk = r0/np.sqrt(5.0)*2*np.cos((2*(k-5)-1)*np.pi/5) - yk = r0/np.sqrt(5.0)*2*np.sin((2*(k-5)-1)*np.pi/5) - zk = -r0/np.sqrt(5.0); - tmp = (x[0] - xk)*(x[0] - xk) + (x[1] - yk)*(x[1] - yk) \ - + (x[2] - zk)*(x[2] - zk) - sum += 2*np.exp(-tmp/(0.04)) - - for k in range(10,11): - xk = 0 - yk = 0 - zk = r0 - tmp = (x[0] - xk)*(x[0] - xk) + (x[1] - yk)*(x[1] - yk) \ - + (x[2] - zk)*(x[2] - zk) - sum += 2*np.exp(-tmp/(0.04)) - - for k in range(11,12): - xk = 0 - yk = 0 - zk = -r0 - tmp = (x[0] - xk)*(x[0] - xk) + (x[1] - yk)*(x[1] - yk) \ - + (x[2] - zk)*(x[2] - zk); - sum += 2*np.exp(-tmp/(0.04)); - - value = -1.0*sum; - - return value - -def create_box_mesh(x0,y0,z0,x1,y1,z1,Nx,Ny,Nz): - x = np.linspace(x0, x1, num=Nx) - y = np.linspace(y0,y1, num=Ny) - z = np.linspace(z0,z1, num=Nz) - #produce grid of points by tensor product - xx, yy, zz = np.meshgrid(x, y, z) - points = np.c_[xx.reshape(-1), yy.reshape(-1), zz.reshape(-1)] - poly_points = pv.PolyData(points) - poly_mesh = poly_points.delaunay_3d() - grid = pv.UnstructuredGrid(poly_mesh) - - return grid + r0 = 0.6 + r = np.sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]) + + sum = r0 - r + for k in range(0, 5): + xk = r0 / np.sqrt(5.0) * 2 * np.cos(2 * k * np.pi / 5) + yk = r0 / np.sqrt(5.0) * 2 * np.sin(2 * k * np.pi / 5) + zk = r0 / np.sqrt(5.0) + tmp = ( + (x[0] - xk) * (x[0] - xk) + + (x[1] - yk) * (x[1] - yk) + + (x[2] - zk) * (x[2] - zk) + ) + sum += 2 * np.exp(-tmp / (0.04)) + + for k in range(5, 10): + xk = r0 / np.sqrt(5.0) * 2 * np.cos((2 * (k - 5) - 1) * np.pi / 5) + yk = r0 / np.sqrt(5.0) * 2 * np.sin((2 * (k - 5) - 1) * np.pi / 5) + zk = -r0 / np.sqrt(5.0) + tmp = ( + (x[0] - xk) * (x[0] - xk) + + (x[1] - yk) * (x[1] - yk) + + (x[2] - zk) * (x[2] - zk) + ) + sum += 2 * np.exp(-tmp / (0.04)) + + for k in range(10, 11): + xk = 0 + yk = 0 + zk = r0 + tmp = ( + (x[0] - xk) * (x[0] - xk) + + (x[1] - yk) * (x[1] - yk) + + (x[2] - zk) * (x[2] - zk) + ) + sum += 2 * np.exp(-tmp / (0.04)) + + for k in range(11, 12): + xk = 0 + yk = 0 + zk = -r0 + tmp = ( + (x[0] - xk) * (x[0] - xk) + + (x[1] - yk) * (x[1] - yk) + + (x[2] - zk) * (x[2] - zk) + ) + sum += 2 * np.exp(-tmp / (0.04)) + + value = -1.0 * sum + return value + + +def create_box_mesh(x0, y0, z0, x1, y1, z1, Nx, Ny, Nz): + x = np.linspace(x0, x1, num=Nx) + y = np.linspace(y0, y1, num=Ny) + z = np.linspace(z0, z1, num=Nz) + # produce grid of points by tensor product + xx, yy, zz = np.meshgrid(x, y, z) + points = np.c_[xx.reshape(-1), yy.reshape(-1), zz.reshape(-1)] + poly_points = pv.PolyData(points) + poly_mesh = poly_points.delaunay_3d() + grid = pv.UnstructuredGrid(poly_mesh) + + return grid + def create_cut_mesh(grid): - points = grid.points - ls_values = np.zeros(len(points)) - j = 0 - for point in points: - ls_values[j] = level_set(point) - j = j+1 + points = grid.points + ls_values = np.zeros(len(points)) + j = 0 + for point in points: + ls_values[j] = level_set(point) + j = j + 1 + + cut_mesh = cutcells.cut_vtk_mesh( + ls_values, points, grid.cell_connectivity, grid.offset, grid.celltypes, "phi<0" + ) + inside_cells = cutcells.locate_cells( + ls_values, points, grid.cell_connectivity, grid.offset, grid.celltypes, "phi<0" + ) - cut_mesh = cutcells.cut_vtk_mesh(ls_values,points,grid.cell_connectivity,grid.offset,grid.celltypes,"phi<0") - inside_cells = cutcells.locate_cells(ls_values,points,grid.cell_connectivity,grid.offset,grid.celltypes,"phi<0") + cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + pv_cut = pv.UnstructuredGrid(cut_mesh.cells, cut_mesh.types, cut_points) + extract = grid.extract_cells(inside_cells) - pv_cut = pv.UnstructuredGrid(cut_mesh.cells,cut_mesh.types,cut_mesh.vertex_coords) - extract = grid.extract_cells(inside_cells) + return extract.merge(pv_cut) - return extract.merge(pv_cut) N = 21 -grid = create_box_mesh(-1,-1,-1, 1,1,1, N,N,N) +grid = create_box_mesh(-1, -1, -1, 1, 1, 1, N, N, N) mesh = create_cut_mesh(grid) -mesh.plot(cpos="xy", show_edges=True) +# View from the side so the top/bottom features (z-direction) are visible +mesh.plot(cpos="xz", show_edges=True) pl = pv.Plotter() -pl.add_mesh(grid, show_edges=True, style = 'wireframe') +pl.add_mesh(grid, show_edges=True, style="wireframe") pl.add_mesh(mesh, show_edges=True) -pl.camera_position = 'xy' -pl.show() -pl.screenshot('mesh3D.png') - - - +pl.camera_position = "xz" +pl.show(screenshot="mesh3D.png") diff --git a/python/demo/cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py b/python/demo/cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py new file mode 100644 index 0000000..dbc0d1e --- /dev/null +++ b/python/demo/cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py @@ -0,0 +1,164 @@ +import argparse + +import cutcells +import numpy as np +import pyvista as pv + + +def level_set(x): + r0 = 0.6 + r = np.sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]) + + s = r0 - r + for k in range(0, 5): + xk = r0 / np.sqrt(5.0) * 2 * np.cos(2 * k * np.pi / 5) + yk = r0 / np.sqrt(5.0) * 2 * np.sin(2 * k * np.pi / 5) + zk = r0 / np.sqrt(5.0) + tmp = ( + (x[0] - xk) * (x[0] - xk) + + (x[1] - yk) * (x[1] - yk) + + (x[2] - zk) * (x[2] - zk) + ) + s += 2 * np.exp(-tmp / (0.04)) + + for k in range(5, 10): + xk = r0 / np.sqrt(5.0) * 2 * np.cos((2 * (k - 5) - 1) * np.pi / 5) + yk = r0 / np.sqrt(5.0) * 2 * np.sin((2 * (k - 5) - 1) * np.pi / 5) + zk = -r0 / np.sqrt(5.0) + tmp = ( + (x[0] - xk) * (x[0] - xk) + + (x[1] - yk) * (x[1] - yk) + + (x[2] - zk) * (x[2] - zk) + ) + s += 2 * np.exp(-tmp / (0.04)) + + for k in range(10, 11): + xk = 0 + yk = 0 + zk = r0 + tmp = ( + (x[0] - xk) * (x[0] - xk) + + (x[1] - yk) * (x[1] - yk) + + (x[2] - zk) * (x[2] - zk) + ) + s += 2 * np.exp(-tmp / (0.04)) + + for k in range(11, 12): + xk = 0 + yk = 0 + zk = -r0 + tmp = ( + (x[0] - xk) * (x[0] - xk) + + (x[1] - yk) * (x[1] - yk) + + (x[2] - zk) * (x[2] - zk) + ) + s += 2 * np.exp(-tmp / (0.04)) + + return -1.0 * s + + +def create_hex_box_mesh(x0, y0, z0, x1, y1, z1, nx, ny, nz) -> pv.UnstructuredGrid: + xs = np.linspace(x0, x1, num=nx) + ys = np.linspace(y0, y1, num=ny) + zs = np.linspace(z0, z1, num=nz) + + xx, yy, zz = np.meshgrid(xs, ys, zs, indexing="ij") + sg = pv.StructuredGrid(xx, yy, zz) + return sg.cast_to_unstructured_grid() + + +def create_cut_mesh( + grid: pv.UnstructuredGrid, triangulate: bool +) -> pv.UnstructuredGrid: + points = grid.points + + ls_values = np.zeros(len(points), dtype=float) + for j, point in enumerate(points): + ls_values[j] = level_set(point) + + cut_mesh = cutcells.cut_vtk_mesh( + ls_values, + points, + grid.cell_connectivity, + grid.offset, + grid.celltypes, + "phi<0", + triangulate, + ) + inside_cells = cutcells.locate_cells( + ls_values, + points, + grid.cell_connectivity, + grid.offset, + grid.celltypes, + "phi<0", + ) + + cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + pv_cut = pv.UnstructuredGrid(cut_mesh.cells, cut_mesh.types, cut_points) + extract = grid.extract_cells(inside_cells) + + return extract.merge(pv_cut) + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Cut a popcorn level set from a hexahedral (VTK_HEXAHEDRON) mesh." + ) + parser.add_argument( + "--n", type=int, default=21, help="Number of points per axis (>= 2)." + ) + parser.add_argument( + "--triangulate", + action=argparse.BooleanOptionalAction, + default=True, + help="Triangulate cut output (more robust for visualization).", + ) + parser.add_argument( + "--show-grid", + action=argparse.BooleanOptionalAction, + default=False, + help="Overlay the input hex grid (wireframe).", + ) + parser.add_argument( + "--show-edges", + action=argparse.BooleanOptionalAction, + default=True, + help="Show mesh edges (can look very busy for larger N).", + ) + parser.add_argument( + "--screenshot", + default="popcorn_hex_mesh3D.png", + help="Output screenshot filename (set to empty string to disable).", + ) + parser.add_argument( + "--show", + action=argparse.BooleanOptionalAction, + default=True, + help="Show an interactive window (disable for headless runs).", + ) + args = parser.parse_args() + + grid = create_hex_box_mesh(-1, -1, -1, 1, 1, 1, args.n, args.n, args.n) + mesh = create_cut_mesh(grid, triangulate=args.triangulate) + + # Quick diagnostics (helps distinguish "too many cells" from bad geometry). + print( + f"input: n_points={grid.n_points}, n_cells={grid.n_cells}, unique_celltypes={sorted(set(map(int, grid.celltypes)))}" + ) + print(f"output: n_points={mesh.n_points}, n_cells={mesh.n_cells}") + + pl = pv.Plotter(off_screen=not args.show) + if args.show_grid: + pl.add_mesh(grid, show_edges=True, style="wireframe") + pl.add_mesh(mesh, show_edges=args.show_edges) + pl.camera_position = "xz" + + if args.screenshot: + pl.show(screenshot=args.screenshot) + else: + pl.show() + + +if __name__ == "__main__": + main() diff --git a/python/demo/plot_quadrilateral_cases.py b/python/demo/plot_quadrilateral_cases.py index ef6d5f6..d5019f1 100644 --- a/python/demo/plot_quadrilateral_cases.py +++ b/python/demo/plot_quadrilateral_cases.py @@ -1,16 +1,21 @@ -"""Plot all 16 marching-squares cases for quadrilateral clipping. +"""Plot marching-squares cases for quadrilateral clipping. + +The two ambiguous opposite-corner masks (0101 and 1010) are shown as *two* +separate subplots (one per asymptotic-decider variant), to avoid overplotting. Run from repo root (fenicsx-dev env): - PYTHONPATH=tablegen python python/demo/plot_quadrilateral_cases.py [--save out.png] + conda run -n fenicsx-dev python python/demo/plot_quadrilateral_cases.py [--save out.png] """ from __future__ import annotations import argparse +from dataclasses import dataclass from pathlib import Path from typing import Iterable, List, Sequence, Tuple import matplotlib.pyplot as plt +import numpy as np # Use the tablegen package directly import sys @@ -21,9 +26,21 @@ from cutcells_tablegen.topology import edge_endpoints # noqa: E402 from cutcells_tablegen.vtk_tables_import import ClipCase, EmittedCell, get_cases # noqa: E402 +try: + import cutcells # type: ignore + + _HAS_CUTCELLS = True +except Exception: # pragma: no cover + _HAS_CUTCELLS = False + Point = Tuple[float, float] +VTK_LINE = 3 +VTK_TRIANGLE = 5 +VTK_QUAD = 9 + + def build_vertices(mask: int) -> Tuple[List[Point], List[Point]]: """Return base vertices and edge intersection points for a given mask. @@ -93,15 +110,109 @@ def draw_segments( label = "_nolegend_" +def _iter_connectivity(connectivity: Sequence[int]) -> Iterable[List[int]]: + i = 0 + n = len(connectivity) + while i < n: + nv = int(connectivity[i]) + verts = [int(connectivity[i + j]) for j in range(1, 1 + nv)] + yield verts + i += 1 + nv + + +def _plot_runtime_cutcell( + ax, + cut_cell, + facecolor: str, + edgecolor: str, + alpha: float, + linestyle: str, + label: str, +): + coords = list(cut_cell.vertex_coords) + pts = [(coords[i], coords[i + 1]) for i in range(0, len(coords), 3)] + connectivity = list(cut_cell.connectivity) + types = list(cut_cell.types) + + for cell_type, verts in zip(types, _iter_connectivity(connectivity)): + poly = [pts[v] for v in verts] + xs, ys = zip(*poly) + + if cell_type == VTK_LINE: + ax.plot( + xs, ys, color=edgecolor, linewidth=2.0, linestyle=linestyle, label=label + ) + else: + ax.fill( + xs, + ys, + facecolor=facecolor, + alpha=alpha, + edgecolor=edgecolor, + linewidth=0.8, + linestyle=linestyle, + label=label, + ) + label = "_nolegend_" + + +def _ambiguous_ls(mask: int, variant: int) -> List[float]: + """Return ls values for an ambiguous mask with a chosen decider variant. + + Variant 0: d = f0*f2 - f1*f3 >= 0 + Variant 1: d < 0 + """ + if mask not in (0b0101, 0b1010): + raise ValueError("mask must be 0101 or 1010") + if variant not in (0, 1): + raise ValueError("variant must be 0 or 1") + + # Set signs per mask + if mask == 0b0101: + # (-, +, -, +) + if variant == 0: + return [-2.0, 1.0, -2.0, 1.0] + return [-1.0, 2.0, -1.0, 2.0] + + # mask == 0b1010 -> (+, -, +, -) + if variant == 0: + return [2.0, -1.0, 2.0, -1.0] + return [1.0, -2.0, 1.0, -2.0] + + def plot_cases(save: Path | None = None) -> None: inside_cases: List[ClipCase] = get_cases("quadrilateral", "inside") outside_cases: List[ClipCase] = get_cases("quadrilateral", "outside") interface_cases: List[ClipCase] = get_cases("quadrilateral", "interface") - fig, axes = plt.subplots(4, 4, figsize=(12, 12), constrained_layout=True) + @dataclass(frozen=True) + class Panel: + kind: str # "tablegen" | "runtime" + mask: int + variant: int | None = None + panels: List[Panel] = [] for mask in range(16): - ax = axes[mask // 4][mask % 4] + if mask in (0b0101, 0b1010): + panels.append(Panel(kind="runtime", mask=mask, variant=0)) + panels.append(Panel(kind="runtime", mask=mask, variant=1)) + else: + panels.append(Panel(kind="tablegen", mask=mask)) + + n = len(panels) # 14 + 4 = 18 + ncols = 6 + nrows = (n + ncols - 1) // ncols + fig, axes = plt.subplots( + nrows, + ncols, + figsize=(3.0 * ncols, 3.0 * nrows), + constrained_layout=True, + ) + axes_flat = list(axes.ravel()) + + for i, panel in enumerate(panels): + ax = axes_flat[i] + mask = panel.mask verts, ip = build_vertices(mask) # Draw original quad boundary @@ -116,24 +227,100 @@ def plot_cases(save: Path | None = None) -> None: label="quad" if mask == 0 else "_nolegend_", ) - # Draw outside first (so inside can overlay) - draw_cells( - ax, outside_cases[mask].cells, verts, ip, color="red", label="outside" - ) - draw_cells( - ax, inside_cases[mask].cells, verts, ip, color="blue", label="inside" - ) - draw_segments( - ax, interface_cases[mask].cells, verts, ip, color="black", label="interface" - ) + show_legend_labels = i == 0 + outside_label = "outside" if show_legend_labels else "_nolegend_" + inside_label = "inside" if show_legend_labels else "_nolegend_" + iface_label = "interface" if show_legend_labels else "_nolegend_" + + if panel.kind == "tablegen": + # Draw outside first (so inside can overlay) + draw_cells( + ax, + outside_cases[mask].cells, + verts, + ip, + color="red", + label=outside_label, + ) + draw_cells( + ax, + inside_cases[mask].cells, + verts, + ip, + color="blue", + label=inside_label, + ) + draw_segments( + ax, + interface_cases[mask].cells, + verts, + ip, + color="black", + label=iface_label, + ) + ax.set_title(f"mask {mask:04b}") + else: + if not _HAS_CUTCELLS: + ax.set_title(f"mask {mask:04b} (cutcells unavailable)") + else: + assert panel.variant is not None + vertex_coordinates = np.asarray( + [0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0], dtype=np.float64 + ) + cell_type = cutcells.CellType.quadrilateral + gdim = 2 + ls = np.asarray(_ambiguous_ls(mask, panel.variant), dtype=np.float64) - ax.set_title(f"mask {mask:04b}") + # Keep quads as quads for easier interpretation + inside = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls, "phi<0", False + ) + outside = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls, "phi>0", False + ) + iface = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls, "phi=0", False + ) + + _plot_runtime_cutcell( + ax, + outside, + facecolor="red", + edgecolor="k", + alpha=0.35, + linestyle="-", + label=outside_label, + ) + _plot_runtime_cutcell( + ax, + inside, + facecolor="blue", + edgecolor="k", + alpha=0.35, + linestyle="-", + label=inside_label, + ) + _plot_runtime_cutcell( + ax, + iface, + facecolor="none", + edgecolor="black", + alpha=0.0, + linestyle="-", + label=iface_label, + ) + + ax.set_title(f"mask {mask:04b} (v{panel.variant})") ax.set_aspect("equal") ax.set_xlim(-0.1, 1.1) ax.set_ylim(-0.1, 1.1) ax.axis("off") - handles, labels = axes[0][0].get_legend_handles_labels() + # Hide any unused axes + for j in range(n, len(axes_flat)): + axes_flat[j].axis("off") + + handles, labels = axes_flat[0].get_legend_handles_labels() if handles: fig.legend(handles, labels, loc="upper center", ncol=4) diff --git a/python/popcorn_hex_mesh3D.png b/python/popcorn_hex_mesh3D.png new file mode 100644 index 0000000000000000000000000000000000000000..97d022933c2de437f80c49be34f083600df1cdf9 GIT binary patch literal 475994 zcmeFZgbx1flE0Z2U62(DbYa{HycwAz&`H;AuXxjud4 zD)@7)I)EgwF;31g<YEA!8mlpmIOTR&yN|b@-dY2|9*Gn^!x_l|NG55@LB%;c*OO8@2P|JmFBzWBf0xbk0Y{C88X{Fe%@{Fe&;O9fZ{O9lU>f-C=}0swaZLyZ67=l@W_ zf2jbZ0=fkR?y~E>a;j^?M}Z1kT3Y)3Tb54R&(9A6Dfl9vo0rF=X5(#PVfoyD?91CO zQcfC4|N64BU2Lt<lLp<01m4StVLhRaAn)>-WR)T_p zoSgV9a%hux*9;6cl9Q;Cs1^wpb9ng#hsi9hh+Lcu%HK3@%{GS+lJDpv@GrlYmDHQd zmzf_9jc=vta|&~gESrztZPHv57c+p1oqf2Y`B;-6)&-l@vkE;B+dH-kuV8T*8gx-p zN9pUGez;9ZPK}wJ�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

`Oh-)E`e8kV7^-+6 zw_S|w*iYUuyrn}})uS_3oA^15xp3LjA+~zfmQ98lr{!3>_6!Y%QgVeY&Q+BFJc>0j zT`$ABOeeINJb<9Xer>~H@RJ(}Qw5Q%c#bgRDb+BofTvKL#MprS-e1SPzs>r0 zoLqU-HMul2VRWN^xkURA!A4FF6OC5Y+FI3`gjr9}=2LwgT4b|rZs9!{4TVv4(+RCu zlsD*+JDWR=4!>RadG;&}atUnZCEdQzyx`>naa+WlJ63CJy$^wj-*DDRDpx6#%_K~ zr+@h!_91DYH;lX!($x`lzl!d zBJIh-zs{VIu!0}Nat{hJVJJ-dI@Kmwi%erA|K}cllGD-<6AgQsa>vR+r^$YFugejD^LmDOYE6fEzx`1v`*CuoR?uh>iW zGdTqB%hBP4MMhXySjNz+$u|xTjgk-(5B~a)nSHDshyyZ;dTSGg9}*4;a7Ahxlx z%V}QRd(3_GY&j0s+!8Ciq0i+Z87=;or;?fSycTO~!(0^)7-YBbwW5Nn$!#cp^uM{p zd{^dtP{6`)@*CwAmH-(m4hAhPc?W8Qz7XX5-90*7Eg>7xg-m_+`<%;dkP`D| z+WB)OG=8zy#x_;RelFkZyu(DcC4_*%YpaV2AER;l`cBu1u+QPGz?W|kE`__;J^(sI z`0v?Y@Bw^~3^lmiblj6xS9=>m64hNTVAt=l(|Z8xPLbIT>Di7Bo_&2PMICW3Rdsbe zEv@~fP}1IBZFl$O%1>{i!mUL>X+ak9^^@XT%AC-~>vh`HQgsGxU4iyR(auP*^s=5F zl6(e1(|3u_bIQR;BOcEJ(G|TnH?~73=aVT;>K%rz(jR6g|I++b(A-c ze^ru+8pSC(S`Jc?N6zggwID~q^cp^X0xYiEsR=_wtJ^~(gRR`w{mc@$omAA{nHbY6 z%g3+0F1;r83%0V^q15$p! zzdnZd9&-*33?&i~$GKw=prarABraE0ViORQBHv=0{?x(Dw!7a?`#CSaFvIIP-Q7Fy z79DCJq}60b5$X;ua6Bg%KVW3s(QilvW-sH2pT z?+MNTnOpaAEkN@HQHsdN+1Q-IY+*jOFKLmF2mt%o_S^KL9T-!17L-vfuW0 z&#zIzt4%wV{4x5N_>(aT7LtKgCqRsad{6qe#0Wzh4Ap44QVt-7!}%z%H);LxT$1j! z@(q2^NkK+9d^s;Kx}c!T@1mhkk(NC5$9SO9wuh>miIUI{9NNV#MmyMtH1_#5cs}FT} zV7HmBQFyk{rQS=-uY-bwLW=r#$@J;NzNThJGD3!1oFqD&B)`Fd4Ce|uwZeCu) zcL-x!FtlUU6Hlk$8Xbj5%ZO}S-6=EId=D>F2!d0%=@nVLui%y3t1wZ8=Y6#s99Unk z`644d8;RxzGsV-tld)+HLMmBRvSD|yA*YKlGfQ4Uani%R`1fhjh*|KP*1qO^0iLoa zjLm|pqTiVl#O7Z=_3<_QH9MVaZTM6v2JgK@Y7R=mYn~Nlwz>b=qthcGAVr;=Y}oaA z_w7$H(b^e=uQhhNAt5SJ+;m0bWe*}_PVcqdJZ2;@?y_&cQa1f)>8cgrF`sW!crG=w z(nOo62_D#IlT087f#ukz#6<1drL@_`3rfQ#B!){-awR>>>%WD>+#R2&g~lG(Yaz za}23T*7MRzkgh>K_Ae-Lt*)sT{5{Dh%-iWBT5$0OR>1HsPiXu?Ku8loKo4lVBE0|q zKU_UMcWy^NlEsAc3Ktc zS%wJx8UERc>*=Oj)EKQil+Wu)WK2Cx{*3!x)}o^RKBm{1!~3#oP}ZqU4E`3?VuOA~ z`EnN*{c0nBP3fF0tR~ch=x9!L755-bi}CLT&j~v4L;T;-X6fvnewU+FY)R#pqKu(! zZ&NF7>Q&p^CM|Jts@)%s>{4o}EZ43xUWtB3)+bjR!-1X51!Aw>mKdge}JVKLhV^sgu?sAR457za;o$`=%D z>s~n8xJj!@Y5t0azsTadl=7|;Iho#N%h3d_&If5~9ZeoN+LaT>m2bi4d47Hw-SLUm zdH(lV^iRjRUlSO;VlS(Zt8r0ZpzxK(udl!L)%faSp1*j&9^q|L|5LB~`T3bB=RDkD zvgT@PYX70MM^OJ~E`H&Ej}VJG18I{YwkRz#dvHTw?)ee_l&TPj>!1G%?>ra-ZUueYCv3XMw&wLH(t$qVXwSQBSJCV-ygS47bA_G2ofFO4`{{3B*%RE;JFm7X;CdD z{b^*ttm?mU5ivrqpNmpXv2?=l;GjeZgNByJB)b>+zd+N^-B; zU5xtk%?4&iEqPO4-u9Ko(yQdSY#W_GN43Rvmdw53O~Sr?!(|&3!l(#O)IRc`qe6~w z-*dJchK@0#2cKTZola3l$#gh@uL2By2p{(G9z_S6FgU+7QOh%YI}x@<4WB`YX2g~k{8xW`LWO(Yq= zG!3VehU~XtH*M{p4%fbxwzkO$8sXDdyI*M>mIsZAAp|B=|K;r0h`zp4Ev|n$(Cgb@ z{s&Ja{K*v4*t+(tR_F8Y2UfRFET8+Li>roigZ;}7F-m@DU~tRUuC)&r9T_nsZ{?4% ziII9r%sgS?4?dAQjzl(wiwh|+M8X^c!m|?@U8<_OFH$~FYiMq)lUIAMY-e;6(mhF3 zs{s1x(32-@xrRAagqXBB^z`sf?W5n(uYR4L5dM)o^TBTQ6iK#H;qSeVC!+XK<SSuRV6q1-h4$w=8iCB|--k6OJ?T*QnG@QSwknB$hUYwJrN!mu}UoC zlOMVt!~F1}wOnZI?pp0}{vVQiS|6f0G;L*KPfxj7isF@04lyui&n`lJCOCinoM}kU zl@Vj3zsv(&T(hOr)19GmZu{L1*s&oJsqZSV2Q#|7t>AbNoYO&mT9f9T&Nk<&Wc=SyF-B%_yqM(gR)sP0KX%T)5HO-$MM=sOQ=$)Qse=RQuRF=|g083JW z9TOS^AJ&#W=L%`1lrOaXwKG+Jm?q^AvrT>Vdb=-B*pn(m0TwdBQ#Uue@p?^h9jUF@9`fa*2!b~gr!uY=giIfwN>WGT2>A%T;+vYKMK-+R zz+wxg9@=kD6*ym_O?hM_%a^xTJr&(k?)TAzGHR9heu>do87KdcvXB@BZhiAlm`;!0 z$C@Nr&u(kiy|~Csp^52yj&dtagn|nrIIU1nh>vnZ-%}`3M=AZp4s$%4yxtcvEs-`EHqaA#8@1{?-qMDW~v07I(0{9wF%nvDQ~6R1d!gFm>A8^ zEybof@qm?y?45YrvRIaRhuFzQXNgMfjdlH;9=g5ourQ1MlQOiMrw%8W<3G)T51W{; za)cTT!SFuW3^znnCio%xN}D|R%&qYejHDca4n6|^a6Rb4-8`chP$A;6QLnKe1s?a{iZ^ny1;HeU=W%FN2v@%(~!(9l=pZTmdD5#0`@ zjF=eD(9n{-JSjB`?Dq~-&5mmyz)a2= zokqJ?*4b@^Bn(}VTeIY#>>heY_I%OdutBHQK-^J5p{v4r;(e7?R+cCx;r5$jJvEAf zkzZ-DoJ3Ln%CFvuzJ7KFz-Y7jaV=k()R>MxASfiiOFntg^Z&T|>YysLweKz6EiEA3 zjdXWOw}f;`cOxMPA|Q<*AYIbZ-La(`q`O0!Z+XtW_nUcV{LAC$0oGpYd45^_ij@@t zv9q!Yg*w_lg*tBUtZ^{p?o`A znesO;8eH6Mv}HU@CC)ZcGv8u^Q-RQHUmx`QOGz?dhAz>_H8o36P@=}wZ52O`9KLuk zOG=rWhX$aZN69+rj^~|cX0Mt@nHPPLqkQStTFO{F574ubdi|j6?7YK0@-GP~SXJh! z_i=#I0(3G^=7Y?uxRRMcc|{pjaIFe>-vRWSTl zfYy@yPov%ag{5;yaFm_fxRKOUT&|&g`_{JI&50X9M7TD4JA8N7KwT&c^n!uS%xCdO z`9^J^QxKrkr;#5voEx0mvdCT#=h#^fYkmJLG3;;%{>UKtIswtcLIJsNSQr;KcOFLj z>gl|X4~Ra!xNCJn$|}e!;S~}>`%k~tB<%lYtjMUS(j#J3zTqGTZJl_w+Ak{k>OAh3 zK7#tnW#o8)&R#-TC|Z~OuU^$FGzB=@TdQj5OgU*X3@95rOR3%MZ300#oepMC|}e83a~mi~3BE{2)%=il?OPP_nK z<}R4&a(bSAT(&i%@_=9GmRfXKGl*B`pq=gLKHTW;NA_p-@d4TvINATE)_k(KGsFxL zqtx%<6llvd4Y|T0((+$!+^5048O;87?&^)n-`fj z@xEg@vo0I~+6Ik9T0IZ@t1rJ_kL!9D9K1Gw4`lGQG&E~QxD3U;tCGqKI||~7{N@buc91-(O&K_92 zSH)W+cyYe;=noF<8dTm{f8X}wc)XpW;+uPzS4RO!4mLD_5+cbT{f)fB!U^*83SSaN zqoea^Ye|&?A1nvgg|6Eh+l$KZBo7_Cj~RkzUP6>{a1fwewka%Br3dpc`-@RwdcM<6 za$6(>J!E7X-tuRptf0Cu4jCs^0vPvfN-8|TPohiiv z%fDS70gpHG@?f4I=*NoIqs^y!58I2M^rxIAuGY;R5fPDvnR)AmDd;b0wXuTyA7Q}_ z;`+gXkjPnXcwLC!>lgVi+gA~N8}q_(fME4c4bMkZ0Qr$(Ac91hDEU{Z3TCPL++UJ? z6i#_{66WAYW_`W1x3(WGLc}G#^}JteYq;mNG;LRv#mcd0BE!)?10^=pC}B3kvuy1^7S_cXekOHO~B zs2QJl^U!qsZuwm4+Jzxcg$Dauh<7cut(`ppW>^GYiqHIFr+?*f*XnQ1mUrsc!bP8WE`cdKl}2#3HM~ED5#=)_{Q7f*@6j?hv>wOqjU-x*rGj zwrLFDKsxb}dfG-Q<=sk4Ki#jYRs3KVmfR)h^7{`|R-kdaNhT4rEICyY~o1xyk4kik7)BkRC0UCG`ob(B1 z00r_nIpbmikzD9@O)J9lT1C27N5-*0wHHd{pSMbh-ipcQQTW z=GUqBPhFfm^-fNsiVD%X4E}8VaZ)g1{oBsZ>kt{b#8i^4#8fb8 zgcWaX8R4k*R|N03dg69)TMLV;p?BZ+)f>i16EVbS#TM z^@1p_iOMir@e6Y+y~Ql!1{ION7#y zboCUhb4g^?^)2pOT70Ch^C-0QE0H^8=lARq+oa@wn81?7MooDN*}MoIDT~hNDoW57Pjfim0;&NniU>Mp7FkAK2Ilo<82iHebg_)_$joN-aZ=ld>%>{lfEhw#p(RP}pMkx0C%- zI+!iiT=Mg?2!ylqg_TM(GSW&IEziT`@__Vi<1RwP|0WFRDSHgaPCtGs>xb64x>}?X z+SxvF*?+KH!zWb#9M8>3KN0jvjuKaXyvs`~1iB8Gq&*V(UFmdD7y{Oj23*l!6JMPk z|5U8_lod7Ff{v*Lqrf39?l)7*oXrZfFOC`R1LTT0tpQz6(waWDkRmPQ^XHI zAd(vAnXh(fhl*_x?3vOV$4xi;N->DrDf^p)nY|E3#l z0xmA^>n#0dX`gxa&h1vz_s#R6P)-4~K^GU6gM$>A zURM_a3o*4&iQEzUrkm6L)n7D$E$4nS(VL%4{N-8S zXNE6C@w2c_0A%1yl%P!LleO3)GczH#-SY4lL`9Ioi3AD|GZR$+Rh=Jn&(6kZw6)Z` z%4)bz-F|J#^m!H;E7X7g=2Q1C*w!vXuH-y{RV?B_nTAZ^uIQTHnRUX$j+d>Lqm2y+Xy1MP~lOy zVUvoykJ0|7mWZk4R}QEeV_LaL?1eGfAOOI#taeIco%88j)E6ug?W-G_h0?P>8$Ii5 z<#b6(lodhxyK$hv3G1j~waBR+W+Z@a&)xekm@u|H%Q_|r#uvvXn@puMrO~=AlgC*d(St0jpYHik>FGR$|1wjYBjHxlG3hEhg9&0C{pYUqD zzy0@_Y@Kj}V_Tpb+Is6VY_bS|fep9ZeVcqu9e06-u2jaH!VHU}#}jto2>65V)LbC^ zL-CQF@heCA{1F(*KLuycCzrrQohVk1L;X(2fb1frw^#eqD0rQCIJ2}ASUR)t1rME$EmBOAhN}{OBXjXL?O7L4IqrnA14y8#5#+%B()F%Bpe(R`mc&QVjA+ zQ!Vj9ZZ&f^>m4u+{ykheiswn&S0ZO?Os^CoL=6P^>UbtcguwqR!0F@FTNG4x(fp~_ zM`^t~UruXnkq{Ybs4p(fD^TEcxK&FD1%E3m;N?8|HV`C{2hL>-{cYVpX%aATDF2

X4Y$3!`A!zJJ}aP!c!^QjP#5Y^a=-`rPX9^!TEgbosJMlOXodY zZaGeO%$X@2`!$V?{%d*~xJS|@iy)FgC=kfF09q(;Py_~(V|zxyI`QFzNyJUF$9b&# zyk0w$H4cy-MY|#+bGNXN2v(1z&3yUt_})o~opx(DIm_^RbpdROcUIJF^=>YN(C}HHSXzf!iNqrmRoy*~sCdDKU zQ!1rbP0pW)Q^0-)G!7O2brwFJN=ZqXyuv$6M?;c|f3{Fsk*mDMS7)4VV^2Ahh$MMK z3rpo%(uni?O0F0^&W&wW?6v!FZ%+%SsBFv4!k(?;*W1mz_l~ub+7T7Hmj`i}pyXsy z%loeEvqV!e?F-MXnuf0}1|~oZG-#p}b@>)7+d_dClA{}wh)_`-W08g8RLyr8w=6E3 zjApK>Q(~=qNm7&^1>0NXGy)pmq5pU4WnW zdbmcGzon@~?b9{pf|38!*uq^$2F$Zmsp+watO7s#U9c=+$KH)TPbvM@i=rz|~; z#*1IjkiWI@cgR0uQfjEX1V|9EfB;Y4*_%k}4@*B*`zs0v(}=U$ZcWEGQE?*s2my_w zT&z0`Z2GFYDM>E(EwILiz7BroZkxD*;8Af{>9-~}vYhxp?;2)B>8wuc^SOAhv z;R?=Hax=5zk1PZElt5I$H=O6`k-MV>q`{F-)yE59R&&}8J%AJa*c^H#oteyk>pSYw%APvYtaK^(#hU6%F z0iHItvLYI>ANmhg(Dq*w!cE`$+8XEL3MvFZSQ6RIOMwXX6R8exx`y&Avu@_!fap|d zbW>qVrD~X&wy&?zAT5zd2)uzXpI_LUm^!?t!y+CW`jYjTi(fA#?S6qy)-m%|dZyjv zF8!_^_`Y)MV~Oo>jn%dN-WXf;feiW|$=m||wx(%_c!@H;fRF;=*R6|xWX3m#Y!_c+ z^rWVa@bIAW+JE6fP~*7JC54Imx&OOkG(Uf(?G^>%bo&tsAbR8L-;xtV$c@#Z&~-*O zLJ*h|cz$J2VZS)5Y1pzgK)1plAmq`7;NYKc9Rvh%2@F0;u#Nd!i{%=m!y{svBx~$*lL!?#wzj{% z$lF%ryq4w{rW|pS&f9)Vgbd7Oy-{<0+D1%{5 z{{BUIpDFsEKgtGlk&C$s6$t+dQn97}jW>Y_z7JgA+TqNKo1 zZs~V;MYf!H)9|YN9SWU|V<8)KpqQ1ByS5V9sAh6*#xbb`2T2u%0<^BB5d%5F(hob{ zV6O^F6$^GC0|Zp*=eM9$3FHyAo;-M#pf63jDuP;&p-srkk~JBR{G`D;U(QWS@>%pIVQROZc_y_kIsTwL+WN=Gum ze5k2>G&T|(H}Tir&kZd87!6kP+__yqs}%_C@Z3Jkr@X=5`i9$w9uowdMJ@qR#25+REZ_i8|*fh%^u?03ZO| z+lH_q(??$Ollq%w6XCS^b??aF8RWq-!9c2%uL@)m`E{?dhBlq}x?m+4;oG20?}D?p zTOYr-R2ro^!lZ)!YJT;Jx;#*J)xGVq^(v&PzNHLEwj0@3W)~@)#?%dTQg2R@K8>2A z&@esbf6Pkrru*y0#*%Xb*wNy92@vkQu(v;K?s-0mN6>Bm*=B|oBUM5z1xNhv)Ko54 zIPq&de)F8_S*DnYfi7NwA~Hv&yoS4$X3cHzJ-^-_RmyAo&%T zw>smHvMTC&nLj0!XV$d_SZO4Ly?>wa7U;UA)m91%k1>xN%Sw3as|lViCao#~>`lYE zOCC=2ZyZG7|1L6KEHX0fo4X!gwvD7ZG^G*W1^sS#Sf`b(FdO^vxkUt~1B7MGbN{PrCAxW9gvyTMS(1Ct;JsYzrrG^_q7zH4@1%&;%S^uJ<-vBrw zr%AO{8_u(+WhO#o@%v*dpqj_6NHE1$kK~_U)zG;H zh9rRvT+buYI4KmPpK_1vBC))R{t}8hGk`H|s7vDFXgH3G;HjxapQE*`dj%deFsR6E zS1Kj;_&JMXzc4n z{7Rl!!6!E`*+CLoC%MfJeK$aP;=dA5uu*e$LG_C!^LBs<^T zUnOvc1S5gzuJa4PX}EZRP`LDJX&Z&{>k%1VnlGJ^{8Xq?_F2Q5Fl1gr*rl(H2;nB5 zCgbMgbIuk^%abe#R)S)hGR>-#@r>5U@bnE+vaFb+Obqy+EKz_X?24KNfnl1k+?38p^s&hT~ z{7d4q=`}qtpgTAaOH!@gHzdY7Xq>USuvgbQ6cr&y>lHdtCxu4$ty={^wR#4}8gh%& zTK_5(v5+Ki21I?tkCvod1%1K9K+(Rue9KHlmJDRG-=Z24mIj7a1cws;Q9_?({kNm{ zp2W%7nTVV}JG%_^hd`JreaVhl`zxjqrMmRxFz}bMcYMpIcQmyR&1TT+OaeIlHzdje zq`d61lA_!hRkf|1!;)!&?;<%Su$>Q#;YsCW3xkb7ktHakZt7&^s-gE*wX`O=tCQAGx31YRWSJpZ(D?p4)n_hsXPAZvTE;e1V&e4(+?C7-s*U;$*e zH!aK$o}b~c8IkTB<&W<&YiIybGnFeBAkL_`s#ATRHmStmxdhQbBpK)0+PLE~>E1DB zRHXMqNd=nncTGBYdWC#do{O5vCzPqROqwybuep3wOM={P?;N|ouBq;DTWB`!<>X8l z`&9zIlcy%};oVLpTB?i;V1wR0vwa8YTXkk4_hkmV!P!7UR_nz*=(7iG9LVBnyc$wj z^H)R4GX9d3mK8rax41!!RTD7dN}CkLE6CJ6IHsqlQ$ay9Ku4)CWhZaW8L8C!<^8~E zWF>Y_z{Polfyqt-o9Mgpa$rQ$wiJq#0B*=ZZh7G88EI`Xaj^&0t+|w<$x5_M2ykq^ zUg>95l^>18v^&d6L;3!+WAP|C{)l-}KQCE&F9ELVc@kov;kV2z>mPE*RDb20A(f2; zoNai&ozKh(VS<6q>wxP+c3w|v2HrOqe$#ER6xmsAhex>-g^0_8PrAh7&To^Qc#GJ! z+s2*9L!h@CLxoB+8)OUbx3Y4PG?l{T*;hayvoN7BFEK=!z78yo*0C!GJK!P2$$|dq zQ59vIzf6Kl@2Zm@YqC@}mK?P*NR;XjckU1~Pzf|Qmok`-VE*@M=Kmj#4-0VoF8`Jk za8w|C8Dc>S?l~sbHWS>nK7#Yn!z|K>l{pCiu-{j8_4@n_%j2(sa|SLh!M44ws*Hu< zb|1*1OY?`6Wtu(Ub@r(~9Q;q@x z8FY08T0e4MJ%yG`iM+^dGAOnEE+;NiiD=tXYguc+#F15@n|s}p@!g@0tRuNBjYrk_ zjS!B!f5-3pN=Fcbnk0PxqpXAp5~Pp|R(0K|Lqh56`=dH-C28PrQUn-(MRkG{Eg-m3 z^bO2dkib2vZudY57hkOW4;Ziv$3!@h2ShkV8F2y{>^nAg z`^S4uOAU$xO`jR?AdsxSTva?d;v8;x;`hOHSO5y;c6Z-24q06z|BUTv2e9EaMAu_# zOPX%vXRK}m<3YP;ToAFD_VylV8@C{n+b$;!iGulCOFKax5s_aLxy@-GXO6$L%Zd>T=$?xLP zV8jXwM2{+^Vc!LV9(dSiQKo6nCT734WXll!m0D2aV282|Q7rU#7U%O-v{g$I(M5T~ z+~ug^)jGRFqnnne#-qDdL1#iS>N&cyQcD-r5)6!$opb6CLuy!zJMHJ?7*6V^c0vwCS>8`(V*rAV@KtHHh0pckmFlSl(C%HP9u zWHlz70^16>`>1(9OBDnX770%oAmrCS*ui1>;L{^nV0L`ud_KJE{+mIIEhF+{R@TQX z7G9Z*Emwr+LxkS_1L_wBLf}>I@EA`7@1~ zAbuWxehz`b)V0w8l*GSi98j;cmUd5%NDe4|Ft3u>eh5BdwW>XXEk-#5O;WeMjc*=c z$>;B)%7e3s6HNH-;4^OSbEg}L|9r!8@Sh5Bzz&V=8(Q2sA|qA5P_vcQ$c>z;p}vY* zw4Vv0*lf9uq{bnO)sX=s7~L&(zMXY+EIkw9FCHGX(Ac@1(}u-^?$GF;20*JYW;f%D zFf>f}2RZiV*+e8T0>T4z&bI(_UW^E?x*B`CLXDz_k8;!@dW5(fG0{bCGFBS629XCK z+-?V#EHx|Rjj^`v{?_Z(mCjD{YFPxb`{&%V3klBqARa8_-_;lGzW`k_7B;rp)xO@^ z!;7^lm)K_zr8*lki`~g?zL@Nn94R*T>KYlmBAm>%?ZUW}aiJ$S>c?Sy>oF{)K!x)t z(;)_z%(aP+m*#S*9%xnIt9mls!ZuXQ21TZi!g>ar44zlfvZ|k3nhGZ0x}huI045v{ z#eLs3MR+W|q|U+MhfLH$6Z5+aky?{OftxtA&bvwiTLT=!ht1^D(1rC}Diw0R!tpSG zM$Ilte!hQLDJVx-Ys#waalU(y(R_@ut&m>t zE*~2%du%7LLNkbiE23G5w{M`&>UB3`w%E63O$g+t(|yF~^mP3v1`}2^ZWh&W3}GehtaOOq$0ZQ9IZa418h)hwK+5IMnYur_Vr9RbpjuY zswh_G`gDSD`)|dW-Y4d2`1-e4{Se5sv88)yz%Ssz&BI6q_L>tZiC>*zKs@EZfo(`H zg(bD}c}m}v?M)hV)3ST1#>r`XY)s9J<1YXgeBbv!4;;>$H*do4d{cY#*AUf0MJKX? zrSjQhly3#*hYxAE$WGyezztT=q9xw}F{zC3Yn|lG0(*zNjEmTCPJ_aj=6e7M&98+3 zf3<_~!$9R&3weM7#mJu(QHj!^biYj;D;G}FOAjA7eRw-=WnLH1f)% zda3)28o}4Mk~tJ0bHIcLYi5=u=pt22z>mUFj~l; z`uJg<@vi)(`i5L+Rev~)0xyuQiwnTv@Tc_ioUYId|C-f?UC*vG z9vNZc=*856#n{g^0ow#(?tiHdHs_VK)-elKXXgy}&bhDVM{HlE@2(MizTR#qigX4S z5S5mXvMO9$h3-$pu*b8pxbiL9^}8ZMpri%Lj$&Hg&;8~iD$Ylz4>WPlAZY>sgrgc< z$;mC^SY14REz%m>a+?-!GYo+|!E?Za%43mMUChw=+nCfC!}|s~DywB1 z*Hn4Wls^jw1e0A9>I<0xoC9{OgY0JcS%9L^J=hnzIm+17|K9b%=3e_Xe zflt@DAh7l7+!@jiG!is%41A>JW!dkH9HS`zD2Wm?F}mP5vd!1%jhYaDEmw*NMgrE@ z7FkiL>wC;h-?}=@Q_suWA`L*E#1lVbd=3x}N+uGOD8Pu%msPjjNz3eVrgGTL6uFhf zb8G1=@wwjKd9DDD7n<%5i1=p!RZuFjh+X?J#*CU1MK)SJl7pnZ4BgFlKkDntvX{;9 z1Ek(yApUluMv`(scC+t72*{-L@`= zPLVL64Q2LxWk^E76g<9`-+QlAgVenXn2L4J>o!g%B?M$wBh8&rfZ)X?(GWo8) zvT5Prj^=LK_biF5Qs#0ql=Pa#R&u&(GHE+<(gB~WJ`C;=gh^$=g-`>#E(iey1KF6ep$sxU)VN`6nP587>DSVc=`p+H2)ank6CT_G)|>rrJ&p+%5B~EGX!-!+nA6UCI@sTtM3^8}WtF;X^y_i8>E# zU7~}bUZsM@Nc`$!D~M+2$_muYOt9HJxZN4LlSnQzO-%!7bGrNulS#$K`Qhe(2@>R& zSI_IB;1W3kGkAU5sf@P7eZH{omo`A4kb4b-g~`GAo>$}36R9zx(aZ>})fdCgc6&4auz!$T|7P>_|1AVz+pl%?kuJg7D>$y2y_lij1w5Wj3LP-Uc zkde{&i$whVqTGFKQuQwZD%dZvKA^m3`YvI{4g~Raw>~`O&x5p?l^o2C`2JXt; zjXn^yE-|qvQOn}7g$@TK8T^`lS5&sUe{g{kLq95)8XNuZ?ed7)uA=(y5fc9S^JjFd z9D|r5%jRE+pLJsxL$P{C*_bg>#OlgDvh7`iz()|!H-#tDk=^;Ra z5Hp&Rk)paTldYI^v=~T1bu_I)9zgFN4)RGC0v{_cvdb8ihqliXq3r$2jlO&5(5&Ua z-;2B}_KUR(PDk;KX~iWf{*QA*B+~^;KaWU=ymz*75}T3u|tNZvsdU%S)LbHTCNQW>p)|;xU$`5^42l~CA$_Wgx;+-XM88KRcp6Rcv#9v@bi>Zw6izY9sMyqKmSoQAeQpp3gZQ`{!b(b7N`cu z!xeR*rPI<+_w@1#P~g0B#7Ql!8%a(~aJ?%fIr|_Luj#LYkAH>nLYa{pG%`vgu?{u3 z-Yp->Q3E;=6e&SJpKPTmFvh$UBw+RacZxy$-xNdE+}s>~``tc0v2kGZ?`auhod3gk zWLxHFKRz*Cy0?T3w>JC`4G8J}MO!1oNFWtDOL&)ccb1S-V-7Hi2xC8C(@p(2X&xEC z$BGQ~&vt^chq_5kXdfrw(N#e~4N80hXdW`FnqWazp-#LPp5IRvJ4wKfm#zUdBZyF5Yjz$_CL^~y~}SqW4l7wyRc z@Ck??IAdhAD4R@afyFew+-UA<&(8J@)3e0aAg|@?O;WnNv*p%|W839uU7yeVLcLJ^ zpUaBYNZp30@|RFX+e_R94adbo23DYmxefR6y7#ll@(K^#rdwHktvoVuul_P_0HkZ> zYvVKHnkj#6P?IV(T>N0Jpr&6%JhOJ{r#g-91rbG9~J4rnc(9$ZmIL8G@ zbCOhp*U>R`)6=uQqwF^Skce)#E&j1aAqot^hBk4<8Vr(l4$5ofZN}G+C8u$#Aa#KEAYfUTUdmRwwxF!1 ze-Q`59#}5*7i6OJtmURNx;9%4j~NVo_G>3PQjJGB2PBws-ehlQV(L|006CvRvy-@6 zb9N3T8-oq_gT=2uoOlh|8?r%1gadYdtyeUMoZVRP^QT`4%R#(3K)SwykQVc$4r2{0Exe5xxnmw1$ z#ug!u=qvhaJU=$+w)XIc+<(`C$~85di*XhIx3LyQwT9KtwkPmbwN+kbR~!4=SUTK| zp5n%~oTa^YNfeaCO-PIt4%qE>hCoskEJo6Wu@}Y%yXRktZnD{Oeh&Jp$l6Q!N0CKD z9IZFHMT8UQOD9gRIl@LJ`JG59I_9;qlF3{fNWAf6eRRHG^4uFze8@4YZ@H>-)I>AX za826Rd~UT8)L0cC1po1i3a1!$Xkm8+a?Gd`CI*X~ybC(g_rj_tL%77(Iviw>zF**J zQ;PnikYQa~`17R8)13ISf$I29N=hLEU9b5&B^wAwN$t~`o<)RUVc}|cwE@-LHyKGB zNc(Uv5KF7klu2Od;#5sq_Sx{(*4pV*b^)izTgMe$E$6lV?158fNn8z-L~Uau+ufb- zc_mh+oK|Iy|6WD~K_UN^hd(h=Qc_ayT~b=U1KUV7Ry`SxBPY8_`lUzVmO>~1tUh$x zu#WpMn~}EHPHGl$q-)a3%A#t-j|QH5zc$SPRozM3#vmu4XHv%K#M0495TDNE?Xj*f zX1SCf8Kz1*EMyIu2`Izv#n(ludc^NJc*kB7c%Iy)2JC?vZ|;GY*&r)$xnp8~v3}*MZ|yeIYsk|Iu@=Z zh5QQDo22x8Y`jnkB%l->AI~4(VN5l=kNGQZ9xC`JOGIJ-bqbX?>34Tr*O=Y(t+Y(B z@OwDWwZ=o!!xaleih)l@O%A z>@g`Y9gCVQJs@RfSTU_)$BgD>yj&xKk_Hp1f6}wW{H^r4&SfK7K>D^6|33{qr=6@9i`WXY>*wsf7&P4ssE;^}-K(Sly zH`LL?_N}%&Nk&Jb?4?HG2S$Kpa3h$RZUmdK^S?@RyHPh9U$VdyZFZg^Q#M>mO$L&+ z2xdK(?QxpKs7H}i?3k%3;X_PjM1UE;?g;?BBe3B~+II)0Xx(bG$a9OMfC&>Rtyw36 zfPdv^vVfddQxmvn!As4-&+!rug|4s9-cT4T6lz*&+2Zu?(DU(sbMtdnR#tUGpwBUp zQ7C@4U|(1vTP)29w(lmb&6of}VCGj+xi&Xgm`cPi;Z5gzfqp4Z0L^;3I?sMw{!B9j zWD4u*uSL_8=Ia_14bJ(Qte;SPY-B`qe#()g&P(?tFIMk zTcj(%_g4~=Eq2o33f)|85&X4O?bL<9vn77*cN2phlbG0tabVo$YSq6+v)y_#&qdv> z!ov2rm6oQF6?k=a>kc^JyU>WXKj%=pIz<}>tb+Pn*a#{gI7B;Z+c6^IC%k`zRZ{N5 zgZDxzoA)1pP*04y5c?hT=m0Q9PgvV!`nkMHkTW@6W+PfrbNXKZ*+t!AAs!_L^aGR;-n69b5dYU+5h+)_BCBFRf1(eDQm%I z>b*<>SB!4BeNuQng4$)pq%a>dFGny`%LaM}%cqg>VE7d&Hkrt?t8;mEpdLe}RNuI)=y4lKJ1+@zkaUn!6AnirH~{A zfqaSOlD(GN)R@G;q|xcID5 zBE9YFC&jdme}#G@0=;4|H}d^_q?ryjdFIj29HSDP9uKls{O#=Dmf4y7nwwSC`rMaF zSi#0r=XwqV2!J3NFdyAL`)3`$srWXDkM_?oqIkjs6Hwg=OEr*M zqtJ(Wz4g;8E{ke7{mtVJjurQ}0Pqf#PoF$g_}3xP;WC_!9Ami zKLPjBf~J-x%#Rg1w!q8oQJG(k(lqZYIA42t!Jx^A1>>}m*uQ90L<`x(QZJkwyl);1 zX$IOjt(zfhw{S6vl(dZRMHWhI7?D!*X9uoCr_Kc;Pt3Mcws7Jf1`lhV2TJzWQ`?qR zJb63`4v_^=yKEL;r1Kis+JRf*r@}|D`5$z5mxf*g&sAGt;nzFNl!XCYWS{wYP?Zhj zX~ZSPXmbZ3*ROHBs;kMfT1iRS!C@93zZW0h9u?ILRS_qW+A6c{MeuLndG>zy=~aTw zJGu%I1W5a~GkjstU`m;u@>$|g*shHu+13h&rLQhVP*VE)@Z)Fq)6b|eEBMb zLaZSx*3+xIBFnGF>m2`7#g8(sf79uMf+!0}@Yz>T0Nn&SF3s^+k??x>-j>ATeJGdZV&R)?D*Df7Y`GUX%dt53mfG(&QA_E5CFFgHUY`PvB zn@s!iPMV0$8Rl73pD2A1;Sc47y<(0I$m%Kh7+n`FUuj>$!3NnNz~Gf=tM0nN;#P-8 zssAyVQiw8SQLgO?Q`UM;JN>FPj$?YXIPco@!o99?c=#EHNgh6`Z(j|Gj@fjH{VCh? zP$*se2damMQ!8k9`AT74RJ=HK0Ey4>->NZ2fSmw<;E)ubIy-VW($7~HAFRESUK6sJQ+(M~czNYj#L&(Q%KoYa(-R!UFU#bTBVBt2_Q~foy z$jQ$!%Khq9b!Eo|Y+YDhWmuTc^u{?{RE`%Z8ASC<+%7H|s};4COT0osLXj)h@Gn)h z({ow!L+|6yM{kZRpMQe^0cl@KbbuNY1o`~M6To?Q_5BE{=NQjj9l!FoY-E?^ymv!K zh?LqpJkX|{)g}U_h=~g0GB&1Kch{^0VLhBdj1h=?@pF`W@U_V!D(_YoosuQ_|LS=7|7-x95D*lx{3;P^~ zpRf3>;^Q%|tfEL?!_h30=pomGb*UwS4njfiQCU>03?z(zGXvjPrW**rY5X#)?jEE; zRv1A+fsw$eq?pn{XH5EcOH_FpuhaNgW54YDpZy&Zia{uF3iob6%W;8*7BxQ6EKwlr zM6bCw*&Q1HLf`V0hbP;>t$`^9Ncu`8huf~G}yWP3<7#X z@ClnzENt;>oaD7TS>j^xv-+kqW;iha9@5WGeE*&MSHeGj9GX3eO%vdJ%o6esq@0+o zX)X0~a}rZjG431={)a+2{=HjrrEuZ})46Syod&e@?s+{5CuS7Q>?b=W ztR5zyd+g|wMlzlTCAA44JZJ)KHffr^)3Kz4OQUAYfIk!xWMBm#iW@;M?-C!5Fokqd z@`)_etWBo2dv3th&N5Yip-6||`7)ntBRh-x?sSAQaNJ}B(*ZSBTho5i17ZjPtN!gT zNl1|EiXRCuzWR}%qrt6iQ`1`Ze$+=OjkshehOkEwy~Ump7Q z*}}MlL)+OLP)z7{OIrjim%m4}K$pDsBPEN~XpE*u6iN17d!PbzkSnU{3b8dU$QB;Z zsW7LZ{-LB)^8pr@q`9`9-$BbSS-Iu|#b7u0I~wAx!#l3fXAuD>_It@-K0 zU`zTn$YA-<{sk6X>LSTQt4`sF;pTdpmBY-#hot8TI9)oWaa^lAzf9z1^u6EV8!8Sl zQ7;~*w&-r4IojH~Sz`gBH4a#OI=8ctqH+S;?0+ASd?xZtfNl!h-Gc8C^WsnGQ4dpb!5qD ztEQr`jJw7L57Yek8i+)r55bcE{>4rQtSB>wvqimVng}lx88d0T2js&TikepZF(Fvh z0g|2u>2awINts7h6|Fe6wwG%o>4^g{(%2&2GT|Nl?d|n?)g%&RLQ z-|Nr!Mf$dO!Sy)m}ok3U}_#LnX z%jD#DdmNLV=DYTXkoLp(iwSXjRpk8z+oYXX?*-1SUz9 za+1Bb^`|Y^&4vbsnTkXUE5zPz5!W4{-`GFu`FJgaVfemdy*T5s7!A1873=IPklVVtz!f04zQJf06&D%IQo!&mA6D>J8W{w<8O&Ua#SRF-}(vabSZCr zwMv6aWlOe*=@jt|i-I{yVqfA>C!2*9z53@2O~W@ot=IFn=80kJD&q;FaI3uJE&bj| z8rmL6g^T0@^0>tfMHut}MXD6mD+h29yo`766K!!10h#S9%9hw>& zOD#zJ$9!^j{J%6OR6Rm6^(lUeeP)aZf~P0`1PA@pWQ+AJWXNYEX;7WE@8I|~255jl zWJ`)=JIJA9Vu@!Y{D!1%tgWu2&d163`}c13-oV#eX7^%7E~0~71jr6i)ltLcIs^*_ z%n#89Gx((%bVRyvS$$orVj5Zwz?KgP@M2!%M45C_lJpTykd5bFOAv7VxZ1+DL$Y)y z@8IP#Q-8N|Wf}n+@tt@+W zo~=#j=}}D&fq^~*2untzV;xH>{(xNYo6(viU~HtOqx zxD=09yr9#<`Y*qksy91FVqmI=gs(5qc-AJp_fkwvh)m~8=IV3C9@ebBO&p|ZbYA>z zUuB$Xln!)vrb{rJ0OLUN)=-O4lYb$>wnG<@PyiV(OFy11x?L}_e#au+PQpvDN1O0;nUDK6|h z9Q*?J6qDjBDGvKvsmWh{njFHm@dQIa^#kL`AmIz*3nYw%(<|{8{tQd{iv!32;1K%d zNS%}c#JSIqe|!C{X*!AXerVhPo|lt-Sy_qX@{`C9gHdg@mQ6}F_|n&BiDL($d^%6< z^YNyFHtIE?IuT4FAlIWU;9mS9&HWWC=ZlkmJd~`8FEnZz?iS(-@eN-ehOz=cP&CQW z@zX_Oa;C7$m-6iF;Y~^>zBkuZn;?cByx6di4^l9e#GRhj_a}buHhR0L&WAsy7@7J{NzsSDuBQy#Cc9(=v!5tm#tKY-nQp;9%ytI^~ z)t%B|NB2CS*=u|_J2tU!(q5z}z5Es9arv19U7Q20e(M?e_Sb^5ofi{5>k8Mu6>M@FVcl<)66 zj3umD6;#@sZ!b(#Fu{N5pB!FXJ_^XG%KOwR1a$-H3@`x5k4tX4NwuPG6~mLZMw?QI zI0KQeOO?O$Nh$<`t&C$i|_;JGNp1I;6phe zAd2XE_ENP@iGo z^4d0E_g(^jg{4)p+l`Tj1SlEYt1Yo-+J7D^B0urjlxb!G;5qen3Q-yU_wYOK!&Ckr zQD+^MW%_;nM?^#rL>i<8X^=*`6e($t?k;JN7AX;sE(HN;>5>+Z2I=mS66vn@IP?3? zyOw{9Yi2D5xS#93&OUp8cEV0|h(XZb32|BYzaf!e@t^FD)%Q5{R(#M(Im>?A*sE^^lia#a)nX`vubK2zwiD1!(5z}bga%t=*VI~&em2}8XlWjpI@)Ph@^!= zS2K6?+=KE;LXDRKbYXL>5io6x#p32O6Mm+XrkJ;b1t2^cj4GFT$l}V5hAyNis|}ZJ z!;_CZPtih_;7z{i^1BYCV-#znq7Mqk-#^1HaCaiVNTNWu-fajUDH1`A6X7n>Gpk95 zOEz^K9^P;Ts{A|B>b-q=0Tw&>(T2|5divq7f^l*(dd3F|M)s_Cd-H4|+^so;$Z+oL zxYa?tCAz9_Pm-LgO10@G+Ec~pOR_g-d+b^~RemXC;hbQ~s&xDMA-n%gNSppke*Vzp zkbPc~ueZ|5GOL+rX|FC$uL@a+{hQc1%8JWcuw$Xn_7Fog{00H4g1`+}?QP!oEHdw2 z{X1dj;fV(T?&TA&gBx%tTnq<;^J0umv$Pv^6I1_IcB7N~7(Q&Vn`vuZiP#Pg(H&gl zB#Yhj={GjPpDqk$r1ynuGUCX4cf+Ogd8}8$2odif@WwEA50}#k_OeP#heD&OdJYi~Y{D_2KlQG8Uw~8IUDQ-F zTdT3T5g7TC9JV$(zKhH^(`2!KynDN*)}EJSX#876p&A|59xn;ll}~)4XE6TiA05J& z{|jfc{^;&zobId5%aH#`NJ7Sni&pX`;Ko#WX4aebg`Tha#0d$yN*AZ&XG4UCnHh#=Rcp;4Cl7-v|4{ah+?h2nEw@`Gnx( z#|zWd4?SFZo#>k1`KA}f*c~^DXAM?1p5h;s0_pZ@x>{ZMTAQ;WvydAkkZF)W9%cZT z(j-D)`lV{@$tpR>;Sh5eY#M0ovm05OlC@cWs@8GiHe#h=;hD1Y;b4JQ=-}WN7sBVh zs@#gm3-;Bx#B!(nQMoDrleYJvhPA_iKgf6+&FNoc;yw5#0sI)5m{?uFJo*NdYXkkS z--SR4c*R>+R>Z0%D~TmRfz^|CJ2Dt<=Mx@o@PRC7tAGF#QI&0`_FvW&m3rapy~8oC zl}Vo|VEno`0cqRPe1;>WSrda-nMBBrCwxG%W^Q{|qttUCu7FsRPg=Ko)xP2|v85DLrSmuG zJFIaS<7%UPvi|R;nNoLh;64u9YA6vH_~F15Qfk}I#>tt>$py`b96}8gG(=V!6p@`sxOk|`suuuCEyZ5U{0D?i2K*{&KJ->tq%bKD zRi4!}%08xu>Y!scU0HTI+n3k5xY-g{5X12;yFS*$6cYgy%F^SV#TPF={8%Q^auxR(;?!vFda=(+IER6)Tz#d&kAUF7~P3&k-;Xkmp`-#0eRIZ8@!`UIhxHB1h=EIxW7 znKgd-Q~4{rttRbC*T(BIAh`-!L4SI`IDPd*8K_T?2ewcpB|#t(CdVDBKOVKAXlN0v zK%PJ7?9BGs-gfIKn@$B!dXOV+fXHj+(}s>#LQ32xH;>~c*OizQBOYr&lGN_B+XbyNTn`*Y+%1uQ>H zOH-@R_1iFVjvlxWsrWi%Ke`+%XyJU)Bm1nLrgPzDF(2z2zc&30tW@1`sq|e(wl3S-qfr|z@ zU8PVN>^u{9eL}70fx;4#0xTBnVtoVfni0M6bCOAiG&{6Ofzu5ylO|NFiv9kYwM3X zDuZ_+z1Zlup5C#9Do=rWgCVAX$Sp`xTlmmQMyDX)lM?|i>~j*6qV^@AlfuF(#}y;N zzwrhxJC{((>;2cZi#C2D`o^XUWORL!=!pKALBsXm0^?IdLzCDI)+V}2iyy0O{!KN_ z{g-Ouw}({IgDcn_Mlv2>O8-4}GfHNEw7mec0XhmSBax9xit=Z^zm)6#3;>*?z{#J# zP^cn}tt~RrGP_qFj`;|#Z;&tJkv-{tQ|k$y*ouRLEE;jNZ62ceKh@Z|41^S(LXi^h z`91g^yQD!02b219lm6_s;q}MncGegBwMMX~H_GYgvbcnc^USpidu1{n0^tjMXb=7Q zE#d3BRfTeQbUzW`cvAy4{?*>vK*+$r>Z~wB(!xcFkqU8d=hS9Tyx#I78gPkoa&pi>$ADKRlbKlMT$tmR50d! z@Q_yhylU9qv{SLvrh6_YSLUdq#OrkSXJ$DX9V&I}D@-aG$BME8=zHwHO6 zba;AiS&iwPEZp9$T9E~u!H(N>$9(Wdw$hz2?GN7j8^SV==N+qC6W3eUbHP^q$B%MK z*F$Em;{~eD*jt*Hn zWf`B#?cIrpBJ}TAdkhTPZ8F^Sf}%MU9Xtlt_A}Y{vb{WlWjqi6{K}OVey3g0#z76u zfmG4(&Zc@qI2;!Tm8DN!yVoDBjMbnh8D`Qzv`*{vWC@N0=dmV#u!Fig_rm`E;guSI zAAA!$wpHQoxngfzp*Fwk*4UA=c)+Rg<_7moGs`IH=#p$7Z8sSJ5Ap{>9A-)fvy!^TKfbBu0+Oo;z)e3FH{eePf0UHV9O4nG->mh& zefRwYOGCrBC}hK)-~uhl)%dtDQ;XbGOA|Zfho11|m+XwofO|r?HakTfeL(Ua=^EJ0 zAkh83u*=CeGd|tiHev!Fhxg1e43c@s?hu%xM}dxaU)T zJh99e|4_Xkj^lk{69v{Ch#n)URFIcv#LI6ScCWZUDfGTkrn#mk260AFX(a%sr-kH# zXqSIoKQjl1o)`kQKoHq+#KuvxnM&)i23K(et@$QLyJVoMPNyFIgKxKx<4sLo^77tl zV`;ct)qo^kh}SLz!%?HI>kAke*Eg*rX1--+<$MS8S$yudB;n`}tuk^p)=?~a=62@6 z+7-{lwUQ;M4D_}|?BqqIu_Ib00DNkjXWep7tELVh(!bV+K!V3XRd~`Mf(@uW`{Ti< zksywJ?$5z7TEZnt-h}_b26wBu^j`crpl-Cae-<1N+>&9OxmV6oa#&^S#Uq(&; z-Wdq~Gs0-%2L`D)W73fXwk#kc;YQFB7Wcv-N|>aH?SYrr_9#=sqH8X`ZwVp{PMpJ3 zo z#}z|}>9EI*5<+%QPYq~f}~Y8?UW~5@r@C97%&W~)&^yYd!Qg+cW zKJ|LpXlsM2D-Our_yKOwETv8rhKTMJhhLv#>Y!R@j?}GvU}~yEb~gEgSZ1m0`;lVW zy^!Fa)t`2JSO{aFS0XFhg^Q>97P5`|(bI?f7U?=BqA7oyd?A&)@nhj8ELYp`-)Z@{ zeWYiPP0!2^ZCQARat0UMyuyv5NQ{q{NIqBd^-Z&6jI;!CAsT;I(t|6DH&3(+e+0#g z(7}mIj#U=?oC@qH{O1g6FHH;#R(Co=i)QPc7OLchAm11FJZs0j?jq(3a3t5btm3RE z^4dObx(Z!(%CO>n$vk@-fR2S+r2RHfOGMvPTf40wnNlY19cC0gyI{ckUgjR_Em-|Q z*+eHXyvyM04&MSl&gSDpo5RD(vS6inwB}VX-oouL*~GNrV!$SgyAt6$<@3>TXD^qP z(f;75fQ7}}Du<^mvd|xX6eY|B|Eg_Xargf!sPAwelG)i#CjWEQJ+)(J6&(2I0T#I; z4-O8VXFT;Wr9>cLT@5J*(?5>G!y^wPJL^ep(6Wg(w!yLgyuq`fD5H0xQ-keoZdKaN@Y)e#O8l4$!H5tYTuKv-vk+fmU*sR8~7GJ>(Hn9_mv+==!+`@8+ z&WRI&+3|jTa3?}N{6>zhax_}l3-#G}@}<#jvon4^9)Wt9%>26MW+WrSKJs&yU-%wH zANmEiN!xIOQB&_B3I$jr+E?D+z3aruU2_`+JNO5I(Ah~zyxtw1QYYOJB;2RF$Ktp@ zEDCd*-UP$vdBYjTv34kS6KGzdyr}N^73(h)$~8WAJV=}R`+DI7*5wcG*$Gx&gVjI% zN#X_kDi?O$9=OoE2`|sqpLd3`dhZQ}0_u%lm}Ji5!2ciKpg6advSfBzy4clY*f6Jk zFx^Il4sEh(hr<;d+8Cm*X_-x&hG@t+d;1=Nfyb_{-0JGNwcp*p6qP-^`n?`;^r!QE zJz+jRb)3^KsG%>6-?M!d;eGN9Q(cD%j=0IsZF3175Oh zE|*!bH;*pT1x?z5r)W3pQL6Bn-)ji^_@?Dn{K?I>P2n4vnh0rG!fGhhlsS2a=USwV zFAT^xMcha(A$?I_+gbQ` zj}BA_erfSn_Y)FB2Cj9ik)20tl=@$o)8DcL-D3xO;CrmyBZO_I@z36N&VMffqW@h2 z@PQb(;GHRuTXJn=wfSH^OalBX1^3(3G_sXKi(QZZ z;TLzPBCTsP!*{!-qOc|&jg6pTG} z&lWz18>yY#`>=w^qv55Z2B_Jftf10U*3QW+Vr4hj4+*x+q1!Z9`)JhjDXIC)>&m zz}shL)${JL7}}mUA;pXJ*3Q~?eR+vCE%-AX0}CMl!67|}%&Ln9<2FnA@y?ItcV^I_ zF>Jto>Z$u<50C$tT!HJBBocvMV=x|L(bWYG0!RyVxx4)C=MW{z)UK!UhO@paY6Y17 zw9h0TFydY0LHve9w+k0u>`O~R?iO}B8WYW7T0rx)V8Ji^km@19AR&5V45< zb0{)H=6=C@_FenT?WZS9%AqMoafvC+5dNA4*nIL(dtgu=nnM(8s#Q@DS7kA#PQ&PE zZ)jRU#*Qv@IEJlcrpH6W+K4c(%TfzS0cMS7UpN_cPEESgt1@)vf|>U@F%guH%gR!T zA8cFOD)Byem%h$Z6oGk<`DLy5krj?;=72r#^zt{QLJ6G$W*<*i>ltPK5zKqzI|qev zlSwg~_dHjNuFm#P?HWTgs=PmE2X(J3?tBBzp!-sOQA->%&^PM0wq!Gi-gOJW8Q3{^ zRK-1}k~}f4FWQ95VDp0S?hnws!59fTQ@*tb1W$>H{RIWbWxVjM{%$@R+`IV&E+UND zb>~V?f3}8NzGW;Q9r+~i`k*9Ums?-PJ#{QTKGp5I!%BR|s(g_TM5 z$NaFcP#M5OE`nG3@0}r0j0(&2ko?1lylvy&P-nvn`kE}2yYDe74$5OleiISvDr=9A zJ!vm^Vfk2~-)D7^Jhi^`_-CuItj(57qbqofA|QU&S^XuCVr>0N%?g3g5g($Z;yZS! zYxb~zqHK(Yhxl0Nx6twRuS`{X!`{~9Cg6x3b>~p=JV4A7;3+4?4h&s=KE!y6WiMa$ zb!t~PZ2{&7IB=g#Aw8NmfF#J zUM%iIli+|A&sPu2_*SQu?^lI|NsD4*zVo{!_ruOLq*=Ugz*>YO8{z{a9LCVt0&1Uu zqyny}q6Bs3{QP>*iCeQIRR~P+zxMWXke}&A|;F3p@1egj9?AyZ?81G+}BU-gzdgEsT=Ha ztXbGZ7XLXU`OW)e&f8?rNI`c+nn ztyF>EQTk3Bpn{c!$M4JNIX9LQ7VTn)u|gymK7~`EzUzsXiewqmp9i0}C{;9p&E&+|}k z-{4pTuk@vAb6aa>iCDlKnAxSr^gnb;R9t?BX_#xmDEx>s7Y&kEM{L}RiBam_ehBL+qQASG%71F_98 zjfELuq&2~*7H2Re+-i`R1Td21d`9*qTNMJllV=hSl9F=mLubRe=hhNDP$ZfyUPvrT z!W_CEjq^~gFpdN79YxiP)OXs|ljGA$VX+-S(wPj=9-c?ZMX>oxa4y@j`>T4?Ugion z2)8Z0GIy$Rl~{(Yl#!O^k+aL9smd0Aver1q)A%R17WUbW@8oi-kNqfYJf`WB4D#cB zDF>!1>`r5@qw{XbxnLSf!eCU*Z*&mTfv&14pNrk;F1&&KF^M7#Bg>5MtII*+L7e5z zYC=Z|YaJr;@?9hOiFbCPl{k`7J%B}rk3;nJ&ywOQNrm$I+|FTX`)`G)XkpLN2L3Ad z@}v_`cRLj>RL0NoM{Q@3Mp_q)jIv*QB!eU$J;UQoaSsf23_{EGb#+ zIY=+Z#Wd@BNaxf(WmSH75ZhRn^{sz=Ps@t1f14C5wB-$G;; z6aoDu{}%xTLC=@qzNJ1P?1|YH#--82tUNRrgBo)ZqPH8Tw3PvS4V&pxPo{l*(UT`t zOE(Fan-=aMd?%x*Zp-5(ZT-llXJL|+d!}f-`->UAJ%iil{QR);efA4qzOH0@vubvD zbPNim6?9osLn5nBleYK^Q_p&P+VF?evB=_|#}P63-mkPi-PZFWsxhW_K6@A=K?w;k z>0nN1C4myf^n>!^b*TZRG=&^kfEbqqQlonWRR;0}^kpV4)6!J0>rQ3ibC2IwJE15gXARg2g1c9IX0B}$$5v7F_0K^zM?pg16OA^b=6 zXGj0<5=!(}iE7ZL0c?&D`jlVF&%`%=S>d);HYV~O`F+ z8fr=t&6r7b0D78-?pSo?IXy5n#?K_3c?M=5a3`h4xd|w9z`GE-|2{Yz8mh~LGNqEg z?Q3-Y#gkQ1;_CKx4_$!_sJdx6Effn8`{3*HnDw%YJIAGViqF7#E($w5^!$T@<;M;yGk1vf65WT?S6;$eX zW6D?|P~Uf9admrfbxu<~ey9Dkip*n}hl>4mFR_{4x&=`P!PVEEK9BvW?c(^6*4Esy zLWuA|4IgmUg$Rh$dvRO}Z9$x8fcga$Vm#CUWn~i805CuopLK3EdhbO7HFEYnZ7fN- zQ#tg;DqMf~$i}41AtRX$GcgoPs%pkgmJh2De92N-HU;!$0Fy?cu0?I$U)+PwFZ=DC z9P)cxU=!jht4MXn_wQclCn82500$}YerMW2k9$6s7B}P-bTRb)EOu~6>tDM<$2V=8 z`GI^Bxqi&xL+mS=)ZR9M;I~Mk;!jU&vQ=b4ZX;Ciei3BSEWP^nG?_byRgcm;uP9$; zt{--f8|1~{jPSYM3l$8)++m1S## z?GK)ZUC_ou{o=lq#M{1jx0Q);Y8)YxYWzfR-xP*B8#?dI1b9qTHBihje-b`$VfM>1jt_MFZ|5EbQ zgw5RXuhsaXVrJ&X*N$^(*{-H@4a{s=m0y;J%~Az{DND>Zxz1xpHc_@3S*@Kb}Xs2*h(^b{+q;XV$f-W{tjaNgG#xSP;JQ5(g(8&s7bCz8ycO zJaQ_BdcoUmOwA~8d$wHPEK#vg&S&c2KRj&*FC?_;2wqHC+^Iky`o|_LtPMgg`5`az z`Dy42uOoWQh-`)2GDV^>>p7q&MLDiw9z}^z?^TnW{?ak%j;GbDXBVQf;FO?>Hf!^$ zJ-ZEhl;#Av%aAEWWUHNxsnOWz=kHU}5{j=UdF<*V@4I&MP@Sc%>Z#=518^StN@{K) z8?Zubi~8s`u!2;62|s5C36z7A&4jq@P~#qz%QuqnlVnQ+<8M*<0skJEIR7pF&4${- zJX6r>PhtDQMS=VD!$6Z?Qghwcll+@HpYX$3{Ltg4YTUVE@P4+ri6R-vY_@f=pBe#9 z^=cqgEUwTpFOT>5(ClypZ4c!!P|Y+^msR(Ks36;(?F$V-4Ut>cDj;s*~dy!9TiJ`BXWF)8uRY zDwMcBPg8Oyxn;s10B*_{*Pt;2_OU+dY^Vp(pJfY30?FVptRG;sO%dF)U+$`q zeR!xk{;rM$0ygjNiVo0H<<*y@WmamAu6zu!|E&pE-n1dfESZpfWcYekkB1$5)7dyb zdfjAjC@YSKGt^KD;C&w)nK9C z{@t+gv*vD0UFkdeP>l!#)iq5`;CaM@%V&*v=nS)WizMf6*hV_iZxeN^{U75w883hE zfX?}eD&!7|qb=j@e|#xEX#YK)L7m2!$GLGvPq^50qY{;pVx_60>spKi#HcVPjw{X3 z6mB%H_8t@}-V=;t3y}qQgA(tcuMKgDLw$X={GY9p2aTV8+uB45LmB0Wug%`)e33e* z$8h)?Z1ZvpOwUX**njL>ni056_BlYhbG%#~(52sTM^MQ1ck=gymqiMy&G|RhY;EeV zrivt8guPZ5Z^_w^A`nx9d%Z?;PYdf-OTj8ZlK4mPO?u9c@Zs4bObi>Fkmg=(zm^5m zca{OLzUMZabN_o}(wDvBE`sO~djJ(K>hMwPs1ebTyt+B=8(J*G(IVlq^X+7pt)Gp_ zE`_1jGZ{Ab>m%jPBqvm3N2 zZpX`gO`*%~+Xv1r?Ae=+Q^)lqL$mi?kC+gUz{YtVRox_QxcUc1wk#{?bLNA`aEF&f zy;6-B9Nrs;RxOuG-j>wtMDhto*IubR!5hs;D_oRN05eJTy|NfkWzk%vOtk0cH@B&E zYS!=xFLq>#_)h5<2c4=axz*xoZy_78Lh=lbdW%4UXvk2Sc&CU^AP{hb-nk`)?jgB* zLjdzOM~t{4BvSKVPb2-SE8YKJ`bIB2K3@G>qf+e!Z}gI!s>zcoJ0~ulovf^nUjEkF z0$k-;)rhhl=9(l(*P&V92VyTKyqw@ti(z;&-aKouJ8Hv+@)aIN*;;RRPve)P9an|n z9yd^47Tn~i?-SAH_zt3OrvH+xdU{IbXi4M(7E!Y7DjF;~xjC5*hbQbBOwG+%rpq-t za~0m|eTeeB=&zlt+sBXKSi!^R?w?`CMbo>y2!&Yi#rMy55P+k~vC|At_f7w{&Zi(R z$v@PA+H(`gzwduRP|wO;_&Y+M6vf9XoCXXdgXT!MEBOs~y~Ia5=0BU)7D}J6zT6qi zPA#0PE~DV80G=7NVXh_4fznBOTV9^aG}#gG$04z*;+e8`Y^qsQ%IhjCK3#wOL{pm5 z;=NTS5>WlyK5stQklIRcIJ~zk`(hYZ#!f&f7LXw)WoAN?wX_^parHrC9FjusbsF6Z zv4{DSh-urNZA}X-zu(1-*s!#dIBbkXSj&6vLV}=Rq!fDW5^4U@%RM)@g85NWS2`#E((-^fBt$n;UT@4t(E1w^ zFw~ukxK_CZ!4F$D^N-tpZ_mlM=~~y4hw#hpQ_t?BaJfVQNmth6I|%o@2siEZJ1o{R zG7-nWC#I>g}UWn<7$tyc0zTE%3!Lzn)n6{eyZ~ z7XA;KcZ_qtP~YcFLC;lHR84fx=54qA?mc$ys^L+yqe`iX);{ABe&S680>tj{^SV7k zEzJl_j3ZZ92A`1Vs_S&-2st^~l=HK)=JGFzHv`YlA=XUKu%^FR@YJQWAzdW9-O;l9tE%$-QmCdJcZJ0cMI< zopH>n0Rdj5pK381YFDaP6WXF|X@TASR@(0;s^A|RJ03;BPBlu@RQXJLOe4bIo1`#H zJtFKkw^Z3!h4D=yZ9oC}{^y)M_4UVzZb$|qwtq@g;L_@SHoumVDZ_z-jc+$wx-zlK zN1V)AZaleu!OZJ^&Z*MV75f}HL}HM~m|@PccyZT8ZbbF8Qz_+Umq?aUSkJi9R)}YF zhNIahV+D;5u4nrZjZ@dZPR7@|Z1~B14&|UCF0nS-%sKReL{gso)CfpecEfKzO03JF z2(YNfM5Gt=U05-Nn2Mz-aygd+R_+}G%>%Gq#hRMvUst-ga6M+bg&@>=`Lgy~NE=|e zpPZj{CZ$nxT>d!U=8B1jCFaCsyF9W)JDuZPNXY=CYZLFOR%VXi6gBRy9?yl4)C5aV zMRY4xxFaEoZC8K7g#4~fVBkJ>qAVDCs?h_Pbfbs}XuDaTr~9?g3W%xJGD9Q_>obH2 z3l4|)?gAh(g4`Pr@@6E0b>u!jJ~SSw2;B)vaY*=i4@H>M8o zBP`kTa^SI(1wFjt2?^=+%-sIx0=TCqLOS;R|5DjZ|L8v9aKD!!k-YCM?;+!A#nH7| zR$xsc;8o(4rPCWWdDa7Y*IJ^d(4_(5;5pwE#(0(l)&1KDJD12}UV#)Flc|@AZJbI? zexC}{)*s+mtuHIZ#_K4ntl`{eZkQ_u@mv7?zVEtyJN7_3ENlRHB-`MSn_UoQVhWk( zg;!GXEI+_#E%~`~cX#pqL34RIEPS{7 zi)rm%-s$;PmRS-c>@{5#A^@9WK?V2a02KB?*o0tH@AR?*fQ+UQO z>@S_6Xu%1cY0axkclNG|0LvL^zo`j$yRdwI1ciQ6GXNHR6K-$a0*nc0dM<+(!SC3C zbRTv1eHi&{?HD|5nRuY5S#GRJ%e{wzee#<}Um|Ox+pm5DL2>a{*P?zDo>YnfDFR+` z1CylkI;ZPja>EKLQwrC3BcDSWKGA&uDEYvj=o~Bj>a$^yi=$*d98zNcJNx(Air3+4 zDg*l7r&t#ZB*cg3#+8{XQ0H>e5e)ZaIeW#kf@BC9fcuAxGOercq3GW;^Sgdtg4km= z?!4R#M(5(l>RUqzGc$wMo4+Vux4)a0eKE@)d=tsfx79GWp5fmI`G2qKxrq4qF$JHZ zZ~Bjg*oS8(ho=UzGBd1J)~wAfS%kbjjXQo!z7W^SE-LHo=utA{=FmD1Z+qRd6C^?% z^;Yca_nv+jv$X?`-M3qT&$*~R+#Cuftu(Z;@{$wX`!uklQT80rJBCi!1S-o=8 z0FljmOnCcM0^|Khga_qS4?R;t-;JVeh?+cp)RtvJc=zDo@wa$pw#zxBsEJUFo#OXfzQ2d09xkaAlvZvx-3QzcrP8fCwt{>#(W{@_7tkfr~9MOHC~ z^S5G70jq`DQI$yM&-KgO{U_jZwJPini;-<3qG7onYy)g8zI@nWn44?m?^r8 z8h?<|KJyAzP|$>!Se}i`u;wRW_z#SYWZKawKM&Wf2X5geNDV^ASBeAR0sFq>@QU~2 zUM~$ipUf3pV?O65oBJNE5jd!BOj8<$p1=*!`{N<#w5#;c(UAg!eWl5N%tusKRJv69 z4O|wavmuF6IWlHO`v|VDKxZwQXi&~1qFyt%w9d_+*_)PGybWj0S`s^dj<)CJwl?qf z1DZ?%2x~qrFGnDd{17Yo(<3+j4mYS0B<51c|Bg9t0`4ClAYV^_b#nr2}IOKk6$ z7wwpXj_@=RI6iVZf|UWzcD2Tsj}hMi$Xr`-rq<^cu27_c6VzVhCiqH?%Jpdk&plN`DQHh|)aB|FvOhFAM>)M6srYSJU)~ z3#mQ?#te8tE#T9*@vh6B*(@=stBN|WqwoAz0gs+`RV5^>2IBSHx8wC-9E#ugX<%-+ zcNVXQad_zU?fA6Qp59x{hmG&-3_38ySEj#VhlpoExjb5W2f8&dGaDiCq$V%P2b1fS->Y*2F9E-Ri6GqA z9vU8i?KFP&oW}#sxcJb;a7Els0K&D4-{wmuPIbEs^O_@3mS=`B!`X$nc;&DKVwqK# zL-W7K^g_s~BRk>ZMyEpAYTO&m|LiZ;VynV^kTm0Z96A)5MqwW^pLWKwO^lcCb zJ(veM_${*|lkD7_PAjW809=*-GqsIJTsXMGK@Xg%dw0`hU2~ENA7ol}S+@f@;R_q* zmuDjTyvhk={x^BaBD#&)&8h|dIW7M`3-cN|ncEg3%N@0jW%UhhFg@2;SJVep4YytI zE*OB(CvEWMueg@W`j5GHLT)$(W>q$bnmPKfp#t!~QZqlSBvZ~P)0jwxhNRAuK=^<+ zqFeB~cU9c09?Ci}@JwtDods|uPckL+xc#LgV!qQqhzm>F=Y=-QWq!y^kGE` zDL=12hW+EL_XV_&8eaYW*kl^vAFnRnO0rDW_g3Q3Ci~$^HZh=03p^J)WrRO{O#0xd zn+rWLkA{LnT9r51F`&6@UwQc!b@}k9Hs9_gEvt~0vI=gU@x&k3IY6svYsn8@+Xw+L z0z#p+MC(PR-hiajBn|4kNdsF`gR__AopN zc;3lgQ_Cal*RpT+TjN$hId}^P6uYY&Q!aBI_1(vPfsNc zhh;!+?iL1y2uecv9Yp`|z#%H8qR^RJPUCj-y}3)b6G3LLN0>nwR_2R4WnuWXcIIp5 z*00XVJ6$P_T1KDs28~#{X%_lPBkgo#Lz@XPh(;i zH-2BR1>rYu&nrPy62$TEJax_ff6Mp}*EnnI>m`W=N4i4PEiagciOTVvZEO$-O!ZrklnGCEIH|@gb)KJPxNP-#K0$Jp{m_ZM7?hg+ay9wY! zLVT{diIRgd<#U>?waLtug_F@F!k7D5eodB|%8#WtJ@091U1WZas;fO}m+%S;ZMl!C zOG)|AtatDc_6>NK%+IvkE@9QHIXf-jcbWdY$#~93EvRXfv7B36Pot<~5({c+o%amH z4CZU7=wp{xusJ#TY?oRWUtI^_p|I;eCPeu9_N^9A7@Fa+QH%Qz)@iTDt=zh$7(w3J z;AvrPL&|OI`F*~r)X2H*haLeA#@&blEq=45XN~>EEK=2G=AI&MmN|B#Y9@SyNY^+T zl)elN4u8o#pR1UC*JQ}{k_mjK#p8o>>_5FO{-p5ZJ$553$nBgSO#wd>(ctw`87l1c zU<>)JBVJF~r_{ya%=tXr4&RY9zqjVOmuhB4eEc4_8&}1tRu!3UMU=Vzc(#wvy7D42 z((bWh_E>4TE1{5A+fcqb!S-aBSjD;1Lo7&Ei&$dWP_ez*`QREs{!_D7cfgm9Q<@G7 zEkLZO!E5{D6H;#P^u0T%Cl^)sw%Z##7nZj;9Jkt2u!7+EE!e?3S+MKNSR+oStwJ0Z1uv+YH(y>mRtYUzYFcXErV{e(4Ua<54luXW`K z#iz+1P;h0<9Y4}$SRS6l72j%%c1w&Cg&8|U!MuFq8Q%;dL=1k{ri>YRUzQI)O*!(| z4M1Nd+ATdpBV}Q4y58PH)VoQ=uOiFSe41-rx5G zhKytpy?K@=eRJrA%Rn9~bUQmMK4a+Z+7apR|aU`9q|2OZGzCZv9^dM z!NKEo%QSNYx_fg;WeJ?)g7{hMz zZ87yKx`)G>8Co7Jp{bmaD7RXTdhO2Fh4Q-X5oC8YLUwz@Fbc2y5QuH>n~Z4t?;J}N zZn;C_n#}QU=YuE*n~g-cn0(H|*Ri#fORTckul~gEgmIV7L1>;zDB?CE-RMop-AlwkTSaFL+5TZpZZ_?YYUlAK zR!X*wnRCf|Qi0Ew2w1q;t6;TVOh^{L`FrX3Pt%M&Iss#9H8ukpnq`;tSp*ra?A&--46O>LCPD8aA@- z3(cSOt)=LHo=v{gnu!jpA>q!itQ&rqlUkECdLDFK?i3QGYR5zt(YnOt8y@v1#7-~U z>+HL^Nr%onKH4o*#0NTDV*l2~VnZBCYU~Ner#B=i%GosSQUy62My>CnoS$q94=pVQ zqoB-sonMxE29$?-nHm~80Rc6H5MaXDgCMxTsi4MKyU}V!l!cl*zn$ zLPCu+pxU07-XqJ;Qx)EBk6dwmg?7`TpYSdiHtee*&1`NiVq@<1YPY$4wXej@bMF2_ z0-LGA9|c;@0&o0zQZAO7Q*`7Goy*1wR(IWWRLx(9mjv9xk6`WWEZHc0lS#!Zfa!;@ z>EXteJ|bt=lvrGQvQKt-81ElXfIo(=(Z7*IOvv=eyrX!Prw|#F?2L|&f8>{(cGs3t$Rw951eJC`UZYQH~R9#S()Nx3zQM3bZD4u!UwNl6E) zSfGW1-iza-W4X2 zmbdPa9$oFWR3}%`5n+Y4lqSeF78egEm{-3Mwbk4>Z;$xKq&9aygYIWx)RH+H}D z1Fm0fArGat=g#iN;0S$1>m*OtzVz=WZQx0C;=_;FJ{iDQ*8M=hYy2%M98**$qcAVZ z+LZE1>&hz-r%?81qJp~zMo0h5PXDuj_d_HYApRM>u1TSOX@ik5rs_UgK#y9@kM~G7 zu%7)=!%)ThT#rOCzaLg$%@B&dj47s|tlnxZih_)7VQn$gLhav`judrY1AtC3hMT`} zc8;z{@ypO7ij^q~c>B?;#ZcW)Xc+<17`H)XXNTiz<%@sTK>0XQaQ(KBk zz4$qI`(E8QdqMNHelE%IBL$c#);87$a)dv21t9qy{5*iKeRD_`^|45X!eFHUgHlu~ zZL}K`O3-!D&&LYLD51S_GNE;j@hyh2zgFe->P@#ttQMjl9lq0~Xq*1&vcJv|#>Ew+ zR%pzY2+mr%HL*I&BK_50YB86}hIfs>FTUcF(BXXcGcR4wJRvu%H@Z9CV^>oR)5R1w zc}|`A@?xX9AiurTtMOhE@5*%%9A6#hQI^sr1H+^1&-7An80^~VhLSsKM4|cHZLUmG z*Z+ELvOaxHqhI_IgPHj*ip~03FaqJ-EGibtX4>z=v@Tj{yf>rP9r^kO< zdmnuAxew1^zk*I!>q3Rfkrf&#PlJ4;_gDnE@?c>1I`yE4jJoSZ^V7Z}z39{=7Hlaq z`r8;pnjd3T69zhY=!yMzQSUPR>@BdmRu@&3+C4OqB-0kK+uY!GULm%C-Mw#l|=_Eq6DX!q#94*^t>o4YBYE^+-kUF8)9km?KTK) z^*|u7Lww^T{t0IsVEu1@>GP(e<2fwNYu>T1^b#`nz7!ynKPhRpGPc#wqo0zY!y-&b zpuFF4mgi8tG=JxmQy%R$CBuF6gaH zf%W-I-IompMhrPw54Sti*dbf`iZk?_46&N(wCaz)=jS_4Udg?=kvwvA)O2a%Xqq}# z5&g`DiWts9;imc)?gd>@aV?MD$c)#{&&X>@ zM8kYrjQF25hJWH0rr+>VQ!?yhjXYlIo(lr5YYiddZ5&IaXoi>fp}@xO<;4N(#r6C> zHI@mfJ1=G%W;Qp8rXxf%R=lKcEu#4!jSx;!V~3sT=@?L8paf;`aA{8R?|svb^1BKL zQb46yQ9)>ET1ZG><&m9PU$1T><@V-S#ZvoB?W@9)tY2DHf0CYajShc!f46qnWG~7j ziLb`>XNuwpcJWKhWEviNoj3WZKJ)XGXt9qYpVOU;l1fq_-y`3>+7(|ZYt}Czo}8Se z^r9JPKlt^l-RIif;P?fG&f-@Lt!bn;d`DtN#fz>Dk%{hb%*_ecvCh*cS86L6ro+En zxeECHWoVeQV)=-nvonj=XMcs`F<11dQDBQ{n$O)}LiS=Gb+cRlYDmQYd%zmyH8ds; zgCgED7fgJu95v00io2^B8WP>Pi5ny^A!4f!0+;zZ?? zW%|a;IkS_KW3()K&`U!jLdbRK`Dtj5JB_?G9MYDyg9ZnDIw49&6*82Go{ef@; zfwIk=jg6NA4Vk-BU7r;wJ`jq&ddWl_I~hh{VgU)7V^gi9cp2`h?-f;2_x)Qgtr+gY zb?BPUO@Cr%Vb^XB;}g5{WLK=o>1o^%CfAC|b7Z6d2{gC5)RHv;v!%B0l;W5ydMRhS z5Ai`;dNo6LyiSH|wwnI+S|Y#?nF%vnZn#N*YR1gz@KCZh<$SG3_?EP~ek?@Gg&Mt` zjkjQN9sc3&`%#i7LKdCuC}G^TO-0f1h5dsgVLq3O%WWgatRJti&lj${Ctr)psT#>u z6x2#qN$wC4;$Q#5L%>yUVdRby;~FYylx}E@#)J=tyPlHWwf)7<#OMHxbpxD7o?+** z*ScILD{C(`wC^Hb?H}top6t{t(I!10uIx#0IX!NHBWC6WyLnEo+Caqfq*JX*HGKT~ zY9D#Un*bCOql}%ydiL`p&HR1_)w0hgFqPf7);j)7DW3l>)bR_I~ZgT3Z<9Svu6YHWb}>i?q*g$!5A4~L3@Lf zP~e2&t|mr;pI@5uy=y@W_pM)ug}8I<^Np$wld^$v@-|n)7Wl>gbqLR(nEq?I+-vOH z;&&|%rbb3GFqF$J%IjCL&KAk$USC`9CZX0++FygF68~&hhb1VZBTbiN zbv#q>XB&P@9jjFM%;XcT$W%%0su+#+9gGJghdYIFECax#cX!1MZCxpr3S6EZUbfZN zc?wU7)C(7TwP!X@;U%;A`3?@SCRxb&^bO2tXJo0d>pf0(hPnw}%zBMpc>l=ZSw!Yb z&&?3Gvc%Q82M}!Pvt%_zb=Azm%*;X>pX_V~)DutbF)Q>RxW@mFr>l&ra_hPW5tI<6 zJEgn3yOHjY5~RCJM7q1X8|f4&>FyGc?r!+D_kQmkhr=Z|1Rjs<4^-`YI>A_apkx7owXmoJEap99y@2qFppT`|g$5i40!E3trR&Esy9($^pq zgarAZp3rXJ&p*(ZjDoM}Y;?{Ip_x@hMDDT>lOZN&WgiFY<_+E->n$7| zWjaP5KVfoP3oBb$37NV-&DJ(tAMfC%&NVh`^Kd`+d4|-)q8u*qb#T?YAVmI%`cve> zRosuqju2>Z-8)7eqajNk+12UDT4O?)xqQh3IMt^WhBCLOpbSX~u2E_`eGbs;O zztkN?aU2+$uYHN~zC^{(Y?)fcSk6I1vS)Os+ z*2dYIiDVaX68>Af_WubnHsa#r+a4}7ALiyJxY_RbdU|vfH`KI3vzzjVgx<3Z-lWO4 z`$i^&kf5Eo;Vf{ALg%JTkRW(ah(YHtVZD6OxoNMOMmHW5CZ0QpU_WeyuW~?=UDG($ zGpoNvq$jt`VJYd@?IowHYeB&kN{g~HtU{Y1$jofmP{(A(+H{ZSA#5e)rf4c|u7@-Z z;vV~K4jy1$Iyn&};y#m4jI=G=kWx|aJ#I+A_L85o+tk@bcQ~%lL?I%Q?G}KCkmO-X zU2P8=+sQ+NATjhvXvf;k+fP5~fmRML<3wK@80f2Epd%yS?~#rF$a>xxw}?!Sdf+`y z=P6Vm2hC6l9_r(zLz*K)b$ib?s8wr@gH$x+cLegRjE%J}40RRWXE9{!2PR-k^POWw zYi=Ih#N;vXZ%`&UU)ODQkP^F|>L1+>mTm*p=p8ODoOdjTRb*EZYvAOY%_O6@$#8IX|_)h~%-DNOUmZzsh z|H@3_Nq=T5UoEQU!|QhWo%NNY5_k`s?Cq^$4k8Qcczo@eERu8obF@ABOsa*0qr@+2 z((S{Z|Dl&bBZ`1fJtec_Y0fSuoA{ldcdj^gO3G7{kG`&0fVS^*;P$9-Gj4LSoMye{ zO&In#GBW1%5pinr8$6B`mmh)re;2M(+DDi6%@AA(YhjW^$j z-kog1KBs7CMkezd&)1cPx*YW)|5>8{KneE6od$M7BHz3tJkz72vPcgL7+KCQmlrPz z$g?Fm?YHp6r~_Ed5EDk9iLr{z&5-ao)~3t%0Sct+HD3;k4+7Avt&0eGoxbJ3me*o5 zm1s*jC*->D$O+>a5g{W2>=?mOvNp@Ci1yCZ_h{~x zG+<7us1JT*0@F8l1_^ew7c63kyQ_j5rx2I{MPv|yMa^R`n(>XskYUpkqTgNL9ETES z@XwGV7t-qT8x3=hM!mC3VG8Z19T=&xb3)}9k(cNH?xp>($dS7}bnCP|l39WQbS~e% z(aD9c_e~^-I;qC@CL}E5DpR77ybH=WkfT?Paz%vvKt4%(=Im9XLS&-5A`*DyY~j>Q}b!$ckoY1LH6mc zTX*nfDdDph6CZtj{LF+5!_h1B02m!4?WTufcxxyj9i+f6Qzu%!agx1yR`x5~hn4)C zs^9&qiS&odevqH&_ixJtoJpAW_{xjTm#d9Ly9l#ifTgDPXnG|ry|?$HxR+}Dk^uzl zfI+LC;fc3~iE(u?ut_)R6CC1NmSZ@kp;|ucBtycK(Mb$YoMyK@(sHR}CctJ37Cmdk zYa*Nm-2vUff!=N*hfd1-zFt2TH2Jv%ESTWNd< z)9;%3onsgd;LV=*$=m&3UHbpD7|+Z-Jw27{C?F*1sln_6OGr5=K-h8^|4x)CHtr1O z`m8DS`auqi79T8aWiT0~H@oICVWkbw{4z$^PbeTyp86_ZO!U=WOs+}-|CSdKgNd2vN>M*$D|#AOOe0THDX3%)#c_FS(oj?I7oEJX2W7*r$$gZg@BkCT=BCa@CBOq>ZLblJZk1W6(k1QJ85XQ}>$ z2i{j6m?Lk~??MC8`M|F>g%~WVme~IcF|5*{#i03f>Q3V%IGWVDJ4Hy6ZMz!NQx_k< zE(6@uqE9{@{>TTTP(l7ezqpThab>he{z^Mtl1CvqGhw)ZAZpesEMFBtmTp)4#`7leS}wkvu&E<6dg(U@(;f^!d~%emy)c_iu4z zSsACMXB8qt%W3KN9M!OB#Yxcyc2bDDB+lGgzj8zm++&!SOyJ_8=VJz$8`YMW|AL1l zHZGt>|(IrC_C z#d%>|@Hh&8w9`P^4;*cbNg!8?n@FSG{ae=5RA&gd50A-3x$o<88*D6O&KK`pzR6{h zxqMCNg$11h1kxX+b5eI7n(<~@RV*2stZ5#o`{?=G-2d z=nl(D10=+HWoC7(?enKfJbb>kgDHTt`uRrQTJL_)R^4SW5afUbw2_^R+r7B0%@peT z%wBNn);~X^!)o^TGbxb7V<+QlBOxD@DSK!6VkzP{Y6swX*s{ zLO=4`p3@AkVtWNg67BP8#qu?S4rin1{Lj^TE;kQo$OkjD$S!0r1?+#CUw|iFY?;#O zF0bG>$p8=^Y%`i#nH;tW_3Dk1NYUfwLTw|s%uIG12Az?t)jY0efm*$b*{T- zmVxWeYo`$|y^eK;gB=NvH!r-Ca!7LYF(u*V=?#)Xm6KD0y*)5!KME#MiF$IHI=JNn zF1HX3tD%LOi5ZL%-_hfp0ARlS@QkuW`zCQ13~@}CB4|RoZO=vHon7BTkHY~7kLi5O z%*>))<&^r6K>~SaFi^9(2@^1`kP(F#P8|vlCRbCmknqsbrt)&|s@+V{H!IRNGc#41 zXbF6qq1VD~JCyX4+lMuvESrjpbMr!|fd;W#R=0lrPeJ(gNP23cYc>3^7yx~KVM?m| zy_=e*puM}SguWl9L=(Hx$HGe(-MqkO+I#GJ6@#lHEqk%g(@+T6F>0j{Yua1hP|<&`cHD%W~V*Q`JWT5URaT=#Y~D7enQf)HWvAzqB#*? zgfxY`C7|i?`S@627e6THE3iXBs*;8XPsK>0GcwYMUjEwdfkdN_KQm;^w?&@SAh6b=6Aa|0#c(!_oF)!y{9l|1BPO z>&E;{0tO4NHYoHUJi=Qg&=K%VvgdtdN(N7<*u3UYf@vQ={{|*4bA64{M1~YF1fYgT zpa~5fwzRBI<0_R?!4iLr9V3ngjbL|VJ`Ey>IqZ@8rTb-c<1(*aQ1+u~!J&(PLB#Kq zm+be?sRlo+E$(mDdjdZx0NC{|9MA1{ubhaoiRq&!!Sz!B0>H6p+Zs(b4fHj24i=LM z&aK{Hg7)CnlV6{Fpruq+qc+Ic%+~U;d48YcgJT6^=7(sDWmZ~#`&F<4m_%}!5p)Yo9Z2bdEYwF=*PVQPv&h-#(seh$&!|GdNi z5Kl2-4)gj(86JKiz4j3?*{|uiMBTZ%!Jb){y%2PWXUDM2OT(8Ck{_nkRh&xz5d(wU zmjZDyq0V{)%v)YPHz6TKd1rTFPZLFCA>HLLL!*s7L*UEy(L#cm)$#Py?(~$Zf6(Ll z_fx$l%VQVpB_ZF!LbWchf`}a3_z#HR&aQ;%Q$qQxL#Sa`KOP0(Ercf-G+poA*u)l%wF~b zafSd!ols;nsAa{)qS1k{F@L8Wl8hZ8!8p04WYvna1Xzp(jdb{s@v8$M3|5<+vNU3j zt86MV|GXP5Cu9E|Pjw9V^=!hpnbx1_9-ExN;iEj>R1{QHly;PDzimq{$C3lL;NYM!4FU=3|uJ#V_>neQr&eFlqJldyEA>Yq`_bcyHQ^PY)vc#_IFSpCHH`LlW zG}t?`Gpg-c$HvC|`CVK>h@9D1O2tr4M^jEsS3yOyaqbFB{&%O^*(DAvJbzD5C6`~6 z<-N@D`{@4giQ}2DrK3*DefZ6#u9qKQAuR*PrIF)Dad$!2n}u8nx<3h_GK) zYu4{n?{|dyiYj>p*~AqBRaJHPJT^~7^A0)hNxb#j23ES>J05VVci0Rr8FprEGbroI zSUkv8!HPpSA{yPv$Jkg?M0wZWC4^e&$eW6T zx`~lh)(Y`NMKs1o26b1KzS-x5m6W1}4oK@aAWGZHD&`Q0Bs%JbP<{2^pe{mac-Vhy z-$qGC=YgI}_4%Fz4ffoKZ((kLn}#Z5dFGqCa_rI1yh&Ck^e2|Zu^|#3u85VTy!`uN zFQ7yZZjcAW8Ffs|5)!N+Mdew8x;iQwk@{MCNd-kQM)0kt$pWBz<_(j!Fr8G$kBgMP(TY07?4AL3+T|KnRP! zyhTxQ^@o4v&9&3C%;fpSXaxrSZeA~~luR%)1g(ywV@ezEog^wM2AX0|{>Z+4=d4;_irK5|qqEeOs-@2HsZ0D+=)mO_ptVlXl%V&_-#&H) z@(~uQ{{ri_5ZAP;UDWxX_IG`&)W3sr%>?$CIU)xu(Oa>~9doD}Z48HNL><-RUX|>bma3f-1@%pU0mDwcJ;` ze-_h(3XAI)8bPl=6PIxF7Kfyv4MfQ-6uw>W(?OE3zu#+$#r+4v{%|gZY9we zDKtRYEs{$}F1*VWp(An(IVRdp5hVQxWw?FHhgR)@Nof|vk15IMf$c5OdlX*fYvplX zA<^}>84oHSRv|^9a=Rscp9=^th5Y>ZEe>-BF==J%WwM_|+G1TY!OWk$xKQG14uRnK zn_HU!?5CPR&o$tpyt1T(p3chLa%z0isG)kyj8#at{9Mr;VBFdH<;xRuMPj5NubC7F z22xa7a-ihqH`h|EK9eG2e-3CH?fFRq&=N$p+_5R{0edwyJ3)Qbm3qi;5W!{H_H+X$ z^#gcAx7d1jUtpV};U)u<`58JnxuF>~CpnW$wkB}FqTvj0pMoCu+WR+%ZB3QWY-)75 z?nEENJYFKR>qHrZmFABu5wWv>vUv99kDT3yg3~2A8cqd2sBUu;wA=u%F1D~>aJ@RTF}5x)&doJ`p-Lu3o-l)y z;RR4aui!_b;t$ zRYo5KNsxKzB|LeU8JVy<4A#yq)WLA@hK_4Rt@3!On4a$ZXjb5AdQiQ=8Znt$ZoCR? zw~8d*7FKHdY+n1%_Xo>|U|x@7A?o`X_^K--;B&0aPY(isF-ApN^s{W7hu}7u1Ryww zduV6ZJm|c4Kxkrk0}*6p6eM{U?!@N)%@|07=F$B`a~$K^5C1hRaD@LK(~K|=q@Aa& zNRvF+VkcpB`~HLkJ+FIiS9d2PsoL;P@Hp7nkVKoQ0CXhssonT+ zM3m*_i^>pKA7ApygcWWIH8U)dN&{Z zdKZ^tS2c9N^wDbV#|%CYf8p1hu(j9Kq0jGW_FR+SVZHis^TY@W4Zv`>p4oz9v31^j z@89F26jRa+u5{%t`a9ynrav96bty3DfnMbfi4d97n6a*XZTQh6wEno!{*Oy!77@gq z_&c$|Nz~VdXg*9tQX&W#c2NsmrsCq!jq`jSA9gpxOUY;0+372Q8HKyJF+@;ax+Yhh z5CRG9FQTF;2mKK>RdFe0mq9fwxoH6!Zi6oo_~7k|qo~1pgxl@@1;q0%u&3Sq2zg4~ z6E9e_#KK}S1;;1DVC;ix{24Jd3-L(jpv6`S*apBa9}0B1J3V%vg0S|W#vuY4|6fg9xBHHy#|eV z?C=4=U56hUHeqX%uf^R24Cu_m{Ozu%n+^wMPWx~;ILCy1Wz=-R?hm#ZvGc ztSVLRF|5|;!Oibam;ueHoD-Y0xIqKcKJ}m+RSe%#i90gqJ?uMH)?9*RRDpaB#^c6e=GW^hvFvDC1reao1Vy(E%77Agq6V`_L*`*o*L1fR2nLx@{*Y@IoMGXJh+(;-`Kf~X4svaaGr7+J|(O+7h>4Xm3eHBD(GC4l4w)Nyt*G) zU(XoE1auxm9J=49&Bg>|AFsZJ6L)A{W2o#0l?Rw*~0`m$pC&MKv`A@f}!n zF){TB0!zgT&QkLvC$+hhf!i#Y-A&j)=?;*q9mhilSzQ{d8&k~iN+ zF_#N(dp?7JMXtN;+R$d#eQhvz>Jw+1=driCPr&C+fY#VN*?pdG_wvsEXpakY24Dm1 z#S!6l<@jSqalH@Bv|{t~2lecbA78~nb)X*t%=`B^a+q`I;? zIX-h&`3zo|12_*{^D17HO%FAO=owkg&p!j`F9EMa5>4p`utw?~$y`;@f97IVY8Da~ z7M|LWK*e~HW@c4Vp0$1Z+On*;UrOfj;Vym&Dw;Ab{JV^~UIl=!>SC4CzL-KFwT576 zAS4nP3JLOfR02tkcV30NFosyQ7`r%q-}b06{6B7Hjb$T13=BSNX)DtIW592${*|r? z)1Levg!ES6KN_-rF1Q>*I^(z~l|O<~k}J0YggR0QEIK-^5NJfwsB%icn~Eunxr2ZN zR(9C7{AvUQCPVO-=b(Qgg*UM@QBEnfRIR8f5{xVx>K2da?77}(&-O2NaypH!gg`)} zwEK6CEtexvO-yKQcY5sK6c7{c{9UY!X}yTdYD_u)Vdkx<)6VeJOhSSJLuQ~{lIRrh z@g!2DBt_ATONTMGN<_ZEzyV$RRh^2cghJ%Z-0N<1SThiI)~=)~1E{pK;rK_=l*6Oy z*4yFl-!n&Hln`KKW@c)jLuLa{+P; z5Q!MueHKRAH7imGi5)GZe7oL9%Iq^B7 z)x+g5I`;_5PauW3{V{WJt+tL?G{>1=3rGZR^*g{KN%$eo%)kIVnD@HT>8-B8xeeFB za=5!HpESJQwYPCAA@@-koYsIBsK8@#A zIE&_d082AcG&zmNo#D0?bg|VV07(Gctd-UDh&Na_Lt7An5z1CqFYkFxekl^RG)_4} z570q~?{DHRc$P^S` zTvuI@+-)GMfl`V$0faluYiRd8w{wypBffk6m8z${xt3=z%M7fEh+C=yoHX^2QuA$F zyxfE;0@lMmKz!Fzppj96FYsAeDafdJsIv2m6(3tX?5*6)b^e6TY;CO{$YKg~O`J1=ltHJ&j6sNv$X)8dzCVnfrHbKtTY#XFJiTp$@Q$d=?Kh zw_OgI8QFMj&u2}~r1}^#2U1T*1j$@y{nXhoj-9Z+-nj$*>YaDFMn z*1CudYJV?YA_eoc@%DZ@|M4U-wb`;My>uVYR$LtEery5j5Bxw-qZL$iR$y0UVGi>a7y14yd5OkZ z3$!d_EF^ESSe_npU-ge4$9up_y@Ly&C09NRMGY1OKqBa(2Rx#~!T{kpv>({P{w0M* zU6Yv%#8H*#ApfOpy$eG5Z!3!iwzBxS?z>Z_*fJy#-}Y)alz_Y$;5nA$h=UTWGJCLe zrLHTZomw>e;j)}n$lYn8d!V2sFBMccD~^BkMqYM7ez^oY)o`@Fv7n804jY^FEwU3F zFd9_W?xSFR*f^(fq*fKtzTe-DRG`gM6jhp>us^u~@*@lH)Djbtv>NWaZxIn?JaMVeUPHaxjk++K%1{GYAc-A~c9#eB!(lTCZmA8Hd>-_+ zC+}3b_4wRL1^B$Wf@9aOQ3M}8AOPVGXL?KS&=OeeKX1ta@j>2OFg%%%QAiOc*W1U( z`)`2iUcd^gXeT*-ddyF}WUH$a>5Eu&zdE=x>a%nG*`&+UFq(XMHWOa3ut5LDV)Hkr z%jDK#;WH%z<<1`PE(K%M@yVLC_Y;HlN~6z{4ru@HF7_EFdjSh{bc}NEG#4%uL!iYu zKUcIoJKxIevsOwf0$@JA9V3ZZC((Cq#Sn+-{Kw7D0QfMVy*^mtQ+0zwF5P2Ot?e~R52lnuH{9MAW(Wufsui#QR`qL9xc@2seO}>&vzuI{ zMOaf`B$zg7-^fwbuaiK-mWzqVNc5EcZADa9ucoDKyeV*Es$GTUG&$6T$Fa(cbt{)Q zX{pG#YGiN?2hJVjsGQAeMa_36taofe&j8Vyp!0Eec$hF#tSUJS%oC;+%fFZU62~Vd zXh01@!aK)OQU(ytzN4W2q-a=t2SJ@4|%PUsgLuRUxahrc=;12A1~#^05(5f zGz_-uCF9H#cy&U2Q!?wh@csWz6wx1w*2&#tqQ?sa zuG5nNC#kUkXALH2V>MMK2LV{9f+$X zxNcJD@Qx{jTJy)X_>3?C1o;|x^4jVx6!Oe}DKP@wW7=BHd|yJ)Og^ET7Q8|vfd8xi zOm8*}2W)_J7K#!X4^p0K)i~Ugx=;=P-p{bHN{6|FC?xXTI#y?aE&%R4t~4ogL=b|w zx0}PI05TpI9yb>P51Os@4Basrl_l6Zjvt(?SYa+5-uZ5B1!$>2pV*)5CTQRQ0>H#K?6}^4 z8gaka&L1Grlp5_EY@wu4e&95|37UG#REKZG&vYXOCAmb}PSC)F)amV{m0P_qZFn%6S zj+q%2qN$iPTkWN4r+9z%r9yL&Lq(lT48TjH0cT%ywAC9l_u0V-WoW()r0!GdnmNz8!P{8TFa!3Y68SY9U|lX#dG04e-`!=j9)-|iBfIWCl9jx z{09@kSv83L#vd3?zlb-14*BlzG+U{gTCJqS@5$Nhd>B1ldh&TMRUtFI!!5L}CGd;+#Eb)Fe+S*?^Qu=BTn^h!J`+H!WrNzqD{k_y3by*_NQ992?b`KcocG=M=wrjq4RukkZuwT7Jc)nOK9^y1Zte=GU2O<~nL<83- z5Wqs#>Xt9f${H)*SL#E%Rl|B~Ey~;RbnAJ02be?qp}oYe<$HX|aVlSgkUe4VM(Q8dhJbwNts2Kcr7=_h*4hUH|uz3#PsE+(cd zEOZr)67YHOM-IkUP!!QqA;SgWzo}_~3hV*wS}*t8rJ3pBX+XoJMF~JTfuTeL8@RSC ze+f|!Q9(RQqIZm1+FX1N28jSD1)^%YaJd&ygaP7Ux^zx)UD`Jl1tiy4O>M=G=Eq~^ zgY>FcqPqkyMRkd0dJQ@om{2nQv)vaeNUS8t*S+GCqoq z*bT(h)l$*a*}pb0XtDS{9i6_}7vS|-Ii&^cSp!Du6nw?BbOcpxQdPjCb-O?5oJnQ@ z+U5P==Znj=t*mG5C13 zq$1bRzcSNETRY|Pr?JdOPuOqa+Eq6j=Ru>Dn-4YI`Ji16%nMYH9Tu*tasXJCWQcoi zMR7o

|OT26ipGaxS63gVEp}kX?5bDhSv0o?>NHt-R0SP*$*90C;@e-fv=7 z9Oxe|a2hWG6E(80$AC$?xzO{*S2(Bj4meK^fOJmn6_n>MtKPt=6;R0A_AtOv_LmnL z=7-`anRgP5+MwUqc=nsv&)4Vk;Fd1Jme@+$&Atu1*67NmrSAx$cOn2v~RN! z`1s%*3&LiR7)rXm8?kCi@$&$gJBGj+nB{6(=DA7;?6-ib@uyUM*F!UC#6Wpb?UHt$=qtBoW#gcRI8pfU#UkC!{fxVaKvti1B<1d0Gq z&NA26l6%g+jmx#M9NIn|(+K-O1WY~%?~wl?fKAZ+FHqtcIfLJ8kF>HCC~~_G7lvjk zDr&-{3N7}Er~%<9Y>0NBrUQl?0Y+en`1KynH&YBYvgKg@1YhCYX*SmUSU%TtsS+5CD2ao#tb(CrB^VmjZASVy5#cgkswciq#^+V3nK&YV!QN$3$fO+QPUxLVQBsR~KHqu|4I3&(67_=M?Rc{Fn9s!y z5PdH5xm=wJ_|V{ljBbW}J>&aG`XNonOinIb*U>()0E|2{y8<&|xT!Zs%U~WmY`mED z9XGPQq4y+ZS>MPTMCb;2(J#NgjR^Im^ZFns@+Nq1L?9H z%r`a=+7H0hZUZ2@R73zZgkkU_o{Pu;ZA|R;&`${0Fnjx1yE~iV4)-bc%fKO-CkWC z@9&?Ux(EnKfUxkCE57K_D9~uDx6m@QvYgAxA#ql_8We3;sV`lqnH4WxpQ+y_8Trg> zdL+zO!;~&PJw17icvLDy>aF%Jn>M>HUsGg%@v(zfV030!H$IV}7c|Y)1whwnw;MxN za{Ui*{W9m}f1u4>izuFTem%!nN@vSzH5-n7?N7K8 zI6!K&WLJ~MHK?C3SE0`A+n?CW(*aqfa&Ggpqt$Du6#crTz*l4au;1C*8gNirk&3@d z3lc?pw)@U*FdD~Xf0R*<{Xis`{oxJZz!aRp_-Dp7(-yEY%q~cgLBrD`RsMNQi;r_O zy{~86=u<_*7}EHDHFnqnK9&miOWB4dpS6d%rt`1`o}V@0M8_2if0?X(r>b_l*yhZWQ~TbOMRmSdq%Ezbh|N_>ugstierGw~I~7xFUMa zdjfC)0=5O!XF+C?QH>Vl0P$5mubk=vR0S4ups#;}-l{uHSx-I_*Im>A^fOwqHA@>0 z4CW0AnT-xxFXxvm`|<^Va-6u2LOKBc@7{d_m)-Rxth|0*vo0p`JNU0)Js+;923T~I zgM$o11Mt}V!bh4sE-ud6sU)aXz(!u39u6916FOY(%g&_nd$Bw@2$MtO+v(UO^BucvV-s|E%18kAX$|gt;3Dc$4X& znLY=hgsQYyWx_H!3Je)0FL<>=U_aV+}xi;Rk8j;8&S{7|DDq?adDUsNL(Wn*sQ&g z8*a|S2qI3^W>ZmxK#V6ogqKt5IOEo}SCm3Kf6XfR_Hg7aQlA&MX(BVUUn&#I#F>^6 zUA?~I+hvGu?CEy>`>O9#BqQfRRG~p*<=k7-<#0qHGUOsy$U&C9`uty z4a;`^Kn>?`G87XmlF3pBuch970{4RCH*v7x7rw0!m9B3Ox#9Ju3GcPuPbu$U6$PQj zz2X4R5YBD1tk33^A)ya^j{@%_?&z2Fv&>TU1(4RibYgRU)#*Fk>*?^kV)Ok|`fA(Y z*wn%AVQreX1Xr)&pWs;HMF92>SZ%-;My)NhxX#JJ$OzZ}bdo$D5fC~0Hr((ca?pKH zE%t{CM{7S6-zU;pDOMSWb!}90rp3g-P}m$-z{8%}tl;Ui9}HbtiHdX`CO)OLf3B;` zHA)nZih3aKWO^y+ZXhHA3Kr$=;;o$LwfO9hDlxqPKi@u?;NUxp)e0ap z^}M^he>`e~L%;-jojQvtes4kk*MFtscbnb4Z@`fZHsa%v$|OHb92T(3L(alYg52-& zz{w~rYl+v^c8->4OSjnaHoP-qxm_;a0t%pX{@hMvF$n!*wmVbBEl+nI{YQLd>|5hb z7T0u|4@YbMGYO`{Aj#IIQje)XnU!w4XiCF-T|wOK~mi>-w;bH%YNOr zFGY45Y_4$d^Lxak$FQ2N{5`QDSxwn`p*M2Hs*_`g*i3ilrJsfma|`o7PM8@wWs`DD zF7#_EvX~E?0iOq_?DmqFtZZ{LQ=#gk8Uf;eSu0}yD{~({R-D6=T^4Dz2IP=oJn8eA zeQFx5)M6Oy0q19@?q5qa?Ik)78b53rJPi!3w3Qd$tCPS1n|}XJ2xO|R_VO2b{%R;9 z04;{B&?^`~Z`m!@?&^FwdKbd1-r;LrI{ONVz|^e7_S(h4=)Jr&V-YPCAYcROj40!8 zyQXs1g~G&9IjR|HwTfuTyu6YhO_2((It8cJ{1CwhhvSb9_40fCxE+};`d?wi-u_Er zVw3=KY#fqJF*KrRNp$@D76~`+jF2x-7?InO0R)&PpProzo@>^+P*)}1+?y=?i`dPX zBZ@EpqS;YtniH*%uCh#^=-qr%-#{noYw)+c4$yIPqI>x!Ts06Wd4BFdzrL1|M|+&; z^-E#OcfZPSvp9LS^Gj>Jhb^tV-1cYg`eQRz8;_&XM#zf9JG5 zJF}>;;7t_JFTmf_%tM>8!k11_>eB;>W_L$)JfXY1W4DO5x;jG3h(8|$0%(SSh4DCD zZUL}7ZY$aHQuGtI^_DappuherVxu&6@Yrq0uU>of_wcdQ)K5!iGCf*qQ?CpN&m`(V zkwNz-M83hfzMa~V+t?Z<er2Fy@9!)cv5B-6 z7FJ$P``>Pg%R@_RX^=4j5eWF#&r7%0E2&vA1`ngM&ezOEg~aa~Z#!bb!n!3=_HiY@ z8B0OSc)S9lp~z7}nma#6ZS84RRv1q`H}Cd%5sGP3L~gz<^X~1$(P7I2De+!Yw3dY4 zZ&b5A<3XZ zHg=>GPE9EmyPfKr>he@=y#-8&@020#3kWjgwW=o{z)d7yY7EgQ;{3(;idCWo!5+Ez z+N-H>`IjVVd!HSWbWwTH?<$Qgc4}Zx@5Ev;zzu?%#(l<17^;`*%l>l+n*Ds?5iDr>376$&ZlDKOP-IN^Ta*zQF1&A3o z0t43nC@E`|w1(u=G~Vou=UVhe4oXQSH}1@WlOOgi{!Fp9SK*($f}C+m+)tQdZ-7%R zqMR(hMEjmAe7KNNwJyTm3HCeb@=BWi{@vE%fvLE}eD5$gr6@fj%uj?JyQQ<+q!jHy zc;z;@Fkt^UBFa|T4jr@75kHlvf`QI^yFDu7;T$CTW%C}%lG9tM$J2(ayTilb<8{S6 zE)Z^<8%+aODTDxFUkFxN$uz;=z1GP|)YYHeApgQopNN?ZKp$dtF(cz~<>)TPA@E!> z5%X=2-c_(4CO{Yl5vTU<z6P`VAm0l zQfq9kYAyxtQ3xdDyUfS?1)^694DTI68-J-oAcz?6H~cYCPm3sd94^vsn_&e++j|#q z@cF!UP1~Wn7&Ua(wYes6fSHB;+-IB=6SpSrJ6KT>5wc1e3No(s<4{im27?`7{voX_ zS64u9=iBi%jOW{5+&T~QKPj@c8S6r{!*+aGIj|>E#2;awp7wUV1MuEm01`;KG)?!TQ>YO4?WW)L4#}Z{YTDN+KtzC|PkryP|)QLx`y1&uKyt94{`& zdM`W)Dmf`wxYt)&?i)ZFb4RohIi21S_LREV_8qta2?9$Cp6H(Zrh6@|Eq|cCo+F@* z{tifo(lSZ{-H0ii*#3(32LYnlUsunKtkQHjEuH1e%{|-%dlzz9uwnfS>Z+U3EVFV8 zXP3r+B~Yofj4XE}_v?V484SOv3xOAPoMEn^5uTr5uF_vLaBF4R_vB=9R9{xRX+fB+ zYhRDzS_WJs3@U#o%%3wAHI1|U@A+PacLF&aaVEn-lqs+A-c(a6yZ&6;{bf3jv^aR* zUhwN{IRRsaaf(>IE z-*{CbBO_ZDM^_2`cfJQAbT^(X$6E7ttnbU?#(gmlBD)Me$cF+C-v{IX$apG zirZeE4@&N^5mG~=ZXmOm9smIZ5J@HYdvI0Hx&^Vi~TmiO{xMqT&+h8P~=Q zUz1iF2aIt509EW%$84k2&a=!tTtkavAB}?GyE5=aRUa|+o%)o7+;)xh3qaBMjLdd3b{nV4b zLBFFt{fYHoxVz{-!iY;QZyNyJd(Gmn7NH<$c|Nxfd&%+s%HaAfi7`aDw@JYC&Rzpu zAI*^Dpp>FH{@-qJPxOLbU=p6 z)M?jHjI!81;~eM^uKX&n%BDf8{QtRK5WFD0d=zwWzNk~!RzD;tBzxe9PArRm#Y6!aCcMwYEgwAzaN)=4_ zFaURLddZcRmL2@0MUTyVs$&&kF!(iQebG}|s-RP|G}L=^G#|SOb0&cAguW>bucS%} zj-Si0FyIHUzBuc*w$`!QCg6PJ$@jkIOpp5PVlO_(=SlDJ9(i{HPaYQ`SlF43l8lQR zSgg6ix)5lrA8f=fYDPoh_-nR58yHy)3j`uj+3fCZKVLeO?VYP2OE6S|hdJF951HB0 z70BFDPK}%{E*+GWjR3ZGebTA_>gsI@quoKPTgh8a+aV2)w+bw{shAvt6R7rRo?uW_HPrx{A^!{r2>}mY* z>`UwTIR@Z@GS6C>f1a|^|42kYYTUg8$U@9oT6vKyKnwJZJA7g4gRaRYCB+Xx%6H^# zKKFN5PH*sY^ye5SuCG5@xdpcebJex8ljaSw>HW(WiG%!4IoC60R%?XG(9f2h_~WyQ zBzu!XQ(9h8!)CxOc)aSJu0hY8kSG%frNPA=nf_cVN&4_`M-@&@aioO9_J$5W##=;H ztWWnCusOr)rmYaUwg#7B!#g#&ITiOU_DgBF%IeiQDoG{8_M(DvO-FIL95Va^Im9#0 zl?ta+Re;lXu%@%BR5ky6Qs3rp+hsJwB*(kL?NP+A@cRqgF>@nQc&c<9tL?1}Py-^4 zemnO*%#OS_8&m-7IEO)WFU>K~hU0c8^%Z;#^98WcMPdmpR(a_g?h|Bnvso21egC>- zEjxVTkWImIyN(F0Jg$u|r9C)o$l%#VMpKDN^)OwuK@fR`r_p`^tUv9Qly4sBA3|Ihx1;L8GyM zY#l*R{m4iR-|}#H_*;5i9X@MIa61DM;c=V2)k$7|if*L#aU39x1Dw-gaRk3Y_**1+ zK#Fs|bMg`df0$O60}0;>&rqN_S541XGR)vbBH-5XX7~M!h{r+fI`=E6gQ1|WpPGc1 zK2S^D!mNOCGQT8m2QZ<0j+VzKR6c!{!)Crrgv#y9VoDd|p={Q4q)coEXcD-qX7G8A zc6Q15hdzFH`=SHG8G8v5x?XmD~&Yg@FN7KyD7t^gZ)UM)tw#lKQkr>IsQ7zd?f8{}FZ8QB|hz z*FP!(0s{c2(k3E!_Ytw*TUWFE)i5v}>p48?G0s4j2=}~? z$8^T06%%=OT!;<}S9hJJJdz2;ioaDPPcbWOFG*HJ|G|@sZQuOwDUTEInCYkq+-1*a zB_i^@jTll^c6Z#x_HTqzLA7^`0MR!v_Cu$n%Y0(I3i!uZ@!ZpmO)NW`oiOrV^bF0X zonO%f)vp_g=xdhmMQg&!AU%0al~+g$>-ZZ$I#g6yu>J(%f1E2kYjTWk$Ac}M%V zwgqt{&zN27kmP%?@sVMBO^O*C9~z>et(nhT{o*E$SI9l+WYJUv@RF$%Z(Hj^t3e@{ z+|Nsgve~;`dw|YXbuTpFX~(_4C+UI{tEiqMQe| z<~@(e^2Lp+8@jD4goMM&N->jTU;K$1T(|2LWD~##Pwm*=2NI?ROfnS$ylTV#PbiU$ zX>D!AlTiYe6Z-~hp1$}rcFgN4MBlyAU(@Dnrt_`VVd4dfQee|k$+s{2veBe`Y-|;f zS@?VG21}2~aJqHhCY@rH)rgA)-SOU0<1OM$sRFtu@l^)XrwcR}f=%u-T?+io zj`mBURFBDB-vb1w{#`6lZ441|s!75}@Q?x&2id>ior`dq>$kZg6*uJ1hwn*xgWN+S z^2FS)lnkuO3sN)`BC`szsRy;Fa19=}&T_e(pOkrY(JDRXy(%f z&i6%61+GqabbTg*Fzy1G$+g(iF-RC9^vOoO%R-ozfS7De=6x5ZHDhKC6OvD z;6!qCnqC#3>hjhDWH^X=nll8zhZpy5OL6nnu2TSf_F7G{_}_qq9tJFzxufyULq!Dn z0NUhW;F{~Ecfn$s?R$oMI*FrVt{UwX?>VKF(0K9X@_A}bB{}6~XtPHWB`oW0P40)j z+^#H{1ld$|mV<_O)$e+ z;vb-X-p7l<`AT69BzbI@d{Vgx)-XidhKEe?rqtJ$rV2Z~Y|Iys$&clHL^ofoEH>Lz zu?=Oo#Jno-cuXvef@Fr+%ZpYxtp9)zm8|CK_Ysdn(_<+kV-v8L4}~NP*>}a-EO)KK zmRZf1p^j%0dekZuK=P>HNUferSudCdNzzi51wJ^&oa6dm1#@mZ^S5lX=&@*{F z?Wd+qOuF;;XF>jLZH1=RKmqIRMwr!gEG;1rnfz{WJGtmTM|==C+6Mcmy2trvy_rAZ zTc9z%-x(H>kzu~f6r-kIb9yqvX%#1veiQLbC6Du40$3rbk@y2M)1st&#m@B?bF#j* zfxXnl{bFLYvKOSaZ2IYC4;HVvL9Um6BIy!DfWq>R;{xQ)Qd)+q_r*T-;b3I%>?M?N zD}x>%Ueo5~(t_Xz+$MP&RG>lA%Jh5~%z7c>f3mwOB&<_^Y;0;%5|i=x=ErBj&v!b% zU6JgJ-cEjj&8bHBi-D=BDY}1?&Rqf)t1or7kfm zGO#SiUn?dHh52((sjKKWyP4(WKe8J=jA_w(6N#t%03Z0kKEA$ZL&o_G-9X|_k;~>K zQ+A3f@_7@E7po$7%$wl2lU`n{p(#mRC<3FO814y8A_!GhSYOxGu0ti^ZI=ItF?f#( zjk@I5!u&$)(Sa}Mf)NzMIcRTgf*$tdCT7h8-xgax!#>JTXhks^GL0yL#aywTC)T_& zwkYt5hh=@+;^TS`{G%mleYs$5m9YUnmwZyv7W2=bw2??x$ezEVl*>8_BwGvaaMt_I zAN^DlIa&7cdT7T>&#wpsXlp?VwKv$nf4RKL$PIY97*-Kde ztf@e;oLTE2hiO8njlPvtV*Q0PXO9QMDz6%N>+demeO6PJc-}#k3rA4?d;YIoLB4Qc$oqM83ee`4eSZi?gA+bZBfqUXB<8FSp>) zyRu?#HoiSV0_UTRhi;+)A`~?zTy9s#9}5!dJtG~CAR#;URZO|_^qy(tb^;f(<1cuZ zI%B@$c;D5OQxY){)KGOV0GB50aK|g#MZ8tUCUmTh&kMCdiC1lNvK`xa+w~G;fS(2D zs&(6nIe{S6IrrCTx?i8Vl)a+4!L4Myut9Nqer-AOY|+;xNrF2uBB1A&(ANM<6_4fp z)sD`H4#Mu)tHsTP8KghEt1Z4X%7p|${*hbb>nn@55wIA9lN=wL%>7^`7^Ke7n-1whni~b2c zz02_u6tymy43kk9A<1&@zim{Lg^HxgWiOT6Tf2Be8Er%Uyi`g-NvNq(#q<}q~wfW%`pR+vk1wrmgsFAa@!Wq}i=s(h`*IMtIEKCJ6Bl$XfaKK^m zAtOK`;O2e-%HtQrD_Ion!w+yZF#YjRg{6@1`?kDI8}PH+7X#&0Z5sXWz5eODu3N}n z6Tq21~dGLRo?2br7RasXREuIO|FgpeYxQfhi?s&Fn2{`@y z(VUiE9NhHI*u*r{&(E)``=CP)I>%RHeZzx$q?~;Yzu|TDl7U&j&cz z?e}-T+u4=a*|4lQ>+M|l;?R(={ zEfdW;DJ0X4b!E$~Sxa+c!e`D>Fz8veN~A|aw;mWUp{I9Otq(~mxKuEVI^9XN4Y0`k zS7mTXa^n2+r?5nfjuq!qOi{~Z`dM^YD|_%IXS`}SA{-+XdZc!rZR?;jn|{PLwb1%Y zZ&du>!-F~-4=8fW3R0#V-a1kK;Y4}cr zwx?d2Jf+{7scR0u$=*43O@7^XAM8cg4|c}-CnuY$(brqR7KFv5`KGQ8)4O!{N8)e83#ON6mhC;=fLUXF8vv?S_0Fvq{70qRq?nNe0#Lyn3UT&rz3YxJFEw%)dMb|5(a#q>|>fSN}9Uo}NtVL7|? zh5=wIrLD+dWDt!|AbG8zB~e}~Pfa^E-X=TSOm)~&GK6Ire~R>bc!J@CFe*x)rlmhi zdV*@4;uZ+S#_;dS@ZX?KFYdxoBU*;09fRh68V9rA){SVAZhc0LN4To zI5S?kJu1@oT5|1=5rgP#C}LD0z4!fb-n`c^EVyu7rO84AUcj9OkMw(z!v8;Gof1L)d}L%+S^bJKLYh3?{Fu9<=toRuy) z^my$iVl6ipt59R^9nu_i7P3N zH^39ii@*l}7ZQM!p(X?b-!FsW=5UmU349l4zi(*rxw**7@^C1tD|6^d=E`Wl0V{$l zqr=LOw)5p4b6L5&)4D-#+XswI0hE^Qa=Z<=4m*iyETU;(NAU=Sj0T625h!p{o zQtdI0@vi=w-ZEX$ia5Tb-KB0y)6p)KI<j8=`9S1=YI?cMPF`ijqejIWWLZa&$!u;EF1X!yw196q~>^6c;Nvd)|QS1^AH zm~qP}P?@_&Fk~zW^;v?(r6FJ?bF}XC_i*MHmoJ@fX~MT+!(nj~0mNVoOcd-FYDF7l ziIm#CD${IMEscZlf!9_gzf{(a)(L>Uy5|EF%!IKbGH*eD?aJ3ndCFp9V38|CMHW_7 zl`Yhy@9ZSyG9CHBtgGJxCJW1^_wt@*`k4 zN?~}DQy>psyT&Hb836}wO8)Zv@MKwbP}#URT(Q3t>a^_pYpH#)8J=kgoRj%@c}ZR zy9^!JNoZxeq0G$XmreZj4!moY{bMCuaqdq9<{|YN0TzHIdm^k#dh6@3lBSx5qI~;1 zurR$)d)L4JOA zx^!P3q^m@GdxLlugUB3E;uEh@A_^F9_In>&ZBLE=PHuwJcA&Nv$_R`^{)_3RuN*Q7 zph>@*$SLQ1uc4~AxHu!@`geIoMhXQDb$W7nMpZr8$5$a37!UxV2l1{yl8Scjm)hFx z4GzKRwwlrnit8PEn$M7o_ot2E#NYH(F@Fa zll#S!Od4I%l9LsBcgpG^T9C(Vo~kgY{&_b^-I*RWb@xos4*1(>*e#-}U0Y<)_%2UR zN~-+x6XZte1mL~|@*14KSkceR23v{Lh@?bfLpX9`J${2Vz9b|x4mN_uMB&21z$-wn z*j|-q8t#yg67#+I@QNG)Ofw3$KHo;~$jL9|b~>u6G;|QME2})sAw_jkZIc(J^Yvxi znAv=Q^W1m`Sd4+4574|)4snc+#9Xh)WXZFP7^yxc6(qn8-WeMLHp^^%zWV*- z;jD7LGaNM>dYu6HGI8T;>Bz21zW4FPoA9tARWtZZz**3{J(Um|Gf%7kRexbkDJmFd zQS_9%b9azv9?lvnGfh@jhcZ0XXKYLxtTKxTNZ3IB6p-{f%RRM~x9S`eKA8mxf7u6G zyF<-ps!TfdOJYn++wn$1A4|(GD*lV{Tc!J-E_t?XbJ8I!>$WQy*2h=mLG3Xi?=XD< zh=y0_E!m_~#x^p7u{IxK+x}NhWN9f;i#Jt{cyr3*DLp}qdPZyQ15~8vpKc(247Jwh zq`eM)`&wN~O;JNdThT(#V2g|Z&;xl!)B!J3!ov1v1hd z$KRDZ@@=>$n0AeUD?9=dsmv-8x_{AJRBVA92`D_95#M6%e`k_U#gBz?RE?qAKqm!H^<5T zUa4Y`aD|s6Avwe6ihH(}&K|r%M!@RaqfylzS6c@eLj;@Pyl8D%+7~# zT8Xl2ZGj1oH2+eDU}N(i?{0rZk&YVM!5q0~cbARbmjTya<4L3+JJrs`B*>upWyx-T z#!}ReE|Yv_!~mGI!G(oVJ3B!UzZbeiP>lme^N>-C)oJy6eUqpyH_WkZ)&^gmm0L_c4c!wqq zNE5zfJf?3LCL|XXud^eqtE+md1XAX3A%``C2{l650<8e&^UCdS!Dp6JRCM_+&&tXR z=opa^S*Ave6U7VdF~cxl1EPxEst=sQA_hx?qj`KKn-xjPLNI$qXJJ8qK47jn{pky) zuR9L7>R!ji$yLPx0a6-kk=<@TylfLUkDd1-pVIcfd{rsEthb zZ^#tavjcFiWD0hKr(!1+eAiH(EvibM>Di*`So^0ZI@kWs$I?j)JrNNpW${7eOIlo? z52)TRZX$LE|-_;K{hOmWM)OgUmG_)H{ytxQbVdkWxZHl?%g!wU_KFwnzu4xoJ}tJ-%=*4EV2 zK#&J32L_7%_OA2E>V_}XG1bQ(k+r1rb0gcYP7n6hM?0AN!5V(6EntuE*=yc|;|j|+ zQa5S4x?F9xw}21=n`DNkV5zDk31}{=fo~S}LsG6+mvAlIyEvv7xW$@_(? zq;LdR&%zGXA`sxp2rx#Vy~-}w0;9)NDWHRZac8cfNy^Ks@Gb>wx_WvzvJeS&Wge+- zgA#(U502%WU2B7*qrsD%bSE?*U;RF(l6pmQW51oy-bz_ zHXOtr<#9Qe61$P|@(J*|O!x=r+3fvO>s8+H78GB;RfBRH=8Pxx+FmL0?8y)Ijm5&zIQNn8(7uQs<0m_M?!xq6aXTP#g z8z`DvBb3NqHiC=y{%phEg+-RImA&)+D778KW=Pyq`nHGOH#vEMgtkOX6cHH_6OFw+ zzs%(34GRAq4!caSqf!ai36sB8k^wdgBZ4+4iTky>l0bb>i6{RvXM~?IPQxI8&kTZ8ul~hPADV!bcO#~(VbN^gPNl?UBbKD>enfXR&10eye zqWli~hb+bA*HPs1Kq=)$LslV~8S?=dkly+dWFMJG_~uCXsHtb+(nMbBwuW{qo{rXw zQPD|ValhR_+EIWRQo1CtBA8Rh?6;|*z9bSEzU#8Qy+np zh@h*L{mA~XX${9+7{UGC)5pXa8tyhXM`w9ndwQTSp+~7j*`8@>a1t`jK*m6ubv^Yf_3%RdaGFD>OE2kl(Ljldx}7M%;e1G9 z_49K?K>=7gU_e)_$i`2dt*1PZjC4VIg3j`OcWdwW{B0N;^X{n% zLV*QK^d7Yee#ez(kooo@OQEoY@!sAa@rGc^Vl*6waNX@WxW1vTvR%+Je5YULdiC*s zEd1PAI)fSBSk)&d0yXaDLwSr;hRyZP2OFns45ZU7JoelNtEnK{cru($9g=ytMFtTA zC+k1l;dG1UNyhoLyL;*n{IF-wITGuwhZE0^q}9F;O>}VW_G}jK;Ui%YAFdrT1SY-R z>5WJ#(9yH7Sf7s|yHZtqMxJF_G#Q2X@FTfthOg3aeTgx@kYi+I%??{%-^kcZ%Jrct zuvLfJ3JYreU^l!kDdJ*-4- zGBE5vzxvf9Eopav^&%xmg;&dr`YM$#Wy(F-giGBnLlQ1LYI-u$*CL>!iOv{v=mCZCSf3@R$wOjg? z8~8#3J6q;=1e1#jQUt$GYPR%&)8XPwG!U@61CK+hIqu@3QLnt#K_K8O3q3lJJZgR8 zmvx~lr!P0x!dJ7iW`bU^2|6Wn3!{~M`o*-2OSj)Yz$#)uMfF)W!S?UcX1~pngu5q> zcWOrM)Q>SJ62SuoVX3Sy=un562fn9>U2@mNHe6MwijI*Z!8f11$7>b^MkexmbiXj@1XJbj&orRRHA;!!187N=_CWRM=v1pg zOZ|oA*0h`3nRZ|Q+y5g$9D5|8%fSC6q#LcPBdt=?4 zdG*1&fwA6x!wCLzGCxS=a!Q+j&S;$v^-Q}Bgi!YuY964Yo95(7`#4)J%uBFW97DW) znr~{Rvc45)F=>DO3LP%M@C3T`seJxfn#3$9E#_Iu2w1&3gcxVUQs=tSaK{C&XQdpp+ zt_5sQu*Th-uQdwJQjny;^gY;E(+~Xd!o?xbLiU#TE416z6fexDrvS><(s}CRLRqb% zMLtci10%|T8NP(ZM!>ftUuV(*m80f)49UuywOE%Udxj{F#rAEg=T7TYd-Rwj`&*OR z8PR{JVZ%-kWlKQ-TkDhElf6GJl4)2m^0dD=mL{vK7^X`cmbE=fRLs>4r5Y+7WC5m! zukBAF(i6pHJ(3s5l(2nb2g)1{J5*z-{Cs*z32w`ytHAU9{k<9o^SI|#8MS5rpF($^ zjM#mYQCsx>U|UqM3Iiey`W0TNux4aDFUS++wibAu?i0l ztngfr;ec?9*#CL&FKqSa+aOr#InI2Jq|68k=Ubhg0lNON$ugMWF zsMdaZ=M!`M)ReTr~q#YH4n_>R;%NvQ>35k0r z!=YHRWaPm=m~62-zG);RPS%+phYNdYuurzONS`Jp+^fn)d4LSykQDR3l^UO_MWmgo z67H#5BO#JBz}vtHgT)&kR(MiG>D^$OHTGzq0P)sLCp)7+E-rkS{>kmxlN}K!x3dw5 z1cs1fvghy8j=uqST^7kRFD*^-?9d{bnU9Ijt=TUcY*i#&HWA6$dBWiscgxC7B>+%P zOtc*@Ah0vq@?58=6)$4(6%K!^=VtTFa|P0L$t!O+oX)KY)z zRBycUQ(y4{8q4!VrPiQs1~B7xrM-$?0AVNqd{h-RTn#3bh!jV-r0wck-O3$~$g^@C zT!7;8`}ZShyRwtjRn0Z8)+A;lu9E`5U4^F3vNROt(ot~FKLYCfNOzqiet1xPm?I=b z)GS|;$3~m+cvyAxOhZJ0#Kd4a9RO|#V)J<4w^v+!NHra;t)~}AX&SGQb#{%LQotd* zbb4|s-VEgy2`{gg;71?kXPVTEyLQ)1@CpS#(1l~IS3rz!#OCBftCK_rtcN!dQ|A{A zt?o)gmC4noFrdK7SAn6G&B|eXk=1l!ZF-#>JRe<+#Wu^T6O-DP7wIcHgtyLTKp3gWT$LaE_^$utA%E7GGNUJrbWEuub7Jq+a$h4% zf)4d)5g&rHS3MN{Zg|RgxbL-2+*zPxyjsA+uDm+!23h<{s6Q-`9o&}#;7Nb{G%T@O z^0hKn?6XI^0p|}4LGKT*Wk8$wmoK@PR|TT%{MGj66_HlgYO164*}8fh0Lc99(@Csn za?8O){wkcT=fww${kpH2yA+-o)ztt;@cd#ouK86w)6EgjYN^7%qu=sYQj+HV+D-(rN7v7+=A= z_ubkS2~}~_qekNAWCg?wSzPkbQ8SkmH_q+cCM1mKQ1r|9?c8-cd#F*1O?qz*XlhVj zidubZF{^Re+ORA!c=x{YV$>4O2IaWOL363R{LVjB?%mUsgrekATs9(3NAnvbRv3O5 zP!c{eGAfFag8U7Rqiq;(^+?Fjb$8xREVHwNCTSNHv*WmcU=9_j{LM?D#2dGqNMuB& z3=uDE-0EV!ASO=Jb3U*h!XM2l??xbB^#2&fRjn5 z1Qgk)XU;DL{*9(`|No=cmsVCg>&KR7Hjo2&(>pBZsZqtJxY(HaKhvU`>XPTUUuph2 z@pg=&_VqeBO`EtvP09s^^Uhos63FX2U2E-ekA_)QE>m2?-~ zDzn2n8$-}Fh3S#m5>w$&?*c6gTH@Hmnw9@KfU;BD!LO?<3d^Nw`$>jy&KCeRM=EtLzt$0o!7K$)-~#|#R`7g z$O>NR@*)tj9OO7P`}X&ZkntJzbbQMsYkbKen=r;~xdm!c#cf8RvC5r6<@_b-FB<+W6fd*_-UI;TfQf~?{1D1%|o0igHHUU&eD6(DO2Gi5x` z8d6h!4j>(UqkME=W7ei1qxGvi>snxUoF=|(Z+7*!)->Y<;saP}pyM7*V4(25L%>S~ zJCN$q(p*wV?)cthIAr+3C}n^sY=tI}?~@=bW4J*Qdpthu(Q{s&T^7x4(>-C1&v*cN zN-e`DfDJ{unVm2BX6Q%j_+o_(KB!V%+%<6l?zfcZTWDGS>1MnKCMkB!8^Y)qAKa-v zXD|4-ViNFWEH7N6lif}RnqF>9Pe*P~dYtXA!ku)Ve%Dwc_Aaci`7DP$QICEA`W+t(7H5AGLkbU2736R4`F5E zc>gyjt1YlO6C}itsA<1NX2eQ&WlDrVh>{mgOr+JoRs#?JB&0=8o_MXy)`M2w$vB%s zmc%@(U`xOtr6f=QXSe|GYuf@l$H@J=evl=ju`KU{`fV-u7mUtfzpz%y{I6On;XnQN zZP0&nSk3~36#TYgRD$H#VpQ@b+g$T!w|=DcOIX{)xp_GH>h3r~3tyj$K1|&bVUJnI zR-BUO7gxiZ3@n z=n;)}C?ODDIyR@WL^Vh&Fy-^GN?6X?B zJ`f^QSI4u*?yt{R5p(ceE+^);1&GBNA`p-`syEVn0|CKG8$Fv4_&fX+>;7GgBEHF& zg>gT-x_-@v)KgYJba>j>KPVY|++Su@TMIRf!$Pw+|HYYy_eDl%i?E1AEE@|Kw{zpj zY{cexu91H|ag>^R#eh+%fk~SJ65D~c!-m+&-u(e5e)y0jm?5AR3jp3#Erqs-tjF^p)|Rkl7v0?8B5blosbiF%@KT*)JLB~?0F#EtDKb`gM_7kIC2XWU_WSH*6(N$u$H#p+VYB? z{@aah=X!p4SqE#TfY^qjtEgh@vy~t*3?l#DWqP8002VCULw=%z3?M0BAnl-C&#kw{ z)J$d;3q)#4dUm-ghq-g0zJgiu0b5aN$@Z7G04HK}(aLCLd;0@QQQkUx#qgom z<1fEpB{tZt$DSRzs}}E`7sOAaZv(WnfcE@KSG*ZS%Y4rJlN;jzxG5`j7;{;iXx5I5 zazEm`g-CNdb<~?C0!r6yb&tWm0eStdAAcJKlgTfo_1Y8)>g%I-HN2@HhoL~g9oo{< z=GFu0gZNJ6cLNIx&gr!;q<;Tyykj{#kYzoh$8+1i@$EC()v_U=Qb5blZcehdZ}mH9 z4kupzo)q^5z=2pA%q5(!9zS#K+jiIn=;}AK8Bzf}HHFX&wCgn|3#}vAQRCQ0W`xnH zI_~$lo#HO*v8=F)v*3j~y<2eReQCbfD8z>m^x6xI4=^Wu!sxUL&aVV7RUl&2>}ABy z%`cSL_RfG=s7FGgOH7Kl(sjIKeH5b2iWj>G@wN4xaHatx0JO>+TwE%`m?*|`^RqqE z(E%XrIF>(U>TUj|*72L$IgQYCq`ux}@>)WePYi3%R$hN#q@g0&sMq{T5hPYteo6+M z*-w<%pKpHT+z`EXaDzcFqgsuW?*cBISLZh3zF8bb1FZK=iG`K(3UkN_2_@^(`gV7l z(zEkv9}y9$$3(yQU(Le)zjbi~DUrYZ<!`vfswc25DW7wX~o;QT4{AxlrJVmrj+p1 zVH&rYB+CvV`XCmdiyK}~+~{%9jQ zZYa#F!Cd)!K~6!wf9u;Ao%jpfKQg=Rb0-raq2=i`R3cuz z{zFoatyvDhgmk4fr>>8%a@de{0NN}&I~cRj z5$04w4O7->=sqcy$qw`&gR>Tavp^#MMthvXl+RGcKmaSNnlK>Zn5N44TzA84c*@~( zVnTdi57q-H<#^QW)N7A-gUGO38($yoROvp)P$MD^O-VV$-1gdqVP;3W*z6c52SdKH zhz(?Ve>dfbY^o}C2y~crKP%8eCt%G|7TNj+m>(Pz7Io!Oz~}$70Lw6YA}c3T?r%!- zKoBg-5PJ9PDyB!j#8_II^XA;%y7IhECpsDeq1E_^a3>L@x1j#2aG)L-8a}{!IPgY2 zbpP^he)bdFb6k{O{#~ZM_%AUgDIb&nps&X|q`2k^|5z*nL4@r-#$(wnV_WQh&u*Fj z49A;rc5_g+@N9Dz%XG*{GnbSNazq>ix6Qxj#l%OvR@BhzXAns7`S}SVK(%=6vuepJ zdOzHt$0Wl{WF7b0HK+Lww1P~e_23SekC&aO<5@w=7ud#9UK--Ja1S@`-ov(w`k0Kk z+R`^|{Ai;$Abkn6bUC~1dazx*ySaA9u@(ycl(46e)4FIt0FpfA3QGW60Zw{i$Lt9E zY!ek16}kK$EYQttRG$KQZAB-YBbghC6-H+=-_z4~TZtwn-aKg}hwMm}$?{FLXAN*L zMuyYdYn;-%4(P!FU?D5=C8L_VD&m#)!aUAQU3{gZ_wE)%&pz-%qg1K+oZE0UK`A;) z$_HwJdi(QAxX$f6T4n^EngJ{X|8N77lq10CZIR84M%Cj>pT41y{>L~j@(lgd)&ugr zX0zq`r==Ma)$pQeyB&)qVp=ttOSPuExqwernT&gbbf6+P@-GJF$iQ&8W0K_i{X>hq ze8^;2xBa|>jt?sTJy2oF-3tt_kP7g&QXao2DSQ(d>vDhBE5w9&@$GxgPuz3r-{=vS zo?ocyBc-1MEf$y6mh(mX(fv*tnQEuql}#3!yVC6q@ikDRkd4j+tr!hGUR6(|+b3q; zt=Pl&vH6bmR9j8!_3wYa4=h9$BRyZS)dEwevXokFnsWKMgT$L=U3~3X8P9mdw&7lZ zZAm6nWLS9y=BZwQ2MN%Z^F=B^#2DwYoXMT6Akv@yq+)YnKsk{{8;> zr?3l8?Vqw1;!f^@3F0qhYwRBoXA1S!6a-!n--d83VdJ}f`^{&#z z8W0^%vKyK zZC!zwXpN5Uopv1{Qe|Owf%=fwe3*`*1KpXGZC;9TMPxx#4O2A`P*+ zn*91Y=;bV(l3}n9g{czm17PX_=F|@?_C;0;AnfJdzVku$>JkpoW8KarpfJeC#mQRC z08@QRu4F08(OAJpTHmVJUvl}*4ZcT*!?|EjDO-H-vgwO?!!Zq{UR#vR$8E&Y$i~Rg z=3+j4`2;m+B@7Dh!iNHQoQ|k65-vi?{XK53-*N6MS`FPH;_m9}+L-94w0rPCA%a19 z=qV+?#r%BwbZi=hS)3+@bT^3GzG4v1)ZGJAKHgW|KJ{SQQpl{$5F)fy4-K4rth| zIItoMl^0c38Xo;6WWkxKciSJ;#w1IqPfmuUk^T8?PimHp(J{S}T@y>*v zy&YHqw`cp=Zp*MhQF%&Sn+{FA%OWxNs}n^c)0|Ro=jZ*D6v^0++Gj?)z0di|eZU>J^X8a;!Iwzjgf%sq|?zHV{x5gOvoY2g6s-%cc$@e@NL zne^J9@F{W8&<7fL8{8K!PX;>Z1|jA~vQ-!G4VbYIJg7OANe>1g%5&th8p151RBO zI#e8iKYn+8K4urm-R1g|p3doL7eZ%dWHO>MST?20__ayr;%`1)&9n9LS+-uC5-Z1X zG?{6SJ`^GW+ikmg3806WM27gLpY7`+6wlNetzOL6mw;64xeab6?H8}O|81F zfq52&U#~@>JB&EQ z+$Q4-!)e5-$~Laj*HGE(t!@!0$|aCTGrX zUm`NZsG8pv*XzvP*>0dFEQ&HOW=cfCdPqI}y}Iqf+L4mM(BD3#%~! zB)v$wN$4NF-khJ{XHh2O-Jcs*U`5`$+)1T&IlQD9{#4m6CT(tx-!P-`)P8?I?+KHs zh1o`}F$zDgN4eWpT&6N33Kr?<+4LC@=6x0Sz^TSGb~>4Oc8L7>>y`Uag8JJZUzdB8 z0>}<}lZ8n4Qfj^eG0aU-F>{eA)v&kN#-ZW-OlN0spq3Z%YjD*Rm#-UbyMqJZ)Pn|c z=c1bkjbqSR?0qiJSJ1u%KdMD(z5T+i{U@uKvgGZis1b7gNWtfH=#E-S3CV zw{hzE7~0$4E4=OgsI0JH#mTm)4_am_`SFmK=E5g!hWDVc?2?hO-QU%ycDP#MvU$?e z<1+!dm#ld7Zp}Z&Dzgia5q%Q_Qs!A4sqM&QL{U+o<1lXjQ z-h>jH- z-I{EvoA&4jSd4M9XZu!-Bj#juPYc5qmxa$SMlV}@(Vh>0ABmG!OF^BuFyk>#mWl1V z*n@a*Qv{q2!ZDHS<4eOJXV+9&%Bcj|e+E)?j{rSTP+8B0h>W!6pI zx_szjNjNjKTjwELy9K`(hu)*5SJqtrBH8~vfaen_@4&IPH8Zr(>l+r7As&Oa+_`<# zwLJex@33oQ-1xh~NQ~X=VQg=Li~E6uj{Qi#Xy7r@ZA=EupMU)pKYh;-xvd->JSP_u zdDPnxs(zjkzPQ}0)}XT-ZW^H5_6VEAZaz$%jxk+z^`#xFQJ1r_42#(P(Ib6^{PW~7g4eWRK^&Ily>a*O z_ASmgxZ21Btm0Xt(*w)SqV!!3XSkfxIBD8+*Gi|A3peYm6g1S<#=|=&4UZe@Y%*)# zzDl&UGB&=UGq*O-xaSMzfCt!k?(PS4h@?M;0TK7wwynygw5!m*HYwuat5#JDBQ*@N zKFd2^B-EYT80a4vnVh~j-}O2#Wo^3?y2;yyhI%Jd>=hLbq>RV6%Ff@%_B+{6c=d-? zU`#`q@)70emE;!@{f_u6Mkd+^k-=qbLtf6W{;hd9etiD-$oF7cTwHWH+6+~YE4C*N zCG35MPD;=sjB8+k>g|*Der(sfW#^vv=a>*2yIY5kJhyrR@{Y$o)NnM^IX|YQ;I-MT z28)ndbtT$+T$h*NLqbK$X&9yUM^1ZytF}grK){A{H^;<`f!lwR#9ASAQk@I=?%qI% zT{iCzi!goFoa<6g1`7UG#5y$Zg3)@`Im3oY0b-{-*U+-=e%Pag+(f{cF z4knIwS_s!;j8cDT=W6bCdOA+oKBiZ*^2!d&D{~12J;PrEXpM^vOrsh(*o58A-@9#J zkHVAtj3hZY6Y6w z(Z$Yp@!HyqanaFCOcYx@Omz7XFT`Hy{Yq(xoJEP{;S#8^Ui>{k-Jd96^YERXdEMgF zNrl6ftJ{G!2uAKN^)?iluV-e;RtCxs^g(zSX`PqnpKsqv)Y%g?8ZZH+TkC2ETU6wT zDGagL_4UGy@!{91Wd~DEZs_QYd`_a$qN6`s4n(ggZs{;HE0U6Gg+Mp~qv~3P*-2e! zTSJ3e(^SHPhn7Fb+gv_#%0}Uy%r&(y&*A@$3<+g(uolO}GR-QGK|{AA5h$)nrCeJ$ zBR+GWcD*uLUUfPgUSFkGzDVZ5@H{M6k`vdG4peQI_$E+mCJsIIZrxdsSaVA}4+Q0k zIyl9Fz7%Nq@5!iZbPc37Nv%Ud9aqPvhaWgz%_ub(cifvR8MWkeJbK8(WGNGG-s<>t zyzFdbPH2^x8G)d_dv}&vQkLJX+;O?!a3q2ymV;Ea_0JA|s5Ea)=A$nnSJ-)ng_2OCo(K2cDd-~6=iR>M0mJ=3#M2}y~@tT9ox z4dg_@VsGmUT4Q1kN0e+bAE`I&qTclW!#JH}YM>Mqe;XW`ZdVT9>d7fD4*Q#OxU2Wd z%@*)+-U*QUM-bv4ZJ(6jms>LQcG>{yrmdwDkFmf?yTSSNjAL|^J}bLdt>$uQ51;Wq zjecv(W&+Pye-(>BXeeiVf}JzjDFOjXTRq&fDqKjy>g@FRLYAw3ivxFP=(4%h6%RCs zM}CBc+70%J^Jgb5d*+ve@DvKATGhUGv)N-X?7c1Edc4zdKhW6S#d6B;@_cnE`4*pM zeB2k>9Mhn0&0k`Y!#gq3Dk_fP>#terak9FI3CJGbX_GyVC=7bIu@Dy;=IFj|AZ+K) zCK})qn2^ne_yLD#6jP$AMu7CjhLbY&ySK}W*Du=f_9Iy)%{2LJ#D};vsyIYLb;4y9 zLxlh)KR?5P-R)>X%0x8Zrhr%$8m_0T=Wa>qxi0c5D`j;&f4lu{IL!GSj}p#swP!;0 znldUfzxEBXV2D!)TJ|pZE^m|Ytg*K^fJp&aX{7AI1Eqq3NPCMb%eZRFPqQ`B30*aD znAC4QFe1=rqeO4a@iT)oQ_tEri0dFi+r*91-E` zuvNXwKW5n4H8m8bX=9*0Q%8S!=I{%9vuyZa-%*O-_wlhZDR0<4Vg+r@^cCBw_3w^43k5H~j}S4IrMQz1L9E zG#lGH5(~CBLQ!NXH*O7L~9Fz^}KbC?98mM#D#QE z>Ti{d6tEPP{&919gLb<`#zN(d;LXmq(TOooB zQ6-zdJEb@2Fh6r2`uaOFlF_+0YL&$XZxZvt?c3X1vpn?%ih6%t*fi_>Gkbf~8XEh4 z5h4Ck{`Sw$j0~yHNcv_ZZTtj*@P0L38K~;AalEz8L8Y&!tx@Crw*Ql?Y$EIT&=3&S z4i67V-5hy&v^{7vbjN1-t})JSHZ6yV05o`C$lU(+c?_=|2L;^?rMWHOJ~cSpQl1&$ z-4U^eUtjBZc{wMRHO0=T9@1DzOflnGUq$G=W$Lb z+cU%qJmCfOE%Cj*iPL=UWU|?I&NkwL6y>dn1Rnhvre6|qlgyn8(~FR$V9Huw z-LAAv yh>!-TLw4{z1I)bo##GdsAK#O3==_mEwrx&Nd)yVP9TpyakC=ghrsk+M zzf3eB`keV7`Qz`{*kVqSwih~&LARN4)-2?fXDDQ@I!KZg zA04Vznx7rqI#W$6h4Lsra~a6jGJGC7Z*@*CHe=y4AG2n%%8ra7Mn&QCLcL2-ZJ6t)An51Vag zJB<6fqzVc;%*An3A}eza8=M@}UXs_Vpw71c$JJFvRk^L}rGnB(Hz?g8-5}ka(jZ;Z zT~gBB4bmZvG}7Ij($d{^r+c4se%vwEuf2y3S$yA|@B8HH%1lnVjR1Kx@RacJG-BP1 z(h20sYE^&;Yd>(T;QNBtprj%N`|N9DZCnF9Z#}&UNG#Nm)>3yTgxoW<8bPk} zj`dQ_-k83-4NRI-K04-wkqOa zZ&;y(} zqM@ZRG5)2NBX3oL|A1S!oaf8fT+dZUU0E{hX^+!YZoMMg+}~#8{0a}^z>jt=Hvxx> z#2~9JJ}OJGh_hefbXDk#c|y!Ey!oq*HD)ySS6^3m&BYcaiVW>W4%hMZ_&3NBjGPhJ z>KaDmU2;k6tA;77Tgy#w)m2aJZuc$dTe%Sc+etgW3QZPlvT7pp;J8-=EFokjR!Fv00A6A(G3M7Z)0uHUoKcpMJuu zPQ<*uYiX>38WXT}N+>SR$oeJ@e9!iBOwr$VGZ`U}BrXoB{Xackw_`I8izDBQM%#U$ zp&%@{@e9|Wb`B9p1p@a%`Zsz(m!*$@H~y}GNYqP$Z7

Qto_x!!N4hUI*%OkYNjqQPIy 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�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%0DDwgs%j!7 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 -tol and coords[:, 0].max() <= 1.0 + tol + assert coords[:, 1].min() >= -tol and coords[:, 1].max() <= 1.0 + tol + assert coords[:, 2].min() >= -tol and coords[:, 2].max() <= 1.0 + tol + assert len(cut_mesh.types) > 0 - # Fallback hex implementation cuts via tetrahedra; with triangulate=True it should be tetra-dominant. - assert VTK_TETRA in list(cut_mesh.types) + # Do not constrain emitted cell types here; the table-driven hex cutter may emit + # hex/prism/pyramid/tet depending on the case. diff --git a/python/tests/test_cut_vtk_mesh_prism_smoke.py b/python/tests/test_cut_vtk_mesh_prism_smoke.py new file mode 100644 index 0000000..5dc2c40 --- /dev/null +++ b/python/tests/test_cut_vtk_mesh_prism_smoke.py @@ -0,0 +1,51 @@ +import numpy as np + +import cutcells + +VTK_WEDGE = 13 + + +def _single_unit_prism_vtk(): + """One VTK_WEDGE cell on a unit right triangular prism in VTK vertex order.""" + points = np.array( + [ + [0.0, 0.0, 0.0], # 0 + [1.0, 0.0, 0.0], # 1 + [0.0, 1.0, 0.0], # 2 + [0.0, 0.0, 1.0], # 3 + [1.0, 0.0, 1.0], # 4 + [0.0, 1.0, 1.0], # 5 + ], + dtype=float, + ) + + connectivity = np.array([0, 1, 2, 3, 4, 5], dtype=np.int32) + offset = np.array([0], dtype=np.int32) + vtk_type = np.array([VTK_WEDGE], dtype=np.int32) + + return points, connectivity, offset, vtk_type + + +def test_cut_vtk_mesh_single_prism_smoke(): + points, connectivity, offset, vtk_type = _single_unit_prism_vtk() + + # Intersecting cut: split by plane z=0.3 + ls_vals = points[:, 2] - 0.3 + + cut_mesh = cutcells.cut_vtk_mesh( + ls_vals, + points, + connectivity, + offset, + vtk_type, + "phi<0", + triangulate=True, + ) + + coords = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + tol = 1e-10 + assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol + assert coords[:, 1].min() >= -tol and coords[:, 1].max() <= 1.0 + tol + assert coords[:, 2].min() >= -tol and coords[:, 2].max() <= 1.0 + tol + + assert len(cut_mesh.types) > 0 diff --git a/python/tests/test_cut_vtk_mesh_pyramid_smoke.py b/python/tests/test_cut_vtk_mesh_pyramid_smoke.py new file mode 100644 index 0000000..8f45136 --- /dev/null +++ b/python/tests/test_cut_vtk_mesh_pyramid_smoke.py @@ -0,0 +1,50 @@ +import numpy as np + +import cutcells + +VTK_PYRAMID = 14 + + +def _single_unit_pyramid_vtk(): + """One VTK_PYRAMID cell on a unit square pyramid in VTK vertex order.""" + points = np.array( + [ + [0.0, 0.0, 0.0], # 0 + [1.0, 0.0, 0.0], # 1 + [1.0, 1.0, 0.0], # 2 + [0.0, 1.0, 0.0], # 3 + [0.5, 0.5, 1.0], # 4 apex + ], + dtype=float, + ) + + connectivity = np.array([0, 1, 2, 3, 4], dtype=np.int32) + offset = np.array([0], dtype=np.int32) + vtk_type = np.array([VTK_PYRAMID], dtype=np.int32) + + return points, connectivity, offset, vtk_type + + +def test_cut_vtk_mesh_single_pyramid_smoke(): + points, connectivity, offset, vtk_type = _single_unit_pyramid_vtk() + + # Intersecting cut: split by plane z=0.3 + ls_vals = points[:, 2] - 0.3 + + cut_mesh = cutcells.cut_vtk_mesh( + ls_vals, + points, + connectivity, + offset, + vtk_type, + "phi<0", + triangulate=True, + ) + + coords = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + tol = 1e-10 + assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol + assert coords[:, 1].min() >= -tol and coords[:, 1].max() <= 1.0 + tol + assert coords[:, 2].min() >= -tol and coords[:, 2].max() <= 1.0 + tol + + assert len(cut_mesh.types) > 0 diff --git a/python/tests/test_hex_classify.py b/python/tests/test_hex_classify.py index 14d0a83..59ccde8 100644 --- a/python/tests/test_hex_classify.py +++ b/python/tests/test_hex_classify.py @@ -1,5 +1,12 @@ import random +import pytest + +pytest.importorskip( + "tools.cutcells_tables", + reason="Legacy table-tooling package is not part of this repo layout.", +) + from tools.cutcells_tables.classify.hex_mc33 import ( classify_hex, permute_mask, diff --git a/python/tests/test_hex_emit.py b/python/tests/test_hex_emit.py index 28f072d..8939656 100644 --- a/python/tests/test_hex_emit.py +++ b/python/tests/test_hex_emit.py @@ -1,4 +1,11 @@ from pathlib import Path +import pytest + +pytest.importorskip( + "tools.cutcells_tables", + reason="Legacy table-tooling package is not part of this repo layout.", +) + from tools.cutcells_tables.emit.hex_emit import write_hex_header, generate_hex_tables from tools.cutcells_tables.build.hex_variant import build_hex_variant from tools.cutcells_tables.classify.hex_mc33 import classify_hex @@ -36,7 +43,9 @@ def test_generate_hex_tables_basic(tmp_path: Path): assert len(acc.poly_descs) > 0 # variant_lut_offsets length == NUM_BASES # monotonic offsets - assert all(x <= y for x, y in zip(acc.variant_lut_offsets, acc.variant_lut_offsets[1:])) + assert all( + x <= y for x, y in zip(acc.variant_lut_offsets, acc.variant_lut_offsets[1:]) + ) out = tmp_path / "hex.hpp" write_hex_header(out) assert out.exists() diff --git a/python/tests/test_hex_polyhedron_export.py b/python/tests/test_hex_polyhedron_export.py index ccc0e48..0c921c3 100644 --- a/python/tests/test_hex_polyhedron_export.py +++ b/python/tests/test_hex_polyhedron_export.py @@ -1,3 +1,10 @@ +import pytest + +pytest.importorskip( + "tools.cutcells_tables", + reason="Legacy table-tooling package is not part of this repo layout.", +) + from tools.cutcells_tables.export.hex_polyhedron import build_hex_polyhedra diff --git a/python/tests/test_hex_variant.py b/python/tests/test_hex_variant.py index 5180bd8..d66136f 100644 --- a/python/tests/test_hex_variant.py +++ b/python/tests/test_hex_variant.py @@ -1,5 +1,15 @@ +import pytest + +pytest.importorskip( + "tools.cutcells_tables", + reason="Legacy table-tooling package is not part of this repo layout.", +) + from tools.cutcells_tables.build.hex_variant import build_hex_variant -from tools.cutcells_tables.classify.hex_mc33 import edges_mask_from_cell_mask, classify_hex +from tools.cutcells_tables.classify.hex_mc33 import ( + edges_mask_from_cell_mask, + classify_hex, +) def test_variant_loops_basic(): diff --git a/python/tests/test_hexahedron_special_point.py b/python/tests/test_hexahedron_special_point.py new file mode 100644 index 0000000..d0a5469 --- /dev/null +++ b/python/tests/test_hexahedron_special_point.py @@ -0,0 +1,65 @@ +import numpy as np +import cutcells + + +def _is_on_unit_cube_edge(p: np.ndarray, tol: float = 1e-12) -> bool: + # On a unit-cube edge => at least two coordinates are on {0,1} (within tol) + on01 = [abs(p[i] - 0.0) < tol or abs(p[i] - 1.0) < tol for i in range(3)] + return sum(on01) >= 2 + + +def test_hexahedron_interface_uses_special_point_n0(): + # Pick a concrete VTK case that is known (from generated tables) to reference token 200 (N0). + # Case id 67 corresponds to mask bits set at vertices {0,1,6}. + ls_values = np.array([-1.0, -1.1, 1.2, 1.3, 1.4, 1.5, -1.6, 1.7], dtype=np.float64) + + # VTK hexahedron vertex ordering: + # 0:(0,0,0) 1:(1,0,0) 2:(1,1,0) 3:(0,1,0) 4:(0,0,1) 5:(1,0,1) 6:(1,1,1) 7:(0,1,1) + vertex_coordinates = np.array( + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 1.0, + 1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 1.0, + 1.0, + ], + dtype=np.float64, + ) + + cut_cell = cutcells.cut( + cutcells.CellType.hexahedron, + vertex_coordinates, + 3, + ls_values, + "phi=0", + False, + ) + + coords = np.asarray(cut_cell.vertex_coords, dtype=np.float64).reshape(-1, 3) + + tol = 1e-10 + assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol + assert coords[:, 1].min() >= -tol and coords[:, 1].max() <= 1.0 + tol + assert coords[:, 2].min() >= -tol and coords[:, 2].max() <= 1.0 + tol + + # All edge-intersection points lie on unit-cube edges; the special point should not. + assert any(not _is_on_unit_cube_edge(p) for p in coords) diff --git a/python/tests/test_prism_special_point.py b/python/tests/test_prism_special_point.py new file mode 100644 index 0000000..602af45 --- /dev/null +++ b/python/tests/test_prism_special_point.py @@ -0,0 +1,61 @@ +import numpy as np +import cutcells + + +def test_prism_interface_uses_special_point_n0_case10(): + # Pick a concrete case that (per generated prism interface tables) uses token 200 (N0). + # Wedge/prism has 6 vertices => 64 cases; case id 10 corresponds to mask bits set at vertices {1,3}. + ls_values = np.array([1.0, -1.0, 1.0, -1.0, 1.0, 1.0], dtype=np.float64) + + # VTK_WEDGE / prism vertex ordering: + # bottom tri: 0:(0,0,0) 1:(1,0,0) 2:(0,1,0) + # top tri: 3:(0,0,1) 4:(1,0,1) 5:(0,1,1) + vertex_coordinates = np.array( + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0, + 1.0, + ], + dtype=np.float64, + ) + + cut_cell = cutcells.cut( + cutcells.CellType.prism, + vertex_coordinates, + 3, + ls_values, + "phi=0", + False, + ) + + coords = np.asarray(cut_cell.vertex_coords, dtype=np.float64).reshape(-1, 3) + + tol = 1e-10 + assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol + assert coords[:, 1].min() >= -tol and coords[:, 1].max() <= 1.0 + tol + assert coords[:, 2].min() >= -tol and coords[:, 2].max() <= 1.0 + tol + + # Edge intersections live on the prism boundary. N0 should be strictly interior for this case. + inside = ( + (coords[:, 0] > tol) + & (coords[:, 1] > tol) + & (coords[:, 0] + coords[:, 1] < 1.0 - tol) + & (coords[:, 2] > tol) + & (coords[:, 2] < 1.0 - tol) + ) + assert bool(np.any(inside)) diff --git a/python/tests/test_pyramid_special_point.py b/python/tests/test_pyramid_special_point.py new file mode 100644 index 0000000..2be345a --- /dev/null +++ b/python/tests/test_pyramid_special_point.py @@ -0,0 +1,65 @@ +import numpy as np +import cutcells + + +def test_pyramid_uses_special_point_n0_case19(): + # Pyramid has 5 vertices => 32 cases; case id 19 corresponds to mask bits set at vertices {0,1,4}. + # (CutCells convention: bit i set when phi_i < 0.) + ls_values = np.array([-1.0, -1.0, 1.0, 1.0, -1.0], dtype=np.float64) + + # VTK_PYRAMID vertex ordering: + # base quad: 0:(0,0,0) 1:(1,0,0) 2:(1,1,0) 3:(0,1,0) + # apex: 4:(0.5,0.5,1) + vertex_coordinates = np.array( + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 1.0, + 1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.5, + 0.5, + 1.0, + ], + dtype=np.float64, + ) + + cut_cell = cutcells.cut( + cutcells.CellType.pyramid, + vertex_coordinates, + 3, + ls_values, + "phi<0", + False, + ) + + coords = np.asarray(cut_cell.vertex_coords, dtype=np.float64).reshape(-1, 3) + + # Basic bounds + tol = 1e-10 + assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol + assert coords[:, 1].min() >= -tol and coords[:, 1].max() <= 1.0 + tol + assert coords[:, 2].min() >= -tol and coords[:, 2].max() <= 1.0 + tol + + # Edge intersections lie on edges/faces. N0 should be strictly interior for this case. + # For this unit pyramid (apex centered), the interior condition at height z is: + # |x-0.5| < 0.5*(1-z) and |y-0.5| < 0.5*(1-z). + x = coords[:, 0] + y = coords[:, 1] + z = coords[:, 2] + + half = 0.5 * (1.0 - z) + inside = ( + (z > tol) + & (z < 1.0 - tol) + & (np.abs(x - 0.5) < half - tol) + & (np.abs(y - 0.5) < half - tol) + ) + assert bool(np.any(inside)) diff --git a/python/tests/test_quadrilateral_ambiguity.py b/python/tests/test_quadrilateral_ambiguity.py new file mode 100644 index 0000000..7bf85eb --- /dev/null +++ b/python/tests/test_quadrilateral_ambiguity.py @@ -0,0 +1,135 @@ +# Copyright (c) 2025 ONERA +# Authors: Susanne Claus +# This file is part of CutCells +# +# SPDX-License-Identifier: MIT +import cutcells +import numpy as np +import pytest + + +def marching_squares_flag(ls_values: np.ndarray) -> int: + flag = 0 + for i, v in enumerate(ls_values): + if v < 0.0: + flag |= 1 << i + return flag + + +def asymptotic_decider(ls_values: np.ndarray) -> bool: + f0, f1, f2, f3 = ls_values + return f0 * f2 - f1 * f3 >= 0.0 + + +def test_opposite_corner_masks_are_ambiguous(): + ls_a = np.array([-1.0, 1.0, -1.0, 1.0]) + ls_b = np.array([1.0, -1.0, 1.0, -1.0]) + + assert marching_squares_flag(ls_a) == 0b0101 + assert marching_squares_flag(ls_b) == 0b1010 + + +def test_asymptotic_decider_scale_invariant_and_different_diagonals(): + base = np.array([-1.0, 0.5, 1.2, -0.25]) + scaled = 7.5 * base + + decision_base = asymptotic_decider(base) + decision_scaled = asymptotic_decider(scaled) + + assert decision_base == decision_scaled + + # Flip sign on one corner to flip the diagonal choice + flipped = base.copy() + flipped[2] *= -1.0 + decision_flipped = asymptotic_decider(flipped) + + assert decision_base != decision_flipped + + +def _segments_from_cutcell(cut_cell): + coords = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + conn = list(cut_cell.connectivity) + segments = [] + i = 0 + while i < len(conn): + n = int(conn[i]) + assert n == 2 + a = int(conn[i + 1]) + b = int(conn[i + 2]) + segments.append((coords[a], coords[b])) + i += 1 + n + return segments + + +def _edge_id_for_point(p, tol=1e-12): + x, y = float(p[0]), float(p[1]) + if abs(y - 0.0) < tol: + return 0 # edge 0: v0-v1 + if abs(x - 1.0) < tol: + return 1 # edge 1: v1-v2 + if abs(y - 1.0) < tol: + return 2 # edge 2: v2-v3 + if abs(x - 0.0) < tol: + return 3 # edge 3: v3-v0 + raise AssertionError(f"Point not on boundary: {p}") + + +@pytest.mark.parametrize( + "ls_values, expected_pairs", + [ + # d = f0*f2 - f1*f3 > 0 -> connect diagonal (0,2) -> segments (0,1) and (2,3) + (np.array([-1.0, 0.1, -1.0, 0.1]), {frozenset({0, 1}), frozenset({2, 3})}), + # d < 0 -> connect diagonal (1,3) -> segments (0,3) and (1,2) + (np.array([-0.1, 1.0, -0.1, 1.0]), {frozenset({0, 3}), frozenset({1, 2})}), + ], +) +def test_quad_interface_ambiguous_pairs_follow_decider(ls_values, expected_pairs): + vertex_coordinates = np.array([0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0]) + cell_type = cutcells.CellType.quadrilateral + gdim = 2 + + cut_cell = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi=0", True + ) + segments = _segments_from_cutcell(cut_cell) + assert len(segments) == 2 + + pairs = set() + for a, b in segments: + ea = _edge_id_for_point(a) + eb = _edge_id_for_point(b) + pairs.add(frozenset({ea, eb})) + + assert pairs == expected_pairs + + +@pytest.mark.parametrize( + "ls_values, expected_mask", + [ + # mask 0101: connected variant is d>=0 (variant 0) + (np.array([-2.0, 1.0, -2.0, 1.0]), 0b0101), + # mask 1010: connected variant is d<0 (variant 1) + (np.array([1.0, -2.0, 1.0, -2.0]), 0b1010), + ], +) +def test_quad_ambiguous_connected_variant_keeps_quads(ls_values, expected_mask): + vertex_coordinates = np.array([0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0]) + cell_type = cutcells.CellType.quadrilateral + gdim = 2 + + assert marching_squares_flag(ls_values) == expected_mask + + inside = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi<0", False + ) + types = list(inside.types) + + # VTK_QUAD = 9 + assert types == [9, 9] + + conn = list(inside.connectivity) + i = 0 + for _ in range(2): + assert int(conn[i]) == 4 + i += 5 + assert i == len(conn) diff --git a/python/tests/test_single_corner.py b/python/tests/test_single_corner.py index 7099447..090182f 100644 --- a/python/tests/test_single_corner.py +++ b/python/tests/test_single_corner.py @@ -1,3 +1,10 @@ +import pytest + +pytest.importorskip( + "tools.cutcells_tables", + reason="Legacy table-tooling package is not part of this repo layout.", +) + from tools.cutcells_tables.build.hex_variant import build_hex_variant diff --git a/python/tests/test_single_corner_basic.py b/python/tests/test_single_corner_basic.py index 4a0348a..090182f 100644 --- a/python/tests/test_single_corner_basic.py +++ b/python/tests/test_single_corner_basic.py @@ -1,5 +1,13 @@ +import pytest + +pytest.importorskip( + "tools.cutcells_tables", + reason="Legacy table-tooling package is not part of this repo layout.", +) + from tools.cutcells_tables.build.hex_variant import build_hex_variant + def test_single_inside_corner_triangle(): mask = 1 # only corner 0 inside vp = build_hex_variant(mask, 0) diff --git a/python/tests/test_tables_cli.py b/python/tests/test_tables_cli.py index 02fed66..23ed065 100644 --- a/python/tests/test_tables_cli.py +++ b/python/tests/test_tables_cli.py @@ -2,6 +2,13 @@ import subprocess import sys + +import pytest + +pytest.importorskip( + "tools.cutcells_tables", + reason="Legacy table-tooling package is not part of this repo layout.", +) from pathlib import Path # Add tools directory to path for imports @@ -25,7 +32,14 @@ def test_cli_list(): def test_cli_dump_hex_base(): """Test CLI dump-hex-base command.""" result = subprocess.run( - [sys.executable, "-m", "tools.cutcells_tables.cli", "dump-hex-base", "--mask", "173"], + [ + sys.executable, + "-m", + "tools.cutcells_tables.cli", + "dump-hex-base", + "--mask", + "173", + ], capture_output=True, text=True, cwd=tools_dir.parent, diff --git a/tablegen/cutcells_tablegen/emit_c_headers.py b/tablegen/cutcells_tablegen/emit_c_headers.py index b609110..29692d8 100644 --- a/tablegen/cutcells_tablegen/emit_c_headers.py +++ b/tablegen/cutcells_tablegen/emit_c_headers.py @@ -61,6 +61,12 @@ def emit_header( lines.append(f"#define {guard}") lines.append("") lines.append('#include "cell_types.h"') + if cell_type == "quadrilateral" and table_kind == "inside": + # For uint8_t / int8_t in ambiguity metadata + lines.append("#include ") + if cell_type == "quadrilateral" and table_kind == "inside": + # For uint8_t / int8_t in ambiguity metadata + lines.append("#include ") lines.append("") lines.append("namespace cutcells::cell::generated {") lines.append("") @@ -122,6 +128,9 @@ def _emit_tet_like_header( output_dir.mkdir(parents=True, exist_ok=True) path = output_dir / f"cut_{cell_type}_{table_kind}_tables.h" + # Copy lists so we can safely mutate for augmentation (e.g. quad ambiguity) + arrays = {k: (v.copy() if isinstance(v, list) else v) for k, v in arrays.items()} + n_cases = len(arrays["intersected_edges"]) n_edges = num_edges(cell_type) guard = _header_guard(cell_type, table_kind) @@ -130,11 +139,20 @@ def _emit_tet_like_header( # Extract subcells from flat stream subcells_data = _extract_subcells_from_flat(arrays) + quad_amb_meta = None + if cell_type == "quadrilateral": + quad_amb_meta = _augment_quadrilateral_ambiguity(table_kind, arrays) + # Re-extract after augmentation + subcells_data = _extract_subcells_from_flat(arrays) + lines: List[str] = [] lines.append(f"#ifndef {guard}") lines.append(f"#define {guard}") lines.append("") lines.append('#include "cell_types.h"') + if cell_type == "quadrilateral" and table_kind == "inside": + # For uint8_t / int8_t in ambiguity metadata + lines.append("#include ") lines.append("") lines.append(f"namespace cutcells::cell::{cell_type} {{") lines.append("") @@ -151,7 +169,9 @@ def _emit_tet_like_header( lines.append("constexpr int edges[12][2] = {") lines.append(" {0,1}, {1,2}, {2,3}, {3,0}, // bottom face") lines.append(" {4,5}, {5,6}, {6,7}, {7,4}, // top face") - lines.append(" {0,4}, {1,5}, {2,6}, {3,7} // vertical edges") + lines.append( + " {0,4}, {1,5}, {3,7}, {2,6} // vertical edges (VTK TableBasedClip ordering)" + ) lines.append("};") lines.append("") lines.append("constexpr int faces[6][4] = {") @@ -172,6 +192,21 @@ def _emit_tet_like_header( ) lines.append("") + if cell_type == "quadrilateral" and quad_amb_meta is not None: + # Ambiguity metadata used by runtime asymptotic-decider selection + lines.append("// Ambiguity metadata (opposite-corner cases)") + lines.append( + f"constexpr uint8_t case_is_ambiguous_tbl[16] = " + + _format_int_list(quad_amb_meta["case_is_ambiguous_tbl"]) + + ";" + ) + lines.append( + f"constexpr int8_t amb_case_id[16] = " + + _format_int_list(quad_amb_meta["amb_case_id"]) + + ";" + ) + lines.append("") + # Number of subcells per case num_subcells_per_case = [] for i in range(n_cases): @@ -213,13 +248,70 @@ def _emit_tet_like_header( lines.append( f"// Subcell vertices (max {max_verts} vertices per subcell, -1 padding)" ) - lines.append(f"// Tokens: <100 = edge id, >=100 = 100+vertex_id") + lines.append( + f"// Tokens: <100 = edge id, 100..199 = 100+vertex_id, >=200 = 200+special_point_id" + ) lines.append( f"constexpr int subcell_verts_{table_kind}[{total_subcells}][{max_verts}] = " + _format_matrix(padded_verts) + ";" ) + # Special (derived) points, e.g. VTK centroid N0 + sp_count = arrays.get("special_point_count", []) + sp_offset = arrays.get("special_point_offset", []) + sp_data = arrays.get("special_point_data", []) + if sp_count: + lines.append("") + lines.append("// Special points (e.g. centroid): per-case definition streams") + lines.append( + f"constexpr int special_point_count_{table_kind}[{len(sp_count)}] = " + + _format_int_list(sp_count) + + ";" + ) + lines.append( + f"constexpr int special_point_offset_{table_kind}[{len(sp_offset)}] = " + + _format_int_list(sp_offset) + + ";" + ) + lines.append( + f"constexpr int special_point_data_{table_kind}[{len(sp_data)}] = " + + _format_int_list(sp_data) + + ";" + ) + + if cell_type == "quadrilateral" and quad_amb_meta is not None: + if table_kind == "inside": + lines.append("") + lines.append( + "// Ambiguity override ranges: [begin0,end0,begin1,end1] per ambiguous case" + ) + lines.append( + f"constexpr int amb_range_inside[{len(quad_amb_meta['amb_range_inside'])}] = " + + _format_int_list(quad_amb_meta["amb_range_inside"]) + + ";" + ) + elif table_kind == "outside": + lines.append("") + lines.append( + "// Ambiguity override ranges: [begin0,end0,begin1,end1] per ambiguous case" + ) + lines.append( + f"constexpr int amb_range_outside[{len(quad_amb_meta['amb_range_outside'])}] = " + + _format_int_list(quad_amb_meta["amb_range_outside"]) + + ";" + ) + elif table_kind == "interface": + lines.append("") + lines.append( + "// Ambiguity override ranges: [begin0,end0,begin1,end1] per ambiguous case" + ) + lines.append( + f"constexpr int amb_range_interface[{len(quad_amb_meta['amb_range_interface'])}] = " + + _format_int_list(quad_amb_meta["amb_range_interface"]) + + ";" + ) + lines.append("") lines.append(f"}} // namespace cutcells::cell::{cell_type}") lines.append("") @@ -229,6 +321,119 @@ def _emit_tet_like_header( return path +def _append_triangle(arrays: Dict[str, List], tokens: List[int]) -> None: + # arrays["sub_element_cell_types"] uses CutCells enum mapping (triangle=2) + arrays["sub_element_cell_types"].append(2) + arrays["sub_element"].append(len(tokens)) + arrays["sub_element"].extend(tokens) + + +def _append_quad(arrays: Dict[str, List], tokens: List[int]) -> None: + # arrays["sub_element_cell_types"] uses CutCells enum mapping (quadrilateral=4) + arrays["sub_element_cell_types"].append(4) + arrays["sub_element"].append(len(tokens)) + arrays["sub_element"].extend(tokens) + + +def _augment_quadrilateral_ambiguity( + table_kind: str, arrays: Dict[str, List] +) -> Dict[str, List] | None: + """Augment quad tables with asymptotic-decider ambiguity variants. + + Variant 0: choose diagonal (0,2) connectivity + Variant 1: choose diagonal (1,3) connectivity + """ + amb_masks = [0b0101, 0b1010] + n_amb = len(amb_masks) + + offsets = arrays["sub_element_offset"] + total_before = len(arrays["sub_element_cell_types"]) + + def case_range(mask: int) -> tuple[int, int]: + return offsets[mask], offsets[mask + 1] + + # Metadata tables (only emitted once in inside header) + case_is_ambiguous_tbl = [0] * 16 + amb_case_id = [-1] * 16 + for amb_id, m in enumerate(amb_masks): + case_is_ambiguous_tbl[m] = 1 + amb_case_id[m] = amb_id + + meta: Dict[str, List] = { + "case_is_ambiguous_tbl": case_is_ambiguous_tbl, + "amb_case_id": amb_case_id, + "amb_range_inside": [], + "amb_range_outside": [], + "amb_range_interface": [], + } + + if table_kind == "interface": + # No new subcells needed; both pairings already exist in base tables. + v0_begin, v0_end = case_range(0b1010) # edges (0,1) and (2,3) + v1_begin, v1_end = case_range(0b0101) # edges (0,3) and (1,2) + for _ in amb_masks: + meta["amb_range_interface"].extend([v0_begin, v0_end, v1_begin, v1_end]) + return meta + + if table_kind == "inside": + # Append connected-region decompositions for both diagonals. + # Connected diagonal (0,2): polygon (V0,E0,E1,V2,E2,E3) split into two quads. + conn_02_begin = len(arrays["sub_element_cell_types"]) + _append_quad(arrays, [100, 0, 1, 102]) + _append_quad(arrays, [100, 102, 2, 3]) + conn_02_end = len(arrays["sub_element_cell_types"]) + + # Connected diagonal (1,3): polygon (V1,E1,E2,V3,E3,E0) split into two quads. + conn_13_begin = len(arrays["sub_element_cell_types"]) + _append_quad(arrays, [101, 1, 2, 103]) + _append_quad(arrays, [101, 103, 3, 0]) + conn_13_end = len(arrays["sub_element_cell_types"]) + + base_05 = case_range(0b0101) + base_10 = case_range(0b1010) + + # For mask 0101, inside vertices lie on diagonal (0,2) + meta["amb_range_inside"].extend( + [conn_02_begin, conn_02_end, base_05[0], base_05[1]] + ) + # For mask 1010, inside vertices lie on diagonal (1,3) + meta["amb_range_inside"].extend( + [base_10[0], base_10[1], conn_13_begin, conn_13_end] + ) + + return meta + + if table_kind == "outside": + # Append disconnected-region triangulations for both diagonals. + # Disconnected diagonal (0,2): triangles at V0 and V2 + disc_02_begin = len(arrays["sub_element_cell_types"]) + for tri in ([100, 0, 3], [102, 1, 2]): + _append_triangle(arrays, tri) + disc_02_end = len(arrays["sub_element_cell_types"]) + + # Disconnected diagonal (1,3): triangles at V1 and V3 + disc_13_begin = len(arrays["sub_element_cell_types"]) + for tri in ([101, 0, 1], [103, 2, 3]): + _append_triangle(arrays, tri) + disc_13_end = len(arrays["sub_element_cell_types"]) + + base_05 = case_range(0b0101) + base_10 = case_range(0b1010) + + # For mask 0101, outside vertices lie on diagonal (1,3) + meta["amb_range_outside"].extend( + [disc_13_begin, disc_13_end, base_05[0], base_05[1]] + ) + # For mask 1010, outside vertices lie on diagonal (0,2) + meta["amb_range_outside"].extend( + [base_10[0], base_10[1], disc_02_begin, disc_02_end] + ) + + return meta + + return None + + def _extract_subcells_from_flat(arrays: Dict[str, List]) -> Dict: """Extract subcell data from VTK flat format.""" sub_element = arrays["sub_element"] diff --git a/tablegen/cutcells_tablegen/normalize.py b/tablegen/cutcells_tablegen/normalize.py index 2bc1870..7e0496e 100644 --- a/tablegen/cutcells_tablegen/normalize.py +++ b/tablegen/cutcells_tablegen/normalize.py @@ -26,6 +26,8 @@ def token_from_ref(ref: PointRef) -> int: return 100 + idx if kind == "E": return idx + if kind == "N": + return 200 + idx raise ValueError(f"Unsupported point reference: {ref}") @@ -46,9 +48,28 @@ def normalize_cases(cell_type: str, cases: Sequence[ClipCase]) -> Dict[str, List sub_element_cell_types: List[int] = [] sub_element: List[int] = [] + special_point_count: List[int] = [] + special_point_offset: List[int] = [0] + special_point_data: List[int] = [] + for case in cases: intersected_edges.append(build_intersected_edges(case, n_edges)) + # Special points (e.g. VTK centroid N0) + # Encoding per case: repeated blocks [nrefs, ref0, ref1, ...] + sp_list = list(case.special_points) + sp_list.sort(key=lambda sp: sp.point_id) + special_point_count.append(len(sp_list)) + for sp in sp_list: + # Token for the special point itself is implicit: 200 + sp.point_id + # References must not include other special points. + for ref in sp.refs: + if ref[0] == "N": + raise ValueError("Special point refs must not include 'N' refs") + special_point_data.append(len(sp.refs)) + special_point_data.extend(token_from_ref(r) for r in sp.refs) + special_point_offset.append(len(special_point_data)) + for emitted in case.cells: if emitted.cell_type not in CELL_TYPE_TO_ENUM: raise ValueError(f"Unknown emitted cell type: {emitted.cell_type}") @@ -58,10 +79,17 @@ def normalize_cases(cell_type: str, cases: Sequence[ClipCase]) -> Dict[str, List sub_element_offset.append(len(sub_element_cell_types)) - return { + out = { "intersected_edges": intersected_edges, "sub_element_offset": sub_element_offset, "sub_element_cell_types": sub_element_cell_types, "sub_element": sub_element, "extra_coords": [], # placeholder; fill if Steiner points are added later } + + if any(c > 0 for c in special_point_count): + out["special_point_count"] = special_point_count + out["special_point_offset"] = special_point_offset + out["special_point_data"] = special_point_data + + return out diff --git a/tablegen/cutcells_tablegen/topology.py b/tablegen/cutcells_tablegen/topology.py index 6fd67f5..4c2dc3f 100644 --- a/tablegen/cutcells_tablegen/topology.py +++ b/tablegen/cutcells_tablegen/topology.py @@ -34,8 +34,10 @@ class CellTopology: (7, 4), # 7 (0, 4), # 8 (1, 5), # 9 - (2, 6), # 10 - (3, 7), # 11 + # NOTE: VTK's TableBasedClipCases.h uses (3,7) as edge 10 and (2,6) as edge 11 + # for VTK_HEXAHEDRON (see vtkTableBasedClipCasesBase::CellEdges). + (3, 7), # 10 + (2, 6), # 11 ), ), "prism": CellTopology( diff --git a/tablegen/cutcells_tablegen/vtk_tablebasedclip_parser.py b/tablegen/cutcells_tablegen/vtk_tablebasedclip_parser.py new file mode 100644 index 0000000..c75700a --- /dev/null +++ b/tablegen/cutcells_tablegen/vtk_tablebasedclip_parser.py @@ -0,0 +1,268 @@ +"""Parse VTK TableBasedClip case tables. + +This module is intentionally lightweight: it only extracts the VTK_HEXAHEDRON +case stream from VTK's `Filters/General/vtkTableBasedClipCases.h`. + +We do not depend on VTK headers/libraries; instead we parse the published +header text (either from a local file path or downloaded URL). + +The extracted structure is converted into CutCells tablegen `ClipCase` objects. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Iterable, List, Sequence + +import os +import re +import urllib.request + + +_VTK_DEFAULT_URL = "https://raw.githubusercontent.com/Kitware/VTK/{ref}/Filters/General/vtkTableBasedClipCases.h" + + +@dataclass(frozen=True) +class VtkCaseRecord: + case_id: int + items: Sequence[Sequence[str]] + # Each item is a token list: [ST_*, n, p0, p1, ...] + + +def _strip_comments(text: str) -> str: + # Remove /* ... */ comments and // line comments + text = re.sub(r"/\*.*?\*/", " ", text, flags=re.DOTALL) + text = re.sub(r"//.*?$", " ", text, flags=re.MULTILINE) + return text + + +def _read_header_text(path: str | None, ref: str) -> str: + if path: + with open(path, "r", encoding="utf-8") as f: + return f.read() + + url = _VTK_DEFAULT_URL.format(ref=ref) + with urllib.request.urlopen(url) as resp: + return resp.read().decode("utf-8") + + +def _find_hex_block(text: str) -> str: + # VTK's header contains multiple hexahedron-related tables *and* several + # earlier occurrences of the string "VTK_HEXAHEDRON" (e.g. in topology + # comments). We must select the actual hexahedron case stream inside the + # big CellCases array. + # + # Robust approach: + # - search for the *case table marker* line: "// VTK_HEXAHEDRON" + # - require it to be followed by the 256-case stream starting at + # "/* case 0 */ 0," + # - validate a couple of hexahedron-specific signatures to avoid matching + # other tables. + marker_pat = re.compile(r"\n\s*//\s*VTK_HEXAHEDRON\s*\n") + + # Signature checks within the hexahedron volume clip case stream. + case0_pat = re.compile(r"/\*\s*case\s*0\s*\*/\s*(\d+)\s*,") + case1_sig = re.compile( + r"/\*\s*case\s*1\s*\*/\s*1\s*,\s*ST_TET\s*,\s*4\s*,\s*P0\s*,\s*EA\s*,\s*ED\s*,\s*EI\s*," + ) + # A second signature that differs between various hex-related tables. + # In the VTK_HEXAHEDRON clip table, case 153 is a single hex: + # ST_HEX, 8, EA, EE, EG, EC, P0, P4, P7, P3 + case153_sig = re.compile( + r"/\*\s*case\s*153\s*\*/\s*1\s*,\s*ST_HEX\s*,\s*8\s*,\s*EA\s*,\s*EE\s*,\s*EG\s*,\s*EC\s*,\s*P0\s*,\s*P4\s*,\s*P7\s*,\s*P3\s*," + ) + + for m in marker_pat.finditer(text): + # Look ahead; the full 256-case table is large. + window = text[m.end() : m.end() + 250000] + + m0 = case0_pat.search(window) + if not m0 or m0.group(1) != "0": + continue + + # Bind signatures to the specific candidate stream. + tail = window[m0.start() : m0.start() + 60000] + if not case1_sig.search(tail): + continue + if not case153_sig.search(tail): + continue + + # Important: later we strip comments before tokenizing; the "// VTK_*" + # marker would be removed, so we return a slice starting exactly at the + # numeric case stream (the count following "/* case 0 */"). + start = m.end() + m0.start(1) + return text[start : start + 250000] + + raise RuntimeError( + "Could not locate the VTK_HEXAHEDRON clip case stream (expected '/* case 0 */ 0' and known signatures)" + ) + + +def _tokenize_case_block(block: str) -> List[str]: + # Keep identifiers like ST_TET, P0, EA, N0 and integers. + # Strip comments first to avoid commas in comments. + block = _strip_comments(block) + + # Reduce to comma-separated tokens. + tokens = [t.strip() for t in block.split(",")] + return [t for t in tokens if t] + + +def _parse_cases_from_tokens(tokens: Sequence[str]) -> List[VtkCaseRecord]: + # The provided token stream is expected to start at the numeric case stream + # (i.e. the count for case 0). Parse n cases sequentially. + return _parse_n_cases_from_tokens(tokens, 256) + + +def _parse_n_cases_from_tokens( + tokens: Sequence[str], n_cases: int +) -> List[VtkCaseRecord]: + i = 0 + if i >= len(tokens) or not re.fullmatch(r"\d+", tokens[i]): + raise RuntimeError("Token stream does not start with a case count") + + cases: List[VtkCaseRecord] = [] + for case_id in range(n_cases): + if i >= len(tokens): + raise RuntimeError(f"Unexpected end of tokens while parsing case {case_id}") + n_items = int(tokens[i]) + i += 1 + + items: List[List[str]] = [] + for _ in range(n_items): + st = tokens[i] + i += 1 + n = int(tokens[i]) + i += 1 + pts = list(tokens[i : i + n]) + i += n + items.append([st, str(n), *pts]) + + cases.append(VtkCaseRecord(case_id=case_id, items=tuple(items))) + + return cases + + +def load_hexahedron_cases( + *, + vtk_header_path: str | None = None, + vtk_ref: str | None = None, +) -> List[VtkCaseRecord]: + """Load VTK_HEXAHEDRON case records. + + If `vtk_header_path` is not provided, the header is downloaded from GitHub. + + Environment variables: + - CUT_CELLS_VTK_HEADER: local path override + - CUT_CELLS_VTK_REF: Git ref (default: master) + """ + + if vtk_header_path is None: + vtk_header_path = os.environ.get("CUT_CELLS_VTK_HEADER") + if vtk_ref is None: + vtk_ref = os.environ.get("CUT_CELLS_VTK_REF", "master") + + text = _read_header_text(vtk_header_path, vtk_ref) + block = _find_hex_block(text) + tokens = _tokenize_case_block(block) + return _parse_n_cases_from_tokens(tokens, 256) + + +def _find_wedge_block(text: str) -> str: + # Select the VTK_WEDGE case stream inside the CellCases array. + marker_pat = re.compile(r"\n\s*//\s*VTK_WEDGE\s*\n") + + case0_pat = re.compile(r"/\*\s*case\s*0\s*\*/\s*(\d+)\s*,") + # Signature anchored to the wedge case table: case 1 is a tet containing P0 + # and the three edge points around vertex 0. + case1_sig = re.compile( + r"/\*\s*case\s*1\s*\*/\s*1\s*,\s*ST_TET\s*,\s*4\s*,\s*EG\s*,\s*EA\s*,\s*EC\s*,\s*P0\s*," + ) + case63_sig = re.compile(r"/\*\s*case\s*63\s*\*/") + + for m in marker_pat.finditer(text): + window = text[m.end() : m.end() + 80000] + m0 = case0_pat.search(window) + if not m0 or m0.group(1) != "0": + continue + + # Bind checks to the candidate stream. + tail = window[m0.start() : m0.start() + 20000] + if not case1_sig.search(tail): + continue + if not case63_sig.search(tail): + continue + + start = m.end() + m0.start(1) + return text[start : start + 80000] + + raise RuntimeError( + "Could not locate the VTK_WEDGE clip case stream (expected '/* case 0 */ 0' and known signatures)" + ) + + +def load_wedge_cases( + *, + vtk_header_path: str | None = None, + vtk_ref: str | None = None, +) -> List[VtkCaseRecord]: + """Load VTK_WEDGE (prism) case records (64 cases).""" + + if vtk_header_path is None: + vtk_header_path = os.environ.get("CUT_CELLS_VTK_HEADER") + if vtk_ref is None: + vtk_ref = os.environ.get("CUT_CELLS_VTK_REF", "master") + + text = _read_header_text(vtk_header_path, vtk_ref) + block = _find_wedge_block(text) + tokens = _tokenize_case_block(block) + return _parse_n_cases_from_tokens(tokens, 64) + + +def _find_pyramid_block(text: str) -> str: + # Select the VTK_PYRAMID case stream inside the CellCases array. + marker_pat = re.compile(r"\n\s*//\s*VTK_PYRAMID\s*\n") + + case0_pat = re.compile(r"/\*\s*case\s*0\s*\*/\s*(\d+)\s*,") + # Pyramid signature: case 1 is a tet containing P0 and the three edge points around vertex 0. + case1_sig = re.compile( + r"/\*\s*case\s*1\s*\*/\s*1\s*,\s*ST_TET\s*,\s*4\s*,\s*P0\s*,\s*EA\s*,\s*ED\s*,\s*EE\s*," + ) + case31_sig = re.compile(r"/\*\s*case\s*31\s*\*/") + + for m in marker_pat.finditer(text): + window = text[m.end() : m.end() + 120000] + m0 = case0_pat.search(window) + if not m0 or m0.group(1) != "0": + continue + + tail = window[m0.start() : m0.start() + 30000] + if not case1_sig.search(tail): + continue + if not case31_sig.search(tail): + continue + + start = m.end() + m0.start(1) + return text[start : start + 120000] + + raise RuntimeError( + "Could not locate the VTK_PYRAMID clip case stream (expected '/* case 0 */ 0' and known signatures)" + ) + + +def load_pyramid_cases( + *, + vtk_header_path: str | None = None, + vtk_ref: str | None = None, +) -> List[VtkCaseRecord]: + """Load VTK_PYRAMID case records (32 cases).""" + + if vtk_header_path is None: + vtk_header_path = os.environ.get("CUT_CELLS_VTK_HEADER") + if vtk_ref is None: + vtk_ref = os.environ.get("CUT_CELLS_VTK_REF", "master") + + text = _read_header_text(vtk_header_path, vtk_ref) + block = _find_pyramid_block(text) + tokens = _tokenize_case_block(block) + return _parse_n_cases_from_tokens(tokens, 32) diff --git a/tablegen/cutcells_tablegen/vtk_tables_import.py b/tablegen/cutcells_tablegen/vtk_tables_import.py index bffa0e8..7279071 100644 --- a/tablegen/cutcells_tablegen/vtk_tables_import.py +++ b/tablegen/cutcells_tablegen/vtk_tables_import.py @@ -6,11 +6,20 @@ from __future__ import annotations from dataclasses import dataclass -from typing import List, Literal, Tuple +from typing import List, Literal, Sequence, Tuple + +import re from .topology import edge_endpoints -PointRef = Tuple[Literal["V", "E"], int] +PointRef = Tuple[Literal["V", "E", "N"], int] + + +@dataclass(frozen=True) +class SpecialPoint: + # Currently only VTK's centroid point N0 is expected. + point_id: int + refs: Tuple[PointRef, ...] @dataclass(frozen=True) @@ -23,6 +32,7 @@ class EmittedCell: class ClipCase: intersected_edges: Tuple[int, ...] cells: Tuple[EmittedCell, ...] + special_points: Tuple[SpecialPoint, ...] = () TableKind = Literal["inside", "outside", "interface"] @@ -67,6 +77,372 @@ def registered_cell_types() -> List[str]: return list(VTK_TABLES.keys()) +# --- Hexahedron TableBasedClip (VTK header parse) ------------------------- + + +def _intersected_edges_from_mask(cell_type: str, mask: int) -> Tuple[int, ...]: + edges = edge_endpoints(cell_type) + out: List[int] = [] + for eid, (a, b) in enumerate(edges): + sa = (mask >> a) & 1 + sb = (mask >> b) & 1 + if sa != sb: + out.append(eid) + return tuple(out) + + +def _vtk_name_to_point_ref(name: str) -> PointRef: + # Vertices + if re.fullmatch(r"P[0-7]", name): + return ("V", int(name[1])) + + # Edges for hex: EA..EL correspond to 12 edges, contiguous. + if re.fullmatch(r"E[A-L]", name): + return ("E", ord(name[1]) - ord("A")) + + # Centroid + if name == "N0": + return ("N", 0) + + raise ValueError(f"Unsupported VTK point name: {name}") + + +def _vtk_st_to_cell_type(st: str) -> str: + # We only need 3D volume cell types here. + if st == "ST_TET": + return "tetrahedron" + if st == "ST_PYR": + return "pyramid" + if st == "ST_WDG": + return "prism" + if st == "ST_HEX": + return "hexahedron" + if st == "ST_PNT": + return "__point__" + # VTK tables sometimes contain lower-dimensional primitives (e.g. vertex-only + # artifacts) that are not representable in CutCells' volume tables. + if st in {"ST_VTX", "ST_LN", "ST_LIN", "ST_TRI", "ST_QUA", "ST_POLY"}: + return "__skip__" + raise ValueError(f"Unsupported VTK shape token: {st}") + + +def _faces_for_cell(cell_type: str) -> Tuple[Tuple[int, ...], ...]: + # Face templates in VTK point ordering. + if cell_type == "tetrahedron": + return ((0, 1, 2), (0, 3, 1), (1, 3, 2), (0, 2, 3)) + if cell_type == "pyramid": + return ((0, 1, 2, 3), (0, 4, 1), (1, 4, 2), (2, 4, 3), (3, 4, 0)) + if cell_type == "prism": + return ((0, 1, 2), (3, 5, 4), (0, 3, 4, 1), (1, 4, 5, 2), (2, 5, 3, 0)) + if cell_type == "hexahedron": + return ( + (0, 1, 2, 3), + (4, 7, 6, 5), + (0, 4, 5, 1), + (1, 5, 6, 2), + (2, 6, 7, 3), + (3, 7, 4, 0), + ) + raise ValueError(f"Unsupported cell type for face extraction: {cell_type}") + + +def _derive_interface_case_from_inside(inside: ClipCase) -> ClipCase: + # Collect boundary faces from inside volume cells. + face_counts: dict[Tuple[int, ...], int] = {} + face_oriented: dict[Tuple[int, ...], Tuple[PointRef, ...]] = {} + + def key_for_face(face: Sequence[PointRef]) -> Tuple[int, ...]: + # Stable key: sort by a numeric encoding of PointRef. + def enc(ref: PointRef) -> int: + kind, idx = ref + if kind == "E": + return idx + if kind == "V": + return 100 + idx + if kind == "N": + return 200 + idx + raise ValueError(ref) + + return tuple(sorted(enc(r) for r in face)) + + for cell in inside.cells: + templ = _faces_for_cell(cell.cell_type) + for f in templ: + face = tuple(cell.vertices[i] for i in f) + k = key_for_face(face) + face_counts[k] = face_counts.get(k, 0) + 1 + face_oriented.setdefault(k, face) + + iface_cells: List[EmittedCell] = [] + for k, count in face_counts.items(): + if count != 1: + continue + face = face_oriented[k] + + # In the generic (phi!=0) case, interface faces should contain no original vertices. + if any(kind == "V" for (kind, _) in face): + continue + + if len(face) == 3: + iface_cells.append(EmittedCell(cell_type="triangle", vertices=face)) + elif len(face) == 4: + iface_cells.append(EmittedCell(cell_type="quadrilateral", vertices=face)) + + # Only keep special points if referenced by interface faces. + used_special: set[PointRef] = set() + for c in iface_cells: + for r in c.vertices: + if r[0] == "N": + used_special.add(r) + special_points = tuple( + sp for sp in inside.special_points if ("N", sp.point_id) in used_special + ) + + return ClipCase( + intersected_edges=inside.intersected_edges, + cells=tuple(iface_cells), + special_points=special_points, + ) + + +def _build_hexahedron_tables() -> ClipTables: + """Build hexahedron tables by parsing VTK's published case tables. + + This supports VTK's centroid point (ST_PNT -> N0) by storing its defining + references in `ClipCase.special_points`. + """ + + from .vtk_tablebasedclip_parser import load_hexahedron_cases + + inside_cases: List[ClipCase] = [] + + vtk_cases = load_hexahedron_cases() + if len(vtk_cases) != 256: + raise RuntimeError(f"Expected 256 hexahedron cases, got {len(vtk_cases)}") + + for case_id, vtk_case in enumerate(vtk_cases): + if case_id != vtk_case.case_id: + raise RuntimeError("Case ids not sequential") + + special_points: List[SpecialPoint] = [] + emitted: List[EmittedCell] = [] + + for item in vtk_case.items: + st = item[0] + n = int(item[1]) + pts = item[2:] + if len(pts) != n: + raise RuntimeError("Malformed case item") + + cell_type = _vtk_st_to_cell_type(st) + if cell_type == "__skip__": + continue + + if cell_type == "__point__": + # Define N0 as an unweighted average (duplicates => weights). + refs = tuple(_vtk_name_to_point_ref(p) for p in pts) + special_points.append(SpecialPoint(point_id=0, refs=refs)) + continue + + verts = tuple(_vtk_name_to_point_ref(p) for p in pts) + emitted.append(EmittedCell(cell_type=cell_type, vertices=verts)) + + # Derive intersected edges from the actual VTK case stream. + # + # Rationale: VTK's hexahedron case index does not appear to map 1:1 to a + # simple vertex-bitmask in P0..P7 order (e.g. case 188 references EL, but + # a naive mask-based edge test would miss it). By collecting all edge + # references used by the emitted volume cells (and by special-point + # definitions), we guarantee runtime will create every intersection token + # that the tables may reference. + used_edges: set[int] = set() + for cell in emitted: + for kind, idx in cell.vertices: + if kind == "E": + used_edges.add(idx) + for sp in special_points: + for kind, idx in sp.refs: + if kind == "E": + used_edges.add(idx) + + inside_cases.append( + ClipCase( + intersected_edges=tuple(sorted(used_edges)), + cells=tuple(emitted), + special_points=tuple(special_points), + ) + ) + + # Outside is just the inside of the complemented mask. + outside_cases = [inside_cases[mask ^ 0xFF] for mask in range(256)] + + # Interface faces derived from inside volume boundary. + interface_cases = [_derive_interface_case_from_inside(c) for c in inside_cases] + + return ClipTables( + inside=inside_cases, + outside=outside_cases, + interface=interface_cases, + ) + + +def _build_prism_tables() -> ClipTables: + """Build prism (VTK_WEDGE) tables by parsing VTK's published case tables. + + Like the hexahedron tables, this supports VTK's centroid point (ST_PNT -> N0) + by storing its defining references in `ClipCase.special_points`. + """ + + from .vtk_tablebasedclip_parser import load_wedge_cases + + inside_cases: List[ClipCase] = [] + + vtk_cases = load_wedge_cases() + if len(vtk_cases) != 64: + raise RuntimeError(f"Expected 64 wedge cases, got {len(vtk_cases)}") + + for case_id, vtk_case in enumerate(vtk_cases): + if case_id != vtk_case.case_id: + raise RuntimeError("Case ids not sequential") + + special_points: List[SpecialPoint] = [] + emitted: List[EmittedCell] = [] + + for item in vtk_case.items: + st = item[0] + n = int(item[1]) + pts = item[2:] + if len(pts) != n: + raise RuntimeError("Malformed case item") + + cell_type = _vtk_st_to_cell_type(st) + if cell_type == "__skip__": + continue + + if cell_type == "__point__": + refs = tuple(_vtk_name_to_point_ref(p) for p in pts) + special_points.append(SpecialPoint(point_id=0, refs=refs)) + continue + + verts = tuple(_vtk_name_to_point_ref(p) for p in pts) + emitted.append(EmittedCell(cell_type=cell_type, vertices=verts)) + + used_edges: set[int] = set() + for cell in emitted: + for kind, idx in cell.vertices: + if kind == "E": + used_edges.add(idx) + for sp in special_points: + for kind, idx in sp.refs: + if kind == "E": + used_edges.add(idx) + + # Sanity: wedge has 9 edges (EA..EI). If we ever see larger edge ids, + # it likely indicates we parsed the wrong table block. + if any(eid >= 9 for eid in used_edges): + raise RuntimeError( + f"Wedge table references invalid edge id(s): {sorted(used_edges)}" + ) + + inside_cases.append( + ClipCase( + intersected_edges=tuple(sorted(used_edges)), + cells=tuple(emitted), + special_points=tuple(special_points), + ) + ) + + # Outside is just the inside of the complemented mask. + outside_cases = [inside_cases[mask ^ 0x3F] for mask in range(64)] + + # Interface faces derived from inside volume boundary. + interface_cases = [_derive_interface_case_from_inside(c) for c in inside_cases] + + return ClipTables( + inside=inside_cases, + outside=outside_cases, + interface=interface_cases, + ) + + +def _build_pyramid_tables() -> ClipTables: + """Build pyramid (VTK_PYRAMID) tables by parsing VTK's published case tables. + + Like the hexahedron/prism tables, this supports VTK's centroid point + (ST_PNT -> N0) by storing its defining references in `ClipCase.special_points`. + """ + + from .vtk_tablebasedclip_parser import load_pyramid_cases + + inside_cases: List[ClipCase] = [] + + vtk_cases = load_pyramid_cases() + if len(vtk_cases) != 32: + raise RuntimeError(f"Expected 32 pyramid cases, got {len(vtk_cases)}") + + for case_id, vtk_case in enumerate(vtk_cases): + if case_id != vtk_case.case_id: + raise RuntimeError("Case ids not sequential") + + special_points: List[SpecialPoint] = [] + emitted: List[EmittedCell] = [] + + for item in vtk_case.items: + st = item[0] + n = int(item[1]) + pts = item[2:] + if len(pts) != n: + raise RuntimeError("Malformed case item") + + cell_type = _vtk_st_to_cell_type(st) + if cell_type == "__skip__": + continue + + if cell_type == "__point__": + refs = tuple(_vtk_name_to_point_ref(p) for p in pts) + special_points.append(SpecialPoint(point_id=0, refs=refs)) + continue + + verts = tuple(_vtk_name_to_point_ref(p) for p in pts) + emitted.append(EmittedCell(cell_type=cell_type, vertices=verts)) + + used_edges: set[int] = set() + for cell in emitted: + for kind, idx in cell.vertices: + if kind == "E": + used_edges.add(idx) + for sp in special_points: + for kind, idx in sp.refs: + if kind == "E": + used_edges.add(idx) + + # Sanity: pyramid has 8 edges (EA..EH) + if any(eid >= 8 for eid in used_edges): + raise RuntimeError( + f"Pyramid table references invalid edge id(s): {sorted(used_edges)}" + ) + + inside_cases.append( + ClipCase( + intersected_edges=tuple(sorted(used_edges)), + cells=tuple(emitted), + special_points=tuple(special_points), + ) + ) + + # Outside is just the inside of the complemented mask. + outside_cases = [inside_cases[mask ^ 0x1F] for mask in range(32)] + + # Interface faces derived from inside volume boundary. + interface_cases = [_derive_interface_case_from_inside(c) for c in inside_cases] + + return ClipTables( + inside=inside_cases, + outside=outside_cases, + interface=interface_cases, + ) + + # --- Quadrilateral TableBasedClip (marching squares style) ----------------- @@ -267,3 +643,12 @@ def _build_quadrilateral_tables() -> ClipTables: # Register quad tables eagerly register_tables("quadrilateral", _build_quadrilateral_tables()) + +# Register hex tables eagerly (requires VTK at runtime) +register_tables("hexahedron", _build_hexahedron_tables()) + +# Register prism (wedge) tables eagerly (requires VTK at runtime) +register_tables("prism", _build_prism_tables()) + +# Register pyramid tables eagerly (requires VTK at runtime) +register_tables("pyramid", _build_pyramid_tables()) diff --git a/tablegen/scripts/gen_tables.py b/tablegen/scripts/gen_tables.py index 1c74873..6b921ec 100644 --- a/tablegen/scripts/gen_tables.py +++ b/tablegen/scripts/gen_tables.py @@ -13,6 +13,12 @@ import argparse from pathlib import Path +import sys + +# Allow running this script without installing the tablegen package +_THIS_DIR = Path(__file__).resolve().parent +_TABLEGEN_ROOT = _THIS_DIR.parent +sys.path.insert(0, str(_TABLEGEN_ROOT)) from cutcells_tablegen.emit_c_headers import emit_all_tet_like from cutcells_tablegen.normalize import normalize_cases From 98902c62e8b625a953eb810f8616cddb38aa8366 Mon Sep 17 00:00:00 2001 From: Susanne Claus Date: Mon, 22 Dec 2025 22:47:54 +0100 Subject: [PATCH 3/7] generator update --- README.md | 31 ++++ .../generated/cut_hexahedron_inside_tables.h | 13 ++ .../cut_hexahedron_interface_tables.h | 13 ++ .../generated/cut_hexahedron_outside_tables.h | 13 ++ cpp/src/generated/cut_prism_inside_tables.h | 10 ++ .../generated/cut_prism_interface_tables.h | 10 ++ cpp/src/generated/cut_prism_outside_tables.h | 10 ++ cpp/src/generated/cut_pyramid_inside_tables.h | 10 ++ .../generated/cut_pyramid_interface_tables.h | 10 ++ .../generated/cut_pyramid_outside_tables.h | 10 ++ .../cut_hexahedron_cases_subplots.py | 6 +- .../cut_hexahedron_gyroid_thick.py | 151 ++++++++++++++++++ tablegen/cutcells_tablegen/emit_c_headers.py | 58 ++++++- .../vtk_tablebasedclip_parser.py | 8 +- .../cutcells_tablegen/vtk_tables_import.py | 6 + tablegen/scripts/gen_tables.py | 69 ++++++-- third_party/THIRD_PARTY_NOTICES.md | 10 ++ third_party/VTK-Copyright.txt | 34 ++++ 18 files changed, 453 insertions(+), 19 deletions(-) create mode 100644 python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py create mode 100644 third_party/THIRD_PARTY_NOTICES.md create mode 100644 third_party/VTK-Copyright.txt diff --git a/README.md b/README.md index 3df8c00..0f5e64c 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,32 @@ and then python3 -m pip install . ``` +### Note on conda toolchains (recommended) + +When building inside a conda environment (e.g. `fenicsx-dev`), build/install the **C++ library** and the **Python extension** +with the **same compiler toolchain** (typically the conda-provided Clang). Otherwise, you can hit link errors due to C++ +template/ABI symbol mismatches. + +One reliable workflow is: + +```console +# Resolve the conda env prefix (avoid relying on $CONDA_PREFIX with `conda run`) +ENV_PREFIX="$(conda run -n fenicsx-dev python -c 'import sys; print(sys.prefix)')" + +# C++ library into the env prefix +cd cpp +conda run -n fenicsx-dev cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$ENV_PREFIX" \ + -DCMAKE_C_COMPILER="$ENV_PREFIX/bin/x86_64-apple-darwin13.4.0-clang" \ + -DCMAKE_CXX_COMPILER="$ENV_PREFIX/bin/x86_64-apple-darwin13.4.0-clang++" \ + -B build-conda -S . +conda run -n fenicsx-dev cmake --build build-conda +conda run -n fenicsx-dev cmake --install build-conda + +# Python extension against that install +cd ../python +env CMAKE_PREFIX_PATH="$ENV_PREFIX" conda run -n fenicsx-dev python -m pip install -e . --no-deps --force-reinstall +``` + ## Running demons There are demons for both the C++ and the python interface. @@ -64,6 +90,11 @@ in the corresponding demo folder, e.g. `cpp/demo/cut_triangle` The python demos are located in `python/demo`. +## Third-party notices + +Some generated clip/cut case tables (hexahedron/prism/pyramid) are derived from VTK's `vtkTableBasedClipCases.h`. +VTK's BSD-3-Clause license text is included in `third_party/VTK-Copyright.txt`. + ## Dependencies CutCells requires a C++20 compiler and depends on the C++ standard template library. diff --git a/cpp/src/generated/cut_hexahedron_inside_tables.h b/cpp/src/generated/cut_hexahedron_inside_tables.h index 871a915..3c44567 100644 --- a/cpp/src/generated/cut_hexahedron_inside_tables.h +++ b/cpp/src/generated/cut_hexahedron_inside_tables.h @@ -1,6 +1,19 @@ #ifndef CUT_CELLS_HEXAHEDRON_INSIDE_TABLES_H #define CUT_CELLS_HEXAHEDRON_INSIDE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK ref: master +// VTK header path override: (none) +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::hexahedron { diff --git a/cpp/src/generated/cut_hexahedron_interface_tables.h b/cpp/src/generated/cut_hexahedron_interface_tables.h index 2623586..c39ac9c 100644 --- a/cpp/src/generated/cut_hexahedron_interface_tables.h +++ b/cpp/src/generated/cut_hexahedron_interface_tables.h @@ -1,6 +1,19 @@ #ifndef CUT_CELLS_HEXAHEDRON_INTERFACE_TABLES_H #define CUT_CELLS_HEXAHEDRON_INTERFACE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK ref: master +// VTK header path override: (none) +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::hexahedron { diff --git a/cpp/src/generated/cut_hexahedron_outside_tables.h b/cpp/src/generated/cut_hexahedron_outside_tables.h index b8cf519..c31412d 100644 --- a/cpp/src/generated/cut_hexahedron_outside_tables.h +++ b/cpp/src/generated/cut_hexahedron_outside_tables.h @@ -1,6 +1,19 @@ #ifndef CUT_CELLS_HEXAHEDRON_OUTSIDE_TABLES_H #define CUT_CELLS_HEXAHEDRON_OUTSIDE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK ref: master +// VTK header path override: (none) +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::hexahedron { diff --git a/cpp/src/generated/cut_prism_inside_tables.h b/cpp/src/generated/cut_prism_inside_tables.h index ff5f5db..b02877b 100644 --- a/cpp/src/generated/cut_prism_inside_tables.h +++ b/cpp/src/generated/cut_prism_inside_tables.h @@ -1,6 +1,16 @@ #ifndef CUT_CELLS_PRISM_INSIDE_TABLES_H #define CUT_CELLS_PRISM_INSIDE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::prism { diff --git a/cpp/src/generated/cut_prism_interface_tables.h b/cpp/src/generated/cut_prism_interface_tables.h index c8d613d..d44e4a5 100644 --- a/cpp/src/generated/cut_prism_interface_tables.h +++ b/cpp/src/generated/cut_prism_interface_tables.h @@ -1,6 +1,16 @@ #ifndef CUT_CELLS_PRISM_INTERFACE_TABLES_H #define CUT_CELLS_PRISM_INTERFACE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::prism { diff --git a/cpp/src/generated/cut_prism_outside_tables.h b/cpp/src/generated/cut_prism_outside_tables.h index 42de440..5101d4f 100644 --- a/cpp/src/generated/cut_prism_outside_tables.h +++ b/cpp/src/generated/cut_prism_outside_tables.h @@ -1,6 +1,16 @@ #ifndef CUT_CELLS_PRISM_OUTSIDE_TABLES_H #define CUT_CELLS_PRISM_OUTSIDE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::prism { diff --git a/cpp/src/generated/cut_pyramid_inside_tables.h b/cpp/src/generated/cut_pyramid_inside_tables.h index 2f85e5b..9f8dc23 100644 --- a/cpp/src/generated/cut_pyramid_inside_tables.h +++ b/cpp/src/generated/cut_pyramid_inside_tables.h @@ -1,6 +1,16 @@ #ifndef CUT_CELLS_PYRAMID_INSIDE_TABLES_H #define CUT_CELLS_PYRAMID_INSIDE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::pyramid { diff --git a/cpp/src/generated/cut_pyramid_interface_tables.h b/cpp/src/generated/cut_pyramid_interface_tables.h index 1607c70..1610a07 100644 --- a/cpp/src/generated/cut_pyramid_interface_tables.h +++ b/cpp/src/generated/cut_pyramid_interface_tables.h @@ -1,6 +1,16 @@ #ifndef CUT_CELLS_PYRAMID_INTERFACE_TABLES_H #define CUT_CELLS_PYRAMID_INTERFACE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::pyramid { diff --git a/cpp/src/generated/cut_pyramid_outside_tables.h b/cpp/src/generated/cut_pyramid_outside_tables.h index f68c5fc..8cfd9b1 100644 --- a/cpp/src/generated/cut_pyramid_outside_tables.h +++ b/cpp/src/generated/cut_pyramid_outside_tables.h @@ -1,6 +1,16 @@ #ifndef CUT_CELLS_PYRAMID_OUTSIDE_TABLES_H #define CUT_CELLS_PYRAMID_OUTSIDE_TABLES_H +// ----------------------------------------------------------------------------- +// This file is generated by CutCells tablegen. +// +// It contains case tables derived from VTK's vtkTableBasedClipCases.h +// (Visualization Toolkit, TableBasedClip). +// +// VTK is licensed under the BSD 3-Clause License. +// See third_party/VTK-Copyright.txt in this repository. +// ----------------------------------------------------------------------------- + #include "cell_types.h" namespace cutcells::cell::pyramid { diff --git a/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py b/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py index a651c46..59fbd2d 100644 --- a/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py +++ b/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py @@ -119,9 +119,9 @@ def render_batch(batch_index: int) -> None: "phi<0", False, ) - inside_points = np.asarray(inside_cell.vertex_coords, dtype=float).reshape( - -1, 3 - ) + inside_points = np.asarray( + inside_cell.vertex_coords, dtype=float + ).reshape(-1, 3) inside_grid = pv.UnstructuredGrid( inside_cell.connectivity, inside_cell.types, inside_points ) diff --git a/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py b/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py new file mode 100644 index 0000000..ab6675a --- /dev/null +++ b/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py @@ -0,0 +1,151 @@ +import argparse + +import cutcells +import numpy as np +import pyvista as pv + + +def gyroid(x: np.ndarray, k: float) -> float: + # Classic gyroid implicit: sin(kx)cos(ky) + sin(ky)cos(kz) + sin(kz)cos(kx) + xx, yy, zz = float(x[0]), float(x[1]), float(x[2]) + return ( + np.sin(k * xx) * np.cos(k * yy) + + np.sin(k * yy) * np.cos(k * zz) + + np.sin(k * zz) * np.cos(k * xx) + ) + + +def level_set_thick_gyroid(x: np.ndarray, k: float, thickness: float) -> float: + # A "thick" gyroid shell: |g(x)| < thickness => phi(x) = |g(x)| - thickness < 0 + return abs(gyroid(x, k)) - thickness + + +def create_structured_hex_mesh( + x0, y0, z0, x1, y1, z1, nx, ny, nz +) -> pv.UnstructuredGrid: + # Use VTK structured grid -> cast to unstructured hex mesh. + xs = np.linspace(x0, x1, num=nx) + ys = np.linspace(y0, y1, num=ny) + zs = np.linspace(z0, z1, num=nz) + + xx, yy, zz = np.meshgrid(xs, ys, zs, indexing="ij") + sg = pv.StructuredGrid(xx, yy, zz) + return sg.cast_to_unstructured_grid() + + +def create_cut_mesh( + grid: pv.UnstructuredGrid, k: float, thickness: float, triangulate: bool +) -> pv.UnstructuredGrid: + points = grid.points + + ls_values = np.zeros(len(points), dtype=float) + for j, point in enumerate(points): + ls_values[j] = level_set_thick_gyroid(point, k=k, thickness=thickness) + + cut_mesh = cutcells.cut_vtk_mesh( + ls_values, + points, + grid.cell_connectivity, + grid.offset, + grid.celltypes, + "phi<0", + triangulate, + ) + + inside_cells = cutcells.locate_cells( + ls_values, + points, + grid.cell_connectivity, + grid.offset, + grid.celltypes, + "phi<0", + ) + + cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + pv_cut = pv.UnstructuredGrid(cut_mesh.cells, cut_mesh.types, cut_points) + extract = grid.extract_cells(inside_cells) + + return extract.merge(pv_cut) + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Cut a thick gyroid (|g(x)| < t) from a hexahedral (VTK_HEXAHEDRON) mesh." + ) + parser.add_argument( + "--n", type=int, default=41, help="Number of points per axis (>= 2)." + ) + parser.add_argument( + "--periods", + type=float, + default=2.0, + help="Number of gyroid periods across the domain.", + ) + parser.add_argument( + "--thickness", + type=float, + default=0.30, + help="Shell half-thickness in gyroid level-set units (phi = |g|-thickness).", + ) + parser.add_argument( + "--triangulate", + action=argparse.BooleanOptionalAction, + default=True, + help="Triangulate cut output (more robust for visualization).", + ) + parser.add_argument( + "--show-grid", + action=argparse.BooleanOptionalAction, + default=False, + help="Overlay the input hex grid (wireframe).", + ) + parser.add_argument( + "--show-edges", + action=argparse.BooleanOptionalAction, + default=True, + help="Show mesh edges (can look very busy for larger N).", + ) + parser.add_argument( + "--screenshot", + default="gyroid_hex_mesh3D.png", + help="Output screenshot filename (set to empty string to disable).", + ) + parser.add_argument( + "--show", + action=argparse.BooleanOptionalAction, + default=True, + help="Show an interactive window (disable for headless runs).", + ) + args = parser.parse_args() + + if args.n < 2: + raise ValueError("--n must be >= 2") + + # Domain [-1,1]^3. Choose k so that `periods` periods fit into length 2: + # period = 2*pi/k, so periods = 2 / (2*pi/k) = k/pi => k = periods*pi + k = float(args.periods) * np.pi + + grid = create_structured_hex_mesh(-1, -1, -1, 1, 1, 1, args.n, args.n, args.n) + mesh = create_cut_mesh( + grid, k=k, thickness=float(args.thickness), triangulate=args.triangulate + ) + + print( + f"input: n_points={grid.n_points}, n_cells={grid.n_cells}, unique_celltypes={sorted(set(map(int, grid.celltypes)))}" + ) + print(f"output: n_points={mesh.n_points}, n_cells={mesh.n_cells}") + + pl = pv.Plotter(off_screen=not args.show) + if args.show_grid: + pl.add_mesh(grid, show_edges=True, style="wireframe") + pl.add_mesh(mesh, show_edges=args.show_edges) + pl.camera_position = "iso" + + if args.screenshot: + pl.show(screenshot=args.screenshot) + else: + pl.show() + + +if __name__ == "__main__": + main() diff --git a/tablegen/cutcells_tablegen/emit_c_headers.py b/tablegen/cutcells_tablegen/emit_c_headers.py index 29692d8..b379b4a 100644 --- a/tablegen/cutcells_tablegen/emit_c_headers.py +++ b/tablegen/cutcells_tablegen/emit_c_headers.py @@ -3,7 +3,7 @@ from __future__ import annotations from pathlib import Path -from typing import Dict, List +from typing import Dict, List, Optional from .topology import num_edges @@ -19,6 +19,28 @@ ] +def _vtk_derived_notice_lines( + vtk_ref: Optional[str] = None, vtk_header_path: Optional[str] = None +) -> List[str]: + lines = [ + "// -----------------------------------------------------------------------------", + "// This file is generated by CutCells tablegen.", + "//", + "// It contains case tables derived from VTK's vtkTableBasedClipCases.h", + "// (Visualization Toolkit, TableBasedClip).", + "//", + f"// VTK ref: {vtk_ref}" if vtk_ref else "// VTK ref: (not recorded)", + f"// VTK header path override: {vtk_header_path}" + if vtk_header_path + else "// VTK header path override: (none)", + "//", + "// VTK is licensed under the BSD 3-Clause License.", + "// See third_party/VTK-Copyright.txt in this repository.", + "// -----------------------------------------------------------------------------", + ] + return lines + + def _brace_join(rows: List[str]) -> str: return "{ " + ", ".join(rows) + " }" @@ -122,7 +144,13 @@ def emit_all( def _emit_tet_like_header( - cell_type: str, table_kind: str, arrays: Dict[str, List], output_dir: Path + cell_type: str, + table_kind: str, + arrays: Dict[str, List], + output_dir: Path, + provenance: Optional[str] = None, + vtk_ref: Optional[str] = None, + vtk_header_path: Optional[str] = None, ) -> Path: """Write header in tetrahedron-like format with fixed-width 2D arrays.""" output_dir.mkdir(parents=True, exist_ok=True) @@ -149,6 +177,13 @@ def _emit_tet_like_header( lines.append(f"#ifndef {guard}") lines.append(f"#define {guard}") lines.append("") + + if provenance == "vtk": + lines.extend( + _vtk_derived_notice_lines(vtk_ref=vtk_ref, vtk_header_path=vtk_header_path) + ) + lines.append("") + lines.append('#include "cell_types.h"') if cell_type == "quadrilateral" and table_kind == "inside": # For uint8_t / int8_t in ambiguity metadata @@ -463,10 +498,25 @@ def _extract_subcells_from_flat(arrays: Dict[str, List]) -> Dict: def emit_all_tet_like( - cell_type: str, tables_by_kind: Dict[str, Dict[str, List]], output_dir: Path + cell_type: str, + tables_by_kind: Dict[str, Dict[str, List]], + output_dir: Path, + provenance: Optional[str] = None, + vtk_ref: Optional[str] = None, + vtk_header_path: Optional[str] = None, ) -> List[Path]: """Emit tables in tetrahedron-like format (fixed-width 2D arrays).""" written: List[Path] = [] for kind, arrays in tables_by_kind.items(): - written.append(_emit_tet_like_header(cell_type, kind, arrays, output_dir)) + written.append( + _emit_tet_like_header( + cell_type, + kind, + arrays, + output_dir, + provenance=provenance, + vtk_ref=vtk_ref, + vtk_header_path=vtk_header_path, + ) + ) return written diff --git a/tablegen/cutcells_tablegen/vtk_tablebasedclip_parser.py b/tablegen/cutcells_tablegen/vtk_tablebasedclip_parser.py index c75700a..f2b718d 100644 --- a/tablegen/cutcells_tablegen/vtk_tablebasedclip_parser.py +++ b/tablegen/cutcells_tablegen/vtk_tablebasedclip_parser.py @@ -7,12 +7,18 @@ header text (either from a local file path or downloaded URL). The extracted structure is converted into CutCells tablegen `ClipCase` objects. + +License/provenance: + The case tables parsed by this module are derived from VTK's + `Filters/General/vtkTableBasedClipCases.h`. + VTK is licensed under the BSD 3-Clause license; see + `third_party/VTK-Copyright.txt` in this repository. """ from __future__ import annotations from dataclasses import dataclass -from typing import Iterable, List, Sequence +from typing import List, Sequence import os import re diff --git a/tablegen/cutcells_tablegen/vtk_tables_import.py b/tablegen/cutcells_tablegen/vtk_tables_import.py index 7279071..c58207d 100644 --- a/tablegen/cutcells_tablegen/vtk_tables_import.py +++ b/tablegen/cutcells_tablegen/vtk_tables_import.py @@ -1,6 +1,12 @@ """Adapters for VTK TableBasedClip tables. Populate the stubs with canonical VTK connectivity to regenerate CutCells tables. + +License/provenance: + The clip/cut case tables used here are derived from VTK's + `Filters/General/vtkTableBasedClipCases.h`. + VTK is licensed under the BSD 3-Clause license; see + `third_party/VTK-Copyright.txt` in this repository. """ from __future__ import annotations diff --git a/tablegen/scripts/gen_tables.py b/tablegen/scripts/gen_tables.py index 6b921ec..93a6f7e 100644 --- a/tablegen/scripts/gen_tables.py +++ b/tablegen/scripts/gen_tables.py @@ -12,6 +12,7 @@ from __future__ import annotations import argparse +import os from pathlib import Path import sys @@ -20,30 +21,52 @@ _TABLEGEN_ROOT = _THIS_DIR.parent sys.path.insert(0, str(_TABLEGEN_ROOT)) -from cutcells_tablegen.emit_c_headers import emit_all_tet_like -from cutcells_tablegen.normalize import normalize_cases -from cutcells_tablegen.vtk_tables_import import get_cases, registered_cell_types +_VTK_DERIVED_CELL_TYPES = {"hexahedron", "prism", "pyramid"} + + +def _import_tablegen(): + # Import after we potentially set CUT_CELLS_VTK_REF/CUT_CELLS_VTK_HEADER + # so vtk_tables_import loads tables from the intended VTK source. + from cutcells_tablegen.emit_c_headers import emit_all_tet_like + from cutcells_tablegen.normalize import normalize_cases + from cutcells_tablegen.vtk_tables_import import get_cases, registered_cell_types + + return emit_all_tet_like, normalize_cases, get_cases, registered_cell_types + + +def generate_for_cell( + cell_type: str, + out_dir: Path, + vtk_ref: str | None, + vtk_header_path: str | None, +) -> None: + emit_all_tet_like, normalize_cases, get_cases, _ = _import_tablegen() -def generate_for_cell(cell_type: str, out_dir: Path) -> None: tables = {} for kind in ("inside", "outside", "interface"): cases = get_cases(cell_type, kind) tables[kind] = normalize_cases(cell_type, cases) - emit_all_tet_like(cell_type, tables, out_dir) + provenance = "vtk" if cell_type in _VTK_DERIVED_CELL_TYPES else None + emit_all_tet_like( + cell_type, + tables, + out_dir, + provenance=provenance, + vtk_ref=vtk_ref if provenance == "vtk" else None, + vtk_header_path=vtk_header_path if provenance == "vtk" else None, + ) def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser( description="Generate CutCells clip tables (tet-like format)" ) - available = registered_cell_types() parser.add_argument( "--cell-type", - choices=available, nargs="*", - default=available, - help="Cell types to generate", + default=None, + help="Cell types to generate (default: all registered types)", ) parser.add_argument( "--out", @@ -51,13 +74,37 @@ def parse_args() -> argparse.Namespace: default=Path("cpp/src/generated"), help="Output directory for generated headers", ) + parser.add_argument( + "--vtk-ref", + default=None, + help="VTK git ref/tag/commit to download vtkTableBasedClipCases.h from (default: env CUT_CELLS_VTK_REF or 'master')", + ) + parser.add_argument( + "--vtk-header-path", + default=None, + help="Local path to vtkTableBasedClipCases.h (default: env CUT_CELLS_VTK_HEADER)", + ) return parser.parse_args() def main() -> None: args = parse_args() - for cell_type in args.cell_type: - generate_for_cell(cell_type, args.out) + + if args.vtk_ref is not None: + os.environ["CUT_CELLS_VTK_REF"] = str(args.vtk_ref) + if args.vtk_header_path is not None: + os.environ["CUT_CELLS_VTK_HEADER"] = str(args.vtk_header_path) + + emit_all_tet_like, _, _, registered_cell_types = _import_tablegen() + vtk_ref = os.environ.get("CUT_CELLS_VTK_REF", "master") + vtk_header_path = os.environ.get("CUT_CELLS_VTK_HEADER") + + cell_types = args.cell_type + if not cell_types: + cell_types = registered_cell_types() + + for cell_type in cell_types: + generate_for_cell(cell_type, args.out, vtk_ref=vtk_ref, vtk_header_path=vtk_header_path) if __name__ == "__main__": diff --git a/third_party/THIRD_PARTY_NOTICES.md b/third_party/THIRD_PARTY_NOTICES.md new file mode 100644 index 0000000..a1849e7 --- /dev/null +++ b/third_party/THIRD_PARTY_NOTICES.md @@ -0,0 +1,10 @@ +# Third-Party Notices + +## VTK (Visualization Toolkit) + +CutCells includes *generated* clipping/cutting case tables that are derived from VTK's `vtkTableBasedClipCases.h` (TableBasedClip). + +VTK is licensed under the BSD 3-Clause License. + +- License text: `third_party/VTK-Copyright.txt` +- Upstream: https://github.com/Kitware/VTK diff --git a/third_party/VTK-Copyright.txt b/third_party/VTK-Copyright.txt new file mode 100644 index 0000000..8226ed7 --- /dev/null +++ b/third_party/VTK-Copyright.txt @@ -0,0 +1,34 @@ +/*========================================================================== + + Program: Visualization Toolkit + Module: Copyright.txt + +Copyright (c) 1993-2015 Ken Martin, Will Schroeder, Bill Lorensen +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names + of any contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +==========================================================================*/ From 3bf61252e732b07c0f10dfb9915b8248d57d0878 Mon Sep 17 00:00:00 2001 From: Susanne Claus Date: Tue, 23 Dec 2025 00:30:28 +0100 Subject: [PATCH 4/7] fix _vertex_parent_entity --- README.md | 28 +- cpp/src/CMakeLists.txt | 2 - cpp/src/cut_context.cpp | 56 ---- cpp/src/cut_context.h | 66 ---- cpp/src/cut_quadrilateral.cpp | 41 ++- cpp/src/cut_quadrilateral_old.cpp | 313 ------------------ cpp/src/utils.h | 16 +- python/CMakeLists.txt | 16 +- python/cutcells/wrapper.cpp | 11 + .../cut_hexahedron_gyroid_thick.py | 57 ++++ tablegen/scripts/gen_tables.py | 4 +- 11 files changed, 119 insertions(+), 491 deletions(-) delete mode 100644 cpp/src/cut_context.cpp delete mode 100644 cpp/src/cut_context.h delete mode 100644 cpp/src/cut_quadrilateral_old.cpp diff --git a/README.md b/README.md index 0f5e64c..79ab727 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ a library to compute intersections between mesh cells and implicit (level set) functions using marching cubes/tetrahedra algorithms. -The current version supports intervals, triangles and tetrahedra. Future versions will include quadrilaterals, hexahedra, pyramids and prisms. +The current version supports intervals, triangles, tetrahedra, quadrilaterals, hexahedra, pyramids and prisms. The library contains utility functions to cut through vtk meshes using pyvista. It is also used as a basis to generate run time quadrature rules in immersed boundary methods/cut finite element methods (see CutFEMx). @@ -51,32 +51,6 @@ and then python3 -m pip install . ``` -### Note on conda toolchains (recommended) - -When building inside a conda environment (e.g. `fenicsx-dev`), build/install the **C++ library** and the **Python extension** -with the **same compiler toolchain** (typically the conda-provided Clang). Otherwise, you can hit link errors due to C++ -template/ABI symbol mismatches. - -One reliable workflow is: - -```console -# Resolve the conda env prefix (avoid relying on $CONDA_PREFIX with `conda run`) -ENV_PREFIX="$(conda run -n fenicsx-dev python -c 'import sys; print(sys.prefix)')" - -# C++ library into the env prefix -cd cpp -conda run -n fenicsx-dev cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$ENV_PREFIX" \ - -DCMAKE_C_COMPILER="$ENV_PREFIX/bin/x86_64-apple-darwin13.4.0-clang" \ - -DCMAKE_CXX_COMPILER="$ENV_PREFIX/bin/x86_64-apple-darwin13.4.0-clang++" \ - -B build-conda -S . -conda run -n fenicsx-dev cmake --build build-conda -conda run -n fenicsx-dev cmake --install build-conda - -# Python extension against that install -cd ../python -env CMAKE_PREFIX_PATH="$ENV_PREFIX" conda run -n fenicsx-dev python -m pip install -e . --no-deps --force-reinstall -``` - ## Running demons There are demons for both the C++ and the python interface. diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index 0a8ab3a..8885064 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -25,7 +25,6 @@ set(HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/cut_prism.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_pyramid.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_tetrahedron.h - ${CMAKE_CURRENT_SOURCE_DIR}/cut_context.h ${CMAKE_CURRENT_SOURCE_DIR}/triangulation.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_cell.h ${CMAKE_CURRENT_SOURCE_DIR}/cut_mesh.h @@ -43,7 +42,6 @@ target_sources(cutcells PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/cut_prism.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_pyramid.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_tetrahedron.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/cut_context.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_cell.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cut_mesh.cpp ${CMAKE_CURRENT_SOURCE_DIR}/write_vtk.cpp diff --git a/cpp/src/cut_context.cpp b/cpp/src/cut_context.cpp deleted file mode 100644 index 7228f61..0000000 --- a/cpp/src/cut_context.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) 2025 ONERA -// Authors: Susanne Claus -// This file is part of CutCells -// -// SPDX-License-Identifier: MIT - -#include "cut_context.h" -#include -#include - -namespace cutcells -{ - int get_or_create_intersection_vid( - CutContext& ctx, - int gv0, int gv1, - const double* p0, const double* p1, - double phi0, double phi1) - { - constexpr double eps = 1e-12; - - // If endpoint has phi==0, return that endpoint (no new vertex) - if (std::abs(phi0) < eps) - return gv0; - if (std::abs(phi1) < eps) - return gv1; - - // Create edge key - EdgeKey key(gv0, gv1); - - // Check if intersection already exists - auto it = ctx.edge_to_vid.find(key); - if (it != ctx.edge_to_vid.end()) - { - return it->second; - } - - // Create new intersection vertex - int new_vid = ctx.num_original_vertices + static_cast(ctx.edge_to_vid.size()); - - // Compute intersection point using linear interpolation - double t = phi0 / (phi0 - phi1); - - // Add coordinates - for (int d = 0; d < ctx.gdim; ++d) - { - double coord = p0[d] + t * (p1[d] - p0[d]); - ctx.ip_coords.push_back(coord); - } - - // Store mapping - ctx.edge_to_vid[key] = new_vid; - - return new_vid; - } - -} // namespace cutcells diff --git a/cpp/src/cut_context.h b/cpp/src/cut_context.h deleted file mode 100644 index 4801d21..0000000 --- a/cpp/src/cut_context.h +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) 2025 ONERA -// Authors: Susanne Claus -// This file is part of CutCells -// -// SPDX-License-Identifier: MIT -#pragma once - -#include -#include -#include - -namespace cutcells -{ - /// Edge key for identifying unique edges (always a < b) - struct EdgeKey - { - int a, b; - - EdgeKey(int v0, int v1) : a(v0 < v1 ? v0 : v1), b(v0 < v1 ? v1 : v0) {} - - bool operator==(const EdgeKey& other) const noexcept - { - return a == other.a && b == other.b; - } - }; - - /// Hash functor for EdgeKey - struct EdgeKeyHash - { - std::size_t operator()(const EdgeKey& key) const noexcept - { - // Simple hash combination - return std::hash()(key.a) ^ (std::hash()(key.b) << 1); - } - }; - - /// Context for managing edge-owned intersection vertices - /// Ensures no duplicate intersection vertices across cells - struct CutContext - { - /// Number of original vertices in the context - int num_original_vertices; - - /// Geometric dimension - int gdim; - - /// Map from edge to global vertex id - std::unordered_map edge_to_vid; - - /// Packed coordinates of new intersection vertices only (size = num_new_verts * gdim) - std::vector ip_coords; - - CutContext(int nv, int dim) : num_original_vertices(nv), gdim(dim) {} - }; - - /// Get or create intersection vertex on edge - /// Returns global vertex id - /// If endpoint has phi==0, returns that endpoint's id (no new vertex) - /// Otherwise creates (or reuses) edge intersection vertex - int get_or_create_intersection_vid( - CutContext& ctx, - int gv0, int gv1, - const double* p0, const double* p1, - double phi0, double phi1); - -} // namespace cutcells diff --git a/cpp/src/cut_quadrilateral.cpp b/cpp/src/cut_quadrilateral.cpp index 67cee56..9a720a3 100644 --- a/cpp/src/cut_quadrilateral.cpp +++ b/cpp/src/cut_quadrilateral.cpp @@ -91,16 +91,21 @@ namespace cutcells::cell::quadrilateral const int (*subcell_verts)[MaxVerts], const std::span intersection_points, bool triangulate, CutCell& cut_cell, - std::unordered_map& edge_ip_map) + const std::unordered_map& edge_ip_map, + std::unordered_map& token_to_local_out) { // Map from token (edge id or 100+vid) to local vertex index in cut_cell._vertex_coords std::unordered_map token_to_local; // Prefill edge intersections so they get stable indices - for (const auto& kv : edge_ip_map) + for (int e = 0; e < 4; ++e) { - const int token = kv.first; // edge id - const int ip_idx = kv.second; + const auto it = edge_ip_map.find(e); + if (it == edge_ip_map.end()) + continue; + + const int token = it->first; // edge id + const int ip_idx = it->second; const int local_idx = static_cast(cut_cell._vertex_coords.size() / gdim); token_to_local[token] = local_idx; cut_cell._vertex_coords.resize(cut_cell._vertex_coords.size() + gdim); @@ -162,6 +167,8 @@ namespace cutcells::cell::quadrilateral cut_cell._connectivity.push_back(std::move(verts_local)); } } + + token_to_local_out = std::move(token_to_local); } template @@ -170,12 +177,13 @@ namespace cutcells::cell::quadrilateral const int (*subcell_verts)[MaxVerts], const std::span intersection_points, bool triangulate, CutCell& cut_cell, - std::unordered_map& edge_ip_map) + const std::unordered_map& edge_ip_map, + std::unordered_map& token_to_local_out) { decode_range(vertex_coordinates, gdim, case_offsets[flag], case_offsets[flag + 1], cell_types, subcell_verts, - intersection_points, triangulate, cut_cell, edge_ip_map); + intersection_points, triangulate, cut_cell, edge_ip_map, token_to_local_out); } } // namespace @@ -206,8 +214,11 @@ namespace cutcells::cell::quadrilateral // Compute intersections (shared for all parts) std::vector intersection_points; - std::unordered_map vertex_case_map; - compute_intersection_points(vertex_coordinates, gdim, ls_values, flag_interior, intersection_points, vertex_case_map); + std::unordered_map edge_ip_map; + compute_intersection_points(vertex_coordinates, gdim, ls_values, flag_interior, intersection_points, edge_ip_map); + + // Final token->local vertex index map used to populate CutCell::_vertex_parent_entity + std::unordered_map token_to_local; cut_cell._gdim = gdim; cut_cell._vertex_coords.clear(); @@ -228,13 +239,13 @@ namespace cutcells::cell::quadrilateral const int end = amb_range_interface[4 * amb_id + 2 * variant + 1]; decode_range(vertex_coordinates, gdim, begin, end, subcell_type_interface, subcell_verts_interface, - ip_span, triangulate, cut_cell, vertex_case_map); + ip_span, triangulate, cut_cell, edge_ip_map, token_to_local); } else { decode_case(vertex_coordinates, gdim, flag_interior, case_subcell_offset_interface, subcell_type_interface, - subcell_verts_interface, ip_span, triangulate, cut_cell, vertex_case_map); + subcell_verts_interface, ip_span, triangulate, cut_cell, edge_ip_map, token_to_local); } } else if (cut_type_str == "phi<0") @@ -248,13 +259,13 @@ namespace cutcells::cell::quadrilateral const int end = amb_range_inside[4 * amb_id + 2 * variant + 1]; decode_range(vertex_coordinates, gdim, begin, end, subcell_type_inside, subcell_verts_inside, - ip_span, triangulate, cut_cell, vertex_case_map); + ip_span, triangulate, cut_cell, edge_ip_map, token_to_local); } else { decode_case(vertex_coordinates, gdim, flag_interior, case_subcell_offset_inside, subcell_type_inside, - subcell_verts_inside, ip_span, triangulate, cut_cell, vertex_case_map); + subcell_verts_inside, ip_span, triangulate, cut_cell, edge_ip_map, token_to_local); } } else if (cut_type_str == "phi>0") @@ -270,13 +281,13 @@ namespace cutcells::cell::quadrilateral const int end = amb_range_outside[4 * amb_id + 2 * variant + 1]; decode_range(vertex_coordinates, gdim, begin, end, subcell_type_outside, subcell_verts_outside, - ip_span, triangulate, cut_cell, vertex_case_map); + ip_span, triangulate, cut_cell, edge_ip_map, token_to_local); } else { decode_case(vertex_coordinates, gdim, flag_interior, case_subcell_offset_outside, subcell_type_outside, - subcell_verts_outside, ip_span, triangulate, cut_cell, vertex_case_map); + subcell_verts_outside, ip_span, triangulate, cut_cell, edge_ip_map, token_to_local); } } else @@ -284,7 +295,7 @@ namespace cutcells::cell::quadrilateral throw std::invalid_argument("cutting type unknown"); } - cutcells::utils::create_vertex_parent_entity_map(vertex_case_map, cut_cell._vertex_parent_entity); + cutcells::utils::create_vertex_parent_entity_map(token_to_local, cut_cell._vertex_parent_entity); } template diff --git a/cpp/src/cut_quadrilateral_old.cpp b/cpp/src/cut_quadrilateral_old.cpp deleted file mode 100644 index 142be7e..0000000 --- a/cpp/src/cut_quadrilateral_old.cpp +++ /dev/null @@ -1,313 +0,0 @@ -// Copyright (c) 2022-2025 ONERA -// Authors: Susanne Claus -// This file is part of CutCells -// -// SPDX-License-Identifier: MIT - -#include "cut_quadrilateral.h" -#include "cell_flags.h" -#include "cell_topology.h" -#include "cut_interval.h" -#include "cut_triangle.h" -#include "generated/cut_quadrilateral_inside_tables.h" -#include "generated/cut_quadrilateral_outside_tables.h" -#include "generated/cut_quadrilateral_interface_tables.h" -#include "triangulation.h" -#include "utils.h" - -#include -#include -#include -#include - -namespace cutcells::cell::quadrilateral -{ - using namespace cutcells::cell::generated; - - namespace - { - template - void compute_intersection_points(const std::span vertex_coordinates, const int gdim, - const std::span ls_values, const int flag, - std::vector& intersection_points, - std::unordered_map& vertex_case_map) - { - // Per-case edge flags come from the generated table; use them to locate linear edge/edge intersections. - const auto& intersected = cut_quadrilateral_inside_intersected_edges[flag]; - - int num_intersection_points = 0; - for (int e = 0; e < 4; ++e) - { - if (intersected[e] == 1) - ++num_intersection_points; - } - - intersection_points.resize(num_intersection_points * gdim); - - std::vector v0(gdim); - std::vector v1(gdim); - std::vector ip(gdim); - - int ip_index = 0; - for (int e = 0; e < 4; ++e) - { - if (intersected[e] == 0) - continue; - - const int v0_id = quadrilateral_edges[e][0]; - const int v1_id = quadrilateral_edges[e][1]; - - for (int j = 0; j < gdim; ++j) - { - v0[j] = vertex_coordinates[v0_id * gdim + j]; - v1[j] = vertex_coordinates[v1_id * gdim + j]; - } - - const T ls0 = ls_values[v0_id]; - const T ls1 = ls_values[v1_id]; - - interval::compute_intersection_point(0.0, v0, v1, ls0, ls1, ip); - - for (int j = 0; j < gdim; ++j) - { - intersection_points[ip_index * gdim + j] = ip[j]; - } - - vertex_case_map[e] = ip_index; - ++ip_index; - } - } - - // sub_element stores a flat stream: [n, v0, ..., v{n-1}] repeated per emitted cell. - // sub_element_offset tells us which cell stream entries belong to a case; this helper finds - // the starting token index for a given emitted cell id. - inline int cell_token_start(const int target_cell_idx, const int* sub_element, const int total_cells) - { - int token_idx = 0; - for (int c = 0; c < target_cell_idx && c < total_cells; ++c) - { - const int nverts = sub_element[token_idx]; - token_idx += 1 + nverts; - } - return token_idx; - } - - template - void append_vertex_if_needed(int token, const std::span vertex_coordinates, int gdim, - std::unordered_map& vertex_case_map, - std::vector& out_coords) - { - if (vertex_case_map.find(token) != vertex_case_map.end()) - return; - - // token represents original vertex 100+vid; store it once and reuse via vertex_case_map - const int vid = token - 100; - const int local_idx = static_cast(out_coords.size() / gdim); - vertex_case_map[token] = local_idx; - out_coords.resize(out_coords.size() + gdim); - for (int j = 0; j < gdim; ++j) - { - out_coords[local_idx * gdim + j] = vertex_coordinates[vid * gdim + j]; - } - } - - template - void decode_case(const std::span vertex_coordinates, const int gdim, int flag, - const int* sub_element_offset, const type* sub_element_cell_types, const int* sub_element, - bool triangulate, CutCell& cut_cell, std::unordered_map& vertex_case_map) - { - const int cell_begin = sub_element_offset[flag]; - const int cell_end = sub_element_offset[flag + 1]; - // sub_element_offset has length NCases+1 (16+1 here); the last entry stores the total emitted cells. - const int total_cells = sub_element_offset[16]; - - // Ensure original vertices referenced in this case are appended - int token_idx = cell_token_start(cell_begin, sub_element, total_cells); - for (int cell_idx = cell_begin; cell_idx < cell_end; ++cell_idx) - { - const int nverts = sub_element[token_idx]; - for (int i = 1; i <= nverts; ++i) - { - const int token = sub_element[token_idx + i]; - if (token >= 100) - { - append_vertex_if_needed(token, vertex_coordinates, gdim, vertex_case_map, cut_cell._vertex_coords); - } - } - token_idx += 1 + nverts; - } - - // Build connectivity - token_idx = cell_token_start(cell_begin, sub_element, total_cells); - for (int cell_idx = cell_begin; cell_idx < cell_end; ++cell_idx) - { - const int nverts = sub_element[token_idx]; - const type sub_type = sub_element_cell_types[cell_idx]; - - std::vector verts_local(nverts); - for (int i = 0; i < nverts; ++i) - { - const int token = sub_element[token_idx + 1 + i]; - if (token >= 100) - { - verts_local[i] = vertex_case_map[token]; - } - else - { - // edge intersection point - verts_local[i] = vertex_case_map[token]; - } - } - - if (triangulate && sub_type == type::quadrilateral) - { - int verts_arr[4] = {verts_local[0], verts_local[1], verts_local[2], verts_local[3]}; - std::vector> tris; - triangulation(sub_type, verts_arr, tris); - for (auto& tri : tris) - { - cut_cell._types.push_back(type::triangle); - cut_cell._connectivity.push_back(tri); - } - } - else - { - cut_cell._types.push_back(sub_type); - cut_cell._connectivity.push_back(std::move(verts_local)); - } - - token_idx += 1 + nverts; - } - } - } // namespace - - template - void cut(const std::span vertex_coordinates, const int gdim, - const std::span ls_values, const std::string& cut_type_str, - CutCell& cut_cell, bool triangulate) - { - const int flag_interior = get_entity_flag(ls_values, false); - - if (flag_interior == 0 || flag_interior == 15) - { - throw std::invalid_argument("quadrilateral is not intersected and therefore cannot be cut"); - } - - // Compute intersections (shared for all parts) - std::vector intersection_points; - std::unordered_map vertex_case_map; - compute_intersection_points(vertex_coordinates, gdim, ls_values, flag_interior, intersection_points, vertex_case_map); - - cut_cell._gdim = gdim; - cut_cell._vertex_coords = intersection_points; - cut_cell._types.clear(); - cut_cell._connectivity.clear(); - - // Ambiguous opposite-corner cases (masks 0b0101, 0b1010) are already disambiguated in the generated tables - // into two disjoint pieces (two triangles for volume, two segments for interface). - - if (cut_type_str == "phi=0") - { - cut_cell._tdim = 1; - const int* offsets = cut_quadrilateral_interface_sub_element_offset; - const type* cell_types = cut_quadrilateral_interface_sub_element_cell_types; - const int* sub_el = cut_quadrilateral_interface_sub_element; - decode_case(vertex_coordinates, gdim, flag_interior, offsets, cell_types, sub_el, triangulate, cut_cell, vertex_case_map); - } - else if (cut_type_str == "phi<0") - { - cut_cell._tdim = 2; - const int* offsets = cut_quadrilateral_inside_sub_element_offset; - const type* cell_types = cut_quadrilateral_inside_sub_element_cell_types; - const int* sub_el = cut_quadrilateral_inside_sub_element; - decode_case(vertex_coordinates, gdim, flag_interior, offsets, cell_types, sub_el, triangulate, cut_cell, vertex_case_map); - } - else if (cut_type_str == "phi>0") - { - cut_cell._tdim = 2; - const int flag_exterior = get_entity_flag(ls_values, true); - const int* offsets = cut_quadrilateral_outside_sub_element_offset; - const type* cell_types = cut_quadrilateral_outside_sub_element_cell_types; - const int* sub_el = cut_quadrilateral_outside_sub_element; - decode_case(vertex_coordinates, gdim, flag_exterior, offsets, cell_types, sub_el, triangulate, cut_cell, vertex_case_map); - } - else - { - throw std::invalid_argument("cutting type unknown"); - } - - cutcells::utils::create_vertex_parent_entity_map(vertex_case_map, cut_cell._vertex_parent_entity); - } - - template - void cut(const std::span vertex_coordinates, const int gdim, - const std::span ls_values, const std::vector& cut_type_str, - std::vector>& cut_cell, bool triangulate) - { - const int flag_interior = get_entity_flag(ls_values, false); - if (flag_interior == 0 || flag_interior == 15) - { - throw std::invalid_argument("quadrilateral is not intersected and therefore cannot be cut"); - } - - cut_cell.resize(cut_type_str.size()); - for (std::size_t i = 0; i < cut_type_str.size(); ++i) - { - cut(vertex_coordinates, gdim, ls_values, cut_type_str[i], cut_cell[i], triangulate); - } - } - - template - T volume(const std::span vertex_coordinates, const int gdim) - { - // Split quad into two triangles (0-1-2) and (0-2-3) - std::vector t0; - t0.reserve(3 * gdim); - for (int j = 0; j < gdim; ++j) - { - t0.push_back(vertex_coordinates[0 * gdim + j]); - } - for (int j = 0; j < gdim; ++j) - { - t0.push_back(vertex_coordinates[1 * gdim + j]); - } - for (int j = 0; j < gdim; ++j) - { - t0.push_back(vertex_coordinates[2 * gdim + j]); - } - - std::vector t1; - t1.reserve(3 * gdim); - for (int j = 0; j < gdim; ++j) - { - t1.push_back(vertex_coordinates[0 * gdim + j]); - } - for (int j = 0; j < gdim; ++j) - { - t1.push_back(vertex_coordinates[2 * gdim + j]); - } - for (int j = 0; j < gdim; ++j) - { - t1.push_back(vertex_coordinates[3 * gdim + j]); - } - - return triangle::volume(t0, gdim) + triangle::volume(t1, gdim); - } - - template void cut(const std::span vertex_coordinates, const int gdim, - const std::span ls_values, const std::string& cut_type_str, - CutCell& cut_cell, bool triangulate); - template void cut(const std::span vertex_coordinates, const int gdim, - const std::span ls_values, const std::string& cut_type_str, - CutCell& cut_cell, bool triangulate); - - template void cut(const std::span vertex_coordinates, const int gdim, - const std::span ls_values, const std::vector& cut_type_str, - std::vector>& cut_cell, bool triangulate); - template void cut(const std::span vertex_coordinates, const int gdim, - const std::span ls_values, const std::vector& cut_type_str, - std::vector>& cut_cell, bool triangulate); - - template double volume(const std::span vertex_coordinates, const int gdim); - template float volume(const std::span vertex_coordinates, const int gdim); -} diff --git a/cpp/src/utils.h b/cpp/src/utils.h index 25ec07a..f5d6580 100644 --- a/cpp/src/utils.h +++ b/cpp/src/utils.h @@ -60,11 +60,17 @@ namespace cutcells::utils template void create_vertex_parent_entity_map(const std::unordered_map& vertex_case_map, std::vector& vertex_parent_entity) { - vertex_parent_entity.resize(vertex_case_map.size()); + // vertex_case_map maps (token -> local_vertex_index). Tokens encode the origin: + // - edge intersections: 0..(n_edges-1) + // - original vertices: 100+vid + // - special points: 200+sid + // Local indices are expected to refer to indices in CutCell::_vertex_coords. + int max_local = -1; + for (const auto& kv : vertex_case_map) + max_local = std::max(max_local, kv.second); - for (auto &[first,second]: vertex_case_map) //using structured binding - { - vertex_parent_entity[second] = first; // values can also be manipulated as they are refrences - } + vertex_parent_entity.assign(static_cast(max_local + 1), -1); + for (const auto& kv : vertex_case_map) + vertex_parent_entity[static_cast(kv.second)] = kv.first; } } \ No newline at end of file diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index eb4b76a..2c7b995 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -69,12 +69,16 @@ if(APPLE AND DEFINED ENV{CONDA_PREFIX}) # If that environment contains another libcutcells.dylib, dyld will load the wrong one. # Reorder RPATHs post-link so the in-repo CutCells lib directory is searched first. set(_conda_lib "$ENV{CONDA_PREFIX}/lib") - add_custom_command(TARGET _cutcellscpp POST_BUILD - COMMAND install_name_tool -delete_rpath "${_conda_lib}" $ || true - COMMAND install_name_tool -delete_rpath "${_cutcells_dir}" $ || true - COMMAND install_name_tool -add_rpath "${_cutcells_dir}" $ - COMMAND install_name_tool -add_rpath "${_conda_lib}" $ - VERBATIM) + # If CutCells itself is installed into the conda env lib dir, then _cutcells_dir == _conda_lib + # and reordering is unnecessary (and would attempt to add the same RPATH twice). + if (NOT "${_cutcells_dir}" STREQUAL "${_conda_lib}") + add_custom_command(TARGET _cutcellscpp POST_BUILD + COMMAND install_name_tool -delete_rpath "${_conda_lib}" $ || true + COMMAND install_name_tool -delete_rpath "${_cutcells_dir}" $ || true + COMMAND install_name_tool -add_rpath "${_cutcells_dir}" $ + COMMAND install_name_tool -add_rpath "${_conda_lib}" $ + VERBATIM) + endif() endif() install(TARGETS _cutcellscpp LIBRARY DESTINATION cutcells) diff --git a/python/cutcells/wrapper.cpp b/python/cutcells/wrapper.cpp index f812e0d..8188e4e 100644 --- a/python/cutcells/wrapper.cpp +++ b/python/cutcells/wrapper.cpp @@ -135,6 +135,17 @@ void declare_float(nb::module_& m, std::string type) return types; }) + .def_prop_ro( + "vertex_parent_entity", + [](const cell::CutCell& self) { + return nb::ndarray( + self._vertex_parent_entity.data(), + {self._vertex_parent_entity.size()}, + nb::handle()); + }, + nb::rv_policy::reference_internal, + "Return parent entity token for each cut-cell vertex.\n" + "Tokens encode the origin: edge intersections use edge id, original vertices use 100+vid, special points use 200+sid.") .def("str", [](const cell::CutCell& self) {cell::str(self); return ;}) .def("volume", [](const cell::CutCell& self) {return cell::volume(self);}) .def("write_vtk", [](cell::CutCell& self, std::string fname) {io::write_vtk(fname,self); return ;}); diff --git a/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py b/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py index ab6675a..e572757 100644 --- a/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py +++ b/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py @@ -116,6 +116,11 @@ def main() -> None: default=True, help="Show an interactive window (disable for headless runs).", ) + parser.add_argument( + "--write-prefix", + default="", + help="If set, write interface/inside/outside VTK files using this prefix (e.g. /tmp/gyroid).", + ) args = parser.parse_args() if args.n < 2: @@ -141,6 +146,58 @@ def main() -> None: pl.add_mesh(mesh, show_edges=args.show_edges) pl.camera_position = "iso" + # Optionally write interface, inside and outside VTK files + if args.write_prefix: + pts = grid.points + ls_values = np.zeros(len(pts), dtype=float) + for j, point in enumerate(pts): + ls_values[j] = level_set_thick_gyroid( + point, k=k, thickness=float(args.thickness) + ) + + conn = grid.cell_connectivity + off = grid.offset + ctypes = grid.celltypes + + # Interface (phi=0) + try: + iface = cutcells.cut_vtk_mesh( + ls_values, pts, conn, off, ctypes, "phi=0", args.triangulate + ) + iface_pts = np.asarray(iface.vertex_coords, dtype=float).reshape(-1, 3) + iface_pv = pv.UnstructuredGrid(iface.cells, iface.types, iface_pts) + iface_file = f"{args.write_prefix}_interface.vtu" + iface_pv.save(iface_file) + print(f"Wrote interface VTK -> {iface_file}") + except Exception as e: # pragma: no cover + print("Failed to write interface mesh:", e) + + # Inside (phi<0) + try: + inside = cutcells.cut_vtk_mesh( + ls_values, pts, conn, off, ctypes, "phi<0", args.triangulate + ) + inside_pts = np.asarray(inside.vertex_coords, dtype=float).reshape(-1, 3) + inside_pv = pv.UnstructuredGrid(inside.cells, inside.types, inside_pts) + inside_file = f"{args.write_prefix}_inside.vtu" + inside_pv.save(inside_file) + print(f"Wrote inside VTK -> {inside_file}") + except Exception as e: # pragma: no cover + print("Failed to write inside mesh:", e) + + # Outside (phi>0) + try: + outside = cutcells.cut_vtk_mesh( + ls_values, pts, conn, off, ctypes, "phi>0", args.triangulate + ) + outside_pts = np.asarray(outside.vertex_coords, dtype=float).reshape(-1, 3) + outside_pv = pv.UnstructuredGrid(outside.cells, outside.types, outside_pts) + outside_file = f"{args.write_prefix}_outside.vtu" + outside_pv.save(outside_file) + print(f"Wrote outside VTK -> {outside_file}") + except Exception as e: # pragma: no cover + print("Failed to write outside mesh:", e) + if args.screenshot: pl.show(screenshot=args.screenshot) else: diff --git a/tablegen/scripts/gen_tables.py b/tablegen/scripts/gen_tables.py index 93a6f7e..43673fa 100644 --- a/tablegen/scripts/gen_tables.py +++ b/tablegen/scripts/gen_tables.py @@ -104,7 +104,9 @@ def main() -> None: cell_types = registered_cell_types() for cell_type in cell_types: - generate_for_cell(cell_type, args.out, vtk_ref=vtk_ref, vtk_header_path=vtk_header_path) + generate_for_cell( + cell_type, args.out, vtk_ref=vtk_ref, vtk_header_path=vtk_header_path + ) if __name__ == "__main__": From 21593dd85dcdf78047042e62b7c1662283a8ec72 Mon Sep 17 00:00:00 2001 From: Susanne Claus Date: Tue, 23 Dec 2025 00:57:19 +0100 Subject: [PATCH 5/7] improve mesh merging and nanobind wrapper zero copy --- cpp/src/cut_mesh.cpp | 161 +++++++++++++++--- python/cutcells/wrapper.cpp | 92 +++++----- .../cut_tetrahedron.py | 82 +++++---- .../cut_2nd_order_triangle/cut_triangle.py | 47 +++-- .../cut_hexahedron_cases_subplots.py | 6 +- .../cut_hexahedron_gyroid_thick.py | 22 ++- .../demo/cut_hexahedron/cut_hexahedron_n0.py | 2 +- python/demo/cut_prism/cut_prism_n0.py | 2 +- python/demo/cut_pyramid/cut_pyramid_n0.py | 2 +- .../demo/cut_tetrahedron/cut_tetrahedron.py | 44 +++-- python/demo/cut_triangle/cut_triangle.py | 39 +++-- python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py | 7 +- python/demo/cut_vtk_mesh/cut_mesh_2D.py | 77 +++++---- python/demo/cut_vtk_mesh/cut_mesh_3D.py | 7 +- .../cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py | 7 +- python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py | 2 +- python/demo/plot_quadrilateral_cases.py | 4 +- .../test_cut_vtk_mesh_hexahedron_smoke.py | 2 +- python/tests/test_cut_vtk_mesh_prism_smoke.py | 2 +- .../tests/test_cut_vtk_mesh_pyramid_smoke.py | 2 +- python/tests/test_hexahedron_special_point.py | 2 +- python/tests/test_prism_special_point.py | 2 +- python/tests/test_pyramid_special_point.py | 2 +- python/tests/test_quadrilateral_ambiguity.py | 2 +- .../tests/test_vertex_parent_entity_tokens.py | 138 +++++++++++++++ 25 files changed, 548 insertions(+), 207 deletions(-) create mode 100644 python/tests/test_vertex_parent_entity_tokens.py diff --git a/cpp/src/cut_mesh.cpp b/cpp/src/cut_mesh.cpp index 8ebb248..1060c3e 100644 --- a/cpp/src/cut_mesh.cpp +++ b/cpp/src/cut_mesh.cpp @@ -10,9 +10,49 @@ #include "utils.h" +#include "cell_topology.h" #include #include +namespace +{ + struct VertexKey + { + // 0: original vertex (global vertex id) + // 1: edge intersection (global vertex id pair) + // 2: special point (parent cell id + sid) + uint8_t kind = 0; + int32_t a = 0; + int32_t b = 0; + + bool operator==(const VertexKey& other) const noexcept + { + return kind == other.kind && a == other.a && b == other.b; + } + }; + + struct VertexKeyHash + { + std::size_t operator()(const VertexKey& k) const noexcept + { + // Basic mix; good enough for small integer keys. + const std::size_t h0 = std::hash{}(k.a); + const std::size_t h1 = std::hash{}(k.b); + const std::size_t hk = std::hash{}(k.kind); + return h0 ^ (h1 + 0x9e3779b97f4a7c15ULL + (h0 << 6) + (h0 >> 2)) ^ (hk << 1); + } + }; + + template + inline void append_vertex_coords(std::vector& out, const std::vector& in, + int local_vertex_id, int gdim) + { + const int base = local_vertex_id * gdim; + for (int j = 0; j < gdim; ++j) + out.push_back(in[base + j]); + } +} + namespace cutcells::mesh { template @@ -117,12 +157,15 @@ namespace cutcells::mesh cut_mesh._types.resize(num_cells); cut_mesh._parent_map.resize(num_cells*num_parents); - int merged_vertex_id = 0; int sub_cell_offset = 0; - int vertex_counter = 0; int element_offset = 0; int cnt = 0; + // Fast global dedup: uses CutCell::_vertex_parent_entity tokens and CutCell::_parent_vertex_ids + // (which should be context-global vertex ids for the parent mesh). + std::unordered_map global_vertex_ids; + global_vertex_ids.reserve(static_cast(num_connectivity)); + //all cutcells in vector above should have the same gdim and tdim for(auto & cut_cell : cut_cells._cut_cells) { @@ -142,32 +185,101 @@ namespace cutcells::mesh int local_num_cells = cut_cell._connectivity.size(); - //Map from vertex id in current cutcell to merged cutmesh - std::map local_merged_vertex_ids; + // Map from vertex id in current cutcell to merged cutmesh + std::vector local_merged_vertex_ids(num_cut_cell_vertices, -1); + + // Determine whether we can use fast token-based dedup for this cut cell. + const bool has_tokens = (static_cast(cut_cell._vertex_parent_entity.size()) == num_cut_cell_vertices); + const int parent_vertices = cell::get_num_vertices(cut_cell._parent_cell_type); + const bool has_parent_ids = (static_cast(cut_cell._parent_vertex_ids.size()) == parent_vertices); + const int parent_cell_id = cut_cells._parent_map[cnt * num_parents + 0]; + const bool can_fast_dedup = has_tokens && has_parent_ids && (parent_cell_id >= 0); - for(int local_id=0;local_id(cut_mesh._vertex_coords, cut_cell._vertex_coords, local_id, gdim); + const auto parent_edges = cell::edges(cut_cell._parent_cell_type); - if(id==-1) //not found + for (int local_id = 0; local_id < num_cut_cell_vertices; ++local_id) { - //add vertex - merged_vertex_id=vertex_counter; - vertex_counter++; + const int32_t token = cut_cell._vertex_parent_entity[local_id]; + VertexKey key; - for(int j=0;j= 100 && token < 200) + { + const int ref_vid = static_cast(token - 100); + if (ref_vid < 0 || ref_vid >= parent_vertices) + { + // Fallback for unexpected token. + key.kind = 2; + key.a = parent_cell_id; + key.b = token; + } + else + { + key.kind = 0; + key.a = static_cast(cut_cell._parent_vertex_ids[ref_vid]); + key.b = 0; + } + } + else if (token >= 200) { - cut_mesh._vertex_coords.push_back(cut_cell._vertex_coords[local_id*gdim+j]); + key.kind = 2; + key.a = parent_cell_id; + key.b = static_cast(token - 200); + } + else + { + const int edge_id = static_cast(token); + if (edge_id < 0 || edge_id >= static_cast(parent_edges.size())) + { + key.kind = 2; + key.a = parent_cell_id; + key.b = token; + } + else + { + const int v0 = parent_edges[edge_id][0]; + const int v1 = parent_edges[edge_id][1]; + const int32_t gv0 = static_cast(cut_cell._parent_vertex_ids[v0]); + const int32_t gv1 = static_cast(cut_cell._parent_vertex_ids[v1]); + key.kind = 1; + key.a = std::min(gv0, gv1); + key.b = std::max(gv0, gv1); + } + } + + auto it = global_vertex_ids.find(key); + if (it == global_vertex_ids.end()) + { + const int merged_vertex_id = static_cast(cut_mesh._vertex_coords.size() / gdim); + append_vertex_coords(cut_mesh._vertex_coords, cut_cell._vertex_coords, local_id, static_cast(gdim)); + global_vertex_ids.emplace(key, merged_vertex_id); + local_merged_vertex_ids[local_id] = merged_vertex_id; + } + else + { + local_merged_vertex_ids[local_id] = it->second; } } - else //found + } + else + { + // Slow fallback: coordinate-based dedup (kept for compatibility). + for (int local_id = 0; local_id < num_cut_cell_vertices; ++local_id) { - //take already existing vertex for local mapping - merged_vertex_id = id; + const int id = cutcells::utils::vertex_exists(cut_mesh._vertex_coords, cut_cell._vertex_coords, + local_id, static_cast(gdim)); + if (id == -1) + { + const int merged_vertex_id = static_cast(cut_mesh._vertex_coords.size() / gdim); + append_vertex_coords(cut_mesh._vertex_coords, cut_cell._vertex_coords, local_id, static_cast(gdim)); + local_merged_vertex_ids[local_id] = merged_vertex_id; + } + else + { + local_merged_vertex_ids[local_id] = id; + } } - //offset is vertex_id - local_merged_vertex_ids[local_id] = merged_vertex_id; } for(int i=0;i(index)]; } cut_mesh._offset[sub_cell_offset+i] = element_offset; @@ -301,6 +413,17 @@ namespace cutcells::mesh //cut the cell cell::cut(cell_type, vertex_coords,3,level_set_values,cut_type_str,cut_cell,triangulate); + + // Populate context-global parent vertex IDs to enable fast merging in create_cut_mesh. + // The cutters themselves default these IDs to 0..V-1. + cut_cell._parent_cell_type = cell_type; + cut_cell._parent_vertex_ids.resize(num_vertices); + for (int j = 0; j < num_vertices; ++j) + { + const int vertex_id = connectivity[cell_offset + j]; + cut_cell._parent_vertex_ids[j] = vertex_id; + } + cut_cells._cut_cells[i] = cut_cell; cut_cells._parent_map[i] = cell_index; diff --git a/python/cutcells/wrapper.cpp b/python/cutcells/wrapper.cpp index 8188e4e..7cf07f2 100644 --- a/python/cutcells/wrapper.cpp +++ b/python/cutcells/wrapper.cpp @@ -84,29 +84,41 @@ void declare_float(nb::module_& m, std::string type) .def_prop_ro( "vertex_coords", [](const cell::CutCell& self) { - const unsigned long num_vertices = self._vertex_coords.size()/self._gdim; - std::vector vertex_coords(3*num_vertices); - - int idx = 0; - - for(unsigned long i=0;i(self._gdim); + if (gdim == 0) + return nb::ndarray(nullptr, {0, 0}, nb::handle()); + const std::size_t n = self._vertex_coords.size() / gdim; + return nb::ndarray( + self._vertex_coords.data(), + {n, gdim}, + nb::handle()); + }, + nb::rv_policy::reference_internal, + "Zero-copy view of cut-cell vertex coordinates as shape (num_vertices, gdim).") + .def_prop_ro( + "parent_vertex_coords", + [](const cell::CutCell& self) { + const std::size_t gdim = static_cast(self._gdim); + if (gdim == 0) + return nb::ndarray(nullptr, {0, 0}, nb::handle()); + const std::size_t n = self._parent_vertex_coords.size() / gdim; + return nb::ndarray( + self._parent_vertex_coords.data(), + {n, gdim}, + nb::handle()); + }, + nb::rv_policy::reference_internal, + "Zero-copy view of parent-cell vertex coordinates as shape (num_parent_vertices, gdim).") + .def_prop_ro( + "parent_vertex_ids", + [](const cell::CutCell& self) { + return nb::ndarray( + self._parent_vertex_ids.data(), + {self._parent_vertex_ids.size()}, + nb::handle()); + }, + nb::rv_policy::reference_internal, + "Zero-copy view of parent vertex ids (context-global indices when available).") .def_prop_ro( "connectivity", [](const cell::CutCell& self) { @@ -189,29 +201,17 @@ void declare_float(nb::module_& m, std::string type) .def_prop_ro( "vertex_coords", [](const mesh::CutMesh& self) { - const unsigned long num_vertices = self._vertex_coords.size()/self._gdim; - std::vector vertex_coords(3*num_vertices); - - int idx = 0; - - for(unsigned long i=0;i(self._gdim); + if (gdim == 0) + return nb::ndarray(nullptr, {0, 0}, nb::handle()); + const std::size_t n = self._vertex_coords.size() / gdim; + return nb::ndarray( + self._vertex_coords.data(), + {n, gdim}, + nb::handle()); + }, + nb::rv_policy::reference_internal, + "Zero-copy view of mesh vertex coordinates as shape (num_vertices, gdim).") .def_prop_ro( "connectivity", [](const mesh::CutMesh& self) { diff --git a/python/demo/cut_2nd_order_tetrahedron/cut_tetrahedron.py b/python/demo/cut_2nd_order_tetrahedron/cut_tetrahedron.py index bfd34f4..068fe07 100644 --- a/python/demo/cut_2nd_order_tetrahedron/cut_tetrahedron.py +++ b/python/demo/cut_2nd_order_tetrahedron/cut_tetrahedron.py @@ -2,41 +2,45 @@ import numpy as np import pyvista as pv -subdivision = np.array([[2,3], [1,3], [1,2], [0,3], [0,2], [0,1]]) +subdivision = np.array([[2, 3], [1, 3], [1, 2], [0, 3], [0, 2], [0, 1]]) + +# e01 : 4 , e12: 5, e02: 6, e03: 7, e13: 8, e23: 9 +# subdivision_vtk = np.array([[0,1], [1,2], [0,2], [0,3], [1,3], [2,3]]) -#e01 : 4 , e12: 5, e02: 6, e03: 7, e13: 8, e23: 9 -#subdivision_vtk = np.array([[0,1], [1,2], [0,2], [0,3], [1,3], [2,3]]) def level_set(x, c, r): - value = 0 - for i in range(0,3): - value = value + (x[i]-c[i])**2 - value = np.sqrt(value)-r - return value + value = 0 + for i in range(0, 3): + value = value + (x[i] - c[i]) ** 2 + value = np.sqrt(value) - r + return value + -c = np.array([0,0,0]) +c = np.array([0, 0, 0]) r = 0.6 -tetra_vertices = np.array([[0.0, 0.0, 0.0], - [1.0, 0.0, 0.0], - [0.0, 1.0, 0.0], - [0.0, 0.0, 1.0] ]) +tetra_vertices = np.array( + [[0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]] +) mid_points = np.empty([6, 3]) -#obtain edge nodes with vtk ordering -for i in range(0,6): - mid_points[i] = tetra_vertices[subdivision[i,0]] + (tetra_vertices[subdivision[i,1]]-tetra_vertices[subdivision[i,0]])/2.0 +# obtain edge nodes with vtk ordering +for i in range(0, 6): + mid_points[i] = ( + tetra_vertices[subdivision[i, 0]] + + (tetra_vertices[subdivision[i, 1]] - tetra_vertices[subdivision[i, 0]]) / 2.0 + ) # add mid-edge nodes to tetrahedral nodes tetra_nodes = np.concatenate((tetra_vertices, mid_points), axis=0) print(tetra_nodes) -ls_values=np.empty(10) -idx=0 +ls_values = np.empty(10) +idx = 0 for x in tetra_nodes: - ls_values[idx] = level_set(x, c, r) - idx = idx+1 + ls_values[idx] = level_set(x, c, r) + idx = idx + 1 print(ls_values) @@ -44,22 +48,34 @@ def level_set(x, c, r): triangulate = True gdim = 3 -cut_cell_int = cutcells.higher_order_cut(cell_type, tetra_nodes, gdim, ls_values, "phi<0", triangulate) +cut_cell_int = cutcells.higher_order_cut( + cell_type, tetra_nodes, gdim, ls_values, "phi<0", triangulate +) print(cut_cell_int.str()) cut_cell_int.write_vtk("interior.vtu") -cut_cell_ext = cutcells.higher_order_cut(cell_type, tetra_nodes, gdim, ls_values, "phi>0", triangulate) +cut_cell_ext = cutcells.higher_order_cut( + cell_type, tetra_nodes, gdim, ls_values, "phi>0", triangulate +) print(cut_cell_ext.str()) cut_cell_ext.write_vtk("exterior.vtu") -#pv.OFF_SCREEN = True -#pv.start_xvfb() - -grid_int = pv.UnstructuredGrid(cut_cell_int.connectivity, cut_cell_int.types, cut_cell_int.vertex_coords) -grid_ext = pv.UnstructuredGrid(cut_cell_ext.connectivity, cut_cell_ext.types, cut_cell_ext.vertex_coords) - -plotter = pv.Plotter() #off_screen=True -plotter.set_background('white', top='white') -plotter.add_mesh(grid_int, color="blue",show_edges=True) -plotter.add_mesh(grid_ext, color="red",show_edges=True) -plotter.show() #screenshot='cut_triangle.png' +# pv.OFF_SCREEN = True +# pv.start_xvfb() + +grid_int = pv.UnstructuredGrid( + cut_cell_int.connectivity, + cut_cell_int.types, + cut_cell_int.vertex_coords, +) +grid_ext = pv.UnstructuredGrid( + cut_cell_ext.connectivity, + cut_cell_ext.types, + cut_cell_ext.vertex_coords, +) + +plotter = pv.Plotter() # off_screen=True +plotter.set_background("white", top="white") +plotter.add_mesh(grid_int, color="blue", show_edges=True) +plotter.add_mesh(grid_ext, color="red", show_edges=True) +plotter.show() # screenshot='cut_triangle.png' diff --git a/python/demo/cut_2nd_order_triangle/cut_triangle.py b/python/demo/cut_2nd_order_triangle/cut_triangle.py index 33a97fe..95be98c 100644 --- a/python/demo/cut_2nd_order_triangle/cut_triangle.py +++ b/python/demo/cut_2nd_order_triangle/cut_triangle.py @@ -1,34 +1,49 @@ import cutcells import numpy as np -import pyvista as pv +import pyvista as pv + def cut_cell_type_to_pyvista(cut_cell_type): - if(cut_cell_type==cutcells.CellType.triangle): - return pv.CellType.TRIANGLE; + if cut_cell_type == cutcells.CellType.triangle: + return pv.CellType.TRIANGLE + -ls_values = np.array([-0.1,0.1,0.2,-0.3, 0.4, 0.2]) -vertex_coordinates = np.array([0.,0.,1.,0.,0.,1.,0.5,0.5,0.,0.5,0.5,0.0]) +ls_values = np.array([-0.1, 0.1, 0.2, -0.3, 0.4, 0.2]) +vertex_coordinates = np.array( + [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.5, 0.5, 0.0, 0.5, 0.5, 0.0] +) cell_type = cutcells.CellType.triangle triangulate = True gdim = 2 -cut_cell_int = cutcells.higher_order_cut(cell_type, vertex_coordinates, gdim, ls_values, "phi<0", triangulate) +cut_cell_int = cutcells.higher_order_cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi<0", triangulate +) print(cut_cell_int.str()) cut_cell_int.write_vtk("interior.vtu") -cut_cell_ext = cutcells.higher_order_cut(cell_type, vertex_coordinates, gdim, ls_values, "phi>0", triangulate) +cut_cell_ext = cutcells.higher_order_cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi>0", triangulate +) print(cut_cell_ext.str()) cut_cell_ext.write_vtk("exterior.vtu") -#pv.OFF_SCREEN = True -#pv.start_xvfb() +# pv.OFF_SCREEN = True +# pv.start_xvfb() + +pts_int = np.asarray(cut_cell_int.vertex_coords) +if pts_int.shape[1] == 2: + pts_int = np.c_[pts_int, np.zeros((pts_int.shape[0],), dtype=pts_int.dtype)] +pts_ext = np.asarray(cut_cell_ext.vertex_coords) +if pts_ext.shape[1] == 2: + pts_ext = np.c_[pts_ext, np.zeros((pts_ext.shape[0],), dtype=pts_ext.dtype)] -grid_int = pv.UnstructuredGrid(cut_cell_int.connectivity, cut_cell_int.types, cut_cell_int.vertex_coords) -grid_ext = pv.UnstructuredGrid(cut_cell_ext.connectivity, cut_cell_ext.types, cut_cell_ext.vertex_coords) +grid_int = pv.UnstructuredGrid(cut_cell_int.connectivity, cut_cell_int.types, pts_int) +grid_ext = pv.UnstructuredGrid(cut_cell_ext.connectivity, cut_cell_ext.types, pts_ext) -plotter = pv.Plotter() #off_screen=True -plotter.set_background('white', top='white') -plotter.add_mesh(grid_int, color="blue",show_edges=True) -plotter.add_mesh(grid_ext, color="red",show_edges=True) -plotter.show() #screenshot='cut_triangle.png' +plotter = pv.Plotter() # off_screen=True +plotter.set_background("white", top="white") +plotter.add_mesh(grid_int, color="blue", show_edges=True) +plotter.add_mesh(grid_ext, color="red", show_edges=True) +plotter.show() # screenshot='cut_triangle.png' diff --git a/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py b/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py index 59fbd2d..95afb9d 100644 --- a/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py +++ b/python/demo/cut_hexahedron/cut_hexahedron_cases_subplots.py @@ -119,9 +119,7 @@ def render_batch(batch_index: int) -> None: "phi<0", False, ) - inside_points = np.asarray( - inside_cell.vertex_coords, dtype=float - ).reshape(-1, 3) + inside_points = np.asarray(inside_cell.vertex_coords) inside_grid = pv.UnstructuredGrid( inside_cell.connectivity, inside_cell.types, inside_points ) @@ -136,7 +134,7 @@ def render_batch(batch_index: int) -> None: False, ) - points = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + points = np.asarray(cut_cell.vertex_coords) grid = pv.UnstructuredGrid( cut_cell.connectivity, cut_cell.types, points ) diff --git a/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py b/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py index e572757..a97183c 100644 --- a/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py +++ b/python/demo/cut_hexahedron/cut_hexahedron_gyroid_thick.py @@ -61,8 +61,11 @@ def create_cut_mesh( "phi<0", ) - cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) - pv_cut = pv.UnstructuredGrid(cut_mesh.cells, cut_mesh.types, cut_points) + pv_cut = pv.UnstructuredGrid( + cut_mesh.cells, + cut_mesh.types, + cut_mesh.vertex_coords, + ) extract = grid.extract_cells(inside_cells) return extract.merge(pv_cut) @@ -164,8 +167,9 @@ def main() -> None: iface = cutcells.cut_vtk_mesh( ls_values, pts, conn, off, ctypes, "phi=0", args.triangulate ) - iface_pts = np.asarray(iface.vertex_coords, dtype=float).reshape(-1, 3) - iface_pv = pv.UnstructuredGrid(iface.cells, iface.types, iface_pts) + iface_pv = pv.UnstructuredGrid( + iface.cells, iface.types, iface.vertex_coords + ) iface_file = f"{args.write_prefix}_interface.vtu" iface_pv.save(iface_file) print(f"Wrote interface VTK -> {iface_file}") @@ -177,8 +181,9 @@ def main() -> None: inside = cutcells.cut_vtk_mesh( ls_values, pts, conn, off, ctypes, "phi<0", args.triangulate ) - inside_pts = np.asarray(inside.vertex_coords, dtype=float).reshape(-1, 3) - inside_pv = pv.UnstructuredGrid(inside.cells, inside.types, inside_pts) + inside_pv = pv.UnstructuredGrid( + inside.cells, inside.types, inside.vertex_coords + ) inside_file = f"{args.write_prefix}_inside.vtu" inside_pv.save(inside_file) print(f"Wrote inside VTK -> {inside_file}") @@ -190,8 +195,9 @@ def main() -> None: outside = cutcells.cut_vtk_mesh( ls_values, pts, conn, off, ctypes, "phi>0", args.triangulate ) - outside_pts = np.asarray(outside.vertex_coords, dtype=float).reshape(-1, 3) - outside_pv = pv.UnstructuredGrid(outside.cells, outside.types, outside_pts) + outside_pv = pv.UnstructuredGrid( + outside.cells, outside.types, outside.vertex_coords + ) outside_file = f"{args.write_prefix}_outside.vtu" outside_pv.save(outside_file) print(f"Wrote outside VTK -> {outside_file}") diff --git a/python/demo/cut_hexahedron/cut_hexahedron_n0.py b/python/demo/cut_hexahedron/cut_hexahedron_n0.py index 3f313cf..4574519 100644 --- a/python/demo/cut_hexahedron/cut_hexahedron_n0.py +++ b/python/demo/cut_hexahedron/cut_hexahedron_n0.py @@ -72,7 +72,7 @@ def main() -> None: False, ) - points = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + points = np.asarray(cut_cell.vertex_coords) grid = pv.UnstructuredGrid(cut_cell.connectivity, cut_cell.types, points) edge_mask = np.array([on_unit_cube_edge(p) for p in points], dtype=bool) diff --git a/python/demo/cut_prism/cut_prism_n0.py b/python/demo/cut_prism/cut_prism_n0.py index 7898f27..63930e2 100644 --- a/python/demo/cut_prism/cut_prism_n0.py +++ b/python/demo/cut_prism/cut_prism_n0.py @@ -70,7 +70,7 @@ def main() -> None: False, ) - points = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + points = np.asarray(cut_cell.vertex_coords) grid = pv.UnstructuredGrid(cut_cell.connectivity, cut_cell.types, points) interior_mask = np.array( diff --git a/python/demo/cut_pyramid/cut_pyramid_n0.py b/python/demo/cut_pyramid/cut_pyramid_n0.py index c4db709..42963e2 100644 --- a/python/demo/cut_pyramid/cut_pyramid_n0.py +++ b/python/demo/cut_pyramid/cut_pyramid_n0.py @@ -76,7 +76,7 @@ def main() -> None: False, ) - points = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + points = np.asarray(cut_cell.vertex_coords) grid = pv.UnstructuredGrid(cut_cell.connectivity, cut_cell.types, points) interior_mask = np.array( diff --git a/python/demo/cut_tetrahedron/cut_tetrahedron.py b/python/demo/cut_tetrahedron/cut_tetrahedron.py index 1af6dc0..7c138dd 100644 --- a/python/demo/cut_tetrahedron/cut_tetrahedron.py +++ b/python/demo/cut_tetrahedron/cut_tetrahedron.py @@ -2,39 +2,55 @@ import numpy as np import pyvista as pv -ls_values = np.array([0.1,-0.1,-0.2, 0.4]) -vertex_coordinates = np.array([1.,1.,1., 1.,-1., -1., -1, 1., -1., -1., -1, 1]) +ls_values = np.array([0.1, -0.1, -0.2, 0.4]) +vertex_coordinates = np.array( + [1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1, 1.0, -1.0, -1.0, -1, 1] +) cell_type = cutcells.CellType.tetrahedron triangulate = True gdim = 3 -cut_cell_int = cutcells.cut(cell_type, vertex_coordinates, gdim, ls_values, "phi<0", triangulate) +cut_cell_int = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi<0", triangulate +) print(cut_cell_int.str()) cut_cell_int.write_vtk("interior.vtu") -cut_cell_ext = cutcells.cut(cell_type, vertex_coordinates, gdim, ls_values, "phi>0", triangulate) +cut_cell_ext = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi>0", triangulate +) print(cut_cell_ext.str()) cut_cell_ext.write_vtk("exterior.vtu") -cut_cell = cutcells.cut(cell_type, vertex_coordinates, gdim, ls_values, "phi=0", triangulate) +cut_cell = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi=0", triangulate +) print(cut_cell.str()) cut_cell.write_vtk("interface.vtu") pv.start_xvfb() -grid_int = pv.UnstructuredGrid(cut_cell_int.connectivity, cut_cell_int.types, cut_cell_int.vertex_coords) -grid_ext = pv.UnstructuredGrid(cut_cell_ext.connectivity, cut_cell_ext.types, cut_cell_ext.vertex_coords) +grid_int = pv.UnstructuredGrid( + cut_cell_int.connectivity, + cut_cell_int.types, + cut_cell_int.vertex_coords, +) +grid_ext = pv.UnstructuredGrid( + cut_cell_ext.connectivity, + cut_cell_ext.types, + cut_cell_ext.vertex_coords, +) split_cells_int = grid_int.explode() split_cells_ext = grid_ext.explode() -#split_cells.plot(show_edges=True, ssao=True) +# split_cells.plot(show_edges=True, ssao=True) -split_cells_int = split_cells_int.translate((0,0, -0.4), inplace=False) +split_cells_int = split_cells_int.translate((0, 0, -0.4), inplace=False) plotter = pv.Plotter(off_screen=True) -plotter.set_background('white', top='white') -#plotter.enable_ssao() -plotter.add_mesh(split_cells_int, color="blue",show_edges=True, opacity=0.5) -plotter.add_mesh(split_cells_ext, color="red",show_edges=True, opacity=0.5) -plotter.show(screenshot='cut_tetra.png') +plotter.set_background("white", top="white") +# plotter.enable_ssao() +plotter.add_mesh(split_cells_int, color="blue", show_edges=True, opacity=0.5) +plotter.add_mesh(split_cells_ext, color="red", show_edges=True, opacity=0.5) +plotter.show(screenshot="cut_tetra.png") diff --git a/python/demo/cut_triangle/cut_triangle.py b/python/demo/cut_triangle/cut_triangle.py index 90bb269..9cc41c9 100644 --- a/python/demo/cut_triangle/cut_triangle.py +++ b/python/demo/cut_triangle/cut_triangle.py @@ -1,19 +1,23 @@ import cutcells import numpy as np -import pyvista as pv +import pyvista as pv + def cut_cell_type_to_pyvista(cut_cell_type): - if(cut_cell_type==cutcells.CellType.triangle): - return pv.CellType.TRIANGLE; + if cut_cell_type == cutcells.CellType.triangle: + return pv.CellType.TRIANGLE + -ls_values = np.array([0.1,-0.1,0.2]) -vertex_coordinates = np.array([0.,0.,1.,0.,1.,1.]) +ls_values = np.array([0.1, -0.1, 0.2]) +vertex_coordinates = np.array([0.0, 0.0, 1.0, 0.0, 1.0, 1.0]) cell_type = cutcells.CellType.triangle triangulate = True gdim = 2 -cut_cell_int = cutcells.cut(cell_type, vertex_coordinates, gdim, ls_values, "phi<0", triangulate) +cut_cell_int = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi<0", triangulate +) print(cut_cell_int.str()) cut_cell_int.write_vtk("interior.vtu") vol = cut_cell_int.volume() @@ -22,7 +26,9 @@ def cut_cell_type_to_pyvista(cut_cell_type): print("connectivity=", cut_cell_int.connectivity) print("types=", cut_cell_int.types) -cut_cell_ext = cutcells.cut(cell_type, vertex_coordinates, gdim, ls_values, "phi>0", triangulate) +cut_cell_ext = cutcells.cut( + cell_type, vertex_coordinates, gdim, ls_values, "phi>0", triangulate +) print(cut_cell_ext.str()) cut_cell_ext.write_vtk("exterior.vtu") vol2 = cut_cell_ext.volume() @@ -33,11 +39,18 @@ def cut_cell_type_to_pyvista(cut_cell_type): pv.start_xvfb() -grid_int = pv.UnstructuredGrid(cut_cell_int.connectivity, cut_cell_int.types, cut_cell_int.vertex_coords) -grid_ext = pv.UnstructuredGrid(cut_cell_ext.connectivity, cut_cell_ext.types, cut_cell_ext.vertex_coords) +pts_int = np.asarray(cut_cell_int.vertex_coords) +if pts_int.shape[1] == 2: + pts_int = np.c_[pts_int, np.zeros((pts_int.shape[0],), dtype=pts_int.dtype)] +pts_ext = np.asarray(cut_cell_ext.vertex_coords) +if pts_ext.shape[1] == 2: + pts_ext = np.c_[pts_ext, np.zeros((pts_ext.shape[0],), dtype=pts_ext.dtype)] + +grid_int = pv.UnstructuredGrid(cut_cell_int.connectivity, cut_cell_int.types, pts_int) +grid_ext = pv.UnstructuredGrid(cut_cell_ext.connectivity, cut_cell_ext.types, pts_ext) plotter = pv.Plotter(off_screen=False) -plotter.set_background('white', top='white') -plotter.add_mesh(grid_int, color="blue",show_edges=True) -plotter.add_mesh(grid_ext, color="red",show_edges=True) -plotter.show(screenshot='cut_triangle.png') +plotter.set_background("white", top="white") +plotter.add_mesh(grid_int, color="blue", show_edges=True) +plotter.add_mesh(grid_ext, color="red", show_edges=True) +plotter.show(screenshot="cut_triangle.png") diff --git a/python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py b/python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py index dbc439c..7ec41c5 100644 --- a/python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py +++ b/python/demo/cut_vtk_mesh/cut_hex_mesh_3D.py @@ -105,8 +105,11 @@ def main(): cells.reshape(-1, 9)[:, 1:] = connectivity.reshape(-1, 8) pv_in = pv.UnstructuredGrid(cells, celltypes, points) - cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) - pv_cut = pv.UnstructuredGrid(cut_mesh.cells, cut_mesh.types, cut_points) + pv_cut = pv.UnstructuredGrid( + cut_mesh.cells, + cut_mesh.types, + cut_mesh.vertex_coords, + ) pl = pv.Plotter() pl.add_mesh(pv_in, show_edges=True, style="wireframe", opacity=0.15) diff --git a/python/demo/cut_vtk_mesh/cut_mesh_2D.py b/python/demo/cut_vtk_mesh/cut_mesh_2D.py index 2eb5a4e..1a9411d 100644 --- a/python/demo/cut_vtk_mesh/cut_mesh_2D.py +++ b/python/demo/cut_vtk_mesh/cut_mesh_2D.py @@ -3,55 +3,62 @@ import pyvista as pv import time + def level_set(x): - r = 0.7 - c = np.array([0,0,0]) - value = 0 - for i in range(0,3): - value = value + (x[i]-c[i])**2 - value = np.sqrt(value)-r - return value - -def create_rectangle_mesh(x0,y0,x1,y1,Nx,Ny): - x = np.linspace(x0, x1, num=Nx) - y = np.linspace(y0,y1, num=Ny) - #produce grid of points by tensor product - xx, yy, zz = np.meshgrid(x, y, [0]) - points = np.c_[xx.reshape(-1), yy.reshape(-1), zz.reshape(-1)] - poly_points = pv.PolyData(points) - poly_mesh = poly_points.delaunay_2d() - grid = pv.UnstructuredGrid(poly_mesh) - - return grid + r = 0.7 + c = np.array([0, 0, 0]) + value = 0 + for i in range(0, 3): + value = value + (x[i] - c[i]) ** 2 + value = np.sqrt(value) - r + return value + + +def create_rectangle_mesh(x0, y0, x1, y1, Nx, Ny): + x = np.linspace(x0, x1, num=Nx) + y = np.linspace(y0, y1, num=Ny) + # produce grid of points by tensor product + xx, yy, zz = np.meshgrid(x, y, [0]) + points = np.c_[xx.reshape(-1), yy.reshape(-1), zz.reshape(-1)] + poly_points = pv.PolyData(points) + poly_mesh = poly_points.delaunay_2d() + grid = pv.UnstructuredGrid(poly_mesh) + + return grid + def create_cut_mesh(grid): - points = grid.points - ls_values = np.zeros(len(points)) - j = 0 - for point in points: - ls_values[j] = level_set(point) - j = j+1 + points = grid.points + ls_values = np.zeros(len(points)) + j = 0 + for point in points: + ls_values[j] = level_set(point) + j = j + 1 - cut_mesh = cutcells.cut_vtk_mesh(ls_values,points,grid.cell_connectivity,grid.offset,grid.celltypes,"phi<0") - inside_cells = cutcells.locate_cells(ls_values,points,grid.cell_connectivity,grid.offset,grid.celltypes,"phi<0") + cut_mesh = cutcells.cut_vtk_mesh( + ls_values, points, grid.cell_connectivity, grid.offset, grid.celltypes, "phi<0" + ) + inside_cells = cutcells.locate_cells( + ls_values, points, grid.cell_connectivity, grid.offset, grid.celltypes, "phi<0" + ) - pv_cut = pv.UnstructuredGrid(cut_mesh.cells,cut_mesh.types,cut_mesh.vertex_coords) - extract = grid.extract_cells(inside_cells) + pv_cut = pv.UnstructuredGrid( + cut_mesh.cells, cut_mesh.types, np.asarray(cut_mesh.vertex_coords) + ) + extract = grid.extract_cells(inside_cells) - return extract.merge(pv_cut) + return extract.merge(pv_cut) N = 22 -grid = create_rectangle_mesh(-1,-1,1,1,N,N) +grid = create_rectangle_mesh(-1, -1, 1, 1, N, N) mesh = create_cut_mesh(grid) mesh.plot(cpos="xy", show_edges=True) pl = pv.Plotter() -pl.add_mesh(grid, show_edges=True, color = 'white') +pl.add_mesh(grid, show_edges=True, color="white") pl.add_mesh(mesh, show_edges=True) -pl.camera_position = 'xy' +pl.camera_position = "xy" pl.show() - - diff --git a/python/demo/cut_vtk_mesh/cut_mesh_3D.py b/python/demo/cut_vtk_mesh/cut_mesh_3D.py index 27f1681..7e70f2e 100644 --- a/python/demo/cut_vtk_mesh/cut_mesh_3D.py +++ b/python/demo/cut_vtk_mesh/cut_mesh_3D.py @@ -85,8 +85,11 @@ def create_cut_mesh(grid): ls_values, points, grid.cell_connectivity, grid.offset, grid.celltypes, "phi<0" ) - cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) - pv_cut = pv.UnstructuredGrid(cut_mesh.cells, cut_mesh.types, cut_points) + pv_cut = pv.UnstructuredGrid( + cut_mesh.cells, + cut_mesh.types, + cut_mesh.vertex_coords, + ) extract = grid.extract_cells(inside_cells) return extract.merge(pv_cut) diff --git a/python/demo/cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py b/python/demo/cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py index dbc0d1e..3937e72 100644 --- a/python/demo/cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py +++ b/python/demo/cut_vtk_mesh/cut_popcorn_hex_mesh_3D.py @@ -94,8 +94,11 @@ def create_cut_mesh( "phi<0", ) - cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) - pv_cut = pv.UnstructuredGrid(cut_mesh.cells, cut_mesh.types, cut_points) + pv_cut = pv.UnstructuredGrid( + cut_mesh.cells, + cut_mesh.types, + cut_mesh.vertex_coords, + ) extract = grid.extract_cells(inside_cells) return extract.merge(pv_cut) diff --git a/python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py b/python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py index c8882ac..2d1bd5a 100644 --- a/python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py +++ b/python/demo/cut_vtk_mesh/cut_quad_mesh_2D.py @@ -143,7 +143,7 @@ def main() -> None: bg = pv.UnstructuredGrid(cells_with_counts, celltypes, points) - cut_points = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape((-1, 3)) + cut_points = np.asarray(cut_mesh.vertex_coords) cut_cells = np.asarray(cut_mesh.cells, dtype=np.int32) cut_types = np.asarray(cut_mesh.types, dtype=np.int32) pv_cut = pv.UnstructuredGrid(cut_cells, cut_types, cut_points) diff --git a/python/demo/plot_quadrilateral_cases.py b/python/demo/plot_quadrilateral_cases.py index d5019f1..c0d7b94 100644 --- a/python/demo/plot_quadrilateral_cases.py +++ b/python/demo/plot_quadrilateral_cases.py @@ -129,8 +129,8 @@ def _plot_runtime_cutcell( linestyle: str, label: str, ): - coords = list(cut_cell.vertex_coords) - pts = [(coords[i], coords[i + 1]) for i in range(0, len(coords), 3)] + coords = np.asarray(cut_cell.vertex_coords) + pts = [(float(p[0]), float(p[1])) for p in coords] connectivity = list(cut_cell.connectivity) types = list(cut_cell.types) diff --git a/python/tests/test_cut_vtk_mesh_hexahedron_smoke.py b/python/tests/test_cut_vtk_mesh_hexahedron_smoke.py index c6c2c5b..4aa3acb 100644 --- a/python/tests/test_cut_vtk_mesh_hexahedron_smoke.py +++ b/python/tests/test_cut_vtk_mesh_hexahedron_smoke.py @@ -51,7 +51,7 @@ def test_cut_vtk_mesh_single_hexahedron_smoke(): triangulate=True, ) - coords = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + coords = np.asarray(cut_mesh.vertex_coords) # All generated vertices must stay within the parent unit cube (tolerant for FP noise). tol = 1e-10 assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol diff --git a/python/tests/test_cut_vtk_mesh_prism_smoke.py b/python/tests/test_cut_vtk_mesh_prism_smoke.py index 5dc2c40..a4ad210 100644 --- a/python/tests/test_cut_vtk_mesh_prism_smoke.py +++ b/python/tests/test_cut_vtk_mesh_prism_smoke.py @@ -42,7 +42,7 @@ def test_cut_vtk_mesh_single_prism_smoke(): triangulate=True, ) - coords = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + coords = np.asarray(cut_mesh.vertex_coords) tol = 1e-10 assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol assert coords[:, 1].min() >= -tol and coords[:, 1].max() <= 1.0 + tol diff --git a/python/tests/test_cut_vtk_mesh_pyramid_smoke.py b/python/tests/test_cut_vtk_mesh_pyramid_smoke.py index 8f45136..a87aede 100644 --- a/python/tests/test_cut_vtk_mesh_pyramid_smoke.py +++ b/python/tests/test_cut_vtk_mesh_pyramid_smoke.py @@ -41,7 +41,7 @@ def test_cut_vtk_mesh_single_pyramid_smoke(): triangulate=True, ) - coords = np.asarray(cut_mesh.vertex_coords, dtype=float).reshape(-1, 3) + coords = np.asarray(cut_mesh.vertex_coords) tol = 1e-10 assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol assert coords[:, 1].min() >= -tol and coords[:, 1].max() <= 1.0 + tol diff --git a/python/tests/test_hexahedron_special_point.py b/python/tests/test_hexahedron_special_point.py index d0a5469..8cc649f 100644 --- a/python/tests/test_hexahedron_special_point.py +++ b/python/tests/test_hexahedron_special_point.py @@ -54,7 +54,7 @@ def test_hexahedron_interface_uses_special_point_n0(): False, ) - coords = np.asarray(cut_cell.vertex_coords, dtype=np.float64).reshape(-1, 3) + coords = np.asarray(cut_cell.vertex_coords) tol = 1e-10 assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol diff --git a/python/tests/test_prism_special_point.py b/python/tests/test_prism_special_point.py index 602af45..fce40c7 100644 --- a/python/tests/test_prism_special_point.py +++ b/python/tests/test_prism_special_point.py @@ -43,7 +43,7 @@ def test_prism_interface_uses_special_point_n0_case10(): False, ) - coords = np.asarray(cut_cell.vertex_coords, dtype=np.float64).reshape(-1, 3) + coords = np.asarray(cut_cell.vertex_coords) tol = 1e-10 assert coords[:, 0].min() >= -tol and coords[:, 0].max() <= 1.0 + tol diff --git a/python/tests/test_pyramid_special_point.py b/python/tests/test_pyramid_special_point.py index 2be345a..69ae3db 100644 --- a/python/tests/test_pyramid_special_point.py +++ b/python/tests/test_pyramid_special_point.py @@ -40,7 +40,7 @@ def test_pyramid_uses_special_point_n0_case19(): False, ) - coords = np.asarray(cut_cell.vertex_coords, dtype=np.float64).reshape(-1, 3) + coords = np.asarray(cut_cell.vertex_coords) # Basic bounds tol = 1e-10 diff --git a/python/tests/test_quadrilateral_ambiguity.py b/python/tests/test_quadrilateral_ambiguity.py index 7bf85eb..e7918f0 100644 --- a/python/tests/test_quadrilateral_ambiguity.py +++ b/python/tests/test_quadrilateral_ambiguity.py @@ -47,7 +47,7 @@ def test_asymptotic_decider_scale_invariant_and_different_diagonals(): def _segments_from_cutcell(cut_cell): - coords = np.asarray(cut_cell.vertex_coords, dtype=float).reshape(-1, 3) + coords = np.asarray(cut_cell.vertex_coords) conn = list(cut_cell.connectivity) segments = [] i = 0 diff --git a/python/tests/test_vertex_parent_entity_tokens.py b/python/tests/test_vertex_parent_entity_tokens.py new file mode 100644 index 0000000..04bf7c1 --- /dev/null +++ b/python/tests/test_vertex_parent_entity_tokens.py @@ -0,0 +1,138 @@ +import numpy as np +import cutcells + + +def test_quadrilateral_vertex_parent_entity_tokens_are_valid(): + # Unit square quad, intersected. + vertex_coordinates = np.array( + [0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0], dtype=np.float64 + ) + ls_values = np.array([-0.1, 0.2, -0.2, 0.3], dtype=np.float64) + + cut_cell = cutcells.cut( + cutcells.CellType.quadrilateral, + vertex_coordinates, + 2, + ls_values, + "phi<0", + False, + ) + + parents = np.asarray(cut_cell.vertex_parent_entity, dtype=np.int32) + assert parents.ndim == 1 + coords = np.asarray(cut_cell.vertex_coords) + assert coords.ndim == 2 + assert parents.size == coords.shape[0] + + # For quads we only expect edge tokens 0..3 and original-vertex tokens 100..103. + assert np.all( + ((0 <= parents) & (parents < 4)) | ((100 <= parents) & (parents < 104)) + ) + + +def test_hexahedron_vertex_parent_entity_includes_special_point_token_200(): + # Same case as test_hexahedron_interface_uses_special_point_n0, but assert the token appears. + ls_values = np.array([-1.0, -1.1, 1.2, 1.3, 1.4, 1.5, -1.6, 1.7], dtype=np.float64) + vertex_coordinates = np.array( + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 1.0, + 1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 1.0, + 1.0, + ], + dtype=np.float64, + ) + + cut_cell = cutcells.cut( + cutcells.CellType.hexahedron, vertex_coordinates, 3, ls_values, "phi=0", False + ) + parents = np.asarray(cut_cell.vertex_parent_entity, dtype=np.int32) + assert 200 in set(map(int, parents)) + + +def test_triangle_vertex_parent_entity_tokens_are_valid(): + # Unit right-triangle, intersected. + vertex_coordinates = np.array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0], dtype=np.float64) + ls_values = np.array([-0.1, 0.2, -0.3], dtype=np.float64) + + cut_cell = cutcells.cut( + cutcells.CellType.triangle, + vertex_coordinates, + 2, + ls_values, + "phi<0", + False, + ) + + parents = np.asarray(cut_cell.vertex_parent_entity, dtype=np.int32) + assert parents.ndim == 1 + coords = np.asarray(cut_cell.vertex_coords) + assert coords.ndim == 2 + assert parents.size == coords.shape[0] + + # Triangles have 3 edges and 3 vertices; no special points. + assert np.all( + ((0 <= parents) & (parents < 3)) | ((100 <= parents) & (parents < 103)) + ) + + +def test_tetrahedron_vertex_parent_entity_tokens_are_valid(): + # Unit tetrahedron, intersected. + vertex_coordinates = np.array( + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + ], + dtype=np.float64, + ) + ls_values = np.array([-0.1, 0.2, -0.3, 0.4], dtype=np.float64) + + cut_cell = cutcells.cut( + cutcells.CellType.tetrahedron, + vertex_coordinates, + 3, + ls_values, + "phi<0", + False, + ) + + parents = np.asarray(cut_cell.vertex_parent_entity, dtype=np.int32) + assert parents.ndim == 1 + coords = np.asarray(cut_cell.vertex_coords) + assert coords.ndim == 2 + assert parents.size == coords.shape[0] + + # Tets have 6 edges and 4 vertices; no special points. + assert np.all( + ((0 <= parents) & (parents < 6)) | ((100 <= parents) & (parents < 104)) + ) From a8b0c564915d965711c859f26f1f5e8cba9b846f Mon Sep 17 00:00:00 2001 From: Susanne Claus Date: Wed, 24 Dec 2025 00:41:25 +0100 Subject: [PATCH 6/7] update README --- README.md | 100 +++++++++++-- cpp/src/cut_cell.h | 3 + cpp/src/cut_mesh.cpp | 23 ++- img/cut_hex_gyroid_grid.png | Bin 0 -> 691433 bytes img/cut_tetra_quad.png | Bin 0 -> 56805 bytes img/cut_tetra_tri.png | Bin 0 -> 64066 bytes img/hybrid_flower.png | Bin 0 -> 53217 bytes {python => img}/popcorn_hex_mesh3D.png | Bin img/prism_n0_demo.png | Bin 0 -> 59386 bytes img/pyramid_n0_demo.png | Bin 0 -> 44644 bytes ...cases_with_disambiguation_panels_quads.png | Bin 0 -> 181461 bytes python/demo/cut_prism/cut_prism_n0.py | 3 +- .../plot_quadrilateral_cases.py | 0 .../demo/cut_vtk_mesh/cut_hybrid_flower_2D.py | 138 ++++++++++++++++++ 14 files changed, 250 insertions(+), 17 deletions(-) create mode 100644 img/cut_hex_gyroid_grid.png create mode 100644 img/cut_tetra_quad.png create mode 100644 img/cut_tetra_tri.png create mode 100644 img/hybrid_flower.png rename {python => img}/popcorn_hex_mesh3D.png (100%) create mode 100644 img/prism_n0_demo.png create mode 100644 img/pyramid_n0_demo.png create mode 100644 img/quad_cases_with_disambiguation_panels_quads.png rename python/demo/{ => cut_quadrilateral}/plot_quadrilateral_cases.py (100%) create mode 100644 python/demo/cut_vtk_mesh/cut_hybrid_flower_2D.py diff --git a/README.md b/README.md index 79ab727..0f99802 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,95 @@ [![CutCells CI](https://github.com/sclaus2/cutcells/actions/workflows/python-app.yml/badge.svg)](https://github.com/sclaus2/cutcells/actions/workflows/python-app.yml) -a library to compute intersections between mesh cells and implicit (level set) functions using marching cubes/tetrahedra algorithms. -The current version supports intervals, triangles, tetrahedra, quadrilaterals, hexahedra, pyramids and prisms. - -The library contains utility functions to cut through vtk meshes using pyvista. It is also used as a basis to generate run time quadrature rules in immersed boundary methods/cut finite element methods (see CutFEMx). - -The images below show a cut through a vtk mesh using pyvista and CutCells. -The corresponding demonstration code is located in `python/demo/cut_vtk_mesh`. - -

-Regular mesh cut by zero contour line of a circular level set function -Regular mesh cut by zero contour line of a popcorn level set function -

+**CutCells** is a lightweight **C++20 geometry kernel with Python bindings** to compute **cut-cell decompositions** of standard mesh elements by an **implicit surface / level set** `φ(x)`. + +Given one parent cell (or a whole mesh) and the level set values on its vertices, CutCells builds a **local sub-mesh** that describes: + +* the **inside** region `φ < 0`, +* the **outside** region `φ > 0`, +* and/or the **interface** `φ = 0` (as facets/segments embedded in the cell), + +with **explicit connectivity** and **element types**. + +It is designed as a building block for **unfitted / immersed FEM** workflows (e.g. **CutFEM**), where robust cut geometry and stable parent mappings are required for runtime quadrature. + +## Supported cell types + +Current parent cell support: + +* 1D: **interval** +* 2D: **triangle**, **quadrilateral** +* 3D: **tetrahedron**, **hexahedron**, **prism**, **pyramid** + +Higher-order (currently pragmatic) support: + +* **P2 triangle (6 nodes)** and **P2 tetrahedron (10 nodes)** via subdivision into linear sub-cells, cut, then merged back. + +## Performance and dependencies + +* **Few dependencies**: the computational core is plain C++. +* **Python bindings via nanobind**: CutCells exposes arrays in NumPy-friendly form and is designed to avoid unnecessary overhead. +* **Zero-copy where possible**: large buffers (coords, connectivity/offsets, parent IDs, provenance tags) are exposed as **views** when layout permits, minimizing memory traffic between C++ and Python. + +## Applications + +CutCells is intended as a reusable geometry backend for: + +* **CutFEM / unfitted FEM**: robust sub-cell and interface extraction for integration on `Ω∩K` and `Γ∩K` +* **runtime quadrature** generation +* general embedded geometry workflows where remeshing is undesirable + +## Example gallery + + +Below is a gallery of example outputs generated by CutCells and the provided Python demos. See `python/demo/` for scripts to reproduce these images. + + + + + + + + + + + + + + + + + +
+ 2D mesh cut by circle
+ 2D mesh cut by a circular level set +
+ Hybrid mesh flower cut
+ Hybrid mesh (quads+tris) cut by flower level set +
+ Quad cases with disambiguation
+ Quad cases with disambiguation panels +
+ Cut prism demo
+ Cut prism (wedge) demo +
+ Cut pyramid demo
+ Cut pyramid demo +
+ Cut pyramid demo + Cut pyramid demo
+ Cut tetrahedron demo +
+ 2D mesh cut by popcorn function
+ Tetrahedral mesh cut by a popcorn level set +
+ 3D hex mesh cut by popcorn
+ Hexahedral mesh cut by popcorn level set +
+ Hexahedron gyroid grid
+ Hexahedral mesh cut by gyroid level set +
# Installation diff --git a/cpp/src/cut_cell.h b/cpp/src/cut_cell.h index b85a94f..794e946 100644 --- a/cpp/src/cut_cell.h +++ b/cpp/src/cut_cell.h @@ -44,6 +44,9 @@ namespace cutcells /// vertices are indicated by a shift of 100 in the numbering vertex 1 -> 101 etc. std::vector _vertex_parent_entity; + /// Parent cell index + int32_t _parent_cell_index; + /// Parent cell type before cutting type _parent_cell_type; diff --git a/cpp/src/cut_mesh.cpp b/cpp/src/cut_mesh.cpp index 1060c3e..a5eca41 100644 --- a/cpp/src/cut_mesh.cpp +++ b/cpp/src/cut_mesh.cpp @@ -129,6 +129,15 @@ namespace cutcells::mesh { CutMesh cut_mesh; + if (cut_cells._cut_cells.empty()) + { + cut_mesh._gdim = 0; + cut_mesh._tdim = 0; + cut_mesh._num_cells = 0; + cut_mesh._num_vertices = 0; + return cut_mesh; + } + std::size_t gdim = cut_cells._cut_cells[0]._gdim; std::size_t tdim = cut_cells._cut_cells[0]._tdim; @@ -150,12 +159,16 @@ namespace cutcells::mesh cut_mesh._offset.resize(num_cells+1); cut_mesh._connectivity.resize(num_connectivity); - //either two or one - int num_parents = cut_cells._parent_map.size()/cut_cells._cut_cells.size(); + // either two or one; allow missing parent map + int num_parents = 0; + if (!cut_cells._parent_map.empty()) + num_parents = static_cast(cut_cells._parent_map.size() / cut_cells._cut_cells.size()); + if (num_parents <= 0) + num_parents = 1; cut_mesh._num_cells = num_cells; cut_mesh._types.resize(num_cells); - cut_mesh._parent_map.resize(num_cells*num_parents); + cut_mesh._parent_map.resize(num_cells * num_parents, -1); int sub_cell_offset = 0; int element_offset = 0; @@ -192,7 +205,9 @@ namespace cutcells::mesh const bool has_tokens = (static_cast(cut_cell._vertex_parent_entity.size()) == num_cut_cell_vertices); const int parent_vertices = cell::get_num_vertices(cut_cell._parent_cell_type); const bool has_parent_ids = (static_cast(cut_cell._parent_vertex_ids.size()) == parent_vertices); - const int parent_cell_id = cut_cells._parent_map[cnt * num_parents + 0]; + const int parent_cell_id = cut_cells._parent_map.empty() + ? -1 + : cut_cells._parent_map[cnt * num_parents + 0]; const bool can_fast_dedup = has_tokens && has_parent_ids && (parent_cell_id >= 0); if (can_fast_dedup) diff --git a/img/cut_hex_gyroid_grid.png b/img/cut_hex_gyroid_grid.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0ab95ec76449efd361cb4627c461c2dedea922 GIT binary patch literal 691433 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%0AK}q*`h8EC zb$?ihg{C}pi)KZIa%d|+G=+QP$!AJ~VfI1_k9PS0IBmhb&-;n~2KCSCETL%`si-|` z_1&VuN1&U5p0=d5(@;WB?+oIxOn5W^Pg4-D^j&ai#`Sr3qU+iXQvn4w$L&rHIIq2Q zcyy6xF(|7v{zD(j)M<2LPw&qh-%~hR2DCjC12Q&CN*FXp<1*u}GIF@6?P4$rqoJeo zOc{@xp=*3EVS@yS#rCb9YT;`e$rTDwyt{u4CeYgtM0FXH>nQ4+jD+H z-cld!)s-odVf+yw^fRZ1iAbE72 zhyo{?_x;Rc={eiK#GvW^rmDSQ(kfNF7x>=r5ksLtu?Jk()Fm=B8e0=`jxxgB6Tt8B6EeNYg19#}k4ge>#f<&5w77eXah(D%b6 zldKIGN=n*!atDg>{j#Nv8XPV!Q8YCJP&*AOG3kADT)8UcQZMhnpgaovALVc1Zb{C5 zf36xTF9CZa@NkTFad&6WYS}*iZv*$gNFeQnmfN++@v>h_mkA{VtmtO&JG) zI44yYJMIpqrsfJM&MXQ}&rJE9pW+h@8!`hnj3+H7PQ6#Y8@>W@h-laC`_T{Yq)l0V zv0V}!5kW&9oADK(Wo#iV7RFj~qDJ`#e^cpS05Em+Ven1T@%5+L~YN zFt)L|_o|&wqr(K!;$g!2_|+P<0%!=>Jf>^t6XFGQGIef1L7r@nP_dEkeImYHmLiy3 zRGWGP`#X!gXu`7ckvaFcDtt9A=q0{Zsrc0r0E;f;x?cybS zxQsJz(Fl*6v9`=z5Uhg#Ww=uQU!>Bw6(%A4e=dJ{b}!csHmf#KSfwRVzb_q@>Zq*ox#=S9O~t_p4;STGW(5FzLF5=a{N^rgqELuD-i?4CwJ>hNZ$)z!ipQTVDpz?xq2qk}B1WJyXUc+3jH+kd z{hx26`?*N^o`Z(Y4OsBo{~~9m2O+I>1g?#_6xG;CuSZS$i#zbr0<32D21vcdiXel` zn<10>{PNAv*c8Q7nl}gj@)=%we=zA<$TS;tY!6l>+7v?x1HcsI%L|$@!95Cap{*g_ z+7>G`X7hwn#)%_HJAg5EoSCcj@;6JaY(`Q#ER^NX^8SLCPYv1KJBV9oz(5x&fpEWS4p_NU}JKEq%i6$L}!>@HtrM*^p(h@Z6`X4u%xFMJU3 z+D6bhq=)(PUz$;v84EY7LRMUwjH)RFm&p^bCP+t6=8}N`hx)H`3$%owC=hy zUm<_{l5lhqzWT0D4w9ebJw5HLa12OlWM!`#Ts`qQVy4z=<3&b-IOybb^MvGE7EPsX~rgPvEcUGu}zk zL+=jk1a}V3DV%z(pFhT$fmq)Lq;{6DST2?)vSp36cR94?b}{J!{96Ao@RVW)?9_2iW{>T<-SIqgLtB zVkD7OEg#i01nO*Q4d^NjnsCE^`^88m5MvFR+Vh=u{;vQ0X?s-d>RNk5rR2kDt6KSZ zQkDZ%Nbj0{>qh1DBOty7_ev>J453TIMXB?$c=_zOiOUC;mDk&>AqHv|49l2YctT~r z96tL-y?t+*I1AHC_%Lm%Zslr&yyuzfQ_U1X37N7#rp=m{ z8DasG8CbbDvOENsVJ1#ZBa$(M%S|SulZCYQEx_E~D*}8s=)wXX`_!q*jx+RNE)ev; zg#w2*VyJoW$NZnb(JK{)c1MEx>z5Db+ypAJWQH4Ws%(TrK44QTfyRV*l{fm0u1Xtpg;+MdJsC?!}@mt5rH$eE>uV3&Jsc?3w=wSZfq=xoc!N%iBWtm3A3L+iX3bG zh7a5j3&PnbylsBA{Ayt6D3hRyhd}DO%hvu0Ljo2#_$QZ1REjK;lho)+-h22G?2O{| zyQDpjDl!p&C#TQU@Lut~!NA0XhNyZy{qnS)214m8Iy0F~u!k`BWwj_sAn<)%9RoFO z=Kn5QZ~u4E>cC`m;i#I+;th822U^a1PJ2u#GZ>QUs(NyI#_T>o#hILPX|KusNTK@% z5zVrAqrxO`VCICc1rah^sX0hd8}HFuFv z5afgDy*B?Z(0=g0g-{aW(zDf+Wk^13B5wVXAUM5eiTnhHYs@fL-VD32;K8S%pjkeF z=e>7h^euPh#WULK1|VGB_W>R#6ZyREf6!(4Vh27TdKjP0jRRZ&;Q0>j;rRRARG4^a zQz>8$pkdoo4hbwf?!%`uZbq0*MrK&y1}Ew13X#RawRiguA5bkHG@Sk>g<(b4?oihlEJUndYZR^C2uYP)&2u6Qab+ zAe}ITG3b}Az?p}Or~U>a;l1EX*toJ$sat~x$=N$`nzz+2=C5l0xAF5LWa-Dcv6)+R zbBBFFOIYs?z&+Re(oJ5r0&^YYs5qLJPUWh6R`2Xy7{$YSg27Wv>CjF%LZ56|#Ur15e z{sTh07z=_cy^tXwqJ;!^jT!jF$`k-ZeGg8VjL zAk)H1azd7TAuB2jA(7gMPQBL`w1Ga;WY*{OwB&S-J`acAp!pDeTAzfO{mbYrJ&#B;6!@Qh^=?cpfixP}A^2lAEXHdr5}l`D-Z@KI2V z=-d!pnlP(rr8+10$|=cX`Qcwr8*0^YY{M|Lx$I1L~@o=Hf)bvVei0| z>_w<5<^_k#X>(xg?fV%zExyW$l>a1XGKIo0dYj$iX8Y`SP}PB{ zp_;?o93bW-uT`bhw1fx$4fk8W_k&26p&HniYSUb;%RKq_^tdk>KCX@N*QoZ^Ed~=0 z+<$>pWwDY#c**{NU{CB&SK;e2`HfggT;e{Xb?MeUQ{H0vJdxW>jiT*(_&8I`41)`Q zl*NcHlhePXR&Qo1iWFs=K}WyI0aXUwjaN_j1=flHEi{O7^^HLGvN8AlVpZYAjvAdN ziZ}`q+=r95rnQ>D7e43nF;oKV?WN-4k?mIm_{}gV$S!(o=FE>M-`B#5#H+`vFo$(* z_vweNeWjz$HMNuDLO*ZjuP7eHU${5XS8MY#?c8yrDA;ibMcbJBs#Wz7WiU?+R+0(| z%s?RM{DWvuVf4=!12s*$hC-1d3JkaVuHwbS1~?#NnY6 zzICq=BVqmqrn^JHtd31dI==DvVSe#ffkPM@T@ya|jLTNILm@7K$7~v5OL{ekihHw0 zOYhpsF^?pIc%D48@Cu7!++$a9C|m_=m(c-6_`4-~b*h{T=38*hh-Jb@*gz1YBkafe z1gp$#Ko?7$h){|M5YEJ3ht_IRp3gu2MgFgjkhjLXJ6MD7$~?GoYi=#Eai!a^)Xu%_;q$DG$KDF~AVNC3Y;|tz@3z(&|H%vubvU3l zFM)s{J|bWdB1Y}k%nNwmk>{#<-Mo7d;dGEy82j34!UbRlD;pKst=MfP$TrJ>fGq$q zTu~6@IcjK)pxG-_ZCnvpf$4TIS8}|VApKWtl8FyRN18r|k)Q3$D>euNKV zLV*Jh%K#?uv4zIwgEHW2v;)H=P#}a+rhYL$BlV3tU7}!y(Pr@yLB@S9SLY1f2W%o`P3g5kcUnrk}Z3+yh|oYVR* zC0--d_c|1Psk&g-GGOT3X1DXp8YQ^bNqq7htr*s^9Cl!Ak17!G@6HpZ9hkVx*!=FR zcIKh0XFZLsNXrX0uV(diR8{_C2p&4}dkR)q@jIIzU0buO7+rTc+pSwnqRXnD7bJsF zwF>wjtge6{@2sN!*#`Q>X5BlmoRv8?BQrKVB?moR=k41UKGy{t zL^X4>zQ+F^-**Ix39Q&)1on@Rx*yaVT!B*P z6lCSzJY<8V=y0NOR0=Y3(ywgjjHNbj5nc}WJ2iK{hiM0kSzwk3Acl|Z-hlU@$u#4z zg!-E1Vy(Il=Bs;MWZcLRtTPZ1+lmPBN-R6-89a=OJDgPJh;et>$wmP?dqWhMzcEO_ zJ>h8$hpf=Keu|CM$5&aQU6V1gf%X-cm_&1xx^urH3#>$gO1&n(agJ} zTDh_`!bmF-vgH0Fm}byLKJgm`Ip#gwqg~7Lkpq&O3*T*D`W;4MH9fHY1?j?vVi~xD zC5!hGOORd*q(>_EUENcC4W^<8uffDx>H0bS1jX&xKF; zB{q7BlKumQr_7%-LHBS|C(nqWk&RxsEPe-KW>&_{o2J7lhV+?@pBrZ$aLER27V>^( zg|e|W6BWPgSmC8X1c`MoO}csyv*$!C;^<-uE15k!%ENK+~v zaT>98r>&{cL-rmD-{6atO8b#hOuNkBF8c!^)O9jJO_zh;%38qdyI7&F?`+#EZZ#kf zMLJKHEEyE#Y@}d959l#I4wXz~@cxV$+ya#iy_E7$*@8(B{N?I=yIz?r&2Rl12xMr` z-Gs@s5n>oxT4VP2y2Z+EekWf5foP17i&$DFi1>7_L6| z$EIS+fJ~?l&Ntu;BsWjtljj7f0TNQZ3TYf}%zOdNr~G7?0C2jFtknV!xGYbmofx^i z6kSOfLrFxm%MBZm;GW|`zuFt9Y%CB`Uqi+I(rttv2mw`qbl{=NghD|t*l0aLQmHt% zxCG#t>g|SIwb?en-683Itk2isw#+`Osy2(X=Th}_I<@6OP&_4`r|89&hEQDoKdx%N zj`<%mPwGFKVF6|fNm=KO1S()UGd0NWKInZL1PO5F=bvJ@ISlHgduHrDLifc4$GQy390^k)Bg7EhV`Yg-+f$jE0SXsU69o)C(0Exl*d^+AzF z!SmsM`?ipzN9WCRDXwqU8vTBL=0C`E?I8ZZ^>1C7X#lXu(sMt^mM(=Bl2 z07v7$#A!xj$N7k17ssF_X8sDInO({LR=eb}BQcZ^3DU$d1K@rrrjT6}d_V`_h1)0n z_n2XnN>-{o@v`~SAHcnx&P<*mRRo7f?d17v$FOt9mHUZMLs-of2*)yId%(CR;4gqH zo;UGMJB2TI+?WLlLW7H$m)c!7&o{X|Z1SgBKf<|IQ30$RI{V>>Gk<8M%LpTL?f!B?4V1*(R5l zm*?P(h;vnw60(GIC&&f|ApsNrz_LW@x%Vm}XRKpu}J?M;si+ny}Qb z;l-e1WsiB>-9(CCdji5=Pc^^n_j;x9_isvCSTVyy`QrvvWm-vDAjJ5{`7~|$Z{8#! z0E-N}^)wLl>{b{%4ndHOB0W7R8IU$Uiq2o`R|o4fhKK}8agltdkisafep19y%~efE zN!xdA871IaO>ygTFtz#l{b7PB#+FwWl;_6*P61Am1h_SO7wrvP9|**;l2gLGy%rR* z)}_gOsx|q?!FtX82m7qL(ZzhqW|)p`{YA4)nj3!z&8bmV#6d7URAamk!Dj4 zLsmV}XH*IQN8_O-R+g|^@*tegOVtP^Z}07!?zX`Wg))v38bBQ=(#J?usDZ6d3O#Q! zbz!XwM7NgChTrXW0(WLStFjiK{!NoayBLkU>@d}^WOt|o703`rX%irarQ;J>{7eBX zkn8$--;4W$^`6bk-*Jk>;~thLkLtd|6DDxKhId>5WcJY}6B69Df%lmprfO0s@5Mh!sZ2 zR8Gw<_B}|>LhM@i=Jq;T=2Gy@z4U<>8q|JW*SqV;!MWN?Iz9nIZ$?VoFb3l9+@JD= z0JCO>h+NR)V43J8>nw=r|7K1hpkWPh??DHV*w_-rR-I!+?foCZactbI^av!W@QKv^b9F1)-d4gHj*1aHKP(!HeroT|nOJ(+ z|1469^u;J<3I_=WXo^u?9?wbXb{@B}Kk|(0#Id8rh~aS$4{tB;b_o40Djv(q42hXI zxPI*wVjXDw&~;t3WkPyr(^q9mkSzoqJ)er;g;7G3t}b8uG=P2_*3xoqf7g3*J&^FH zI=2g$YJqq?#i7^cL7mtI|27yI@G2e5SN>IZ1+F)_0#YbXq!|Zxh_bY>8pgij;?#5< zcz_u^-+u<@13qAz;Jzn_qfP)Tn~2VScOpZ_yApYHjR61?j3c8+yTlTC!EPQS{4jvl zYZ-%h$oQiY@FOwfo2uF#9s>o>cj$6hQZ!}Bgi968cS1zgfPeqhRjK3q^i5^;r+lo` zuev2&ko1%;KCrd574X7VAREc9rVewm6uU0*T+~|bR<_-K>h{lmF8{?2|i*V75x3v2c8N( zapv)VqZsgj`U@al4Ac^h2(ZC$BPsJ-!bQq`l4}3W>H<81|NUz4@x^P3Mz2@_eR}jW zuOk^VKW$qM6*YV6;8se1)Jofx*Igb4Vav$TPw(Z?-q}huQ?m!YW8gkvC*VeU4epj0 zLg0dhrCmHR5-mB7e`>pul6w0+BY^6(a5BEE@A}`9HI%Yak}8P^mM^A~0%o0O)?r

pb_+uy97h{`oSA)2ms3*WL8**uAMKx0ZxRSvxraxte!#-q3D4FN2fzaJKxp3 z8_Vx;=Gf^IRZ3rL+`8 z9DTF1qmJO=Zu=_9Y+U(Sj-hy*J6Az_yZ07YE%H?vzce0T8?~^PlyaZMtOe7=hSlnm zbu;ugIJd@FpeOZxf~!|dp!T>z4KQIAjy7@YZ`8q%Ofu)KB!aOl0cvNqXDS|Y-b5t- zqJNwa{e%TC)m#+`B-mS(Xo>?!oy11xzZ&zsaU_)ZZTW{i`?YSTV!x822J1!h8eI5_ zsXhWR5FgMVSJ6KKp^|EZy+U+jvZq#=m#mdt)zE?9*c`M%$MJ`5m?7d7_TF?^DUv$~ zU-{orzY>GofClNb96jM(g~6FVQC`-+L9;PH{zkI3|Ge*hky3=9^Dfk;`h$HwjrDz-hMZI<3MsK={r&HTdt^cEwYjUHLuO-5(Jm?DJ(N~KBiSKw`)oG^#)Xyy7^*FmZZWk zK0fo+qOekidIbF0HH-ePyh2!yNZ$S-lrpoHwC~5?x%pXu{Vsp(ca?IBQuto#BD@rT ztX->~A$R`kjs`3xI$->hQ)m!zbx=mQKCUhgcH=K^T3KNASg8LHr&TLt_>A8BjtgX? zFo4tJf{!0On9N!jF%q)s9s!j&{B4K;I7nR9YPVlLBIKo#2i-1}jz zX{3WUHil@ZgSCrdZ;t^tSdXJX%}$ArA~u?X^4{}jnJ1{r*WFG*Z+z?ra2eN~omH7Z z!zG2%=DeinTovUm??_Q$Yr!k3`CkcQf@Qt$OZWGhk1_$S4iJXkff1oR>xGN6v$Z*1 zdapEIu5Dn9(3=T|$vYzsh`8#zp5~TA1r1hDV`J(FM}S=hQRWcwd^PLlU_AL>`%W!G zM;FvfRXvX00_-}($vqpVfX;|mWRwmaAUT~lt^TB8$Gj?bd!`DaV}Zf?MFog|Shr85 z{Ag=YSx`{azx|w1RVm*x|KZ>Pr!+CYZ(_Ub_SN0DkHc%~>s8r%d)a&BR>fXmX}{30 zOmS$RWT&B=BSjtY95+}xi?~1WW}N{e)cY7l#m?t=62AX>w=0ft4l?dnIgu@Yxdo6aI z92yU*Isnd#00PQ1khuJ^s3?Py0s#6N$YXdWg5?CTxE$O9x_L!GPTd#!o&o39R~^}l zTq5@e6wVO3Ca;6=V3<@eIs6Wk{J{nb7>K~-Mw)34^XUGEDY+k-E=7l{D7(Pbe z90x$ssDuQ-@NzquJ*f@RDAIVxzx%+!lr#)hk4(6rt@Z_ZF2v7P&R0W&e0O`t+L!y| z5nANqvPr|~L|iolR$DH{V6}oxU{45QFz*Zu?XYy*45sx=Z6q!%ki*TfKGJ57z(H-Z zecA-B+2;Kj5ZNBnHOO90YTG2o5Dz$Xfo$hY!$SQ&w^nJl>yBSw^BdK&Skt!C}z+ z{q6xtFwd%cAOQ;mZ>=<#dcNj$XuZn-t9T@ck%-?XrL4t^h60PR&s_4T61b0l(OTO9 zQLUu9Jhp!e37IqfEdLpTf!igt}36=ZGeQqg>_31sSOE7IcPA_I->$u&_Rwr(d|iY~T<+5i;uk<1TA zA`=Z{>1f&i1~o(vRuXyU7e2T`Xr1{V5&Jr5z;bgo-Lp*Z185pZHzfIA;)@eQGIWw3M|0hSV^p(U=?{dt3DyPyvlM6 zIM59qAj}!$EnC{{P6hAjUPi#Fe8r3+on|Z_AN3peEC$89UZ%{;29s{CFLHEa`jo(? zZsyM6jgJHgW)#lsg~wfZqKG(o>a?%y)9jJaKF0=An6k#T=8wZpXI7pEl`A9bZnDh= zNG9H+M?lO)_Qfm?9I~{y33YZLVcL!lh%Y7I1>9}z=V1cgT55;o1FNxWhv%QDh(~U# z>Nx>lOV~1)q)$SdH1beCns*1`etmY0=tKV1I1RQYZ{$US1!hLL$!G`fokZK+b$b(b zu??`3qb>A;-h+s+qYQH{u%ICge@pMm9rnvi1MbQ|9SVGUvEfLRq9h;j3VLsc;c<&T zPoX@i`tPTWY|_&fZ+4kLcnUJaY}+Q&1v%urn~v};6ReMtm?ssMGroge(!1|bI6l#) zQlQ5O8(~#tZhkmn+InevvhTe>uA0$!Sihi1%)SvRO`PKjeuU_8cQlv>7kC|U6qm1| zUt2)GNCJ{Bada%U@%CP$#ErxhPHHSs;T^Ip#8fig#d zcvKm`W?(A;S<#^gK_F?_=%d-q*2}Emj>qG*mW*pQ2<^X1Qv@4r+n&OVFS%uR+5doe zATQ@%9^!Z7j>C;*q?9kUA;lPJGHz~HP7B|XhDbKQ>C$thsd1t}Mo9-t6N-x>FD*u--YnqJ)C zJZ|yx(D%@^-fM^uml;mfv!64$JpNu=Z}!8^qzOX%`!{-or@Bs=B8cu=e|~uQ)6K$)MxmCmtChfNTsVmG0?|%m zq)O%D((kI}7~Ht=&>)m6XG2*d?M4k}x2EkUBhdJ@tY{LLpFjVyAEv~R(CJ)3D2b3o zybCw9)3wqpJ!h1(tss_x06f|X@2Y=LQit|p`^<8{Le%ICQcz15o9PR3)zZ`7y&lHP z64TSTRy8iPWhTVFmXrwky?yXzGx}2q5u46*sX<##sYiClQ)dKC67OX4Yrf*@YT4#y zleD^!fQM z-#$2J`fa{$Qg{xr74tAVD)){qejj)Tblv;G;hy{SS)*O5q8hff5Hv#am@bQ|#zkk9 zc5fIw?mZ@ka$@39`#D|o(A-HUlHxNT7F-XIO#wzew$3=6CoP%4sM~4PaP+kLM!wl% zz}Wi*LBHv;>q1VD?|*eui?tHziJ7=5 zl?ZWqD)|M6!1UkQ`1qXnVjh)u=lTU!92M2W2S50~JjeKz035Pc%_s@A<9*saR5pI9 zG%V%LU0m!h>bi-JxvP2I>g)rDMP|pOnp<-icdn`$jqsuCuCtn)?w_O?bJd>>$4M9A z9ybjUCD$3-;cHN~){%kZ^fG2`~u^PqAh7c|Rgb_ndjOxWaG8iVFCf@ssBH-w=fT6iH{q zI$r5GwQo{+_lnH9Vs{6}fHRE7pe@}qtUgbtDa6&P86HaRD#yQE5& zq4W!&p^{iEPv43Z3{B50XT+yBY%c|oOizNe@|T7|cWqZ4j{})Bcc<=*5jiwek8_Ga zNC2Hbh=+j_aK4tm0K7$#Mxww90>XH^d)-+8%r)q?TX7qQ=5{Z=K{%Fb!Q+nV2*~s= zfbhjo2Ng1V8%mS5*f7H@Sa+D8dSmelDw#EIr^QMH`PxYMU}$3_<_8=_hb=4C+=oxA z4_hw{XBJ)l_2gLi38oP_xgOu4fvoE5 zHCB@l!(6MBQ0b40KKSp?PcL6Z7wjtK+u7gVj}a`R-~b8B9*9My{hfs1Z4e$iL@*qS zbF(=7bLLG-`5#tx2cwSmpT$wVn<@D=%l8kNTlq3X&8>4)U4O?})l={xKiN2F1ib0+ z;!r+hWH%@EOD|g0D4ly|M>gtZ3Dr5Pn%>=H??pA&dopl?AfVWbOU~yHB(kyQzc*c_ zFi69>e_(C5!XHQ;{q9tQE*FB1x?M$9F9b@bt#nFNN<6PEU`wh`h~l_VNhmdS>q!?{ z@}J5LLJ~lBRK>z3?_*-tVpV0}{t}CuC05n_tFv>zoubr6>tJBtT*e097 zNWd9U=#b#UfjMPNd9#x&{1)uH=eR_D?Vr|8GO)SBvf0Xcm18;dwt>=7Ix7~IEs@EO z7sG(>N(lq(VyNT`%_1!!_zsC_W;V6Ma_wPw1htGhFL5N6w`b;jgKqI;Cwez1p7HhZ zl}Dit++m3HpMCv|@~7z-G#Ci=DxvgU;&jyXnuWZ?Y#pVo)>FmG4MsS$wt>U!L4FYpTP3+w`oeMw+Q;8$L5LG>f>zWR5aM&-k zKkUw!7L4ucpzp2xDjUQsh0PSSfB8QNM0L4p~ zbpEQq@0S&}bM+4sL9OlZ_PeXLJLjvAvvQ^k_9DY&7?` zv*`2Q%Tq4!N7Yp`joYzw&ORoGg%mO`xAyJ+< zIaBV}fqRXc_PlbONcM0))#2XU*)mf*O2LQW!pTkS+RQ&Cr2~VU`D0`f9V?Cv;0KM7 zvd4?0OEX@ji$;BwUlksXvj`kcTfZ0Q3gLi~q2GM?RO$Kq2#!wDLA5?+>+9>wOupov z6)I16V|Q;ZmFcb6XlPe zw-yX^@jqqekxL9JUM8~S`bbF2O8ogG@H&r+m)ozsKsB)>)lI-qr}WsbEj>Nm(b17R zDO@Q_(-!7Mbf=-=-c$7!J zT*Q6-O_;~weS9x3-)xXS4R$I#fSg?5*-ON(f&ifZ%O+A+`Y6tAU^EcYYi>nD@C$Z+X16 z!Fs#k)VjMdV+wm$CC3bMv~*2_kkWfoQZw>jktz}IUniSBHxYUN=oabYPk zf>-?2U}>iBT0tD2<7}k`yl)cEpxz-yCR-p@73;jjL*F4y@plwcqC7-gg!pcCGkI^O zjOJ)RH8rF8ERv}vS`h-VTV7o)3evkbW(@p=2EI|i+!(s8?aVg#{p ziA<)Q3uFL;7>UVYj)iCQT8-`xv$EUjb*RuL&2DeuM+&6E`dNR2m!5(t-2Kmc4P+$N z^ei^k%$=6P(apAKdR>j#*z`Dr3K3AK^rf9mmopgq(lLT>Kc{KYXvr6WC!;+52$M?{jx5ms*FV zQYkaL%W5|vs?P-xESu?6%(m=`_6hIi%_(5nQxZ!VEKDOl!Wn$``k2}Q<-?J>6gC}5 zUQ)IMT-955TJ>(*`k9(CpzRGc^l&qhrg=Anz5kA0{cfr4@qp?{vE0>7Tw8-q{S6o) z7?1w?yEC_oVv`}5t}PmcEJyVr>lcNbl8SCZB6PoM?DIz)TcLGb1>V}jyLOW#wdP~B z%%Rw@K1&o3$z$l`@v1PbW9RQY5tu9CB@-WYIJPvj1&W#Z^<6sWHKaZ(df1_ix1zkXMf=|UK;{S!|ugSBu%w3Pf2NsZ$%Yq z4CN4pjP=iuBeH(}_Z}4mf{r9X1s|f?Bpa|Ik~I##{Lf}=EI#3<`5%wWFPAbQ)1P{mK(*-@)5SSH8@!39K=F@pF1V@&c%82vCfGP&VyyQ%X*W>6lJ-YL zTh|7Qt-#Hmm$y?swlt8lB#2Xgq4{L0YP`I=IbM}EAzh}ZqS1`m=TP6ZlTz=2Llmx| zl0Rs0$=$=T4fz_`C;z~^LazW7{0n@fnJg#@w4Ib2Eb5rx$jxEo3XL*K4Bw~cy1IKT zsyVgIY!0!$ecO--(dl~0M1KQk7o(mtT~bzfe_`WIj#KT$+iqb=#S2rWBQQ;pM*f(~ z9`MY3am~s(uB7+(m!3fV+6F70OaZosjvZ^p568xP%cr%gs3DSuT3gguc;36_UGA{3 z5iEw|rpS=MSOZe1EIH!Os6H65^aFp9`E;2Hm+($?F8R`@M>tWwguGcPd7a@5t;5{HkL zug61qx$ioyg$s77O`*nCE7wx3bjlmD>r;&XA)x<=8xWS+tdO3TngJNpr@S{yMTccW z{iD4wu#jKlmXNRKZ7Xl}{q_ME9V>Lq{IY?975~@X15;anl4R3Z+RWC@)72d=ZPGmr zV!9Ad9LFc-vmAlvPan8uPp{|9qRpO$?>>Z1vav-JS^HlV><+U{o_qLc#(?+3XuqbP zubFsXI_F_is(mGa+>6Jx`_8^&hK81owtlTs&jMlHsJv|S+bE#P2o?#ffx zj|t>xp9cYS!>?EL)fY8z!IZA5K9v@^)t8&m8Mn`XP<4oX@ZLUl^zPhIozSjPNI#{;0-B_ycV zo2hO`H2qo?SP}Rs{aTS7rYos-H{0Up$o2#jXu&$LknhNa{v3V+#l21z%?D}_M9-{Y zV=I(p=_O5}09<>!JL1jFGpkOA7PCF6{ zWxu%zA{yRD206igvvgsFtVwfJr2VXFb2evvgAAv%FS#pL-*r->#rHP20oiMgF@uk-#2~+S=k-;3nUkQXwaP*%;wcvsppzid49rDB%CM<{T`Xp#c_^ z*RA!%oBit{{|G@*sOQ;O_v?pvL0lm=RO#+dx!%8YhH|mYRj|?aho+uesRSrm= zTj`Z!SCW(5FKixE)1?t#)&$xf7nE=fjnpL=-74W8Rg58(7p3*bkC&?}9vkc4&a6|z zLma1org-9WwmF+Y{n+Ex+xynd4TCN(zp-(4_3126fIl@cmhy{_1Y-bcSg(Q8?W6sw zfA#M&Xva=BB2$3_Hx3$@D;=oXa;JD~&g)|-Aj1lwN0EZtcB^HOfHO(p(_a~&e08CU z?)b%;%zkggk}XrVw155G|xyi7#6 zN3wQ-tsA(OjIU#aNU+7)+QnMhIav-5>muhGI;1$4J(z8xow$*n!sEO4EjSksG6#fK zGc_H|C=NtD%tT!**uDq(hcJ+s$LAPLu^z}*4?tuP|IN;`9nmg)+E`7}eoqB3E|JFW9Ixzw7p@LYPa38{y9#qsr#Su@%$I39?iZ ztS+2g*l|Ovj;p>CS63SBUMFiECu{|P)9Yo%iSg>YTiqm7wosaFdbM%$8No$NY}}!n zy>#{Rw0;Yeem)vmBPJ*oXgJFh15hTr7H%7bCN0 z`z%N}Ru(g+XOx78cgYhYKu}!X&T-jj)s3AffK(?g>D0OT#{Y~zBAcGew!}`er62Z* z08+s$V4s{!p-dC_9(SRvT`ynd6$G;q4=N1@8J3rCJDW4Ef81h8U>w?Z8P(H^a?uzz zZcYEVXa@@c{cctMJL%FHp3jSp8#Z*a>3gkVo5`!Kiqlm^RgIc73E=gYes`^1DD6Cr z#F8bdvRoA)T>v#VTZl}#>28S&%rnKLDh`TrO|@b zkcdQFGWYB3dnEW1pAA|$KmOw%xf4 zTvAyh?3hv^#9q=boKozHpbpH`N)`5c^Ao|W)#pHijr5p1l}l|%vW!Z zey(5gRA-Ilt~4Keek-8i{DkUiYaJI38%4?;68s2L-4U-`#qIhyoB3$*^s&Cuv&H{u z-F|rr9bL(nV^#{m8A$b z!QR}1B1CFx8@k!x*N`-7l*Cb5wO4RUuGceYmM3q{mck>S_OBUtcyiO#Hg)8lwoDSZ zW>}6k#-D;Yq5&8IBl1FYqph0SDaiy;EJ2LiQ|r&Jy?~2LhZ(BJGFo*kQ*558#kLhH ztdI%aN8+bZo7-DllCrjSHTcwOgIZD(CsrIAjrO)1n+NamXWNy-Luhgu*Ql-jveS0S z1MADk{~z%q{}tT=q&2?sH>hX8YoeW^Jj7C8?;^IT{{H>z*4HsUFFWen*oDEJ|E$$8 zqJAAb@3h_CpvDzE6>+%ugmrUvC*wES$0TpFK8{Etu6b7dCfvA~BRN@&kI?z$m)xg%$a`p=n-&6({U zE>(^~p&HLj*iRsIOx2>E;X%=`y9N2409DD^9^Up6%@El{epJD<6Wu zGagx-R-K*q8P^!`N^A4((f%Qc2YSG-2md>3l&<8oq2K!GD9*v1r8i5)85wswtv3WS zw#-p6y4+qt2BJZaZNp2vS)wgF_wS{n&CWJ@P9_Vm&SAr4=}L-VL1MdIn$SeOsa9 z)4g*j+P^e@%W;KVQ?tW}p@*^e`pwR}uI{TCSDv7gWhNZ1l%&9j%riYGxtDs{69m6; zZan5F)De^$_1Y3T&=l%?G3OY)(^bnfALshok^3fhLuF5Zj};)nB$}FGF)bMg&b@g> z-(x_+9Jcss?K72%3w2vldJP!!5^`t`+<8!qHz`;>Yl@vmP`Q@Q=dxFwSz}4F{bPpy z?VS3lYbZagyzzhPm>m0y9~IHtlxGR~Zp@5Q$!$}qvs6*%YG<}n9>ZTmPxl%YiY!ib z&)91mD@l{AtF`QU;lT?t!8X+tu=LsQeh*B?yZ_L1z>$;2hecQydyr>28u^@-y(Ps% zLwHQ-tTN5lP1LM5ok`2c`n$8cm6U{{%kb&`t{{lSnS0ON(G&HMi=#wW#GF;4xmm(1 z6o`8r(`2(4st0-eueO$^1Ws<}<2XLj1GAW-dgkikO(PN5*tp=tiISZ*oPK+Za3cEJ z=Db@F(#MPqTBqIoUIRRUv#NBMJ9WEGj>bjv*VfTiS5cm?OIpPpTK`+g$kdpuVudKl$&X>s`H4tBne zKL;N9%N?DnDyrz}OCI|Rnt^e!?J`zEc5)KbU2nk-4MhxG-^yZ(-AQPP1qH85<%jwb zos=?%Q6^?dip{NV#oeAp=ziMI3D74D5)i&4C>1L|<(+2KHhMHCA^|xYP|skI_s2@6 zI~wYr9d{W${lJJkmnB(sBpPg8gYWMAU$(`lQbn@ZxLnQ;Nc{`~=oO=ng2f(50-(3p}_LYR#@3vkZ%gc4zT_;(|pV{hHtM*3`lGN^tr6cwb zFXm8Z+X=!k-C(MQmKnqUz6^>ma6WV@s)eMmg6cdghnej|XcyUwM4wLf=TFl)X-c$w zQ{!alZ+38Xf~u3pEf@-aZy@*hR01-zAzuFAV5C^*Cf|EX)KXYz2m7auDkxY-USYAF zww^8Vwck#s9H;gogxEUI%%5j@ZpwN(6GCMZ%=Z!#|KzNrpZl}M3ieYxEHT95$zJR7 zR{Otz1wqyEiFbsR6`JpL9;ZNkZkc>qBJlM#$rB5ljZ5IAP=pnLB?)kPS+XN10NVe5 zdBS5k6BgJ!PhedkQ1h^v9`jhyW*g0}>t{5!Qj(n=;%Xhts>zE35=Fv2Sc@BuaP4&{ z>jdM%nV#=bgp2vy4g3$U-=jyZ;ibrS8{mDz_}OQfL^pA`uyB==Gc!LQwRHNkQj}NT zm^s--UdxP1pZxCNxZZ8)24D|D49QUeBB+r4*V9@@sQ=AFRN9gv>DlmcJ^#aXbK#SN z$K%1wG`M+1I{s)Vj9IAfZvFjLR&i#pzz5BMYR=55D6I-QL?Ax%B}j{bDzNYJhB~t* zb=U4;e-q3^mYDg~=9h{{@beW5u?b2ImlqbMBO{J_I5@!PeP2vW+CGT!GC`)?x@k_A z9}57$Q&Hg#5BB?!2ND{WPv?^H!Ub{t*uuxa%nrmco85|Le&L>G8%yh5_ej1&iP69e zpESjl@!4aoGgbto73Xrcf9?I1Dd4mB_e8-s7Co*DtlnVC2?f7WqgUSvBPZaXhU#!u zcNrPo&b@$@t|Ln8OVp za0m_p!U~<0H;wt;CzKveuvQb{Z2k$p1S_W^&D#9m`EHl*-9a&pS0E=`Nb^yomHmpk z?CT;+CNzoU%xme|)1eUsHNEHg_SD~duf9Efk3^$lzT48t)eR?!3Gd{9ELI99u+69^ z;xmcA&puUXiR_eDx5n3J}md=frNhwG}RoB#P?y$ z|GXKe+o>mSd9C-Htlj!s50(l$*PNL->;yZSKKdEl{iu6oqm8bRo!XZyKbIwDOOV>9 z8GLtvl3+V?bzkl;mN$VJ-k?(|XL-#eMu8m`@=EP#Yu{Jje9MH(enm;+X*Rs=`H950 z!m4ldAknN$(SQYS^gWLqo2<7kTDY*BaTT}EdKIi-(QwTkb&T)7TG`SB`boOf1M;l3 zfmUx5IypmETQTL2(F4iE_$0^gVS~nRB?UsV-;G#5EGnG!uu|!9!|DcyC7@PLXn12?9A5roU5dhIS?y?MhhMD>CL8D7Z$nNRM`0xnGgVgsAX27|7&aFUWe$GDmNc-PFHHymeFJMAk6b!f7QD%u00(VE!U$r(FB<8qEeHf<)41UJ`0hOO zbMxROg#w zT+*!PADZQ}G10X)%ZakT7EjvxjQ)~5Y+TkvMb$*f3Qy6j zT{^?HOcCSRsIe0f?;o^m_r<(|bap6??PFc`LO}!oki!(RYl+*HO2DG9hAkXrzp;yIMqu&I^94F8Z2q)xQ@g33}%OaEfxn97~BN3g~f`drm6V_;$9&z z5O$u|YYnXQ_Eqi0KHFNsoa$L4|2}eKo?DRP9P&9cd=#M{`y2Ggj}vN*M@Uy#x)XV; z7ME~x@fxCafTQgWqSAN?ymzu5j)=!3B)-3bC}C|<6-RrEwJ&jiJ^+3e^Q-mkDa-HK zxA<~al^(PhFGa6}WZ{=LH5!Z;6R$gjAb*+`7F19JEeJJs$iYG-EC^xD?W_i0%u3bT zbAIQ(DWme-7c0&Yma)lb8@nt;9^Dr%eV1qD`5MxJC`=oVyXtMfx|`{m&hvT3x2?_= z?1)uOcNI`wEDkU&}*l^D^wa_Hu z4;M!AScct<1BzV=QeL9upCz3;e5H6=1q^=B1|Z&llI#!4lPBvcY}w-#tGh(PL6c zugvGHoqsf*CyutVrXMCJohbvU!OdrMI`I zOkiUQdeb#Y_kz_!%~s>S{6%}}*u?g3EA`SM-P(h#l~!&vzlT%ZxWLztJ~g|Anw!=e zwBwa@Wj$LC*#{l@V8$ea6-T(jusTUPCyv zYXVi-b=oJ_+eroEaYR@l6`t227^ea0Be;eZtk`D&NQ)x&1%)yqiL4#B&+)sU%TaMF z0{`7nFT&}n&+hv}y9E$;1jeBJ*F8zhC}6%1=KUxigfc@dKExJsRAY7VR=Tw83V+d! zq|p5+rS45scmBL`8TwX*v!1LQl41wO><9A#L7SHFl+BkaWSzWqo^(?mdm`+x6v%@cLUbJ2h>Ele#)YvUPPp#^kIyZv<*L(HB!p=(; z#BO6JfLVO8p_afDLI?Wy*JX;s>u=_L$RtRENHr4D1=yCDl&$|6Z%XjLhpfY9ZjRbi%d6|F05nmLbTUws$b;>{3%N5L8=;TDDSFb0l5@n^@P4xMF?K_B~2 z*L+GDE5(*$yj(EWLmvBBL=fsZYByoNgIiSX3^2dJ;vh^#G(_RC!X;C$UcYR{WM_vO z(~&38uwEk{9)6UBUo`6rcwR4O4&$3%zPqt{f#;-<_5;_;-xDT% z?;R<`5Hd)vG^#%N2Q2{9^&-b1Z1lkCQv5HgOBsGq;ewJCl&itQVsS{ihILd-tCj$y z{$Lx-A;((@3lSubL){da?@6!=9pUCL8T|+gaS+2qPKYo}rqJc!Vq+Pfr5u~WQB$8S z*EY|9PRA%LV%7%z2|>ry$pMq^*#}C ztLML>yvbN~@^|y<3D}J~W$#Nr@)>V3fdCbZus}-bUxji+#HYDEMlL+_I@ddc5mSq$ zj^!Q6o_&+YiWqQK+&IDnmmn@8nd`wWY|M@?b_+OV&jq<(`Tae7C!M!=(s&wK|6E85G=abt;7eHW zz;-xSDRkP)6yS-@xZgjlc+XZ>Kp=A-i^tS$&sJU@dov^gMSra@Fb7W0dyQF6J3E6v zgj&k(v<&QNI+V@Th!v^GUEQ$aU70_hzqRz@Vd0&4H<%2(85GEJX;k2C9l@0NgEl@e z)6WZ>s?I~jT^$B$Ql`8F>F-Gn1iV$!b^CYT6d-u3%)hIgxF)Zkb6E+_B3@0 zyUKrG+;s)I=s=e$EAB}2=C1XB0l8ppNe~EjtFQFbwagM1?Jm7_ zz0-upqOKyh%)74U#*|LLZ-}Q2toB z??Rs*=+xMYtHJI1b@s4kgzZz>`Y0M=0IX5r;>i{gtjx>a*RaREs~A1c9;4*eeF*{h z|1gQ}>97wNj?a1`iTijZ8h*E!q^3J+jj+~=$LRyu zwOlk31?%WG2AMv^-!0QO6h^6*c7CJei87bc7vjwepM1W6OG@zeBM3Cvu%+dUimQz-iFHT^>*-pYup^^ZSt8)tq-Bgjh z2}SmBYR5JWAb6nItd!)o;35>^f2&TDKe3+(McV9k0CMX)RSpKmS)1g%aSI({`@W~Q zQ7&(RIwn@JqNY-nRM%&P46nEHH2udG(jA!A46HK@k11QKK*?Kc+GdWgP~6kDWpXit zF$30&^^X{T7ZvJFQ#F`WyHbMpe`MD;0|Pt~Wm8im(T(h;royZa&p28(t}%9wI{_-t zTB3*yV27v_1{utmv7ZOMA_zo^>knF(SkXPL@N7x6T|9PnR^jobod(vnN>88DPGLRI z;IUdjfcfp>#XuA;_6W2{qFH~KeQv82bU7D&#~vdzGKKT<3a5Jq2I5msSw)3~kfTF> z^oR04Ni$$!&&~kyXOe6VxYzSqEa8A@BIc0Vtir@8w|I!1?_Erf1`%*3>$Aox9#pB> zECi4`7`oOOHa z=NhaS?S6}iIR%R(ZM*WyyjfERKf_^dGU%E5eeXLykjElI0H_7PlS1aR#>HfI3P>8> zK-L`QM$Cq$uBIe1eKs72t=~vnsn`a_zZ z*HQY1udDaJ|K{iz|0|rCvW%HGnOoT7sn2|ovqbYqbmT`?C+2=Ay?UBVJxx?sj~ao( zKs=?zj14>1=HCptb(*navwL~^9=Bb-hpIaheYl9GmmrJ~=lk}{wpURtIWvJuU{;`F z_X--h85gtUJzH=ZLF{#)u0oLWt7+US*=a;OXPp#cu(hFy7~nKmG|5`iT7cF?@zc^N z{sVe&*T8j-xl_ai!GhZNe=)awqs4k8L|wlqztINvkhlE+i7}3MdP&A!CO>-&ai*t0 zOx6lpADh#gb|%DReEfyW(bUD$R)O|xtL$=#xXjfW$4N=`0#`S?)8-eit8)K9!!XeR zAnlX5|O>>>suJ~t;49ieOv8mZx7#v zBwGBgZQb^dH(4kY9cU}R`m5s}zw z)RPsI@P45F44fXd?xRuPlMDJ>;qEB^fx)zY{XFwS`RYrea9*@qExl{wo$9|FT_C-( z@KbGdG!j+U;a{2T*tqE4x61f2wq5Nc}Z||P;W`!3433A1s1X8iS zlR8Gix8QgbBpO>bGG?xyjr9ldVg!N2C6mAPGL{4b187;dA}O(+eA(ee7?R#lZ2Tvx znKjR>PWcDmWQD(~4xaU22D39Q1)PW=YZb{1A^T}n2jOj_HL~xcM{Dr&BMwrO{h7$G zl8WQaTG#*dk-XJEy7JZ$-2a9@lC{ zN5JWR$cGY{CSDKkIp7bXFgdP@no51yU}OCh z&*#sdO|^IEwBmKQiS31N@&8rtn3Td?gxI6=^xD;Ha@EIc^5$V)rEgSN!zX zZ)bVePk*MSs>yX^Vi%1e*vC(BoNx+GH!EynfZ0Bv?FBBIkdaH)hQeLJ~g{O96K~%|=J3 zjX_v2ip=cm!IjAmfj>6;j3NT3$^n7s8jgc1MgVN4fW#+1Iu#hN(>u_Ix?QL~H0NSN z&d%xmb0+p_BB(YTXCHms3YCDoIX(Spvg<9j+APrY#)tLDD#wj1+Urzk4J73&Nq93_ zy@_ZPKEG0Y89gjFMy7~%lS|yDl9Ie-5cJ2_dPwvluQ6i?u!Qv9hekZy}{!t&q|1{tq$|xbTXZpen*bqovU0trQXTVY>@)c5U_d~d}K;;h_gWSlT zhtb-@iAl7KV+$)?vY%2Vj5kW0;|YzT(wtX$^{WWQT1sVxL%ntJilQ#mgz55BF+&nx zIwQX-64Y|1gWCI@sp*T?U3m=elXc9bp2{o{61+_>ez6~jU*yym%pa#^_iEz&ymw<5 zF4}*Jitva{=WAp!Y?NkPrTLcc;pnPAXqmO$1_keX2RbZR8AtUR8>Nu&odG97oIP8}~#0aB-EmM6$blALr+kgmZP`>Ij)TPP+F@)0)T>$^8`is|P z(*p?w!A?oFIOLZF4Jad|Or*()6~g^0Jb8-^zvTKn@ZHFvU4;g~;G_m_a{uW-U~1Kv zpU_&KK!!;EL$H77-~)9ruV9^d3L)$_y*dV1<>`EtvK>2FbKyDI52ZNv^@b8 zZHZ2!Q&0X!@QPu#N`VGIJirssnEqXZVyVLIc%qdO3rVl!c4zx8?I(O~VYedXRiHW5B%6hJtSF<#l!Xn_%L9_?UG z)7Q(Vr<>T?4i(8#UOjUEtbQ{5t^|O@#K%zP~oJyNnpiN=vm{t@dlAo>Dl3 z+F!ucb4vcGlqamN@yFypk@$`O?RxZEzRqnXI#=-zhIx#|xoz@s`sh~=)bQ{*>&(DW z{O+Ok1fX3G`g*G)key{@-1)D*ij|YJIjAKhP^+54`|3@0(?kz!AX5e{0*K@ImKiNO z^v&g^e(O{DiE=?Q5u*gDR&qV}ZhEtxN1NGnN=sE$X6tRXm_7H?FyeM7@8fswQnEu*TTWkb~#_$E;$v-U+FHOPJ?sr zE5De=D^f5xs&2ZAz{?ogL-P}Pv1~Pebd*J2{>a;2{SWQ{ZE=Spwj5R8{k?>@*99G2 zg!Li8Y#qZK5tc~g&0CbXL`sNy$TMC@6}Jvg95jp?HO`A5ohot2S!QU*EFT82tLhD( zb{+>)zFnHH+%K0Gsn@EOYl&n{C}sK6pfCJ;e1p?<^-;j@YHOuDl*tWymZKrjkFRpSg6F4eDJ-^0yZzPnXE*I62ca->q)PQ(-@|ZqllPoNMvfNG8h2}dwpvc% zjFrWS5m)B>lJfZ2diw0W?_q$~>wrQ<22-vez^SL9%Jzw!EZ(o+NM*K;v%KYTs;$-j z`I?KK%ii>jiOJwbv=ttSvj&4Z|DDR8!)VyorqR(M;ZWb^m1ADV7QbUJRW~$d7~&=n6oWWVL>{tI{f|0$b7G`=_j*j1=W z^%y)9{#qTvl9}UOU)lnSkA(DH#|6}!*B2=76U6C@i;Q>|GCy*jOOk z;ehXsE&k)`N{sQZQmH~GuIxt~`{Lr`lamCUNl0tR3(o)7i@D8o3$6Q%cJ z0o+fWDW{fg4rl1%rYA6KQf4aTE28EEvZ_+0_sn3&TOmu^f`i=9YwwXZfe}IQ z#|X1(ol))TCV_>3=EUDYEUAEJ1BOHgVgc0^jWJxLJ_PZ^??0G<;y#QX^CN1V1NJsz z5a*^11(BKKC(t%CVMpW5`;6~=wyWR!Cn4~Vo9)ShnoL08kQ^QJ{12{75FIrXcjs6Z zZOqgi0(mzLcE|Ut)iQ%-;vriHvOrN1o2Qz+h?;R zS6U3))gAjCC+I(JmX@#hu@%&mm`xjz*aGeI<9tC3-wSz)Y;R{)UR$*dG1K0S5IXD! z=E$M(cQ|fDd`e2{Og{&1PVU{g@#Y*?p9&MgpVy$3U)X_}I!aOm)D-QWFMQ#`=UoDP zee0LHZi`K+cEA{T;J>}MVr_&uNv5fa)pr+1j73%HLOh(iv(y=zYhlkRI(+bRyPRFRTIRg{{q#(ryoHliHb2e7UDO!)wmDHY`vOSw^xbht1EYVh0BXOk9x(&AjYy-QeL zyLNN3HAfgC=0+WMXif5U|GSHgg{II9U$+$#e*Y_27UGyme*3gS-AT2TDGGU+w+MlK zZMR0b1)&voa^1$@q*6$cF3^_S8OY+Qjzo^MvQo3vJgt})t#Tlfgy4jqyGIBx(d|Ok-xS(vBXWE7P}3!Q;E1?=y|2cOInYd&Af!dHc6|tmzo- zvIGh8XUl=={vO9>M%(WqStW~9nFiQV2ZsmBv|Ew;&grF;8PLr8d~XP-sJ!GeE61Rw z(%aVUUS^Z;-SZ0B!rm#e-~F}sPl6_$RwR3mrjf_d48ci*b#=1~kF@yx$Ko#HHt*2CI&acFy1+5DMP3)(=@#RWt@%?9_sJ$K_Q+ zS%WaC)MZl|XuAd|ct3xNgXT1EOT5**y0;ft7)k2a@jS~Ba);Z} z!5}Q|W~J;h6m0@}WWoxK)!s{~Z#bTbY9Uv3^W$E7*|TR-uPvi1E3~)Jmdb^Zp%qLT zeh?i8iMHcdL2cCGvPM;KGUaaEc)S<;q4b>g#?E*LB~iba)|?t{jikWj`aRC&pSx;w zm)tVjQbjTeEU9Kwzn6z*92>JN(fgTGf9=Yu?Qg4(-{`S3R_gms{{gOL@T0l2v@|+w zD5;0$LJTP)R62j$64)Y%qR_*o+3|AOG$CI>EZy_{W+?DS0L`s*_a@kwbDy_diV5Sy z+$<|ckwPHCCnRKXV?NdP+dHKYNUUt#W*Y+k%dP-u>0mMUlU}?g`MC;4M|+tW@MA(B z{r=82nP_$foB8gp4OzQ>)_4)4XV&odm?EbO z2m}xnE!gl*kB8~YLHfa`!J0+8W>koQJL8&c@2{@d(RH+p)(VyC?_n1S5myrj$;aY58O(fYcaBU$X6 zdiP>5Qi{T*#a~icQQC)2-Fn-qbZlFaYGYhcFn^Fj`8TpHcvt>c=R_XQ4bnAkFrB491mX3)vr+`lg|=yz~b*{Aj09B-4kN zg*#rBf)wKV{skw%5GS<{BVr4mhbl7AXzyqapyZL@v%C02b~K&!EXTilpH@M4_@DX? z#imtfmoHyCdZqO3|HlHE?8*_!#1)Hks#Pl*7W{9MKoBFgS!uyb0Q6n#1jbe#4M1cX z@s8eFt<+Ad-D)L%T0ZL{SVz||i>e(^0*IeoZXDEc^%+L`>0bc^3`%DtHssgf0Ei0T z^j(%ut*vUDHe+wH*-6l@OPrb3FgMQ`|1BEZcAVi2iz)TrxinuO;IVNI!bY<8ZuT4E z`nO6tg>C(wr_LNsq19t8=VNe-yuh@ZRnedWpK8iAHu7EJ$nR--sme+2*}ZH97>~;C zJR7x)XB0qkNt*`elBeU|M$f%#YCQBHflv(~4kUQS-l?e_M1X|R;$<|6)yB&ZDLzOT zw;UXVISS=gXSAgV9w(F}G6dh|B%p_V!4)lFtqe=za&QQ_*!tvUnh8+}_))uhwe4wt zmz{GH`5wP#%faIQE`r`N#mfx`9~Y^Z^yRYZ z^n?p)MeO^!<_j>8MoPGpmL&@cRt|R70xrxL^1u=Kk%v4m(YnQ?g^hFLdzl53Kxe5G zh6H%YiFZJt|D{qV!gy}pz8wkS1I|;;>gIKmPE+!0x?z9CC>oLD(e=Cc%@Fac8 z4EG>WX)3JQ)fYil4C+|g0gp7{91xC2`jv`hb8GABFM2GP%MYfiCFfItnMy4fr~rxL zfBN;WlvM_W?1Dct?9$R0N{Xny(Beh75etZ$J02|HL~kv;Jt|*y&@Jk1#|G;f@Ci)! z&1|`-2gU;66LG3-avLFlDw(FFJZ_BmA4Cjp)0whjxGmUpQvvVbvBOlEt`GiCT9v1M z((juo0Y(r(%Q7?wdW3l2`_U_+<&Yxjn}EXyUKjccC-4zj@9&9?^~<4MG?AVk!y@yD z)e;*fyv0I-2)epX+qyshqWF9{>+c8CrwE_=8YWCQ53YrH@dzbw1Sru%#y{B#Jp%=B z2O{ePpFwi6^m{ZpDv-q#-LZ8ROnaBF!A{<^Wh77WF<()V7L##AqimhvndyISPyg^d z7`|`uYi8}^*vJw}mj$#`3g6Uhow?IH{;*=L{!BXprME@u%k6FW$I1}wyxqYce6{s? zN58;%{pmn#eK+g8P@mW5WdgOFh#7_|&~I~r;~^$v$?@{zYq-E=^UsMh7>&Y60Y7N4 zwOC{Kc&|%^lX3<}5pIppNaF$dU3Rg=&&QzKhMAUC6`a@9q2jwEYG^V3s&Rb6Py9+mDCO)^?gt;2`lFWk)=o!>#8@)!LDOJ-^uhsxTY_dCq}+iQgJ z&pbSm+FSu$BZ?F+f(nZTmfC!0XTMJzvyvO~)q;5$B*JC*Ur99U`?~IS#fW||44v-W zaKM*o@u1w_=MI^d?FHj4AnUeTs)!ZM2WoT^a>x5r`w%9#BcH9$w7##v$$hAWK44N@ zzNn|8of_7sOtPJnw40RVp27P`z}Bql69}9Cz3Fp!eJpo4i$PC;6%Lfz|Bb|nzWpw8 zeIG3T)?;Y}4gppO1!vJHIe@gA!~Toewl23{V%KiMjH=az(_fQ`V;ACQ8~4@u>R81e zqb5MlilhFcY{ZPYT}C31f9&WMJ(Wr2;3AAJeRjLi;SnV~h^tKdp<9ND3~|7U9VpE( z&qBv30MLD(AyKj{jSF8^Ifpetyl7Z5wq@MJ$?G>YMkMYm*G&fB`^Zfjv>YHOPk+1o zw#%XaQ~N5#85(;FlC0hQm6Wu{ zhWbgn^#FPbcRBMP>~=ru0hw5#X5Hb{xL!VGU-SW#J->kq~pr zTRupB@ycY-)zZ*?x}4PuHB6Sxb4%y8OyhL&AnJr(3#4I0j}Ct<&pc|L^S)ML#Ta8` z94!C6ZRh=R*Fs%K~&* zr29ae%{0O8W$=C6XpG0^;|09aXU>$bi0gGqzZnLN8ZZuzeW0jXJ={IxhJGTzBO8aJ zH23V(EWB=86MTS*@~X8Km9`Y(i?@B4QFx0gjQ$q~8wTPeJw$1_-<6IVc|bshD25&; zPc6b6KAIZ}CbHbpuk9wx8^o*pw_8lImKUg?p1-;_lInH>yrul+7|+mp@A z22>&peM%0u25LXslW}`PzLv%HNns;H{w7?0p#_@$2mgPm%HB7_a&l$Mo|6G1b-)g3$ zS^Wg?wtK>8VmYnw#>Je*B97y%H>t&bIl5gOk4%mqVZi#4Se?!flk%=`V4prUP-L72 zvZknDFD9>cxy{5HaL|=Mu5}6Od0MlVo8TjL7!)zZ_)#;t5h$F|H#I8ta9H)CSVqD# zrHI(Ht~N{6NG*yj84AW`w(Sli7+&I-bIOTZof@m@`}xYO?;;OVpWyHt#R8A14`%E? z#P<8eyaDl?2x07`?JXK{skSLB@IKG<5)s)n!sOwT*y?_wpf<{EIFqyU^aPB{AYsfN zQ|r<1F(S;udw$p|vl)-~Zwi$-*m!l6RvTP6V1@8(;De>Z#f-_?Nd%d{{s5trQ&qn< zZ)2A(A}TZNY&+bib;bhXe!PN(bZ38okCe*(LCY@9ngKLc0F2P(c>7b65B950I*Z5p zBTyiS!1z<3hxKhT2QX_ea3&4yoO8eWrby-eq&{ZTdUyg{JGAUpyddHH(E_t}gurTX zA@TbsobWl>Ubxg+r|pP)j$#mU;o$>Sy-U-Jc`d1}$j!#N;odl;&Q867w2@;%etw<# z!aK8A@R0#aXTr26 zE-&s$_u&7SI?JFc*Ee1-5a|Xfk(Tc6l4j8@-67qLw3LWQED+d$bV*4H!lF9`q#LBW z;XMA&`EX|TjQhi$J>v`OUC(phzu$Fzm9A94bbU|XeunF%ACJM$6SW#xjoC!_hJgT0 z_!(10m92Y|YFPpc;c+)U*&E8^XgqwT_8RlNr@Uc7aMmKmzCP%IJ=XR{xJPQk5TwS2 z)HyO)7+svh&1DKFTyM%d{|fV)f*}z>HDijLmP4I!UyLs+{&6!{@)n`oF~6Om0mn^f zOeCD{(1P%JhpV?={UYzY&mr$GDRVC`6TjzbjHk^;)a`1YDTs`*WH~1yKPZ zlV*#0xFhc<6p$qc5`9& zqHQ~n%WK5r7WZ(IR z;J~_x+)7a*9RtR_{Z{UR{OjbuxL9G(E*j7XkuGuc_vI|Av#>wMfsp(aG}W%1jm

tmpSrIy3< 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

9hKg>OOuB{qJglEgRmd*8ue-yr|DfA--*Q9 zXi0YrOWzHM$R2qNxTw2R43Q9Bj|4ZOWNB}sZjI7XgbpE0!@7sS0YEnBo+FoE5EH7;svR<=!qRZ{AO>_c@JR8OV#t4Bf(~n%%>*j$dy4_yOraAVnIebJVNM8b(IA9%2pv$ z%es00%N=xYz_T|5=Z3gg}k&e z`D*#=<-xbTz_ew@%YGKAgH8n(#5ixZdLHL%!n98x*|_Qt>TH#D2$HMz;@m$4n~nC< zs{ygPSgU1e)4K#~{w)k1(wi#n&N63D!=oq?%=YmcIV5XQ5vnc7|69jsJe2B*Mm6kG z8I|FO9au_^bt*8odqW_-U_W^Is|{NP;1EzyHXwv}uC9S3(2#jRZ_&6fAWO3^%6)tD z)#=!pjv>@zjWV0$nsRaK7@p${M#T)IVFt{NCBIIw1z=}^5 zYOkw;BQAEWUO6}(~ z^#poKCNQ!x8KWETH=EC3NqtFEljOdg~d0 z%D%pG_TR3EYGlKSn<4-%jlT*-{lr_-pJ3ak#k;@4f}l;%P<7aoLrnt12OzJ3bqnao zq&w90W@u~J2Bm!|wU?^}%3^idwXKJWb(@hSa%PP@3n!c?ArXwMZi&X)Y^H(2_8Agj z5P-y1b~60{93@9Amfyao+|FPgf13G_Mo$V_cK>Q`03^!}F^ z&|hmW+LBnL9T#FFRPGPRr#wg|Nw$>{BbbieC=800qNXljBOW7Lc4X|yDQMybk#lFIp(rWARozNg?gu%R!#c}o$z?-Q9IhmGx z*ykCfZJ{nr0v+^7G2rR~e(d||Y;xQPNYZv><{sp6oj;u;QEja~0aBcnY@jZ}Drp#c z2DYNe&2@>3E^?-x^{mA60Ec6*acUuNU>sHqxqQ*GoSsvDtq}tmsPB7(?!chcc_6Xh z@|h9JLh$Ye#be_b0`#T;Evh&6$2_ttnZ)Z2G&S!}tIu(88X8@&+j)om?`&B6FGVK0 z$=Uy$iVlxwd~u->FYk-UcP_94{nD!Yj~O%Yi2GNXIB}VxE@MjeX&d96gGus0fX(?) zQ)_eVGhqf_6NaxJ&2Yf1jBDrEYmm8#Gq?Z3n(gwqg0E_Mr@Q-IdzeQ7Zm|l$8cr!| z=@{*V2f_DLHiqP721>Z>zqn_MpHDeBeR$*Q} zY~Q_GbuLq`QY<%jOp4QOdnt$RN%vj-fbcZ5M%?dY&rUai%U|Kw?y9gzIs>A#D=lEf zXKwX6$fPhnG}>dt`7$yE_wOC=g#9}RXE%x+tpTJFqP}mE`F%8;GaB+N%j3P z^w|vEJJ_N3-LrKDnGWRjAl;Db(p1Om4qWH$zqzxP4efjg?60g7HA@~V)@uJgJ`(0Y zDf`+nx@SYVYmDW?$DUESbkULbFpKcLwh7kt#q_w4&n5bfm39B=6xnxll@EB^sn-hL zd1L!qt3@7cwhWaYpN&O6o+7AI1@D|C5^4s20;1FBb+ngFLhCeO@CgzAYr3=mbpYBw zXlFUst863f<+wztNX=_^Aul(8Of2axY z&J!OG%CpyYgUsu=OQhRd>i)7NS7|3!U&w{}~Kn6GDKIL78$Z(j4 z36v)=abjb|8bN;XL!&i=he9>w*!lr zp&53*fxu5jH%r>ZFa2XO`NMG+ly{tS_yd&50I`6#Q)jo_T#&37@y~?q5mN&B+lq#U z=e2YH`~Wz39uP3v@N9#P-{BwxKQ=0d@F!H9`ts>janl8rjfz7~Cln7DHnZ>A9ajb- za>Q+aqLzl=kboucKMdb3e@i`{<5n4npG~>N?Y*#TMyGVt6mG?0gQO(Si}FS+NZl6v z*`RW47JSMe@z2TT7pN054EOvBk-?GKrokQ3swLxdRvG*6#Tp5_dBLn|wg&HYH$Tim zICAKuc(Rh@vd^v~z4*nGvW(~JxJn4*M+lI?jCi}x9|*l~e|r5I(4lT&s zt>*lkbdySJZKs@Mi4=znV5;)?xkoi|TN#Y_7e?g*$uq^K#sgqkX+#HTVcl=cnD#T4 z$txZ929Uw&M`SGybiF-I*o8H>l*$!7`S}8CGYg{*l!}X1$mzRnnMAWZ&-O zD6I(;0R=>gx}HFo9MYUT7!bMVQ(Os(yka5?q&UE$J!Fa8zS2&Cl>p|bRr0fBuEQG2 zKFv^Rf{Z&pV&1yOYt3 zR|(znF1gC$X-Y=6!}H^QqsJ`c>6`)yHp&AINy$Sv1Kf%@-y-KoG^j1RoO>3(hj~56 zUY?@ooX-8MorHWeMW`;w|J(~Rki1!H0hEYzu=Eyg<`DKLj;Jh&_5a$*UfTHro5xs4 zV0*AYvfp)kO>`;D4FH9vf{O2cEC zpa}XbsyJUK@>6JNC~cv`qi@RM+@0s!lS3*Y*G^lu!7fWXq^ZAVRA;xKMWtq#wWWR{|r}o5@ z>GjfoC)U6%fZweKR`^*#d+sP%tb_8Q$zaD&>LhXVW2nxgP78Wn((A12-teCKWJKlO z7v4SU2{FfnnfY?*SK^m$y0$+pD4nILB(9Kw9L1Mq>uq&oJ27xe|JH6}d0JVz#EH?< zx;KUtM+Y$xgzv+?@}T^i?;8n8xr~d7tYu?KV8CqsRycFM2BL{oSBCTiP}eWOB4qX+ zG>Qa2U%?h`;jhs1L4%cx-1m^(8yotf$m98+c9nIv$6=*L%X7)ETK0Ax2%IEbY#q^( zE6e;{rC2uv*o5xO-N9?a^AYIHF%zhSW*$2j;Zx^(C0cIh<~#!Xkj#AdP0?9 zlH`5(=w8g_(r4u_GSl^h+%Bts%s6@tXdxf>K+9mx1n3##^IDb8yG`Ef$Uu%_{E08; z_GVsyqpc{IoxHs()SaD;;RD}W?RX4Wz<5FiXduRMH+%$f!jM*$DV6K1@m|tKGRk;& z`1tNxBtr;`nt(Gq3r}=-mu+uPLJLtf8Ka=Tql!3CX2dADBH`=6ZJn2E}?ex zpAKu{xA3~Oi|ClSR!G(n)RpSvVJBZaA#{pLi64swIbbHUuSg6W^;PwEHF%BcT|Gwu z`ei(IT2l{mi&SJi|VakL0efW27bA?J~y1E(Oo!4Fj03g_%KrDT5M%Z)@{ z43~-**yh%blv|xZ_`Id>ZMS4(T?GPl zv%-4EVV<-@GP_y))x&$I++8LFlb6rmk+^^TgP4==AGRgrFSZ_@xC=_+>48)Xv2AnPPkQh%{JPzZk)YUCrFm4W%pClu6pZ@{_%No9pW|icSP0j-rEdKz?4um z<(o-Wvf|?k3R&q3USxe_iL*iKr95?(5@a@@L#<)^MGyZHa`uW1NS#Z2`0FBF4^6~Y zJfiUB`?wl&f$E`T(LwVS00V}Gz6esDk;<>|El+X>sfecuS-k8?0v~ixxxltGhP+Gi zvi-8x8Mt*iTAd%D&~nBhW1P@0Rf!4~U9rRs2bX8@gPfx8gbTMocS4-5rW7V-I(^ID zs3^fBLq#**hO3tTm-1QnHrZ|5dCgVXp<#%A&yoVOxm|5Cvo~7~AOCEvw*_8_&(FQ9 z1{iab_?P!A9)KCCB?~Z|18KHZ)|jd7k+U#Qz?H+-pj&u0KoxY5ZI4x>We zoEb0eASnTkH+6R;KufZs4xt~rb%VH~yWt2T(;|L4>Qcivh8&^3hdN=YW1S!WmAS2* z1tPZ!Mx<#f{T)jnd&^_su(*z)WU@wMw1>myEyBUx@9w8uFk;n$XBUfCdP$x@H>;}a zZFyVXORq;!Y$z}akR0#T^@iH)_G?RpnTL*a5nTalJ0|C`LUa-@+9D@zujk8GrK5C9*+!Flo&`2A*0ezp7Qu3X&hj>5V~D)V%2qNyip; zkYviAY}*i5QntsP%_%6#RV|y+sJR^|b>}6bo^N8`t78JZOx?}j!I|gHz2SF7g6`nm zixfV%cid&aaGUZP)!+nzt5qigIN}7wJc=|lG8>L=>L3Lk4zDx$nOyT-?n}(Qm%X7k zc75I`jLO^F(Blv6dQ*3fg1JTrpxsRS4Vrwr{v$l*@D0T0jOXUQh+CZj z{J?TS>MGZmXkWa17nB&Xmf?%(yDxe}4R;qeP(T6?+f^Rv8J%BM?p=BV(Ya*92{uR- zpby0OPUyV2RQ@IpC7QiVL*bROs{6gX|G`M{lM)Z7*u+(SR|J@RA?mq<+eiYPk;~Ui z#=p_;eFPTPXA%zI#1=4Seeh@Kf1(=cMJCX_$jiZOMTR*2S_umSTohE41D6pTer4Rv zrPNI0%SJRq9o>ZO3V=^lsD;;!vqo8}tIoVHp%D%T`elK3p)cSrBxnIzi|J))Wodk= zw`mV(x=}RZo|Gb#q~$rK*NbVYtP$aaC?7D%kbkaoSC37({nOT8`R3@A9#+V?bFFsD z;_1(7F`wAoK|oQbJ3a5nPFBNoGeXeMQwV4NQ34pOe+CKq(zUGCtF?00Ks(5`vyS3U z2yta|+c7w=C-oV87*2MMRHuIp+zJZ_2Okb?1t)-s@1NDJ$I88>jh(*$Cp<%kfYv@= z-|Zs$@@31o{}F&&+KZ8+={wmSr09sG%fWU~-JVS)M%HDbJX^zZDL!y%=i-)_JR76k{D1$d_S1 zo~dYpTKo&+C7>Q@d9S(ZD|nw-waNLqXoMR4MY!Z%$UNrz-di8oc*3*v!7BOUy#dT# zTTx^B(e}qI&8DEeFq*zA(tVdjAbRYhOKeCs)-LqPOE)ZVk!4!TRk>sLD$e=VjY|rc zhcssl14aY4)BG$i0z$1K9oIqP4!?1`cv*?gon?#2b;?WLt?vyD*j3(6V@T73EARdZ zdo>#F`e2+7g7aZcgowWBNog3%n5Ma8?G&v+9n<+9R#NW;ihy_syfD=iFz=RvTEgq- ztcp^QhOEK2yfBFR1ElVahaDsjf@@at0=k;}@}=U!rbLOwlePC8sXLuK5h`oG>oV1P z&xf|I7=vMU(S3GKZw{9wg63>H4QHd1dzi?g$XjeJFTdbL85IYH;l+eLJ^3AuYbR9XWq0I~Qk^^0Wn zu>RC(=GE8uzgScEB>E`K1w75k z0#LI|7i^scC3B`8{O9AV?u`U+kga_E@zHLNhN>=+F?oA=@mG!J8{2-=uyink3K3)$ zc%HPx#DW;}ML{fS2Joa98jA?1?wZ;yv^}$IQJF~tjh4TlvPa7NX*)E{LLm0cD{lkK z+X6L#+P5-p6|&5~KeZ>K1YH9S_WZ;~^ST{Z>JHd;onSP{5{$cl+brzb17>@4{81)N z>THs4&jjchx2fsrC~9#Ozg_69nuvQaiYZ9bOK-mX{lAEl$_abM)hbGTy*W`n6SI1w0+@z%maUL->MVBQ zOVOU^kf7Z_8#u_kD@>Vg_DMT#3K>u+jw?cj? z7-Edr$9Md&ay5tbw4UJ|^UY{1lSqGB{``+dft7r6Ig^FW+UhgkOHy&R9v&x7LE(VE zqv_ynaZ42#Ol`MVN@O^gvLGdqFv?e>bPvY%^%JKPBrDt3OVKxPP^o=n4x1y?qDgs#9ou8qeWgBKO z1XO+BfaI(>te&$!kgLxqb)F zR{DO67lNn%XjK?yC7KGFOTS|VKA~<1S)$@wuL->ZThflane(*`$kEidGRW`XHPuBm zE)hW=Sgon^h*47?W)JMhK2^M?@a_;V4tq-6iRGzFtHlXEnF)TE*ebvTz^ZNgU)q4^ zlQhVmt2sxta+nRC)#c#t2;Cl|Hoth9PK+vxEBoKe^z)(aTm|ERv*$uUtKg}#i&T?k z*#gkG4S^hYYRwi!*!&2ogJpgl3W)S%hO-MG?x%oowi=%Nrs;OI8+X_w8;G^jlefwj zL5A@G>`YuduEH{v3>w#E9|?T(VPP-+8b`#43!z%vnI)Da5KFF^08ay{74Wpa8C6o> zr%R5(uuWS!*ZumATu!{B+nhoEfufzK@OrjeAzR_z`>fZv;B}hE?Xp&f-(S<}xo;Ac zBuCe86{RXP_*Fx&R;@6iarO(6PW{?j0GPf1?kye3=-FbNJy^Rss*JN|0tjDwN6 z)ZUsm;d!3b7&%6iKfpGrLZTeT{E!kXsAgCaJ9?naC=h~wb^lvuI=8~UQ1GR0=XP(P zs*DGX%BH-&HAgZT?3&d=d%k8~o3y>Oy`rvWyJ__Hy>AS_u3s>oob8r}4&y;(wMBPN z(jyq`onuJGCKtM-{MH9w8UK1-Y^UzWsi`P})PtVgPBRVOFoqLm)*&1y?Np}r?x6tqgvHi4upjMNzy<*ORy=kdE!tKy% zg`H|_$T~e0Y}xBvs(N_s^uuR*IxP<$SWNm7OIc(5x$;l9d^_GkKEM!N9x14mEA=i; z>}TpHRah&~Um?dt+BVR8H7ca>El0V=rV~6=B6z5JbaNr{$LB%h;XN8Kq#GHdED|@l zPGmowE)!^@F0pf}DhTB&n}i8~*icYV>k&T}SRhsmj0%*Ch4fec&&nyQnxsC}nDBW= zz%o}58f~vtX*u(&k`&B7kM|8npIkLaR|Q{mYoE9x*ri^1F~4KgVv19>mYDyx@6k%@ zA?J2bVGKIwZPW=+lQa-E7{fGJK-*WcKOgxO)1;W_uoG9MUdDjYP6!LiHEZ7$-q92q zw`EHb>iY5fE=Stw>BeQZTWAC6IP9(o3q-0{OYi7%eL?N4+4XUr6B(6r?8*b7M7AhL zVs}U$$kkp|Jk{IKC-rsnM3AaZiKo|C4xV(}jtSfXi_0L8C)Zr{VI=g;d1%H|y_oe8 zGpJNflLe&N2ocu_TwuuztgTP2KhGKjI&lJk8mI2+*KYE2l-5f_&=kQF)_0UkbQnF| z(U#@F{Pc)H^}TXH|IT0YcB_r8a|P0eB_L(?OP_(*@)caxyBjU=#_kOugxDjz+Ax(U0gc%3lAj=mMt!M*}eD(1fhoN~GB zD2IhxS<_&#aBH7h`YYSO% z=_RqKPkKb={d%sV(rT1`-~-~D{(+bELbg6DxT^6!TW@71KLq2A-k%UHB3#`lTT-#` z&X5n(G3gncljs@WsRxvsJv;IV&4mm|#VeV|pU2jK2_={wJCq4NJfFblV)D#}E5j&< zhv3&Vni&QZ#s9>FEhcwzKE(E?8aa0c+;0^_lQxZq6TK4qXZ~@fTFgEe*X>zRGmA-n z%5_<*OHU$`8a_@3_k(Y^=SknapD*|?3){TVA9ty?(e))!9Kg{ZSGg5H$3Rl{h&xL( z#V5t6+>Ocpl5d1cqw}!IV8*Nz=cdl0F0`9J{4kPRA>w*CWaf`31bjGD3}KV%1m%$n z8k#{`fIQfg32b^^{=^*+zYUmamlea4$+M*Jo&+!Rv%3iD4wY#z377Z|l{6EqqU@dj z&an?o%Isg0W5xMu#Co;1gYK0kv-RmQoVnZlzDfB&$JH>V8EybJY#g9?pr4KAj=#y$ z7sE)DMz6xl{nFYlvJ`snQq5raeLQU%H^Z(^fFC4?mtKgx=sfyeK zi$Esp0;^LY1<{qPJQtTY=>6a$9wiTe=yEm%AvA8eU)FhW=D+N|x_W?l_eo_{-+I$v z!(z#*G+k1kXH58pNFj+f4c^s&a3P@KwIO2n-|cJ=K@do62V*I#P0xe8ag-nrh5aAt;Q0o8r~vXf0Z)mg7n^Ts3*-u-pgz~ z@J$wVFXJ#T*v}B~_jl-zduIlxEO*_@YeYQg5Rv<5_1;bsy z=%)irHkXley;qvHztHNj*?Ge8e|n}B|-K!7l1pO1oIuDK5GXIDlXowL}*NqKP zfX9Vi`KG-02-}3U8?tbHd2?BNezge%bBKWxSl@qef933F$Vzr{W^kU>q2^92H}jz{0`7NbHUaJQSStl zE!%&|z>BvsMIPqNTZMj8)|UrCwgDRw0BL%i$nL0H(`yQTP z%qcQfrS@Yhj~k!A)~e$pOAK{S_GX*Kf`U0{aR3txQiX~i9DsX^XW5P-z2y(poC<*9 zQT|{o_*$aFkJsvrku4vKP9`>pKfG;sTA@po-aehuM9b2t0i*+x=@$FCbLl}-bi~&q z6T}$6=Yg6GE_tc#F%yI3=Wn!-QfpLwzc9_42bgy~5aul@HE%Vfr^i7Ij|bUUVFIHi zm3>QsIdvW?=KlqRhPB}Bt360S*>`AqV4C#VTjhTGy&Dvp%rna;MP06JVxKZVNBNci zhpVrSimGedA3#t*P(VtgyBnlKxN6dJ0u;D28V7zLO?*e;kU=< z{oe0ezvbc&7l%2s&)N5VUH5gz-lB%;$@b`mN8Bq&r|P7PxH4_(Cq{k@3ld?BJ;yvh z2ltAaD_3|aB6Cn9NT=Yx09reAEC{&G|7HHaGR#u<(r}fhb!Lm#z7#Fq5?9Rsh;hwl z!6Ue&{vsPpD1bo>aVB+d^-ut93hAKS3%ZLIBth>)da|4pq<>op(W3y#GEm^J&@G*E_tvl3KHVJwv(`xRsp@1sFLf1Bk{ukU0BYI`{59 z(sYuKW$hTZbO>>k1VQfzKYrdrIPInyiUs<+^{ItkLF0EBx%rD83j9-(v7vF&lIa9I%&G#_K4i_x9Yf7iNF$#A#(<4*W} zzwtp;d)Xli@7+-idaK%>93UGRBiGjof(h9ORT+wWyLz?s^TSHee)!X$<`vGZd+W_U za+(Vk&D85)Vn1_qw=9DFcyPecM?)zS4MBx*#Mgpa#5D9isDTSn+Y~IoIlhyDUyYgj%y&G)wkYHtXVRGO@exh30U9F3PSqjI# z2Zf6HQAR8{r{-=t1v>P;WoJ;}dgVvBt+Z(aix`y{Rc<=2QU+)}nvaRF&K)s9q&2LS zhP)+C38w{52 zqk_o0+YRZWBQq!%0+%`q28b(jlJN?0wlW30xQskj1u?dUFq0GOvwTnCe2_fCHB!{; z=d`{OBsq=H-GOi1*_Yif=tzmLoemrxQAS2SqgU4Aq6yUe$HM1S^?|>7@TK2!)WcAN z>9!&@x6+_?TeFCD1ZfGY3C*s3i=C#$mbF!H`8WSgV5ZDsGQQm(^70jdS%FSO0;g93 z*AAZ7W;nOIO+f;Cqk>~#{RRv4Y@r<~6!N}09b!FR?vES_2PTAZb7YWr zC2>WcYWkFKg!+S>V^o9Wh-J$YgegFDJ9fMZszs0jo`pI1**v1=_%QWv7CCz{Bf$GF znW8gcH(7UfGf0;y>s;_-l!>Pbwop#xcLtgd6jcdR%N1d{BYH=iZ8<3;O14l!kgrE} zu3AfLP1(ocy3+%00AwKdZ7>*{-}s@9IH$wMc1InquPZwi%JI?xB$cF}MD zp*S!?!@_Pt1+(?;TP-n&1+AHR3g0RF9u{|GW{fBp>1#ePLpIwQ*vZb(?)EQe%0mqo z_liI-pp@PIrC8Mz!>#wB#Mn|BLFiAo_2?jn0ye0L)6H_IU((pS;sB!kw1PaV4_V*O z#<^WHaHt_9*bE#;EIk(ABD8NcLKfT)Vy$ebawPJJl5b7DPq-;#3U@))q6=+>*6Gb@ z+vJ)zUKM#&uY_P_GuhRyvHD>(Y)Qm$G8?6jDA@XS00mO-a^OrUL-A4N9)HrJAk@sR zalRrO4}(F^#|@qs|HJoc4MVUkyy|)dd+**F{((^#W6l}(CQheKyWcBcdc~H&+J6Xj zpL7!-higcIWoDcb1(rLXsXIFJ*IZZOYpYtfJ0R>ETbm4sbj4L+{0!M-56TBJ4B|kq zi>9!Q@A`-if)_NTk*HK0u0~Olcb%N};}oJ|2T!k#lMZG=bSRIaD#rEGc4{=&M$1cKF_b;Oi?!_(jY>64EMJ+b z5=WkGlk3gbbDqSVqdLpRI-{(#_O58@375$Vf}9jDML(!AHaJ4>ETI57e4<|}Xe!RZ zs7Cf3Spx~#fRD0k;f1!F3#WoM&<3;*XPG^n8lqeQKsnm-zB(b`zS1jcA(!AB63G4 z6-Jqk%Q?Uv_R)Rv4~7FE%Q<{bjZH`ys1dQJ?su(p^^pz+tftv6;!$E=~GGg@^0y82_+ zXLbD__ud7d#y?~r8-KyzsDCu`&$4~CM`j&WZcIWqh3EY4J~%jBp|rCY|qU!1=FblAA;A{PT^ckicl( z&eh9GP|6pT%*_aGj9pkOK=Q--mS{Ba4uXAJ)m%Yivj|9lH~N9#H9CmHf=zBin=DX* zCx7nGl`8x3YH0`$Eb#S7OZ3v<_9fijC%{r?B{U4!JrF^YD6|#_Eo<%<1kE}(nh2ut zuQH=a61j0uzdDCu-WMX13)^s{4ed6$y5lbF5%=3y^IV_ws?>uVaEO z2J*sh?5!=u>nAJr2S2Feka5(uFtIBVgM^Ll83r-N6vl}1yrZS3VkY9tu!?eqGB!vu zO#_fks}JBjHeo>?W;YSzV?$Z%tdjor(R&b7NqW716w0+Bi!hSA)d8S@P^}Nxyp8Vu zT7Aoh9${S7JPE!_eG!N(Tkk+B7)1M@7^ej0DFbv6=QSnl^oJ!$Pnl{BtKD=spBj-C zS7&)ub2YOLE43DUM$pFvolTS>#kzg(#fP2VQtH3MoJF&`c+nDt_Xz5-R@D5zo_Dmg zkL>$N&e7&3wX>PvTeSxpr|$}P`Pe1YnaycGH{J5OlK=(51#`LrucgH&@7m<7wTz(U z{A=1@d(#Zqbq#I!C91ewrRJOoV1uGFDgl*sdO%556Q(04H5-UNY?!z}Bc!5OQWs&w zY&j^_xl2N}jVokuFSE8e{`Kpsmw9rA-;Fe%_e6KonE>XwS+EF->wcWhAbrm$f#~lW zig}06M8{51#e9Lb#~5JEm)77a_mflu_D6KOCW>g3PoMAZ*qQvt))X?cq#QRSfMf$^ zEkR!4cRzB&qX0vesBE%_DdaN1w(g+MEh|xcf#kjhTV!QSD!rhcAnQM#hZAMT>rP*o ziab5mt`67)xRa{kOHl9+3#dSm5*PY#jVgFku_DjCd= zIn5QUPwF0XoSvj?0&=HHjV&{H%|(s>Xdvjzm}2{KkPZBvp*^%k&S$*;%0ts+XVn3$ zJ4Yq`%Gc7>pN6(uLg3qkgaI-2C)j8iQ;fQ|6T>>|p*N7>&xjYsf($&hNa3-_SP%_D zgQxooZ#njplA78peewrCT`5-DiV~KK*L}UW()2Y+GC+C=Ib)$BxiAJ8Hz3g8(wt`s z^Ops4)K3CC0)CuH0V6Z4aX>Sg42bEf4>58w_H0rSd;qTlGpeW-83FI4G1+QS{QkUC zS{g#}=HyuK_A2sZObMNcM#}u&E8C&L0>SuenA+ygWV;5TpH=^G8H2cx2*@1z}P5$=T?4P1J^PiTOq3M`qPIgOL@^d=Xx=qq!rW#mJ47!dg=4aq4$rqr3 z@o6a0Rqb(@T)|L{kcgM(`CTZ(TpR3&n7>X#0=jSCBsMz)Agc{QfBmaRf*8od=vQUp z&Ys&FEsJ;T_jF70of?s!|1DO|LWe8n0{-Qd_~tkL>{2Q+w2-Wpuycqou+=nSo8czFp?zb?00s zx?O7=jKlljB4H(~rvG=@aS?(afww)O)TF5LA*9$XM3A;D?Dt31nD_^f3X-FgpAAhw z6x~cGgmEP0^jmBwSKw9V`^l`Y+x4&_@>@Z8Cb4qIPXbqw^u?%uDF_VsPL;6Y6 zj_foH`?A6mgJ1)g>8%JSc~blvg_ui?)*E#sFh5fecxi!2y_)fR9mmmp$O&O2udCuA zOquBH^hGveSjo0Ptc=NVtki_@t=b&NZrxSQBl(xh{Y8#c_10hSyjp`e$Ww6-m{T%w zG7L_nVeaKqJFJ&PVc2M#Gi9Y`%e#aD*p9AJS!oEMLHCBFN0v zIy+468i6U1^AQz0kLEr~sr3-7VEV7Iq#$aaI;+d-YwCCQSqFr5B-P0ZyEyoJDO^DV zymn`x{`NV}XGf>B=-#@wfiyKU>SY)MWh092glPt#_l2bC6#;CCGq89I%tzD(j><+2lWM+$b)Ia6v`xEUWuNaul6;&I|m7sNT6!cBGtPsDScFmj=YDM>>x7KC-9}l5y1Un}x zp3LF{pql}nEXZCEgd;1>z*($6(6RjCQpE({ri8$3-4L5zaXI~CpsNWgzkBy@XweX* z>nU6HkE?ZUl)Y1}E6em{yKF1x6_^zjP1)#-^oKVQW^{62t##9aUjO*lLy#$y%{Z`W zv?W~Sq*NruYj8AXUKIpQBAJa9d7%YFLnz%4g3HJI>EP8I{N4zfI$5TvVloAprfk?K5 zx!pMH!UQVjSjh{ASg?%16BFMmJN5){6V5BLL`bo>*0*;50lGRXa_)`fpQarZ^P!`H z#`v;MeI^}Q}Znv_%8 zjxj6gWst&VE)fVU_^ns=7TZh8ff|?>LIO(;c%>^iPZPkE|MX#z*F*nsv!g}No(h8B zO0A$|bsb$?v8rhPMjNyZ>-#E!7cJW{wEe}S;V;6r8uT;h-iHn*OPniargLNvK`WKa zGUAo=TAY*LH7Emx3Qa>M-G|NH958sC%brxeFw?_n>4NZZd*BI?tRw;`T|oue&rd<~&UcZ(GxxEVP`2Iw2CGf^{mg^5awPiEb1K(}cD)izJRSJD z9@+240)4Y|T;t(N^6K(XNxnK5%bF?N#3|GIr_JKit204Z295XT{ zX8$_nh!A)wt5ZGFa|kEiMlzfv{}S55MxcQAJ?5G6MH-LjF&)F5_|f)n07r3AkAk0* z9MK|%`j9%7j6MJSvrXT8l_0O$gg@B6$JwCiN7t^hu4rgVVQ~*Mpc0M?+!;)m*wnWK zTKq^>E%Qy&y?%u^d(vAs2)ME-c+=mIg>GP^?hk&7vmYA$d!QkcN{D%(A+A}|H>NJ= z92jtG!92cEyoZ`Ft5cd+512GHpUgVD9Sbz?#w(D)+^r}LpeEs{-F~NAS-E;bd>LS!Tk*paVvgzE8(dFJFrn;#`L`-y-xC9P5r`{GN-Eor$j0&c}bA-!ltA|HysgmQNOZmM4B&sWsCYpqT}N zWfQzz?Alk;n85x)pq&TAU&}595X6ft0lTNkH4WLomlzG zDW8LZFso<5BBG+x`_;a|U((==WW0Z_fDr&U@DAowpuWvfD=bkZ;QBpK+InA4nALry zV`=K`|5(64kbUD_*p9$jdUvc~#MuLxk9*4XGdth3LwcT*2##=mEJM4&p}ngczhK{b zwXS;Di>%yX+)c%OXLemoIwU7SfVCDn z8hc8%h(;$q(cCWQ%u8vfB2SD5$H@wo_(&016mb1iT@gdYE56cVKfOG7Y5qz2+Wg*w zRPOym=ch=+&sR)vX%dUmug$0LcrizK{>WwuuoUH0--M4n%bJZ>(+x{3zrOO6P4U2x zESmG7zwr;;fwIRR4Z!>w6=D4ErQ5Mf%g%Sa(@qaCj)EY~&qZ$)s5D={ttNW9gDX+rv!EPo z7(Q#=2g{}87GU~`(s;%E_y>0+0|5tFqCqs`Is@qj)iEIO(&&TT$OB4+vzcEA7;^uo zoQ6Le9|B4Q3@8yTLt)m9S3cQBJ=HpQ5rLN0gJnd1`Nz}tV%5hnl@(y?I}(6#ZXrKx zzo_4I&hx|}%m_NIVN(y5Gpsxhm>hyx0fl3R`ncGme5aT1 zrx~b<2J>gm1qSdSsnr*wB&^S@NveKG_%er{0O68QUMwCe3rs83E224NFm$*aSxwT4 z1wxN2QV`{S>ShqA0Iwtsyb?V}%X)d?9JvcjE=R)_W5dLDmcPLU7)tDk{YLOipL-ZX z0}K}4OZos|>i^KF#QE3b-=*fwIl6CGvE`<NTlt%YKZu-gB&zEkg`9jOzH!T1eBc6iIsrWSQ}^RGy))9 z4~YmdQ52}2V>EgC@*PUnv{APxC?*FhVj=ffgl2&g8|%3IB>w25eT9BB~qe_BDn=sC#dCj&&hPJYKwg$0~C*z{m>x?I> zrj97vp6&%eZ(@6zbsdhsVXp-p+|G3}XX~E?y2(RWs_l=?Uxdq2y-f`-h&faY&;#!u}=@Jbz^p>F`UVZtLLOL3CGH?y(GnH$lVq{VBHwD z-WY+nzwRYj@5PPwq++*|(3j+aQLbk5;Ql7L?qgsCo&oOV#hw2ELsM$~vg}vj018?G z0fd1(9Drv>=XIxMUY8hk<9W%P6uczbs4tP+hgmGwjR zAV|r|Xuz4!_c09sGl+rx@21Ab-VG%Ne}OID5`ro{$P;9PTUyBpV|5s(b8J$(x-j4M zsBrFbnlm;vwtmvcT={1&;@h0|EOt=I69Wt_p$>)=%z{9PVgR8)H5Q=HH}LJW0<-JY z%ZL!x9Rk?vhG~?41Q~}x^*$}_zWB;p$;)-G*4-A;&IdZfbS9G+S}9R2n)wN;YfmFd zY7?6bukJ31@A3{tA5Ht^o1O@WgENzZ(s>{Ph=eY=;R#E};7+p+4GGgz?MCe>;#g<`Yi<)4C`+H5}u1QDL-VbX{ZTfQ_-K&USNby z&g<$W(h}8Ku$CcvAHdh20yXfo{tK=om@l>3VJM8>ZR`B7l?mCjH|EI;p)%yBr=Yl9 znCIm0QGx35QS3mE+^T;? zP|(E#bC$K%T@0xYA%>C*RJR~HUgJwf0FUp;KXqp-QOH$h8|{>~zd;c_rdRC4(e*X? zhmo9|Cpz;iYt^q@aI$ifTc9?<6sh0_4uTaaWsK*YH;3a6&nH+duaA#z>w$n!2uxSC z-YLg&?w{DbE%6wW({n!aECsx{zgMTtrP}&qul-zD9j@e2I!Fig_v%|*c<-JDff@-a zSk(qhQuWPsT{w1O<>8C2w-Z%MD3snaLc}GQyRpk$hw7lpG1=LRjqt)Wo|mn(<_L<-P85gJ2^U%0rmqHj3>dG|9y zry@Ib5lX|xuvz>fGq9&YAb19CFz6xcgQw(g^_Q$_Zol3SdMPY)m=Cg8M#832S1h&v zfrkvrbs;2fFM{F}v;LXgKrnq$XqKlVUmqvkAlISZROd47U+y{;@|1N{;u$2^XtMx0 zw~@tUqlKHat#$D>qo+NY6ql=+fl4E(E%%%b&-^!!%O(U z?i&S2S0-SuHwe6Z@ovi;UZfXA78XMI=#Jz5i2BTx5N{C%Gc9oaWzACw2mY#AX(LJ^ z(6EYZK2W5()Nr7eIvWU^zflG#+uqIKZ1W;>5)6Ra0MdC{;5vvmzyNuhpQXxT^JbKi zuBX7yNYI+Fkdp>&9(GZ0A&Yf`H(sX2H4W&OmUR9D$Lx#WK}RP!(%Mo5&gSUOW#81w zNp(Lo_--^O(|xfhS7;n}9Fd16^^jM#HUzc$Gd0ZEQIp&BMN;%fr!jNOP_yeFj1sT4 zTu3-IY2} z7o7Y)FgNGU$a$NS-tUw+{xx;qwnLqCJ0W>|>Uc{;ZoCC%f1Ynu?(g3Gny`laaJ&(v z@D{|)<~4n7Jv@rtE^5lGn=QX!FCeU1AG9guUUWK4iam6U4VE&*2ax9YN@)4zK!-yZQsFgp^7+b!DdT^z#s$mc>a z38!vKpQEudXM23?7A770?s!^6d)qf4vAcig2p5bu&ZCc+KBka0&il1>`I*7Rvr=ez z+kOY_=jKtq%b{*q-aOBO08Cy!h>t7%RNqA92N%yr!$-8v^594veay?1wzeQXPg2P9 z7g-5XSk*j_>J@F2PO+YEr={I_1l@hc+b3&gin|XU+@8E~{0!;M{POE1f-hul^k9M5 zD$Yq0TL;+iNA?BOsxL7F9T&!l)} zcLE|wi{G80qB9wK<+H!J4Zw)?If%7{ic5ppLq;k)@%#f~byV=Vnb2t zxN5(1l)Z7JE+aY*t?-q&x2>6?*FtvCY}#lb_S`pX@}fXYm-w3#ZZOfF+(LX4i5u@~ zxi+!QY{KsDO?}BA+;C_@|`!{vbb~isvEpKN(3*1rXu!S zX-=wkd0P$Mvmw@XIv=xfbT_+Je!2MB5?^_-VgZ%eFK8>t|9{k&=*S zZA5M&tA_C5kmb3h1<_SnKR?R(Yl*(IbpGXJw6xkk5!D8KRdIT15=Pr5v^JHvG|uu1 z(M^vJen+`~b5LE{-im_Z?f-gndG3F^oc(1|S&VRhO#sIED$C2eqhX$L*=#_6G45?k zzrIOA(~SBoN})%&(DF?Rp3D0t?x}>fifZ?{z|HZs)||n{HOckgoiwsqqL1-vXT9aF z`_qEvmhZNrT%N+HylI?ea}t_Fr>d2XYz8N_hXY}!2H6+adf=Yx;sXL>0A$ULR;hmUfESGM-%CDzy5ew+$YjjavxEveK}zxaCIBCuYXZ= zb90A(uou!1l%(wY#Lee?bL9+t`_DEVlW9}={P}lUDUI8Q0t1U1L6y6|{SAWV%a)#B zehyJb?)zs4D%`<*VzEu+2UM#z@VKq$1J2Xa+a-@>++&7}`Ie-?Oy&BriNg!IscGZn ziKmwHhjcpUFYMBzONVS~qxMaZx2Jsn_Ab%vmI^HPCTb8*1TE-$?uO~QJ-qgREq&X; zFrah5N!R;w#>Uf|*~(L5HIu>Qgx;zx0W&e?|FZ{K?%t(v^oMl+`vrJH(oXm@=;|XC z%0<`c>%)IT+o@OCi>|lUIml9{z_M8_DS+)Ycd11MP5f?bAqEdx6?yk*|Jx(HY1+J) z^OoJa9jp1WJ$AK*xy2jv)^0uuikt79uX%J`;@`rYbRo9QPu!SSP2rV-c4fr9?49$r zwH;p?&-8k45TEpoHSupQK47uJS;ITw__1HciR=WfZty5gFM=(C?!M7333hsm$2SqW zF|KOC(=3wNT==fa_XPY}D;jS9xws|(Tl!Lf^6<5t#KfkTSD?|6^ACUTGrzesIvN_> zc$+c`w%m?D;PZlUi8^Hc*ulGSrw!Z>i%R&tdjpSJesH7UYJwvs{3Z%~yy4#E*W9GW!#@(@@Q2wF>#Eyak(Qr zy108C-z0prd4Vx!bF%ijcl$en0u~d9AT~Ew&$3$w=Md9yBpen51-b0!CmhN`9N}5n z%>AaCAH?6(R3fdXHQ=zu2ds$^Pft(*(`mhagW~7EPT}z4=pxABPgnC8u@S zo~-ENtFk=c33gLZW(KtJM)_N-136Z6@dV#>ByHIeq;J+k0;rQoM&Z|4u2TQFyoMQeL&! zerX3d1Z8=HVOk2#-Rc$+xAw1$Xk!`ghB;@JVw<@Cc;CR<+B(F>8f~W zUuxP@GM%*O8v0b%&a$n(z#GlGK07|gpkc4J*ViDJEJ^LMN4Hxjd3B5=Ix z2k-%Gc!YVG-)zpNzE8icq4g?cYWeN4)h1r0yr}!}11|`|Lt@nnxR>Fm#z&{@`SIu3 zetv#o0pcaa_S9GxhgcRi_jHwZ(F#nbm5Pji`{~+L($K7~JI})80c>sH>Csf2xxvqG zfK!(rZvI{5lqNjy-@d$7?v-$B?UOyZ>Fw2Sd0=S{2m91PeyLYJS~-FT~Ez>ohL!Y-0DvRDlV=&1bkrLf|P*{!A`o55^i7rXa-JbBZ~NPCJaMT*o(#s;L!CO_z|8U zZN+@AkkQc=`${f+$6dtm$Gt8d=pskSmUAOd=KR<|OwVA=wGiXu(CeqrvJlRl;=jO_1b>h0k1dGX=f=sL^ z^18RNugV487ng%eEX`jr-UJx3l#K^}d0AIT{Bf%%E1pm0{$Sg(jmbG)Tg_qq-hL3@ z>U_g>@dYAjdv}B?2=TkommN5s$*3I@hM0@%X_^XIe_41~)Tr!rL0)RP* z!fr4?nb<6e+60#@#Gf}udCM*Q+R{02+57n-*($ep?M=t5#VeoRorv-ftzny>l{&V` z+gnDOz|G!#4^FV*J_8q@VVJh=mD18O1570FyF~t-bnX4^u91-p*#$eb+U=U*?f&nv zlb@0FqturUtb& z>$=INx2BL;h<+=!ssx*+HwBiyN$Vx-xaj-X%|ZMQ99$I@mYZAYyo8gpzZa+udu04J z0N@Gd>Q+IlPKKGyy^k0%`NLvSO{52>&Xk_4NbVsqu3QbN5zwKTIkFGNYusD)c1q^0v>W99+HZUL9w>&d{B^W>yecY5A{wl2&ZHH^@fnev;&k<2L?Z3o|?zT+8&&Sy_ z59-y~xUc6o3@#^3V0}k;dIDFEe!6Dsz-_&~I~Z0^Z*RZRcmY}^u{tPln`lKrjzq;b zI>62mmyNh6KRiV6MDV<60)^czS%?Mb*Mbuz+Zq;p-kNTgJ4S(49lD@ImtL(|WJwX|N;nnf0 zD~Z||IJ_AtN;u^X8u5XV(TUZHjpH}@;h)3&v=Bq4gCzW59E zVfj09{ZRffwZ-p0|I5nFPBJbKenGbFI%mber*N(+fhQSbo15s#xOy}=Uq&NNaIgh7 z;IPep+*@W#;8iypL~V9fkiku9zrGlmo7-RlYH&M}g2C&f=J6zm4@RQM=0%kZ+Av|O z^ur3(S-u_E%FNBk{yq5_ zFpi@rR=jETAS(YN0RB-;PY*^2j0)nNYA-LNM)~KAw16G>;dS7FSZFwkc)C8oU1FiBkoz+8 z?EMMX>K%A*Jp!;%Ie(jV0oV%wWKM^=l!hl~g7E-5QW#9?3EUP1SRn)T1l0t9`TLdMzz-#eHTanPxN|htySk1$Z9FqP02_zz zry*v@(0c)J*98y<6CPx$g0L}d}62?vIi&ZGA!odYU3n)Q(mP-!IDxYBJaJevg+J^rm3{7C*t<}CY0_YtiZ z4TtQPCA#uJcki>EZ0O`BvBcB2Q;m1+z)7qt-<>0|J{H`uM|;WiUU2D`@7G`UMQEJ! z-u4{_(FVRwc~26&_iQyU^C^!AzcDSX0w=*`9Ak}MBds{0o5ZRE?b6is*LNV6n$CWF zV+g;CKcBEb*t_gokp-?ho;m??dOtg;A*b4RY^{_-=F3}4O>q7v`GG&MxKaMi)@A)m zw=`nfz|qtKwBq;V`jD{f;da{97s~ST!{81FhVbmOGYN_VzwG;8@)OQg;M#a+G^UG- z0cX1NW$EqCQ)}g>(QiEf#mzUIv+_JRUKYFuiEpL^5h>NG96Uqd?vDi=)Ct^vOMae z5|7;^EGZ89qu#0ZZfn7_BLX0=|L;}?R`ebOv%?OzWLpUfaby0%n2xU}$o1uH>bD&) zg)6~G_u5Bt{#2`)@FJQ(*3~%+8atpW0Cq6roIUxy@_Z>OgJuZ?GQPfc36njhl^Bqy zC?p#OdI4>P{B;l`AXtLipWg}|O_tVzV;Ssqedt#wqts=MMtGnCPXR_d%H9Th0C{M^2y_HBc%=-85YkHq(KN(u&809L zH-uF$`FXQ%E}{hG7vh?x-LfYUwt=?b4S54ox?GfmnEM0y0|+M9Q%g(BSuI?Wep|~1 zR3Yd>csfTs*=>TWnZp1v%hZj$;TRCEdd5XcZ4}q1m}LhFVqAm)kL;`7K*??)*#x}Q zZWwm!d08zG!hT<eH1c7Aq39dGkTsdI<1E!DIYN34|*hKXfx4odJ<3(OwWAhx%HcLPw_Rp?Y+({p6cvZYB8Y#Cq zb6Pu&1`A#uoPJXFXeI<*ThX>`N-?r62Fszc4`tp@M0bW8OXJlt1{HqPA0mu0K_6lh zh7j~;NfXb~Up76PcsyyUzMEDqD^jtq#_SObT~!I4cm(;ZXkh^%OYRJnQT0T#!p#o1 zm(ZSVJiakCxm?^D!cSjZC=&XzeQfj?!qnNoTG6lfdZaV-J^hIm_gWtnDkOLnY(4__ zpE%^CGGd4NtO0Wm;<=fEr7(H65<5d5KFDJGh51lbfGc1wis$(GXVNEMtN#QSGxtFy z*2b00<8;lo1Rt`&7+=@qDqh6P?8Y1grMf!#Ud{_o%c{ zpC7+oyBF>+Z*lKcOJXOgeRV%-Uk+Ac%{>=u0yg}I_G>-K^`va6!i$ccCiwbwFSpOB zY3IG9v8jR=oXGm+^(#IY_f4$DT=Zi@e3(63X181Ds$Q2&9DG&6tl+}M#pT%z$JAwT zl%-^#6&rctD;|;QPtNay68t+StCPhhdE`<$9eepwx~2jJKj{Y+Z5NFb({l3HQ1LIA zDK0+8{tD4t*o4CTAv!~JZT%5+WVhhz7TIXK0ZY31Wd^9)2sE0Clff)lN|nrpedyQp zOEH$#Jb#W>d^Cth>b^r?Vrox$`1gCA4|2fCz%ReuoIcq0S2CQ}$rte+d5voRESsUq zK08+avn5I}cU;41F>j^jrq0)mgd^LWZV(Bt2X_Va{Xo zl#|%jM_4O`GB2n&Y1h6L{CJc}`@y(X?e&wCh-Aw$Depp#;au61^oe|nSGaEXgDF(r zFg2z0p+Jhm$@NoJ0*T}_c3Y#rDe?C^81&dyA{>25qHxW~*m0`}MXJnc8-yTlmPgXPR~&UdZF?Lpq7|jnE)fz2Sqhm5)(7OYHrIczsSw8?YETFBv^-pGoa87;`9@ zqZsMeZd5({#1+FK<|A$U+%A4Ll-1wRPQcsiSpCt`F_oCU|4}!dV-q{} z?0ZwXZ3~IP6r>u7Q9Z*Khl!2>tsJayy2C7uhXhzD(-0^pW<%>QB?nV#ws%fPlJeaT zK(}_GqnEiGLt`%Tzmle+(UEQ>4vDCkY*Wl^TEt#LlBS49QeV@!ZXDjJ`22aiNE7=D z9vRCY7V+e5#AC=gYGqO~vk7sxWNSJJpUE9>{Vr)ugYzd%^|AfxtdA4xEtD!O41)lnZ|zu+AR4viyP#fmSmUVeGDPmVd21o^W$WF}0pQi~$B_6aW; zxWa1*^ljunLTKOBxV2YQof{8XHh#b^8J8TMKCtp+A(67E-L3=I-Lo}ENes6nYV9%Z z^GzvwiNVsjG2EzwB77PhB0RYk_aJ*r69psLB-j&!2$Iufz*|?PZ@DGJ#e?T}kA?ID z*qii;5%)+^t$j-{awSJ|MT#~%&tqHhieHVa5%Ifa3M2wD!S&!#F$&}(r%Nka{DT?FB&;vrAKSDME8O0nS*5O?2f_1Fyddl=+FV%zNS>6-+d}s3Do*OFu ztoy6#dwrli+x!1s3+)`z%%hn1Sf`q_9r&!e#dLt#HbRm2_H$=w{9Ly#clkHS%(OhY zz~$NFqK+EFj{ILz_pb4#kbHt^?%+MSi9-0UVy;Ax<&E3<3o z8~SK{4rI!vP*Xg%E!6q*=m8JzEbNPdc^8q2OQw>OjZ(R2m_4_BX(=TO^qqDx%~kD* zsZ;dtUiM!XJx0rL0}pV5F6ygZUE9Kf`=}7vnm)xGa(xxW+b06vuC7%iJcT;o7d6eF z7=5uZAxTy8L_+TYz(61auLM!Xu)D&a09cl+5b(kHDTK4u^I7|LrA2b_!L}$ zOCeqoYpQ3z!^O0?!Dk=I_7ZqgaUr`KOO6}ylt4@)CaZ`=Y#kJ?c8_E;*^xu?Oj0|k zMxo*AEIfCG6f^33R1&z^5R&1`L{=&^u6QMHbCiIjd;3WP3pv>Zz9ht4%_r22zk}KC zNp(H^!;dI?23{vq2s>Du2A4=xaqcsYpW{1`RDQC=a`ec@61ugd;{1nPpI-vM@?s7Q z!NJ<_dL$=sj$4-X&SQ8Qw@T>Iaj?^Svd*=Iy{`437NM|ZH zG>HAU5i0D8r&}pCbt}L5*OHcVG!^zdu8xKOs}#6axk|m#_BFi;_E=>SuG=!*!)Ci@ z(yIiLt35_uGZMTk?zu9_pGZ+(DY+Jh=vKrrZ)s@dc38F2d9oYuN~+mwGM>D&BGMB+ zr{42eF_wg2nG1tTpwCHO=HKJj#S{5Q74*4sZ}q)&#F?V6QrboV3;Q`9 zH1hJucPBAWdiJ5a`J0~mG!E~JKc-Q;F(*jbnp?B2$ICjEHO_<=r}2M%_QAL$kAG6(lG4^a?G+=%soj{8FrG9KIQ&y=MN5r%#0rT7v!7rlAS-qR6A+gh^c5?a8 zea9YqdzC@jkzZ)~oJIGDa+uHFFDEDQ3v5xeJYFlfs!O|q%ZGZfKoE2x=$O^7hWgG+ z{!wjt$8irWi5#Pl<`$x@$bPF}j#5XhlUg&eF_(hx?-qOV@PcBittxHlX9D*F$JbFO z>KTveLelDZv!{;HT(vHnF*xJDtC1eHFNuWnTw?qrv362NZB3i^^SC`bV_7kw}xr(*D&FMePC{-!2 z^_ij&JhkxRLg@;BC>bpCpigBGmo1njwN1O`Hw+CD%=WN_ZS?kG8MVrXi4^sF7+PL| zMc@~6)n%x`NjNQRjYx+A!LqOwF32*!uRFk8n>yJ0;rL#0co#0@iQMTnopL)5@H1nG zG4)1KF*FE7-xY&sw?9y;`BSZOjUMEg)d{*}Js^Uki~NaH-rgGcw3j3>&fxYBmNm4% zKgmdGH?@l3YYu(LO2@;|cu#a>^Q~m+$@pitbTNGWv1AbfEGw*cfu!2#tmZgew{bL` zzU&*S+Pk0nUmQPoT6ydZVOm&|c);a@qL8nK3Mtc@z-8-y9;_Ob9;;#*%DY7;#FGu- zDipvhd$q};OevT0n+f^L`tPfqkKsfg-|S(@Pcej8S0Gfmu^_?E48Eb3Rf{W7T)|qq zlL$|+R$hB(lSJw8L&{b8->>oe{O9*rpT?6rX@q>rQMWRfQ3f>R=s16}l=4i{@pPYU z$3cGRJt*3=^#)Ha7;h~*v@MwvTHIfqazrGFO$`e*8n_-7G7&`|E(os&rJy8(XoI z!UKH$$daI%~B z_cNW;XZibgw7c1$eu0|J<|`S5o?C2P4I34*Mw4JhUDpJaHlWLx&B0(#-eUGPboCFV zhK!BCG1+21d@tVq-BivJi-G>2>v8aIbEY+Qg5HA==-Vv}@L0Lm53r~cpUko{Wxq2D zckZ+~CcyZ|0fkY~oSSqUzmuUiAw7(tWDxsy-Q;_B=HkZ*Y+KfG@o@wu_J$iXKf!|9 zPeSQn&O@(PS#{W4)YK0Ktc=G)oq3ySMXKm(gH6}SRE8Ao5FE$!%fBWx>xq}J|Ia0u zWlD2jpW;U9DsqL;kdGvzsb-9ibVtY*4YSr(Vc(D5Opkl=>s?97!9zBO=REYmsO9y2 z9&G9vV!f2Lt_hLFD(*Omp{NWo>#i*puL(o6wIwBTboWi>NcI27F4-5d2#eN@{p{q% zK!FJ8{lsNUPJW5ynN0Q`Y9CzM0= z0zyez)VeX{KXqs@SNv4hWH*#2R^7o<)})3`&(hDCg5{tOFM3z}l}(#XLv8Oc*>0Gb z3uoewH)))BIQYa8BUBhKRbp}(2#CyH&+}YC3I1fj0)gZ()bdu@pN#7RyiVfKsLqw!H^D^C9ROrKVn{GwmplPDwWY%=CLi5H6G$a|lEr zW0o~Mf|=P*A5nj-Jlwevn^D?lswv9t^nwLzB=wwYOX~}qGY$%dd=4I&Lgu)`Adt^n zHGisJe^QvFuY!E!A}Z-r3Ppp^mz)uHuMg$2Q9v#X7d~bU23x(V1f=4D!*^c-{Xt$| zj@s620yPBdb8XVxSJz;JFBt~8aJZ8uX7LnaLJIl24eOTf>BcYQxF(x+We&{b@doPU z+q;rZRLSjqVpHuNvGd(`5&omN9e#40m||Z+U~Ar$`b-UlPF4dIGLud?@f^h3kVC8T zhme;&tl?Y*zVRn0AI)m?40y>YwFplXI?Bg6Eka)!ifosYW3okBsyP3XXB9A$Q=Rf0 z2maBcO39Ij+;*CDj&NoGO0m`Gc}f3UIbo$BPiZH^*FhdN<`YRu)%z6e2UeROCY)FJ z9^VL0eHGj{FTsiP8fc0Rc}470!^-v2Vg5UduJ@-?UqD)mzw$q2a&*(*tOwYjt?`Mv$|TmC)ge9q^6&w0-GdA{Fs z&T|NwI@^`@4^#1|{-^#5a?jg3scg=Sl>INo z%)PP%eAbd$*l_9C=p@2LqhM~e7oh5bLG#AYeOXu0Kop>c_5*?KU-fq=YJ1VPe>d*T zq4nwA1ku4)QX&Ih&)}ZZ5%+UG@zw^Dg%?mgHGZ7Nlr+8{NJizFZF->VYn3T#s{;&)P4#V3k(Pfn;?r0WIWiZM6os_t8cMfDy# z`Q~`>!m6Dys5_|=nxXt9r^gZZTFdo$(g!tSb^6!O$gbIC9`xMzXeAAfq%&F7a04hg zZw7NIqQDrpM6FdUYAm5yDe2GxHhNItxB)1_+Q35Y^5^j%{R`n(1g6X5y8VYgQ$v* zccF00SfhExm7cdEq@wEG-`*zv*aDF>a;cT4!x;mWEv@sSNQ^D9XnctwJy_QQ;G>A_ zPCX&{_&A1(h$r+$9R-AJZUu#0U}^tG^ZCpr+?I z?q$ZD8A$M@bLh|!j4S=bcPQP;{dqoUKZc|@m`P(4^P`%P{;hUSKDt;b-Co{gW72lB z=l3?yKDb(YQpFUgJj0aAyUX6?NmD%z#F#K|A@}QTCA~2}q$Nk+!*4Ae!zH=xvx}{K zSE~~7KE>AcCOSR?ck0h!7&rY_Lnzvwv?&-iW19+EqDamaWgf(vUPPA)$f!kxs+vUo zRR-Mi_S_{tX3`c9lLM-gja@2(R0YnDooCGn_N0pAQ!}pDvre@?YW9UyyGgnwNIu)0 zHXSoX9Lz1PF@I;47a;lL3Myhn6`W?wh!k5p`*s;saX4emBSP%+KQ&o&k_P}tRIbjH zOfGJJP7VL=QObd1DPkbe#2;M?g#+RtHN7n$b(O{PoMTM9$5yAnH50@s^aL&ZrbKi^ zoC(eEsGxzrYH;inOK9GvC<1Ie>bxt$XzOSYW2^36tf^nM9}XbhwkVj6=a`$Yv^aK# zB~gL&IGE;snNpi!1G6uG=vB822j@#9sa*B~k$Y3t8>e{+k(38A@2fhLJ!)ShVS?yC zUlT%JU;-}_GueuATA~+P44Ijf4rNTT$NBc^Z!=o6ja~E6(Sa=f8Onq61C2v`LB|v! zL^eMSK@P^ty{4GjLF<;!p8TiPt?kP9n3&L_8~8M;G5S(iI6-n_q_!0yf{^sXCAwW~ zhIX26*M3nQo1J$(+^eEZ=EC?mP1`}Y4=94Dk^H$_vj00bNFmkii2fqRpld!z9V&BX(Ix7ck4dzw;^_}G+XJ_(u7|g$9>|0vTS6Cak}hHxj0b_L_0NM2wP3oWX*&xpOYp*}Mlw%02;+@5UVj!Z=Qz%05dp>9 zX};juKPb>2vLnTJw|Ws579su$p}VdL^Ff>t^Jpv+C7iogLEBw&PxaQ7j(R;XC82_t zZeS}(^F@Hu0$o8gOI-glO%yMm6!mI2F!K?2}B1tM} zsS@%1oBwTV6DTOAbp@2$Tx+^v(%*a-_N49s&><&Cevm=LIPVq7G6jjdx@-_5b@_Ge z6CC(5N&hm<7l5B~6>Q}t1kYFxuk)8hT}Z)7_HJC?i?w^!1B@p%ATop%Y)jTts(kZd z5u;Zd4Ot+Xq&HJSl*q;*Ht_Iq$FPg-2>zV~FX5Bl3cqIOy_&bm2NgAbipJ3ch3_SS zX(({j<%UXR;0c1@LhGE7|$ zzc}mDyd+C_uQ#0~Woi5R1PllymSsG-UY(|AG#J68otXNq#m~kjjIFz6Io;fwUd#LF z&t~&xp7IwDE@XwObs{l6BzIVe{eB3TX}KMC-HOnFqc+{ow}l3=*1GRyszl(asOd)M zyFVed`_`&#pb_}a_}^RP69u2H6vhl@Czrt=zu>I0bLI$Uo6I*Z;$sM)@$MY{T8$A--n-#$4Z;Q4szE z4$8^K0hRlpV8qiF&{`ycws42;Q4jA1%%$q|G2FheBsQbHU;9HAlj3=cA;X(?-SV>* z2B>d$71MHhYd@Y=PmTJPCf(^UYpKz6G_9u{hRi|!o1p2hN37x_;OmA@}= za}F9DS24+)2CoyZT3f&6dAr2SGfK^9s%3V#1KC$DW{X3bCXZw&phTY@xxC)@4uTm# z#sNt+giHu)St}Yf78D5u^qhVQ6W5^|Jq`%c4g2FfuifpQ{d9zuK`|hT9h$7UxLm=J z(%6K_56yKN*jE?uXNt8t-1q(UHCuCl_=(({Bq1LH&OA(@O>%IU_OuNZXULg{VnB?z z@N!5uY16Y`P@htTCcMroS1DEsdD&9NyoNuL9eZG+sNCnXIElxIrqsQdHck${lmAEa z>Zs5_qG}UGWvnSgT01AGX}5_mL_-ao)PikRFzyyQ*ae)d{(^(vVB{{OcaxD6 zuu?D~(qUK6sq|E3y2p@c*z-Z;pfN~c30QonnUnLN$uLF@9sHaCk}E#_aGMAKj0AyV zsar0uIQ6lY$6s>*9%7E=f*V`9nLs60YCPoud2tK8>~%CF67 z-2?s>8u9zC?*FB^J~%5Lqo#`F}?w#p<%d2 zLqoTAh8Fk@(*@ix4b3km$c^jpkixB_;5;GQh_&!2+y$JqY%2DnF+bmB)3eHXDH*r) z`JVc?U6#BcKF3W-EOB6Pum)LM`sES` zf(Ah#UrS&(d)r`|q)fI{5QINRH`yBdml}r0L69-jUEq&bq9q`(BSU^ut*_RFcE==` zL(f(RS*~MvD0b31hF{Ugvs1c~Tb4IT?|$8HGz$`#6!=;EnR@~GMj{6IMIc_&ey8RX z&mL9A05hc?>NM{Jwh1jic)?RmndGiwDvt9`bX^ ziNa%VIaelu5%u8v{AdFM;D3zVtDgu-&5xEq4`5{?O?c#z3*(35OF8HL^v=bD@CgTS zSZe+-eS=H=#Qj7Gaz4BjJGxQx+S*s8d#Ss8X!EhShIFLT*rz4UwIx~%>ih#P(19^H z+I<^_GZgxE$pJC_o^jEoY$e-nYS3*`F6)sA>D>CLm}Ytq^xjf zh+XmKn-QOWj6d-a@VLU%<5|JA7m!Jqr#Dsfr=a(z-Umzfvx5agO<$wS4H9|dZ**gn zL7UCJS#S9$N)n$h08beq);RmwHQC60?>!XFt^0fPjRu{`5Sn1_Uy*msLTm-}*e7PZ z_fl=or|$b&s!iruAnC}FgR$*((o|k2YH&Iyz8;RN{B=+5Yu~zFm#ci6w7#m7v?G!Y z-{p|EtZF`UUPV7fzygA@@R;tUw+{bOt&DvmYhb&m*O!~j?3Xl<3#MDF_06<<-)lw4 z6}m_F%AX6E84Yit^v0zrNFcfz4cN|hXX*R2Npd^H4k;v$*=E&=-+jb)*R`1*!}g4D z=Ry_;f=cHrE=P?;or89OQ#;;Yy-~TxZ}r-SbK^Gp?hpP49l%K_dM)A53xed|xYBZ; zZBE^Y@cPkP_fLd7o~9g>(o)TJ0Wk?+%gOaKGC~$>4?GJ9oJjPq2`cntTPZWB-OHs) z>x8@0YTlo@2x0C%RCSnX-3alOS~{KWYGqE_-y)ZaCCMy4tbQFD1CnN)ngVgBMYRQw zTsWBgWjfYPolv!o{_!IACiaaFP^#+#msU{(q1350;pe#FK+BvOQ0i0=<3DE_)4UtmMO3?Y2JzLFI9W*T&w+ z?NOh-fJO~C%vnOWq|LRoRL^}Vnu=$ew~BBu8fyS2Vz|C4Kfza6EBTV zZck=8reZiGM?tjyoV2Chr)5s&oVTTBn_?$_TqhiLed_A4lSR%4bC9x!XD)Fll-$IF zC+p=OV=XnzbA~w=Rf1K~1UqSW(yPalTU{M0Ez1n&A34X((qk~g?+sFeWqHWC%aX3d1j;`C{7P&=^(jxwT-*k0-bxcpoRqBNEuk0RT`c91-^pZ>Raa= zEj<3WNgM|Xs>j=|aJ~oD5`y0!Qjnab*pJpk5x?D#!g6!(% zUnI5y2UzHPkT2&>IVknj9jjAt%Xfvq2CKmhDFcFM+233iyt0$Vol{T1ULn7o=WrdOkR;I{X@mYW z7r`ZC7>!wRG|y!9`#=0;RQhk?#N2vPjMEUq)nec5e8_i40fiwT)2a~Ap4Fp1O@4RaiL-&rS7c$ zXJ}tJOfl8VPT+wU+g$q-+YKF`jXjgvdkmwO-{qU2vD_+ttX%sSdISrG`K*=k%Z1Sm ztOdqE03vy~+fIvqvkPL)`dpJY?E&}OJ(~UU#FDu)Nm8ZLSSMsqq@WW9Mhh64P$r?t zcZph$lt4$9kbb)mCrt<%r3@39-0zblL%F76ZsmnQ|M2!b)^U}!gmr}6(Z3{`3YJkA zpa_U2`*B*=sZhWwiE74ZxI7mUmnip_Q?hvceG8@U?KbP#8q-AuUxwmTl{p%ItjyYwE5qjiH4)5&9&Zml|f)4y&Ic7FWk>j`S z#RR@fqXDtqkv&JpC}HPsgxPNW^_nU}_2@Fsi%;m*DvXtYK%d1t%T#x*F`nW=o}+kW zh~4gis{!98i;M;z|7G!gMVJx5jMyq~x+bzv`ovfj%;GoDJ z$xX+F{8;OC6U59&k4WJ}iG;FpJ>se3ZOBbkw7Z`_u>TeuzA<8C-Pt`4Ew0%RoM1RV zKdZ&$eHqu(c_f1T&BA8o!?<<9WC>XKTys zfU{KFmBI7relcacrXlTFWPVX}zPz+(+_s_B@6Ag7H{f`|fOXeFINnk5cj_RPiD6tw)#pllE6eIY;Ao2=x9rUIX@08V{pJ(XAe2VyPeZ}p zN1E~TYG%Xg!G&mL>KW0N#M z88WWRC~c9m+>THtu)y^k2~%(H#H!peCz;zLd=`zbX11fyt5d)c`BLpJ(6+jPh&2K} zR8R|wVtLp^I)`O~PQe^V5x7d#Xv7z@`>`eUNY~Bf0})tv*r!bMikSyBn^RT%i=mRY z#)5a-9m1Qw&%XZxK?=C2ybC)11VO?;{G&|rvbWDW2V0e4S%TnQxqRDuG?YKHAbjS%ZR`$3oN*t{!^G>gIp+g)s4PB^07e(Vnt~{1|UCP^~4T_L_Oh&f21_eZH{0=g`cA`XX? zg}GsLs@Fp1XSS!U9d($zWpBk=75)9Zpr&D6?2^bg;NhVAo`@&?M)`tGdK0mfu0719FKU=cw{$rBNwjhJ_It3sP4W$^j}^^Qqnj)nrr& zE-7M)(9zr2u{O7}`m?(BsxNS<*BEN>fubcK2s8LaiPv^IMn#H@(v8CJp}lz#xsvSz zldd(QJiOCRuPMhjMvD5kr>{O|-->l=4FlG>RF~yNLAY&i_3v60en4}O6ZoGWDg_NN zk@yEY5X%&V)RfQ6+YtKJ^CJzTse#S)OVAWSD552Ar($Gae#`lProtJ@EfO|=AFoVz1B;C{+l?kRb%oK$gZKK( zsdgDR1it8}O?D4e9~zg^F-sP=>@vlMY(#$0A-^NTWr|@E4X-G^`KiU(u@PhfkZJb+G*UV$J$U9} zQ_gbgG*2~1zrf0KZpw>|e_&b2vJq!#$+M5;MNRi;8$OJSHwH9p+(wkTPbmxNNJrN6 zQ+A{^9Tyh547BFPY8(yJFGe>A6*m8MpND zp%Frs5Msl(5X3gx5#ld=HFuTc!m>Uu|67+|=#!}KynR259N7s$N=Os61dbnUU6X*+ zLXO@veWka4R}}oN7LsY)o|=U{6)Dy)JR0n8paLYzl=>upclXv8V=DB7dus^mVAVgX zQIh;fsyiL7$V4m^ z{Xnr;7mx7ED*jmzAg==be)-o2%c202IIL20><4QLn1+ujoP}j({ICo2GG?cLf1}*# z6w$?KEXt8Fcm7pp6zn62B$NF+dj{)qELmh?tg}5u$^Cdpjw9WI5%W4JBUx~E0j?41 zW3}QPC)Zyi!btl)oAmmmvmxq#&{{6|97Eq(9}WrpgsHR2Q(b*8>1p@w`(pSw<~o~a z@AeC%e!LSEDKav1KE*gUu|ftx?(Ns=A+AJ^+&*T-;R13~8*{QO!>z+z@u4%>?&)%x zR}UAuGV>GJc1x;#$&Fpo>RP+ce5##AOH!vmZDFv230g4DH=PGa_|^!t_ZWc8_-j63 zUJ7@$h)Y!X{~Fm@`5B{k`hyPBrro&aD-g+}TNYXryX@BcztP$Kwe|5Hv_zRV4c>1~ zljc<#Y@T307;?sAMUQ+iJdy;N>DKl>KH?b&O6~h73Y9<%LG})7r{Pqzxsb40$yAOl z9(b}OLQJLi!M~%_@p}JQjnmpgtF6_WXFez|uD}0?*w>x@f@}2JfvVR2{(ew1A>Z8; zmX$Jjub>lJoc@I8-ouM#uc6p8+X-wDjJkQNIMWV({HtIKsvV<1Q7j_9YruR&zuZzl zC&7QiB{O4KwJfMel8jyzFU4la@H=Xu(yg=Z4)oV;tpl;ClklO|zkB5G3$`@Yy&7TG zzwaT)#U$U?@GxyNLe)06{W)JnS(C*4drEYL23O?a+osNVQJ-^I#s7CEGoZc#>c%q3 z<0YlA=MKB?iL(ak?^wZe>_4tPK;}Tg)IVY;We{)Q!bfX6x+qrpssMwJa4)^A!iUJcz@^c?%1vNB!8}3EPe4m5;h%-k+@z~DW7r> zp1HC5;Bqw1UHJ}3s=+FT=$~3KI!ByjjZ>?P`Zc2cC$e~l`RoVI-thCHWD&^45@uUP?!*B5F_%|PA5EPb;C~Dra1LD6>gl{ZYB%#MHei`+hxtNKx zL)n7nXXsboA!~W&MUWeJ=8X3L)T+E1B6@I+9-fnOaX;DkE-F6F1#9c|L1Yx|W-F&$ zD;j%$LMU4dT{1$f+j;{mWXj70zelwe4JS2{?g#rW5=yS{KjOczW%iDIgSQ7I+Gt;Pzh`A4Pnk8X^pGwL>+6@ z=gnFRnIOnfq;|isZ9v=S_NntJI=t&ZG0oqYLP_$^X?w(8!22B*W7shuF?f^Qm8AalgiSA?U}_j(VP)P4eut*dG&mC?5&c zuhYvPUY32h;%q(v z3UIE&P87PAl{TBVz+9SDje~i`z_zhw?T2t4VQy2>OW)=eP-*g)8y3bMc>V~La*?Km za7g(W_b=qY)%v@g9iNHHIabDl$mlN$xXFnCC_l_4!QMtedoKKYcS8hYl=z@u6*v!) z|M5f#7@0bs3chxS-6T-JP5s7Y+UP$gyoBkc%MiK#H$te`)sy)m6Nst z#1$U-qCw##TifM2U$egLlLhk#eW?-vE|ZpsJ^+Q7yv-s{THoTSI5pr$Oj-+(nj)CM z&(*kC0o{$?-;^}CkTMAkwJ67VCJp|ZTDXw_Q%8&MT`NGk7~Fqd;dIJ=?&w4!bO{z- zIC_AdVUn#{An>9P=Y)1{o3!1i5_-`<$ZJRnZsZ0^s7v*YS?qVdUhNJCA$+M}zlJ2r zowlP@vL1dpyCN0NGXEGznPVwhOq(vdHL&8?5$7N=J7)+V+Tu6**V9gPsk4+&hx$(D zqO+H!%i)Gq=yBeM=oCDV?+<@enq*Uu%? zk^GCC|0FY>pQibH0Eo7}xuLaZb$c7rpM8Gx*b1kN*-<@RQvYE>w;3}!|s6DE{?dONCZa3KVmHEZtRGn)|UzmCRu}zL2Hd0 zFusqfv{lPOiBJtDupdEYNY{=+=7HWru2;QEzG$|^V|!R%x)?q;`Jpzu>=mF#s8OpR z(lC6uWNO+NZ+s6v>ob#CnVr@7wfr#e*|Xs1H_x%yyWI$s-6W7L9b!Ev3Q>2}+iA0VxF6>U1d7!L9Il=2AVp0#!bcnLcGqS!aR5*aut>=c;x;-7}@4 zTnau>t=PL+WW6}&xpY!3K*nMbczRz<@ zZ4X4E%P=eK&To_T`@abU=n}r8X}#gJ{l(xrGeRTOlAK}fngNOwkI<~ujQNJ!rSHV> z#=ZQ9JoD@!qqm=3i*N{?!+cKD=SO#kL!wn=qDMl~DuJdzJvzSv5FQ@;e_TrF@E^=W zJjPnjG<91xU!L#~essRCHp3qtZGT^j9mp-WX=NqSDnWR|us2(Fyc530uos8aQ6SW$ zI`16H*(=~^kEgx#RFSYkPi{}Ui()I;wDjiqUmiYYn7D<;0#E2)b72TA@ z8@0F3Jvi|3(C}HZO#t6XZF^*QmUNK~>OA5|g}z{JcxE7-e~%ZJ{K6@BI7Ib&^mc+b zARomB{qUlgYXqdh8No-S2o|PAWy343{bhXhb%KriB$K7n!%GZ6AJmen%>qeESPw~E zWwTYa3TQj*iOC^ciVk#m-1=fFfK|K`@zu~6jp9Dw)a&WYOu}-WHt(BytYQctm1l$d zj0xGmb(y28ba5WYI_0!? z{ImCzf~2&*D@TNu%y2;L^N`!I5M-y2L_`{Nwd^^zUfHMFU0m=A7qSJqUNuNLm}PJ^ zcC5tI(NuCv^I|>ZYJ-12Tm2bW;&uUB+7)g`gsvlWV#%gaoAPuX-)3!HJyRjEv+3g)@?mKsb4of)DF8Xk7SWYJ6FC+y6Dg!H)N5q z^Xi5{%OfxRXFxkDVC~uld>YtgG@o7AP52+X!6D3d@RDQn z7{XA>-5IAT5Tas+SMvC98vyC{ANSPHb6Ah9BJw*Y=k9(%gHCh*r2*doveotc%=j$s ziZJ`UA5%?728jH!eswNhqjBpu_Q~;@1#7vFzO}^8jkO1`}XW$3&iGkVxU@tCMoyi0Z&tl*pDii)2 zMvC35{OZqD}GX`Cfa@CB_MzER@LBp5qO|r4V3e#a^@U$ z3^`iMBL4w~@;3j`x?wrQFm^tiORk^Zx@apJyJ0$XdNM*4ZFV>5JA6r3$A&TNaTWAi)Xw#ESDg{CMj1JD1e=tCeTWLafBzT!()bt`N0QL~mX^sPk_e zxXeVNgt>+Xob=2^-cqD^h19}F#5-HhL~qVd@I3Tc{3*y&qWU>owNU)3Ig}P-=A1Kf zu@UQ%GYnz}P6_}EkAsSJl>;uiF^?hxq{u6>CMT-3CKbW=M15$;C&KUDsC-R4NOn-L)8Hl32qylIGCgR$mTcdYWs>>&U(-PM&Hi?Y+f!q*hAz(gO=dmLyslM{+!kYH!k0_(c`zhV|SV2`^L-qtv51v zR8F+84c|a+yq+4YQAIoYx;7c>>_~a_ji^JG4*`BXUT&1=I_Tl-ew%@ml zXJPtaX(nx^P1_Z+UFUqlWO>CqEl>uU{E)W)*c6Q#quv`?Y9FLLBX5b+?@|)J^@781 z0ZkG;M%d%d(>UGeKrCfv5>3^kS`rBe`zqIH5yQo2p>hlaIGJ{|MIx3CNt7@k?ky73 zLnmbaNrC-8T_tqVMz1Lpu9=C3B!7XzNBcPu(+}pBmCUFcBIHy%MAamUhoz0oSLxct zoOdEGt%)c}NINZ>_mAlbq4?Yy!AErI0~9~*Eh6@YDpUWd0#FV$^9A}!ByInKeCk`J z;49USs-7vAczFCfKbfocdVOd@#+36Zi$_g8%0OV@MD%2l z?>>&&1d${uSNLPj%Lxa4Kfz5fi7gYtoToHR@?ARc=Np^-kIy6r{Etom553&3`u-du zwo}NzQ*iW&7%3(PHTBc5R4F$ig{!tT_inYIh~ z+!N!rX5lP^{~=J}V65IUzTrGF8T2yK^PRijyTnW8Zc9$C#uKl^+k;nU=we9=1qNqM05jVBo*i&-R9R&ug~=> z>7D)7`^ZrGNbhE_p5U)Zhg?L@~%+QF9`^uZ0 zHJM~B<-B|+-*mYw+D1)vwzh%4cf!sjN1*mMZtuT0hOIN`+SJeE7ZJ9H*?>|Id}6vX zNtAMN;6ibZ%Kz9Ydm8I*q}`@kuZjc>-;~35$gMg!TE{IKYH=LM63u(9T72AxL-ycJ zxK|=2CvnNTSXVpXA_8A~=8z=zSr`<3TJX{N-pp<&PP`GvESV!#+xfU;r4~-qw2>gc zl|y+23X7f|Z)x7EipP1grYi98zu8?DJ>KArik18BW_ws!x|j+Gh?-+xa#~l zYe)jZCe@BZWE}|6az4x|Oq&;WsoBEz(g3rl&z5#(h@pgM3t~E_~RPfb5%uM|+hjj`&Bz<71JAv&wqkhQKoSI38f|3rj-`9_3}6m$Zo0zE95_D6R4-6P!a)6TEel{(;U zlfAdbF%mXLkr(?9&kN1cdF%IanzO3mfymAI{xs{{{BA#&DHU2>NnFOr)GBr0&0sR` zIOK8f=`q0u+b&*CNj8S(k~TC%UuePrkdqY}`C#pu9`WdERZMyyATgM$iEf;ub$tUa z5;nsl_f2xf^Ja%7A<`SdPiwYxL2>6jm{P9DKoI*HEg+6P}~%E5mQUr2M_f*VwyYF&0+jC64_-a* zY+jA4H)$F*hL(!!fR4D@c_09d;3IfMcSC;c(M!2#EPYVq?PXm~6Lggi2YMB_{(O~2 zJ}%^RTLaGc`{jJwoA9A3=nxH#d+SJXI(Sz$G?%3*6lLhM zk4UUg&Oh*hwUBJxl69gHzpH$E_fgxqmM8`yn&0c|JfQ$4=^ z$tF4{>MK<2S z8bhu5q7!D;ZL98J1o}On!1;N=At^!E*o2@5_w6_C0$>#ORkn(fWBz9aciX7ajrZEY zzYwXTorl$bZ&}WQz(b!0bPSHsqHNBmGx@veF(5=~Lm6(gID|z<;eSLzuMbu?&K&Vq zhAMtQ56CU6dlpobVb-$3g&`X2vv{RaV`mk&wVToknc0P-X&8dmJ$vf-Rt!KybvM2d z&wP_2r*+5K=|$6J7!-D+5ca;ZG7#TSWQ=YSkj&!Q7xy?JXgL?SW0t#xyyi=(^6BSx z-dqpK0K!xuzjz67qt0!Wh=#E7Bm#m~w@D3b_Pm$x!&eKK=cdf=JSWoH3-3!hhzX5| zUy4hz0+RUP%Fk{+M$Y7MPP)vtWdE*HA(pQIY{TaE^^3ZHg0Q-q_haOnr`Qjph`DYF zGHD1lh1_J^|Hb--g{MShkYe=j@MxDpovR+x9YnNZVWu-eQza((H&0rf3l>K(9Ld#9 z;Nf~3nOU-*a%9l=SADRCLns*&pwmVK;t-(cyxBL`cO?N$gI4BE_{C!Cd;tBPd#b;l zIn_Z?M#gg8x^|N7Wq>2{^giqOXz;Gi_DrkJd-moNj&H|>1hPIX=EoB5#3(Jep`aK& zB8c(g;cs>vbESM7`={9<8nZNahhPk;VC)*PPZ$)6s za2s>Bmn)A)Hka?r`7QmdQhCLhd#118zdiF$xV;Q{M3?cjdx-vFz10i;Tcv_Qhb;cB z?OQii_26F$;i%N5~#*Bh5tvV{q`5S@~R#SR9}Vt29c`#jjB!=!%Wn-NO8IC zC`q#N)y<0fY|4-gZ23)x6m+&|@rh>1j+lt4^b>D=qrlksRJO5w7R_ocvj`-|L^-mbICCY2&7r3|By%M zZ=Lomzb1yyV5-QXJE66)tA)4GP?2d9vWs~VOuZi>34s-wI*;HnOD)}(0e9(P_dn+R zpu$Nm>2URHF$6g!ZVX764R&Xm)vLyY>~y!GaiHyEzTSPgz!@Ur05{t-`5!~b|4{3B z`-phPV;-hc`*2Ku-pN3liP%tz3dNRRHkmP3CF2yMdE&4pb!O!3YOKJsJIMquIl!5M z*N!q>yQZAxyZZ%TE}PD7%30)MZ+6+smJQlTPZt@z;Qt$Hh`FQH*wuD5>AJXpNY3Vf zt#z~chn^Uw#9g2%(tA1RfsLGC_v<}3m9i3-JcPX#?_l1PtL(*tm;=5Uo46PT-BMP_*+oKZrWGx+vN z>-b;bR%(@8fFRRjnxrUP82xPi&^-x=vO=``<3>X|`QzR0G=|UD`;bH9q^k|c4a!c; z0T3dVz7drVK;%ZFtj^Ll2oj-ok&Uku+n=leDGg-;_ej4Zi=&O4PDXJOu4XE$<1V#r z)x4%u@Eq+4H#crPf=3@;K(5Zib!xx0oI7p>TnY^vYUCd(`1LFqSCveH8!d606XlZ2 z*5E5X7W<`WSUc6vA1D@Qa#qt>g^VwYDV(+1{RlLHpLp?z`qLD5++Zi}1E3z zOf10tUUR7Ou6wpSa$kwn4ht|l2%5X7rMGNwkP>miy#m&d@RxZ2>uKt=&|)&-*=2I# zPtfPnWiFe?=OEg|LtNn+m)_yggOJ!7Wob=NB76qqq@S6-U(VSj+YpFDXkLs z=sma1oFO^nX^UjH%}6tu?wMK9cGdo3WWeVwgxhDDj!__C>X6cXI7it-tf!SK1I#vV zf^hw(Tt;Z?0pAPgO>JOzPgIon1s)|@pvmp6xv5S!WG#yGFTgG` zcUkt#sOW5FMs1jQPeJF`j}DYgwn2>1IYNu{xQ#OZj~f6rSZ^X+J!yL=GJ0$zx@XY& zhu7Ul1}Oo~T`|DznEnM#ty{L7Y7_0hla$sPLhb^vN{jWm>ey{db83tH+ql>)a&jif zi*pZn_z>90iO=impopMmM!keujbtLAa39RO4**JgSR+-QMuE~|D?AJ|yRgV{U9V^f z(Y*h7uhtQY)yu4E9gwv#$p^0}De-1h*ao!F(8HsNdsPN#u$C-`<-c9#LN->xHemRk zLkpnSc4pD`q(itG8tJfxRN&w)Tv-WC6n9HWHO0&<=bXU-AO5YWl%&&^X$l-e|A~oXG0`gU7(@z>r>6$ zg4Pcju<2PX4gT-ST2d^>OXZ#c{-~5wLWGDaP)>i4O3HtBxYiJVpMAXV0y`;wvxYr9 z94J6kn=@|0>eN>(72UWSJ^NPyf4=oWXqv`(@cW(!0-_F84w-{15wW z+xc%qduJ;kPIRR1mT2!><@^aE^-%%yHP40L%`Wv-TFDy^%a{#^VkM!@6K)W82uv6q`8;1mNI0{%Vf3r1YzGRQt=ks7mGVj7HgVg*j-+8c~+Mk3V zQ!3@>5G-C=Ak8-{s)qM^Q1O?A>$n4XJ!i85UQXz}q!%4o%AKyu zX7#)UKtr@N?v0up6si~K>r=mNk2yKNe_e`a&ua1-Q~*y{D2X1=F{d5h@^sjM)xU+iZN?wF+eRO04E2`E_cPHw!P{t(D!SN`}20xs`Q)|EPw z+Ies-+Z6$z#K%HT3$&_{cDw*viG|zU50OYfH!YfXz;c%wyX^cKZ=YK_8Drdi#joJ3 zpS8Ej*HJa8=#ke`WqU|I+6P>MIzt*oEmirM(-JeAj217vRLn+ipl-h;WlAA1_44L+9|-|*;Z0HUgChKzXAOLH z9%Ad*Mjyi^U4$O()Oc}Xs)*U8)+3(*ce|qFNSF$62_e=wGTG?wKDWQt|G$$oS_KaL zwzxgf{VxPELJ*tow6Yflh%!M#FgOVv zh_4JCJi#;;`w#7TW-DGD_{9YBnvZeydlu9Br8!HHJSQ5Zu%Tr~VL2f>RYu$M?P)+s zH6rORWjO-lNxXT0?6_$eK6Dzs3X*GRZ3)k6nfPSMI1ju3Z&(QzlI@E#DHg3EZyo=d9oT0aIhzclTwXp&9dpY-Y=Q`S zLZBZhZtIo;O_KuM#Wc6{Dpd*X!sgX3gFoMRT|0+Dd-@s49ee}a)m_P_0)&Ep<-~u? z>YOZw(*m^%UYorhbdVhMPNVJrCIB9hpci6gaC ziJK)lj1&2ZERPo)<(lhTD30ZMU{AP{T({M8A*Y_Zudv}tG$MUPWz_l(-f3N>y|=tu zvl#Gomi&(}BfL#3Ub0^uZD8ZYSBcSosnmMZzt?l-#Kaj-Eep3~(1kMidLAE?;>V;Q}8a{;)Au`V8UOAD}@CJo~|7ZqdjigLW@ zE#PfMnarG)TR`6s{q$|-jotD&qq;53Nu4=d+1UA;%gLZQvU&P*R%9jL)gKh|IyUcd zH$H05*%&ORExupHj#hTP*b$8_pR@_s{l5RuX6@QAz1pp#XKw)SJ;0RZ)tF@06OvAK zePBH z!UL%sW3tevUO>eFXCXRn-_pBeAcYPv-F9K+>ZHz&=T;89{0|;53+VR^q0CV6LDVRK zE{6E#XORy(En2v&&mK}C#E3R2NcWX!p0w$hcF^1Hb*8Tp5Jl^8JUh(h`!7`#DE)Qe^V# zxq+&*N;@h9cwox^iR7`a-rG_x?H?e>OfN*iEFo*#a_2?U&$lLkbiEJwX5uMNirSWN#y`%RhwW4u}`MZ4YaG3)N#?{{k;;>mVE*?MAi z1PVeJaQ>VJzC5y{7N{4GI;xGmi+7n1Lm4}Q|1LCJg;*ocp}J%Dj@3h&+qdO z2kXoE12jb%a0vV}ut7>d^%5CxlDi(NT559|JIlfOh-Ng6)9&|X=^;En-+;qCKi;cw z!i%Mb0$xs9;7l_}^F1qu^FA}=h8DAQ{bZ+4D~s$?3|b-bnr$fjR{6b!eS;f<;T?awm;epN z)fYhDV{Fd+u2kDe>jpKB{t5!mU7J32=}u4|y8ihqqaU0Fqx_u6AlA4R1(W?Dotc0U zVrU>#?i-znDUh@QR9s4Hw!LcIl?LpbcEIq=_lE-16wF5F1{QU4Fg&Z`4{3py4=%l@ zh~fG*aSWH@a4vzBQ?2)h6ZJ50U+FJd1N&p|o9%%ZzbV@8UB=2TSY9Uw4*KN2RZNHWr zg247Ot@sY;z{*_bSP}gadg^ghC`PCK#KO?Hv4g1|eT|6acpRk$wA_r^@^1}AI3>YI zjZ8e~j1q?C97~6v+{t%GFs9C_VYQ_#pU^Pn+gDtzst+##Q0S?4)a|uvz?*BML3uG( z4qm~^>2|e)AMChF5m&q(Hu$DDPQPs|+ED~Xht`66@N89CgB-LoXm_>q0N{U)s^yAo z05%TIIlY#Co0O4;;7^$fdv%R@)s&k%b=tq7X)@m2!Fd$x>TPIyEy^6rTw+aZA5FyUbtqYIUaT ze3ecvT=XY#k#^H&q&WBF)v{Rz0lhx42peDt<$O@D07-291Ah;I88=Kc)giEV0L94h zFB~(!69i8>`sZ~nio~^;br}IMt5kYN>=y6>V6`CTD1<``_Z5XIq&JbN1i;-`GX&i6O=uyK8 z-u6iL@5L*lK@1uY`U|=WZb?w2-dgHdDUJcci;nE7P87G{p*W}9-nAEpemew*-#$5r zy(C27x@O1@;8<=_^W+>QFajO zPaq{0i!@CazwSr_ULR@B^|pdn5FP{rNRs|?Q$bugVpq=M%PN?ZiST!jrKAwwDuQSE*Of^VayEpnIyqbbQq9>mUpUyw(iI#@l1|bHR=lhb z3D5w4N13hQQvlYOdPFpLza$p{IFr|#;(-+D7Kh2F^kz=N!uyl&#ziy-+q+-vd1J;7 z0$qNX72jlVkML^GGpqdh*!L}95CnR4`YYEH}H z0Dx))(HOwILv#bh^!mQ*{{?!u@r;HI2XP+JtrGL2VL)=*fkC(Ui)%D3@GQXn_IQZ6 zD6VHU&7Qsdv)DT;Kfe{Lt(|#6{smxjStcc}+u0?9IIzqpPn941+42;oH)Y2-vGWYC z%<2z^Mz|RIy_*>m03|EkiPbh{=`oNA<8$Jm-p%Gr6?!ML^qIm6vPqOz-)_wLhIF^B%sC)P8&HLN&+>?*cx9k0+x5@WA^D@1@=)Y$9 zs10?475DfG0Wgl*so0T+yR78Bj^GEoq|QGb2!_UQ0ifjPBwpPxfQ|t}`!zCNZS}=# zR1;fm@0o^SE0VxHGKAZkF0I?9@QFXa)-ir1^=c#a`rQ(~Ouoq2G||p*O`rDyqQGV9 zYnrFZ<9SQSFng{v&j*MdR$v8be^&b7<#9{I*w>Y1G#3Q6EOV6bimY)!bnP;w-^7S^ z@=|a77cDmG0E-ulU9W*R&FeN47Jmxn4dL{!hLvBQj@||vSTp&>Oq({O;NNx;;KjE+ zMIcVHeK8&2?E3=m+H0EEXLsPg!i# zzLa|1ES7BQdY|3v60t7+ABmcpkU2Q4*`{R_V!S9X-X+5sBnKEP-`eXNYkQFwL_fd7 z(_goG+W8`NE_gR)3LyJyzp6@K_;D`M_#D;nC_xM*p!4|VocF8$8SqMs`N|b9Y{Wd2 zSJ^_RnEixu<}b7NO(K+Uc)nUc)^=63{cYcNKdNMP{d(7*85-eehp&j4@e1?^>0~e- z*lgV5E$m25Vkk>R&k%iyRuP;HpNxK+AB&9opja|%JQ@FAfSJ*jf2u$r%!|`1jQ;Qg z-9PxgnnaZ3MVvu=yh+RIMy>afTnZm9ayDmblM%kD)OThV4;Jb&bS?&@2I_6R;-!`@ zPCr%ZbCUpQ)B+5fU?=siB*jr*i`9oUdG_LGhXG?+p(B}a+BfvC;qkXbEm6o*bRKq? z_)!2JTGmIaEg0jGmnv1M??xWECGdUs|5(~u+=*MM zTmDtUGfz{7aaFF5T;UaQG6--WX8Q)1FCmHYg3nUY=eo50Z@hBf z_)PVCE#3vwR%i3_t9|U~_#6Dmx{5&KN*DYxT+>YU5MpFu!)F0C7k(u!ryIw<&(cO1aLox@HDEJkGorM?*FMU` zOs5rVW1T>yQb{zC^wJl62xmM?M6jq+WwCw#vF{{ zaoE$XIv3`(@X5n}Fh#MS>xomEQp#szaQJk`)$5nf0nc0-TaKM_7Vaubts;9# zmnPj*ezwH|(86T^9NCN6CNV?+k=j*Ng2+1^V9~Cty3HY2eq|gfs%aNQ+cg4I9lXXB zz{gnCf_lXb_x-qP(82 zBAU)E(sX7je!vHYI!mK8#0%yfau-$D{f7M57_>2+k5Hg3+kC^<etoyVIY&+Jp~Y9xUgh$(9iD94A{DU(qK`diomZT^KogiDjeW)hca)LVzCD zlV|3PH9L6&=H`-npS1Y&j6V?EsA+Q7wfF*NVXZ_}PL0@+;EYYhlbdC>&8V&byF-8< z)X}u%YY6Y(IB?5>2$qYcOxI`%&laanrDY+K=+^$$ibej%DUFaRc$QcQ zCtmb91T&DRw%tzn_4{pJ5wC+&lO%pq6H8|TVYfB$=*daS)akz~D|{Z{@&PRUuCSlO zG;VI#0*AZB6g7~CWuTIH8TSWYDDlI`(@d@kpV*YMqhR&ZnQ0GLG#2l zjRM_r#XwdHGo7E02}_zXVaw+8wv zmrl?)ZAZxw0ftEEHp~D2Ak!Kz6%dap8Wm<4cxJz38h<}7gw>DO0@ANJ0Ofzwoll3f z#lqbl>h=BH(1uu#v-JvEKjMRL(-^1kXZ7`mq*{FuRa*K!`Y`M9L*lC_bKt5!;WFb^ zU=n-+>b)o)2Q9aH4Huzm=RB_n_XTf>SiydF(i+`EHMg!(i3Jkrg?~~zKmc9--%pxp zO%DG%*+breifY-5qv~f69BJJlhBNg*h{^91O2Q9!J#1naif&2)J;w==OcGEK1G6)L z(w)Arp@R<-cWQKierSD?^U?P#g@FDJ2^^4Lf4H0U%?NbX zul=sxBVKB}+yVfTbWVjpngVAiHyJo;r?j|5?)%f;YI)0Hsg#uT89|gLO&(yVIdt|$ zB)|+e>o=z<4?w_SAq-{bz&%(Kskj+m@Hi@hFN7ck1k-?R2gEN#P3=Xoy1&CVfVuhM zK;d1p`=n?hZcla*ygUL`$Ovz>h5}g#!Ml0hRo$E}#6i8UZb+G3cam9VBWA5;9zN7eV)Mu$O4F~2 zHKgK`ie?Fy+^cR81Y4ui@9J-`HQwOB{74xIAiFpWpy|TN-FV~NbBLxR^=sln`aCYk zpA=pz47}H8y+=Z+`Q5qe0ks%=MgHuV!%W2Qg6WjLeG4p~bCa7~6@nQoK+963)lKUr zwU-N~n2&}ix;~Z$s#It2Iy@U&Ii6UzKUb)oVKW+MlfMOEA&Kjk9=s`&<Dc&NQ-d z4uu%**K{VjbU`n4I%wVQ?^#Faj^~+4e54=Z0^Q@jku;OO=U=vo|A+66zsKqCqqJcS zd1i$e-s%pcv(GQS3O2`T-VJXJz}Yc4{<<5?c$n)w_|_)Re(bJ752*<_z!Do;L|hz~ z64O9hfW(ER0F?T6O=5<1S@Cxr^f1Yl@!vb-)g21`O$sZruWuDb*YC4F`k!Q&htHKT zu+4+LS{9UiLTr%zcX-wUT#+uBiKu*I#9gN;B_n(03JubdD!1JGt+aS$GUCR{gQbVu z|J^)B%E`cmt|@P-FJfRu>mzd6OLNWZgi?7^o`(j++rrZ}8GPrCxHn8hV%Uh@+Vv1! z@i4|m2S_65W4d16iaAK!!Bt^IZ~l6xP}~#EdRuM?=+ziq-7a~nageVh`H;Y%L}AA$ z$Z2q2%$hyD!3n_-^qzP{`LqjU{Gv0vUAGqMf6tpmHYACmpzq@;bEE5iVnDrW8=w?R z>RlszI%DApo$caPNZMLz6&Wy@J#Ixx_}uR%GSQf(*A!BVefDc_s9|@*^z9|G23{Wx zV~~lVe6)!>XT`qKYm2x?&FsGIYQ|AqjizD4XegD>40UK}bAYFCJt^`=#I z6`SUGDvu6!x*|<@zVov6=f!dXVItdV7N5z@O#p~TMJ5TsC0=GaB9jY88AK??#beT$_79YH2b0D!-(-(6VaqXRU_wBvHlH~y zcQ>fmJN$5k%Dl)DA?as28Gp(txBRnbB-mig;hl|+~Vgug+Zs5?{uQVN$wpZTJ6NBkiUGa z-rNh5xwph1tog>G1%K%`JRGOg+guo0Yyy;|H84hKI^p}&bd=CBt5-(7i|ERnrryMW zub`|7zYBoAs@~9+jVY)%@BpufLf_>h=hf15(VSDqW zC6S{|h&MaYXmb2s2I7oabCO;$;UkOHV%HalC{6*cm$$^AaD(q7e*hIwX(ixvhi|~V zJT3$pq9>^zB9fR+?-ocnJAnYSk`JRreBe1>)l7R@&_jX4odT>o8TgE*8K-bKKu1Rh z7QFMCXA$b;aY6-0pK-1Jj{Dee#h=JnYjnJtb5t(YrIyEPHW{N11k29rEAEP87LYr- z8DU!G%F-ZhPFw58I+^ZMZdYK`xdPJ5RHH=3Ah6Z55gis7O%N{n=%(h7)?GrG+w^8j z_Qy8}_reRu^G5$30ZQWEoURKfSw=IEcVLK-q29u1DA#}Z0mTmOM)Jk*BuxT;sn3k^ z2Sn#BK{!rH{pnyJlIF2JBdzxW^r(y@f9V226oIx-oMg{|ypMJ^|-fZGuUG6Kq5 zOmvJ}8}jBO`)4H|5U%7Q=6|O^I^)^qzH9VxXDsZ#6d+-G|_p7s11{0i34n{Ew>UCF6WGavPIiy{Of)bSYVb{_rl4h!X+eCYP%M-xc z?1j0Y)bBK#=@V?R2|yYBZd~|)AC+_tD@6`WwJc| zrX0Z6pqh*mll_&2aCk{4hp0RLcixrkB+PT9sUps4<)dD!brk*D0Yp1Xx2MJxs7}T` z_pZ>1>A{qr&Nd!Zez9!aUc)hbDb8P{$X(buB5-32(+donTvPYZgkKZR1yPwBmi4)f2fLzezY&PFinQWz=PRt5_ zvxM)vZH?0IrwK~2vYnl|w6ALcJ^%~1XA^Z?$#M})mA7}I+=57#Ru*?4 zI<+ylUMdU02BLqQ>W9+U1}izu+{i`te(~yDYf{@uv3z{{TR>0>PKu8W_tFbNt_Qii zt-c7kFT+K6GW<+l!^Bl28S=*Jp;^1otVn(UpOePFiaqxYF8}fTaVH`=(K)>RL8^QSD zBpstsk(JSRmQD7(W1#;&Sx#gUl3Dv}(=rMk_*FD@%fsG4lupPOw`KCz<)UaFkN>RQ znfnw3Wv>=Kj7*MJ#E^o6RIB__-#{r{E;SLZwY+2UFj~uwSZumZn!V#{oC)MWsTbJ%oK;-x%)O5|_pKv`{CT>ja^Xo+p${~yvwSwPe4dCd z$60DInmT~OJGA%ylwY*pGV`v7)t#LP-Tz<&Nl#^|x!e8Ofu|G&6R7sQPsVC_Ahy8k zIQdiHm%mKi-86e_Dr?>6_+$|A%qi4Wx^q8BQxf+0UNk@p9GL(ZSp_)2wZ_;qT#ySB zUVKc#9YKH>?C@5rc>nE8%WaUFvrkc@O-5RO`@NAOd!ZzbsQ%ZU%o{gs9Jz8IZ%ih} ztC?K!&jVZI0}4`%nh6S++#b6^E&JGOpzo~p7IW-d8F8>oN@NW-ugdhMyIhz|B()f? zNVe)N;}Kyn2%9rjY=wczp64m$9Nppz>Sy&i?`9wDisOJ_AAOFbCIb_!%9_pT+EKf?QBaa|uF5{5 zE23m!Cr)(jjsiUq0}I&Y7pj}nV!oBzXlZ|R}#17gujeOxIDC$hbvQMn0npFaKhnRFZN ztIj(GB)~$@V}8MR%)dq40d_z&>6|_UBifBH#tUTJB@XEp{KDkB1Zb)S5*J=M)YzmP zd6nZ`bZEXTJB%VJ1^25Luc|4+mPo4rr8>M}T8Y*?A<2mufiq1b9ps5)Fpn4NWi&w% zu7Q#3fg+ql^9R!aFtUcszJpKfe>Jb*<8cjX`iCeDVn4(a#juXJY&JjoP`KhyXOv3` z6X%HVl30*=-%;AAInlbD4J#OB$wv9y)cfJ@>%AcPPGD3|-Dw|syO`hFZ7v^|8c=Cc zZT6)&8Zyp;>j(dJDm%X=#jwLzWszBhs%C`Q%Ss&Ho%{E;Bd<4w`UW{d_Y$4~`+A1c zU+=qSDS$wZ&f$?@^NeD{_A<_gP$HBQ<ct|f<_K1&t@gL@ z*xEij!UJKBrrLUPy}o5fpA(L9S5~QI$Kaemrfsn>5uB3&ZjpCC`#A4$1&>1%11$)L z*>t}%?kqkY>&-Hvc&7sYKLMYt!u_`xJBW^vH_ZsyFjlvsCv%H>~f7Lo1s=y z;8m)+B>$sN6YBRnkyXOmf_6-DpPBSY>!1uyva&l9o;ohwG`$%Q)&50EUXpRYFzqRJ zA+k~a0slU> zH$csx7EfE!gfpfRXg8CkC0BOGf6WMbtF&Kc53JHh;4Czpu~Bnwc?&jJlouSown989 zYGmOn>Jlp>Z)wY$xRn{%Og-8M)^_m@|A`z(Sove8NHF!EeQ0cTgqyc9!4O3?!%QUg zm_n^5j%)GEQx)>Ou$+Su|+)JovDn&+UK$I(8jK!9}1S9TFKb^=&)# z>57EDcD-xUM8k1V6RR0NO@KTj46p7TEC4(zpQ?X}GbOQ3wuwlPNfG2J5{Ln+jYK|W_F^u^q% zvr$0^s@6y7@59?dqm;&xB5C_4^&$aAIIV?qXd_lvo}3+8`Cz6>%>^oz6ZHsIy=&)O z&$+lG)F+mX$;PH*JF%i@0{yV;<+ECYE7iU_wao55q~FcDH%#U%#awqT{7tn8+OYIz zs_jvOYfL|xgdZ{uX*@SS0>aFYly!Y-&bQ+dw2d%=QoD{_JE5uW_H)6uo}lc`W1YSZ znpy-o+DKpiFk`QpzKdBFA=^ei&2YJzj}qrnGD8XSoS(J)PIe%er4PSw==uL6zNB|AwjwJx_u1JDOueeMQ&!8mkRtf=L_$qcsS_ZE= zqwAZW=PV^nP?bWzHs-R2wpgGbaLBXA#&YR#z}In%tOQv-V+YJ8zk;-;$upvWo%79{ zHFZT)cBk!x9Po)>Q0KUPbN)oCpiR6E6`og`SG>CylYk^0u>naU!K%gHd0t)?mhX+q z_g4${BRCG7y~EPRQ%x4C#b$x)oE<2>eL6dGW6ay|Cg9*(e+qADEW}D!(SDuc)SqIa zGdsxruqp$ZPejBPRi%!AqF)syoRLfN6Tx8T@-wV?qv<2|pMGPlnZkNZyk0JWejxH* zlg*G(_2(}UE-T+ZF0Jw$SA*jq-c($nUhwu^jl%K9_H!CDOCOCXa}7JMR+Tx-)h~Lp z*SVK9dMH_6?2q<;#1UiMN+)+xADhOLIg(Pb>YGE=eTjJmL9!eo$)Ydn(m7!~2BVs2 zPrG$Wf!HwJlqXyYy^kg`1V3xp6r5EIr3?#MKpHtJ2Q~pX`5COD)R*6rsfQwjB7|(f zj#-JC>%RZd=4jQ+F72LUleg&3^#1= z0Dr3VSiaG&oZy4>WtN=qiYNLaLPHGI(JL@IZ>m-o$SZ#!`=?}IzB~V?zWhqtXLA90 zN=rLMC5L(Dn^xfosB8M5Bdt`eAc>+5Be{3)8g)Lhrbd6K5|N-3Znh-ssK=K5*)O*n zAqpnebU>Mo3;yo^9O|N5;O*zlSn3n+2E$~M9{>&1ShtQ$U(Uv=ohSv;%c7E(nc9Nq zx2FtFnhhFE&DXMAqdp%*t`eFyu}RRG1XRNX4SGp*G`_GnckMCV4+=@^F8Xm|yM8(X zB;b$55R&qghVar|J324oQ3M~_AmxtUY}sDEn zJ4g_V3W*POVz+;Anp^boeeJ4t2)AxOYe zsX|Rkx>lT*ZQqJ)#@e0eJJhj>9)2;(*&kpv7VTod&sZ`unFTX^Z86DTU3C;U7PA|+ zn{hP|ZQ-cM{>mfL*o$<6stQ+e0_+s6Y<-kU&@(>Ip^Q*o^6Da(_&nuTgbA8(OZ)O- z40R2|V#dVwdmX@K4)Y{qG4!zf8DY)JKiXHmXXKOdEYpF@I!1Pf8%P1cx1h9S`bea5 zMu{V0MZ$Pdgwd;$$PvSa#-H#al`8N%Vd-iIfAmJxAAE`(Feiek|oERHu9KJuEnNk>%G-_bqVkc9k^hIPQ4o*7e) zASKQ4vj-MNEQTyVwc`lnltsm-h#$uG0P!$}Ag6Mr|1EA~9>A%&XtJwL3!hB}5mOU|*ptg-tjikoH+9*|?9%&i>+<3D3Gtr!oHy@!@6)3<^$xDpQ5eW$RZ4D3r zlaf~l(Evue+T}BiuB0Vp6^4pKEAaI(h_ENow#(h!_K+d9Tt+gA+g(ruas)RD-#+XR z>7+hFWaGEdzG@?)jY`HQE+6@%Pm0$J43`x9GJ)*g_x|)|gN*x4g{j3tyk9-VXKjDw zoFbJ%45;hNWd$%S)#1AEhF!ba6}F7%gEt<#HUOFCS8DpUr~Gx$QW?(@D&SgkWlU%r zt?$+18e*Kb6K1*WmV153z!822&hCv+ML4F-VV3c%_n;j8OHGcAxj?4aN8y|^hC(0*bz``nq;6_M6b%~d} z3L5obOf8-*Z4`|p2gevy4yBWZ(dq5Zj;pdE7};(ZyB)I?rETQ(;$-S%e;2}c)_VcO z)Cg9(krzZgq7)&AxG?U1x!O?bz2kYSazN4-Z`!!U_CQ$Lb;imQ}sM5AMl8gEViecUh@f3cqG>If`vl50V_1 zCW-f;^fP~ovHmL-+>fLw<7=CCsOo+7AWyYB+Kge8F(WEjf_Q6_=1G(o%DjzAaXgd5 zhq1e)j*?+iP@Y5>`dXnez~aTr*T(^h z!W552@3ZOa%LXcgL8mSF!&v5yPP+y99Hs?cCAc&-XbEUG#Mfm?Y-!K-)a^F*+L!_F z9S$F&-SC9W?j(l#S?<5Wi7^wlUO3e(d&Ol#x1p<+c=Fg#Ln||9FSTsiiA?OET1Hf( zMCwD?#|SoD_W+~F?(_laT~IXuoV_QnUdip6vPV-S(9AJ)3y=AD|1^2K@-rl|Z0y%s zZ4a>zN~rC0^SCvbdN+J5t2>F{)d!UV2U`S5z6Hp6juS7iNdL2(;&qt_9ou4P;XRuN zv!pHn50D-M>ByvlHwTtks>4R?I+Ncsf|e3h{{tMN_`%9!OY%~W%HFv}^xEv&=0*lA z+sK3M2}P#s1oMx1L^A)9d1D*xXq(&RkGC6b2xo7xz8nZ4&5ww1sFUW238(+LsrwIQ zIZ$4(**v1w=oBB9XIKzJE^gVIK`D>e8dk?X*Y~@nftREc1eSGK}N2zW? zUxd&^j?4MW3TR2>M@Z_Xxmp`>=!)9?iV0B4*X)Fq%3Vl*NvKSj3$^v`g(#5PMlyTZ z*NvhUuwH0t+O6~R-pK1^4AQpto<*u~9{zJ)=-pTQDP}UmXyB?gc~rdE#>*TCg3F%W zt;+EU(Yq#O$Id8)mQ1m11;xy|Dkwa??68Tk+bjHo4Uw zuceO~F6z2?A*bM1HJ5%8VSYl_)gT<;MavN`ibWT`sp_S@j-jthyRn1t?JF--7MC%8 zvpOEj=gn9Wy1p!SGG^>h zN8rQr^2mG~Eiw*K<1o{L5UR<$ernhTI#ZB>kx!?Rg;*M#TIKl$$3bjXqfk2`?KNR-y@|hmmoGT5G#LR3-I61_IY1d*hXux7UPhcRhtxh4{;y~z~SjXtwYV_mj+$RsX^Jlw&2L_%n#Sb&cWGQkW@NI z**3Xlwbn;JlY+WE*g;!p0C5S163r8M3hj1UYcrH#AC6rbD0ElN0psv7zzSmlboRO+rT&#t`K4 zG^XIwhkD^D{n}Ku1W4J7FNzcb`?X5F_}-|u1EQx(;o^Nm4h~loyD`=<6r%T<@+6;z z>%#O|5YU@FxvBEv1JjsB*6(-Mz}H!Hm+edgj+v)$kXp0%{q&e5{?Te?jJZ6%p@g-M zMC^m(wOz$n*)HM!`|>mb7#O!KY!O9C7s}kupqgqQ zmEAX=y>1CW_E*D5k?KgnHqbRPWWR-xn51^JpP!B@ARFQMrKF|0s`v|4Wconl(&n#^+RL3}>B|lm9g64-NA93~qY=#`L z85(wD#t@=XQij;SZeLy5oKOXhZyWdb`HYBikZa&rqH>dR_s}FO6Q1_abeTm~nLUNa zKY)0B1#EGCobQN9_q)}S|xxKDcsxX`BerZ?*7ORp!qH+&2s?C9W4YZ|c|HilRqvC)K31Xhy`vYI(ZZO*2A zx2XC~U^DIO$gtz}0>W(8=5t>5^Wq%D$GqW)AhlcgEBQq+@!RZ9ZVUg{$Mm^^rY?4D zT=&fLJdKxltG6(8IgxQ{A=f>6i<`vsfg2F6P}Q)Q(cvymS*m0GE4HfnYaXMO@~7xI@Js0eQ+fg6my=P1$S{gOhB6C5VMbd8 zWzzF@+YPRiTHUnBh$c;Mt)B(+cPG8s-tPAr8>{j3BYDE(K3l|&loYDY=0fTuzmwmF zZ*q-R@KB14BV@cREmqd*yJn>(du@Wn=*1r8T)s2I!`Pam z_2ugh{~5c7ZddOiszv+Xe7+YYnpqU%&x30cjT-WY8rBav!8Ks{>-U-%a>C8Q3&%CQ zZjnZ3js{k}h0{%=9#y*DP$3luF0U=RivguEOabHGiZ`GH-oj`DLrn1^tRp)yU*~^m zb!4@xYAWZ18S}H7YibIY+zfF4J)(^`)D`;NbXXSANo~#07WHXq?4Kgeh<3|8jKCc> zJ`5%XXeI$@Q0ajdaxa1!R24l$kOXb|GB<|tkt6trBPQa@^E!@^7WIo`g`e1Byl-`7 z_@1^z^k()Au7a;xLfNWQzSZ|0gwF0f^1CV=RJAZxplO6N$wrJs@_Y6qw<=Ihz==!i zt|9>ZNGlGo7+#0f#w%gm?xfTqztk-ZEA|Kk*CPUJiz*3 zQ!-hj_3*jFJ25`bKG}e^s zWUun0IUjla-2x!auNct7n1pYLgI;04hjTmAwV7=iIX|_>lk-7jp3=omt~#juc38PW$y4{tJ`b!{#y4kPedTfUA&tReG2JKKLc{W(mce@Ad{kz5?dt9>>>9BrcxK!Bi!(FY(4H5rhYW&|xAghTliP-` zCnR;B(Vtw)?+e}B@cxuEsYGMWHzl%B0Np@}ABJi2wgA!aMTAm_|BpYK-f6?A*6b*z zr#at2JPV~(on>@Tk3N|N`cu1x9$;%mWBW>Et*(>X+iO6>FO4Ovi%`wWo|^+vGlUlh z&mZK)oMVVwH=fVzMu{UqWePoAW}*$Ix$tmx_BhDOk@#XZlt*xv0;fjNwKW_Os0nywGPTtM*Idi*I+#!ua8wXzt^Cwd&Y52VE?{1FA<_)|OS;xMdM(qXdI>2sdlcjOp50hmIlYzGii^b?&uHq)(z8 z9xUG{tWtBeH4@WKVFCf~i#DDYvW=#a_rVYs=(z6cr12UQ1tr%|YexO~t(o~t?EJhK znnIsdd3Clo7Pf31S;P;5Cxc+3+nb-jN>n=Cw2z2T>?Z}?%b%<>RhnFEsB07nR?vEx z&tUUg!k;4`7kHU!=7zu*8|}@Ox)(ej2Yy~ef&SttEkY7>om=sbE9584g?w2{m;Ey+ zPIjs=i|y^y*c)x`^REJ|mlB=YXuYW}$;*~)+VHZWFNMA`p6~?j-OaWMqTdbIPnSOa z1clhyz!)okW%fe^7{T2tuxQu6-0Di2x@3nIjXVR#KJO)&mW(1K+X&c)(B&F&KDCX# zQ&FQm+s{PWvOlPLwm9@Mh6=+-MiFaYq+V3r&d<&U)Ooc>-|1~8RU0q@;G+q?`f%n) zi1!^l8ML{ipC=|=IM#Az$~T|XJJgc{7bIxbNccH6P72^m19N`C=e)M1_pHL60qC`Z zKS3jE)MuJJZ^QL~p>6oWTEJuKU~xPZP9xSQk`pzOds!B3Bu~CI`HH;yeAxz^;MU3} zJ={HHs`6S#n?u+=TCR)JQ~tbzOP z*^06nDdRY9l2Z@Cm{wVBf3IQkj-JI+MD6Zg%jMS0aLZxGOpwhm{2uCT^%<)=7<)Bo z?IKst+{-pv69hGUck_C~1#61U0?=0oQSY}8RbqlP7f=6cmk6CLa+VVBF=7V2yr7>X zmDrr%Py@HH{~dJx_tRt-GWF|kJRA{H62>Fi-zM?W70)emH+4Q|(`5g+@Br(ne9y0q zY8~{)TxZrqwvhr}H9TEJ*F*`s=Zwcx^Q4Y;+6G1;wE7%;Uc`Y+S4$nOu60IDVE~|f z`#!40*#>Gn!fFOFc11?)D}1&0FgV)m21hL0(=Wa9_>FK9*-p~Tvtgg3Rt0<)D4{E* zBGbjs`FUA1#gf#nfEA%341YH&4&}DH2;vVd%xGU*UmpQz6E2Rm-#R+od3Mo#L0WKgTkghGP28@9^{Z3kNZ|Dx=nN`UPX(5{f6`do_>^* zJjnrk(6(gqWe33Uxk{nT)zl|Dpl-|&ST0vg?UD8Z9QAZn)@Kiw6SEXXkF`U$eNa7h zJo)*TWy>{TAQO$ZeO=bq6KzS25(lq=%*P0WjrOM%^S`_){9O3iw)jn>MUG=5SK)41 zJ_ES&fbe7rPKqLG2Do2oAI=rXHsvA z6V2?T-!Kg6$4bhf(XFT{61Myr1dn*s?25Vh(Gg&0^46dAn&{kV#~Z+KRKLAt`!}2Q zk7{})LR^cGekoUS)~UBBl-G;`J*Bu#zeQld2R?afbxenzw};FyDzi$UA~#GN$$7`2 zE|~JlaA8I`C-3i@#zuA=bghqLeP(3d7_gpy%SMc!^i7`fvZbHgN%_>!`yv}l`~CE- z^Is)#IFgG=RUtBvIC1^%lhN0RHT`;{~ zC6S*>MJQ0%hVOCn1$dF{hWnVNb!$B(OW_fB_3DCaslgkZBMiaqzp=TDHn9V=4l@b3 zn>(5|-hJ|7a#+6SibIf#uwp(xO$4Bop#OsGEmS>R^ee&869jLdnPh!>Y2*9!(B@6m zuh`=IXz+SyY}sB89o>O32UdS-H>C*^`WBTsTuHRzC6-Pua!F|^+5hn#YeA42E**t4fMjE<4n$}rvN?>uoDGk8x_CUGY>FNNldz)J54-F3r%c_x$7Do=v}>Iw)P}`u*T~P*{=)gPjCNkuTfGwmOf1`RTYXt?K#}Uv*4x zME4zc|3e?_eR*`lb}GuNVuZ;8Zw`M-EEe4A@rPt%iC$J~-D7YAB+c6C;^(lYe!h$y z*Lyn-J3B8clUptD*)bpCKG&4sJT;`7f4*~1>GKS5v{m)^wc(WkoQ5dg`^ux(J_2Fe zhlAh6({I8o<_|2LyYLTRF1IxsH(UPObtDy|!KDpBwo6FGgNswOfDV^ezY*gK`1$K9 zu`)#*@x@l!=|D@2jcRWfg}?96@+@2;_x-!^)2n3$rh6uo*T=;h8_%pYt4xQ7-yPpL zI>&}IxqeG!V3f+MF&?UE?V5UuwNH3TlE(0EeE1Wmzi=KOE9qPY+ZMm!|*vpEM<{-7Btp3sU8Y>+*_Uo5W8&MfX3fqvG z$u4k`=GR7f)i_hND*xHJ%xm_Q+iSRsXDCg^S!tgL)#u*-hEV7hfxD)qKOE z^2e^QfB6+GueW?NbatHu2srFsFC>;j))lsh#*oskqW4D%{rTFZ+C;sY@dA) zvWoUV`rw(7C*oBtj< zovIBb0KrrGTyAU{QtJt7E%}y$rBzhdkRLcczy@~O81>re58nFq>#H4;3DP$HiU4VF zDSAP}Asvv~wj1NkjhS*_3YG~4VQ+tMNXh81yT3@Y_XyiM$Ay@w)a-n!dBc!>qn+7k1@| zTYJb5>41{E&Hs7BmfV^Lj~why--~Om`ai&}_5Jf9zuhyWW=@288<8Q@akX5bOu?|$ z1k@@r#gbjzCY~lrE=cc8BUSP9KV#t7*zUiY&1A)F!N{ijcK;N2{tvDLZkkr1&I|*L z7DPgHFk?^rlT8qiv?XUotw<36#%vWA1}&|_oZ4=0S6%i<$hESzAPpgN%5FWvPF_qs zj{aw4IT1_IrX$1ilc$YEFtX9UIGA-gTCdL<8{B9b3(=0|P6CQ4lfv5oYosXM=On~F zGC%rQxH8(!Hs_QHx;& zo|DKI11znC%mV|mWGjbZ0*6f?|VEHtBu$I#rN{}8g7lcT-40j$#OlM+}J3B;foLj%2?Kuu9>P2j5NBO4Ifb;xaT4D452opn}bt!5M;4w$Hs#3D@BxF5-r zcj7gI{;5xo*FaFr3*3FJlRJku0X2Ld0)92(ymgs8O6wuQdqL z7bt0!ZN2fmMz2pHBYFoKqvZ!Mw#ZOhg*@%tcT=psKY#t|b2utnp1^iwW~$R1-(FvK zKT+6@j+r(vSE0Q&eLf>Bv>VZ|y$U-(MqC$k)V+_E47^W!VYTusg`v^N5j3Y-$CtP+ z#_^x)G@QClFKM(-#45UC@(AtTzLHxK?gEb1M~gk;BO`7RHSqhG^!R11uRjq2y82_t zZxqO{RFV^w1IjS67DTN=OH3yjz%TpLyDRn5x>>kr^uuzo!lblU4huIm1tshG`fp9K zn(f?#TCzell0ek>-GIYEr4SqH`eH{ehh-uizJ_gW#NcR3l?#-Oi^IEn-PZfaK12&4 z&WYNn9W>F;$x|U%$GpaV%FHB9I1D@PTfkEykWFRX014pMSmgBcx(1PmGSqP&O&fWr z<5%{iPpcTEP&`xg`CZYfOeuKvMN%Q78{y$ck@JGW72ClB(x`Yo<<~%H0Hvs{P-GEx zsRaOmnq!agKdgU%2Dy`lsnn_;&4dRl#qABBo&KwaFOC*oisU{hNi_A>bcRi=9_nQq zI}NhTGNt?MC7M#*j?zZ?vwnT|ep7$uC{ zJtMOn`i-`i$OmN#6;Kkx#Gg1S$X&7o(gWPJ`L5R?8=6u)5(VGi+-3y%U35IGcQn}^ zF(%v}97e>hv+8F>@|nLp%LI<{FZ<^Qf!aUJAg=(%ORb}(l={R`QScpQ?y1QZnEDgI zka;JNdo`+-FJ0sd!!gxAHY)8lOG-DL#KeGtW>pb3`e%{}D58K(pS{gVSXn{n~WBmrNbP_c- zzYOz5?m!#GoL-&3Z7}5?#%Z6l+2WCe@Y>SLG8uF~IIzl~Y_iB*_`%9m3n(A12yyG_ z)!NlC{j5BdFQCJ9#Kbr_a2X)wMv=GMxV@3zg>O*i?mVy7>$`6T05SUNuoW2D;#9+= zPFgqd;$(9-S`PDbd`1}1e!`ERYdv<=XEGq3kgaDVaSD?HmtaiUfZ8dnaOLB7RsOl2 z7eh7Nr=)XA|L1ctue5i$n_XnD9wFk=La$}zTH)dWN_&6j>}7#!z@@6(EkCh2Wk1%m z=}k<7gre~~)2jpz?vyf*d5ttFkh*{dLMC_YK1IxOcST7pf1t^5gDJx1hkMKaW9lvA zqFlf4VM0J!328VgA&nr?pdv~LNap|}0@8!j&<#gW5RfiWLKtF{9%^7jlol8|W9^KjuIWg99@U3~?iFc}LrI1U1<9K#5JS=0*kM+kyoM%yBQOQZ8C5_aGF z`ujICjIOUO!oi-~@~kd|6m&FT-LQtHD60?{`zqlCSLJwNAAuR}RunxQhC*KpBFY+Y znr!Ebwt^2~V>Y80Ri9UeGV^ULZrsyJG8A;MDS0!Yh<4g-5a1niJ^m>YVE1!7q;D5O z+@j1SfM>O&Hh>E3y$EFlSqeemccma`3PE$x6XXk=B{(n|5UKKDWLJi8S#& z&%XfnU;wC)exI+a^WLxjRXRvv%RLyY1O7@NwND%Gq$6Z`YAP94l>9j}x?D>jzLhQp zKkxbkawf4BwX}aGUbVG;waVljm~k#~{&nwXS@tk%ADB5$J&qDl81UWdQw$+?DZ8G{ z%0)mw22fvOlhy{1J(+=G9Buji2xO2|n^p7^O;(mhdvm24@R$F@X&}^M@NQ$|jh+5C zm!c{PezBQO*OX&%T4zSGGKPkJ|K`dg7FWw{REoP#3Vp zq6^F^*8DuM8=r(iX1B!`k3w0DYdXzj$7|;Yjy{W2ji)ls< zbB;4^G1nKaibmd)qilV-h1-11V;#uQt5>RT`;Lklh|FnMH1#>wg*7h)^7dOBs)~4I z#Mr_(i);+0+p0$zK$GTygZ2I%l=QF@{C6sHwsBe0!4=p3Xw6yv@kaP)Uyou_(Wh%% zF^zcMweWS!S#lhN<8!}vlJTmIl%>>^fMqxa#;QEoGR*wePKDSVf-=jDsBHiEt=Ec} z0}qD5Ce<^%p0?iBR6|fDjmxX`v6)i!+J9ziO3(=KPHk>jK2%xsTc`iFml#8U1} z;Jl8e^c+x=G40NCLjS~kq(67P%RYTZe->OVrasUsp?IRp7kKu*bkYC{-jdu?I#Q)c^*Od=>UZY~s*_FJ8? zo_@dL&d>yg33?0dE7ifR8!C}n`YWlfKjt&Tz=hBUTD|*~Rb?T`GrmhlapCSsToJZg zL}d{rsGE+j{>y^wcO!!^^91H7O5FNKAN+FwHuU@0n{&NVaIC>GaE4a`X_%uTOc=t3 zV1&6kWMVUu^xry-7DC+);hJ?Xg1-0(`r8@T#F5~%0L)rAm*%`a7E zT`voT9ru9JFc1Fx(Z_k!=70KOGG#Fklh%7%nV`7xjpPL2B?6Htl`NKT?fN5{KlV_c z3R#i{lu|BUY+*0t~sW7y_mJJiJKN(_Ydy zCvD_FKylo6(G|$X`4FhvhCJwb(0-{L4G_PZd#gC(?Pk1u~&1iD-=0j9(;XI>0vyky47 zprjy^=1TchEGJjtM)FeSs33}#%f6U9Yil6H4c=8}iqA_YUeLtgWeAV)EWf<(3r|$D z#Gvq<7Rn{uXKZELSt~tvpnHe)b-`>Q?vH_Y3~U_x(O=pxG4>b6^U?^KYhe=sBU4FR zGAsP~aQ-hBr)mr?SLy?_#cFx2n;ULY69N=qs!7~PZ0oY+C{>$)j&5bB=YQ1i^IT;` zdx=i_HfYHzUgoA4>Mnf5zxJw?BnEFlYGATWqbT(9WW6%9d28_M#dIB%j+^B14G!AVS!<~gpGA;`@3 zEyt*J+0OE2C?4ZIh<7oYKq$VT+JhwViV`jwlC}h}O5A^UB5(01+3B*tCxG(_C5n2J z9W1~EM$J{Aj*+@Z*DSlsS2C4t$elkU5F1~+q!qjdIKadfE8@PC|g@G z?hVi}D;Bj7QlrvCE1C|fh;<}YU)%JSHt>j5N=AF;3}cr*>V_MNcF$Z6z@tqsj#&ex z;QLf##3z{GdD*}h@4A>B#Q6I@UF+bqfP*L6>_f*k-5dTce3MpiqKm=RhWPZanD;-^ zGvyNK%t|cKOWXamHIt0^j8H~5A+0yox~5^PF5MR9lcTi0V&$DjpHl~ zAb{-^LUoZ@t0JtgL(X+tUk1DpISC$9XwxE10Ftcnn3b{m$NEcz8ZNMUxFT8O$NQA4 zvUJ6cGJERns6?*T+4QypFR|Kp;g4-;im z64ckqUOt@_N{`N}=!-C1Cs<#SLGxq?vUw%&^v@q=Sz6DnfsBk8<1OzL`Jo1F0lfYa zaK*;Cjnv_(Aso+9p1sM9e zA`R!B#F-fF#g<>aX_XI*RU>cKm0oZcSRE2UkO0{;Nh9j-91v zI&AlPjRI+n>S*PgxYxd&c#ug^)!(QGuT7W{yuTu;-jz$1D^IG-8@-~pWjVv=k&WPD z^xLvDn>w&ABjzt_Tu7F?x?60;cnL62n8u8)KL<3v)ykK~NxJhQ3Fa6@V!G_Ex%LvJ z($y#8IMY(fykWT$;CJ3L5N5bR($nr|%HtFJ6qCIn!ki7fI?O)TCRr92YthDVr;?-2 zT>v%mWR;pp`r72il%xy-G;ItWfP`hW##>%1l4jLJ6ayUC)Z7+kZU@2j6f+JhRG}g# z*8#gsU$gCNH^E=O`n-}Ate&I7T>Y3?ut0x5IXf8PU{ljHrS4SwpFDNNpZWM#U>d>fQ39cJeJCI%_RU;|4xih3S%egzd&08Q^kK9PJ15f9ZkH}3e(;m~uVn1IZ)eSOH#7uTq%_U) z;3dv}xa7tp<0?x2@;(BEnlNkdAt`^GK}fbe6o~z;W9lvilvb@7`fS+ zt0xUQD5rT-gsg7cby<=|=;NbAl0e#xuvv+;pNV$v5i*!sNo5!A7AlUL-B!e-ZB^ja zu-|{hmfV)dIQfsnYrTF{j)_L0^C*qTZi{B(g7HUxzf|Uyot4d9#oDF(?f>7vrtk4N znI|J+574XYb*PKgK4CI}yd@C!U$FB)P6OX7ibvD62zvwoV83@cz@{6|#{OsiHj!@C zpCJYHOB>?-d>mmTuK1xTp^0JyUA_=x(-6FXYfHd#MGTwLomf;XklCaUB{-8CV`a*E z3-A9nubrxGDl}*%kkI6%ep)W|Be6D-?64B#W{1}3LWQ3abrrUPK5MUAp^_=E{dt~e zE#RMrzkdr$P!!{@OG(iS@(nx{^Ae?3q((qRT|!+MH*x#k^&CaG5h~*dtBrz+4M}fo zqTMV-0G_rmcx4nf@o$w0AX#yoA;xW56E8)@i7?s0jrKMg`t!|v-Bx;Dr>lM~QeGl_ z3ZO;J4g^3h&7Xk|AqYlft<)#F9Al+?LWJvQIeOqQP?E~X$#$!`1GIY$(6kRv6Ba5V8lgG@9DOO8xNN*jN9%^G400&{q0wEo<&jv z)|>k`uG{6tq@}75J?g@~pZ`nNR29N|kPHW$TRn@95fVCRCJR7@FGW$s#N9~X0SI$2 zl(_oa0wxwk(2mTFPo+P&VvQHRoW2mmFukViP5>-;VtDX)a^cP-xbE*jzRk~+*mv=W zI>LPz0wyc|1Ea6TOTZac1D)3EX{N#X$#oO*#y*RK*nrRCebxT|)UaH(S_1+Gf%6@< z3N6yi(8l2W#~}NEPzC@KleWC9ut;sD$t9LC*&3e>o8OW(HED}6!7~COQQW)p9}Ooi zMpMSyEdK~{|23eCzBtm)RjG}JX~M|uq1;7t84{csL*Ufzg8s~Po{&}`qZa}Xt@q&f z1;A3G3a~B$j^1}_3c$tJ89?hXa&Wa#(?F2TMyevId{T0~dQg8V{{cTSc!S>+tDj3t>=Mc+@Aa>`%r2Y6nK%fj9jbl z=coKl!S?+5CeMA`->6U^Y-r0Oda;{*J~VV~oNM8(g~2-_oY4m&IjGozd}{ITV5%AO z@jD|Qx7LS&xI+$B2b!IUJ~DSzcji!{wMk^PL3aplqvS}nY8)R`4!o}VHv_Lql;= zZBgput_R6urv@GoZA9r)r)3I>B+nTdOLLpO15Zi2wA(9Zu9j9$@2a zXRTLq0pG$=fLv7LF$V57dw?C6W-Hb9<Ds#q7H zpJG+4@&C`zu8;Uu2dIT?_^^=+CR8MVaxKcl=!j1M=M2*VZMp2onzAt}AHi$7rGCZy zHO3FHa{FwiiPa}HF}I%(6<#ts$wbWQ!`MjW`!+f-HNSS3oHv+Rz2zX^l!`D7fBH6rXxKhtQhh=nl>>kNtlddQWnG<(N<@L;qE283QNm)zFYIP9!@bM@ouP zDXrhPx7z%Pd3hM5M(mjqaSV=ljEv9zLo3w*THpzU`Nx+!jD?NX?1iMYlkzG}AQ^XV z@IDpc%EElxH}{;xS^utu<~ucC7d;4y#SY9s^S}D# z7wk-nf4z98r=7}_<$l-uM*<3deQ@I9OE&oqmqu+{TC+wYpZU!UJ#;r>RvHvCqe;!I@V6UIzi%Iu|$huhn*03IdvS zSfNu*8V;Q0LaOblr(O}yJm%BOnoE!{2aj~7HjbG6zRNOvrTem2+wJs-zg;nJIqZ*u zvQWqR+iNX*)&P6tO2X`h=bj*>w#I({j)PGu(^h6>_&uz*5%B&Z>|XOF`7`QzQ2{pm z1n&k$$he+yPf2J^^kJYtyp-`+5qcHuYG{_)W`HZt=U1=-3Ws-Zmld%yN5flWqMcPz z7xR}A%R@2H?D^>UEwqTuA%E0id^Ikfr*Aji`i~D`)Zt0gbdn-Nu|mc>VZt{X)d_~W zxk-sM>BCB`TMt*!vuQ+5TaTw5t zGJlZT%)H;eA3E#DT7+8+on;-o@Z7=$ti<1E)_k#?{`6C9Ob0*n=dr|$G$7OE^GSkOt3jx1CWt;7nk;MdF(L=D?UGL|1z~5!< z(K|$7RfwRAsP%_kkiz@C7cI17XmOi>L!P8LSuOw7?m&J_1^KZ7)RkRAtjEeZ)-3;R z0=t>2Y!@p5%-ZMktNdHC9R)Z{f`>8}QkG$zDaS&X%RxABwB5nQB}u7iZj#_~pC5yw zR5iPU8kj~UVC<~c>dRX=V#GYI%9euBRG?802dR=9!6+>pCG5`pCG2DpkY@o1fUrea zMi6K!Z_NjtJV4?B6|Y7krQ&a^cw?cqpJ!)?4inI+38^XG?fsG$;V_)|-~#MZ>8!Dt z##}vAF_+vE52ajP2g(L*cL&wJTM3yHnkSq6yX|sj z(kPNn+@&XEd47g*T7ZZNriatQRL6o^&QZyAncxnB{|P@gVRT|>_x7y89~L=)=GLTF zPh{fEho!*K3~eKH=grn8nD``RETEZ?7**&FX5DZ1Tshov$7J|`uE6?M^ZZ#iIaBSR zF0@@Y>sQ`mZ*d{2BGir1(00XpE5%^)aEPHdJIwB<<*&lGnM?ogI6>-t9WWzGX`r>q zGDBk`58RBA-h@-0XS@qwitW<(KtTJYV8HC~v+p@VrXaamen{hTZlqRDO_(zSXyM9V zim~BX%RLlnA&bG^?DJu})on!;fKSbAxv-KYPjDXU`rS=va|VCdkP!McApaU(;i;Hd z9W$z^*0y23K)Pn$mB$yHnD)Ram!Qd{EX}gWzvY8O+QP_-Y``W9!xgvy<_mcd{yNm; zbC9E(8$KvJZuL>Wm%VvTn9|S?3m(iIJnrdvqC76}T8dD6ary$b-jFT=XbD$^(JGSP zeX_4-9fR50{%T-ilt5p#W`<-5_A1$|4A$GcTHk6nE{tO*T$yRuo$t-MZMg)$;YeTU z7aKlZW8a6?AAF{R>g3EapX)W-Ujcp5-d%95lKz@3XN0r_cIqrv*Qdx50vzwxUHlga zw)6Jdz8Q@rl=0<0FVNdqAw1_gsJov5pc{I(wnPfMtkZtc+N?nTMYxe#@xsWcgtt(? zRDYe%$S$kb#&Yb(K<{EqoQ2UhxUdBIYhrOYh0BZ7u=IGS{4;)kR80GT_R!Eh-zs>Km2zE{O6q8w%A3FD3lZZq;uIJW37NG}|~}+>6QS3f!FX z>_5u!4B5=yjYqpyH4lG;aRwJB4jT>5L-Yb=yg=Q$>&})N%F><>v%9=p+&G;_2_e@Q z*YuAZd_94@ZvE<&9CwH1-P;&=>cBl&uOnWq8$=VMaBI1c4+!5EGl3v`Mu0aKrtxPrU%fe?2wKUF(5C z&_k9)JpFoJBb^rV5|0ZEYb11in_X@D(K5O_B6aSLBJn|ubO4zm6N)HP<3aL=Z>9oz z+g8;X!pMnsq_7?CB<|U&?Rfuzzc`OiQ2-_te`l@Rqprt1qYgzvVZ*&IeYg?Qfby4` zqLN98D<8p8Q}k6IAA1>_=kS;UK61K(b}=@G%g)5;Jofwk+f0@DQ=>@&k8CFWZE|U~jSdXMt*c1)_q`FO)Csz(rLe1 zZ#%&vXW_=WmRcelQ+zdcP65BZ@Cr7W@oB%P&nGA1F<#ETlBnKq{*G@}MS(hN{0@#v z#PM?8wUy*&({7@kyC&NcAK;zHyo;d913B$fTQpU6B!`XLi5)#+MTwEU3kj>u10~}fD z`m6hB#i@z-0&EfJy)5Ee9Q#AT)xKNQi{;-8m?}f*ny!P#fJArVe5y<=6j@P3`V--S z8w!0{MTcS4gqNZbJFO5m#}RXO`on6oqNuxFP}a;1rscc%vZlvk4{F^oQ<{A43VKicGc*j=Q1|#xPD>x=DYTFS5 zVH^TSAI=-!SnWy9U7 z54UEN*Oo#?R)fr{_~ah1D8(HqkY0L+v174wTmxYg{1-#!G0~ki zdE06jow7?*2G8kfj#$N!<;PuZnEmZ@;k_)WE-g7!{M3AGADGego2>Mh zHrZ31j#jNUsWXKzLLwM%37Peu!^GvOW(5$tnbHw=ttNf@G93(pg=KbV)m6;c--5~y zA#9iFPG$@}xHnV2pn=fVZNEK68dKc$j|!dERI;^6u@borTjk}}_PPnyMLK0&Jk`fjT;`^p2@&COu8R4DDDzCu}0`4e7fP zV>UBU6W{KRBQ~Ra+s_xfrJ{>*;p2$y9*k;!_uJQAc|s|SlhFOa=2mbbvf9+T#_Fzh zWP!8!qH+{11KESJxkWa3<@VoA$V8b|)Rk_w`P%*CzBe#8M=47T4otJR$MzA-z;)B& z6@qk#0ieu9tSO&8y00J}t|dst@zrA)=C7FF=;F}X+6aZ*Cwt}Buj83C$XmBg1at1?J_z5Q)D;!_uj9LY)lI&mf{cRqm;VK%}y_x&H8g6le zym8Cx{-YCKMOyLK!8vx>!6lPtuLkVig8P?V`?5Rra11{L_cRYGu3FAl)ja%kD|VCB zr?2l~bT!Ds)g49NjimGRsO)Q&+`<7@1B&;Rf6*k@ z@z2-18n&;Vk)`(cC*4_&iTyCPgRx%O>VTvTH$9R-B+Yw}q8!Y%+ia=BP&P#oKjJyQM zwRXj=86vJjfqd#OAC(oU`tu|ZCC-7LCeKt<)9xoZLCrrB>+vF!26h(5cDmC_rBSLu zu6j+*V-3GAK8~K8vQv4Ir-A{iIByHH)*j($(+$Qc$WLMGpnaChGuF8s=U?x!&mp>- zuuH~&ikQvWzFRErTThd4bs%|R_igmQBCQU;#9{=KwL&Ln2pH$b$4lUzv%|A15#CGGrg+#%P zqXBBzj`~a8FuFw>U97lrqm-S~Z~yd|0EF=K5D-Y{xjFW-_T(*BQn`OAz;m^hEo&oQ z+S>%+DkL4f9lSM~eU5K&Mj*B_V7vRRKH9BkvLdu)KM}gIdT!MpZsEFdIiHJqD?gJb zv^iuom$q}mZ+Wprf3Hk)RCuMsCBqAWzbOf`;8a!3L;-G;RPb+8$*mcQwWZF0<|xhC z0O621d!mp)Y`jN*_;@@dVwhIc*>&?5Z#~lnQh_R z29skeOcAv;swOs$4z8=r`u7e%aOeH;R}E3l*+tT%;ccF(+XCF2@@=F3W_1}D z8Db7HP??%~fl^*LX8_s)({Q)zC)bRyrPh%tBTuj;-rP;EV((8*K--0pwbW;Hl={_c zxgUdc^_rZ<`c+0&jrLMZx?${#D{?f!R7>5LhB|gE_s^=Dab&WPmc{NasdDa!1NUSP zxIu%FM6|ey1s4F2-nb_qz*7P^Ttm?$6@2B*Mki%L`_y{j$XheC6aYK6?)j%E?&d_<5iQ;@4GhSi5~w%M z?N(O7ARz2x+=pFZ1=vdWJmWSN7_M%Be4pbjv z1Ct@4Se{T8r2v_&0n+V{U+6labh#`j-iBk|rcU?u;Wf$JPY!{OgTvt}9qOMwe?67j z;7M&h##(LSGpvuOL@+`woI8 zGO2zDUu|DvW;5YcD4AHAgZZ@6V5z+Wo;8q(E}`y&z3ox2$KlhP{bOdzpO`u(-;>h2 z9i@?1czxp>w?%fY8RfV|P&`PxFZW&irCZnGU_nU(iLjVipEYv|&Q%0XJojf$ZJP@d zeD2#kv(&fWC5)tLgt|=_{#?78tnFY^F(o8B?VFIp{oNvHVQ%i*{k4RIC+5VJV!Osz z?nsrynwJ?yJcOKd#}OOqElb{sqmz~Vmf91Cyri`i!*h<@c9K`yrX2|DcV3}IKnC|@ z%P`c4fcv!G%-p|yW_eJoaMr(^r~UsTK08VP|3;xa&d)BR?l??P z(>lr%luhvz4TLIE;HlrlZ$Viqnf9fG&j#M*Qxb>88!nl~dQF$)w?^z|YughSH0oXU zORtV%Ju(9nb5DyM{UEQwL-DG6ztU{i{0eHxR1|?X62I7iNyPhodW86qi z@DYtj+ed}+#i18!+e!l&>rWezxzR@Od`Rv63s9xR^ShA|cb}-)L(g37a@3{A_p4w5 z5Sk`xr{cEM*=Vt?IjG9ozJE@M)jFpLhFNy(ux>O*uu5kXqc|mnzll2n=uI4A*>s5~ zBB5O-KJ6*|eUHUi_cz@bWfkz04;o~)`13+Ba`cb!g0dueHACWg(R_z;yT(<5vF;Ic zJzrez)F(WcT{D_zFpW(4V^|PY{HkEJn16ow6}|sNysPac6C3Rx#)awQ%8WatYM=MQ zHkSgLP0-qmEyMpqm(qnC-Q$wm)mFiUxWmUCptWRNj9-Y06R-jO#92;-tfx#JOKp!< zN`K@ev4AY7qJr!ZTDyG&f}C}VAMm!Uhsjb(rz(u@bJ)T74V zW8@pGI<>DmQ3r@K$;lAATS8ezl`e9*-N}T!1$Api+9hq)de1)&Jkb9@=h1SqIfrag zplu#5eUe!moZCP3eq#~twWL8#?wd*qG=JZD1>kA4U626k0Oy#di zT5JjLZ}-!$h?(|`R=705O$V1o1Daz5{1UZb3?nubi9zB^6q2$OxRLFh$E)D5>SE$p zSY*x*S~E_+=M#dz?upf*pe5%RH=NFmQ}*o)(bWWH&Zr^SB{!ahPHgk{~CyE1X7z<5sSI#b7LK50LIq?%=D4>rNjJB+L;)!{0n<#(zjeSCy?H3$WipJ|=rnZP)?^iAh{P2r9<_G&(EgZImgGV^Jfvrpn1wIdNJ0 zgD^nSINDD9)}HX2Lj;DXj%+1o)l15+W%@G(HcDD6mXLE;uQl#4-;oBAgj52| z9jd{}bEC=Xix+)I<1HikdWC+s3IA?K7-um`0Ti!4bgri7l2dT;pz=T{efGSv0<9rS z>WQpdxv|%M;gj~*l6E>3?)VR8?@LDqBa8&p_TJj|1qAqRyY_x5>$GCGETX1K9n3ST zHNP{1!hsi)RTK$pq+=n_ngocqQPc-GSJP!>0k8Y^qcO<3= zB?cFx4Kd2U)xs{n)eoT0qco@=4vjua)H3ORz_X7gnfhtTwkP7erCxV(k{_2Sz(}>1 z@!73edN6$oEU$Wl3NhVZsq=3(aos&(!SiOv1Yy2t4ar&X7mPr;H`slM_5s^BfL(z4 zdJ#l5W2H8;;)z#2Ov6HcM*olfEl46F_{;V8HDsw+a8~tpW8!6K2F1JBIt!;y9}a`z zOW%{X=j+UiD)!sMw&`f500^Yv6qR9~F%P)yT`mWg@M8OdonX=+{hiNd-8wS&rvB9V z{D)%Z+!9rp-Wn#Ubnp1XVJ%bz;4~$Nv3}i@1Zz*DY}zWn;p2sug6+}?UJig>9MG>_ zDRa{3w&>zBx#^>+v$BG|za|W}Chgx#HZHM<__#&GIc{$;Drg#>C*y9E^8qgGr9bni z&MNn%cgt(f$((taiAR0( zhpL=@w5kMr$P>mOhG}!;X}y~x?mOtJ*gt)|#%1dKe;J`_i?^u-Re&aB1PfvRwmlGv zSsDl>*jRzlqxkmQ^`ur3YY%I6(H@6<1}0d+*vc3>nzP_xxt zD|GjG&MBtIsbMy?EW;1Mi5I+`pL=c}GF#1U4hbuKk}jct+Jd;%;xpEt_j}Kc%=;td^NF@BCgJ`hhARq>deG~pH>hcIr;qCeX+KeOL31!r`;_* z3r5-I-*E5uoi$OG>)E2oW&(KOt`6h=;ax6Qaq(T_JgLdmY&LcCbwCGX=Z~y4+dX8- zV{qS7Q$z`$siFj-$=osefTHCeulxMoC5j6xnr!Rg+5W!7$1uu`s3@Tp8`a5%O9Te1 zFej5Op~Y4e;fx^4;~Kxx31!xh^V>!~&Yu0fXJxe!)^PbGCdW{zT{EK)MNEgjE=!@? z<_O=Od&Z;Fmb_K#pL=SpzgQmpBAP``3ONP{88kpYD=i{oqBGZ@hH}cAmQ}UxKvN~{DR}a0G?-0n z1VhT#XJWr*#m!j&J?f{GyGnL=P_p8i96gPxt{5x`u2p1lk3~kcQ)Mtdu&bZHq0V^9RV-X0bc(5W5RW zh_MG9=0|ev%`o5P_FpRkp#4D&+8?7klv?-e1FR*kgnoJb@Cc#@(B=avcK_&3fb&mm znBCaLujFwZYPJE%RIHseE-s->055o$DxbF>_W>>j*lMR?Om7)oSvAUhgSJVjML6XynRL+6g~0{Y=?Z({+%m05nPl<+|28K?=`U0A^Kj*A1`B2Gk+iYF`paWY}# zdOUnXM1WP_a4mtVo!K<@-4N3PJ|J!`rT_c~Gn_Tk>oPxAN>3lWj%=r4*$P` zMn8O!eX$6X+yZMoA0Kd#v7ip~PwwCa zod)wLQi(jno-xyZ0*E%EEL2(erCMj!&tCu-TN;`G&rAgKYNg#;v2&1qowGoa+|W+{ z=DzQua28zhmTVw^7S7jLRLuCxGmmc6j;8q`%4f4>+szxExBz}g2x~`7C;paYG=?-_ z>_7Df`~DWy;j?AlL9+g|62xlPboeV}yvwh3`nG16=W_dVTeje@x2|ivq|WEXE_9HN zBX+kg{lSB@;y%U?mSc0rbmDKqD6N|7>sfTrtC^WKAqF6R<3C?KFAua_#VknLdTZU# z?Q!}h#2JwQTmpzwyoPDG_13FuZnbSXxaW<@aUF~XA%49}UAy$;E>paxSE?u7$O$Ay z)S|pQho%Z?#kSfsKP7u}WD6q;h%#RVJsLx{fRfvMI?EF#09BcyNjUKD588JZ!!T~i zDiT{a*Tac*&_lEp8h#*|ubX1sVRptaeC`rsH8b%m9zeb8DSt`># zDaK6oBJJ`V^fW!14NfA4UPn@(K#!w4FHdOHB4}oAj(Ln)rk!5;(C`8V-pcvy;G-!} z7FoL1!(_6m2lsO$KO$Lj=}(B^YnD@JCDH+$AVj|eQO(q0@!nv>H@h#j1fe8hE%x0xpL*fj>YF>M zMX(Q(XGK7#>msl(h zNc9uA0ZXP?+8iiEk-QjO0*Ve!_ubvr=>rI~on(p|B|&*qIlVz2Ef(=kg6Du~;B{|5 zSg|Ufu;a#^rp$k&FH;7B-C~b?x%n9trVdm?QK;20e;i#gQD{9 z8zLADQ}HxQ2n$M`QjRo8mWbNoL4ED6?es=~L*OeB0n(&*b-x%*{7-gQ^omIhL9q}X?3ATAX{=@#q8zm$2nM6RnM ziDaV0o}8Z7P6k;lOY(k;;n!eOR|fmAME_(09ZvTsxf`f(eeD|{u|6>`dB6k2WM;P* z0bFDWB9j^LDY~5RsGSs0YP3M9S#RNcFmEB=sxwb#8hSLa@M@~xxAEdOK)%nSwfw50 zmfFDk@NoSWL=pOw8&KIiVsy%mnFASUF@YABp3-k2dSMt%D*o=_<iMMDGaPO8ucP>%hcy{|jJVQ#(KG zZ@SlHR8Jgk9uF)SR)}G4!@(YB0i4Mb2)6Q83z^lWJZ98CStH#B6(ayk%S4Om&xoZ# z&$&&JwRPKJZU@#;VyYbz67#MYX-&3IjR>8CWAKmg3QExf!EgyAIz>_$8iMLph*F|^ zjF(@=1ZWd}_5W1Saj%Lekm;vI6~pOq3!~q}(BaoZ;yelbB%g5hq`zKDjoym5D)^od zMqt$~3g*$lr1)JK-qf#9T;{%|XpNFE6&*xl@KJ6VIp@*9Fi)R0hROQ9iC z_CHJ08wb&1s{Gj(TAAu^-$Oy5KHJ{^P)|?S)&Q8)qnWOPluWN{@$DaBSA!>qjc&%y ztq=I^v&2Tf%vW59mGoXH@dv|gL8dWevJ5B*y`xud2Wdd7Od5{-+9LT)mz;NDX)<)trJ`MEEvzw_dZ4Rao->NuGMqjg<@8W55Nz{~p8s?LW6;5Ha_$^%eP4@eMv^CB zhLA+QQDXYM+*A-E4SiLRJT;(!&U#a%o-mugnljZg<)O1IZR>32FgBg%HTKVunO-2X z7fwqkWPuVQ22!G-Sc4>!+J?vKTwwFQx!v*(7ZIBBm4)qgm&T1KD0FEkZ3Faf)@7Q?SSN|yf{ zRWPmP_Q*Yt!_O6Xt)!QAyPgJ7^t+2>(UP_d%$re8JEb4$IdVy@Ng9dkNt}__YE2nV zZ=R9{jybdzF?D3+lUkGIKgvcd2%0QGx#`lN8jf;A6gFh%baZVbQ%orJ{3+st7{dAV zal4)!n!#U_ENZP!I&sA*c5d}OX+OP5WR0YEP2-g4Cz>)a_`z5vks!Ip@H&f%N_CYT$5kk%Ug8H(BZ+Bj)43yc#!Y=#131Ap?}v&8rXmx|k*C zDcaX945h?Wd5rPgrlB0FX~j?#?E1OOvZNvAx0`L5li>9V^dQ}h*S|lfJRXljvZ$}W zd+IQC%R#S+Sbi(^irO+p@()yn(`nW}djv)77DWo90@8(P=&EX3>23Nbv3qvC?LI7;BwAsyoRAe}HoN z#B<9BJijb&PA3TqxoX&qLkoVc-Apok1-e99`9p{D2Y-<__^_ElzG|zSWoUU3bmBmi zBU+G<>tRyvi+==dXDkIDxQ;(~@h9<7Rf4*zTnP4I?A#>29A*)*=~n~Dgklc{IyQ}K z6b?SI;VEmIUnpvCe85s-9FwWoJ57A!zh7VmPBHB#>2WB(TCAB~6P^6lIBm-ky9h=S zh;i56J+g=bScDp2-1gxW@EH%H#3Jr|F69r%=YOMPY*bfUh8`T|r&9eUQe#=Z-s+ko zyaQ+O+a50X0B7^UX@g(&P0+*vND@x7GQEyY9IyJMwh|Vc$}GTx@b`+gYbL6iUYR!x zFgoBHKC6M0xK*Gh?rU#PLsgURvN1R~a7F7gT?l*GxZm9LX?X&HnAqQF`kiUcV~o2Z zg4WKbHi*ds0VEF`6D5UCnVBdOX9{U0`onZRMjm_t)3|G$RPd83x-1hWAU`V(e{al* zwlfVogE<=&LW{pI``xzUiZUt`1{0wQUAa*GDdlfuf|-rY!r`MCZN- ziYCZ3D!}G?S_IY@AJaIkk~t@CORe0c>as3WyQ8k~k{ZhN2p}F!uDhkfv96)CaD>L{ zSNWcFU!TW%MtXXI^i5TZuEr)dY&z{~=`lBTu*2^N+?J@g3vk;(>unj8J^op)h=h+- zMOQ4cGCnJsRZxCkd$}_d%WPT;E2F`jt1-wFJBJ+zb1&W1CUB7mzk1=catqA~?t0R`w#Qvq z)5i~39IxdrifQEO8@cfs#usKXn~HfPeRBv&EI0&Jmuq==pKb}qD}vcuAYP}VjU8bB zgC{o)1?Sb?sda4qJcfYVdP~9oru;^0zN%Hd1ffXVyhqmS6=TG-8SRVC_qRG{%8q0n zqp!o{`p>A9e&y_G6XFy%v7P2dsT;hQzai3@2#1R^J+<$xWOlGov&$xbXLd8W;MYUe z7!EQ0Na=ysAK*$r9sC$Q+G3jfvc^iR0aX$0o4DdheheeJhD#lY${40-oCe2{jaNeo zj1hkv={x7sn9!+?u+?i~kl%`uZrTTZILGt|zcCYxh5DP{7%*W@RxjuU{pQOJno}yQ zDAuHc-!*er4xY|szZcf~sl1~x_%J-?OF6z8@F@nkz*@zha|B$U8Gz&u zc+SZ;LdnwUAq5_5Q8A#J>E{OOJHG}UBn|xl<_?8?gT2qn2)h+00;15gwv7GCyo_N3 zkb=R?{E!DVZC$ofGZ^$-yY5$#d7myxVUe8UTS?nuZlQB0(3b&f2nv;EDX#nX!*RHk zZFCflS<=_NLwr6b*$9hTo(xQhL*AhGxLIKFQbTl!N~Gh~c_+7qJ}Pz&kxzP2hDuX3 zDXMV0MgJnreBs6)Jf{en#F7W4c=Ob}?!+CasZNz|P9ysLGvfgXO>%OuQU(<6Y@o!g zaY)cKTFP$5Nmor=xNw=|4_-gxTkMbk?s4O^+w!x(*pCssZ~8?esRa9OEA;7WXlCl! zJ*NFSL(l+md`3-UQ9JL1ZMZk0R!iY#f{p>8QAnXnDAR=FhM3I142jnD^m@CJ++_>F zEIcVRkIsBaW;{5Wojm6D&}AX1WeyXv-rq=im-BG1fp=U{63FcC|SL* z7qr5I41Bo|1+Uw@8p#F6_BVR+R4M3s z_9Y1)k*5b^$!C{5@r&jUo=5~OnonKz8{k5M$Ft;_&a;#{hjR3n1}%f`_a~94$jhsu z?Kd8 zh1bjNz5H14unsUjz0TKcs138MbpG^9>}~@|amPvy$a>UXIH}^}Rb}8n+s7!bmDj_P zd|+3PVc={;-Lu{}%5^)CdC*jOW6o5BuZ`LC)orBE=-s!g-n1!G9et)YEO+Bm53tzM zTUNweaLlg||B};ZV22U?!6ko}RIi&;bS&UnpR1;!0UYA0$e}4_`p!8KJC&H%_c1AJ zz$KXUE*(_vxO}Oj+K*Czj{u1hV=20jeCLhlKnw&)6q6OSN-*}7j{Cl2uz#kW{}(P4 z7TlU4c8^xzKl(@jTr4)+beIiPmw=<@-*Qa}XTOH)E1H>5GabCtW92H5II0MmBq_He zT|w)%^r>FcHTkXoud6SQhw^*FZn0#oY*{PJ*r}Kq6v~=sL>W8DmccOA7K%!?OxA}P zJ7I*eja@?4WUYh@5!p&eD$)9$>HB;Cc;7yKJ}u60p7Y%Ibzk>&?sM)p(4Y58*^%x| z2YK87G;_+9V#{8{XxiSH5)JA7S2!o_Cvb4t3mzFMV4>``Cwn$YGJLJdWW>_r?P}$i zia}d2e0ox2aRuDp9{S*uMhfb_+KZS7FlWN8s#+$yXGcG|PxT16RT4|Bj-tbOV($f{ zsIPH@!x-(Q+9Bc~dLWq7R^ToBC-I*xv@h-}D<{)q9F9IGB-_vK62GJK>wJ@-(5y4@ zQ~i;{yyfpqY^;Tbygf*gxKVIjp}bzv%X*#hHEYAq(;HGvUJHKz zsT_x2tdjyui7I+WhP(DCwO<`;-8?%7!sPVIrQ=q-I2yK@C_fFq9#W31t#N@y96u| zPuQnHHRkT3Dawd)$TZ)KUb+*VGRj>TgLoi!IGVS`|EH536Ui0RE>2He+(GoLi+^=F zq!jl%XMdq%Bp`76EkEOEabJue!SZ(11mmkEUP%dr)x=`NNP5AFu8157GzFV^^t<}w zGQfdv$M-kh{dVkw=s$~$4MdOUfa03?+@-_$n8YVy_su3R?j4B^1=aUqaImvUK~jJ2 z+67T3^HBCHv*W}+zd=AI2lkES8ga?WTm8>6@i$BVf`A^1jv}yo=)xI!NB>n@ z>V3M*{26&BZ-fy=L#sGF(z`_fWTIP%|5FBBoVwgoQgd{^&RN^uiLhwxy!m+gNLkYb znCi8b-M-mz21X23GILS~%-&1?U#{_${qv6>ClqwZF(wI!jWCQYd3(i z4j0=yt!{sJh#P0ZqRJqNFCzxa%_%}tc3}!FrU8W6wx+1#Cy4iG#3mz%5L>Vfis_em zfBCd(EfRQm+qG7Ct#u&fKn`nXK>%sh($7!+@^Ae4=f-^*NHn7CEB~wLK{K&RbDrb; zlbD&$69PRpy6iKm8?`~eA=%RNcDOnbUQ&^aI20$pq-DcMg?tHJ`(-7@$Btw|Ai+Bu0N!& z^1RUzi$y&&vTX%Ml@;lr_7nyxj@d z+3}4Wno1|ExB2Md;>GZyYGHX9_jsru2X0lte~glvCU|2G92xJrV;Pjl+5QEQvr(Xz$wlk=eCOxN1=*9 zW-t|+^?N*hTd-NHKeG0ap$bigu*U?~QoxzkSG~1)VJ9s6E9?Dt?i-Aa(Day(ib}Bv z!SDRqB9Zh{qgm55z4gX{J5OSs ze^st*QIwclQol2aL=WCkhz7dX7W z7*rr%=e~NQSnO>+Rfm`zl&i2;m0IjSRc7kNiiEIHfQEN1qQ27>>_b(PEn~9_ycI-$ z`1*Y+N33;=)Z>|=n+~x%eI*6F!Twz;RwZ*Rkvj>4!bxb*6&jv&&E`mQqak{fI?pop z-A9bk=KA0uH81_jt|5chpy{whfBj!M$rOy9>=`(<8Ilg!`$~}g5K>|LvQF@BYTd%g zH|MT6%Ft0o7k?&3ll-Hr+uCwHrQ_(TMX?jnhTXw;4Epd-xmhQ<9 zTp~)pMi0SPc;xsF4j-3N8c82fepJ_i(c)!)`)gves6-fFBs7T$Cl4Lf9*!~)`@_a{ z`kO@Gk~Lm>a!V-bYK?T6G4_5$6=F=mC;h7HLqZh6ysv)2v5#yEBfN}0`07&%YCg-k z_`wKtJGjsg!hPIsnZ9%F7Iw0sY^L5jtrdbt;{y0?iDGeLZar9-Duc#+_w=|_m}8?H z|Gf7IWFe*=zUX|BU(p(8Dw=-uBs&?0()dn4WWrPXYV60h+c#`T5Z7E&Tr^-~XKuX_ z_$AZ3k5%1Ky6%u7hh~rMsp$m#qiM*}&uq<(kRH{RWjRQRQSOl-eT$g zL8BDj+!v+iv%@g+ock4rr*g!nib2L?t~SZPRs48lYxMk?tClqm`vj%G(~V1O50xo2 zAmg8pOF_7&0KbGaf2QI*j#YMzKhJ*nM?fJzvC79p)M>F-*=8Gb-{LW{F;&iB88@hS zqatbbj2CI>IzJamH!=I&4jFiwNrBB!LF-xw$#_cfl>yDTkI2=c6*Vj1K+l`po z(6D9_9Z8jg3!~b5Y0j*aQUfpn!1;@;k=m|p6P(u0hBt|X#MvV+S&rQiIQ=*lMA|hG zjme-QT!9Ss26d*;ZFmEud*CzF?(P<&GyTyLrskiymApjpw~Cq>0|@u>>H}#3N<%;M zn>WSM0!%JQV8qVNfI%X%=Q7%HzL_GqJd2|j#~9~pYo4?-7z3l2=%`U*YlQT=mz(6U zZDvWoU$(L?e|1Mm$b8*NW-Ecz(~Y}~Gpa32;7R2jmLR@Ux{=GfMs3LW6?`6D z_>BGQwT6vnex$mN=#x>guJ%#8>9n-TmJeco-6&~9k6_?pfpuEo@@8J6BbWtq1KiWq zS(s|4kx+tE^<1fN0Q;yWg>C^W$v5Oq-%7$Z=4W}FlX1qFHF?*#Pe5emYpEP>UD>8GNdy_(Qkaz`5BvMD}a?k{nbM$O{~zWuD+G3?$8wIdehog8kzN=?N~aF+14 zr(vd}p4x$%?$hOS73KW#lneXfBhfPGF6Br7cp3MT)ZHzttmaruNb#*TzK6A1tPWSG zynbA0&+ut*8jL{pW(iOE{K zXrcC0yr<6(0B2EemkgrxM4^7=ZaWYUC;&Aq1wqbIquRUNg}XU%j5=!+^QL8QjihmZ zx%JR3}e+dU`%AcEujXvoi>! zlV0c1G66;PN8VN11*<$j$nWL#0MC|buCGW(NfiHt;Uy2mt+&yo3$GB zKx)W3f#LZbG@nC*Z#bwDCDG4sy*4XNJoK5)&Y+}5QlBVvU&5dp4~!3(^24e^3f&_1 zNT~nZO}6h_7rna5CosbGdlZY`SeJNLb1h01w>|h#N6(4m42ZUda1?uuw29H&j#h1( z$>WL*JVr=*AYr$r+|F15^8H>+ZjeE-q@8*J8{uD-Se zv1JF*7;{ChYe7)QqUgO94H)hCXvSS$aQrU=1&azPtO6c7%Cg)Gze~G9B?K#c*c*hAX(dC~Qzj-7K{x=ejqZ@QM}%(N zOZkrEGg5HuYI{VUHo%bzNXzDeGRpEuddtvQjZTr!W{0%d3^>X3q2uV!hbx$g`PDF7 z*#9%CzeY!58wqh_giX*wX9ogrJc!lEB8)gE)_#XZJi&LON)+jAoN^!CH;>w%m6S?h z#8iy3>li*WLPDez4kdXhGZFrgP?~4)H%T(rH1Nj zW&6|UhwF89JU>si;vUNx2;s>zU+$UWbnY#~nk|9j!Wzq&|oy`~-FW`qf@RS%ZO`X^V#P znvZ?%WlsP2aU&~6?mu)aBic9{rcaRQ#*@yV$-o(&I9}c}xHH$zK%~gsb}mfdw3qxu zhC`fkfTyHJ+7~bO<%L_t+<~;e#KHvl`YqW{WhuZEtpJxRANP9nKiut)RD4A)+oec% zHOm0UkSuW;_2*{AS{&^L%$cWH8~0xWTPt`h2z6zH)sP1}%$6 z(Ai;tiw&?)9xlJCr|#RiBD>gqIE=@`34lOM`U0>5gszc()A{Qp15B8L(#<+VeYe2; zQk;H;{<)~kj4d$W;X+ER>ihu}s{tKyHTTl4q0@5M5l@S_EZ+L8yD{(a>rqVVm-=Yd zY2SgCU8KBt18`p`WsFlPB>+b878Z%(UG+}YBvYTgG=N8`UVOGM6Rga_M$TYJ<{#HtNu_H?Q#0^=}VrvP| z$fzEVlo!vX|BVvdz` z^)Qu-fbgKoJ_tjyKccT~gl+`Oc zKjyk_s#{jq@Y}@d1b)1NCc0(j{`{b+e9d$;+4r})-R2eV(h#0e@|O&rYP1QUK_g9X zhGo!whh^)}9{#PJSeBHU=Tl(uO_4r$PkwJKX5Qd_PLkHUTep069@X@MxO?{Y^LYi- zU5kY6p}<7dwkHgO;uU^dhUL%|Ro|}_u&0_?-NZ07mLq(Axn8kx{bAG)g!;mpKyamx~^AX*!WzSVobfKyI22(+935{>Vh zlfOFCu_VF`n9`L!vh?h3)Ki*SLZVg1=V&Y+n?5wM5Sl&~jcPc6C6TgxnFa}&V%@m% zsU_*H@a9sCLnr>h=Ls`Q{wxZ$;+(U*a10U>J^STl%{b!ft&Y=A6esC!YR|rPqLb-) zUW|QeOT9$|wTP)}%w^A8T7RYy;)Gzmybs=VdonKIgXz%rW~KBgF<)M~hD=Z2&jK1% zEC)Y2$yF5zqFLf^dkZ>)<$F1cwaI!+kVdJmGKUO~f;rol89hKR^vA#S`qe+U+KF_3 z4uqukYrv;kZ?WmDsvIr00+A6VKwF zbg?C?gWF$Wogv2|f}mInDvI+|LKq+*UZF%lKS~V9dOVv)4_fh*ScL|TCvabIu$l;1 zjnHSTAjXJ~HQatBOM#s!utuhXf|o7mBdW8esZ@DOJ}t*^vL=7(i1ij1#MmeN0-q7x zfZ@&Bes)LQJj7U?x7cBmQice&&TFsHHtdnSX4J5(6#wd2%QqNKdVeO*vwD8vPEqDW z-6q9X+^lgSbGn=5bbNT);T(tdBLg9 zoN)5j+%HtFW1vO-lBF(qmjC{*yt1$Jb!OT*#SbDJipq{Nk7rw035nEYP4I@%j9@8a zA3%>5X)yVa%G)Hss!X#93Q8dJM#%4y?Eqs$om?IEsijzK9WVASrJ$wbpZ^(Az*nVe zyG^E-%XytmzMf)7ID{d!kyLyeW^*$@=GR3&BE zYWlmaG|nA%P3b)@32~N%Kk~fEZ!5n!XW+n4s4LW>ETi6z>R(kkRgcnJ$yYLq&RMgZ znel0Nu#*)X5~{Jv`q&Nb;Y-rW*27r>?E>tr1+tBCGanNA5KswTqG&wyIw2Ff2y3XSCb9X3uFndV1V3 zJSXFS8JuYEI7ejIvS_t-XGnx)g}43oHjh$6<%t}v$^w}_!z_@4 z)Q?kJ$85E^ysMamyFQ`!p>bB=3NK(4z!k6X{F^G6?ZMBreHBcXf;+$PqYVe1mP#;; z5muGst5yZ(-alBZ3l3@3H#k;NArU0iZd;_Vz z9(Q!I!M~39y3EH1>b_tw3hTdnwX!3aYz6WH>^cdT&;{TRqmdfdhZZI_-H(F3WVz}TT` zCnzttNNXYux!5Z!0DZ_rhm*g*@qN0TdwtQkI-{s-c*0?ARYP+8cmpRyGR3D*me@sO z8g$2_MVEv+S02ruQFgINgWVd*D{g<`N|)j!OXd9mRk<$BQIi?_8cI$2s;3nETw>gQ zrrEpxO2FWYJ(msa$+eR8;T%e(dxq_h5a;k*Fw2oOOLG6IOzrDZTZ?N36G>8!?2-iv z`9P{8z92wGl?`DT5rCX=TxOD+9OZKl-C{ZOez3JNQKbjrNTQSKwc zU!=RW4-&oHcD}TX&eN*}l~k39vP9FUC*rtG)=N*tie9*` zRx83x{BVn+_ThpH0mHvO3Upd$CjKUznI0O%D|rbGUqW~#nVVy67Jt76DF^j3wZ28M zVua}PdjTR8%k(#9tA) z&86RDYPRs0?4pP*oVqJU9hy%^UD(#e+dqBsWQNgf*M&QfakcfOxpwXSibxJ6uZu

o4@%$&*z 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 ONtZ8ZpU+jb4Ei4exrIXj literal 0 HcmV?d00001 diff --git a/python/popcorn_hex_mesh3D.png b/img/popcorn_hex_mesh3D.png similarity index 100% rename from python/popcorn_hex_mesh3D.png rename to img/popcorn_hex_mesh3D.png diff --git a/img/prism_n0_demo.png b/img/prism_n0_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..5bca82a20ec1066a9506f6ecbea292cd14528bf9 GIT binary patch literal 59386 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 literal 0 HcmV?d00001 diff --git a/img/pyramid_n0_demo.png b/img/pyramid_n0_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..b82fb3fa87b893bbc56d6459e06ba8d4750a07e7 GIT binary patch literal 44644 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 literal 0 HcmV?d00001 diff --git a/img/quad_cases_with_disambiguation_panels_quads.png b/img/quad_cases_with_disambiguation_panels_quads.png new file mode 100644 index 0000000000000000000000000000000000000000..4e50590564cdb4644c981cbfa48e2d8fdac6082c GIT binary patch literal 181461 zcmeFZXH-*Z_&pkX?*&DQ1w=$ZMU*1NE+|cUjfhf$G%2A4u%ROY8U>WzJ4A%g2`UN- z(o3X-Dg+V|KnQ_^za$T{adPub7j`^{h4npZZh=Uqy?6tK+PoEoTC;ZTYIw#b4I>QyD7alRa?^FPcEeiUyMxlObaTGz!<40|#@i>?9awkZ5ia?_eO=dJPIZXcGh z8R3=Ynvriey!BxobEQVfP+dv8tB!AkL;oL-fb{Kr%ys|A)9^$<{~^`2|H})iI}iSU z_x%3bCuL;r6MynpYZ{$hxm2Nk?b-@{EQ{98nOItMx^w4_xV*eEjx*EzT3mOAj$Sh9^PSdE zwPN;^=vFSW2(ou-ce2J>uYCLVt+uwdg-Eu@YR@uUbIRJzF2iq$+h@<28RI`?`@(x> zG-2DJ%cGw*NVf$^lhQ{}CKr*qa3DGw*i{_%5 zAFSH2Jn|3<_0+*SJqJ#W)u1>r`f-hLn`ngDpkGoWE6=(SdxC6Fs7NhimR^&w{;o~1s4!_iZ~k!}-ugi|yW_;md(pN7pB^7QcIiCds0nM0lx(a3Z&I(Hj;<4evJ< zg#J3_7I?2#b#xDE>%l{ppC1?5i+|4Jva#IhiJp?yHwx~VKAU@$IqV6ia#n|_U#PLZ z{v9*F`C&$gU4G~DC>kx~{mN}Xlh8A8aI_BmK_8TYCd}=cRUFlI1ecB=N zWmHsmM#*wiz+__eFZ6NyY`CVncP2TE5cee>8;kLSi(g33QSji5r4=cLiwwcVY#gOi z=U^?GpKvm*64D8B9;;BQGtW{vnep)-zJC2W`fm67om2>+t;XqA3w*&;IYBw+4_B{V zg=;W0ch~JZ0d#wk~eP&cAEG+Et?c8X8c=7C) zdxAT}YyJ}QojfNiE31ZQlDJGq|HXZd#piOa;Ji6>oZoEJz6Ud7^?wvh> zi!*5|8L6q484a?0xq+i zHf3=>kiXT14&5dW(&FML;3CF))3oB0FJHQJsm!V&>P%yWKdjDkSd_vpKRC@Ha^<3X zmc)*1u z+sk%#c3HSWM+#=6uyRjD%i|| z4dNU<%i2|w3psDmtcPawRrbBOot&J!2MH#Z8bR!yx^PJu3(tYaQtr%w1ql@D;12ie zHHj>Nw5lgt$`p^rdX2n2fRl2H#mySC$^3kLHVads{-*>sKk+H68aN*7Ik@hSlvG1S z-v;UOrh#H4n0%J3LU$~;zIkF})mGFaRcq_i%|d67sC8BPS3(Ug8}{n+<2snTHDAIf zKYFy%p{qdcm6(=eKHA(oCiVK;L>zY(ZgU0OLTO>L%A)3&lvKypmxuHX4aL;FX&Gs! zuuL-o*TUt?E|bE$Z$-vtTD8cf?sVSU zu8=kG#AH*-uvt!hBy}w(ePBe;igTSx{93QszZed#l>=Lo_$AlGXzdg z9Cr4#K||$o)c%t?HEzdD8eK{!NZgsG3tQCiyCqGMp=h7J-RPbTXN39w=0t5>-767_ zYon6)&zD!qnLdq5?9t{c!eJu8drq7$^I%}u#ghY7Ph@@PoaJLQk=!z=^utY7qV_); zROnrW`aTSy=+;M??Xs`fjl;i=j?R9(fv;2r+S8I$8HMTI$7kXBkvDSFz#!bQeCl#s z zYN;?5eW9UPY_U*lfqrSS>vnA48Ne4-U+x8qs##S(w{yL@2}-rLbw*BdxYgB~*q+{9 z3Cey@0o2vi3$POwyLRo$C@eI9CjGvf;X4Vf&Udnz`9#9kLQgNb!iSw%P*Bh+wy@v# zRtX7@RCLq>>76Y78#nNWHKTvflDWBqNKQCs8|7LhPYR3OQ;0Dsuzi^vj-sYSSajty zR^Ixu9_x8rQc`1jq<*?&VqtzdEIj$D>B*Z8uk1NS*G}6ptf5sd(ko}+7R<>$2@G5ftW9Tt`%(|A_5sL!v=Ajc#HKCrT8W;o%A z&^`Yx4yR4a9&7ku?Cpu(EDW1UHpiNmahE2asOVuZnIakGCgI?t3zgWG`$xRN5os8_=AIIaYOpfiYe=Cz#b%LC2oK#z@t|n>tX71w_ zzkb*287wxHg6(s!T(=&jDiU7}U3q5%{{~cmt*XN%hv9F1T}OAG$1P;Od#9a}l9I#B zH#+t#G?e-fs!jjHP!E+5Ubpd$8;PGjosaW(O(&!i&OXj3K|Yvhqc8d6cCANR$ zC)!Tjf7;<1jpVMNvab>TlvVXctm=eO)EOs_rSCp$W=?hW<;rRTfnW$%$j$36a&jV4 zrn%np!x7x_t&c=lO-QUU#NRxh2Oq? zTOBTG+9gORDd{Yps@})r*TPRl^(|D>RpoE#MfzSK=d`f5~AQ45D5eikhgSd;>p0|*Z(={~D<4sm=;rW>z2}R4E zI<*Jw&m(e^($l}%+S)oVNv%LN38l5#oq|`Ox8^Ly&M6qE;x6Ibvz^-w83TYgKU_~I zB$kmdjezKWj8G?}k@9wNIc*Q^&D9L6u2%D!zZR+fi#5Enp~@WFGH!^lN^ivk6uJ@e zoOI>Fd+rI{)a!QnxTg4XOvbhFV`FWe7XmkqIWOgy78Pp>Od0;x7@?|`AVz6sZUw0W$;UotjD+!QYkqQrt$h&2I2<}oU@7bO1&H+kU^ti zasUAXas}vtS)u+5RlNBZ2QIkPil?PR!+{TnLvT2BLKuM7lnH%T z*L=vSB++Z(SMh)+a?bSmwo=JsTN({Mz!ezy`qtF-6xg-S^!iK?y~?jSI_5@erX`0< z$X$<7XeXSgsQ*SbQ)07iu0N?tFfa2U+GSBXPYewW$$I^|?a)))%$svbAGH)7rBl8hN2Ai=N0# z0Z(v{9{%&|%gv#}E4C$-?Fdpmg|7))0nPOJfeV3q?8&(f#88Uk8D{ykCfg6H|LNVw zjBZ{%dGFr6=MUFxDeS6z|GwqT39CS#rRZpZxZlY+d_yu|g`bap&9(Pd_)sW`0OR{ym!tZPJjy7%Gj}F> zD=gRvq(qW}K`||B)_HtA>gM4#!)9|dQLL#!>30>~iB!>-H);yf6hn5jx3%qYad8Q3 zYf;KCEiI++wg|}Ggt3NgpH^O8PT>Uw1yL&F;2oF!{QR;Q`_4GtW#MuNgbC*ccX#(3 zq3KSWIQO|XFf5m`mtb6`3@oZ9Kiv@!|K23W8%oY8n3PYmRXC$b{3?Fs$>CX+(njx8 zcZg}W)rLs`K$$e)rlq8eJ?67;M$h*rg(_php0eElB+{URwIr*(@@>fSUs^<(sZ??Q zaxz*5zy0lH*pLZQ~JMXnnJK%g3Q$j0i$82&AM4<}WF6CB==2l7zGPH2*$}|8Q zO?%r61!YYCw5^M6Cj^s1{_1s&_89+hAgxtgjsL9YyBoT?-4uTqSQLhy%ZR8UECho{ z?xOg2zQ4olYlQgSwD)9kyGJ7wMT?5puV1$fMElH+cVc1}ebMFwD>cqwkhDUN@Y9_L z5-A%?jWXfsOz!04OB3deUddtl05${&yM@5rvhVbFb5;Jp1OO^nFF)6j?=F3QFeP{2 zCFJIM^fAc0DRbkjT=jeC|7O} zeG#{m$K_1pSR19h{pwYdgSN0&2G~wN6kdp@Fk%g{SJl<;p}!?m@KhG(tkf2H_cI6t zGJ@1_T#vBVuhUagQ`^IIwg@YalNgdyOs`cz{yaLml*=sZHj|XmE-5KdfL7@?+H^pz z1-X7G$GR}wo!g7XLp!Au?byD3!Tb8HTZvqc3l}al)y$mErM|fzvhP`m_r4vdfUBy( z!~0~z*(X*AMtHA9ZQYQbR>_n=;$${vS+A^hEl*87Tq)!V12o&g35_;{C1K{FvAVji(0v>HM@-OY;YqU< zy!qv*tr&<69V>UOV4zwG5(a*L< z2_Q)55KUqNaIPs(b30jKSnJ&XQlnat_NL?3fPh%gmq9j(Y~~uwokbd{dmKOpPfDNe zew8IFHjB#bdfSKFkKej~<%4V)|8a$UC!bsr2ZL3lT2y$Cg(xzc08=+Icychbx|btkLwBJ=tCl}U7l3EkgcAmXj5sqe?1?KXnhsS5x9)Q)A0P|B z5^-k%3SHo{<|6a@p6Q1JGjmLIkxRY&Lz6MW^AQ&Zb-vo zF^rJyWmqS*mJmV385r>kyB49**pYM1@g^iJ(vQh5XDbN+88CP6j!%}*>2%Y_cD#9# zcL*K1`yr?UH}Aou+S*057gfv1$ml9|NkZsXdiivNE{s+H=63P1Dc2}{64!29Thrjv z_0`n=>h)j30k4JzcGR~09u|&=Fvl~WcWAlE^}fGT*H+|&W=8|-xu9u2{0R-btb3m_ zL=-yIWmi4^lw(gZ&_q&FvsrH@1@eJ;qCsuVVj%PFx>W2kL5A0Mn@lCK*6{Q2|it-K>* zVq$VTf=;#>=6vx+ifd^ICsQ_Gpz=5SlWrAqC%ke9vZoag3#G_hP>lET&6{-L#mOhk z#!$xj(RrAK(7i`r(7sJmrRUi=*228czN&qVaaHl>9{$r&mc25q@FsF+qvc%{j;&sh z3^c>z@uyrzt}9J`Si$LkxJA#vAQh>j3P8kAxII1-6$(H%lnq^vJ!=dj`njyZi3b~` zv>hBA(neZeP7T$RIYGfP_b98Vs=3?w{tJD`ygEdXE)~0}stIAdhEIf6_`@BG;cvwd zk4i{n)me2hJQzRnlB$5_-D;nnXA;DMJVLo`BI?^)XXc#0k1*VBf-HUeJPQb;fZQY! zMiNHfh?i83mA<3)w#j{?5!+PSmXNh?||uL@}~LsCj;U>A_t95*-c zgqgMSl&q{>d#1jivd6EV-%McH%H~YVJRF*WDghQroH(I_*E2Ls(}+4vEL#F%kq8qb zo7%_iWp|CYLW4%CEwd3u>ehj?FxMt|)VxmKD`UO#Y$^-|_TQl$XF&i{PC(GPLcptG z<`uM5cr%-+%TTJv;;S)|9rninbI7(CxkZOu>C20Aw4s5J-eu=8)Cfn zR-SD`wERHq`qHPIOb9$^#HwT+G;#N{KcJqTZUw8XaJc8NR_r+Gh@qvWWm@TVAPzhE zm3@no!zUBybR3{MJv}`UHDEOKo)8TTNrc74h06JneQd@KO}USR8q~}E%20fpWMdst zAThfsMe*^f5(e38Yo}Aw(hvc}o5v!He&anUIRt2|8OpaTL>90vG+>O{SMiy}he;S7 z6%|dXn+7JN8Tbd*Y`4=jgbHh;)mKiB$?IV%)qb=oLAeG8N{@nojF{LJX!DtwnK#_si5C7mcXMDQ zm21pk6yVO5P-C-x{=6N>h1k3Hzs6p`JS_5<^cLmxk(L%`Em4uXI4-TjYx;F~_-VTR8klV5jU8e}#7~fyt6y|@v z5+yG9cKNhU!HGY)=j!^qQ2$oh2;9!Qrzy@=o0yGM04~635x7h!1?|hSdmMDJiAL#MNA7PA1ZZ-Y1L5MudBK-r591 zE1~PzFb6ncq;8mk2J|-`%?nXT%>jb&;77RcbP^AsuLmtpW&WF1PtnqRqkkq4WpxqK z*ghw3!Z5CwI@sNh)wOg@H#qW35R&3d2O*WySC?)lOOC?*kTdu^D-V)$#Kf}~2X+QhhrCx;jQfTEgL z=+xJXiF^P4q`CK4N>{#3s7MAhB?S87LOLt`{V9H22D8zrj8SM{DB!F_hV)4Sainwt z86LV~vZ%8#;~KMjeF%|JQ6Pxi?L5h&8CKr&_oK#OOS`c?z^t&-u@k-cWMJ3n5RDGH zO-|i~8u>Pj1^@?>!#(O_czYp->eKVOp8c-hD**yZ%Cs9Ke3+8>5Y1tYXPnE(&|x(b zY#N>YP45S2qlvrdh=M!HPs=JiuY-QP9zhAW_PSp;&9kU^)IAOmq(}v5Lro=*Pmk6i z%Oyg5wB%Sku$n#bSv)N|@q|^io7`nU?4a8$V^fjznE{&3IMA|q!c`%L(;By!d_@@7 zhU@$EcthBW7fl0m!hUlJ+(MQ67xv@b&=>htuRh;*MiU8u0?(;iYAw(_*C4PH*84q3 zmxL8-HjfU4svy@0a~x}KD3qQW<%q$42ZCS>4prhQumsNjtSmOo=7wtVg*$*Bp z2kt6Y|Goz-n(dEwmNBtqS#!_^NNI3~uv2WPaaf~xkK5nyq6)*Wb@hyl(vjml+M%iK z;ZcY%R(Sk&L^otgtgor5p+f??3(rj5=`Hs%Df7qyCUpf+b)!%|$WH!TQ)oCE!NI{C zI62c@bz9C(1_0gHEePY^+u!N}aAyWLuDyH@7Z?K-Uj6#@wvqZMQ=+^wfNNGI$c&7T zw=Z8NfCPI92_~Q#dO}jwfF8tp|q{$x7W!UoI7_P zsTil(Wt&CRTXeOQ+G&}F_*0&fH!FCv-Heb;Fb*UY{%SZzY=5>(!o(cc9z`cqT8N8_ z=P=8D;;$7r51c1(T^EjWpw}ScM*FYfI(HaV5G4rWKT;8!>j$ifU3224Qf4V#L=C1$ zLjZQ%yxbl8n3YR@l1A@7P+b8rjRLE10~W9YI;^#irDZ~|=g=k`C<$GK4pE@Y-Y)8H z2Ur*5)}mHQ%gllgpbCouCZ z0Hc$Dg3y5Kt*x&g2JJ1$t~GTmGb^`6-_U%Rg)K7h6G_ql324_7C=lh)4$l1u4Gntr}V@x13RMSGKVg9 zc6RcED6&~tIU7n6U<`HWq<$)kk@mUG5Gn`MkOmLrIUx>oT$6n3U<===OY#DnDIVPp z9DiWg#tK?BUs>(}S*l`|(M|1LDy8R6mt_qh;|2*)uDMEL`?tenllY-;arTTLlu4i# zbCbh&h=xdN2W}S3M2rFT`s+f%A|q)ehdqJ7jI?InoP7P_MLa?X3z9yz3mNXCy_K;+ z^lwl(T(qB6CR}(zgIe7bW@wQiO`1EenWhVgZ<*Cr+17HBJ5P-x1J+O!XtmBCW0BEh zkYq<9zGi zf8OXfD}xXaxw#GY_P;W8(=cN#DG2q0c3p+qAFgdh+y$8eB?Nj!2U8h{^rJu&x})#h zNkLD;JGyjCiFd-gp!t+nDcAzF=fIqvU7aBog1!_=s9ZFGEY!@Jyl7>WWB?))%)sBIp>dc)#u7bkhki{)> zq+~*EqQSZ}0|XPq6P7hk^nZL<+W%k!B6u0F`F8EH8?FsADY=)jxX7-g_bn|JL8R|U zH7-og$!SN1bD%7e+j;u>`T(g~VwHSmK&!I_T*85R*f}cmM9)&#eAI{YdxT zEU3_CNf~tTfxjsWMaCc1V@V-)65;eW&cb5Ay|#jwp9T?Bgd{2iSAx9j$Q*ADKvib_ z)X?0Vr#VnfF_AS$4uiEt2|$Ume}v@jASA;_5&I9?YB#|Dz6%N+l7wMy8`K8kHT=^Tv{2&4BDRM)2p^U!@L|b}b=945IXV1KdD7Ejh;d zm!Ww^Biff*3vzwG;b0AdhAB=9vG;1lO-kJ|PCIlZ7xj8yQ{gm+B7asNqj)A6y&+K- zRC^M;Vxpw#AxM512H8dlaO^SgXt`n~xL`wY2kcfi;JlJGALqa5<

  • ;7%eYFdP@H>;I|aTiE>@2Fi;x3 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

    c zbSmIo0Z^CnBC3%&#=zh+GDpaMR8U{$#Vw9AIa7j4e;l;S-g%;Q%~}Ubr%+=G8vM|^ zL8iSMYdl$>IdKo`=)h$cvoS}?7@{;$~bsWUJTPfJA1ORdMZf*#Lu-?k~xE4q< zN>)8l)#_o;L~bnNO6Fzr8#aeCwSgT9syPMD`@ar318IE$xA*h#JCL{;#nR5^5E#hP z7Y5Oe*O$La$;!gys)4zsCCvXp!+KcE2xT#eYu6!K%K5imem^=hjGbJ(lr)hx&AT-m zyG}QSu>KgTso40?z}@oZckVO;Vt}%`_Ya4hQR~++IJDwRyJ0cC0&(oYoIipf_U=9~ z&rD#;$;d*~$vENhC`3+!lbZ)PEs9X=YE#d8!-;z#{{a&q6@la!fY=YH-`?gP4;76%u3(XEDw@7#Vj;mpc%CY~*$)j834myMcoUT5ks<@wtCuLKO{v!^jhG zPLQ9H!7}$4aA-;>bN6Di5M|-`CeEL*56y5;A|)$NcIB2o@|RwN;{ys3`g>l5;Q9{_ zGMGsC1Lfur0R$idL~=wxB-#WEOn?F2@YB8ZO+ZTdxCmI@Btof08tYB4DSaj zWR4&EWR^QEmC}%CrE;(Q!4_d{ke|Sf!x*~i2R}c87p>Q0xB-P61kctwz;Rdg-dx_$ z;Dl99j~-Bouy<4Hx38UK7p=jy8pBuB`>_}>^Bz|5Cj>LlJZU<%_r&T_i=mqI#m)8H zDIgC5#4ApxEQxu02|ApyAT)%A!B-y~OD>HbZn^#*Sw~-%8L_cJ zB)voNh%?=Al=CH*p-F%^2RIpi&hy{ej+u2eNZ1^r@0YG<_206S1l2Zn2Tqoc6~1gtC+5weip zbKl6GbQ)=pUJXg0L4}1R-M)a_-2Ra%-;cmP6#oS5!+o>MSD;RWQftkb3s4i~*45=h zF;}m`2nMk(=&3@3p`3Sj(T=B2U7+A&wv$Q<;#V#1sN!USi3(#R>0;*PfnnAPy^N}6 z1u&5=cg71?j#x+1E)cTN57yBxGj1cEexrwU58myC%xQ47TpbclSk*&7L!GWGi`Kzm zD!u#yuD-vdg98geGGG#sel+!AvDQjJ zvbSwZ0({jN>LzO>Qnoh`%ab1MfO-I)^#g?F11LtuDe;Ji>>TLKVE_|6_M(J*J#)1# zsRAtiv7>E~Dn2I%`a77m(Vlzj$49Z*3@jOc#VOfCG64}p2p>jwL;)!TE2_S$p13zl zFM&9paz3jK)%bdV0D{}poCnDuj=GTy*31DCFgD(VgG;S4iKyCf^)*ALwH6Kr9G+cJ zhc%pp*t!WCV5kb?!>k|i_A(RT^XuL3p!|%(%EQHAjF|eZ_UpYJ!6}=0nf^?X&!e-zfGaqWg z^vLaTeQ+1APJoesMo$e8UfbKFm>YI*a=xQJ5FmrkpD(Wk{$dP7vOv@T=CENRs$n!u z0Zm5s+qMl1!RVuTRup=QV0a3o1n~hlBgG)Og2e6`N4^f3|IU>V{P=MsjFVkoEvc+; zpj-p<%KxEO<`Wcwb9IaK*E}b7N9mM1!*A3C98C+ir`E>>8Q^_dII$Gq);$`Av4F}> zaYjZFD-w=!?G1pCSeytAFX1E>wU|!vwO>x$n@8Qu7>}kE3rqw;DI4G0&LK1y7QTl8#k0G6?=&h;6}$Un`nv66g=ShP_-)KjB_I z;kZc|tgQ!gUK;r-D4!n1D)8gdh`VQMh_MvDYSA+h*UtaX?k)tT&AYd9S8`#njX1#lD3r4r60SAW(m6mZ%x{WGmanXeOO3CHVk{Vggm4Cp9z)9+_fg4uXiGmD z%a>CZGKP`_D-(c4?}=rWGDUDaPolT!AyoqOws6kdZUKE^{sE*OFie51F*f^vi$N0{ zckir5a(%2UdKYRWu8|MhehY0(AeP;};K5G3&}xuELo>jGONX&h>=`+Ya(z_Y?eXDQ z=+7{z4igQ$yLJVN8Dy5BY!;NaoRgoxW?Vb@!7AH{V0|!j)8>kXOj9SgX&ofeK)wdK zV_8)nX@{P|9YB7+_~sd;o#_CeaN7voTSBwyPz=?Mj^?|K>w`d~BKfZ!A}VLZsx7-L ztVcW$N(<#`4To4^Wtn2`wfGQ$aSs5DGpzqlA`$1l0XGg4Ge5FGmEmJ=38?fqA$B6j zhuyg&ddjRmdE+ND^^m+rq4aA zMw6ee-zN5crfmX<01evR7UD2T_#kukbzAX*gnVFmgArU0mmvYc2T+AUhAPOvT?Y{X zm@H9{liLdM3kCsR+>9c=_Mi1)z3o&}STI|2zUoxrwVM_8*CdSATX~J4qm5QRR*QZd;Z`Y z_s>1pahE$TeSf|GfdiDB`}f=Rj#M-u3zK_}xy=lOygyo}vIe(xHQpS-GWTnL%V-7s z@WwKCR3tp&G|!AMKX`|e?rn*{y0B?57u>u|0D+$}LgE%s{DFyXV7(nbX*;teaqbVp z-Qf5Uh~W;>jKFc{`HwUs;zpk01E=%iF_1NSjST-YZ1wFC$K>tM=vIoQm4)T?y_VEr zVB9=`H2|7_0Y9*4!+@Xb#QGYp;5mJR!^&*^;<*Ed+QR^xl2nA zP`-vURwq&(%fSj*-+@$uXhz~knmr)(6GgOE;4E8i1R5iNmZk@QdJCgnj+I<~3n%|+ zTkU(neexclCO~q}gtfj_%5mXuQO>z<)wLK3pq%;cJsGerw1ycO;%Xhef+ta9@!ej| z{$eQ3lU1}eJs#WJzxeiR7=oKL!CLHyLk3O(iEZI2)9d|darq|6_ zxZJb9kxv+vQtzBNPwEPmSh8_r*3w5rLc$~$kRyDJ20lW>Uhw);65a!f=TQyObFXFHwJcpw(oQ;n+0BW6Y@v~jO;x43N z)lOo2(R>q1f?*a1_+)3|WbUnpP$2UFGEHkXYhk9hgkF<)vX1!T6MXTjYDgc~uJt#! z9?8e>jr;@-#+IHA>ej3ttgnU*a zGKe6t6Fkm8GX&w)Ij68%4`@8qXOz(2{Xz;j(YYoPopJa-N@0)AByjZ!-2vv-JGnF; zmJOV)%tQ=;ug-Vzdp9}9FtE4(*B4?_6nn~_Y~bDu7+4t4eN;&9w8G3yxQ_tq!e;$Y z!`2*R+|ZhHs8_f{ks2Js%E=IqM@hg1G_nUTCPB19M4!8boSJ4!YXW9iYumqU=?4fS z6(sGnMYD%x*Wf&$5QDc6EX9cU&w2&)1%U`$+G zU_n6@N>9%vLmKoB%NDk5?n2pO~s2^w{rO>H{2?#bUMRdAkF2TSF+1f!G-pg#yu=sJN0{ zmo8acl;~Sph7lLEu=;7}c|n_?)O)V1A4WT}Dg~wg6N{d!cpfwJWe)L@+{97#JFsEx z4xCI7sDOdmhPkno)gAlJ?OnO{L3XX25j5agmyL|<1_h~OkOVh&{q;bveoH^#JSY%d zSjTCFnL^sz%PSB9Zmf>D=RR8YW6^eZT*p@;}d;d?^&4-37@?UP? zzl?#pnF(bx$)^Yvd7!d9mPV{7a7m>!Cg%;zjC!m4t$LVw=oVJY_4c-RckC)rRm}q3 z3h-zP0+4=MAD>;%F~1GJAY&WHdQG?pr1$fJ#PP)ULa;V!!;4mBjfE1Z*I{-)jEd=A zwQ_h~N6;kr(me7rhE}VGy8=U7tgnsp2&V(t6&`Qq`wIjCrLV<2kzp?)GZPwsA$-?$ z)d|^QT(Y~r<_ThsYaPJ)FwcQ`qHCTga*eH?g?0}NS_8rfXnAH`IDG2OWuz6x8MeB+ zKYc$so^qie*a;fBpDW&6J`AIB#q&a_4l#-*wjWdnCwDyPb*~V-|Dp^&YZb=3k%2yP zdr%%V&HNi7=N$Ge8-|=!+=sQ%NHZo8wCw;0_Mqw2h>NxXfH2wdgT@~NXwV^7Bz6we zL{rf$2q35w(T(KYN)-nLCjQ3-@`aMuJ@U04;?yszte$PRntCmZDzBxTeOSyho37^44TP9=Oe3IdFG7bNG=B3e$%MqF{d%Rt zZt0jy!(xWRQf?EsqT^6PCx?$byn4#rcCo+N3~0-$DrWCDCzYZQqsm9l2j_OtGX*-duiZBGFvj zH`E&Pn(Ds4@6%X8Chc0D_`K;YaX;2~Uj?%BWO0dui;1#uo(Y-?GEv_<3QknrW%ilec?Ifc zwtgKtXHsx%>;2CeBja6spi9zMCK9H?Q$8>@ylCgfq&-SArLfveyWE>h97bs=wpZna zx7pik`L(6B6(%=!l42$DfPwbVxnOQw$GB^{@BDc7RA*hZb3t-_^cdPHPg?OyIdI-L zA{XY#X0Tff+VohfILs*ESJLodZFqL}es%V3k9QZ2WZILA95x%37DfkHI~p%`ULv{% z!FLR&-E0*PufAwhdL*ImyKD8(bR*-+ruwoy#|@u?2yEXxQL(d6=%kO2mhW7N3)P18 z*KO!8D!d1Jcf!gw4~3Lr8r#xRqwE464+G@*>Fh{NO>;ZTloVI@`8m*)(~^Httfs^V z{d*fDcTflB-_36_ot>9y8U#)4<_`{_pTjT2XEdEH4MbfpyYv)S1^{L*BMnayHuV+n z0?u;l2M3L^?9-t~m<+L|Ci>SeJzOEgR%!pu;>>b)b2qmRd2r11#6;*z=8sdGHg1$% zF-=pFQ$Tu6Q;VJ)LEAT;J(cTzHGh%kURB@veszmv2V{S;0j~n~93*W;^6VqKQR~7q z@O`ZP>dM}8%Cddmdvhln-e>Hgk(Q{SacO}-*OH@2buc z_mS#PovvJBoO7hbFAVHtyDV2FEIW4>y3Qx~k5edgBHm-Ko4cE)!BV4t5chD}VMdGn zaN2w{@k}hxz+KAC3E2;9M^3v<1+P?_D3e|0>}uQU5HQ~lVqwb@^?g3_DLZXqyXNdW zwhH-t|8u{(H$pfQ;xcaan5wGM+oyWK8pfd2e6uju^EO0jgpBW3U!nsK?Yi^(6j$$Q z=E5>7nL5y9Vc}$1oU16EP+cx5!FW*V?${lWU{a*tRLIRuo^Cj)#ac#V4Q|P~Oj+T9 zom_$@)5|t?mZH8Mqk6UDz7Bn){q@9@VJfA-y*H3ODajJn5ob7FwxZ@PbW=(E+qO}m z+t$5KZ8yKl4pUQicF)1cjllGCk)^qVOzBPI*KO||V90!Ad^gyb3zcNRaDN9%HE@lC z7Ta4%W%=)@1fsp!C+{8Hl&8pdh%oZ4|2V5`RvnMf;BBVfm3nPP> zqco#%@Of$I#hvXo)h(p#E@(KN?cVEo zXqf8Q@?k31ek}}KI@i0d90XM4VpCzPJPo7=)ZY(U?UZEgbLdTp4AvxbUdCo6Y$a8Svi8|Sn zVPjIf&=k|AN?4HAdT_|Gr;r=YXHrZXq}vCQl9HA(6YA^x9>Qb28Frngu|0rQ-ZRTE z&)Slz%YFgBn)2Bv=V<1YxiG4$+gvOBE&ey)Z5LWmtW|r<>tjI;Db*N*T%F?j!%V# zNy@J?E!Zj|TlYtgfB=2)Z!QUDM*$$aJ$%#`bD;89)1OTIgs7X7vIGMq))x^t2V=Fd z^ro9;gS-1rZJO7*`$O$~tA|vflB$3}^{ePgD=S;p-`=yW8STYok?er3bsKYh6(=1W z@xWspmzI{gNQrEkgP`K-*z=aD<+$Ix!60g9@#q(rehpBZ^Qs43htw3Jp4Kw7lv~(9`xHh@;kEA53tydR8qip65zPm8z zj>5>|Y(E?}asE3DOPDuOB@bFrC?ZnI#$Ba*1O!Yk9whix)jM?aW-vcyfFkeLq2y90 zc}FwgUUv!}tFm-?Ty;cXI5wWd{q$*$|KFXR5o#YnGUhFFkEF2hQ%@0Rt>qSUZv-$Ezm{8&Jvu*#<|Bbo-R}S(yv7n4qx8UKr%~M&gOQXZo3me2W9Gc>Y4)*o z%cY>Nryb%~@8#GVOr;Kk!?;0ENwF!mM3m9_jaq%jca=CL4af2bfIw&IO;%okFT*mp zg?C5&&1`z-F~>DzDOG_aS+(D{a?_vQ>=jgyRW@dve-scPe=K@GH4S*+yd>X}VOM;{ z<(C$LJH zw${$p625}&Mwf<(36EN?{Juh0SR@DmDTY}uD|K)jVDO9 z)pdb8)1u_K$c{@0?BT~#Oq_03siy)cWea)R5FcHwE#NSN=hiVffE-OE%xb8V?wLC` zrWh(^%od=PI=J}GlDy;aabz#}D*WN_m$rdR=Fp0&OYa{FmfW%7TUSTHpjB$?yVdZW zJj?g3K-+q|&9{z@T?HnJO3GH|UAe50$)4@y11rB&Zn%H$$dMyHlSj7KoqltJ*&v<2ZR3GKUb(@fJx6`67^ECSB&v4qrw=0=n@1NRvXnRn(?3Db@jT^Pr3{!f|bV+YuDV=_-T%#sO7E_(aGz<&oH*ushH9kyj1Fjj73GH;o<1-3`| zBBhXW|HKFJ>?xQo$ZW}Xu#(srSDmh`cd%@TugyN~vU&BfaWk>)1E2Yf*7z0I6mHwN zkv>(@Iyo9>Xemc=@J-c!R8OUJSS5s1!DL{aJc(Np_?8z-*CrBka!&Of^SfQ&U3_&Z zvPoOi?Z~C`UaaBTDE#oou5*ir!$c8R@8={_0anh}POJJdcw-W;14`p9Hw6a- zVE$^iEJ-#ssYJEcWO&UBVBy;?Iu~{uS2;oh*cz1}&y6j6-az~9YH6WWMFpJcnAo6x z+4QAsI(>-iUF*9k-HOU2Q2#CRH3QC14PUDdu+VyMvX&Ddl|^Z`W_LuZtwz^y?YE|; zZIkoXseiQq^*Ui?!iv(zUh=~;l+Y~*CDp|(L*Nd4x7!p~Y=TkZPd9r{%$EwWjykk> zjFbQyNa4MZz)Marp~0VRAmZ9NPS26*D&(}zs(hu zep_SZdRBg&*L$=5(xn`EDJsLUY65w{pWyyvUpw6%}@@n2(Wd4yOcOVZ<18d_0lBtbR zUP%eCY9bucqMw^|X_>%3SqvFfACZ(48^3l(yNT{6>Iu=&58u4;CYRl03_}@*;Y^MM ziZV=_Y|QBvyfaA%v!&YKDsk)e?vd8&6?z^U3)JOK{9Rc!R`!1U-77GC+}zBRO}8aI zydCn|Im9CY95-yZ5XfRuxDJQ6yMyFmd)7?Om>H)q1EL?TsEyfzXAR+7i>Hu!ED-v~ zP1W(BDF;Hf zT8+)DuQVV{hmRP&lyZ~ZEZDuPDB{-m*a&YXv$MdR7TTWYIO^){m04D!ZQr-oeX^5# z9hXGORG1$@6_!|>4~-NkINum`)s2e@zA3oT@Eedl(B^sdWLsGcd=2mXEN5zJN~ecO zmH?}EBd`k^|CkO(*C;&Ig%1iB{XR$y=GR0COI=Rvwar+5N5~c`x~X)!!*g> zx8RJJR`YB(DcE|+*7{JN>qPq#b;lxKRZ)GZJVmmRz?#ojI^W;aTF$|!30z3*1&M8fW1AU(t@^aW!9d2O|S6=S}qWf<>O|eYgL2F$0WoqgHxEMqC zlx1|D%cm8PuNi;uKc7bb4r0j-4d~BP_wzm9RyVYHR1zkAF3CR7e(>NygsHooon4h5 zmx0CnR8MuLvaBqRK=scAedncXcB8I4ckHks?SQtKM3F<;WZt0`;EzZaIRFc{)_((c z)`skw|aR-tR9dsg^VXk2pAB@ZSEjG!r7eRkP z!h6yL?ki??dV+A#O?D<+EhTHJ9J%o$tduoq1q$TR`MWP4M*sSD&DcXOPdMg%lAH$+{J|GltmeOf|5m z-cC(#rK+=;H>qjPA(G-@`92c4-GnRSigz^1C}HZP3HbNb3uTKYBFIt~QrR;Jy`CM% z-QC@nG0ADT>`gv$ne85uUn@J1+hPLClot8sa>N^*?-Dti|KR2>FmdScy9c-r+@N8^ zrq)_!f6LVlry8}^-Z)k*>J89cmSH+mXv{mq7?P*UZznUtxU&Y|>D2?O<6MhR5plp9 zMi#zqwe2~VtjCDe5*7yO2;m})zqLwQLvDu{hJoMfjjXUObN0hu7dKIEBW2oBml|RF zBKJ|#K$5Fcx?W`)H#ZU%*p zeV1v2`$o^l^!{RG>Q!%28X+m4UVA|u#kauBU%Jb*A>kpOt+#{S)Yj@Wnm@L&%pAC>)_SJEPsyN*9 z(U7Rf3G>i7G$k@9HvNg@GC=8cS4-VKA1Csds3|D_SxtB+rSr53{Dym)hk30}k?u69 zoN(#kQr+V(1|ng*FY+w~q@<)6mUy{-`0$}D%y%Y90SFzFBAUC})XeV^!i_f|=E2j3 z@5;Z0+;oCD$)u++tAhP(ZfkDduIxS)EM2FN)PCvDvs!-w{pnvnhc66|KZ6d!zkY6> z|9@Ze=qG4f|Lf=So?oCj`mdkY$FWEF?{6;rxgBvh{`>Rdr$dNE{NJDBzvuzE_g_DE zH@re)UjO>xIrF~{^1mzcFN47SuZ{eFPYusCr~)otxx#bh%9Si&#hL5+3&TxR!S^@r z)P!FZ_iu7MICtm$Tno`xb|ss@UYXzNt%SSqsx21QYKx_v6sJ( zHJ3-R5Lz-U9^fGcL`z$xuz%=ZxpLk*a~y^Zk;`)WdMLH5yTB!hL{f{8Fy)Ih^SagT z+Ga}OODif;o+1MYfXtp}S9JBxJkgRkD-_JP><*#khV0b$cKl*vq&YCmWoM2prEokmh>P%jExj?4Br`TP*4SYV zS==^0c4pDkL-%5eK-Qhn#@9q*7))hU97=t@6{)6EK;-|cO^r!>9{*rF5AKoJQ&qg8 z+b_7GwCB#+`-x76hZpDm2veCpV*-t9r^d4f%G0lAo5OTD_HW>B3c~;SC92{bDemFp zpT73KJQbwJ{rF)(Gvvn`S0kN!48g&v0FU+L>*xmV#dO;a5QCEn;-WzYC^uyrC!y&Sqi|?sUxJt%VX;RMj8WZ zI=|Bd#37NK>!lCUE7svQ=#uzM)uyk!;Wu83b51kt7%S>qaj;pO85OY%;t|uoAv@Pw z;(f`{ml1oKzbH3XZnmS|*Uf}7JY77rr!o`wV)~1Lg+bu>XWWbDRZ>Z5gR(m1CVhaG z=)p}tXH1>SdEUHz`}R7S1^?NMUoOYL+AOG|Fy_&kcj-5qpRWBB?=#n7m}7HAMppKe zh6WrIliQzu$+}VX1PRuI#;bY=y4Vf=UCf##hM~eQ%ckY+^-AU2-;V&Hl*M5onE|dysp0E8;R5d(2JVK+@ zSDRE)ni5!dVCMO#u&^3X&UVfexKFe{W=Qodw&o$#roi@Gdt<`%(}ZAk7DZi<&R&B% z_}sb5_isjZj`CE#2G`6o{ZJY5IsQ z!@qH-L`}5`?(Wy4(G1R#A1;lD>z?5BQ7JIRP_euB$AgoZ`YzK|2P&hj;t@*VL@SxE zsEboh%FB~yjS*RgL0*FrW1G3lwc8{iFZlMv2Hcm7s(2!Q(NA}$ujnYIJZV$laq;oi zDD&=H>dhZbiET_sxc&Jzr#eNd#^LaXz!W%&+yyiMNXtW#r>(54Ox$~1MMAB7l*2#j z9yz+#(YvdwvH#|`m#3V%?DNXus5~K&b8=*Rrz7&pOx=5U;1JSN_HWwt&+U0tI1$LI9Qw2X`ppw{}(19b_)*n|14wE2}A!$b4e@#4Pd7u+BR{Hg5( zD=YK_-aPpsy|N2rZHk$-jyghy#$bcpUgH_xfW+N93|FCCS!U7LzUT@mWTGBRU44S; zOC9y1Gp;yXxcxC|+8^aAxxeBr$1@pJp(o-Flus#SnkxxE_9IZH=3mPKW0f z=f;U-wUy-f=SBf`I8Q|OBC)C76-wvf*@9!9An>IJ*5cot>&X~C$s)dIMib^btS-SH^d{g; zoJ*aeVvIQM@~<6^cM!MfZE7m@U6+3-=(4+q+18+#HCh=D#tXU=bDNgB!Ap+XJHk>s z)eGSc9%0(tVSX`4zHPS&_oc-AW}1Mq+pBnBz?C|X=Q?eh7+15*%kwMj92|67+S*cu z*bsYN+cDEi%~PK5b~(*2FGLj=fP?dOKc43R=J>ZAs0@y`IP4m7NvbW62FB?Me?v+F z8}41_ck6>T~CFD0Q%+%z~RCvzN%J>g?uJH6AGSgystT z&3ddx<~QN4y{>vr6n^LjEBgA#X#v;E{O;XOiUJH<{F2cGRLsJ{C~p8k@udena~tss zCzSqHg(He|^{l!jIE#s!z7EG@Jqixb!?i*KU)MlPFzfS0z67umaFwm;SJ5#wZ?`8F z497&t+Ujd)s4!}z>44GRF3ZYrOzl3jMNc0>MkD*zjH}tAy-U6G6^+SSC~>i@d%g>; z8zm*y;o;@OuI;?wy$p)!A&$Y@bQJcYV}~Am`IFG{AK-$?yiNQF_<=_@GlBEt#9~q_ zmzj(t2&I-aQQSb{43&rM%n5KKbZQY3*!+9rm-$|ANB#QP5a8x}kA@j!81YoXb<6L%AWth-?qk-?Q2SP<+!+elaGyfG zpI}#>V^~0d0VH&zI0nJCHT^6*p*~(!d5+enoB_ls)%osi=u)150Kk(xD7*U<2IfwZ)nQ*xFXDu8+hYm)LC&y1 z#5i0h_iJP#l@}hvU2xiOg-|KrZjx@4b9jY$o65^@>TS#t!yUd4FW+>f1_)V{{gq#& zPKL-<4xT*3e*ihFM79A+6#T_6XliIDsHyhOq{t_$3stkjXD6TKn47V-RERw=36+PL zWi>{0{j05kWqb3uR^~(9i$%hJq5jy8gL?I>#vhlpMK3{k0w)n(xG)gp-;?|H?crH2 zSV<8zHpqlMi;=RZcxUnZN}dOOpc$?Yk{j>;+&pmnG7gKYo}!9 z4?LW4Yf3qeYv@vn$F9Y2Ofy$H8AtMiJi$VN3tp;;{y=8!vGmm zQ&LhIKnZznZtj_6J$fRS&%rvS@pP28Nvm0Tdwaw2Ii*on?8z9|FX?%f-=#+CA|5Y< z`Y$t0x|QhUkBpB8i5usZJ>(I?va9`C5jXg0=o+o%F7k@;A_FEbmFm=%CKLt&M1;f7 zoia8yhIE4*xM{bX_K0^2=pxVv&^n1Qc7RjSk!@AU1^3ZiC)Z{1dR6s6?RM&X?MTs6 zlqOFVGwMnO6C6(_j01eb>$;TKg~|=M-OHlm{Y}s4E{)%PB}L4e+0}U^llG_zf|Wtr zzEG;Z42eFwLZ0-PwE#Ejc}HZ|^g^-02k3J!r1*v)F*(s)ARVeS_WG~-wRao$EQR#k zsP|C!f|vNd}x zO}gqn&6U5aI>?xqRabgyf%ko_G2PN$We{E<@%!EB{guJ+=~B!K8!7`I7La`4-a}CB z44t7;YW2M7sA+4i(&9z!Si7=n>Q_i z;7Q413sI-fuleHXWmXd&aw_dby`kmR2f z%=2AYlv167SgWl*Yz$d_{;*Mid(7Cxgf=<$6qFlpLH_`dbGwcw5N*z}rzW7LcC#6stZZ_ z(t|{V%^`}=;d(cD`jg1weQ3tL(h1!Cm$_`q+J~S)WIO84WI+V-J;NZpjx3qD2{)(_ zM0M1dgV(9DP{*ROVnCMYd0s;U0SLSL6u&3>3qAw`2?+3jjBzW17A{}8a+BZX(_g>P zseUXfJr$ImOVu1jK|wwg*)&{rxV%qTSVy7%UOt<(M0s{eXIGm-G*orT>hbD+tSCY0 z52j@A`KjOPuOE3(C;jpRRY?%(;V$+Z*&$)V3!PmN2eS3ImkP9EhOjV(l%RuFHVIR< ztuyu1ui;`8NQ&w{rB^!sm{$-UKxzHOVchXsk5)7fEDhD)U@xwDtv%f`GAM?-mVP7c z+mN*JP^kvPsH{I)98VR$sf9cIm>{dfeCynHf6ay7!KiOlQp`&e6b;B{)MmyL6kRN} zW996d6?GHTRvvkV4tZbmQ64(?=cD(tEVzdBQ5@|8O5IO`J@|Lex%8p!CSZ%C)s=C^6ltsl%RAS^UK`-X8 zwgaRD!C_(_5$7u~*IIiGa^ z*Wrbw7b_?GPF?T(aBI|EoA=g|H?2foxFT1CHZ>LMFX(j;Ji$(JadE`sfO=zeDbKMl zo~3Xpn=qn$Y8i?gcLG?W`b5vK?-53U5O-9B2@9LCrXw*&jq*hp@(5@r`}r+WpsJBl zwfy?*&}f*qmzT3#4X-&)uktN@x-#wf-fsnWS(ItxG0lTJ zYWBY6$A-rl)7M{miVys#i6Al}-tWhSpCR$Z6T&@f>?*_WME)idh+kYq zlQ$*3uOciARX7NiC?4D|8K@;$A|pXs7*L=-cd2Oc5*kBSDj*bWlv)g_69xIacQl>H z8Hp4D6_4B6VTu5pEK=;qB)S(1NOa#nN%=@Vlxm|xCmX*=$*Oa#d#>p8?bOcldD46d zL};gK@w~Ed2=QTB2vOE%K?*9_L*vEC76!P>!py_c%(q7&nu(qWtnmWnG(m2x_Wq&vTxc9S|1y7`YY&H4O2*?k7%5=DhXwYPj(8bJf~& zV!{8Mpc?QXdv?FSVtN0oKJ)0e;<;t1V?Oa|{0EJHx)3;+Rx_CP8D0^!UQtw9G3Cej za8O*x!z_|&ERoIZ`j^*`jaNTR>2TYJAuy5WP7*CzzIF$i~d z`^@)@R_=dV6-So&tzdx6c=L)?*~me*hI}>4sUtW-~8$mb;UedZcQz z0LELP13<}etD+=E@(6kr^gsT+M1ux3j*D8VcDx^xq8C5z@%xJBE<$QRmPgOH*-nV~ zp#cF05(vjyfwcK$1;UJ^1*IZ{Tk1!N_iP$om0qRuu|exB*S}3-0KTGe`&#$QT|1f<6vncBMLVJ z7H=086>%ME`p-gbsTe_5W-igl>cYZMS`DD<&=44&L0FZFZo{Q` z$p>aB!NN8Pse{QukiMo665#PI$m|(I@#ZmzgLhs8@OGKZ)B1$q(?{z!%C^xJ#$G2i z3RxB2TezK~9laG@k{SgOp4NDDh9OU8*82ZEXU@CGeh28baNW;$t2F17F9SA3h(?Pw z_!q(TAoC}%l#avf2g5nQkqx<(^{t^;&V8yIL5o}k>YTt7rNBJQ{(1*dV%u38zsZC#6Tc=IMrIo zAV1n9L^RHm0030erv~b<2s)i9H&Y-8@#$iokW#&dFt=8uL~V7ks5x{;M#B;SN^??m z8@U#Myf)u73#?6OQFiTdQkAd&;naypE=uiFA0Hq3;8R^of(lMs zf4U`6)Ef**R5SN08M^sWCHWHJ=gQF)$QOmABZ?!!7!i;qeJraoU>fLvYxx?;|J0B9 z6_Vc7hz$kw$qhb`@uHlz1|XH@N<#o}^!D77LWsQIGIGkzlK{B({-)aZ;a1bYCP$Bx z*g2D90X9IH>v9yD%|fX;T26uYsAclpKYge=vhvxXOMq-Z4n{{fO#aHBF#QH8(K$bs zH+kM$F}B(o@?wKm>LhBsw`LCu$OE2>ltjGMA+)+m!Bg#77ACaMPM?0+Sq7QdPVTk+ zc0a~T0MBWPOjGN>w`~9_(pq|YB@JqbbAE)*Td6#b!Z>ZE_kD?94=oLqHmEQWl?0yh zbT|j~P>9q$Av?Ea=n)J@Nd>+%D(oVwd5X zKv;)Vb)n_83Ne?U=za9awa;gMNajXul$3~mhEX_c83xh$ot9AXHM-@fRo(Oa?|*G{ zJ{Fecu`-TNU@fFV2K1U{{Ue9yBTli}9U4gkX{<}Itiz_4$07Y<6yFFwf0}yrfD=IfvLShvC)8623Q1Zi{2b4tCyRKQN9|6uH zDIfrm0*Gb^vmno*Cx*3vx-$&QuP5~_EG#sBzn2~)QFzd5@A!1Jq^=*Kbd!7;DiMOa zT;awA**24>tmXIB5VNCLCN72I>Zk7%t{u_lAK+n0A|a6*aI9H6!T~7MNE4OE}$X{uDS>a_%mVXll$Q{ zcTYT8*=!)uAt_{IYfAy3#c`1VS&C)*-&&B95AI#p#+s;S9qDUYd-wewynw?oD&*AW zH_|@m&opW^1*OQ@wQqr#%a)qR6{i-oGfpIlPy6nO{~b z))LYR$~-JW6-9-G=O#L~p{5x?kf?nF4TuB6!hp$cC;lJyzB`cW|NCFco2C(284)3w z8QG+i5v95c-Lf-7R(7duDP$8-A(CvahMjoZn=;D`x#AkX^Sm1GPx<%v-`5|X&pYmY zjpy?`&v~449_Jj_-tprs{XbV7f|gxR)6)EXz13PhhB(=dOi+$NB4seh#?5f~>s|T1 zx!!9q-bK?E4pRltN7n=$A^Bq)Q(s?CL<>;YYzC2b8oz?CZ?{*8O@mN#Av$Nu(Ke*} z3O*+VG(BXF_l5Brxib)qm*MzFKz^mDy;J}&u2Z!*K$02AS<1oC=q~^-rJbx1v`zSG zAJX2x(%YXRzY5U-YK*?aIbd+HzWe|!HkmvZA9_ZuE~8+^5{rOpBTS`=UHxtfsfPkq zS8#4q1fxp8%XWqkY|LsD;-Czo&~g1p)brwLob<|!4k;ta(ESOg0=rs|#cRXim`Ye5 zm~Nk6wqk_>#_|)1UqE?M(_`Ii*ArhzF9j0Ts7Uz2-5d%alSJY*QFH#bFqpUR|K61g zTU`d^EIGtd!}*V04MFyE(CR$BzsjB;ldAQ@=8F5JH0M zJ^}&MBGJGs%^|Mr3|ekTiZ$f}Y$4_^62K{K&Uc60vOggC(^dHZ`$nw%uLKhDN&*x+ zm1{`!(o$1H_QR7czsF83)}ieJdN!Csr`7|`g)JZ*Gcz+^v?Vj(b$ONxCxGmJ&ygqO zeE&!;&u}32no=yZQMLtKuMAN&NHtb$rj)sMf~p9bV+?i}hOjL3kRNTEUg?`gp&}_G z$P3Fye@(fAj1*d82$Zm(oWA7bt7Zd;wAn7tRH>+`siFL&29~BcHI*AOvNkD4Ypx-1 z@lGIgW!Wj5VF&q9;)|&X6z(64Oh5nJA1KFCt9Y9=agKl9zDDmwuXjyRJxYWNBI5Sd z!#>#gG)x7Gmjp>RAk_*IwyW6vnj%KI9O03peT(cI2A|&Eo=Ju=?B&^2#D{?)2vzvW z?!kE1DL)wfnJOqPyT`_p&^?IUUFGt951+C&w35Tuvnq)fv1Z=!;1)`#zawo$D(SSR zJdV&iohr}zp6kgb_J;uHYqNzSST5lg>Y-&QS0KN`)UIyrBOM_%*;F} zzcwd7=#b^A|80K0g2kzaI$+Nsf8^Msg)WDH6bpjeOP8C$C1H^OW$kNE;#H%JtF?sm zfB~ECW-mK#U1LY^HI8X(H}A`zglO2x48-oDg~`zl_ycvqWbYg_rcv&J2h>d;k*Xmr*}Cm{d{rW{gV8a5~#Y|;bs!rh-i_?As1WOPj$eDE{iuJ=D}SW6Lf zzglj4XEi-NUCkZR$$K5AV6{|jiXkm_C7%F^sc>^kOLZGpu>X(YARJ%m3p9bj2+tr> zX;q%}2?el-!RyG%V$i2m%cYD<(|4Gy8Ekui?6?GS7?<|^Ig4#3n%QR|@w2j0&sEkndnDC^mp2H_QY3Pm}QM zCHi!di)pmP@O1V0C^}Kyo$gaJ%gk5f!DY!s(ZLwV2~bx(eg0g-9fH%0b9(mfeRlW2 zB@7cqUpKepv(;xH89s`fLPq_R^&}_^2ZD5)!q_dg<;&oYnRjHBK|;U*lA%O4L8>sy z7@Z>*GJ#|kkt0Cd)k}-DnB!ndQTFC0+4cblBb!MFV8tevXv2YKBp6hT4)ZwVEEEl%_d0ot0fVpBjg`8FJnP@?ms1y=gg zd)czj#{~URv=%HuRt4h0Na8yTQHlw?EP8~r+*aojLXhH|>1xM0zQw*%hUi#DD+bGg z@}6#=kFxnc(3Cp@tOb;j3qhHzK9od=bLu1NTSK6n9E%&*(FYpJmvjP=DN?{%3{C{F zCtCOAKfhEe1^0TGvuHfNG@cb=B*F+fbB5mY^bmld3pE}f{P_0|0|arB9sstg5P22F z3=H~8Tux&!^pJ+KECCe}jDmkNU*AzyK@?wS;u)zzO=y-#3__08!ItMFQG8I>rc?|C z#)(OBq+L<22R%7>hjv7N^+3F{K}&kaj&KN!03=tyga6C>1ad~h3c@>C=@H+rp0#O4*C_w*h{7`=nrTp?Wx5f9^VBoL{2SIXs zIFm1Ysox@mR4W3d22oWkU?<>9c3N_*ehourb`8 zpVYdc=S`JZ=MIgpPL!#=L$q&>29p76Q2FS)%F24Kleur{et%0L>IIHPHRK=_=~*w7 zn4W<%%?t5WnZ=<8GfDKNPdl`0Rk2tsGBxO~L}LNrz0>;7$6*TZ&mS#;44b=615frO zlIq!i5JMy<;G%>;<|nPAxuy#_s?6e+zP`Q?GWFb(`SWY=|Fwbe)ED8Y|MNQ%625z5 z2mj|6|3?h{KdS6sGV*`q;XhB!|F0E!Dg=;fVG#1b2H8&#{aWamp6ALuq8HG+GLewb z9fc4E2?X9Q>XLI}W9 zX2@ERF-tTrSjs@qBB^NUYp?~bGRPMVFm4;(~$&%FLKCd+VXK?h+2jSr%+{ay$%TRfrvZ5WhmNB zY!&$MbMjM0)fkj@8)z?Eb+|F%>x*pG>Pr8bY-y02*lRhCvccmWDhio3m_fF7oaox% zsXK0T)QGWCiIC>E(P?02Q5IrxOqbb0`)xTVIN95W(q}>}`lHrthtoIBwvrHhmxGzF zux%>j#s+x;jej{rnsGLK?v^22`yZFLAF@S>=SpNm!Hu2)Tque{;kM`-tvZ$AS^spX z3_0~sEc$29#WCLkTADb-E}0QAu^*O&9>%rS7p$NHmYM?zbxVtv7K+-9OG?3704F0m zqe>rg50xzTu;xS>T1YX#ZSXWCC-BHagzQ-Sd;vsrtPhKevpNz`d?;9Ys`^F`N*qIi zDsl#g@Wq7?SH$Ln5n`f!PNQ*7CZ(I*5yc1D$V!3--~vR!J3lA@p?!Fkh#4GW=)pd{ zWO9Psne9lFsY!_q7!s7P&8W1pv&CUKnnmyh@aKm=-Dn7wSYC_B!?-3AKHANLPFU2mN}c>u>ZI0vq?r zLfk^Xr)L|X9)h%#FL`9nM~XYf@T`7uyS1Zw3)RzC74F?b6^1 z`}2&=8u%V?5hhJt0kgwh5<=V`9hdd=cUt3{oHLCMH6t-xU68nm@&Dc=_X} z2~H5G9rv<$FlbmPph(t;tPC5r%adbXGa33T03UaQn`5uMWBCv<2a33P0~4^c6WML~ zl;Cs_pU;I&nDus#icYtj<2IjU$gpHX`vf$}ZVDN$?E$B@nGU$%LXWPyNAg1kfeK82(X$=?v2P|w@(Yvxj zuWSb^Gn{HsXb(9PB{snEXzc5YZ!Lh_D~b&VE}$yAix)3~tU|)?om?Iqo^b`8&+g^m z$1y?P@*$<`=w0Z1d;~U*200eTSx~`@d%4#qJT)SU#sa(VLeSP*psbdLKH}U7O*Tzh z7>vY(hf{l|em10kGZO3zY-3_#4#-%i(m#RhPW-LOx+~neIx%ZD26c;yxOTdq^fFbLgo-kG!|ps!G#T~M-m2d z1C*R1@IVK_9fK$d4KSC$W1jXCvuG=a@H!->fhpq$fqY}Je%QI4(oZ0#tD>!~eSWa5 zrKKF+Sfno>qMI3-X2;84Ove|(D}M*~^x=E~C z*i>Js^x#Z7oU!l7cbqQ(W`!`M2m%)nc@54WY)&LJRH!7NSbRnZ)~fR*mwWiFQKXA< z6Ho zD(F@jL4R*^2g7OY-NJRJ1f--mF6!oZHhuD_DJtT4DYKP^nworbo^o&rjBs!=$d-t$)j^WW`i3^}7<^Kp-pU za*yekr!f*=b0SW<623MZiB?WZB=`m&NZ5;i*@!arukwzUe7(*2kYbYKpN?ZYs$T^# zj0CY??g2yFe1P2383@M9u4Si5tORcQ|IBM;P+$a9ikQw3&u!OsV|+;XE7z zUm$TcXxvu3Fdbrb0rx$`*Lf^h+CcTrF=p}`u7>aH<1T~{#@W^+Q#IpmbWB2Gedc;Z zfB^?bo4EM#ci+B%X%Ol;Wxj(oLG*wLWsbJT4FdkNCU*`~KJ?F#G>F_hs|y{1HoxPq zWc)Az-q)&-U{gMvnckzBW^$}MAyafzWpC&VF14-g^WM>bFS3jt;`!EA!ReVx?cYWx zCqFc{=9=ma!cmH&fkJ~3`Zd>uJeXeSSZ3ea>IZh9j+~;n2(RqwYJYz4xN?uX)5vBY zpdB~1MXXF$LM7+*N_S|O)Z5r}AO6kaBtw^*dpCh$d{UMQ!lqz!fcf7J+=)+R@8R7V zTfSXy8x$AM4EoYcDKE5#8pdo_PdiHAKVr`s!YFD2nu>sb!WmU3aQQ=QCj*?=)wu3L zd$n(PlZ9d#!^#ODb*}EqXR%ebavRvqcK!antq-z}AHeRsm-WvOAJz(rTClrvo=QP> zNp@kvcVxu7zpB)=7_vJPr*5{ir5a3j)m7o7q>GbsM2l_H(|2ckxR2N_Opg1Py5=xT zpkV6<8EZ{V(^vVX@>6$q#+}x8|9&-SGkHyHNzVeCi%GWnex;UpEvva3@EfoScd2<>(cqVjg7+B^!hBCN1d&t5@{~Q z>;eY3?q11%<5~-vQ^g=qClfYPJDl*!E%K&q*suk=C?Gj*eIU2&}w{+n{c zmP_3Z)*V!0jD2y%Tv4hGwFL$u_d@h_7>@movs#=%!UVXPz6_fY*f@e2UY z#G+2g9AE!BgcP*L$3^?vOYKeDvfdOiF(q-nQ-W2Piiqe)7`AwkxwQ0|VYVxC@U{2% z`TJb6bVv4KgH92Rc=b6PQ%loJpp!>~vGyz-OB&-bJAhq(%d0yyYm3wNgn1^Vc;>T>~4?=@e z9XSU^cG>@Xga3S-n_Y{s8FqSV%s(p1(ZlfiYQQDhos5^19jE%)nnfowsy-X5MU?mK zkS@IC?r!^C?Nhe2)y#m7kgH=QA?;=Fn`7lCtM={=xO2hza7r5AE|X5&CA*f>GjEfF zYn`!2t*ovaGx`Ke5BNIQ2v-@EWZ8DT>WCZO^eEY+A-MT&Vc_H-Sbh73_>4-Je0sdZ zGBR!{3ovz_38RjQdK{CWXJdd!-$FNJSibO6zG!J}DNlQ#S?`RM!&B2A(%n-9@7uoG z?rH2+2Wv-fKeBhXY5XGLT`<_B^rY00ukMPN_Nk}o%-jrtZvrk|_fU_!@m+Cng&@rt zTJ4r-#vj4&a-lBL_Pewtx&tr_!>1olk zWpk`$$-x(CR9NQU1}?O=iGzaaToGWiEw{C;6Baz_iSt+~4OKOk*t28wwfE-6_D1T_ zw$_RaUhO1-P~UJyfnHYX?B}W6ZKjL)hdB)9VJ~7KQg1>~+Rt$w)T;iSlAPiv2UtJg zFCSCpPmq={F{(Dz2ZGV&PSy-x--q>aF~XXx6VoBCFZF15Q`^=8v8F{x@YHnmtc|B~ zc>oY94DTK>^UyRk-CHM8%p&jV$j>;^`C%5r`a&o zQMT5YQ57fcedxMBkW{7($3o3O9|7_JB^c~L_>lqE9og2)449{ zmhA?VbBgM|=xpm(BJl9i8%lRgaN%ZU{N&Gn5aYpjKI6Oc(%i_1L$+x{gl&Tuhe2)F z9bkDFR}wDjN+|2Wwlb+}iK2Oyg$KrMLu4IY)Dt|uH(c~wdlM|dA245Ou)1t4?1~=qvO#rhH4R=1y^drbdJ<5 z*6n=$JX`oZ*`R};vYsUT`w;ZrEgG3n6QZY_6A00Wi_114-CiuH_j3QB#f!YDDd)@Z zPmI8&y*nBGJ>tlBmCNep8Oct~8p5vZ*xpEqU#OaVr{`zFU$0jnv}c!gH9_&t?Ipup z%hhEanYu2Y?kA@{EQxhARaQ#cM&@o^0AL??0oPeO(3xY{xjd>WRMvx&wbo==y~7|x z{oh@EMB}Hz5$|;8numslp7;<$=aP{~p0P_sFr$M*wp-+&l_us~MJoSVykzCd-l_uf zFoN(@#MIRHQx@rfH-Tp!dO}?-Yd-zivw#Phm%?qk+uBT%aB_rn^FzA$=)nAGNOT(Z zF&wnOkkeXBj=iJwbnTeE40UklGwTXiyO!{q+VbU9$W6R<)p@y1aYnF0l}NknLV2G% zA&E08kbbX2SUP3!>2rL;X8k8n&6Y%;v!SKi^2}$Cv1exepodv)l}kQCeV>1O3HMZA>v*?w- zmS*MJCIgM!uttRKdiv++#NI92##9%aqdqNN*KiG2IXONZViZyQGPLqT`?Q_h0yVaD zJo9@FWP0$~h*iu?k6msIT;QU~eK*B+54oXpLFxIQ96Mb>K97#n*CLQj|au5&7 zQ1jS4$emOqH8-udS~(e1J)57ImL^5x7Y#NoNF#>TFNm4Vmux$};{7GZGblA2(zP{~ z|2CpXPUiQsA{t#n&vosRqDTAsoSRObet5!2<{s-z8KHh_dE2K-jnp%{-z&DZMlHm- zFhNPjvFR<9&(Zsm1~XG%U`q_~J#qHj&V;Pl!`3#QYvr@&SSz3Vd)LLK+X@zZy5sCj zz#p}S6q)@1aR8?7wWd;|zIEr;m(Esj-USNQtY)R z*;<{-mDVilz_rDM1BkZ}x6P5rK+ zrY0lfU|upVxON6-@OCKOFYq9C*t4hhJ*L6w-A?*){3IotUH1_%+mx$c5>n+KA`fkm zMZ&;tG`$VZ#ws*zCrrZ(^IPg2AD8e|Z2b%$KFmXcS}^Eg$q?OXm=c~HNH2UZ>t$)Q zjdGxnwMSdz#p0z{x97r8Xe7TIDpgwF$>9%9-@ufN(q&aUgOipVg0KurBylaIgaB~c zj_W&B+|e%{$OqlhXg^Zk^FTBB!6m%Ncz4xnI*O`K)ko|N8X>*j9xs~>fuYrY7N_!I z$b;tPFn_u0&XJa$o}3wo0+392N=05+<7KwYGb~O8mxVejSp;}aoyB=PoGT0|SU#8K zA3Zi!Fi|uvVm&u$gJtnk<`5_xsHZ!ftGg}Vjmo&z^!N10dh^{NjVxUnhgfcSX4&jqANU;pVKJ3o>S+mmCUoA+c#TdyWi4{ge+a3orsj1v$&btIE}~~#gbao_I+cekf}Z83 zH`G)WXo9;pUO{jSyzi$dqdpw> zq-&wKdSMD0KTe|MTzgBQ(8a^$>wVFBUyOk6`H8FHTx4(g|9ETExgnyb|0893p0tVd7&FP2?=fdEW4I<82Q{$Zz1w93hy&dh|ekH_}6ou zX02l*d%O2E#}?H%ntkxq*PqcN*{Q+P!MvldVdUO+$uf~xv5I(wXKGLrdXv6{T?%S* z?)3HP6kS%_pC-B>(4d>g&%rUJm&2{kQQ|f~_B4IQ>L1m2m;Wt8N2X8yyAn{eGxo>>;-(eA2I;4Fmv@K7glkKhmw@a)(jVYBuCh!K@N~3O-1~k zFfQ074&W+#=`rg8o59ue8(zHpCYf4t(M8gE+CFVN$SC9grA}1s0Al#118)-cv`!Y3hZ|zv!KZ4p#4kd;GKW1186Wh1z~p zAe&_S%S0K9*X)pFX3zhpJ%0_K|GcqT^xz%=nd}bjBp-Ov;o~kZgfjNm-kJmQB___r zq)wH)nd>e1Iq=X5T?8Q4c&;?dv*1^eWDVqX%VAzKqWz`~*jP{VuKY~b1 zKu_btKZe|{&bh;f`F)p`7KN=Y9<77EQ#eu{(qYA?`!_E_6(DC44z~}wJ+Nap(R$Ca zpAAm))%o{dDi!qv)}8b7z@2`*W#>rx;{1H0kX7{DErnAco5S4n!*AeoLZ+wc;)FRz z>SC|D6Bt@)T}e|iA-slagq_U?E1&ikil%Bt(TpC_XUY{DB(%ZVxd2r?g(ezB%Fc^p zt*0gGZAoU0zmmN*Zr6V}v-*af;h~NNN?Fs zjzx`6P6i=Rw`C4s>)^>MmM#RP9?OrpjSdarliZde}vTtDTK z>!049NIjFCi@Sv5H~^x{o%6;mH#tX?HSM{B$GunvkYn3HZHTM51Jz14LO@o~+ErlJo>_V!rQo| zLF6lyAoW-M{LTC%`L1v97g^|H37M*)B+xQ3dg0_X@uXM0LB*t;@ek2N=W7E??si`W4qxA=pa&vis zJi2vp8@py0`4u~cI?SO%{?;>#xrI!eE_M3@MOf>+NOG;WH7M+Utn4`qZLTq*hY zm1vQ1`Ey%kc&H-&V}??c|1xW}w}y{;zfk@yLp)>~$&lbSA1-wy$ErR^Y=k$u*)rTr z^0)r0*hq$EAHy+$e4!*T-3F?mKz=pjLN?HtlZ(>Q677E|Jt0;ofy;(MZA6JO!~?Bo zqArT80Twx28D}5@>%g9HXCxiMwpDdeRmabTH>aHyhb5Xl`SY~ckFqiX?vXKPy0qesH2 z8Wv!3?w}S2z(%8UJwrlboWYl>X%l$0d89myw|V%W*J*g4Waes&_LF-5XWCCx3=Nar z$b`T&T|Rt{x>3^oMqRX&7-SvzejMRwQLBsU2_hAXijj{IqS3BJR>;iK%=gaK=A=iU zqnVP4JBRvEK*`7+W(h0*B^GG|M-QaqLAy z_YZCtKTruFYjJ2v!3vt%uOeUpTF}ITLCFQJWK6VjkWe)cC3IfTDb*um+4YY z>d@ZoRid`v9LT>9RZK^NBSnU@Q4VV8Ah$X$=?tu}p>QP8mBe|d@MCc$fI>)je851> zcEDzGRzEJaOS}DiCQi9%vu>$O5)btqu3}{t12Iqj%Lc`urLZ#qIZ4%E2A#9?G%JAx zIslw+Y5CsCcMRDe-eHJRC|hZ0@MDV(<0rc5UFik$aPEP6-q&a$kN_S{vVA`e43Hm8 zqrF0(K^t%oj6^+v;zy7*g?iazsBE51k_z&_Tn|AkYyI4galye#jD&*)SqCUgkiBzI zPq9!7{SJY<9wsn~Hdxbd->x4wHPwYCDkl*vPPxRo-*uZ0ozgFHd#&@AP6Gq;l9%c{ z)o*d*1pNrD%iz$$xVE>jCbdDcmxs04GlYH{7?BM=^KmFqLC5>IYTSWf{h#2w1~i(| zx<-2;1I70hZO_M(QjFCs`*C8ZsK9+So`l5cP}D>Kga{j(UdnZK#~1>2c9u@)3vA?W z*ht4|52=f~F@`{9`1#w$hw7C@BO}f?7N*Rst-@i^xXpyH&uy;yjo=+e$sgT>uMVf` zy}#wYvXX5*-qz97M5CK;lMmZMOK~uA-MFejnj|nH;!w7ejr~MlFHM6S!4ewt7-+(@ zP0N%sH61yoYS*t@24rT+LWW9waa&{y90@ z2ZasNkXtEDMkJxgM1V2RlQ|(NctoCpP8Ds?@I}_Z@BMDAO*9`Mb@6_xw=F*;l=RAN zFycR)3iVTe=@8!0S@uqFVYd8U=?4KDXrlvyWN%OY-g==U8*KeGJGhYY?+b-%Y+!_V zs7{Ie+Ig?q$A9mtA_pzS0j^&Xq+q;(bg%5NUAPfF`}P)ogjeI;WcRQN+vi*nTV1qzcRfu$)7SS^uZ=%6aXJ;P?;28lo4 zH#R=1azZDJ0tC4>6xgcwbZ?D!Lz&WUQIonLK<++n;n;N#XlT*gU)K8!2IyF*8Z16F zH4>7AYS8%=SfJ1T(q87vW+ce`wEi?dMnBAtx;o%x1agBAK?8EE)K4I@V8wBI;_4=n zutSUfXW&RE6f#9;1xpS*GP9Hsqw(tk`2xq0M;CCvg7wZ!=o2#Lch>wo&|TF6WK;Z8 ziB7Ach%K2CvOg{WR^eO@AKPG~cBpvY^F?+#f#{Hik;9w+2~9+3$dtg5{^{7JY_#El z$Gz_z<@tqNRX4JAjN8eScCAC4w@PXLSDTrVGOaHHB0mIeSdw9jIv$Xc@ED#GHdZ~_ z()z)-tBV)P4t6YVdrARoKC@#ey{qdBB-^>5;B)9;A_oX(#Th#4o!Y78-@3XY&tMMx zv_PjZ^xEbYacn*`$bXNi(P7Q-N7l#SqQ1U5=;I~4a2hXui>f{pgJeMYBEU-Zx{g9o z*4|gVr(~xJo<4szVbkjZ&Wv(-oJHGXHJ^uBmslL=Rvk7E8-6A0__>MK);IC2AMo%7 zA3rz`Q{Q_5==1@vIwu*5DLa~z>X4N~|8)wY9&;4EeZ`y*3gD#dqDYvM5h{l)T0dybgrg9j9WcW5i{dpxJ{tvOv)w z?1??b|Q_p?&oyx*6sL z*$-xsPAV)sBISA`2|7`nMCfQ%5tkGRlKNEn=-fGCc&>f#JGw&lcH-}TO7HY%vyjZp z-o`#0Cxkx{(*9s{i1NNHnbPsczW_1Mt_>vf{!aJ|goRMV0VJG*aP#0M_BPJ>WFp zs#U$ZYR|EszY?$*NjxWfV5kjZ`Us(eaRRjm4S)dHLqt+>+cCg~fOCmG7n>ji{UBIQ zDnby2a3FkmzUBuWpw$HP0{B&iSRU%wS0ZWg>FraE{Xc_%!l&Vdu04IUXx>+1X!z-E z4oB$IL-v4{K*i9(fdp4;^nZtZH z1TRR~RmN!io~rHVIIVvOs~8L)1=$zMA2T;k;tutVR(|`-i~yXl?0B&+&$^#==b=Lg zEjrIMs;Fon9Uq>u0T|#R`l5qB?MUnoJEATo=3qPajQ%(zzXIr|gSHDub}RC8XFy3y zTNV~|7-;P2V;z4`Bl!|1XP#D?Peu|h82U7TOHClKzMiGAEpOlXOg&y=9L*4L!`Y-a zZemtlu}`!5ndvV%U&(%=Oa@^oz{i|XdTjIaD#smi=Pv98VEI%TC65b?PS!<b^jK?85+5FkqAs{Zxx=yXz!+nVz6%q9%MU#yHB{eeJEY{ zg})gsV);SkzgcIgbTo|4g%=4`-<&A5-Y8#jTG0j)9jC*{*rTrLKM0A!`Wd^IpKXT={E=mN%=G5P-u7JfotCVqGh;J}q5{x#&;)`MxP+yq0QF=RVU=Y1aQ+6`>o2U%XR;8t-zc;nXE z*-6X7G706Vdlt7<9|1pHm#+FXTNfwA{tw)2cTo)?iGX+M;uk2mVEa)&G zy?qrtoKn~1l;lwrXa5iT?TX z@#NCdBOr%@*iA=3xYWgOEt)S(^&hjaum=!z3P)-Of)HuBr2R~%y=QM(H|({pE|dg& zZ3Ta4Tvs=_u(Wqkk%4pFn(aB|DZ)6OXN`m*JNH@5`olc_`7jW<=h-M2@^~)~)fv0r zoAGQT3o)$ZeeeEn?4WvkBc*d-n@<@3@0|z0^+#IiH0$FYxY=*$tB}2s(y@E2aN?)B z1rTx@(D$D%tYU3A={{q{UmA|qf1?L71vWUUR)=O9k>bXx>gnkLC}IL;B>M4>7dF%e zGXvCXRE`^YMweN1Yz#T`TkmB-tY49&y6n+nTArgSLeKYJ@S&jaP{L0)=81aL9tVeJ zgRWP1c=Fv~1Cbf2)kk$FW2mA(*1q0vtkl);yuLmHfd-ma&q&*JzV!7iu>TN!-S6vc zE2MBMLqxQg{=vSuw&TWsaCm6iXoGa9V0 zyjlzpN2Bz3Apq1Q6^_%o6IVmYiNF4d1pABgrN+igDo!4F4rsR$92Opl+FNHyG3<{g z3edR$zzG2cJva$}9l&td^OwK(+-@Up=PY!ko>u`2|nuDNP&0ijd zm`AyHlhAk4g_q-*@155^ZXbfu@t2qFnV`!p%mKr+}aWEsw-*P}Md2ATmP?a&WM zQ-0<8L|5*?i=bSeq^B8NaxVo3;PE{mMfn}Lv=;>%o?F>xTq?at=q{V#x{C9~($eCCmzG>k>&NlnTdMERvcK+V<)X2jfocpv$VN^r z-B|RG1@#Rp19ycp-zxfEB>8 z2F7Sdv9oP#sd+fK7U!vhP#*}?*$8l?|0Hyvs024cK8hdzs`@p=x6X{J`UoYWk3gRu zXtd^^2ObFE(UoVPB93n+5n@_QdkKe9VFr?kEG$;wL-2yWf@R@{ErHfu5M(YCE5Nx! z?+^gwc<8ZWxc@;)c-Fc?JdvW!{y6EE+v@dcqw`&(;C;{kcVs>u(#L<~l520N@7d;a zcKZbfc`weX6EMivo6!XNr@~l;-do+ zSmR3@?DgvoKa(4djt<96o$}{yo!$QR*lKY#Wl zsWR27o0x1-;wJm?JV*}^Qz(BL;s?-g<-wg_XPj@NRDIM0Ek)GXU*}h=a09DPvCT(a z>6aRKDzkxk@Yw{PQT_dyy&HW7su@JC{_<85mp4!qRJ&3XsvoER^kcndK{@|rLL_5J zKQTZh`*95pYB4`$I8U^$QbRxDkk3$0a8$(&#|sdvzbp%+_zz&iSwX?^*xXu71GV9& zte^elC^{^KMA(!LO~8N)c4EJIQYyFSPtbHPO1y^$Re;^xF5vr2R#w080q7VQ98 zuGxxEN zMbG)uZTN%uVXTA0q+fKj)oHA}U|Ra_iuj8a@M1i;E}&#xtGOR3ZFTW_%bx+JW-F_D z%KN(^RNCEj5e8weKoFjbi88yga`rY0}$Nc+1W6h-gRRC-ZBmea3=8h z5i=`&Xr$+v{p8#X2!ZNRD64JZq5*<}a?l`V$oEGCZHxvg0cxTkdZwYFn~c&9y+s1| zYbIvFlSQ;2m~P=;6dmn7h=E8v>halRQ2fs9(-A0D#9`iPzdqkZ%oJO=LIXQ=5Mb5V$g>$9KE*-^JK0|*apOi2OwiE4-4p@4rB!qvvQ7?8 zRedXj zE=&^mV@++4%h?PEplf8LqsZ_sAYLKGTZ?0jsi_@pO#{p9$3W>Iw0ox+eUMqAa%r;L z5C#_$b0_=MiR>>s2NXl}s@ceN--DExkm4^z&mg~nVo~zop;FrQOKDu5*l1f9VOx(R z{ZjOe8ySOHm=0$5JKg(kBgHb5K)Uaz?gvk4*G7>So*iUL)ti4|5}A#{WLlCS9tY5i zF{}A~g$XeRL=GRK)&0jAlK=jOKAhb9CD2rEuY+1Rgv6OG-{vba?%XN({H+=6Lv8g2 zcy`{aNyu5@<2s(rFLQT@^<0%6sOF@nzjppCT&Ac1nv^0YM)u-Vv7rMrYvDpHG+>n6 z&mvOsj6@D&d)*gC%q;bQ3JNCd+#Xn2FZG{E%)a(^s+~J?U>0!h4A4boC-7i0z$^55 zYY*=)icChY8HS@|8W&^m?hav_Bq!|h^8YNV>-SGKg>ahBhmk*$q@{R7g3N=&MZd35 z4tqgn_4_-rSZZKNtp1M~=(Vk~g2^mcX1oXBrxqScr5O+aZ=(PDissWh%6@wJ#Tw1^ z`}O?K{Rm^2GN%5uRnJ|nWpG<_xNQO4*6ZhOp@*k6niRtSF%TR|yZ_m^Y5N3%p4%5S zEYt7%^1^+QKCy=TqFVR_LeJ>>ef|FTzCELI^w4dr^~J(LO41YvQK;S`{lo)YZ&aJn4wpQ=+2;s zr>1~G)y4QMZ0^=kI1Xns!PMv!f`^cOS+V3}q~Xv(J77&+7GbW#yoWyjd)OS{lj_w_ zH9G)pZrFaV!hK30f+4?E$FaxOwh7AXQLQnApS0Nb9)tKCYSNN@wL8!G#%R4x4utC= z7`>S&_?gNDP>5at{r6$G1dbvni3YW^iWakgBEMX~q+e5Pufr`1pTOZHh7U@S6#S z7WtBMWP&{KfhKr}>mbQ~C>yD-k4S{@B_Y25-dIBn1-D5RAYC3NPNu}O4{hMdm9>dp zm)KS(_s?q!M@;J(O>S*c>exy}>TSfn=_SPlFNUP^LD9~|JyV1R^V}FKE7#{%x#{Pc zUAvhcKFuXqx$Zn!H*nL>pygg+0@r zL;9+_Y~=bI4)*H_NNL6gLgkX}Y|Asm0MwhZY`?aNgh5r{VLEz<#gEwxR>ds1h zU4DzCb+lq-%=x-g0yxX32z0dfoT(C*hU^MI%eYGgLo>%OQ`Q6s+EENIq-Rb|N%l4m zF0zx*os_B8u`6?T-r}QWpzNc-`{m1cKv09sZq4Z~x`vXkN^US<);~Tz-XMgGL@V!Q zXFT$5U*%c*yAvGCp&h^kMvHww(Q7QMKMOzQF5@`e#|lGxUSSozeaSbaX={ozGdoTA zRzb)B{O)duwjSpxgVI;4AQl4NMUFzDf|^pKt;dFqb<@5ucIthw8?Os@11pU-!Wpp> zNxUBUl0R~zpm?P0M`T&w;fAmb5C051`Xk9vYDy&+YAU6zyNQ(P*f{u7;tN;|^t0ob z48^dD0tMG8Vru%U-2kMW-_j8I)FeW*Gwfjp;HI0_ZyJEUbejt<4nLQ91{8U)q)I%y zIZ(=v1n#Er$d4SvorHwJ-Bwkf3=+CP@-62-Nn%I)k z{H0)ZX*_wVK_L+vNR}rz*(0>xYp)bIw z48Xmm*~4mBf3XJ#RHVN2TWlf`(rbNzg=h21KI~iuGwt%qhiWWfRujEz#!d9DhR>Mr z5WUMD@{krfUw%vL2;Vq&BM)?M39T_g{U4g1oi#Ey=LiMHEdN(-C6e0n9%Z#gBG5jO z$UJG9)fn;(fGK+tkpR zhV9gXo4SB_jVKdofL!RI{%3bZwo*JI^+mhurONT=?heyXDczZ2Th-Eh z=(Cv+DIpoL8l#Mh1wz3Iax7I)bqWn-Rf48zkz}$+UFSI!D@At~F7zxYC{!KXTqcsh zBBPhwCJmS9^z{iaHFzyJ{2-<)iy>RJD+@L_Hf!1AoVKXI*f?b+v|^aR1a^E}f#Gnw zZD)soOcBfEr@Sc3MoUS04QCEv2{Bj4KyaRJ&ClZxZcDlknc1- zp_^ zEg@F%y{M>KOuP~XTC<1<831P%b?|_h)>^MvC81$M1~-DNEk;8r=8$;C&rg zS}HQ^DOid;eD(f{KXrQ8iYgG~uMI7v+YWNW>?e2ic$vZu&eNOznZ}UsdR6&MJEUT$ z<{`{?fJ9py?tL4=jV4AqO(=PfezZ0{~WZmyIxd$VZ?*R zL;mMMJ4?T5-&vvcgI4?3L6aj@dU|bL9%=uQ$2gEjGG(9F*M>nqPC=D84)+Qk@zVau$~KbAKC^^Y2x%Iq>BfxSBB2d(zNh-hgYXr!rvLi6GWhe*ZGxryp`&*E zxvo_E*nQIW6ZzVe_y1I=LvUDCiK^HuoBfZ&N_q?a=)eBQ#{GZ(QT~Ji#kqA=9Qe&&AtVZkj+{JB@*EW41-$ycZR7K70>`<>|H>BaOPqYz_!M zb3Sn41AeV}nL)XKHZm_fbc-u|p(l>Jui$jD4Q_*SVlKhXe~S&Cn#w%gkCraXKiWv- zJd9SWQRcw6ws&Xo_!>-LNVNE73Fllf7@6=IXSoxKuuZLSc&G9yA0|B72VIBC(Nt6C z)!Xz*k4k0Dp(G>1_`Q$zSr+PjXP-c5T9o@#U=8e4bI)Eh{?Vvudmv*Jz@Lr+Tf@Cz z8ytZ*8xzbH5)d83`9PJ<^)Lwo51K}*S6D&h^AMqLQFMBvlbWE9< zF|Yx-j|YF^tk)YtE6!bd;QNe5V~^YE$7iBWFA~rTbHRI<92TpXGORLiJ9=xy|0csY zNSf+Nk1|zd<>oKV>z3iD0}Z8;{6hELss^fS^{@%$9}b=`_px+j=a`t9JcQQ)J^Gq~ z`cFv-rJ*7nJw`lWttbC5qg%EqDp15q5M|*k{hue3hj!CGA%3DFeY)#U8PhsJs&u)7 zD4trKe@ao}zaW6Vz7&sMIxOHT?|g_E)P>yp2n;Pnfkk{Ci*=G&=z(ni z{2MbXcL7$nuZjdZE~IjgR8M21o#be`^W5cugnPLx$p|eKd9S;B_NT(pflz1yLFmpS zq7*RRvIPznGVNVsfNPJ^P`*vKC*s=IzQi+-_!0o=|DclBX4F)qWc!e!^Q!$zmnEN6 zpr8#To~_!LKUGqo_@;eYTEs=+(fo5!g!XLlQFya{(~`e#sslGoR$3=ZD*m|>mG`}< z7{u1EYxUQ4+h9GP(jY9PaP?1x?rlItwd)b!xd=fl>-NzP0TrUAm1(!PCv$&!va|lK zFO}CD;13$Krk%^S8?KF%HCD}t6@KRdK`hdDL{&s$D&brfEn@5lM^fZ|O*CeuA3b}$ zwItYc64Ox+=`g_=b}fGK+xsBk7Aa|Ka2U`AfR4zX7TS~B_Yeih1z{1*_`MIfHT=Q$ z8=TSC2Y|5dJJdT76ZispI&YC1bim_-bq9>`MTpTZF=Sm5lw<` z1vmh~0fY(w99-w4^8+$}vSOz$;1+6XN~=B@Dry|CzpGomo8LSWs>+>gTpugh(a9Jm zYEllfnPD0nohyH>9$X4^$7dKx1Wx~Fz(aZhre&mweEVshMM~vz6&2xCG(PMGYNi2! zjuUTA2nSrD`mjICt`G-on%zKJz#lw5LB5cV!%cZ3Y^IQ+#zoU8;$Z%5*e?4CuFvC` zVo4WlVz@vVc5-^m|A4vqI^Me5bb!^TaS%Yj)9ZKsZEoI;hD*z=P2@EG+s6u;#`;2@ z`o}F~92`DP5vtsVQ(?Tq4sU%JBwXz3qQ&0dtni%&RSE6OsqXG#@jnE9a(0fW$Ey@B z5f7_PT4eWY&K{O%2s)c4e#14!5S(oEn3jar(S#f5AuHZbW2!=?L+;%1L*2p*LVyrd zg3Zmf@~f{8YHXTKhVDNJ^pvDpGiPdy>a46`B6Ubr`JI0NJ=*52@P*gX67}lhN}71M z|484Z26A4Ch3-eM{K&6dF9b|nV?asr0+7A+rECsvqnypuSDb8Y5SoH~)O^&m2L?%u z0?eo}MFIdnC43;cX>ck}68B!=icE>U>GG`X0`YVjjn?0Vw&os3etbGM$eD`Am{cjz zhzOo88|6WzhkpM`CXzJ;0BJDb#ubCU3O|y}aOp90X=-#ZUw@TZ{`ziaa@rG%9)g|N zQ+SQgzYEkV`Y{DVT|CYH!0QPjV>n z?CgbE$gdx0R*pai_8MsPhPpt*xS9Z2Vp-hyc<>=zR$mrr@yd8vT?3exgEj=s3tgUG zTPfpw=sGMh2oLOu~7*_n^e_QPwrZ}|CRHdrheR$AA+u>9@q?JVx@y`dlQM@kIJ zDyoD<}yde6{JZqUYp?Y{yBPicn5$2=rBT8dxQ)X+n3cqR+cX zuI;*Xwd}?mG|ktAzTfR3d;R(s2j~aadOST}<>jNm2mGY@!c&^UQ(6)w>*FvQFvqt1 zkvthV%_AR*W%dYq=)QWjY}VsJ(1&Sy%mdY-Syk=}D~`~bzJJ?RP{#*=}VDL z-b5AoZ6C@i`ZAvVTSz477m3&YXZ51K6pK90vQy#2_phOxGu_zbq?Ccr3wWWZ4pG*g84`SC|!som&j&O?EXgo&n-GlR(ON;22@Iy4Rd`P6# zehB}{KIoHRaH7C-ZOR~ooJ7lUtm(^lzZ@SQXh0{3cSc_#3G{NNdb*z&HED$^JQ#M! zT1rlNT$_XX;7CJA^y4WS)i+}i5ik(YY;MHc_bbbIyGm*$hFO6ZI=J}35LM^~=PD!S zV#gmR*+{f^w-(ZC9whkt?S6P%#04+UJbLskmzs45bctGU9*J@t#1U|;&8hnI?;n;O z5h%IV#&C*~MC(TV!ZN&5AI|9HGC{PVycA+&*s^I{fpym_=egNo;c*z=aqR|)SCc(% z6a>0NYN7keH?&%V`%NgoETUmJyJKPu--dDu8xE8kglyTt!Lfx$9{z*|1p6s-M30Rd zUIgmMPlE|g_x!v@V~6A+8ox(uRQS6-@{DQ`B`fMDoI_wm+3$FIoO^hxN>f00kB$6p znm$h0Lto!d36SIdTH9lDw-LM;zR(8@iT{tSD*>l+Yumf&i%w;#C?Z2h5@jl5QBfu%zrCrC%M!FXa4sJ=JD~hU+m7X|29t>I;(o3mPyE8gLKIu)bfu zl0GS;?T)mQgDECwSYZmrbU4;~ob5jz?&${Bd(35>q+NPJWjV;{pr}es5^0$fTvy!4 z!nkm?64f)}y{l0R-u>w>imDFZKk3~-=7?8|JgcE~A%wD8$-|u_lPHvp$^fA5gfn(f znfyYFZR-m9+Tw>w#!So$DZX#M1zwn0tyiEo|LHvfoQvaksV6U`2)?S`vW1Ch_)}-u zBBoZEnxp_Vza&{{I^z76|FxB*vG)j(IFdl_gH)0H_^W+S4Tl}LVy=Vz5ynav0q2y_o>IO%lo?iPxq{#dA zZs%m#?sS>--rVM~HCuRgG;dC3fDC~D8{0Cuc6(b*#|KkhuHt~4&cLqa;A@+!Us4q^87UC>}owKY3( zd39IerLEF*$=m5Xc~)H9Ndc2{4)p~+rI^~eNJ#Td-yL+`I`F~6y(;!E`UQgb4{clP zBa*SfKSF+ei`Cf|#s?Ykxh0e*@ap{#&;NCC$Gj6Dif4_$vqqf6TV&gkpnt5bbM@iWLHfA75si20xsJLTXC-&G&t=y-RoJ-?>wZp;^ZAEX=dcwzhp+ zh;lm>>!PJPUVrD#_z#d_hy7}1cb&sDko4&2ukBRd;`SC?>p8BaOFLQL_s8~{PW*`U z1BI^*{HS_7l{VOrtqPPF=wTdgM$3o$M;gACmH&mA4rbVz1MAlhv!l%8I`>Iw_ipN= zj36-+ABsm=M|%`!+M{4@omAn~Mfi|g5E~smCIMQWKj*b|z4Qh=BYvbA+IB_N!!pLh zXB?@jYG7vvds+nGfDxBxCkU}H+CO7S9`E+^*RTJ7mEh2`*}$Q$@|>Wd7-@$W3VhR_ z@5+ntEsi>la9zKl^J}i7BgS7;y6h>8*NknaeGohI89PHBfNSpaT^!<7YMMa7qbWo( zJ+*MGDZ3w+@VU@HN_h*Mh=~`q;tqXyj+NbY&GwZ1z8^L&~Gw zRx<#pIa4)Rx{zXOZg8RQKB}rSO~7VMY`5a;W1yEZAGhP?ro0iYj;$IVIn%6qkAdFR z`Q3l;JNziZ*ZB{0r0xOQ7Y94ITd$KB#x(vmaA+6pLs}j1Vz(kM6i@S;ym?`?T&B9( zetf81xr}~r6~uJ;JKFNcetdvv$`I{}tFK1VAm;%D;|dRv6u}6!7;cc_-MAV!^ycc) zwg|^brTlju4L)+5sGFaAf3l7B@H0pX7s%*bW+EKh$}y;-o`Fkb-flx3*Qqwl2zrs*sK@;iwtv*$MO<@Bc=v8g*X{APA$*bGlioDuv8!4Ln|hbx?+ zdN5JrSb(u_gO%$!)$xw4P#X|Amy5VGfQG7r96&W%1fU?Cq_{P_Fc zr@FN^v1*&fRNt^chxkTd!8TpxeyEwB1p`4H3%~Rml8t;jrE6+xqjpbJ=2l5*w%e$Q z>bOFCTiQ^x9xE+Gu`b6uaG3T z$qj?4na7`_&X}gE+d~6~Y|@+7NC_Kp;LQ~~4!o9;$7c#=c~!h2llXb_0Vkw9z>V>n zE=^*@Pi^zFuGY=tNNJiY=4^VV*L$(me`@f-_#4V_SmpYI2f_agrJ=tY@CwEkY`J)Wh9)CZ6W) z3L@rwgB1LN@~c!=dB47^>iAq?fBKvf^+NVm@_f@LIpnTH5p91vyhx3IHZLL3+Z8m% zvw;@|n;j}{t{5&!a*sJo2W~QMan=8(jBQn;XErs1}+P&LtSx8IL{rfS+ znTfaZp9n>`I*JiGk3(G!c;Ka{#)Um4&dS{ z^YcSkxIEZ_@jc13QB%gfWc)H>(+J1T(6eW)0$|t8;NWbNaOsI!N8C_PPY+2ePEWd) zWS88*#X^VGae{0*mCaOCI6y>7j-G@|?)Kea>l_BjWeePj!2murXIpj(T6yMS`^e1UxAudz|qmvjGDT=;Ic$f0$C7885z^_ z+qx$ufy%evPn zLy3$@Z+w!Lwka{IXFaBQM2_s;P5JgnQBm?JB$bJR>_AS|z{2o7oO3=LdNHzPq zQDwfg3W1>lGGYlJwRR*!f~&t~93(gAz+$*CQ}c)&Ki_oqRwr)xOzUXc!I3^gE&@B} z8%Vo|9u7`945Yzofa~*uF0>bEQZ2{BxHQS;%bkAi3781y2v#K!!rMFTr$rRYky{nr z3FEP31J7gaQ8YxybVUXLO5)X(Zs7xF3|S0$^ZuPa@v5m&udEph|C*O4@p>eD@M}_( z@|PNaE;@RkjqAT=+mrFE+3jY=EX)gUzl1N}JPSsQes4@PsKZBnxmGb7p-Cl~8&Pk+ z8O|1S4T^qY$MoCd#>T!@*PNbr+DF6F(#|&JwT!?(adR#%zd=i<2r@EphX}GV5q6-< zKTg_mDsXx*aQPdE=utD|M?^FpeD@3%U?}dc5&+=h8vJq0=FBnMz-MkoR+KhN>dn#C zJzvN$%@@YIyw)1)vkzu<-e*RsHe&{yzt?ul9&O!uVLu5@>|rK6+cahUBL`ZJCg0bU@)Kyjjn-F}iee`q-_J&eLQ>ZorBZ_zDR}^7@=4!{W zX$5ixI`K$)dWET)^denWV~#ni3Qn49c8G3xgQ7JoLJ{qB2oZ}Ap|_kqJ8R`?1R8EH zt7I(=a=L`MTOTGSl7t9;9thw|!+_ztY2V%dgv?Q^%sithKKipDzq^VTzRAKaE4u>+ zl$B*)T^>77v4tkUh2?pg=YAmRV!8vD^ipUTqO#*uAFhkBM1d{&qt5TnUm8&V{Rok!6*d zHJch6|2)t%Tz@o$8n9}cnkK6(rriAYTLp2TTH}2nbsO=M0MQD#4h6~rWW}ECr&l@h zMfpO{O#Vv1?7+hD;r8}x^eiTCAMacF0+^HILoO00@|Pg(c1@Mv@QqNKlWK-}ohBJA z9{M#oT7mC@+*GP{M+n41@KkxyejOOoxKkhSTGz|qUv(+%HJg**>nhUQAdJ*HGLWug z2^lEt+Q<5ajW~1v1%416m1t=K2G_hbR+m4VF>THX!8W)SHreNG#>AM!?>##YQC*Sp zf~>6ZRB-dkPu)o`C`B?Z@6w>ZeUr0&!%3`^YPnt$mag*I8SsmsWUWM$DGIr zW$XJ1iHRFDncD9UoR%%5!kgx;R>vY97==^>a48u4x!)+VVjclp^I0*i5IoG2Jveg8 zw6mhI^`?8ISEkKfh+fND<6g4H){D7D-M z@=7tti*C~?FVB1O)+TD_&3(NfFE?0?*htxfIJ3#h;u7je=f@q?t6hboe~ z_^;i5c<-66X4P0OLN-Y1 zx${-q0x$LCvz1}IAwSF#9w2+RIcYi+{FB)rl$-Odsqp|!d{}$wW-C9GKHx1!@c|WL zAi}<4MYajLA__UZmVKL!--a(nX8tJ6==Bn4Q^1HB57>!Ln#lTktyn?*;uAEu?l9eZ z(kAn3^(PcQH#{(2pj8H(M{{|(gLwFuQ{c4=dEweH*+ti|P3vQ0RQ1TUbL~b95U{fffJg^o&kck%DMLhw>Um(Ab-d3YO2=dE2 zn74uhA)vvriE6gaTy%DxuIZ_^)|2OJ%yrzrCkuQ6NpMo&?L*Q8x!~g*F(+V-)>|EZ$n@<$@oU9tJ z^csTs{qxt<1FCd~VgVrd_9g`_hXR-uCN{NNRG9TkZLwoTPSAyJfLmSd`{BLm#>FOW z)5aN#uJjEnKw~3!~IYS%i(8bg6G@*&5Nb-@^r?$v!OdR+z#*Nao2UlIv_j?i6;!T zS4uO64iYO?=$MT5{3^oi*6w=}38#=%dDU$Lk#IY4@AIcmT+FY#)hoA|)gai+R1c#` z!J&;1l?gbUx9O>(B6|Dg%}v%#c6oA)%mekKgUKhZled-;gF#+a#`aD4?jShYWTeb# z?@UVKJ z(-`b?=0uG0=qlh6t+=u=&)uWveoSKNt_!JU(n#02AK2_nF!%g?j8ZKENy%8QYC z9WGXYAMGUA`LUaUzPE>;gfwn1w;|2?r9GfH4-kfwa<>KlJ*gVyE+KBfR%<+$JzON^B6RxW5oQ_tSu;4sGVPcK z<{^Fg$5~p@fK^hwV9?0b*{R3R%6B75;(0*w59Uk_jC){so_~bwQCc{A{73=1D0;!m zEa&)Zjic|&R$bk$Z=^9{y5Z&u>*3p*lHu@}1S}GL6GnxHwh}ZYSpl+joER$B{WWvM z7~8ruHwbU}UW}w<5xMUxd%MEeNC%!-yRLGF3$-H9UwGK4K2NaY)FN{^H~ZYGux8Ox zlQ!SAg`Ba%4vShD2Qs@N#tQ`Gnd;0XjS#p7$PFp}ba=DfF`{o$6`>S*W)I2kFVx;pP9Vc5O(^SRcnsq`c2Z?;Fi%i2M zEd)Mthf8djM}#m;c56Yv^!oti!6?SA)^Cxf(B!Kpiwmz>G`cnGVKC76nX>mynpWYVj<5|cB$ZrNObw3iTD|+NBVLr{)OVFVzf0&8UepI3$j^KxFV}>c z{Csm^#Y+0E;qti(h(~r&13c8*(OoiNtEt&IRvA#l8tL@oltK-F4te7~dC*K;Tk}tL z>{4`C10n-dWPa_%4C>9Z8J>)Sd#Lszig6u#Y~c#2X`|^+49+|;>e=F#h$^M{7T}r3 zbJ;CDHSw3iCm2eV*H^!hCPI8fgzg3`9dvH<(wiRc?Cc~{!J{8OJmD*_nQLLb9s$=l ze1GU+0z;fM-p;c-Y85q@cH4dK{C!TT#v#Yyn^I1=oxV6Dv;5>!s!c&|1(_o&2PNTk z9P_`VP~5~|nD#em4Ig)Qb|$mV$fd<1p5@TddAz`Xj`y8WV7Idy{oi-#LBd!8;}>O2 z>tF3jwuvRz=OekB!Ile3jiC(m_5&mX4Eq^F1dLsX^W(|$?PN^(GvMs-5DE+PZ9aj8 z5aY3K1%JoHoQ+TLiMe@`;D12PO-1$;F%u|pPY?fI3ya*D zWr8y5>f4RhFgM#&WVcnSC~(DUtlvE5pr{M0QRElK*j`j!{C7!kKj@%BhnI1;W)EZv z$j^O`w(k29hoI-sLuF;P#H0XvKn-Uytbdy_mfjwCeKjMyfXcu-kUAuL4<$mBcY+ZG z0E}Hu%6fu!WHjM;dw`0uvDLGqBQ^*;n^wna*uCz{yBk0^*N%aC^|o1b!3%R5|9{Q6 zR-udEP=_U9jfgKV04bGVngvr@(AX3Q?-vMG%S5?-8^)GaX1TgLb^Yvin7OtjNMk-9 zbx3G^%9$iEHRm4GpK>s;tJVbq!+gjk)z#GuvK)To#kbL*{S&E$-w{EDhg%F6utfTY z%gpUKrqAWO!^YC<)Q9F(z-??D^HdB0>J89Haq&JdFdSa($S34Bve_G{g*3ZMMO3|Z z8G7wSs)S|ec7f(s=0|b zzn~=8gV+3sZxEE0;=3j@($7|AOE1?|)^~;k4W3Eauzn&enF8LBS ztO=4rm}pPe>6-K$=*gEIRPPc?mkHnsfL|LOol0H!?Akd@9_?EX&Nb#_1C`InTbj>Qo+1(zDA*0!(7?U5*^VBY#a2B_2JN}dAVMHlGN+?cQKem}D?UAGYeaME=1UyXjM*e37U3vz zW#$+fi_*-~r0N?Y{TD5bKubjfX(&%MUZ8s--@VTI-HO2geand{Oe}&g2ItiG2&%ib zXAhv9$_Z|eS2N3=E=v(m`;I6gbE8PawvAXtxx?K+MnSh`bIAyFPjB&9xd#($f1l|J zG$!H-)kQKOq%a&vkK|o&Vu2^!)r)*Qe;bf!$oiY& zD=xWpOMy#k%C=XL45MORPi?;Yp(uz~2HRVMK%E&xh+~_h;z>mV^J!Rg`S%K^jBJhd)M$ayPrS`wiQtH!_a^7&ABBZ}k`b)e|M1 z7n9rH2Yqd*Tk8?9J_Yy+UoDrs^KzGj{cY{g#N@k{y85Zkw}|zYuI%%SR%vMe^l%Yv z^;c=DCoYILHgd=H-T9Y6VADkfHHe!zmS5k-g| z2hD((z_ptjQd5-S%yEolqHSI|P&+X;*Gx_f0Z!kQ$CDEA6W^2Z`joc@? zx~ph8UAKcYQG9_8vFJadsAXPO#=64YJy^hamCPk4dALvE!{LL}@=E(7j4})ydQ=kJ zK0;3NV5Y$AgiH%TWKbvsMW)qLaJ_Kj29Aw?o=*D{z|hdxDrmHy^C}76>fPT!-5~3O zHa63h_a%m1;a83I)Anc?a;FgL7vosdyinuPT0-~3x{B^gxUQ0Fna;!e8zlC8c~v7$ z`P}OXvL-{?_g~Tu#S3v93S{yGRd~p$i@J>xoE6@OK$_JYc6czmExCAh4@p-qAK};F zprh|XnBzF;=X$wMjC#5hLuu#z2olXoXsIHnvIymr=wxecTuY9JxodPS?IEvL-csc= znf%#}@seMN5sh21qASx7{aa`jicd`3v~FEY(L{vtu1q!#W{vyeGFZb>++<1DwD);< z@(<+BX-^}VaXU!Mu0a_J_;YauuVXizEbvN85JFj>Y{@IQ2Z0)~(NCUi6v;a4q84^( z-^a+jZRgK_?wSGSkVwDyqhwz9@}BkECCTRXuc+yd`P`sL#__#sVQIqJaU%+O z*DijB&a=)LOLb*o5h%x&YH5`xJ>82P@l`NN;h*hHP4YX+A^>!npdi&j49RPepL^uf zb_-mn9n%v*iE*38j`(uZ-un|3Md_P=g!0Mxwt@+O>LQ8cEIT<{;595@R!fj>6v}>d zf(Y8Rz5UF$fdidozYl`;9VnQrZhyESoy1oqVnPyKgBjg1_jU;KP3zI#O(pRY1UQ8a z7v}Sz_SpeJ!9{Op?F$z1Pc>7J#wQIL?IWr2p-6=ICVBFk#)(y-WNZ&>zU!y z+au`%(Upy|rU;00j;hjyM7!nz2*Mj2hgk^xC6!k$(vqrP`}|&AJf$nNQZRWI*W^Q_+n%-vd_e+VyoW>T-DOrL_gM@JKGXt zBfKjt8rJ+m>uXXNT&oKc9hHal^~tyQ$7&~^9%y_DY|8QfTj6W(_FoBflIQfyn1zh} z-uBnd!(Y=ZlFiE>sAj)AYE6{!=Ay8rX6HXApDejA?L3L9t)qBiE&$)vJBI#~&y7~I zuX(PnV5gGK%34|2`p%J;NAFXf2OO-9_hEEbTT6lVwjXQ;kt)^unHe8mXoXO$`qYq% z-H(%JI24*WZ^-9e+g}L{FIe+@N>yA+6Y&@Eo$ez4-8FCvx>yOgR22+!?x&!Eu{jFRL5aPJ5Gpn7ogHg8Iz~?kQ>`IQ=@^|@IoF?8u zo>8_WYT2TU%(D&c0krx~`Bj<@_`$b9SnOXbx%7644_fCH*jF*TNWLB~q?Utjo~vBK zS`fKn8NEWbg?^4c)fx`PlNZ3kaA)g+6PV!qj~>WIMd5Uraj`o+D|wE+XE*R++>r<^ zI(h&kK2beC_%{e2q}_J2rm-Y@1(4taN*<4%=gNUYat$IgT0!MhinI05Hyi8kpYBLs z`FR|Awa{gW)-~k&HM}5@?7v#(1|0CftjxQ;N(S{*{QG>-v08*d_5dCW?n0$%6EbYG zQ|&D`+_f%FqQh_C+uN^~|5oLYb^1Dge$Rh+sAN6#{UEaAdPLb9ZYsQ9XKsu(XAlWOg|3SMNy=db^ZE^;?{Q!@Rn9C zJwn+yaP6-(AR};HBh@_K3P*K6YCvnbxo_V?_VMTUL}{n-<3Ov7jBR#fPWyiCueJ(w z&M~w&n5wN+ke5$!&JJYUuVyU5T48TnkQlAf{;l=hZx^p&C6~XyX)%CVMyP(@&eHZ? z$~(CzKi4rbK*?haqf#B4tQ1rh<}(ZMEH0&WvOQe|ENqNgrg+V>i4@H6V^GnlS^~T6 z#zZV^_w7xn=&z6}SfZ{@HRe%5M4RcIr%CIgKQgla76W~4;>-vxkw*>ewIHM;sb=j- zBmkf&hL8k;hU}4}i``G5A7|dj);b3tyO3C<;?dfc3Yv-es6qh{uan3U`A1bG&s zH-J9*CuNw0V2479$j1Rn# z$2dT=V&g_;uOk;*Zw#~IlKW5(sZFz>J=G(c^?IhZFn=5GpS?K*eCwPEPS3XmxZ#@% zz}n84Tu>cPnfnBzzfQ5A=s4%Nm$ff92Nmd z$=7VmF2AzpFEM{-b6f%`@!yxQMMB+mZLQ(2E+CS{(k!X)7v$5YKVVBMlCl$#o5|9p z9=Y2qXm&G1Q&HL-H(?Rb0J0+HX@Z$|OiT$A`Uj6N0Tosn?8%5%Ds~w-C8QI+)YcTC zvc_DO2xMjzoT9Wed6HC!dtkgv0!@@~oI3CbN=hk6G2f=|($l(+@m~h=c0G!!UmHJt z^K+-1A_1@BiH^Z^DG7099q_PQo_}c=B1&6M^)4(2eV>FhWMYK1=ws*slh%CQgF3;e z3oWAgB)jdLMJvWBcJPsAJu~ZxT?rdES|nTkO92U!Jx)1o95Ft~=gbiNKr^w)jE>p8VBvygK|d z*Ipt()x3%a=U=|a!u(}qf9KDWB;FjCziz^;cu#L}an18cgg=z!q+&XhWj7oPCXVsR z$?=~xsLSD8M4hGS%fnm?PAvJC2uI^ZR>f?QV_|ktB`)!9oYFfQVQaXI(naL?;07VQ z0T`P&Ja){Chf%uG@~4Krim6CS-3{N!H?2uT_VRu{=Hx!qxLv7Up4-8B$Mp(5-DUtj zh?n#^1jzmShlI{+$En654q1xa?Gx=#)hFA6)M9voOGvB9{sQE^C6XqNf2ozitd2C!I0~fh{zEU7pK&jtDQURdH=C1m3=v+6tnTt=ba&unrBB%Y0i)bL%NFO zl)1RLn%BwCkx!yHpib_|&v@UHv^d(=@av@P$j39L4QZNt%z9Z-b*L?FD}>*8PI&B| z);8d74Vwzio|Rsg-gxmqvdW`{5ZY1%DQ(`}Ri<^X&JF(!N2U(FMw+m6#^x4&wG|QT zds(;o?{$^*SP*(h$nxlm4g45oT}kcSYMox@cK!}nKrUS>vRS{LbgROzAnApeMN8Yd z!5TOGG4vqmnSB*c!Y{)oh1WmaX<~*6BkmBAGgNozwiz8V-JlU!kIpk{ApPd*`k)V| zeB^3&4D%xhxXi+R=(V{dyUe9N&zhPV>Ce@xpBMY@k-WQ^iqgjst**A?^IvbaC2VB# zw?0ITS$3}LYmKG^P`qYDC#et`Ol#p99lyN;4}2S^^a@UCuvwDdP1N=AEWFFi`5_qV-(XBRWc;5OakonmQ2!*d*ul$dffkSbz#Kd%= zW1t|UDz;b!I2xy(O;ihUp`3QSZV7C7w(uWgMHSba&ie}f*6lr}y)~MJ^N4PE^y9^~ z1}vlPMTN28F*bJm&P~0JC?8F!E$83xjQL;JLDMvv4?eWVgvqa~H5gIBnRa6$N6x9p zcl^7$R3R71IZ@nfXkJ<%7vF|wJpcMW)VP5)FjeGxLF9WT_}=?0JF0H@_KddpANv=( z>+Yr6%oD>uPo*TcW4Jsj?JI3<3qb1@os^VB1Hqc7Z3TjpNhKg{uU;(~k%VlLD36!& zMSy-Mdl*2P4hYPXtut3p9(ARsk8?nn0`fRad4MzA_kw)51gdXo;_IC~U=P;OPcKSx z?LIJUtf{bt?{V8Gx%K-X!v6NI*#CDMa4M(VI+d&}SuXc&B!zA$Q9%484(S)X{+t#8 z{{HiMnbkCB@CXO-lXA`U`T%6U1pkgWWp4>6)*umMUL*alFOB?HE=-FN?cS%$4c1CE zL3Dae@UE6o*WL5!;dASuNBkO9=pEuH=r^?4sj3z*O(JyDcb%8?W!3W_WoSzo_$GfJ;^AgrOoHULjJh0Lp@aC z=JHBNoP78GWD$9>dym77O&6IRg7q@sCmlf)Drj`SVQRtk<&kbLK+izDL!z$PjscOO z+h|**(jK2MD|+5+N-2MQ zoD@1;@fut3@g(pH#-!5xAQnK_+VY4Q6V-bq%Yjv=mY)^(kqowm?E4G!NZNoz;^9N? z^JcvyBG1Z-@dP8!vxD;aYf86jj0)MCVhW~P@3 z<{+rK)L(2;=-mD~Cy*J;HAvR{|t#KBaPs-`2N{^{K~z52K1JJ zGxX=6kL_e(;85Nii9#>D#$!E;*e)Osr?9FUpv<{hE2*%t?_qmg* zwBuN6W&LCs5Z|ue&-Dj=o3aN3j;0u~VhV=N$!&gxoWaY8x6(IpNnHGar&MmYIt`w+ zOc3cjhkgJr%4%xHV_A(n$yu4gnEKkX`>Ul4FYXiHdEoe}Q`&J3Rgd-z_sco9DgWP$ zkg21JN7waL%Cjzx`k0x=xpNgs99%nB^}slM5$)wDCB&5!c(1ksvkW>iIQ_ybv+7;! zR+`f*0q*V7-;iF6*ce3wIV65Y&`u4M=A$3;{?BbfC*UwU(FNbmqSCtWh`EfD^yJ0N zf6iO6zg+>sd!D-q10$P{_aXCATMRFV<-?sBjmO$d`spq_l9toY(e0WI9D?9xCv5Q1WP-z>J5j zqyn>1b6#HdDZYR4r{KY6h%@-)Knr`^p@KVG?5PQ(b2x_0PY&>E$7R@jSVNWA2TN(2 zLTEMK{gK$?KQ{(TfI(nI^69em$+q2Ad$vJOP}sb{{9<`eMrz>57BtiRs>)qvca%?hlB=x$FE7h zud@f&`D5eQ&<%T`?7j?Isa$QeRL705_BW!?=4LeoRz@xp02h&8Q7Fo2Ul(+4+XXg{ zz-u(iApHt1s|85PRP^*X)HZ(G6k0nSy}#j^!3ALmbt~>(s*K0mU9_V@g*(Qj9selMNuIm z-q0e{uagr+2tga+`*Sulti0Uj-gRAcZvizKw$hl&nbrV`US5BW9eplSJD3@@MQM7> z*w9LnJq#%MEg(lq!y#z?^_n%;#RX-_En)qBX=!DZfWO0w^mXv3ByM3;2CeF&?OeM7|WQCA3Y@24&qc5K_%&elYxPCH-CD ziBVO4N1_>dMG--cZanaaT2)iLL9^AWV)S%tSN~D?-kTAeO;7Zil-2OeCs+l$TL-hAQiy?*~BNZr~HL0F;bki`r3;Y?(%3NaiJ z+u{y2B9v9*gT{7@a6U`~U9pY?AsVu(n;03l#s7&xZr_CFYWK4*Xe%59bXOqFa>kLY zL=+87D1(YMr#M*u#KiYs`svizTkt>|NM*g2Zd#3%g#TH|=Yu*r?5xJq^%=uOd8BN& zO3^}HJ!h=Vr`?J;V3gmk&u!)f+@^nWXNu=8qcv{;`v=7lQ2dTz&L75v+V?$Zlp}rR zR>}By>Uyyctw?<{ioXer`h?@GuZ^^Mu5M794h9lRj;OPuQN^7W$r$5%N>nmI%WH zdSYOA9&1BqmDZxSkwdESf{L)wbV87-Erteg1*mXh$u|&=K9$6nD(jI#*5dV2jf{C& z4%W5;%)`SL4Q=+Emz7oNR=HDiG5cey5SH#iBT^_y!)&JlV^|opy;0M{y;1j;D!8@r z1CVH|lg;b4@Z>YiJ9{@mN=~-j(YN$ML80JU=yubx#!QhD$gsZoHgmr7;}U4Db$4I5 z#UBJWpvdd-PVA;k+vfuC})9)JIrI0v9goyT1An0$#3u5{kZ3nw1z=cgvS2u&Pu+DpCMF3=$l52*gY z_wUk-2sH_KfG4aU`GD0bINj0bJ?W}&im;o)ky2alY%$`fHFkA|$e9FSf;_A(#>*+2 znVE5P_juPttI!M@MU?+mi7l3W;A40;KfsQRpo>ceUkY$7iHW?{KhGwNY<5c_t}H8( zqRB@xhV*!Xq}Mj2|MGCJkh4z;e6bvw_h?F@AHea9$g%i<#0RcFt}U_d$E53Tk9_*{sInS=)FtoOc6&?V zdt&cKb}i#^&6`nFQ6XpunUx$*Ge$tFLM^Qa?|))i_fj7c+W~H&ZPc;=b(4nCEWSs- zArbrzD!{kCTJ-E7@i`AZQE^8$Z<~Y!@Jxgg6wVkG+(p}-*hrV1)WKQ`PSPYyo%b|M zQM&{a}qLdrYga!`z_a+6{3m;(=7_s7;o~*s$eu^JA;1B6>mH$5Ny%13f zwWTifP${0B-!;z}V^K-W4kSy$qlLTYpFIR&R7}j=MATG&7vz|*@^n1?%u5Xd_lICj z8}H`GCuR@$1Ccf7qs#*+izalc=$^xp{ z)J|ONew*W;%qFFy_X&6FRuvv=o-}Iz|MFUxxx1{wo-AIp2%CpR7|xwT9F#X>>`rawx#Qe*xq#=lr+wG8Z=){D8$Zr#JfP4$p&s`0y=ZOzYU&+462+D!$(ep^o4qC;TF z+Ne$r#(r-)BpT7kRg?@&6==3sa>;YlnWxcmH^8z8XxI_}R~z9n{r-s??!@gEh%m2= zQt!3W-JPJ~UmOBos7|bZQAw}>rVSHLv5n@)Lgemrv4*SXXGKSUKw0vx50a#9-{W+w z+y377+b>ZP&@A%OiAAP{Yrbgs^JGfh_r5+fy9Mmg(~HGRRK?&c5@tTt=E(<)NK$Uj zNjCe8CLu!wYkGU7{>?diSR`*CmyYR6LAp(W5Hgd+6nOX@f{Vx|o6c`C8xySXl)L*L zFa{vAn3=4Jst;dpX8;HGu@`;*NEjeak>xW4|; z=$i!dwBFuDqkxUd82q;F2770 zR}u0--e9x|Wu4cZen8Z5RNK6)X+zdz{&jOb3kw~DU!6x%d!nr?_b9MqZ^M(%1(TXw8BN^et-1c+f&BA&$FfB)jlG;TE8u72~N+(Kc^?;IXYTJa(~vqbF5Gnsa-8Y z3lI{}*J+vi^Yi%kc-`Uc2uTbx4H`44SXN5Z$N9y5#^UC^1f(-5LM`YtRY4O;q`yI; z4mr>ZVYPTs+t92CWeF$t&Fv)(H57P$!-mJt{v5=oD^pY3+hLcP6An8c!dJB@?Z`E5 zIWtd0Ks~-xVtpsj|J`tg65#~%ipdz9=%QM!jq@h9`Y|=ER^w-pYO=+oUCBKH0W)rt zq~rg;*)RQ!kUoE~7YShrO5p2kbyCq}Nifx8BJl-~-jh9g=>XmK@)B+}VT#e)3~Lr( z!qba#F87*DjU_2NPTd6Dy8LVQuebN)ot=@9SE2^VEb$Rg=0C(vG-f#TwiPB@Hs_3& zj`b&lJQFSB+c_JvrD`-IIi)^^v-_=e-Fwr7)^3N)zj|)280L^QU+6&JQ}?NP1!|Fl zIajS{NZNs57Vpii2eOxxJH{(!R-?IB#9sK)K+g8p6Y4}`vH1g66NJ2c`?b>-v<_Gs=HoRH6CtWbqAcg~PSAM(he= zW`{XQ?UF*n92Q(Zw0QwH)lr~ zy_Vy^okmXN?Q1c7FF>Ur=xb^(3xwD0#Cc9B5liEje6y4H&Dx63eDvgH8m88q6?f52 z#Nq|5fiLUKk)kOM;`N9|V7HRX(#Kp9Tu;)#w?%P;Xe-|%@#3wGmD|o}2xtC%E2Hzi z8Be$d>!~$Dz)>QwO9MZev2BDj(^OU#PuK@=7*g0+N=_npHe@02W(@NA7sGXd7a6L+ zN;UWUwe+OK?g(efCBB|aLVc9W2k-8C^zQteX%`9S$shM5%#6TEQ3U!Ra6>#b0Gu0T z&4eU>E_NE^eaP1qQ~{mkejO;7U2wvU!&WjAWIS)vFOqv-Z1WQ@y~q zrNreaxg{ZXM&p3N#S-Rumj@)+!?_?DI;Njq_}W$;Ym!mp@VS!)#+vU__8%a1Qaga#v>lT1R<`x+~9lvoN0EbH27& zHK1Qy-kh{^XZ@qxnN4utSI3}(%MqRN9@H%`&``bitIegFF;vY$TtWhUgrtKa#LC3b zFvq#%*7yZ^zKAJ2e}2tgSxKtV4N}u)F`)6)7pnd|DW9o>oOZrfk6hu z*rC-&cRh~4^5VxxEd*#pHUnFpR>UPcdDdz825bCI96pMJ1WoO=K7o*~_#>p#QMjUY z-KjZVyy|yi7WDx*w$hjSv$k_OlNt^nK_@`_IUVpp1OaWVy3aeJy&?Kri8u7yk#WDv z!lLf!GE^pJYwJ$EwiA9cN^To`@r?YYkK$G}?CNEIju921tKGZ1^06}+E z7SWsFZuOa}9{z_ch!S<2bUFqYTsk_fOWwE;`Paotv}tk-4)|9!HIZsGl_43E9vwB(BEZcdSH*WXM|P&R+?+j$8pv z+3Cep;&F=NTSHMn$S~=X%;r(bkAMp_@RccGu!+3^gJS2Q&-IuwFEiFZ;uQFDzIva9 zaV7=ZE6jZjvm^X5m91!I%!Y5n<9MPV5BUPf23gc{!I9_kTfKR98))_58qRu?2(&1F z2}<F)erddG?Dz(|yBqyuBQALRNEM99si`jaRc1Rrecz_aW$ z`89yb8U*j$ekCfk(d|u@K_3bQi1t>zL4*0wAsV2Y2b~bRGgA3UbR+PAq*jvWxk<;8 zoj}7aXu^WhJ6HDfk8vN6+N8bZZcWeILXJe~eOk;Zt*~&nG>Gcv6GxP;gomy9I7tnN zIz8na-ErG@c7VkVS?I(lt4Oj(Hl~nd4&^qw6-j`0VRo^*=pSetXpGSE9SOe2$l@ie zIRrx^x|{US&E;SXBOM>wpR*cJX}C(!D^7x5HuP*yQ~sRE<$9*=UoxhDa48&6bs!u^ z-(=M-%zgj)Uy9&CnwXyeVtQ!VpJOM=469WV+=42+%Bxi8ZLeqg6=)1m2xPVd3m}%Y zuo(6r$1bXXW@p@km>Bbq{z(rUe~d<|y$3#M7X0XNT@%dT1U<8hY$Kf-mJoUNoR@Vr)MIyn6b*s4}{IR6v=fq~w%20UP??;l{5em>!A*YWR4POm|<0(hExkJhTPl~pLSbyx{SxXnwzb`H&lFlm{9k5Vv@OX0&IADoD=TV!NBo)X z8WFNhlHi~+YKyb4*Zeq-?WdplZqhkjTpF^u|9?&Gc;A8dB02_=jJ0^=k676X zChHAj{p?MFqM#`V&k~Q(jAThT{QM;{LdakUuHIf85D>WoP{D`T1m%KQe6~991v;^G zQ_d8Bj?*zM|JnVoj;!Yo#CT6@hPHtjC@8O`xvqM3F?caBx`cZ$-G>_L|80QcNAiW% zc<_T+e+*0iMAfJqyREFONZgz3JT;PhrXpo{dL)b|Y_y0Uhx+o)7EjSowIa0Xu^H>J zs{8qgf%I0D|2c!N8omaU|0Xn%C!dwOuz@s-8_iw&4<%liC&(9ulhAP&`6UGG3+A8a zJGi>&ISPIEkR$a5@oCzt>3wSVh9=Ps9UymjoNR+1yAv53WQWd*CrsxnX1PwYz z@lB;?=`478N`VUxry}N(Ln4aDr0GW?l7SwzJMjF@qZim5@l{Mv((*Uj!bALvrUrI7 z5Gpq`u!C8OH22GjQ4}WtC9kZlb?#JfhN_B+SHCAJa7Scj0B`QsE)HhmE)Dedk~AG?g$e*H zvp0_Hy6%f6d1CE+55Z?@Zl3MBj(#Ya1>CFdk=J*|hxjjTS25wY7~`G=0Dc3>O3?S= z8FVX{|F@wi6vb*Y%h!T;woKiiuGZ94o-e2O!R~x;p*sGGPPXZ~|mvKU^Kb?uIu?sCBS%rjh@*JW1yhE=y?EFk98kL=n@1AXsW_An_)Aj0X# z)vvE-hCyg5K!qspCbUFR9J%$>R&>hoS4iG(JTNP|j@?)Wt-Q12T#+M0J3AZ%u=3r; z18u1Qm?*eR58Jqqm{p5&Uawoz)13fU(bbDTuQRo_DE!ny%8P)=DFEtxZj`mxQgzTd znL-+!z;`4g$d?m`!7#*npm!<|8L8QchaR|83C2JS<5FlZzIstyny0b4lIfS+urjrW zpKzd3;?-fJmsSvU*QQo+Fmx<*6FkQ9E?j+0x3`_@vFd=|rcHiuKQ3 z?-cjQw8a?##S@KM}Dy;ud(O-62WvuD)or?Ysr=zXzMY1ymt!=L;>%7R@aQ#+^UUSmkZX26S z1H958#~YEL`)74_PMYny1$)Eng+ITnYn}T`tb8n!N$hX6B>o`jsmPGMgElH-XI`BA zA)GfC@XdyoIcR@)f5rajk<7Zj_p{3{jaBsf7+5ZD8I1dQ&js7zXFk@Em*@9)E!Ts9 z=4Nzg{b<@TRPtJ;LNH{o+$KaVrsCyNznU)pa?X=^>!veb^YS>UAi@O1+6W4q^eFft zL2(yxg-UepjE?oUH+LUpUbg%D;_OCeU->S*@+6)I#(ra6ofSzp6JWspW^=JD_&$@; zCu3r(kY1n1JL@_&Ap5aAD~D@N&M~b-vTomQ)!q5GPAuK1#S*se_OjIa!*Pc;9W$s; zY8gzjTd?^^a_V!7exuY?2c9ppW%?4oM44yJwHt2SC-%{Cvj>N&o!)nPTkywAF0Q`Y zLq*S|*>rx~VbeL9C6Z`%F~VkGg72eKXGE9mV3&xXpy&3}W!}Ha?lJZD^tLZWd79<< zbL%te>eEqal8N_rY_G2xcM>%yH=byEl|3*%-t?;2LC#g;)6{jPQI5%khrK;XS?WJ$ z3egvtL=Mb{p}u&@SWQ=6lShHE{;#I z$7p5U{dONpV~V_2-{qG(tUtB?OU=OgOV3ApTevV)wM9i=-z?9x#kn)|>v*v%hcPD4 zJ(as6ZWN!WaW0pMskdT>KzF-`Kc`<81BYtn!0Lp<8!aT+(GV0luzoi0ota^l$sV;W zn|ptaCnJSla@SZRb6`nqB6js9N_jw&j$;I}EYt2mk?-KicK@$)N~_B1mGLjPJ* za4zMHfZW*E^6<(ClaWi4jhWU(jhXubk5AH!8~F0_Wrl5`_v2!txaWSk zsd4@1HWn6I7smhXIFv9tYMQ0Ou~o=>6Mzq&n>m-F!A!SVm`_QvzixY5?V<8Wt`Dcn z)vojf=^5>tSlk!y?R`Y$(TdwInRV^w(8&c`89EJ^6OE(yV^~k zA3e%A-%pOX@Kr^ifN@p<%z$>r0|OYYaI$ zI!f|xR>jGAXB(ISL)Ss`7syTV@Hn{+1SnwzUvGxXJmTx{}T-QvBcV`l2Dr)ol?+@mnLNBWXup7%}v zhrRa>Yck#5MuQCMa|c zT$q_jN}|T-B@C5fuzJ3JE$MSW4v;zP?hds5&VEw;yBqZ}zw2VFs}Ddg%1&g-NdoQd zG8ra{Vnc}@9TNVlSaY|^#B%R(XLH<*8|jM;E#zb%4BzJpp8b_2oG-(f$qgy#o49|Rs3GY!42T3GCmDCIkCjKi6GW)&AzkL>rdx7YKixH2?+c#p6WK+cPK?pvS(^iEaV~NE+aUx^x<a;}S~her#c^?Pyg3;3(ASAIc3xV^K`YWiOu z9-b}Ox2meW_x)zRc{-&s$o9+(4E@g?I}fm}U7Yg`mPg)$TtRByk>yP#Po5C%ot*Tu zU9>;9aSeQRbx_`$pP$VvFflVbVbgD0yETjIn#iB-;#}tmpSU3#cW9J&=1j)g4rdqr z3K#V6MkQCj62a$aFME9W(}=n9igQ5gt1CQ|JfpCIrYTpkhDo%kH~IO>GsG1s+(+%j zAmOTR@sN=7w(oE2q?P(Ow6!}&pi>X4sBAss?mo9!P1LFptBh~2TF!Ne)4<2*_y0A3 zaZXBdXwP?W5q?${@@BF}oY*Z+yn>53Bz-tU2kPV*4Go1A1xItX2P?HT^FHK$x{Yh% zI;)P7DKQm3Fra6gpAa^W(U!P*!*k2>{2BbhYvM|7&{yn2%p}DoI~f~z3kFmw6GK8$ zuRsr(Chn&0VHpvsXI_ET%y&3+r8j0K-AXGfEDEd#SU-#nwrm$p+zxT51TZ7eZ;G5L z{+1gu$IM**vROI5KO`;Rxd!Fwl$K_TJ?|+#6iv8gEaJ*9S0(Rk?$z;dkZK@*x22^8 zshJFYk;R7AiWo4DYSza#g{@!PM}3xe4gaPjOW~Fqbx0ZXg6D{>nWkDgAzsffzO>Ol zf=w=;U7UF^Jl@<^dE@Zm!%+4g@${Nj+Ac{xauA>dVW*D$gfg6$jtM4f@eb%gNJ3lw z=c(D=&RyJFX({9rZ!ZEo80Ow-<#lGtDZtRO+}pjJO%IS!QBg^CpwC8kfaSGuo>RTG z6H5479QxvHSQ)WrwYAxX#ZfTPp~s=sh=6;){`i5^gdo*JECZsEF>gJ-gyPS zSK+tYn;#21^_IwlXL)0yA3uI<=H@V`s)_bocuL`YEq2*OM<>y}X3ud~a(OzAD->;j z_Z;~Y36L7S_IsL^xRKIxmae<|m%ZO&d#$u0&e}cZTU%vl_~$l{4Nr?p$HtqLB8QUI zWFv!?*RJMu;YZHBN%u~DTb?GK%>Rw?Y7&}7&QsIr(Zw*MJ5ceIWBA_Sn(uAoL()=` z!Om-^#~#395qD5-nwgmKt8RGF+ts&MUa})B$oonlQBPXhFy?H(6%>r3N4DfW8LqX( z3wUDl2obOLWBDX{dTkAijpYt1ySH|C^Xuuc)$RLNR>m&3q_g}j?Ck91hG{*=;Fb~qLV+5lGOF)F; zaxZtRT2U_>}oak0M%}-C?f3!l*r+;!XsK3mZLg*;av!?$T9O^3d7!S;3IeM?#_~6puhkF3o zeX!T3?oJE}s;jFrQ+W4u0Sc>JQH`fB7CD->gvpAfK6@q_Z?t;AuKU#$!;2T=Xl55L zUTn*FTQ6<-_SjLV%cj@X)z=Syd*9abW#`VFg*O9hfY_i6XkT*lneHzf)9q$jDeb`xy~C zhU(M43?eTtj3L)u@%HregrPjIB|C*)ka7qFn7rV7c$DbWS)jM_Iu)jF3FB9(-q$JQ z7r2H^t)(7zH8}G8_fu2W*FPUPUdE{FGkycieIN-LSyOz*k`%uMXL7^1*iqtQkPG}N zC2Hv=C`en=iJcP!etDSj8RS(tzk305i837t!LH4#c5KG^UlFa53J&e#Q#y|cJv>Ix z2aj7{Tj6o+XBY_|#^)UI6??oVk)-mO+$}9aZ+!n(E~%%C{uv|%+MIl@g8rauKof35 zelBSePRP{=rO%8zBacC$wt5N_f1|OKzXQ!&2sCRJX8Nx$uPnZ9(ooe{$Tq0X)l5Ju zf%eSXse-a0Ou#7SvBm%rXE!%2%%tUtM)H5_I7EwbP6pcMqRaA^vr_{~*8yg$Pb=~E>&>!JKg07&G3BJ{*V(@+Q zi-f#QAwkI0`f$0k+hU`m_xGE~ngU{!?l%T1C__U-hjg#k-qmdnd#M$A)(QfQpIeE4 zoUyaz5=EC(P%)ow*{8}KmCu?yEwb__%n0?!+N%oxJNyv4I`qtQ0du;uNbAOHtsAY_ zNa@8!+EkCKK^;Ue#~QI)tQ9{99~bbP;guL25`In+Q+%=Sws=iO;tF=9CDxbpLS_IPscCG>Z*;Zl=7vnS`8q!Ee!=Z3V~oFivd&TG#K4YHAS7)y@GG2mR(yj z^&|=NKL)F)V|dmWsG#(i!2nF%csWUc8)?wRoI8wVFJRLuD%3}Ns@xefCAIJGaHqX^ zaY%z++H{5HQE>qbo8OehK!}0=q%rloB1sw29sOl5A#D#Pi%!x6C8wRdyzDXdY6|#< zy01B0fhM{%G6D3;klN%@E@>s#n_e~`l#3yRfB5i$9FPCOjXyRNk9zkpCYwANgRu_A zv+4MV2>j|W2oYBvhx94nyht>{I@zbOSQt?aetI_|)SC^UVUB6;5HP@8k*Tbb?Ozss zKsVOgxhDTK{yQFFCu3L%knd-`zW;+jC}6pKNLfKdbe%`Gh_CW|7V zp&a39f+So;mKqtgu z5881IEi7<#!$8A%$Qd?IVlz2k5)tynRk^1*P{`}@y&q&(DIx}!Pnb*fEArecRo1B!5;5kOW) zZRy(`YCUPSzPY)XmzUQ#Q#W{vpaM`iJOJagq7I9&l>qTWdg)=>(*32+1_4MsE6^_Q zxA-~*VJZfVyA;&4*x%>It*#K*zMz_(kBs5sJPgQ^t#<5YxUWZbD>UOs@$mu@FQLmM zDwsU^F_>>p*;{6Dugk-xfW_ApcxzZ@m=qX;40!E&1@mtqzTo9`r}uklfmXgBvJ>b0 z^p7TDer=MnHK?<_-jjs6W#X~F_tLV|Cyn6WMV*lm7qGBz=p=4oZ&4Q9m&&Mb3Uk^H zCnK672l{>Unrx5qDJ#mPI=Q1`SISCT)=(2`x=BoIs5OOkBhRAbXh*(8XU>t)YMeEvL?*e9gYo{hy|rKe}DsT0kl6g{6KT{ zQeDb?QBF<{jHzNeqS43~bSL|ag_+L`f~uU6rQ7@U73@spesc?mhev%695~?K3gQs? zC1e2^((3iqTKsCQB%93@I353@0viz{g-JG=ho|CQGi(1FYJ}80n=b|`#tFN2Tiq~( zc~%)n=))0qMowGZ0!&jGG(PIWUaHj;MphsV1~AYI%P5tI9A}MEz^XTA2b4DXyL?U1 z82NylOHI8tR?Y(t4C_N9bmnC18O8IxCgu7#`^7*R^YaC-5@mn9mesv9`1}t79$5(6sOPU?&+UNuuU?s}caQP9bRET)nVT86a|UM-SU z@n|gBz@S2Rla3!e>>oVM0G;si!c=00R>t>p$bN;4&ZkbufIi(Fb+dn9wP7IC0KbBa z7u<Y+ppBcsCZnnoprP-&AlV?`;ApnZPD>$TiOv1v@}qpgQ|Djowr;5P%~^q5U_$i|{yY0kv6oHULyw8gr4r;+L{ztu7nF9t3y#5J}GvM-O5P zl>oXsSFv#F%Og=#RnojF68&>V^#QnW71VW*rI#XcGk=w`#M)n*Z< zA%%2FTl@1fSGg-yO!~k8gSrJeAM4mto#wmcgPY)5|5`_&{UV_FxcP|0v&SDf`W1^KZXx$1Z)?y@9z3 zg8MvyWA6JU?N8C(`G^7`t>4oSdEYcI?`lE{qs`9@XOt|?y-GDjk%ai{Bt;JoRcPZ0@ReNJy> zR9qdlM?|SxFs*?076fZSEY2&93rX9*w0}f{SPLJ!-;F7uNcw zU`KFAXp124)}S%@t_1Deh(s17=c3w z9j%Y8Z3Z3wDZYwISd z$RiUAkT3u-l1P96v2(B|Xvnl0XbMST3UtjWX(CMf)nQGREhWW3b>EK27c~B5=>8=6`a$wI7N}M#JAXQKRcB*o!8Vr%rh|^Kx zcq%yp`0@8b^Jj`y0tzaf_|Lh!yPI6NP-74<7e(%5e~?-I!`umx`1jQmo@9^0w2IlK zwk!<@Y5{}k97d3p`+4jI0=|Mi484yU)ux%VtMg3}6VTUyEC)zxhXHF2Ac6N!32OuU zp3wz0DnwAnc2u4`V&1AQNTDDe#;3r3lT8Srrs z0WRG^qxW|Zuqoh5DUwaD*RJW7LqpoMKMR0C?p4l-8j4C;{R=uKoY!h(K}#qn-mF+q zxYqTE=2KKu6bt|kx$F$tv(u`=%h@|0f{l-emD$glNMT7%P~Xqqb(`)g{D?Sg^6=(e zN6uaACwjhHh`4V;x$6c485S#Dz)Dv6Hh|ueS6wIQiaa>`rsEt{f1|&|ia+%sc5jDM z0J!ray1WSM#{;c5jh&8;j+04U#()0#2oSOHXH5gI?F;}+eMZM+RaORk9TQQx@q#|} z`sK@GNGx=T;QZ#`HsIZWJggIL3Q0=Nmu^K3N0ALEbo1^>=7!;;W~k8JzPYQj`5U4p zh0Z!TI_mrMZwCGJyv~Ls)e^cqd(oBMLGdnb%H?`z-;A9gT!#}A3L#3U1RSRJbBx^Q zp`GAaY~FCpSqpYc&9W4~>YBTuQvUdHq&Nlq%q9tcYY59FNx*g(f(~50H^s#V{aKa% z4Bv#1+qZ9{A!X`u@~^ibw=hbh^5<0tmh~xAB>iykFSsQT2Zsk4dr!t)gZLyk78{_P z-z2{`Tj2!6AMCFTB4Rzv2-&&0s-x_A1g1?b%Ix_BXNo}ggwuYc$LyyW~*tZ(l7^py>R^G%xgx~cobeWnqRbdWp! zCUmfqUTVD%h#<@JxD~tQh%vL>Cb4XdjaoDIKo;qIzc&(+oPEeTtjsi>w8X6+wzvd# z=RHrru|^HXbb9S?n>P<*AgD9&nT}vDMc6{frkz3p_k!Tlu!pw?BQbl=R2ig3zM3p} z<5$WOoHCqdvZ|L$PYR{T+JB*asWgRA+EwlYmL?G_167kfuL7Mt>pD36I3pK&?hOsHILxG?U?iMCtEu2aL?FxVCiK&_%IA0wM_W_bD ziZ6of>gKD7ve{3&a7Qqr!t`Kyai>7OhfTKzVFMUyl0YIW$0Bn@3iU~ACHMUV;Y2;+ z_99u1ZYxqYVuv8*6g8!I*Q#z%ue{n2PmYij~H@Kc*NKmz5a0g@;pD0DT@v?UMlv=nCm8vR1tj~2v@#CBvrm9$KNm(mTuSY;xbndX zm){IuQRiP~A?dI&b0=yo#Hx+p|x!W4Vwc0FPQguo26J zxctu(guq~Q;I{h{5RFFE3geE5i6NCj1jKM8rdY z{)K|sSONpNt)%~^1>)`1u0+o@CaDfX!i)18+>GUaMXsQe1%ZA!VKtAqZQlN(eF+fW z^)sm8ob@+FY)Q{53?0{4KH)Xn7n%nFQh_IcS70{=ijqA$E;{(Lz~s;Z60e!iPl5~J zRGEC)t38r;{n8j^1FE!hiZxrD9eS+8E52!O0Px#bHC zvUEif4BmVRLF8Na{tmIj5@Z7^BTmTyD--01Ch$qR()lTsDN_K$?U`FfMo0pvmrgLK zhE?{})NuRuF31|kTsGSlk?GLd&7y!{$T0op)GI$J8b>Cd7 zQ~KDul|`pBXU-rQ=o_bS1f=}Ly^>3n;)8SX2tqr5u!pFLRxH7$j?@yKNK)to3(ceU<3AWPh`952Eg*8;Br9^dcalbALbT~E!M;K-qh;dIL%7H zv0jyILmk{(f&Ctq1qR_<1le(Q61VkQI~Q9i~cK8fqmj9H&(TI>0Z~-sejf4@n#6}h12GIz$xs6dhQI>SQh+xdiUJU6 zN_veEAr*P`RseNSpkknlUj{<^N5U2DOYJ3NE6C~N-ny5cw#=TBVLzr7`E!muXK%*@ z|L468{Y+q7J4!0$zs*BV0J^R&A)u%IyE&ntz@;k%2R^t$qzMd87h%fbDq!tmsbz7c z0MvUB<9uLvQ7>-$74TD312)Y75EBH#gZjZ)G!jt?19;c`H1D`rD&P+RQzZepfarjA z;KZlESL!uTHl!gDVcM(vh`Io56Nn3&f~*+`_zZsolu)Y;dRsYoL>GifDT^yDMUbgM zd~T1vftRND@vcMF+$OtT3yuBt(22Ab9gtg)2@9HKYl5Sk4{Ty0a3hkiq0!O6Z-5ef za(Yw!J%|pDktYZ>1YH_5b*#`Zv{7&l=?3`qk8tZYUV0h;{RGE<`|UTtPqj2x4E<p+8v#fjvGV5%fOFep(5hQ37&BLVQ zX}FfKPda_Lq;etuqU9zOUnH{7oYR#=cJ!O-#reZYhoMcS2LKE)@M%QsJDb90lHj(H z#i}^%bb=G44kxi3{p!(RWzx0q)lM99(+uV&c?e>Rnuo6&Ripxj6$8XMAr|^4IR?q7 z-@>zmLCHP{H^rOQtd$0A5yT@QsP@nuk=1X{qWvL<1`F2;c}@vwkO$8Xh#aSy!h#g(7?Rd=AZHjMoF#`(S^i=N z8knAU3g!WryU8g`XpAu_csxWoGtsp$nWN_|bFnu{g9MB=1cBsudNB6XZ+CcVCV=`* z`mvd`4IXK*74%;JjGM&7#Pk7)Kx~4-xWHND0`8C`ROb>Z1%Rp&BCZt;+=EN1~mjy{0Uq!of zN&hauAxj{aD)Ks`cVT|9*EPb4P@&+^fRtXcfF-h21xEzzT9oE;)Y2q|B!Cd7QuFeT z6kqG!4)Y@@{w%~oE{#ZN#=W@^aV-U4393FmrVl+!fV3`<25Fw44AWEtLGEEs9WD*- z14`)nZV70w`+>koP!t*l6cR$FJKQ{rj9X=pV!egnex?7wToHmcYU+dLG?;Va0Mw!> zK&S`=q&dPf^qvL`{+E|dx3#w;3$Ajw;R__3BB1&u^kWHn-9d3KpDB!Y{**_6>d6um z9zmh`hB0MbJfN4=Fsx%mox;QV#&h4V>WElsWu?Z1%8D-}E)4Z2d6y=qa&ikoTm$A4 zsFm~z83<8^!5V36IU`UIQVZhgD$hs-Tp?gy5iiTxQxHuJRWfED3c9?#)I|WVz+PBF ziXBiis)#@;c96w4Ug~^NP#`=vumJGVxfSAj6I0V_+X!_4*$KG*DPVFp?pcgSvSa2- z!lw!>Bmj@(A?gGHtMAdZP?F&G--6QJ;hW1k(QE-Brt7EV1Km^@sd)rn$3T+>-$p)QaCg8y@F$3GK<3C}EZxr_VPX)XQ;$IS`<$3$3ey@w zW+^I?oO58d>fP8r3j*wz?@cKpQ=O2Qxsudx&i2J!;Aec7^?9@Z_}!PW=&q>&z;A7hd3JdGJeB6|GDJm~uc9tRVCRw0tnS7Vuhr zh&Tm{7BVKKu*>INUsBnu0d~S@JL;GrBxsG^lT1`#+jxFW37|9_kPk^G!0Hc#AvO$7 zGjf|qQGio-d;UN;1gUUAL0V&)*sTV!%ul%<9THr$e`+9KW>NlHgeUJg0(C1`fYGb zlf8U|aL^ygyO1IvfU*#=ntT5{$w&0e!EI|sZbkS{+j7eK!0*}tn<)aZ>b*MWwE-SP zn(N_Oyt^&kPQmb+1HWy)(*N&VBcpvWT#vY6GGsBr2S5l2P)~b2Gnzh)WEO~i9{MA) zE}MA%oyC;?e%=415}j53_m4%L6#g$`>3{9dS=gOpMR z@!q|AhL(wbo6lvroH}(XIyySkp&vd9xIqF7#JCmf#t~rzMv)DG;<-9Ru}Fl8uza?Z z6{uhSLF8TB$nU(88wu3TtCh3p2?A1iUi!wZ*~J(G+=m)H4D{N?pf4Rj_k3sHiVZ6- zsF0oalsJ!aCYC3meL6Vw6&bD0LJP2AIq_V_t$c7<8k z0cLzYdlrdaV`5^oBb>?QAgeG5osB?Pf4emF5a`x`r6cqBptW)5PIm~7B#_*Yea=CJ4G!QoiT#d&- zHwQ$8i{6MpWup}yz_(w!h(V?fnlsxE#9BV4bpZ;f)rVDw$b;&Ir+Zb9?vmI{N<@(H z>AN!JKmM5Rel3x)@Gs7N5sV1|*}Dw*a#7Q~{c{em6A*kKdL%Svl1kgK3ol;02r6>w zJgA=ei=?fMKXVjnAC182PFd84J%?;NXs6o9uMX9KZq>5UR&q9JlJk0{&%#`3T6lRS zoLz}ukLs^IC($j=f0XOPKBV3Oi>0>EW=w?)y1LwF9%&{BdH4`Ii_)~Q#ugTWKs3`? z_7K(#P@5P=Xlf84M^7mzDoW_}D#*)cte#G{vx<^1n5BDzCsy5hU@+mABvnP|d$lOZOmrKlz|jLWLsOuR0^|g}>{);ikpa4E zg>^iQli^)RJP4bFT%ii%Esb(4tgVHSB1MZW!hnOQ8M>E~)qLJ{0#PudZ(I0+FtyFt zpc=td=w_d3kw)o-qhm&}1Oi3ED#ROL-1UO73|xdyW+* z;!kT{LI{$^v)`g%U=or#$|)$+KrM7PZ@;FUF%u66+>=Pk6;9in%koPtU1%|dwune0 z^>H1%yd3g)yHs%_&>8@$!Tc`^pmhals~FnP+*z8FMN)D5b`tqSBu#$y>>auL0kXrU zlhnZkajcMp9!>oZe6{_=1OYj6piMO4U;g&35-iITnmmk7I=_6ih4=WkzaBukfD~wq z3wm2x9^cr0&e+(v98SArr#jS713NFIdqhpbYtlO}AQUHrs}w!e0rMGP>qGnV+-C{n z0tP^(pcFX|ozCCm?2IalVKlQkq9uGly%^xnXhMD$Z23S%2|R#(twfgNGpC0@9gXQ& zz(5HIHUm^7whF048})-kEYFhcJmm6WkoreML!kaEtsC_Z)RDTV(2vW${F{J#-$2Ri zpBwaQ6>h|OLgNrDOL}mnmJ(jxZ+)Xa@Fi3PiGsA42L>G^8Jep|9zMKF%iUc& zF<@m`8|y){ciyX!=&NMEJU7zX8=oLJ^!0h$+PffS9I#{O0uOglu|oCxJJ}EJ?2^%t zIIqKCU+?MYfT7aq!duPXx|!-G_pxJJ8ymyB$`lvezLxvc+xEN}8GHtvKRnzGaj!xC z$3S>%Pnnm~jhmT^^%Hp)H`{jPjW|$YaCSs-aa(|Ll7_zvj1iHWD9p)8a$og!lz0g> zh@JCeG6ueRnOD8`sy;CvR&X%#0r2ARL}AqfdUbPJ_WF%FIubCYYiz%I$Jal1ZrK9A zc^DE>dm{q0NFGpsRI%m0ITff)<$3qV*=;qaueKUQ4DC<5onUTZYZr2=E-1)jmrVF) zZGn;w=x}4by9IXB{Oz&2s6_s$@#)ZfheT0J4OiVBLwNR{c-=UM|;0*V0iZ5{Nt1IXM zis8aDtUVXa%ywiY6`z=Jg2hgI{`}xX;h@>8{mY*_pFDxde>yV_!1+4!@WMf%*HCcO z0fhpP2)Mnz9@0y;3^W2uq!N7%>O999t+q!U)SIAt18#0&I&;3%peazwKoyp*=KJ>-+SGNI&>ts306>G>*0SAHl3aR3?DA;p z8EtwHr#CP}@m)}mS+UKj=mS2(R5T7Zz2}?Wz@XU)FPDGoeXCZyDK56l)C9d8&B7U= zKZY~2DKYbQ4Iy!BY0hQV{_-kiL@=Yr{e8de`Ig?2JUOX!{GDLk={RL)^DlV4feRq! zx!Ratq7r19;xMi7mipbu3DB=yiS0& z9O^5t#jl(Tz1B*UYo>2x?o7+bBCTZMi4t3d69uZP`v>ap-8)lgb87B07kGzoaV;ZK zrcHC|W>~DAo^7zPvBtoFi9d8?8qaJG=4&v-#I9J&dCg89lAOSAfyHua>&UF!ZEBJi z`sx*Htfh>ol1fxr_}ZLzF$B(CP@UjvvQ?CP9_mn!#fT-5-+dw9M~jiAv4e!@?d6f7nb2 zud7p(@MpomU)#yHwmTj%F|H5-*$%&ds;0bbb@9G!L;My)%RbGIt$mgv85!B^6W2Q~ zVrtU0nTlz{wF#*&4lSQattz}eItBbU7JeW+9C*?A!f7{Yi<_suB*v}ARx~z_WKR#8 zl`kbel^vr2qvE%^fa2Lmi``?c4S`)U9Sx&{ZzWz0n~$HX1#TGIoCO>PBOtk{5M|tf{&3VRQ3z z^4ic>P(b!F=wi4(j#JHOtma}Upur} ziJUp3{YOjwg8S-{v1DhGI?g%z$-(a7o_N3sYg=F7v|9pR!3dZ5c!dm0ua3NVcpM`* zL)+my@M7ipX|4e`C&!*0NlDoY7+Jfc5#U-=Haa-?sP*(1O%XB;u-kX;1fi6hLm#7> zd*aRCIZw7N8yZHg)~uVEu}FLCy(HlRI7@@!g~fcRr!gK2vm1vaYKac5LtEy@YFS*f zW^&OE85xDesbUj_R_oV8M`Vgb1{4$n0*MR=4)5*2KRJuOw)dHf=f#U^377db#V-4w zITL+w!fVpPVmNyT{;U={FG*cB^T0$?d~eSXm238c%HG&7$wIHA`kp<{e=Vz!;r*a5 zC}91Y`I!f^lT*)Z>y^d=(XvJGcM=ongzVNRVno?O) zr@6C^jvus@*gH75uX$*gMiO|+Y1i$wU&Q$9C946!RI@Me|x&p>L}Kf>N28>aD*vPqXsJU!1u$6~j6dUD%R$o+;!*X1(x$__t~ z8Q8Xd{k<%;PI7kx*{8+3OO?^`kFAPCY*pN&b7&ArQ8|2==qhSuVj>`gv5ujYhK1o$ zGp~M25ZiiXVbTe)>Lxo)O|u7V{6_0?AI~O9OM8L`n#A?Jx-tdzO7;RqLSL>rSse)4 ze@n8k8KOx^&hVH{)_LxhCMwm{gOq}m(OgpWRAUNu4?KDu-)k-D+(u+osh_$mGWO)x zcE*WHkv$Ai_~(b9Im6wD2%~`JOxeq_a=%MQ%x`FOq*~4x8#^klNjZ@r_T-2*nY+F1 z+QXU}b;)*VDXEAn^&PN%mVShTr*(dN>!($xmTSo=%tF_RFccrIf|g1x&?)4}B72_> z=#_=h2lN=%;VH}`Nv(w5i28@++{oj%+%_UbEa;%9mTj62-Hp8l=l(uSA_E0x+*v4* zi)agcnwp%{Rdx{M)poksIfHbq%Y;B;udPxnXY2`+4bvgAa{=L%MY%OT)%Whf@8Vtv z@=88f6(eRH+!^NHzX+%VY52FzaD^9#dQ?@0KKGXmQ-Sr+_2Hg-i*Ad z;`{~4sy6LV%*2pZ1`MrP-<8G^z0ih+4lP)k7?IwH7F(dq+?qVNePZDhTxsD{TuuVe zM`r$8bD%VI)RpmSx7c0 z_F8O1V3-2d;XgnIL^!gW$jj#eJ#+R6ZQ<`AII(R^Y)vaHR2C4h4&xSCebDumTE+aJ zc4vKM3$#%1-@BJ>z$G|Egf_gj8*4z&VGEGYjNT?Pd;A5 z&bA$T!2SoStG&JbM!K*l-v(8moxGa8iduNe^wu`JRP1My{@d=RikH9ftu3`sG-jTk zZR;TkE*z*VoS*^3u5JKN0FQh60tt??`I+c*$*N46$584+1vI8J zRLRfV6?%g-)8(zU+Prb@ax*Tc_+y2CECHE-4?j2K8Zj7x3bbr)c2|RKNI4{BA%wv) zm(575#q=f}^hXAXIkQwJ+Y~yp22fPd2RkA1n#jTc=dVuyW=bv{bDIlCILf4ejYI842+fZpqa$GAT1fS^qQ$nSc8+&$U2U2GldaW@I? zVS*6}mu<2Xg!CfBbIN5W{2tUAw<8+SAm&`?j&1AI6gJK(2%Vd|*KNHOh2ndPx)gF) zim**=-Szlw`%qso0~2?0F)4hoD|vbUK)Q(^iJd}WfV41R)h3BMC%S8dZLQPJ3T_`TLj6wmovK++3(n02aw@ z;$2g!4=>}lU$Mddyo50463?{Yf4XAdhcH3Sz17tj zwxxdsav@s)jqdXq<9;km8coIl+vB?vLFlzS7oPzf&^+^^!vHSqXwAZW{1R86_Ds|V zzdqfS&1!J}@oi9v-d9osPzJDj;Xy$MfL?;jlvkbvnxEHw_}=dD9u=;0Nt_X^}*yQh&pC8P&JM@A^Tqhk*swUeh(WY8N&RQCNL+6&77B0%lO{a0vDkK5{h zNv^p5PEZatv1fwzzVa?q_;`T(^=^D}f&i3YzKo2l+C=3$BuypD+jmj#&@l)T?t0|J zozV3ZD7lG`3cdLKMP515rlHr|E}y1|?rLs+GINEC*7I^O(|dqXsrHR(F-4jr}L zlb|@j3mn(e<+K($$T36d5ZUfVKYAwa!0we=w^0`T_ZEFL&=RN76$|?uh5GA0XD5ur z3aM5K2H!KLA>7E~Sv-J7_HmpzXFCsLn`rMRT4hf7Z$kwpil2OX z2@YQYpV+#<)mC-?AGhB8>kS8fz5xSoc-_c(eV=jS%zE8*F)Op&sKc~V|3P;bKoB(KL*9ZznW8(y4rRaL`Q#I9!nvR#GHY>e(+Ul>SMDvHB?^I{D-&#vRJ54>YcXfsNhXwretn-hy1ztnEerXHTyECWzlz-4pLDc9JWcK{G!g+W@Q_c!94b2U<`xO5j8|Qex&LzyD-bttI0r3diq*i|9_8XZ zGpdBFr=Q5ewr_hoK|jzdC6=C$1l|S{&5!zeS)EW zE~pitQKCW%l36+VGiZQ3!4+o1xf1w4>~<%owJ?yz5*{po0T5LaiMKL&{s-fc;(iN8qu|cQ@X$lz`nn+-j!#%UaeX z|2!ib5Zlc!vu@+-Unl8UW$5TndjPIXbsfkHqeRPmGXaca9_1K%hc$OE?*DaZ&8>UA zFYEquI=X)zCtC^#M`5RBkpul>0i zO6~{5hHOrsZi7cz)tm+jwa)?M@3!8BA~ehTyH$sDYC#RDqhlX><7x2l?=v%BDBnC1 zZ*Bof?`MHq@#qO!PF@ITs*b5eMcVlF`_64VNd%e&>a_Cpzwm9HJYFl$eqD9n$*1DK zoey%>3sN%@bKNqL}ytt#T z$U2lw`F7DShQAEoblvF09e?oXaBnW0I3qApS=s-Gl`=zE9fjHtYgzT{TXjcG!QMw= z6;xo~PXl>c6<&KA0H8cXUjlU&9eAwvS9nlE_Ws9Mk0@|lJ%1M%gwC*s^l>iKGXhWm zMLT!y+Ep`D{SXrE`$_@jYA_H8bS-QX%JSgAiis6p^Le3&e(OH`Anonj8@iob#~y7F zbOFFum9l!WWw@lz!vH)uMAEj!2SvS*&jPyiWnkFC_?RzGHT*w6rDKkf7j#9`#u9Tq z0$_QkI{F28c@q@+J1AxbLC3@(D3;kwH_$8^FyqSs!?s_{tVgoI@H-Z zRh8j$5bn5Bt6d>|-U9&-Aa`)$o^}2wONYvyNY*eDl)_X7Sn7#PJM|MSVDxowlrHBZ45oz&PS zy4UX4hKZ9U|6?a*i{=l|6gsS>$XY=DZM(ODx zWY3CXH*O0z{SlWf4i5?W{Qd(uB%V;n;SWls3H%M(&%6OC!f$@BTeO%ASBaQ6^VvL zF8%osSvs^jGs73|ZWI@Df$o?>%Uyq=PoYh8VT4l9)0U1*@VnKFPu<2`ffIiqJys0gwlgJvi0Y}pb~OPkmY8Wwh0 zhG2zI$G`?-O9s2a@3ep>XMqAru_4mJ49iib~BE|0nGN19m)|m)CiR922se$ch&QuoLhzbeS z4wsJ2{S4T3cK|k0c=PjPj{lC0sm_SC&iQx${pv56MI{8Fde#CaGz8pWjw5!jChOV_ zPfwtY#!eFMi=Nx~NCXnf+t6D|wXY4QoVByF?P=v+fM3zMxt@N4uSMP3fQ&_vlam8n zNw2x5XNR7iXS4sZ1Lq0lq`jH}`_0X-Q<(29JNWiP8=KIunP$ju$-gB&jWduU*}z4{^#copVqRoy9OGYi)|e>l~8O&7v!Vr{06n|-U>iqu82F}iHdzH5rEi6FyE!S>mRA^+d2FFg!X=B8A zaRP$2?B=v)P}GE8yiN$h()UGP8(-|aAg}@X+K=af^#L$>nq=U(p3Ea{B@9c zMZb9bGA%4(7LSI~;J;P_v9hSZYdxi}?N+{dA~r>ovT>U}>em~LJq<+i!ba=CeE!Uw z=TbP2(sl-7BSWm_3i4z`G4Pgczuw~F58K1@$;2JP&*X&f=fk(HMk0c_B-G$KvA^T4 z@nj9}AI~Q4+~MW;+~Cuko6+T@Bf*d---h3Favi>lunQhPmW6qwulu{*;8O6|j}>yf z{-aHhDgzDFigWX>o3`nn{QFL9QYTgYLAAKF+giU779754@Xx2;+~T$Jt=wnqDoz=; z&+#>P`J(?0E1ue`sD#(fHzjB&8U4J<@l8lz^Qa(6m1Kv+Dtte)ap;~v1pA=6=)6}| zLHcTgIX~|*Rp*cY&!$+^AD|3G`x23Y{2Wye1+C>s8RpLP;di$rQgd#Xm)h7&6i*2S>DspXUDF_;JLX~AN(hH-VitNsj zR4~F3)o&a!c}}o?#pU~eQHH*9<%)@E(OI$M;$U|7_v#3k{#@F-tHwq~+Yxmag!T0O zi;oz%_XtRGz!krOo25aF#25Dq9he`(YXZGOb=Uu*?9Jn;T-)~XrQME3BvNLTCMl62 z(;^{}G!cp@Q%WjB<~HqQu68LUipo$SGP9%%4TO{_ga%~HJb#btUOdn9`@Zk{eLp|{ z?cKfZ;kwT2Jdg7@r%i7Yhgth?K!CnU08M1ZLgp||by!fTH5mHQ`|9r{^WoL)G;!~{ z^C01*hP_`>bo8eBcXQfa9DAjU40DeQ`4lFac=JJxg|UAuPU5qt1f%KeGjOg#ZqJiC*V z%!J)o)Vo*~+AZGmc>_$4T#&qm(%J3{`H8fBqXVwdVQv`;8pUML|Nr zEiIMeiHoA@0mOEyzm9PB6mF-86H(FAc|&!Q#`~2wz{wu`d6#Pwf{0g9Tlu`2p{%X_ zd)!L+HhC6F5q|}*sQJ~wipIQcXeGo&%=9foqO+D27UJV7!MLFKu0&-iOt#v=?chAbM zffPj$%7y6EFR4Gau`R)E%FF`EN4V;n!YqpwEO65Q=FL}VH|)?Tbk|R3^<3}w z@WewGl7KtrH7I#-Y<)HEL(A8i&#`sgj1+DWysa!Z#1y}ml$!jOe*GhBle{HUU$=R$ zxHhBlcmqFk8@~SL~vK}S%sR@289Y8tSiKCL21YQGt8T_ zliS{EJO6Ugo!Q&6kL?k1*73EWH$wPIwoYz!1|J>H@Ev-;?H;lRtjofJ>byO@%Q z+J2%b%gX+i>woVYPAC}>dda$3CbG6%%A+?>N@APGnY+N`*l7*Q8OpCAmYg=mC4Bq< zR)BEo-pN%UB3aRfeJk4a@qc73=448qG-YK27n6^TVlX{tX66UH-QTwqFWCMQW}xmH z;K{ll20~rkuJ-p{d%rWSMeN93v$<(7uN?i8?ttMgQ&0&Vph6z7kfv^3x1P=yyM`(h zl3t2~dE&%=^WWbNqpz(gIl;@U?q$9lc6plSvKRlvhN@!K0qRC-ObIW+-M@Q z2Nb*v<;*;}Yqb=tl8&fv=XzX&q`)G$A1nKRY`U^DKqBaY=p^@O@xaRov!xk?&9D+R7g&KzFh>(Ha0i&j{f*p7Xb zBTO1NW`6?a^4qqMeVQjm*V35XCmlI?k25=g;?vrFF3>4iC|OOclJ@|dM3cZ0 zt}Yk3?l7wzQke&P!fx|reLy^N|8VO5B?9u#RaWu|h1h)j{Q9pyf1aRV*Es~$x&HOr zTgtbZnEEOiZWPd+I~8MUiw)u4NImNK`8RR zy}q*!QwT^aH$P+s!ezMf?AdaNd#1i&EW>=_mx4#{lN20vtN(%1kzDc*4|m}~r1^l@ ztI;=DjKy2xpErQ^OO8)7Ch;Ds3W9F`L&x%cqj?mp(OtG<}v@2YSn%cuc8x5w6 z;0;1TP3{|uot#m|`C7M>}?#P1GLtcF5$|tB<68sETQU~Q}uga;#Or{;T7$KVLOEpU-#Yhm%dO=KG%v3C&CAPl>W?^;HE*K6=ne@J7RIi=@~<+qw^TAp|D`#q;26>rWBco5wZA|mG_Z#;lcnWKVV?;U7Pri#1+kdZ80Vs z$Fy>1BZzhj4WPba0F4nPW{3>47JTq|<_EW4q%PXcyeOm6kqz#iB-+U%4#ofQ;dOM} z`0cl@WazorYUW!N^djXE-R>`t{`lJ3Z$XtBAz-AZBeeR6nlCBEnTf)rriyE8KTZl@A`=2J2H)uPe;^zCf+81#O6%l##YET3C*zl zes}Q?z1InNsggEq9Au$rBQajW`>AcHSVb?%n29@iPneAf-^PF7qChKxcJi%>BS_N- zNjSPFx{^P z!vQ|Q`-+a&jg?m4E|=HVu0W?CZT{`&w{-k64f0`i)-W)zN(js$8iosZHE@`>TQmZ0$bp!lvVGY@xWdO(wM)XNaf# zkqX2lWzfR=8rlx3riHzl3(1D0eB+~JU<;@&2@{uN1YyuF?C=iFnF%R+f2jt}y$qZS zcmFv^OZ=uplSmhRD{-snmKk$y<^b&z8{+-tGcMjMe#AAo-RJlXrpimCRGuJp@eekR zYt=*&!+wbrz|h9pTKi@F_+f2r7l;%bxj5)w;22wA$wcy)JraxW=x9Nw zMl@lf#h{_>s`&UcWPPWgC&fd?9NwRE=ZlOJuT17V@ohFg{!hE2!$x-M-FIkNb!gd4 z9ctNbv5}Q9Gbd3ygWtAH<6=;-_1KKE6_(`(3v}S%ZDp-)Dt1Q`TR=9a#EaOH>Dqyp zOf_DzdycQpx>@Z)wtOe}l56!$y?=$0gx@4M^@>{ad6_G3&Yv}4wRoM@E7ZnpsURLN z-BXh2h@!t~B3!eMbP;YDs7bkH`Rd?fX|&Ool$qjt=69lC#=sGuD6|i3GXw%n>B*N( zY{%FK59wv9ziY}PsvXJ|#w%F% z^UqOXqXqgJJ1x488qCJtzh#l95OZtm2@P}sJXm{l>59GomlL)yaE`pi|LB12BmF2y zSt4Nz1zpTE4;*;nyfokmp=ZG+=m;G*G5)XYW}B{D37SPRgO(oC|BF`grden~$DJgx(bhnAn5Xpwux{B`=J)EuEpqU#v$1TA2GenE&GO=cOAAwS z`L*us!U?6(8bGoj1bhyJo!r?Nx3RAe$gB}i#al$!IMjq@^~sT0qWc@W2*DfP*U5eg zJ9pL%($Amg50)w$;U<{FEHGm`&(R$-Kqb0(K=n6r2=IgaIO+%4lu_#B5cXX?V{Sqb z@4n4OZ9Uv)@-m&2i}w5#_wy~Z8T1l^8;LDoKKUC)%T6g}l#RbXXh*92DZPb-Q@haJ?6w{L2CU!%L1OSiQlyUftFts{V!qKUo@7bKhwPOHGNm_ zrIr2JbK%3Nd;A2uY2T-hcFnyndpsB;3vfvCiz^*z43>Gr$A+vw)DFO%Q-@4s8x(cT}89XtNM6uF)!Kyv%`m1xBk zn3-8$Q6ag~I9=JCVZLM23wBSvap6;~RdI=+5o=QzgI7=9Ao)m%N`0?2fD7^ z5;&8{h@joquRDwl*o<>;OEG0BFMD2FhTcp%@5_#cym_;GXk*8N=cWyrQUd+`77pV> zT6Xn6Muk(KYlogW)BDk3u!FC!?qrkSa?=STlZ@U$Om5!j@U3Kpm0#-Oaqb{9#vEbM zmI&v2A?AID_!Wj^>*GDjJ$J5hQD&nnq?jHooc?9mKv=?UE1Sc_wNcxx!-9Z{nt+)TB_9eK}R%| zS`68>tS;dYp(k7@S9a0DIzxRz%FP^!-P>z=W9Vgbv#CwO5L_s0p2mMJZG%n>Cz!g< zS}3N0>6SeSB5=9tSwuY{f)2BB6l{l{F9mhsYuzh*;TOs^$|JXiRM|udR{!(%`>nf?A#s;3-C{Uz#vBriN~djG z7q(kcMPPFmR8~ zYxFiZhnE(s8h602qT-yS%#gN@PGDUkt!D3EzNw<)+_b%$>sZ5T;G}iD^E@cPq859R zL!`X3{u5sqRoRN5V))-(62it^=dzJDKB^!|N7MT3VpLLb}P9cZ+u zuK65l0y7(DZH1k;J2Wo*go%TqoQOQ6W@8GAvVWm*9ogtzF6VeUkSIj6?FsaMJR-sLknskcT63CF!sb9~E5_%j8L zL*2{E^{g06Ub#xO178DCs-nW5Pi-%Zn@LpP9*~0)|Ijw?@;rHmmW4=(oSInJbD0gZ z+hn7oqc=9cq1|*JeaFC{gX!OEOA(|Xh0O*@kf13xTUa{8Mg&2c|ORnSvoT)67% z|Dcrq#8X3EZwNPk{rb4I&?6~( zT%TH`<8#>z$n*sCCk~6=+ZNQ=Nb(>V{|sow_>mPkw2*V^mDhAnYvNR`3g0WYVZ2ak z2H+*qHh;FDpLJhu&ygz)*^xmeWlcd_tg+^0G zCr}yhnI-TXUaN8??9Vyg|CB4U1u@ZmxeF1C7+naQb(;YtNLmUC`UqNDuEHvhTj3Y^W7a~x zK_J`l2}uq_Gg(`PZT8wt{YoCcGMoJs`*gEPpx2n*bo;zLbCaCvSdXM z{d?;#c^-RaepztvAMJ;{LP8;Em0@xE^wvj@i}|zmOA)2>lt*;JV7kM!5Pp^H8BwEM zaR>a9larBnrt$v6hoUcEf{2l*I(=dME2^DduoukZ5H(?x*~#o-XD@zp@gi?y`et+= zSP>E7xpd=;grggdgu zEuWu87S-JP=|exabaf0~T^c4ZYFjC#C`diT)@e3qin+^C4!#CWvVoKGxS z!{r^mB<|OPd3Jxv(?8Bw!PQLmTv(pS)avHn-|ctak0Q=PCEc52DToK@?9E=I)o5=& zJ>K@KUTAu#Y09`+HEO+$kncC9T&*UN8}Fb8)UO_{YG?6&NI=VI|K=PaQTL(RroiCf zXTEFyF#J8z>ZOdSHur+_^73LdSw`5pe99H~M2umS&0VE&W1&n?o0zav$E9Zn?SsEl z50|dy=btzazgQz@s7|(p9HHeB?n-;^j%f4CpA~z4SjB!N&AS7}mtAOzk7#S*Kku^b zxL!`)yll^X%P4vL8|yqzh@mu#E980brcT^C&V)nj*;kJYL>O3R8vym0EJ=Zh3v-Wc{y(rw!F{U(W` zN%uz2KWTfT&t~!u_k6(5O}_OHcNx%<=BTQDeuaN}@(3a(J+QHkwK|_%X*!h90knP{ zu6+2e1zZ7X>qcsSyM?SLI9;PK9oy9#11*EN|e%Z zg%#x@{FUMDAyuvAOdI!uL{amN+><<#HWFLw?Fh#~jKp(#_3KzgJeZa}{0_lU?9r6S z=z4SPBU1R4rOPMus2X#N^oUHce3O6 zu&?xnS)xWA(NhhhS15zkWpC==kgcaFbCO~1_^zHcLHlb1<17fKN_^`%_|!gk zsdJB~@)G`$CzA`zZvVe={OuCUNyU?2S;o2Pu1E4Fp049ri!K?AXC4r7AmV&i`Q#%z zp?qLV+uGXvOr8;kM)dld)k-|pqH~2`Y#2X?87kk-W|n;KG!mW6O1`pkG03moYQfc%sqgbUu&>igs@Cqh|^s+v#3NxL~X;{s4WZN zlHAe@RSW#{783N9D3LB0rBr361f3_q*;)YS?I(3n00fAK#E4V3;)cpIHze{QJV{+} zk`osY`A7wVELAE=e@iZbvE!}I8ExLe|T*o1gq9gbJ3!^fm2hDkywp=AjXG>=SOQ}?(JKVk*TIE zRrJs;N0{1M_=sRC`&4=z>#zL(^syq#Dbs_7p$^~Q8cQnYZOh6|FKP{mykhrRcBk~? z|HdhukX`u1ROSwlR0E1o(%RbB7o&;Ksyl=Itg*VVO6Pu-6;@Rp05UJibxVBR-4L?< zyyZ@y-!>nVCEC(i+cZ}4Lfa3?+12-4%vTl1AC|d(rNKDuwRtkHF*=^2 zqeg9F?Clvdg*i(N`r;Brk93VY4XSpYU}Skt+J4C%c3rk$xTUQ^YG|YP%7cIT`uIc! zCm1yORUaMKK%biGmV!%(#aFmYudLE68*$5-Uz2D(mk2C@>k$fgDYPEgvm2fr8-%L7 ztkd9A-`csGw777}7hs!j2SVNqo_@iu!ykACQKU&Hz6&$;Q&S~yBXuQ|mp)Vpz3yMy zKUI<`U!Mv2Rc=C5gjKZR}U-~cQJ7W%Xy?4ABPaSiBqwfh_a0Rc>7V(kEz zC&Q(Wp)MxHPpW0$BFAXX30L3f%k~cThbJJ}5I-`6pwOyfO(ZmvGe%OTAz4w}Y)i%7 z!F+VZRU$X>>-5oaGuZflc~#aVV7<-1&>gn2A99n>_v21t;V@cXmHh1A74m0l#>1hP zcN}`Zwvs_A&}`v4bvt}V_pQIjIKRFuIPmqu>(eh>0drm#eD5C#5uhm#Q~M9ZD)_<$*Zq zznJMK<(>qTc4$)j%!-ZMPc|+EWX=JQSlFc~B@$Sxg4Y5;V8;a{8Hk<&09~cVyugE8 zaDaISa=|%rffTubNqt7;k_(?7+ zQeN6T4q=m>h@iNWVUC(YlgAe=x#x#or{^jA^5jn)M($nYxJdTTr_h?ygluZ^wuc7j*h z*|D9UmEBWd} z3zIWyz_6qw+w9jnzV&vDrqAMYEw7g&&u3zEc_TX~<_g$rXlfc1TxSWoS?YwAR(gdK z6J014kWt2Hmy`3OEpJTPo<1${dvrWGLvH!^v$dX|G>B$WfwiuYd%VX3g^6YNCZC3w zB#;UR&#o(LSIX?rl;P7G94;RDVv^JNiJSDjc3-kj3P-d{{7#o2%#Qi#(~4PHN7GI9 zm*W8reV*bHjX~qXR?!LX`c=K1^ye>Kvcz-yv!fnp%iYD-*AieFuyA>v;MzUzDAbqd zs=q!b#27mT+21-EQmY3er&@Xk-YX%Up`7KJy!|ztOO__fkLJGBtUWXaA|=N}oOlA2&vGE^Wk+lDKK65?arqW_E<=MI*q<379TnVw>>ygp?74 zY7n=@n~g;+Y5`G1+n{7hnPimrAi>*}z`ZmYs7tm3AQ5SXo4b7IQcUC?g)|80HcDF_ zVB?r`kl3!zws9W4Av?x}%LAEUDE1~EQ~pFl1D2EVgrMNMyEKu#Tq0`Lr|{8tRi;Z( z6a5{OjXO0$sBougYyKGc=*B7>)2BfTI3;)j`bqpUU$}t)I@&u7qID#IPLV8??#wr^k_*;TOU2G5Jhy|a(8v}n#Y(1j-Mbk}k*~qG z;sUtn`NR(AkI!Yhm_-)qCKf1$8M>qm68mrG3(#uyGl^*UuO4%J=@h}sDP$*v-pnAV z=re@cUVE~>s{kT~d%P$nqgNUGBtkZmDEPJ>75E@pnx5q zAAY-+{PrG}=IM-7Xb`EerJSD;xjDWG1jbW!L;~A+2#zfdjtB&-ZBG_Hh!-^^xnhJK zAv5bc8x%M|Ce|k!VQr%h&gZOrLg?bbgSCl6Jwkzbc^_Wqd&5hx<5yKPx(afkPeUW` zsRu_L({-57@l2FD)e6y%AIoBbC{J!~HXvs4JYt>cI{`mQY#iqi*@~M0L!Xr#?=*M{ z0WJq`Y@;#jM4%t)72P{&#Wy!)!%Mc4!^5uNVaYe^SWO{wr(WZjn&sLp$p0JG*8B5g zoJdxz0{-llK@QBeQF8DJ63<6Ww$UAY%n>I0lysFCi5tWm(>}wmuQ@}OFC5F)HM4v{ z#NdbzM|t$hQ)03M@^%GeuJ>m+q}I$BDQz{`OVBp%?N(hrYp)ZSXl*XAi@h8*n`gx( zBs74i%_W6!d|;xlzBztPaPhvL*H<>9JpI2g9~++6nh=9tTWeg=q{3GmA{1gG5eBZu zB-13=U0H}ALvfyHLzBR>@G!J9A)A>vrq(L|tpN}Xd-M8AUS5X0>~fWkHa|2$eeb!m z6uX$3q9eB4!(*-a>2AyO=O;>-w2`?(`>0uR25;>XY^(I+|J8S_p6V~`ViHS|*be)m zi+@b#4!sn!{QrD#8mqXy+m~5Vj5vX03fB166pPT@a51;P(7&h z68;nF>Jia->t;XrKwMnutHQ>Qp_wehkIf+?JR!lrGoCxUs42$O*qFE9 ze~&Yqetp(!{blMU(cKiOduFTmKwK*O(4f*|k1Z$s3k%orERR00p{V77voH(I_5{NS zfrqF#SZw;aET^uAEFM4BC?cWdY2o~A2J(~~Mf(a}E-<#bQ@+n&O|=3yqgx|i29`V(k= zz^gu~C@D#gK0q1s1CK#)(>|l)%b#IhaQhwA4@q_7&qN3=W z%l$!R+MQp)Nxb=uR*IfS$9}}-yVfmR;NWI1>h$ewvemnrCC9h!3YkY+Y#r1v;CN$oG3WwbX%e+eq*7kx<5uvy-QBovH~Mpi>aa2NAn(7PPdp&1h`C% z{TA*5amZ9gG(!|W|JMi{Ej5UstQyAjM+mI#nUUVjMREHX%g}OM%XJyq!@BbLQiRP5!|u6n zML~D^%j*^KB!k&>YBVzBR71nYqlvz3Jx!4fU*FKe>k*N9Uv{XDl>x#RN>LkzKaLO( zZ(PciF(B7C zy{HG1R4bb5vs)aIWXDQL@1Q7{N_eRw1CLb@ySfZFKiXlWcmLH=C$O^|05Ue8FgF>2 z$^-5{q#_ai9FI=yks3-^Mx5r-lcS!W7;et)j}kX;e;zzZqs0T(VU(20Q0J)nz_1$< zI8GYwcIh28o%|%1bgF)yo<>4Kr@>^1;?l^Pl(n9tm@e8g@rkiPoh@krD4AC-(+l8k z*e`tw(5GQ)YKrZYa&>hAuQ+*ia1M|3V!Zjl8_Sf6rY7Q{1#B{QjecxpdVK3pf@OM+ z2YhND;%|$mxHCE$p0B~ztIJ&9a6YvGhO3%Y!$0Asmzcja164tR>wSA*3FZ@YC`Wl~dX#-Y%wid*U`#Cz zzIzpX-*-sSp(0|j3!%DBkP|csf8gEs`*Kb?vwM80SJ(!YyH}MG0$2DaM*dJjRR$Ci z&@0T(N52f}ZD=Qj6}9Sc7jY7S+cIxf7D02*H45essnV0V6EHa*Quyo$Ys*#5p<>Kv z6b*Z~Mu{g$b(R^365M**q_fdOJk4GxFhXIN^nfHNep|_jtqyj>-EukStU4RhHleS8 z9byP|M>jQtvEKzxs9d?mf5Qh>=Wa#*`n0Yz!rPUQgp7iNfV4#z5fsE{uLDgePs$w{^k`{=cS+| z_j=XZNep$$BNDTyuq?u@Wu&ilXrpbKJ0nYO`^qNQpAm-Q6xNbam$(zu>NfPc0`9_x zp)R=Y`bcPkM22mimTvSI9(U+#k&Qq#;mQ{>>~)FOzKDf7U_-jm1Il;hHO|EB>6 zPlb=lHR0r=y0)*ZM*}{ffJTxw#0+?)io-XHJ&Mc&rUJ(%*z7&&!V!K6;l5|&_&%iK zT~Sj&UpI+E_6Y{8yD5>l$@mM8=oKb@m$fXlwHknPM#R262_ec0e_HI#sz&fF%lE*$ z#@P1d)Jb;4Xspyf@n}N@;$z@1bV-3vD)MQg1c+b!#RPuw2QiY(g}4r6@((M;ZA!E0Nbk zx8M#KC;{+ES?nI%7a>Om{oBL0r_)$*G-?q8#+C56I1ck;LkM}=ub;4(_oWsvqg(1YblLW2PyzpaLy?Y{?{ih74&@p zC%2NKijpekva#I6e?~O`1P*u23Ph=z3&&?9tZ4-Rd^2qYpN97t?o1PjU?CO3$w?pL zZ4n=nBrO`!|A6+AJ|q!_MqGPdTVOPqf-@>^ltOljSunHg0iEpuN3w&}O`GQbgm=CU0EF=7Y`AEYY16#+$FLBZgQ7caK8*K*dUv)3dp zB{>5|uYOP3YU=4NvTG8|d}5(O^R_)WlyIuviI9ANIitcfK24X^3kwsLI@Lh zA9{goD}a4MAmcCU>3nuI(uk?l65JU>L&8~j9xGOeM&sM<&0&U$E?R0hdpf(5v-4V| zrPNPSp;WCG;n>_pI3&2ZF_*CnaKlRiexkHLws|GlX6=7%Gl!sW5fpIvMIu_lHh7Pd ztJSp>-X4GcFF)C-3pEGq8Zsw6yrr@6p-*(g_@F~I?R&^96{|(;?9|B!Ej@1TQXI@% zleWnTynTMYH<&oBAj?HWMec+`tW0H3OMlz{5(fUkW2?)Ar_+GjJHlmD*wSJ?fu`LK z&>x9~H#YukeNlaHIqzRGV(MDiZ@zCgKhvuYhKQea$)Y0ARLBwoiKK=8*@XlYwxZ!; zU!z-?`SEXd%L0^l%lZ$gdLKWLB2ZE740yYJrQ6Uz;T5j6hy&VdJsG01EN~#I5Rx)ZeVD5FFJw!EhaK zaBh8gvbtq-cbLq?1gIV@JQKPeKvLYPyAzb~f9U#*d86*g*#n98r>Y2)MAQ=4DGLV& zN$rOZUL`Ch5@2L-g0bPIb^&yQV^T&2JS0i~!kqq%w2o(oU-^`4-I&~9DlXk|>mezGZ z?_@b%#P_H?WBh_o2WAI}6iNCNuX0a`P~9*L>sZvhiL`|BAbf#8ifqF5b-2GY@+zV# zU|DMIycR81f}(^PyaRj@OM)Y%ry;F+vobcvm-W6pWH@M`JG+T`sPtmodOL?`%t7u2 zqb|Rmp2PO3TzMDPUR-28@S}7DV>qp`DB;?51<>Jj2s)LskvPfp6Q)6%pP(qj&o_STOOCuP zNnp52#RX}OqUu^FHxzev9w+%V4cRG@N=gDu^AT zQL&#tEnJU@{OD9j zx_DbsIVM<4nWHPQ!DUbyuFR!D%-4H66m`^LiYf%`3tFql)(-4m^$L1Th1yQ*l{l!2 z5q+XdfeXyx_V9?Lj4|0wI!uu+G6)J;>scdr5$eQy80cS`q@wI{g+svsqVE$i-S}H9 zrpWdby@!cr!joxpxqy+VBjSzk7vKWkl4>Hc=8$x`$~XNJUnN;&T<8P>%6op#Y|ZSb#f; zzxjTav^bV?A30-JpQhjhSa>^dGX5xjPai*=XWB(TWY3osnIs^HG%3XTy1rztC9tz0 zJ4Bu_$80AIqzqzAAIc&mGd$e*>vI(j5>%FNi+k{uj-$H}@`RoN!4@{Zx*VODNM3^% zX!1|Ci}BpG}Ps0Ui~b3C}BJCw7aZEJzrRj56NYnH2C%}X9goDxd^Ph zr-ZbCUVS{=Y3AXn7MlD`DQg|6hrfbKo-%+3^Y`y5Zd%gO_U%_#tXZ&{(r;%hyx**a zr$LMB;eEBCh7|NAn($#CD1ivSiIY4BC)wH;_9JB0s?38T9|BAiM~M6V@gc;wff2)T zsTwYgeGGS1D5ps|!{*~7g!IYId*6f|QpfRTM;2QYl7t_1Q8CC~Vv9&>Uer;jgSE4V z_zyPrIq$GARFs&?Skgj}+uIjR{gYJ_epcd!V-j0)>+t*Fmd z!9Z6o`u3Pq-q!I9nsD&TY)U@JPo;crG zKWx2du|P0@1{#f9Ra#s<3oTrBPl*pnY6L-=pC2$;7BG}xgjLlFLAKG@cw}&{n@~Vr z-XDDf9}$X(tpx)3Rum*ByL}~;4J6HM$N3*;NoI{=p1tWnPc2u7%2WojYXA%|L-ut| z4FR~nCKf~mz1Z)vrNDEi1@a>|RzE8oMFNAu*2=9!3d-*hwfSU7^^m~@B51w0 z0n}P=g)~38F(bvXDoDv(iBCp=2|{NBKwIt$c{E%&qdfMS7WmLN`Lf-A0oPS(1^K`9 zEJRPF*8}z{2hZMSGj1b@s~jn5uSBX`)Rp<1*HYC)gpld5RQ7a^Ku?~Vyo5;x2R6Aq z*&CWW^iZL>a#7LID_5?_TDVW-l1?Q|XLNZ0DGAIDF^JUw0NdD2|#Nsbs4q!f;04bU| zn|XI&Z}|{DH0H3prB!0_#KhAKH)k0Pk~=+PGoF1YD;jCYmdsA#Xl-r99nBhiS%s2J zRVNXeI5}!I{xvwJSmfZ%d+ZozCWrt&c_>o1;t^sEor8rHr<6Z7p<{;&hc!x{trx?@ zsZgpvhUf)tY!^pg^U%vzL|fx83Ya2agG1DJz}QxZKjcWZr#@xdwQ9hB_3W)DB0hxU#jC@>HH+0fjom2FQN!o z;>S_hj{l!R*@-Inqgo;&YTiS$R={=@E<&8Rawp}dY?#Yd-8MEj{J>CrwbH!&aY#j7 z!0dhp^$M3S@?{gD5;|#5(T{jBH4+{3tEYp*Os9tR*L?#T`AW*8yAV*O-r|5B)JlwawsJJQkXXG>kT1*#>TD0!i$?&~;^-6Nf77isP(zxhi z$?+!-g{(m0M2CPXr72rO*GE5II}iPw?EdYBU`XML+}v@@qdEp$xE|K|4Okue&~gH5=Kyxd=p!mSAnbQZ90Y%%3vhe^ z5!L!LT?ex{ldF_7F7%gCE@kX(TJsLVX;b5?3E@ik#HbZm{8YhN=-`Q;hm)Vjrm|~L z*3IZLt-07`to<>H*pH&6YT8r6XIg7uqo1}yx}s)8gpg;#K~M?uFsURR0FkI=P@JUk zWuF^k*e&_H$mWv^;Wz)STyQcGq;zP^#K^(u5)n=c%JS~#u z>j|q}sUI)upa+>S;Vh9d$8L zC;Qr^3NUS(8XB+%QKj?QKZDkI!zJqb4Gy$(XSuSL60vVN7p%@Z+f#{Z|6$)SWIcMX zcu|v_$97lQQ$~G}z=Poc)-O8R+R%4+4`QE@fv+xy6kgX;Ms)#6^?m!je-zNz1VJX1 zz&o;<7IvMN^~HZ+HdQ+o)>=2y#ERs8B9N}`HEniR@j@knvp0JTqGjy~gcgN+p~OS8 z^D8rv*t2BOYpd~bi?3HTTT&t?pD+zva&iKS23!M!@0~;9)|>*LK}0$^5$XJtob2M^ zt_Uo?onZv_$}Wc_8n_vZ3lGA;)ih1lLcfq~)8@&I%p4b_2CPGlI)HYHb5Bw5CgT>b zsT-zO1dP+3jC@$Y+%sz#fN-(3Yb{(|wOgb1G0NtS#22-$vDsh6iOT)E}x-lO&7{N=#G38u=rC@_1dc@@P zvQMFUEOY}zwVfhn@r%zI&`HP;D0iW>;-R&4!-tPAv0YpSd}Zwk`O9^qym=5buV7ZY zP|UTG%Ks~0GMDWn@O=z+o!)QMsO-`?>)sh&fp$b4*L_J!&vntglOU!f-Q+n;p2)MK zxd>;jf=6Z0iWbWH>y{w|Vgz{a{n=mxH>wlWbaapSgXeEW`7UMEmT5oC*rF_GkBYgG zf%7?|KkndvTRRl^1f5{~^#ho4kOYG_gB08p|J(hHc}wZ7dxGf%k})}2IC66;$)!?Kt&-ceaaKP&60k4sp8>=2Yaob~$3R|rA37)z)-u#}^;Sf#pmVnliUj;9 zU+&>qd5zOe!4(S5Ekj>SP?$jybuP_km$^5&AUu+=&mgSFhc@FFW?vJ$%yaO9vdhmh z>-VJ%|G^b+Cv+7#?iZjF_7pYdM*1}$n^iS;dxi7=Q1jiJO^~pL*vI9sUOlEl)lv87 zvi-uZv{u1deIq%GBxXVWgaD9xkrB1`4u0c6VH0Bx;U_2!BASQg+AM8%2tHIVvN`q& zP}gL03fqxtW9l0HbzcI~o0Mnmwz9elhnXYzN>552oL13mgqeFc$1dk&^-=%f#_ZYK z-sBXVYp5WiW|$3+U50|()m1E{qAi$0nN)$PRII^1NKhsVn zCp=y|1W)U>VPg;oxM_9N4e=siQfq1+z52_;pV1fMtZf=C%7xUXK*gM z>KXjTX*FxT2bi7`$tFUYDWMIU@85Sh-<0Pv*4y0H*=9J5+Kr3SI8Q6@lR5|tICh!n zE4KJ>Z>lD}r?2Gu_UnQtUmc;65P&f+lRei;{yu(i8gZMEJdcXoB!)qw6LJs8pIF(7 zrs?y>_e@#rq~U`dLCz}O)Rb6Q#fGMyiTIbkY|YWA>9z38L$dP*AS2rrC^oa)xoon8 zyCtS-5KfplvRRpqRME7BegnHYIS#_(N+;*q zawx%;4PG|f3{qYFJG-Z-UiS3sjbWQL^Y+HpPeK!7=j?<81S0z0=-mr``SJr|Mv;LZ zyr%j|6GM`UgxnlV&0K?o&=(nwC&f>HaoL2-j7p1Be#muyMR0DNzC<;ua37;oF%Fr{ zd+#cH)G>{lMf&N&ld`AP^9*$m+^gY;$TYbNt{3GIk~#LKGe!_5Y-GeuQnJqy2^*C% zFdTfUE=ifl%pq}|#u1ksc}dR1z#w@Bcs`LXOTa?{L$2vxP?pbZ@02hKfdFP;7*0l>+Q?uOc1kqqvXl$#2ihvAVSzfw}t z66V4UCvl$oG*Uo1XVb$YO#mYCYw0zsXJmtDk+1iZW<R&-b^mn^b0*S3`?Ly@dTg;3&a2;DP2@N6A++hFBP0?jbbTM z^MW4=t)|z&;iJwcDaRr=qt)GjocD8y#&A>a+=wu4L}>e~9LIjGzu_+_<0Sd$(X+yl z5kr$acX^cbS6ZmXV|mOn_r>w1pFR>;pWYPI-foO297*h?FZO@9&m_ljqlB(*;nUl< z!Pj1c@P+&Knr*L5MAkiLCFt%-JJ7R_A4wFxf4_QhSNw7%rO#7k;^IJ((fudiEmdxBHJ&xt^~5Fx&4A!!+`W6E0u8qlrOgROxsb_6$h7N&AeBO zHzm#krKVipBn0(E62W5*A?P)m6r2C%Ciu=+)@D_+Txc>gFE5g20SGV0(8daemr{2B zBaUp+v46dn@r+%eC(O{i^aL)!xpco!%jZ?fF8j&G@<%fPHF~t`jr67-^X05WpFM5uICqkun(u049DH5h5YD~e64DdY2y%u~Bgn;NuMu}Z%k@e8CVOIuL2fa$vVhk`mKKZS(wf$OKgj3tL;ukUz~K!q@K8$syomIYsyF$UL$| zTB=bOO5kgzu`s;=`AC#6Xq5p8;d#+Ph11;idBdk`&V zkTX&I?VGwuwi8eZF;p$^b(XNR6DeH3Zv!_vzrfiM2vBf-WO4lXYf=T}V;;9`Rl0p~ z+k2fa_wEE#R3N#8_T+l6@VnYXZ&z3i!n=RaeBI5lW`7c<96=F624Y^Qy}S0Bu*uT)O{1?+ST^7#uKcub&#XIy4vj z$+Vf@&zkTGg~-}B`1iH9yY!dJlCp5*g1FzBTo5ZOqSn#e@u^2c>>LuS_UzQtGp%gR z&qDr1W7eRhj$Q~A@jXs@5gfY%>`mM*>v=P~Vf`o2g55F^HCybdc$jnH*RRYL5?X7p zBk(85j)bnBRS|QrcQVL@_(U!JUii~8NSUIpSvGS`43b@FyEsLU=Th5Pbs7GZFMR_5 zG@tH_#Mpp_qgVQ}9cHI~Gl=$>B)CE1W_GiWin)#3ltO*Ipj^DYDsy~u-~$nHH(Ldt zF^~6Bff>L2)*0{J`v8%FS~kw-;T07<8ZvHDX{RS2P@=eUKF4pC8Bq*E2IX#t$+6=k z^J&Sy4Y;8cJ}ev=IP5446Tjh9SYAG}3`$HNs|H8fuDd(96o@+e!a1bs6X$|pCEo$$ zTO$9A51R-RB5>r05~ps?F$j16C{eBS{opK; zjL6{tO2LdZ966HwFh$BWJNuLYJ~#A6V6dm`*4u!CdCshwACLu z?e6{?>5=chn%$lHwl+G2#M)QRfE2CE(7tjWW9NaL3GzkS#PzH19L1DA?;uz%ya5pt zm!>>9`7H!%&l;=k0ObS2D%`;6cg7|bK*h6Ov_$Rk5&=bCQZUxu3?kJXHt8L1VtAyE zL?5oLrI+lO@sO&nlSRj0r54meDoXq)>;SKd<9G55?C79qWn5zeo|$empK~9PJ<8dt zx=s^Gm=V(0+0aBKfQ)x4m#CdRG|VPrrd;8|lOV;3?CqTmQN+M20|o7uq=dqwJgO~2 z6w6$;!!tC%MO%uuMDBzxG>i2%HQz2P^ea%rj4CQ~2F3@L#ZbHmvl%Vy+!dbzq!uP8 zue*tq{2K^Z5r~se4a0)uNfUmhu}pNmiW~VI#^A^F7{cpu2Na?v*W4uQ{CZ2v)2Nhw zh$Fu%WRL~#jbxa@-rl|N+{@L@WWaf(&dp@EZIj{(d-SLdEAKs2 zdE;H-x#E!G6pZZayLi!Ms21r^RZpIq>gqN56I^YaE+Nw}%AJ35m?_ zHq@uLwmda1OElyXDHuwI({QHud}S;B$iaK;g7UxZ7A@i@Red%jGjnAjGl;beZ+`Z> zwh7~cRO6j+|MX|3_Tzsb?Tvi${R{Y4ME=uTet&=G@U!f=j-F}o*~|+|l1MV4(sqtq z_6xjlfW$#jUU%+({k^??-OYDYp0N=ktAOC|-|btiWPdQPKUbQ~rzs(sryY!AJkQ#b}x9c4^T&Un|}(r}zf zy-r#hlzv<)1%&86Y#jTx&0x`xnXo(79Rx$V{J@WQOiZqphK8@BhGz6R-Y z=&s|h*lFzxWVFR#jZ*Md>*JPT2nPXg{qMVDdmEDO*pj9iOgSbciWCh!?Ws)Hqy}C;k<37R*{|Q|=b$frVxNf%H#widm;ehvG z3fDE+HD9JZIG96jlU{OLM1)t%#V%-Ya=`TRnhP|GLD3~;CD)c%>u-w$WQ8C%{^{J@ z)*L=}EOn*W7L@}TSsY}{z>W(x&9bdnW&*ne1Mx{Ey)_?v+d1-i5Vgy8&leRH0aD@w zXm{08`J3?Iz71ibr08;d7-t7kZ$q#uo|Zktqc|b}u?>z1f;dZ69*l^@2QNX~M>bSV zTFYo1d+C?K;rhSC$bwMd=&{@1Z*JmF?3>oifLc3X%VztLazT!#eX#7Y?6;!A?BmK5 zd*@ELUr3%2n@Z0}T@xNvX4YGC6-BwNiE18yH0)9tW84QqdWSNswpN@h>ghiZ<`5NJ zwF)5-2a%pUdy}u?SkBn=0{rz;2p@5GvBh@%H=c)F>?=IV_UTV|K)VgnR55+j8vF18 zl~K?riTZ`>6r|b6Cc_+%)vP8ATG-cr7t?Qmv8onqm~$l0UJ1kWbJ(Bq3)5o1_EFSN z|G}=qpKeAk{RpVnAx3lPGov2fyLZi3>Z-iG>L>fz20OP}gMEeT-hElaUl4S0rZK7l zpfFZq45(3CSU4Z4wzjgkZXpJ3k*}7yyU;y#iE2HrbH#KzGy|SI0B)W#QjCF?Dm2C} zWI=eUtvv~CcK{VkK91QzypY;4O~{7l68ooo_YR%VCqW7Zk&t!23T2mJp5umF>k!bwZ!_=)fm;%sWhxDWeL!cRIOssEX>C8|6F8T_yTr*cI5xc%EwmppUed8+xH|@VGsY&-htgL&>rzHh4zY ztRcZ3GpJucb_n=5`7;O%-UV+Tm2NP)2RXp6ci3-#2ymg(O`=$^0kSD7t8Y4J_!AE+ z(n@Qs9IIcP-f!8Rhp`$snihWHx~01k+cc0n@K~C@jd?1t-F?V#SeRq)tIJ^t;0=mXQdq&V8{FtEz7PzSdt33x~!BwTuo$f@IB+ZQG_Q zdwT5jq0x!d<0Ors@BF-Ew={|3AJ>(mi9@zBs01#6$KEbN32!JH8X_sz_28=F)DU|jB+I+gxRL^njLN=sa zh!+$h;;O4H?pTPKc@FZ!$3edf@0pyyp@5u$Kko*&N;FAa7CC9scq91b+xciUWEA7A~o;4a55C$8{n2uvu z6LD;{qk@Kt>b87hrg7LS90u_7Uzp$dt_eO2lr>QC!y&@N;U`{)K++Y2k+@f$SD0HH=r;mI&{UZ|k#qQu+sYxkJmn!hjwPcZ z+D%;DV)_6GBu#{iLyPF2;ZH??8n32iVY;m{=5Dnl}y$QM?G#@*X>Ixd)2NFR< z!$A-5+-m<;4!zsg58bx#N&`j^Ysdqdhv%y^`>2>=E4-7Z=i%}Bg|=jgeuSxHTyxtz zMi%EdxLf_C9=pg%Tg_6nVFh!1d)BMr4^fJ70rLT`*RS^-*;8NYt3Xfju)NYZ<9<{t%v~n$zQ#inBuy6zD5dfa45#PL-y#!>V(LKPu$pPUhD1RmZ?>w4m;)J*RLgklAZ`1ToP9_1l z7j9G-qRs*~e}jXxL!}djF!o?b+mIpIz`DhF2WZNNmiRf;qGNb)#G`fIah8Dy0YKD(G?Ho6s1Iaxk1TW*f zV&S(S88Sf@ejteF8VD5JyVq%C8XxMtxD8}w5GYb}IpOtA@Se{v!*4-V#?p!600J|i zot>94UypE;Alc#)9PFf)2#@`J5pZI3K>uS*W)d06xj4>7&S9~{a>swy9*D)Wn<%fS zWh6N?uwU)CATHZ1FrUOaRl=C53vV12Tp-_V1JAa5Qa8ot!Gn0>c)K|fVL>}{R(M9W z(Yj7<*Y_Z#dM#0q9d~R2S%5T;<+Nip{Xw@)9;`DtdAPrt$on4wE)xZ~M_PQMa;v?F zR^*URYV6eX2e)hCuT zLQcfc@w;&*q!Id#9W3}8pDZ-63)E^+-XF$N%KfHOhj2BYx(jpt*)N>OuC z!W+>Jw+ONOukX9i#n)$CM$ZTGbz{inGXPbNf}HVc4+r56IiCNSbB_zN=6AwtG(6ZT z{H>$xkn{?`=Nw`C>bHtvAh9Md_EZM;KGj!dby!kvmaIslhay*1Yo&x^Sfev#H~@|0UAY?MyE@k2-iUChgE(PZQ&Tf|vRPmY#smO* zp#Bt$wF)7CBx`C?sCPLBzBDH{WMBQYo(Ek?*p_imD3^8vwDA(sBrhs@2Ba26m%)A@?T6b>SMKmZ7E{=(rA$W6vwDU1i62nK&L%@TJm zZ20Ho)RJY^CF%S*R^+UN$E)Yqll*!u6JzOvL^z^$+ybso7djODTvb8K+Az!@@HP|{ zHRli50cGlJ`+Oh#ZVzCAzp+6wU&o+mU0tb$fIZ=O_i&GfKLAk`l5=KnVd;yMHhdot zq3Cse9f9wMAM^1zhSGBJmE!9;cCL5fq8|ZZh5sb$1%|c_G-1b~UyIsrw=mgO_%Iiy zlpMyL+N5HULo1|YOkNDSQHHsEC^@j_xt$6)82Ku)T%fmfpregRmGxB2gB zh?@D%w|R_zj`WxX$`VMQpMbUm!dl&e9ozxCT3T9cIXh$z8fb!O^B22sG1qKGC zG$gW-FcN^+frBv4n23dSXl$}Cf(TL$H7`zg!~c_lt#?36>!?YYIT2~4TUuhJT&Mm% zgk3C_2kav7*FiA{t_=EvSIY56t82_dK}VeoNJDcHBz~Hx*o-rOD$Slf~)mLI<(tCuv}cj zAI2Tw>~h0(t^YYJuD8XU3twWn%)388#eE%n>7XHX z=q`5Q{GJoJlvbIQNatmF72{^AOMrW0Bgew5R^3}D^y4_D)m5;>NxAjad9d1>YvEEr zg-3m-uW8_GkUzwfEL7o%BiWro(=#3x#)yaoWzthA0Pr8!7QK*e(Trv`>3|3cuCf5i z8R+T2oCPJ;@*&I(yH#Mu1(NN=+3(cv&k$l}3zn1kBLdLZk!zwKLCOaJ>OQb_pbd-{ zZ7EDLK@IVv2EJMV3I+(#h$P&lk@_f9FZxL+LXf$WO1FZZ14!#5j@17}L-A=9guUvw z=4+no4X)n%>J6e3ckrQ5*72j?uX&~}>senGT@!kQP zC&_LfA9Tce$#Fq}4Iz=sIkv678>=iHeQxWe4osOyMm{q-l<5@;a`V*$nm0iPKT4pQ z_b)IQI$1#AAkZC`39w<466`JUNVh6&h!_a%2V+XRUdn|>x=Z!5lr%FIBHs_5a=|kFb>FbA}c@z;L zd;Y+ts`u|3fRkyvHQ09fOWk#0){guq^bB%YuCJR_4tJ-7O@X791AL4Yao&ii3;amotNJ3#4ny&DeHYYl)M` zWi38clttN6$=u%t@chH43-yPfB~rDs?2PJA8P(!V-fa5%9tA$$1a2h(+a}+QaH?S( zccJ4OgZmbdi}1X8H$6x{u zpTfvy*=!NwiqK1ghVR-IW|KdN`EVNo>GzZielW*nv@Da-S!mc-PFtdDcVv$_ znJ4mc%hg%?W2D0I*QlXZsl^yyo-zN%^cLyOm)QcFkoD(^l*}9cOy9)2WwKW=U}5SC zrHh;7xqqrJJF7E`(4KWH&yjS$9nY95cA`)9rcD*Qcjqm&eu!LmfZ#Q0tlv|3vCY@r zu6L)Jg510Q+@U`4xB~|aAwfEbz^z|!?`S@(h+6nHoI}B1ebJEC&F%r-g zik}OhoMnB=p`@472t+0KeUNPCr^hOY^+zNsm-c6q3SDHguFy}lEvmRpY?N4^0wj7M z)zAmh$Z%xqZJ0vKNrb{ zw=MSOlbbto$KT&?2Z0|>wT+FLq`p#3fLJC0>t?ordw|6pD~ocU91HcOhh%z8_PP^x z0RtgxtPF@`z&TcfCuZBu0=3S|^!6TSI9*^;Qlbf^izw&_gD|5@i<47*J9R>Q+^TH( z_;3~${qW3S>zW-kA->nDY+>YWKVq#V?JlF6A{E})STjG~{>;>jx=cPtgl#nT4-MyQ z!C?FP5yzUUV1;k<^u;Nr0T2~tNXxLZK=GI(4K|yMnV`aR&p{g`J2^MW)VjlJx(78lf1O+A|iXe$f z{RFB+(dlL6@84ycdzsCNhrB@601#$Octzje4_nklg|f63Eu0QZo3q@oryn#j*;@{V zLSmi0L~6IL{5_FZFP0+vEb6X}QE-m9_&7^tKcIMlwauUHOa2_0X8utz&)Xdci`G@P zYTJc~orfB;|8}1U1cJ1L8U06xk$%?n-S}@71V@C1g+sSj*9_1$$n<7ZO#zJm=X><7 z;~xixcjv<`JG#3A+|rEFm6DnYD7m+3bhj073x77TuaHlmx(2?aRSBJy?4@yqp`m_; zkt-=#M+TU1LZrd?Asy4P=NEP&WvLL&Y+j%$;%6q zWVN}MU)r5vE$aDbOP(6A{>32O;1Cj+lDknUI7``2 zm^o|VJkx)_+`WCMp3(+8B1yEgINk7~t!tma>0y6B6X2#i0CcAKH&Apg`TUKyA@^}_x1J3D1g z?fi`LC1T+ijBjDfbq7#&Lch@-dA87rPR-hMMchqOZO@Qa3u>< zliie;;~v@L75LF+9UNmGaG#W9!M4e4UfyyLAi6({gZz>*<4wNgOR`?isdgLh`ZQmG zH7#Ktq_#{i7f~?uXmqq0Gb~x^R|~C=TLdjfoyC{;VSq283h;y(C)nxoQe!u1*Nb)77O2<@hjYZ>=$YoU_A?BYw<>tL*Z!K$X&&?+oQMx)h zxB(GeREpr;FzYYv&xKa2h1-G`-1*xZ?og@13aPA&L)$)~bvs3bPQQd%Tx`)+SP++7 zNv2s6A;Ky-{kcl++Q8R?Cq@iJ18shSufvq~17bopt?XQScz6yNt*TP=(uC>5>c)m- zoyH6glzR(7{hU@thB}SEF?*Z9a2m}x{k6FiWyhOJ>&kTt=|oZW0z)C8aPnx7d-^6? zB#3_CYp;DhsVZ{s5clhCv(y557~SmPR*R(1p2M?LBcEDd8DLSG4EmCP&YovIrk{bd zA=O7!QP`Q3PW90@@Fdk2n%d!OeQRc@1!Yg@Qysj7Q9bkf%Z={k#TLPXX9=_#O1&fN z?lI398Lgyqz3b`&1FNbOglEQE&L1!kurj7Gm7W>UMs&1Q)l3F_^R@Toc-}KNe>GZ0 z^>LS!#@}(0*t+3pLtJoGRUD|j+V_FH;~BM|T_?8&w=oss8)aZShtHxPG=AuA-Owha zJv=+h&3sThETaSG>W^wfnO7uXL&aBL981=iS#}ZBy2BP)7;Oi(rYXra49eH^_vk? z@ozVg-PAz_GY4w#q|1~p@Z;b|7h`$=mpMa?tgr$A8BS;$d1NHy!mYvRV9=)n>~ouM z#FP3Vv53pm8?OoryAR7=WY+Nu2}zWfz`Hkb z23!lsx-wT!OG&ogA;ElJg5|E5Utl!ri=!18OK!6*B7>H)@72^XfOnyNMf|gu@Coza#7Twjj#ajn7cWwl9m#n7SjMc1 zAK_`di}5cTzKWddeqj-Oi>4W$Cx0z1b>EmpzogXw-Z|P`L6DD6AjjEBfc4ux_kpk1 z4P%4kn_DS5UADQYVP=1yblkY5>0{D66~8b2`T?J&mHkL9##001xyol5l9DCV_+ctu z_3Y8Zvc?jTOM3?NFKSf+xb4%%VF@WIif2Q4{m%(I{k>a)9d9{=1Rr<&t?a0R0AJ9$ zP+s0>ledkJ4ahyG%&v>@I;Ex_%)#hkfJ=xNH#0H|(Y-Zqu|#6g+9{;rh8xl)<({*I zft*H`1W0c-_7u6e48#O{jE=JTv{8G^b-$RiVn+2Ci^nAI`r@C!XWB1vyWE!^@XA2( zNOpbW*}XDO2P1{+RP0niLc)FOc|rux0S3R7`g*_pYq_S*wv}n(+?$fpwbPYwGOPH8 z-tqjY9#gO0K%?ZT%2-!&uU_L`qqAd;(GwXF39fO6l@u;0c>CQh`cP(}JUjf(FwV9h zi>0fb5yrbXnvEA;&(#h({-B&<7EFej`|NPb%O>}Q`4eXw1ew)`B8_Sbsc)YMc`s@= zvY0XL)!khds!nwzXlRdo>THsuPUbg1Tzc_-3by|F)ajrgE4MYgfS3(UDX$PKN38^r z9YIx<^=C6PGn-}q2=mNbU@kf>cI74-WJ`$QN$moVDmwH~^W$7$LtmmA85jVK)dD3m%N*{dZdn{f4o*QmX-gj0dllF z`&$(_US8O{`~GA%j{B;Vq@-41Po!ynIl+3OwzH$NC*CYS+tJ!V+u)GpryYo5K>&~4!mCebWt~%O7mOjdp zRs>sH+fAFUw=-FEW7Fa&-wM16j5y9De9lr*6%O4kUIfDnYh~)sh&RyD{UYg?*pDY1 z1-5Wq9RY}x%)-v1C>D#=5tp-O7KoUq8XDGdZqYJ7BQi%FPOO=%K@=;y7L$DHmhLVtL%DBaV&>Kv1qV~2<4JYnva+L`uWfP*!dwE~ zEv)vzgZMl9kuK$QgTTFvD7o2>9bQ+aFVx$ zC<{MISl+EPE^q6Wb!E|JX!b*~`*5=HX>-4$D$FZWYcp(I-~ClYOXu3*l=#3XshsAy zeRq#vAINh|P7(_%1#5YE(PkiE+tWO68|Y8(SiSw7Hticz>DKUO7R{)NGSz4hK49r&wLJ3+-; zes=vggN6?oM6VzB1fG@px>j7sG#sd@46xt@{KQ@0c+mJ8bB(2@j=nxf0a`amY%EAT zxuKQt;FTVvVYFy^329I#h8LDQB%M1?9~WeNf7z7}zI{9`1S_Er;HPg@sGpU3i<`64s&l4-Q(;#xoB#7)tmgI0!eTB#c!6j+%n{BcC`NihMlW$#K5Bs@ zJu_2kQHk7^jstl5o>YfI(*|aPlDzyjT$bsnG(ld<4V%QisB zE`$Aleip%lF64Z@^RlA*%+F7Vbcyo?1L^N6bot~ODx&tJ_|;eix0-&Ig!tHXtzN78 zz`VRXgbiZd=X?Pdvgk+C{*U!&)|*IYwSi1mKkV8NqCoPIeX&e&ON2R$#{f~m**hL~ zz;>mjD>B$HHv4n_3`fxVq|nC8DL#K(AND=*r6Jct)d*H`1g~rP zy9Z6?_NFZ}&JAP74Nq+@2n1E*yq{Yxt7H^y+_*8E*4W+C13S2P&ZZDs?QLv6CrtPn zxe5pfL~u5LODhIHqo;T4;w&T((pTuGRri?uUike-Wa}L z|2V<6**x=#f`+zoV9^naDyuJCOn&aW6Luw86Q*x=F%njO2bnbhi6{MH^(Um<0$e)8+}|9PTX z4$;+LVt;Q9Tchz`9~{`d&i}tYIH&%<7xKSP>c9RE(DS9< literal 0 HcmV?d00001 diff --git a/python/demo/cut_prism/cut_prism_n0.py b/python/demo/cut_prism/cut_prism_n0.py index 63930e2..88c04b8 100644 --- a/python/demo/cut_prism/cut_prism_n0.py +++ b/python/demo/cut_prism/cut_prism_n0.py @@ -114,7 +114,8 @@ def main() -> None: cmap=["dodgerblue", "crimson"], ) - pl.camera_position = "iso" + # Frontal perspective: camera in front of the prism, slightly above and to the right + pl.camera_position = [(1.5, 1.5, 1.5), (0.5, 0.5, 0.5), (0, 0, 1)] screenshot = args.screenshot if args.screenshot else None pl.show(screenshot=screenshot) diff --git a/python/demo/plot_quadrilateral_cases.py b/python/demo/cut_quadrilateral/plot_quadrilateral_cases.py similarity index 100% rename from python/demo/plot_quadrilateral_cases.py rename to python/demo/cut_quadrilateral/plot_quadrilateral_cases.py diff --git a/python/demo/cut_vtk_mesh/cut_hybrid_flower_2D.py b/python/demo/cut_vtk_mesh/cut_hybrid_flower_2D.py new file mode 100644 index 0000000..2079263 --- /dev/null +++ b/python/demo/cut_vtk_mesh/cut_hybrid_flower_2D.py @@ -0,0 +1,138 @@ +import numpy as np +import pyvista as pv +import cutcells + + +import numpy as np + + +def level_set(xs, R0=1.0, a=0.25, k=6, center=(0.0, 0.0), sdf_like=True, eps=1e-12): + """ + Flower-shaped level set. + Negative inside, positive outside. + + Parameters + ---------- + x, y : array_like + Coordinates (scalars or numpy arrays). + R0 : float + Mean radius. + a : float + Petal amplitude (keep a < R0 to avoid self-intersections). + k : int + Number of petals. + center : (float, float) + Center of the flower. + sdf_like : bool + If True, applies a local scaling so that |grad(phi)| ~ 1 near the interface. + eps : float + Small number to avoid division by zero. + + Returns + ------- + phi : ndarray + Level set values (approx signed distance). + """ + x = xs[0] + y = xs[1] + cx, cy = center + dx = np.asarray(x) - cx + dy = np.asarray(y) - cy + + r = np.hypot(dx, dy) + theta = np.arctan2(dy, dx) + + R = R0 + a * np.cos(k * theta) + phi = r - R # simple (radial) signed distance approximation + + if not sdf_like: + return phi + + # First-order correction: scale so that |∇phi| ≈ 1 near the boundary + r_safe = np.maximum(r, eps) + denom = np.maximum(dx * dx + dy * dy, eps) + + dtheta_dx = -dy / denom + dtheta_dy = dx / denom + + dR_dtheta = -a * k * np.sin(k * theta) + + dphi_dx = dx / r_safe - dR_dtheta * dtheta_dx + dphi_dy = dy / r_safe - dR_dtheta * dtheta_dy + + g = np.sqrt(dphi_dx * dphi_dx + dphi_dy * dphi_dy) + g = np.maximum(g, eps) + + return phi / g # more “signed-distance-like” near φ=0 + + +def create_cut_mesh(grid): + points = grid.points + ls_values = np.zeros(len(points)) + j = 0 + for point in points: + ls_values[j] = level_set(point) + j = j + 1 + + cut_mesh = cutcells.cut_vtk_mesh( + ls_values, points, grid.cell_connectivity, grid.offset, grid.celltypes, "phi<0" + ) + inside_cells = cutcells.locate_cells( + ls_values, points, grid.cell_connectivity, grid.offset, grid.celltypes, "phi<0" + ) + + pv_cut = pv.UnstructuredGrid( + cut_mesh.cells, cut_mesh.types, np.asarray(cut_mesh.vertex_coords) + ) + extract = grid.extract_cells(inside_cells) + + return extract.merge(pv_cut) + + +# Mesh parameters +nx, ny = 21, 21 +x = np.linspace(-1.5, 1.5, nx + 1) +y = np.linspace(-1.5, 1.5, ny + 1) +X, Y = np.meshgrid(x, y) +points = np.column_stack([X.ravel(), Y.ravel()]) + +cells = [] +celltypes = [] +vtk_tri = pv.CellType.TRIANGLE +vtk_quad = pv.CellType.QUAD + +# Lower half: triangles, Upper half: quads +for j in range(ny): + for i in range(nx): + n0 = j * (nx + 1) + i + n1 = n0 + 1 + n2 = n0 + (nx + 1) + n3 = n2 + 1 + y_center = (Y[j, i] + Y[j + 1, i] + Y[j, i + 1] + Y[j + 1, i + 1]) / 4 + if y_center < 0: + # Two triangles per cell + cells.append([3, n0, n1, n2]) + celltypes.append(vtk_tri) + cells.append([3, n1, n3, n2]) + celltypes.append(vtk_tri) + else: + # One quad per cell + cells.append([4, n0, n1, n3, n2]) + celltypes.append(vtk_quad) + +# Flatten cells for VTK +flat_cells = np.array([v for cell in cells for v in cell], dtype=np.int64) +celltypes = np.array(celltypes, dtype=np.uint8) + +# Build a VTK mesh and cut it (ensures parent_map is populated). +points3 = np.c_[points, np.zeros((points.shape[0],), dtype=points.dtype)] +grid = pv.UnstructuredGrid(flat_cells, celltypes, points3) +mesh = create_cut_mesh(grid) + +mesh.plot(cpos="xy", show_edges=True) + +pl = pv.Plotter() +pl.add_mesh(grid, show_edges=True, color="white") +pl.add_mesh(mesh, show_edges=True) +pl.camera_position = "xy" +pl.show(screenshot="hybrid_flower.png") From de6ee8ad3d0cea2323e79f064b94c91c0e10534a Mon Sep 17 00:00:00 2001 From: Susanne Claus Date: Wed, 24 Dec 2025 00:44:51 +0100 Subject: [PATCH 7/7] include cstdint --- cpp/src/cut_cell.h | 1 + cpp/src/cut_mesh.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/cpp/src/cut_cell.h b/cpp/src/cut_cell.h index 794e946..98ac8f0 100644 --- a/cpp/src/cut_cell.h +++ b/cpp/src/cut_cell.h @@ -6,6 +6,7 @@ #pragma once #include +#include #include "cell_types.h" #include diff --git a/cpp/src/cut_mesh.cpp b/cpp/src/cut_mesh.cpp index a5eca41..daa0ac7 100644 --- a/cpp/src/cut_mesh.cpp +++ b/cpp/src/cut_mesh.cpp @@ -13,6 +13,7 @@ #include "cell_topology.h" #include #include +#include namespace {

  • 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�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 z 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