From 4c2a2fb16108edf54a0b5b9bcb723910c8b71cb5 Mon Sep 17 00:00:00 2001 From: Sam Silverman Date: Wed, 11 Mar 2026 10:58:24 -0400 Subject: [PATCH 1/8] Update linear_piezoelectric_solver_test.cpp --- tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp b/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp index 96d4b07..9c77e34 100644 --- a/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp +++ b/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp @@ -15,8 +15,7 @@ using namespace monad; using namespace monad::detail; -// using Types = std::tuple; -using Types = std::tuple; +using Types = std::tuple; TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricSolver: Test solve", "[monad]", Types) { using Resolution = typename TestType::Resolution; From 997e92791c478966ebdc0baf78fc04c83f106455 Mon Sep 17 00:00:00 2001 From: Sam Silverman Date: Wed, 11 Mar 2026 17:55:08 -0400 Subject: [PATCH 2/8] Only topology in grid class --- build.sh | 2 +- include/monad/grid/hex20_topology.hpp | 288 +++++++ include/monad/grid/hex8_topology.hpp | 131 ++++ include/monad/grid/quad4_topology.hpp | 120 +++ include/monad/grid/quad8_topology.hpp | 209 +++++ include/monad/grid/structured_grid.hpp | 240 ++++++ tests/CMakeLists.txt | 8 +- tests/grid/csv/bad1.csv | 3 - tests/grid/csv/bad2.csv | 3 - tests/grid/csv/bad3.csv | 3 - tests/grid/csv/bad4.csv | 4 - tests/grid/csv/bad5.csv | 0 tests/grid/csv/bad6.csv | 3 - tests/grid/csv/good.csv | 3 - tests/grid/grid_2d_test.cpp | 620 --------------- tests/grid/hex20_topology_test.cpp | 35 + tests/grid/hex8_topology_test.cpp | 35 + tests/grid/quad4_topology_test.cpp | 35 + tests/grid/quad8_topology_test.cpp | 35 + ...d_3d_test.cpp => structured_grid_test.cpp} | 725 ++++++++++-------- 20 files changed, 1537 insertions(+), 965 deletions(-) create mode 100644 include/monad/grid/hex20_topology.hpp create mode 100644 include/monad/grid/hex8_topology.hpp create mode 100644 include/monad/grid/quad4_topology.hpp create mode 100644 include/monad/grid/quad8_topology.hpp create mode 100644 include/monad/grid/structured_grid.hpp delete mode 100644 tests/grid/csv/bad1.csv delete mode 100644 tests/grid/csv/bad2.csv delete mode 100644 tests/grid/csv/bad3.csv delete mode 100644 tests/grid/csv/bad4.csv delete mode 100644 tests/grid/csv/bad5.csv delete mode 100644 tests/grid/csv/bad6.csv delete mode 100644 tests/grid/csv/good.csv delete mode 100644 tests/grid/grid_2d_test.cpp create mode 100644 tests/grid/hex20_topology_test.cpp create mode 100644 tests/grid/hex8_topology_test.cpp create mode 100644 tests/grid/quad4_topology_test.cpp create mode 100644 tests/grid/quad8_topology_test.cpp rename tests/grid/{grid_3d_test.cpp => structured_grid_test.cpp} (55%) diff --git a/build.sh b/build.sh index 811be59..1047cd0 100755 --- a/build.sh +++ b/build.sh @@ -6,5 +6,5 @@ fi rm -rf build mkdir build cd build -cmake .. -DMONAD_USE_OPENMP=ON -DMONAD_BUILD_APPS=ON -DMONAD_BUILD_TESTS=ON +cmake .. -DMONAD_USE_OPENMP=ON -DMONAD_BUILD_APPS=OFF -DMONAD_BUILD_TESTS=ON make -j8 diff --git a/include/monad/grid/hex20_topology.hpp b/include/monad/grid/hex20_topology.hpp new file mode 100644 index 0000000..d7941a7 --- /dev/null +++ b/include/monad/grid/hex20_topology.hpp @@ -0,0 +1,288 @@ +#pragma once + +#include +#include +#include "monad/fem/element/hex20.hpp" + +namespace monad { + + namespace grid { + + /** + * @brief Topology rules for 3D structured Hex20 grids. + */ + struct Hex20Topology { + using Element = fem::Hex20; + using Resolution = std::array; + using Size = std::array; + using Point = typename Element::Point; + using ElementList = std::array; + + /** + * @brief Number of corner nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of corner nodes. + */ + static std::size_t numCornerNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1) * (resolution[2] + 1); + } + + /** + * @brief Number of x-edge midpoint nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of x-edge midpoint nodes. + */ + static std::size_t numXMidNodes(const Resolution& resolution) noexcept { + return resolution[0] * (resolution[1] + 1) * (resolution[2] + 1); + } + + /** + * @brief Number of y-edge midpoint nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of y-edge midpoint nodes. + */ + static std::size_t numYMidNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * resolution[1] * (resolution[2] + 1); + } + + /** + * @brief Number of z-edge midpoint nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of z-edge midpoint nodes. + */ + static std::size_t numZMidNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1) * resolution[2]; + } + + /** + * @brief Number of nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of nodes. + */ + static std::size_t numNodes(const Resolution& resolution) noexcept { + return numCornerNodes(resolution) + numXMidNodes(resolution) + numYMidNodes(resolution) + numZMidNodes(resolution); + } + + /** + * @brief Number of periodic nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of periodic nodes. + */ + static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept { + return 4 * resolution[0] * resolution[1] * resolution[2]; + } + + /** + * @brief Coordinates for a specific node. + * + * @param[in] index Node index. + * @param[in] resolution How many cells in each dimension. + * @param[in] size Physical lengths in each dimension. + * + * @returns Coordinates for a specific node. + */ + static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t nz = resolution[2]; + const std::size_t corners = numCornerNodes(resolution); + const std::size_t xMids = numXMidNodes(resolution); + const std::size_t yMids = numYMidNodes(resolution); + + const double dx = size[0] / static_cast(nx); + const double dy = size[1] / static_cast(ny); + const double dz = size[2] / static_cast(nz); + + double x; + double y; + double z; + + if (index < corners) { + const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); + const std::size_t indexInPlane = index % nodesPerPlane; + const std::size_t i = indexInPlane % (nx + 1); + const std::size_t j = indexInPlane / (nx + 1); + const std::size_t k = index / nodesPerPlane; + + x = static_cast(i) * dx; + y = static_cast(j) * dy; + z = static_cast(k) * dz; + } + else if (index < corners + xMids) { + index -= corners; + + const std::size_t nodesPerPlane = nx * (ny + 1); + const std::size_t indexInPlane = index % nodesPerPlane; + const std::size_t i = indexInPlane % nx; + const std::size_t j = indexInPlane / nx; + const std::size_t k = index / nodesPerPlane; + + x = (static_cast(i) + 0.5) * dx; + y = static_cast(j) * dy; + z = static_cast(k) * dz; + } + else if (index < corners + xMids + yMids) { + index -= corners + xMids; + + const std::size_t nodesPerPlane = (nx + 1) * ny; + const std::size_t indexInPlane = index % nodesPerPlane; + const std::size_t i = indexInPlane % (nx + 1); + const std::size_t j = indexInPlane / (nx + 1); + const std::size_t k = index / nodesPerPlane; + + x = static_cast(i) * dx; + y = (static_cast(j) + 0.5) * dy; + z = static_cast(k) * dz; + } + else { + index -= corners + xMids + yMids; + + const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); + const std::size_t indexInPlane = index % nodesPerPlane; + const std::size_t i = indexInPlane % (nx + 1); + const std::size_t j = indexInPlane / (nx + 1); + const std::size_t k = index / nodesPerPlane; + + x = static_cast(i) * dx; + y = static_cast(j) * dy; + z = (static_cast(k) + 0.5) * dz; + } + + return Point(x, y, z); + } + + /** + * @brief Node indices for a specific element. + * + * @param[in] index Element index. + * @param[in] resolution How many cells in each dimension. + * + * @returns Node indices for a specific element. + */ + static ElementList element(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t elementsPerPlane = nx * ny; + const std::size_t corners = numCornerNodes(resolution); + const std::size_t xMids = numXMidNodes(resolution); + const std::size_t yMids = numYMidNodes(resolution); + + const std::size_t i = index % nx; + const std::size_t j = (index / nx) % ny; + const std::size_t k = index / elementsPerPlane; + + const auto cornerNodeIndex = [nx, ny](std::size_t ii, std::size_t jj, std::size_t kk) { + return kk * ((nx + 1) * (ny + 1)) + jj * (nx + 1) + ii; + }; + + const auto xMidNodeIndex = [nx, ny, corners](std::size_t ii, std::size_t jj, std::size_t kk) { + return corners + kk * nx * (ny + 1) + jj * nx + ii; + }; + + const auto yMidNodeIndex = [nx, ny, corners, xMids](std::size_t ii, std::size_t jj, std::size_t kk) { + return corners + xMids + kk * (nx + 1) * ny + jj * (nx + 1) + ii; + }; + + const auto zMidNodeIndex = [nx, ny, corners, xMids, yMids](std::size_t ii, std::size_t jj, std::size_t kk) { + return corners + xMids + yMids + kk * (nx + 1) * (ny + 1) + jj * (nx + 1) + ii; + }; + + return { + cornerNodeIndex(i, j, k), + cornerNodeIndex(i + 1, j, k), + cornerNodeIndex(i + 1, j + 1, k), + cornerNodeIndex(i, j + 1, k), + cornerNodeIndex(i, j, k + 1), + cornerNodeIndex(i + 1, j, k + 1), + cornerNodeIndex(i + 1, j + 1, k + 1), + cornerNodeIndex(i, j + 1, k + 1), + xMidNodeIndex(i, j, k), + yMidNodeIndex(i + 1, j, k), + xMidNodeIndex(i, j + 1, k), + yMidNodeIndex(i, j, k), + xMidNodeIndex(i, j, k + 1), + yMidNodeIndex(i + 1, j, k + 1), + xMidNodeIndex(i, j + 1, k + 1), + yMidNodeIndex(i, j, k + 1), + zMidNodeIndex(i, j, k), + zMidNodeIndex(i + 1, j, k), + zMidNodeIndex(i + 1, j + 1, k), + zMidNodeIndex(i, j + 1, k) + }; + } + + /** + * @brief Periodic node indices for a specific element. + * + * @param[in] index Element index. + * @param[in] resolution How many cells in each dimension. + * + * @returns Periodic node indices for a specific element. + */ + static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t nz = resolution[2]; + const std::size_t numElements = nx * ny * nz; + const std::size_t elementsPerPlane = nx * ny; + + const std::size_t i = index % nx; + const std::size_t j = (index / nx) % ny; + const std::size_t k = index / elementsPerPlane; + + const auto cornerNodeIndex = [nx, ny, nz](std::size_t ii, std::size_t jj, std::size_t kk) { + return (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + const auto xMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { + return numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + const auto yMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { + return 2 * numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + const auto zMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { + return 3 * numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + return { + cornerNodeIndex(i, j, k), + cornerNodeIndex(i + 1, j, k), + cornerNodeIndex(i + 1, j + 1, k), + cornerNodeIndex(i, j + 1, k), + cornerNodeIndex(i, j, k + 1), + cornerNodeIndex(i + 1, j, k + 1), + cornerNodeIndex(i + 1, j + 1, k + 1), + cornerNodeIndex(i, j + 1, k + 1), + xMidNodeIndex(i, j, k), + yMidNodeIndex(i + 1, j, k), + xMidNodeIndex(i, j + 1, k), + yMidNodeIndex(i, j, k), + xMidNodeIndex(i, j, k + 1), + yMidNodeIndex(i + 1, j, k + 1), + xMidNodeIndex(i, j + 1, k + 1), + yMidNodeIndex(i, j, k + 1), + zMidNodeIndex(i, j, k), + zMidNodeIndex(i + 1, j, k), + zMidNodeIndex(i + 1, j + 1, k), + zMidNodeIndex(i, j + 1, k) + }; + } + }; + + } // namespace grid + +} // namespace monad diff --git a/include/monad/grid/hex8_topology.hpp b/include/monad/grid/hex8_topology.hpp new file mode 100644 index 0000000..3ef8c53 --- /dev/null +++ b/include/monad/grid/hex8_topology.hpp @@ -0,0 +1,131 @@ +#pragma once + +#include +#include +#include "monad/fem/element/hex8.hpp" + +namespace monad { + + namespace grid { + + /** + * @brief Topology rules for 3D structured Hex8 grids. + */ + struct Hex8Topology { + using Element = fem::Hex8; + using Resolution = std::array; + using Size = std::array; + using Point = typename Element::Point; + using ElementList = std::array; + + /// @brief Number of nodes. + static std::size_t numNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1) * (resolution[2] + 1); + } + + /// @brief Number of periodic nodes. + static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept { + return resolution[0] * resolution[1] * resolution[2]; + } + + /** + * @brief Coordinates for a specific node. + * + * @param[in] index Node index. + * @param[in] resolution How many cells in each dimension. + * @param[in] size Physical lengths in each dimension. + * + * @returns Coordinates for a specific node. + */ + static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); + const std::size_t indexInPlane = index % nodesPerPlane; + + const std::size_t i = indexInPlane % (nx + 1); + const std::size_t j = indexInPlane / (nx + 1); + const std::size_t k = index / nodesPerPlane; + + const double dx = size[0] / static_cast(nx); + const double dy = size[1] / static_cast(ny); + const double dz = size[2] / static_cast(resolution[2]); + + const double x = static_cast(i) * dx; + const double y = static_cast(j) * dy; + const double z = static_cast(k) * dz; + + return Point(x, y, z); + } + + /** + * @brief Node indices for a specific element. + * + * @param[in] index Element index. + * @param[in] resolution How many cells in each dimension. + * + * @returns Node indices for a specific element. + */ + static ElementList element(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t elementsPerPlane = nx * ny; + + const std::size_t i = index % nx; + const std::size_t j = (index / nx) % ny; + const std::size_t k = index / elementsPerPlane; + + const auto nodeIndex = [nx, ny](std::size_t ii, std::size_t jj, std::size_t kk) { + return kk * ((nx + 1) * (ny + 1)) + jj * (nx + 1) + ii; + }; + + return { + nodeIndex(i, j, k), + nodeIndex(i + 1, j, k), + nodeIndex(i + 1, j + 1, k), + nodeIndex(i, j + 1, k), + nodeIndex(i, j, k + 1), + nodeIndex(i + 1, j, k + 1), + nodeIndex(i + 1, j + 1, k + 1), + nodeIndex(i, j + 1, k + 1) + }; + } + + /** + * @brief Periodic node indices for a specific element. + * + * @param[in] index Element index. + * @param[in] resolution How many cells in each dimension. + * + * @returns Periodic node indices for a specific element. + */ + static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t nz = resolution[2]; + const std::size_t elementsPerPlane = nx * ny; + + const std::size_t i = index % nx; + const std::size_t j = (index / nx) % ny; + const std::size_t k = index / elementsPerPlane; + + const auto nodeIndex = [nx, ny, nz](std::size_t ii, std::size_t jj, std::size_t kk) { + return (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + return { + nodeIndex(i, j, k), + nodeIndex(i + 1, j, k), + nodeIndex(i + 1, j + 1, k), + nodeIndex(i, j + 1, k), + nodeIndex(i, j, k + 1), + nodeIndex(i + 1, j, k + 1), + nodeIndex(i + 1, j + 1, k + 1), + nodeIndex(i, j + 1, k + 1) + }; + } + }; + + } // namespace grid + +} // namespace monad diff --git a/include/monad/grid/quad4_topology.hpp b/include/monad/grid/quad4_topology.hpp new file mode 100644 index 0000000..1f22871 --- /dev/null +++ b/include/monad/grid/quad4_topology.hpp @@ -0,0 +1,120 @@ +#pragma once + +#include +#include +#include "monad/fem/element/quad4.hpp" + +namespace monad { + + namespace grid { + + /** + * @brief Topology rules for 2D structured Quad4 grids. + */ + struct Quad4Topology { + using Element = fem::Quad4; + using Resolution = std::array; + using Size = std::array; + using Point = typename Element::Point; + using ElementList = std::array; + + /** + * @brief Number of nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of nodes. + */ + static std::size_t numNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1); + } + + /** + * @brief Number of periodic nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of periodic nodes. + */ + static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept { + return resolution[0] * resolution[1]; + } + + /** + * @brief Coordinates for a specific node. + * + * @param[in] index Node index. + * @param[in] resolution How many cells in each dimension. + * @param[in] size Physical lengths in each dimension. + * + * @returns Coordinates for a specific node. + */ + static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t i = index % (nx + 1); + const std::size_t j = index / (nx + 1); + + const double dx = size[0] / static_cast(nx); + const double dy = size[1] / static_cast(resolution[1]); + + const double x = static_cast(i) * dx; + const double y = static_cast(j) * dy; + + return Point(x, y); + } + + /** + * @brief Node indices for a specific element. + * + * @param[in] index Element index. + * @param[in] resolution How many cells in each dimension. + * + * @returns Node indices for a specific element. + */ + static ElementList element(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + const auto nodeIndex = [nx](std::size_t ii, std::size_t jj) { + return jj * (nx + 1) + ii; + }; + + return { + nodeIndex(i, j), + nodeIndex(i + 1, j), + nodeIndex(i + 1, j + 1), + nodeIndex(i, j + 1) + }; + } + + /** + * @brief Periodic node indices for a specific element. + * + * @param[in] index Element index. + * @param[in] resolution How many cells in each dimension. + * + * @returns Periodic node indices for a specific element. + */ + static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + const auto nodeIndex = [nx, ny](std::size_t ii, std::size_t jj) { + return (jj % ny) * nx + (ii % nx); + }; + + return { + nodeIndex(i, j), + nodeIndex(i + 1, j), + nodeIndex(i + 1, j + 1), + nodeIndex(i, j + 1) + }; + } + }; + + } // namespace grid + +} // namespace monad diff --git a/include/monad/grid/quad8_topology.hpp b/include/monad/grid/quad8_topology.hpp new file mode 100644 index 0000000..93f6cd2 --- /dev/null +++ b/include/monad/grid/quad8_topology.hpp @@ -0,0 +1,209 @@ +#pragma once + +#include +#include +#include "monad/fem/element/quad8.hpp" + +namespace monad { + + namespace grid { + + /** + * @brief Topology rules for 2D structured Quad8 grids. + */ + struct Quad8Topology { + using Element = fem::Quad8; + using Resolution = std::array; + using Size = std::array; + using Point = typename Element::Point; + using ElementList = std::array; + + /** + * @brief Number of corner nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of corner nodes. + */ + static std::size_t numCornerNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1); + } + + /** + * @brief Number of horizontal edge midpoint nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of horizontal edge midpoint nodes. + */ + static std::size_t numXMidNodes(const Resolution& resolution) noexcept { + return resolution[0] * (resolution[1] + 1); + } + + /** + * @brief Number of vertical edge midpoint nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of vertical edge midpoint nodes. + */ + static std::size_t numYMidNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * resolution[1]; + } + + /** + * @brief Number of nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of nodes. + */ + static std::size_t numNodes(const Resolution& resolution) noexcept { + return numCornerNodes(resolution) + numXMidNodes(resolution) + numYMidNodes(resolution); + } + + /** + * @brief Number of periodic nodes. + * + * @param[in] resolution How many cells in each dimension. + * + * @returns Number of periodic nodes. + */ + static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept { + return 3 * resolution[0] * resolution[1]; + } + + /** + * @brief Coordinates for a specific node. + * + * @param[in] index Node index. + * @param[in] resolution How many cells in each dimension. + * @param[in] size Physical lengths in each dimension. + * + * @returns Coordinates for a specific node. + */ + static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t corners = numCornerNodes(resolution); + const std::size_t xMids = numXMidNodes(resolution); + + const double dx = size[0] / static_cast(nx); + const double dy = size[1] / static_cast(ny); + + double x; + double y; + + if (index < corners) { + const std::size_t i = index % (nx + 1); + const std::size_t j = index / (nx + 1); + + x = static_cast(i) * dx; + y = static_cast(j) * dy; + } + else if (index < corners + xMids) { + index -= corners; + + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + x = (static_cast(i) + 0.5) * dx; + y = static_cast(j) * dy; + } + else { + index -= corners + xMids; + + const std::size_t i = index % (nx + 1); + const std::size_t j = index / (nx + 1); + + x = static_cast(i) * dx; + y = (static_cast(j) + 0.5) * dy; + } + + return Point(x, y); + } + + /** + * @brief Node indices for a specific element. + * + * @param[in] index Element index. + * @param[in] resolution How many cells in each dimension. + * + * @returns Node indices for a specific element. + */ + static ElementList element(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t corners = numCornerNodes(resolution); + const std::size_t xMids = numXMidNodes(resolution); + + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + const auto cornerNodeIndex = [nx](std::size_t ii, std::size_t jj) { + return jj * (nx + 1) + ii; + }; + + const auto xMidNodeIndex = [nx, corners](std::size_t ii, std::size_t jj) { + return corners + jj * nx + ii; + }; + + const auto yMidNodeIndex = [nx, corners, xMids](std::size_t ii, std::size_t jj) { + return corners + xMids + jj * (nx + 1) + ii; + }; + + return { + cornerNodeIndex(i, j), + cornerNodeIndex(i + 1, j), + cornerNodeIndex(i + 1, j + 1), + cornerNodeIndex(i, j + 1), + xMidNodeIndex(i, j), + yMidNodeIndex(i + 1, j), + xMidNodeIndex(i, j + 1), + yMidNodeIndex(i, j) + }; + } + + /** + * @brief Periodic node indices for a specific element. + * + * @param[in] index Element index. + * @param[in] resolution How many cells in each dimension. + * + * @returns Periodic node indices for a specific element. + */ + static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t numElements = nx * ny; + + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + const auto cornerNodeIndex = [nx, ny](std::size_t ii, std::size_t jj) { + return (jj % ny) * nx + (ii % nx); + }; + + const auto xMidNodeIndex = [nx, ny, numElements](std::size_t ii, std::size_t jj) { + return numElements + (jj % ny) * nx + (ii % nx); + }; + + const auto yMidNodeIndex = [nx, ny, numElements](std::size_t ii, std::size_t jj) { + return 2 * numElements + (jj % ny) * nx + (ii % nx); + }; + + return { + cornerNodeIndex(i, j), + cornerNodeIndex(i + 1, j), + cornerNodeIndex(i + 1, j + 1), + cornerNodeIndex(i, j + 1), + xMidNodeIndex(i, j), + yMidNodeIndex(i + 1, j), + xMidNodeIndex(i, j + 1), + yMidNodeIndex(i, j) + }; + } + }; + + } // namespace grid + +} // namespace monad diff --git a/include/monad/grid/structured_grid.hpp b/include/monad/grid/structured_grid.hpp new file mode 100644 index 0000000..b23d173 --- /dev/null +++ b/include/monad/grid/structured_grid.hpp @@ -0,0 +1,240 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +namespace monad { + + namespace grid { + + /** + * @brief Structured grid with topology-defined node and element numbering. + * + * @tparam TopologyT Concrete topology class (e.g. Quad4Topology). + */ + template + class StructuredGrid { + public: + using Topology = TopologyT; + using Element = typename Topology::Element; + + static constexpr int Dim = Element::Dim; + + using Resolution = std::array; + using Size = std::array; + using Point = typename Element::Point; + using NodesMatrix = typename Element::NodesMatrix; + using ElementList = std::array; + using ElementsList = std::vector; + using NodesList = std::vector; + + /** + * @brief Constructs a structured grid. + * + * @param[in] resolution How many cells in each dimension. + * @param[in] size Physical lengths in each dimension. + * + * @throws std::invalid_argument if any entry in `resolution` is zero. + * @throws std::invalid_argument if any entry in `size` is non-positive. + * + */ + StructuredGrid(const Resolution &resolution, const Size &size) + : resolution_(resolution), size_(size) { + for (std::size_t i = 0; i < Dim; ++i) { + if (resolution_[i] == 0) { + throw std::invalid_argument("Resolution in dimension " + std::to_string(i + 1) + " must be positive."); + } + + if (size_[i] <= 0) { + throw std::invalid_argument("Size in dimension " + std::to_string(i + 1) + " (" + std::to_string(size_[i]) + ") must be positive."); + } + } + } + + /// @brief How many cells in each dimension. + const Resolution &resolution() const noexcept { + return resolution_; + } + + /// @brief Physical lengths in each dimension. + const Size &size() const noexcept { + return size_; + } + + /// @brief Number of elements. + std::size_t numElements() const noexcept { + std::size_t total = 1; + + for (std::size_t n : resolution_) { + total *= n; + } + + return total; + } + + /// @brief Number of nodes. + std::size_t numNodes() const noexcept { + return Topology::numNodes(resolution_); + } + + /// @brief Number of periodic nodes. + std::size_t numPeriodicNodes() const noexcept { + return Topology::numPeriodicNodes(resolution_); + } + + /** + * @brief Coordinates for a specific node. + * + * @param[in] index Node index. + * + * @returns Coordinates for a specific node. + * + * @throws std::out_of_range if `index` is outside the range [0,`numNodes()`). + */ + Point node(std::size_t index) const { + if (index >= numNodes()) { + throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numNodes()) + ")."); + } + + return Topology::node(index, resolution_, size_); + } + + /// @brief Coordinates for all nodes. + NodesList nodes() const noexcept { + NodesList out; + out.reserve(numNodes()); + + for (std::size_t i = 0; i < numNodes(); ++i) { + out.push_back(node(i)); + } + + return out; + } + + /** + * @brief Node indices for a specific element. + * + * @param[in] index Element index. + * + * @returns Node indices for a specific element. + * + * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). + */ + ElementList element(std::size_t index) const { + if (index >= numElements()) { + throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); + } + + return Topology::element(index, resolution_); + } + + /// @brief Node indices for all elements. + ElementsList elements() const noexcept { + ElementsList out; + out.reserve(numElements()); + + for (std::size_t i = 0; i < numElements(); ++i) { + out.push_back(element(i)); + } + + return out; + } + + /** + * @brief Periodic node indices for a specific element. + * + * @param[in] index Element index. + * + * @returns Periodic node indices for a specific element. + * + * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). + */ + ElementList periodicElement(std::size_t index) const { + if (index >= numElements()) { + throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); + } + + return Topology::periodicElement(index, resolution_); + } + + /// @brief Periodic node indices for all elements. + ElementsList periodicElements() const noexcept { + ElementsList out; + out.reserve(numElements()); + + for (std::size_t i = 0; i < numElements(); ++i) { + out.push_back(periodicElement(i)); + } + + return out; + } + + /** + * @brief Nodal coordinates for a specific element. + * + * @param[in] index Element index. + * + * @returns Nodal coordinates for a specific element. + * + * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). + */ + NodesMatrix elementNodes(std::size_t index) const { + if (index >= numElements()) { + throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); + } + + NodesMatrix out; + + int row = 0; + for (std::size_t nodeIndex : element(index)) { + out.row(row++) = node(nodeIndex); + } + + return out; + } + + /// @brief Grid area (2D) or volume (3D). + double measure() const noexcept { + const auto referenceElementNodes = elementNodes(0); + const double referenceElementMeasure = Element::measure(referenceElementNodes); + + return referenceElementMeasure * static_cast(numElements()); + } + + /// @brief Grid area. + template + std::enable_if_t area() const noexcept { + return measure(); + } + + /// @brief Grid volume. + template + std::enable_if_t volume() const noexcept { + return measure(); + } + + /// @brief Equality comparison. + bool operator==(const StructuredGrid &other) const noexcept { + return resolution_ == other.resolution_ && size_ == other.size_; + } + + /// @brief Inequality comparison. + bool operator!=(const StructuredGrid &other) const noexcept { + return !(*this == other); + } + + private: + /// @brief How many cells in each dimension. + Resolution resolution_; + + /// @brief Physical lengths in each dimension. + Size size_; + }; + + } // namespace grid + +} // namespace monad diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 44c3677..aa1e855 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,6 +1,12 @@ cmake_minimum_required(VERSION 3.10) -file(GLOB_RECURSE TEST_SOURCES ${CMAKE_SOURCE_DIR}/tests/*.cpp) +set(TEST_SOURCES + grid/hex8_topology_test.cpp + grid/hex20_topology_test.cpp + grid/quad4_topology_test.cpp + grid/quad8_topology_test.cpp + grid/structured_grid_test.cpp +) add_executable(monad_tests ${TEST_SOURCES}) diff --git a/tests/grid/csv/bad1.csv b/tests/grid/csv/bad1.csv deleted file mode 100644 index 241f5ef..0000000 --- a/tests/grid/csv/bad1.csv +++ /dev/null @@ -1,3 +0,0 @@ -0.1,0.2 --0.3,0.4 -0.5,0.6 \ No newline at end of file diff --git a/tests/grid/csv/bad2.csv b/tests/grid/csv/bad2.csv deleted file mode 100644 index eab3b9a..0000000 --- a/tests/grid/csv/bad2.csv +++ /dev/null @@ -1,3 +0,0 @@ -0.1,0.2 -1.3,0.4 -0.5,0.6 \ No newline at end of file diff --git a/tests/grid/csv/bad3.csv b/tests/grid/csv/bad3.csv deleted file mode 100644 index 9865b54..0000000 --- a/tests/grid/csv/bad3.csv +++ /dev/null @@ -1,3 +0,0 @@ -0.1,0.2 -0.3,0.4 -0.5 \ No newline at end of file diff --git a/tests/grid/csv/bad4.csv b/tests/grid/csv/bad4.csv deleted file mode 100644 index 5dba4a4..0000000 --- a/tests/grid/csv/bad4.csv +++ /dev/null @@ -1,4 +0,0 @@ -0.1,0.2 -0.3,0.4 -0.5,0.6 -0.7 \ No newline at end of file diff --git a/tests/grid/csv/bad5.csv b/tests/grid/csv/bad5.csv deleted file mode 100644 index e69de29..0000000 diff --git a/tests/grid/csv/bad6.csv b/tests/grid/csv/bad6.csv deleted file mode 100644 index 8e7dbf5..0000000 --- a/tests/grid/csv/bad6.csv +++ /dev/null @@ -1,3 +0,0 @@ -0.1,0.2 -a,0.4 -0.5,0.6 \ No newline at end of file diff --git a/tests/grid/csv/good.csv b/tests/grid/csv/good.csv deleted file mode 100644 index 92463aa..0000000 --- a/tests/grid/csv/good.csv +++ /dev/null @@ -1,3 +0,0 @@ -0.5,0.6 -0.3,0.4 -0.1,0.2 \ No newline at end of file diff --git a/tests/grid/grid_2d_test.cpp b/tests/grid/grid_2d_test.cpp deleted file mode 100644 index 841db9a..0000000 --- a/tests/grid/grid_2d_test.cpp +++ /dev/null @@ -1,620 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/detail/constants.hpp" -#include "test_common.hpp" - -using namespace monad; -using namespace monad::testing; - -using Types = std::tuple; - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test initalization", "[monad]", Types) { - SECTION("Invalid resolution") { - REQUIRE_THROWS_AS(TestType({0, 3}, {0.5, 1.5}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 0}, {0.5, 1.5}), std::invalid_argument); - } - - SECTION("Invalid size") { - REQUIRE_THROWS_AS(TestType({2, 3}, {0.0, 1.5}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3}, {-0.5, 1.5}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3}, {0.5, 0.0}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3}, {0.5, -1.5}), std::invalid_argument); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test resolution", "[monad]", Types) { - using Resolution = typename TestType::Resolution; - - const TestType grid({2, 3}, {0.5, 1.5}); - - const Resolution expected{2, 3}; - - REQUIRE(grid.resolution() == expected); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test size", "[monad]", Types) { - using Size = typename TestType::Size; - - const TestType grid({2, 3}, {0.5, 1.5}); - - const Size expected{0.5, 1.5}; - - REQUIRE(grid.size() == expected); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test densities", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - const TestType grid({2, 3}, {0.5, 1.5}); - - const DensityList expected(6, 0.0); - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test numElements", "[monad]", Types) { - const TestType grid({2, 3}, {0.5, 1.5}); - - REQUIRE(grid.numElements() == 6); -} - -TEST_CASE("monad::Grid2d: Test numNodes", "[monad]") { - SECTION("Quad4Grid") { - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - REQUIRE(grid.numNodes() == 12); - } - - SECTION("Quad8Grid") { - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - REQUIRE(grid.numNodes() == 29); - } -} - -TEST_CASE("monad::Grid2d: Test numPeriodicNodes", "[monad]") { - SECTION("Quad4Grid") { - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - REQUIRE(grid.numPeriodicNodes() == 6); - } - - SECTION("Quad8Grid") { - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - REQUIRE(grid.numPeriodicNodes() == 18); - } -} - -TEST_CASE("monad::Grid2d: Test node", "[monad]") { - SECTION("Quad4Grid") { - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const Quad4Grid::Point expected(0.25, 0.0); - - REQUIRE(grid.node(1).isApprox(expected, NUMERICAL_ZERO)); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.node(grid.numNodes()), std::out_of_range); - } - } - - SECTION("Quad8Grid") { - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const Quad8Grid::Point expected(0.25, 0.0); - - REQUIRE(grid.node(1).isApprox(expected, NUMERICAL_ZERO)); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.node(grid.numNodes()), std::out_of_range); - } - } -} - -TEST_CASE("monad::Grid2d: Test nodes", "[monad]") { - SECTION("Quad4Grid") { - using NodesList = typename Quad4Grid::NodesList; - - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - const auto actual = grid.nodes(); - - const NodesList expected { - {0.0, 0.0}, - {0.25, 0.0}, - {0.5, 0.0}, - {0.0, 0.5}, - {0.25, 0.5}, - {0.5, 0.5}, - {0.0, 1.0}, - {0.25, 1.0}, - {0.5, 1.0}, - {0.0, 1.5}, - {0.25, 1.5}, - {0.5, 1.5} - }; - - REQUIRE(actual.size() == expected.size()); - - for (std::size_t i = 0; i < actual.size(); ++i) { - REQUIRE(actual[i].isApprox(expected[i], NUMERICAL_ZERO)); - } - } - - SECTION("Quad8Grid") { - using NodesList = typename Quad8Grid::NodesList; - - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - const auto actual = grid.nodes(); - - const NodesList expected { - {0.0, 0.0}, - {0.25, 0.0}, - {0.5, 0.0}, - {0.0, 0.5}, - {0.25, 0.5}, - {0.5, 0.5}, - {0.0, 1.0}, - {0.25, 1.0}, - {0.5, 1.0}, - {0.0, 1.5}, - {0.25, 1.5}, - {0.5, 1.5}, - {0.125, 0.0}, - {0.375, 0.0}, - {0.125, 0.5}, - {0.375, 0.5}, - {0.125, 1.0}, - {0.375, 1.0}, - {0.125, 1.5}, - {0.375, 1.5}, - {0.0, 0.25}, - {0.25, 0.25}, - {0.5, 0.25}, - {0.0, 0.75}, - {0.25, 0.75}, - {0.5, 0.75}, - {0.0, 1.25}, - {0.25, 1.25}, - {0.5, 1.25} - }; - - REQUIRE(actual.size() == expected.size()); - - for (std::size_t i = 0; i < actual.size(); ++i) { - REQUIRE(actual[i].isApprox(expected[i], NUMERICAL_ZERO)); - } - } -} - -TEST_CASE("monad::Grid2d: Test element", "[monad]") { - SECTION("Quad4Grid") { - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const Quad4Grid::ElementList expected{1, 2, 5, 4}; - - REQUIRE(grid.element(1) == expected); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.element(grid.numElements()), std::out_of_range); - } - } - - SECTION("Quad8Grid") { - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const Quad8Grid::ElementList expected{1, 2, 5, 4, 13, 22, 15, 21}; - - REQUIRE(grid.element(1) == expected); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.element(grid.numElements()), std::out_of_range); - } - } -} - -TEST_CASE("monad::Grid2d: Test elements", "[monad]") { - SECTION("Quad4Grid") { - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - const Quad4Grid::ElementsList expected { - {0, 1, 4, 3}, - {1, 2, 5, 4}, - {3, 4, 7, 6}, - {4, 5, 8, 7}, - {6, 7, 10, 9}, - {7, 8, 11, 10} - }; - - REQUIRE(grid.elements() == expected); - } - - SECTION("Quad8Grid") { - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - const Quad8Grid::ElementsList expected { - {0, 1, 4, 3, 12, 21, 14, 20}, - {1, 2, 5, 4, 13, 22, 15, 21}, - {3, 4, 7, 6, 14, 24, 16, 23}, - {4, 5, 8, 7, 15, 25, 17, 24}, - {6, 7, 10, 9, 16, 27, 18, 26}, - {7, 8, 11, 10, 17, 28, 19, 27} - }; - - REQUIRE(grid.elements() == expected); - } -} - -TEST_CASE("monad::Grid2d: Test periodicElement", "[monad]") { - SECTION("Quad4Grid") { - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const Quad4Grid::ElementList expected{1, 0, 2, 3}; - - REQUIRE(grid.periodicElement(1) == expected); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.periodicElement(grid.numElements()), std::out_of_range); - } - } - - SECTION("Quad8Grid") { - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const Quad8Grid::ElementList expected{1, 0, 2, 3, 7, 12, 9, 13}; - - REQUIRE(grid.periodicElement(1) == expected); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.periodicElement(grid.numElements()), std::out_of_range); - } - } -} - -TEST_CASE("monad::Grid2d: Test periodicElements", "[monad]") { - SECTION("Quad4Grid") { - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - const Quad4Grid::ElementsList expected { - {0, 1, 3, 2}, - {1, 0, 2, 3}, - {2, 3, 5, 4}, - {3, 2, 4, 5}, - {4, 5, 1, 0}, - {5, 4, 0, 1} - }; - - REQUIRE(grid.periodicElements() == expected); - } - - SECTION("Quad8Grid") { - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - const Quad8Grid::ElementsList expected { - {0, 1, 3, 2, 6, 13, 8, 12}, - {1, 0, 2, 3, 7, 12, 9, 13}, - {2, 3, 5, 4, 8, 15, 10, 14}, - {3, 2, 4, 5, 9, 14, 11, 15}, - {4, 5, 1, 0, 10, 17, 6, 16}, - {5, 4, 0, 1, 11, 16, 7, 17} - }; - - REQUIRE(grid.periodicElements() == expected); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test getDensity/setDensity", "[monad]", Types) { - TestType grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - REQUIRE_THAT(grid.getDensity(1), Catch::Matchers::WithinAbs(0.0, NUMERICAL_ZERO)); - - grid.setDensity(1, 0.1); - - REQUIRE_THAT(grid.getDensity(1), Catch::Matchers::WithinAbs(0.1, NUMERICAL_ZERO)); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.getDensity(grid.numElements()), std::out_of_range); - - REQUIRE_THROWS_AS(grid.setDensity(grid.numElements(), 0.1), std::out_of_range); - } - - SECTION("Invalid density") { - REQUIRE_THROWS_AS(grid.setDensity(1, -0.1), std::invalid_argument); - REQUIRE_THROWS_AS(grid.setDensity(1, 1.1), std::invalid_argument); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test setDensities", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const DensityList densities(grid.numElements(), 0.5); - - grid.setDensities(densities); - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(densities).margin(NUMERICAL_ZERO)); - } - - SECTION("Invalid size") { - const DensityList densities(grid.numElements() + 1, 0.5); - - REQUIRE_THROWS_AS(grid.setDensities(densities), std::invalid_argument); - } - - SECTION("Invalid density") { - DensityList densities(grid.numElements(), 0.5); - densities[1] *= -1; - - REQUIRE_THROWS_AS(grid.setDensities(densities), std::invalid_argument); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test setDensitiesConstant", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - grid.setDensitiesConstant(0.5); - - const DensityList expected(grid.numElements(), 0.5); - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); - } - - SECTION("Invalid density") { - REQUIRE_THROWS_AS(grid.setDensitiesConstant(-0.1), std::invalid_argument); - REQUIRE_THROWS_AS(grid.setDensitiesConstant(1.1), std::invalid_argument); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test setDensitiesZeros", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3}, {0.5, 1.5}); - - grid.setDensitiesZeros(); - - const DensityList expected(grid.numElements(), 0.0); - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test setDensitiesOnes", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3}, {0.5, 1.5}); - - grid.setDensitiesOnes(); - - const DensityList expected(grid.numElements(), 1.0); - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test setDensitiesRandom", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3}, {0.5, 1.5}); - - grid.setDensitiesRandom(1234); - - const DensityList expected { - 0.49766366630595177, - 0.81783844288953345, - 0.61211189358442286, - 0.77135991905475021, - 0.86066977348643747, - 0.15063696570521984 - }; - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test setDensitiesFunction", "[monad]", Types) { - using Point = typename TestType::Point; - - TestType grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - // 0.1x+0.2y - auto f = [](const Point &p) -> double { - return 0.1 * p(0) + 0.2 * p(1); - }; - - grid.setDensitiesFunction(f); - - // The average of a linear function over a convex region equals its value at the centroid - const auto nodes = grid.elementNodes(1); - const Point centroid = nodes.colwise().mean(); - const double expected = f(centroid); - - REQUIRE_THAT(grid.getDensity(1), Catch::Matchers::WithinAbs(expected, NUMERICAL_ZERO)); - } - - SECTION("Bad function") { - // exp(x+y) - auto f = [](const Point &point) -> double { - const double x = point(0); - const double y = point(1); - - return std::exp(x + y); - }; - - REQUIRE_THROWS_AS(grid.setDensitiesFunction(f), std::invalid_argument); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test setDensitiesFile", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3}, {0.5, 1.5}); - - const auto folder = std::filesystem::path(__FILE__).parent_path() / "csv"; - - SECTION("No errors") { - const auto file = folder / "good.csv"; - - grid.setDensitiesFile(file.string()); - - const DensityList expected { - 0.1, - 0.2, - 0.3, - 0.4, - 0.5, - 0.6 - }; - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); - } - - SECTION("Invalid csv data") { - // data < 0 - auto file = folder / "bad1.csv"; - - REQUIRE_THROWS_AS(grid.setDensitiesFile(file.string()), std::runtime_error); - - // data > 1 - file = folder / "bad2.csv"; - - REQUIRE_THROWS_AS(grid.setDensitiesFile(file.string()), std::runtime_error); - - // not enough data - file = folder / "bad3.csv"; - - REQUIRE_THROWS_AS(grid.setDensitiesFile(file.string()), std::runtime_error); - - // too much data - file = folder / "bad4.csv"; - - REQUIRE_THROWS_AS(grid.setDensitiesFile(file.string()), std::runtime_error); - - // no data - file = folder / "bad5.csv"; - - REQUIRE_THROWS_AS(grid.setDensitiesFile(file.string()), std::runtime_error); - - // non-numeric data - file = folder / "bad6.csv"; - - REQUIRE_THROWS_AS(grid.setDensitiesFile(file.string()), std::runtime_error); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test translate", "[monad]", Types) { - TestType grid({2, 3}, {0.5, 1.5}); - - // Index=1 → Point=(1,0) - grid.setDensity(1, 0.5); - - // Point=(0,2) - grid.translate({1, 2}); - - REQUIRE_THAT(grid.getDensity(4), Catch::Matchers::WithinAbs(0.5, NUMERICAL_ZERO)); -} - -TEST_CASE("monad::Grid2d: Test elementNodes", "[monad]") { - SECTION("Quad4Grid") { - const Quad4Grid grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const Quad4Grid::NodesMatrix expected { - {0.25, 0.0}, - {0.5, 0.0}, - {0.5, 0.5}, - {0.25, 0.5} - }; - - REQUIRE(grid.elementNodes(1).isApprox(expected, NUMERICAL_ZERO)); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.elementNodes(grid.numElements()), std::out_of_range); - } - } - - SECTION("Quad8Grid") { - const Quad8Grid grid({2, 3}, {0.5, 1.5}); - - SECTION("No errors") { - const Quad8Grid::NodesMatrix expected { - {0.25, 0.0}, - {0.5, 0.0}, - {0.5, 0.5}, - {0.25, 0.5}, - {0.375, 0.0}, - {0.5, 0.25}, - {0.375, 0.5}, - {0.25, 0.25} - }; - - REQUIRE(grid.elementNodes(1).isApprox(expected, NUMERICAL_ZERO)); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.elementNodes(grid.numElements()), std::out_of_range); - } - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test measure/area", "[monad]", Types) { - const TestType grid({2, 3}, {0.5, 1.5}); - - REQUIRE_THAT(grid.measure(), Catch::Matchers::WithinAbs(0.75, NUMERICAL_ZERO)); - REQUIRE_THAT(grid.area(), Catch::Matchers::WithinAbs(0.75, NUMERICAL_ZERO)); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test operator==", "[monad]", Types) { - const TestType grid1({2, 3}, {0.5, 1.5}); - const TestType grid2({2, 3}, {0.5, 1.5}); - - REQUIRE(grid1 == grid2); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid2d: Test operator!=", "[monad]", Types) { - const TestType grid1({2, 3}, {0.5, 1.5}); - - SECTION("Different resolution") { - const TestType grid2({3, 3}, {0.5, 1.5}); - const TestType grid3({2, 4}, {0.5, 1.5}); - - REQUIRE(grid1 != grid2); - REQUIRE(grid1 != grid3); - } - - SECTION("Different size") { - const TestType grid2({2, 3}, {0.6, 1.5}); - const TestType grid3({2, 3}, {0.5, 1.6}); - - REQUIRE(grid1 != grid2); - REQUIRE(grid1 != grid3); - } -} diff --git a/tests/grid/hex20_topology_test.cpp b/tests/grid/hex20_topology_test.cpp new file mode 100644 index 0000000..8bc4539 --- /dev/null +++ b/tests/grid/hex20_topology_test.cpp @@ -0,0 +1,35 @@ +#include +#include "monad/grid/hex20_topology.hpp" +#include "monad/detail/constants.hpp" + +using namespace monad; +using namespace monad::grid; + +TEST_CASE("monad::grid::Hex20Topology: test numNodes", "[monad]") { + REQUIRE(Hex20Topology::numNodes({2, 3, 4}) == 193); +} + +TEST_CASE("monad::grid::Hex20Topology: test numPeriodicNodes", "[monad]") { + REQUIRE(Hex20Topology::numPeriodicNodes({2, 3, 4}) == 96); +} + +TEST_CASE("monad::grid::Hex20Topology: test node", "[monad]") { + const Hex20Topology::Point expected(0.25, 0.0, 0.0); + const Hex20Topology::Point actual = Hex20Topology::node(1, {2, 3, 4}, {0.5, 1.5, 2.0}); + + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); +} + +TEST_CASE("monad::grid::Hex20Topology: test element", "[monad]") { + const Hex20Topology::ElementList expected{1, 2, 5, 4, 13, 14, 17, 16, 61, 102, 63, 101, 69, 111, 71, 110, 146, 147, 150, 149}; + const Hex20Topology::ElementList actual = Hex20Topology::element(1, {2, 3, 4}); + + REQUIRE(actual == expected); +} + +TEST_CASE("monad::grid::Hex20Topology: test periodicElement", "[monad]") { + const Hex20Topology::ElementList expected{1, 0, 2, 3, 7, 6, 8, 9, 25, 48, 27, 49, 31, 54, 33, 55, 73, 72, 74, 75}; + const Hex20Topology::ElementList actual = Hex20Topology::periodicElement(1, {2, 3, 4}); + + REQUIRE(actual == expected); +} diff --git a/tests/grid/hex8_topology_test.cpp b/tests/grid/hex8_topology_test.cpp new file mode 100644 index 0000000..1aa046b --- /dev/null +++ b/tests/grid/hex8_topology_test.cpp @@ -0,0 +1,35 @@ +#include +#include "monad/grid/hex8_topology.hpp" +#include "monad/detail/constants.hpp" + +using namespace monad; +using namespace monad::grid; + +TEST_CASE("monad::grid::Hex8Topology: test numNodes", "[monad]") { + REQUIRE(Hex8Topology::numNodes({2, 3, 4}) == 60); +} + +TEST_CASE("monad::grid::Hex8Topology: test numPeriodicNodes", "[monad]") { + REQUIRE(Hex8Topology::numPeriodicNodes({2, 3, 4}) == 24); +} + +TEST_CASE("monad::grid::Hex8Topology: test node", "[monad]") { + const Hex8Topology::Point expected(0.25, 0.0, 0.0); + const Hex8Topology::Point actual = Hex8Topology::node(1, {2, 3, 4}, {0.5, 1.5, 2.0}); + + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); +} + +TEST_CASE("monad::grid::Hex8Topology: test element", "[monad]") { + const Hex8Topology::ElementList expected{1, 2, 5, 4, 13, 14, 17, 16}; + const Hex8Topology::ElementList actual = Hex8Topology::element(1, {2, 3, 4}); + + REQUIRE(actual == expected); +} + +TEST_CASE("monad::grid::Hex8Topology: test periodicElement", "[monad]") { + const Hex8Topology::ElementList expected{1, 0, 2, 3, 7, 6, 8, 9}; + const Hex8Topology::ElementList actual = Hex8Topology::periodicElement(1, {2, 3, 4}); + + REQUIRE(actual == expected); +} diff --git a/tests/grid/quad4_topology_test.cpp b/tests/grid/quad4_topology_test.cpp new file mode 100644 index 0000000..1e103b4 --- /dev/null +++ b/tests/grid/quad4_topology_test.cpp @@ -0,0 +1,35 @@ +#include +#include "monad/grid/quad4_topology.hpp" +#include "monad/detail/constants.hpp" + +using namespace monad; +using namespace monad::grid; + +TEST_CASE("monad::grid::Quad4Topology: test numNodes", "[monad]") { + REQUIRE(Quad4Topology::numNodes({2, 3}) == 12); +} + +TEST_CASE("monad::grid::Quad4Topology: test numPeriodicNodes", "[monad]") { + REQUIRE(Quad4Topology::numPeriodicNodes({2, 3}) == 6); +} + +TEST_CASE("monad::grid::Quad4Topology: test node", "[monad]") { + const Quad4Topology::Point expected(0.25, 0.0); + const Quad4Topology::Point actual = Quad4Topology::node(1, {2, 3}, {0.5, 1.5}); + + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); +} + +TEST_CASE("monad::grid::Quad4Topology: test element", "[monad]") { + const Quad4Topology::ElementList expected{1, 2, 5, 4}; + const Quad4Topology::ElementList actual = Quad4Topology::element(1, {2, 3}); + + REQUIRE(actual == expected); +} + +TEST_CASE("monad::grid::Quad4Topology: test periodicElement", "[monad]") { + const Quad4Topology::ElementList expected{1, 0, 2, 3}; + const Quad4Topology::ElementList actual = Quad4Topology::periodicElement(1, {2, 3}); + + REQUIRE(actual == expected); +} diff --git a/tests/grid/quad8_topology_test.cpp b/tests/grid/quad8_topology_test.cpp new file mode 100644 index 0000000..1d13bc7 --- /dev/null +++ b/tests/grid/quad8_topology_test.cpp @@ -0,0 +1,35 @@ +#include +#include "monad/grid/quad8_topology.hpp" +#include "monad/detail/constants.hpp" + +using namespace monad; +using namespace monad::grid; + +TEST_CASE("monad::grid::Quad8Topology: test numNodes", "[monad]") { + REQUIRE(Quad8Topology::numNodes({2, 3}) == 29); +} + +TEST_CASE("monad::grid::Quad8Topology: test numPeriodicNodes", "[monad]") { + REQUIRE(Quad8Topology::numPeriodicNodes({2, 3}) == 18); +} + +TEST_CASE("monad::grid::Quad8Topology: test node", "[monad]") { + const Quad8Topology::Point expected(0.25, 0.0); + const Quad8Topology::Point actual = Quad8Topology::node(1, {2, 3}, {0.5, 1.5}); + + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); +} + +TEST_CASE("monad::grid::Quad8Topology: test element", "[monad]") { + const Quad8Topology::ElementList expected{1, 2, 5, 4, 13, 22, 15, 21}; + const Quad8Topology::ElementList actual = Quad8Topology::element(1, {2, 3}); + + REQUIRE(actual == expected); +} + +TEST_CASE("monad::grid::Quad8Topology: test periodicElement", "[monad]") { + const Quad8Topology::ElementList expected{1, 0, 2, 3, 7, 12, 9, 13}; + const Quad8Topology::ElementList actual = Quad8Topology::periodicElement(1, {2, 3}); + + REQUIRE(actual == expected); +} diff --git a/tests/grid/grid_3d_test.cpp b/tests/grid/structured_grid_test.cpp similarity index 55% rename from tests/grid/grid_3d_test.cpp rename to tests/grid/structured_grid_test.cpp index c0d3e27..e9b1ea4 100644 --- a/tests/grid/grid_3d_test.cpp +++ b/tests/grid/structured_grid_test.cpp @@ -1,137 +1,251 @@ #include #include -#include #include +#include #include #include -#include #include -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" +#include "monad/grid/structured_grid.hpp" +#include "monad/grid/quad4_topology.hpp" +#include "monad/grid/quad8_topology.hpp" +#include "monad/grid/hex8_topology.hpp" +#include "monad/grid/hex20_topology.hpp" #include "monad/detail/constants.hpp" -#include "test_common.hpp" using namespace monad; -using namespace monad::testing; +using namespace monad::grid; + +using Types = std::tuple, StructuredGrid, StructuredGrid, StructuredGrid>; + +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test initalization", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + + Resolution resolution; + resolution.fill(2); -using Types = std::tuple; + Size size; + size.fill(0.4); -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test initalization", "[monad]", Types) { SECTION("Invalid resolution") { - REQUIRE_THROWS_AS(TestType({0, 3, 4}, {0.5, 1.5, 2.0}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 0, 4}, {0.5, 1.5, 2.0}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3, 0}, {0.5, 1.5, 2.0}), std::invalid_argument); + for (std::size_t i = 0; i < TestType::Dim; ++i) { + Resolution resolutionInvalid = resolution; + resolutionInvalid[i] = 0; + + REQUIRE_THROWS_AS(TestType(resolutionInvalid, size), std::invalid_argument); + } } SECTION("Invalid size") { - REQUIRE_THROWS_AS(TestType({2, 3, 4}, {0.0, 1.5, 2.0}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3, 4}, {-0.5, 1.5, 2.0}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3, 4}, {0.5, 0.0, 2.0}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3, 4}, {0.5, -1.5, 2.0}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3, 4}, {0.5, 1.5, 0.0}), std::invalid_argument); - REQUIRE_THROWS_AS(TestType({2, 3, 4}, {0.5, 1.5, -2.0}), std::invalid_argument); + for (std::size_t i = 0; i < TestType::Dim; ++i) { + Size sizeInvalid = size; + sizeInvalid[i] = 0.0; + + REQUIRE_THROWS_AS(TestType(resolution, sizeInvalid), std::invalid_argument); + + sizeInvalid[i] = -1.0; + + REQUIRE_THROWS_AS(TestType(resolution, sizeInvalid), std::invalid_argument); + } } } -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test resolution", "[monad]", Types) { +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test resolution", "[monad]", Types) { using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; - const TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); + Resolution resolution; + resolution.fill(2); - const Resolution expected{2, 3, 4}; + Size size; + size.fill(0.4); - REQUIRE(grid.resolution() == expected); + const TestType grid(resolution, size); + + const Resolution actual = grid.resolution(); + + REQUIRE(actual == resolution); } -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test size", "[monad]", Types) { +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test size", "[monad]", Types) { + using Resolution = typename TestType::Resolution; using Size = typename TestType::Size; - const TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.4); - const Size expected{0.5, 1.5, 2.0}; + const TestType grid(resolution, size); - REQUIRE(grid.size() == expected); + const Size actual = grid.size(); + + REQUIRE(actual == size); } -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test densities", "[monad]", Types) { - using DensityList = typename TestType::DensityList; +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test numElements", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; - const TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); + Resolution resolution; + resolution.fill(2); - const DensityList expected(24, 0.0); + Size size; + size.fill(0.4); - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); + const TestType grid(resolution, size); + + const std::size_t actual = static_cast(std::pow(2.0, TestType::Dim)); + const std::size_t expected = grid.numElements(); + + REQUIRE(actual == expected); } -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test numElements", "[monad]", Types) { - const TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test numNodes", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + using Topology = typename TestType::Topology; + + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.4); - REQUIRE(grid.numElements() == 24); + const TestType grid(resolution, size); + + const std::size_t expected = Topology::numNodes(resolution); + const std::size_t actual = grid.numNodes(); + + REQUIRE(actual == expected); } -TEST_CASE("monad::Grid3d: Test numNodes", "[monad]") { - SECTION("Hex8Grid") { - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test numPeriodicNodes", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + using Topology = typename TestType::Topology; - REQUIRE(grid.numNodes() == 60); - } + Resolution resolution; + resolution.fill(2); - SECTION("Hex20Grid") { - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + Size size; + size.fill(0.4); - REQUIRE(grid.numNodes() == 193); - } + const TestType grid(resolution, size); + + const std::size_t expected = Topology::numPeriodicNodes(resolution); + const std::size_t actual = grid.numPeriodicNodes(); + + REQUIRE(actual == expected); } -TEST_CASE("monad::Grid3d: Test numPeriodicNodes", "[monad]") { - SECTION("Hex8Grid") { - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test node", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + using Topology = typename TestType::Topology; + using Point = typename TestType::Point; - REQUIRE(grid.numPeriodicNodes() == 24); - } + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.4); - SECTION("Hex20Grid") { - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + const TestType grid(resolution, size); - REQUIRE(grid.numPeriodicNodes() == 96); + SECTION("No errors") { + const Point expected = Topology::node(1, resolution, size); + const Point actual = grid.node(1); + + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); + } + + SECTION("Invalid index") { + REQUIRE_THROWS_AS(grid.node(grid.numNodes()), std::out_of_range); } } -TEST_CASE("monad::Grid3d: Test node", "[monad]") { - SECTION("Hex8Grid") { - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); +TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { + SECTION("StructuredGrid") { + using NodesList = typename StructuredGrid::NodesList; - SECTION("No errors") { - const Hex8Grid::Point expected(0.25, 0.0, 0.0); + const StructuredGrid grid({2, 3}, {0.5, 1.5}); - REQUIRE(grid.node(1).isApprox(expected, NUMERICAL_ZERO)); - } + const auto actual = grid.nodes(); - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.node(grid.numNodes()), std::out_of_range); + const NodesList expected { + {0.0, 0.0}, + {0.25, 0.0}, + {0.5, 0.0}, + {0.0, 0.5}, + {0.25, 0.5}, + {0.5, 0.5}, + {0.0, 1.0}, + {0.25, 1.0}, + {0.5, 1.0}, + {0.0, 1.5}, + {0.25, 1.5}, + {0.5, 1.5} + }; + + REQUIRE(actual.size() == expected.size()); + + for (std::size_t i = 0; i < actual.size(); ++i) { + REQUIRE(actual[i].isApprox(expected[i], NUMERICAL_ZERO)); } } - SECTION("Hex20Grid") { - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("StructuredGrid") { + using NodesList = typename StructuredGrid::NodesList; - SECTION("No errors") { - const Hex20Grid::Point expected(0.25, 0.0, 0.0); + const StructuredGrid grid({2, 3}, {0.5, 1.5}); - REQUIRE(grid.node(1).isApprox(expected, NUMERICAL_ZERO)); - } + const auto actual = grid.nodes(); - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.node(grid.numNodes()), std::out_of_range); + const NodesList expected { + {0.0, 0.0}, + {0.25, 0.0}, + {0.5, 0.0}, + {0.0, 0.5}, + {0.25, 0.5}, + {0.5, 0.5}, + {0.0, 1.0}, + {0.25, 1.0}, + {0.5, 1.0}, + {0.0, 1.5}, + {0.25, 1.5}, + {0.5, 1.5}, + {0.125, 0.0}, + {0.375, 0.0}, + {0.125, 0.5}, + {0.375, 0.5}, + {0.125, 1.0}, + {0.375, 1.0}, + {0.125, 1.5}, + {0.375, 1.5}, + {0.0, 0.25}, + {0.25, 0.25}, + {0.5, 0.25}, + {0.0, 0.75}, + {0.25, 0.75}, + {0.5, 0.75}, + {0.0, 1.25}, + {0.25, 1.25}, + {0.5, 1.25} + }; + + REQUIRE(actual.size() == expected.size()); + + for (std::size_t i = 0; i < actual.size(); ++i) { + REQUIRE(actual[i].isApprox(expected[i], NUMERICAL_ZERO)); } } -} -TEST_CASE("monad::Grid3d: Test nodes", "[monad]") { - SECTION("Hex8Grid") { - using NodesList = typename Hex8Grid::NodesList; + SECTION("StructuredGrid") { + using NodesList = typename StructuredGrid::NodesList; - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); const auto actual = grid.nodes(); @@ -205,10 +319,10 @@ TEST_CASE("monad::Grid3d: Test nodes", "[monad]") { } } - SECTION("Hex20Grid") { - using NodesList = typename Hex20Grid::NodesList; + SECTION("StructuredGrid") { + using NodesList = typename StructuredGrid::NodesList; - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); const auto actual = grid.nodes(); @@ -416,41 +530,67 @@ TEST_CASE("monad::Grid3d: Test nodes", "[monad]") { } } -TEST_CASE("monad::Grid3d: Test element", "[monad]") { - SECTION("Hex8Grid") { - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test element", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + using Topology = typename TestType::Topology; + using ElementList = typename TestType::ElementList; - SECTION("No errors") { - const Hex8Grid::ElementList expected{1, 2, 5, 4, 13, 14, 17, 16}; + Resolution resolution; + resolution.fill(2); - REQUIRE(grid.element(1) == expected); - } + Size size; + size.fill(0.4); - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.element(grid.numElements()), std::out_of_range); - } + const TestType grid(resolution, size); + + SECTION("No errors") { + const ElementList expected = Topology::element(1, resolution); + const ElementList actual = grid.element(1); + + REQUIRE(actual == expected); } - SECTION("Hex20Grid") { - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Invalid index") { + REQUIRE_THROWS_AS(grid.element(grid.numElements()), std::out_of_range); + } +} - SECTION("No errors") { - const Hex20Grid::ElementList expected{1, 2, 5, 4, 13, 14, 17, 16, 61, 102, 63, 101, 69, 111, 71, 110, 146, 147, 150, 149}; +TEST_CASE("monad::grid::StructuredGrid: Test elements", "[monad]") { + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3}, {0.5, 1.5}); + + const StructuredGrid::ElementsList expected { + {0, 1, 4, 3}, + {1, 2, 5, 4}, + {3, 4, 7, 6}, + {4, 5, 8, 7}, + {6, 7, 10, 9}, + {7, 8, 11, 10} + }; - REQUIRE(grid.element(1) == expected); - } + REQUIRE(grid.elements() == expected); + } - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.element(grid.numElements()), std::out_of_range); - } + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3}, {0.5, 1.5}); + + const StructuredGrid::ElementsList expected { + {0, 1, 4, 3, 12, 21, 14, 20}, + {1, 2, 5, 4, 13, 22, 15, 21}, + {3, 4, 7, 6, 14, 24, 16, 23}, + {4, 5, 8, 7, 15, 25, 17, 24}, + {6, 7, 10, 9, 16, 27, 18, 26}, + {7, 8, 11, 10, 17, 28, 19, 27} + }; + + REQUIRE(grid.elements() == expected); } -} -TEST_CASE("monad::Grid3d: Test elements", "[monad]") { - SECTION("Hex8Grid") { - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); - const Hex8Grid::ElementsList expected { + const StructuredGrid::ElementsList expected { {0, 1, 4, 3, 12, 13, 16, 15}, {1, 2, 5, 4, 13, 14, 17, 16}, {3, 4, 7, 6, 15, 16, 19, 18}, @@ -480,10 +620,10 @@ TEST_CASE("monad::Grid3d: Test elements", "[monad]") { REQUIRE(grid.elements() == expected); } - SECTION("Hex20Grid") { - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); - const Hex20Grid::ElementsList expected { + const StructuredGrid::ElementsList expected { {0, 1, 4, 3, 12, 13, 16, 15, 60, 101, 62, 100, 68, 110, 70, 109, 145, 146, 149, 148}, {1, 2, 5, 4, 13, 14, 17, 16, 61, 102, 63, 101, 69, 111, 71, 110, 146, 147, 150, 149}, {3, 4, 7, 6, 15, 16, 19, 18, 62, 104, 64, 103, 70, 113, 72, 112, 148, 149, 152, 151}, @@ -514,41 +654,67 @@ TEST_CASE("monad::Grid3d: Test elements", "[monad]") { } } -TEST_CASE("monad::Grid3d: Test periodicElement", "[monad]") { - SECTION("Hex8Grid") { - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test periodicElement", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + using Topology = typename TestType::Topology; + using ElementList = typename TestType::ElementList; + + Resolution resolution; + resolution.fill(2); - SECTION("No errors") { - const Hex8Grid::ElementList expected{1, 0, 2, 3, 7, 6, 8, 9}; + Size size; + size.fill(0.4); - REQUIRE(grid.periodicElement(1) == expected); - } + const TestType grid(resolution, size); - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.periodicElement(grid.numElements()), std::out_of_range); - } + SECTION("No errors") { + const ElementList expected = Topology::periodicElement(1, resolution); + const ElementList actual = grid.periodicElement(1); + + REQUIRE(actual == expected); } - SECTION("Hex20Grid") { - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Invalid index") { + REQUIRE_THROWS_AS(grid.element(grid.numElements()), std::out_of_range); + } +} - SECTION("No errors") { - const Hex20Grid::ElementList expected{1, 0, 2, 3, 7, 6, 8, 9, 25, 48, 27, 49, 31, 54, 33, 55, 73, 72, 74, 75}; +TEST_CASE("monad::grid::StructuredGrid: Test periodicElements", "[monad]") { + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3}, {0.5, 1.5}); + + const StructuredGrid::ElementsList expected { + {0, 1, 3, 2}, + {1, 0, 2, 3}, + {2, 3, 5, 4}, + {3, 2, 4, 5}, + {4, 5, 1, 0}, + {5, 4, 0, 1} + }; - REQUIRE(grid.periodicElement(1) == expected); - } + REQUIRE(grid.periodicElements() == expected); + } - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.periodicElement(grid.numElements()), std::out_of_range); - } + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3}, {0.5, 1.5}); + + const StructuredGrid::ElementsList expected { + {0, 1, 3, 2, 6, 13, 8, 12}, + {1, 0, 2, 3, 7, 12, 9, 13}, + {2, 3, 5, 4, 8, 15, 10, 14}, + {3, 2, 4, 5, 9, 14, 11, 15}, + {4, 5, 1, 0, 10, 17, 6, 16}, + {5, 4, 0, 1, 11, 16, 7, 17} + }; + + REQUIRE(grid.periodicElements() == expected); } -} -TEST_CASE("monad::Grid3d: Test periodicElements", "[monad]") { - SECTION("Hex8Grid") { - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); - const Hex8Grid::ElementsList expected { + const StructuredGrid::ElementsList expected { {0, 1, 3, 2, 6, 7, 9, 8}, {1, 0, 2, 3, 7, 6, 8, 9}, {2, 3, 5, 4, 8, 9, 11, 10}, @@ -578,10 +744,10 @@ TEST_CASE("monad::Grid3d: Test periodicElements", "[monad]") { REQUIRE(grid.periodicElements() == expected); } - SECTION("Hex20Grid") { - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); - const Hex20Grid::ElementsList expected { + const StructuredGrid::ElementsList expected { {0, 1, 3, 2, 6, 7, 9, 8, 24, 49, 26, 48, 30, 55, 32, 54, 72, 73, 75, 74}, {1, 0, 2, 3, 7, 6, 8, 9, 25, 48, 27, 49, 31, 54, 33, 55, 73, 72, 74, 75}, {2, 3, 5, 4, 8, 9, 11, 10, 26, 51, 28, 50, 32, 57, 34, 56, 74, 75, 77, 76}, @@ -612,189 +778,58 @@ TEST_CASE("monad::Grid3d: Test periodicElements", "[monad]") { } } -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test getDensity/setDensity", "[monad]", Types) { - TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); - - SECTION("No errors") { - REQUIRE_THAT(grid.getDensity(1), Catch::Matchers::WithinAbs(0.0, NUMERICAL_ZERO)); - - grid.setDensity(1, 0.1); - - REQUIRE_THAT(grid.getDensity(1), Catch::Matchers::WithinAbs(0.1, NUMERICAL_ZERO)); - } - - SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.getDensity(grid.numElements()), std::out_of_range); - - REQUIRE_THROWS_AS(grid.setDensity(grid.numElements(), 0.1), std::out_of_range); - } - - SECTION("Invalid density") { - REQUIRE_THROWS_AS(grid.setDensity(1, -0.1), std::invalid_argument); - REQUIRE_THROWS_AS(grid.setDensity(1, 1.1), std::invalid_argument); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test setDensities", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); - - SECTION("No errors") { - const DensityList densities(grid.numElements(), 0.5); - - grid.setDensities(densities); - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(densities).margin(NUMERICAL_ZERO)); - } - - SECTION("Invalid size") { - const DensityList densities(grid.numElements() + 1, 0.5); - - REQUIRE_THROWS_AS(grid.setDensities(densities), std::invalid_argument); - } - - SECTION("Invalid density") { - DensityList densities(grid.numElements(), 0.5); - densities[1] *= -1; - - REQUIRE_THROWS_AS(grid.setDensities(densities), std::invalid_argument); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test setDensitiesConstant", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); +TEST_CASE("monad::grid::StructuredGrid: Test elementNodes", "[monad]") { + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3}, {0.5, 1.5}); - SECTION("No errors") { - grid.setDensitiesConstant(0.5); + SECTION("No errors") { + const StructuredGrid::NodesMatrix expected { + {0.25, 0.0}, + {0.5, 0.0}, + {0.5, 0.5}, + {0.25, 0.5} + }; - const DensityList expected(grid.numElements(), 0.5); + const auto actual = grid.elementNodes(1); - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); - } + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); + } - SECTION("Invalid density") { - REQUIRE_THROWS_AS(grid.setDensitiesConstant(-0.1), std::invalid_argument); - REQUIRE_THROWS_AS(grid.setDensitiesConstant(1.1), std::invalid_argument); + SECTION("Invalid index") { + REQUIRE_THROWS_AS(grid.elementNodes(grid.numElements()), std::out_of_range); + } } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test setDensitiesZeros", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); - - grid.setDensitiesZeros(); - - const DensityList expected(grid.numElements(), 0.0); - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test setDensitiesOnes", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3}, {0.5, 1.5}); - grid.setDensitiesOnes(); - - const DensityList expected(grid.numElements(), 1.0); - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test setDensitiesRandom", "[monad]", Types) { - using DensityList = typename TestType::DensityList; - - TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); - - grid.setDensitiesRandom(1234); - - const DensityList expected { - 0.49766366630595177, - 0.81783844288953345, - 0.61211189358442286, - 0.77135991905475021, - 0.86066977348643747, - 0.15063696570521984, - 0.19851876010104652, - 0.8151629340839277, - 0.15881535340057207, - 0.11613783027882053, - 0.01290753305838846, - 0.48683344491314973, - 0.33101542682467566, - 0.80263957374559314, - 0.09825193844042972, - 0.05599344953922467, - 0.44266265526020054, - 0.02214390901237923, - 0.29072854825594158, - 0.24639444143572856, - 0.73828676607573551, - 0.88922613337994483, - 0.98713930325475108, - 0.1174433832915556 - }; - - REQUIRE_THAT(grid.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test setDensitiesFunction", "[monad]", Types) { - using Point = typename TestType::Point; - - TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); - - SECTION("No errors") { - // 0.1x+0.2y+0.3z - auto f = [](const Point &p) -> double { - return 0.1 * p(0) + 0.2 * p(1) + 0.3 * p(2); - }; - - grid.setDensitiesFunction(f); - - // The average of a linear function over a convex region equals its value at the centroid - const auto nodes = grid.elementNodes(1); - const Point centroid = nodes.colwise().mean(); - const double expected = f(centroid); - - REQUIRE_THAT(grid.getDensity(1), Catch::Matchers::WithinAbs(expected, NUMERICAL_ZERO)); - } + SECTION("No errors") { + const StructuredGrid::NodesMatrix expected { + {0.25, 0.0}, + {0.5, 0.0}, + {0.5, 0.5}, + {0.25, 0.5}, + {0.375, 0.0}, + {0.5, 0.25}, + {0.375, 0.5}, + {0.25, 0.25} + }; - SECTION("Bad function") { - // exp(x+y+z) - auto f = [](const Point &point) -> double { - const double x = point(0); - const double y = point(1); - const double z = point(2); + const auto actual = grid.elementNodes(1); - return std::exp(x + y + z); - }; + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); + } - REQUIRE_THROWS_AS(grid.setDensitiesFunction(f), std::invalid_argument); + SECTION("Invalid index") { + REQUIRE_THROWS_AS(grid.elementNodes(grid.numElements()), std::out_of_range); + } } -} - -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test translate", "[monad]", Types) { - TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); - // Index=1 → Point=(1,0,0) - grid.setDensity(1, 0.5); - - // Point=(0,2,3) - grid.translate({1, 2, 3}); - - REQUIRE_THAT(grid.getDensity(22), Catch::Matchers::WithinAbs(0.5, NUMERICAL_ZERO)); -} - -TEST_CASE("monad::Grid3d: Test elementNodes", "[monad]") { - SECTION("Hex8Grid") { - const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); SECTION("No errors") { - const Hex8Grid::NodesMatrix expected { + const StructuredGrid::NodesMatrix expected { {0.25, 0.0, 0.0}, {0.5, 0.0, 0.0}, {0.5, 0.5, 0.0}, @@ -805,7 +840,9 @@ TEST_CASE("monad::Grid3d: Test elementNodes", "[monad]") { {0.25, 0.5, 0.5} }; - REQUIRE(grid.elementNodes(1).isApprox(expected, NUMERICAL_ZERO)); + const auto actual = grid.elementNodes(1); + + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); } SECTION("Invalid index") { @@ -813,11 +850,11 @@ TEST_CASE("monad::Grid3d: Test elementNodes", "[monad]") { } } - SECTION("Hex20Grid") { - const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("StructuredGrid") { + const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); SECTION("No errors") { - const Hex20Grid::NodesMatrix expected { + const StructuredGrid::NodesMatrix expected { {0.25, 0.0, 0.0}, {0.5, 0.0, 0.0}, {0.5, 0.5, 0.0}, @@ -840,7 +877,9 @@ TEST_CASE("monad::Grid3d: Test elementNodes", "[monad]") { {0.25, 0.5, 0.25} }; - REQUIRE(grid.elementNodes(1).isApprox(expected, NUMERICAL_ZERO)); + const auto actual = grid.elementNodes(1); + + REQUIRE(actual.isApprox(expected, NUMERICAL_ZERO)); } SECTION("Invalid index") { @@ -849,40 +888,78 @@ TEST_CASE("monad::Grid3d: Test elementNodes", "[monad]") { } } -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test measure/volume", "[monad]", Types) { - const TestType grid({2, 3, 4}, {0.5, 1.5, 2.0}); +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test measure/area/volume", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.4); - REQUIRE_THAT(grid.measure(), Catch::Matchers::WithinAbs(1.5, NUMERICAL_ZERO)); - REQUIRE_THAT(grid.volume(), Catch::Matchers::WithinAbs(1.5, NUMERICAL_ZERO)); + const TestType grid(resolution, size); + + const double expected = std::pow(0.4, TestType::Dim); + const double actual = grid.measure(); + + REQUIRE_THAT(actual, Catch::Matchers::WithinAbs(expected, NUMERICAL_ZERO)); + + if constexpr (TestType::Dim == 2) { + REQUIRE_THAT(grid.area(), Catch::Matchers::WithinAbs(expected, NUMERICAL_ZERO)); + } + else { + REQUIRE_THAT(grid.volume(), Catch::Matchers::WithinAbs(expected, NUMERICAL_ZERO)); + } } -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test operator==", "[monad]", Types) { - const TestType grid1({2, 3, 4}, {0.5, 1.5, 2.0}); - const TestType grid2({2, 3, 4}, {0.5, 1.5, 2.0}); +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test operator==", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.4); + + const TestType grid1(resolution, size); + const TestType grid2(resolution, size); REQUIRE(grid1 == grid2); } -TEMPLATE_LIST_TEST_CASE("monad::Grid3d: Test operator!=", "[monad]", Types) { - const TestType grid1({2, 3, 4}, {0.5, 1.5, 2.0}); +TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test operator!=", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.4); + + const TestType grid1(resolution, size); SECTION("Different resolution") { - const TestType grid2({3, 3, 4}, {0.5, 1.5, 2.0}); - const TestType grid3({2, 4, 4}, {0.5, 1.5, 2.0}); - const TestType grid4({2, 3, 5}, {0.5, 1.5, 2.0}); + for (std::size_t i = 0; i < TestType::Dim; ++i) { + Resolution resolutionDifferent = resolution; + resolutionDifferent[i] += 1; + + const TestType grid2(resolutionDifferent, size); - REQUIRE(grid1 != grid2); - REQUIRE(grid1 != grid3); - REQUIRE(grid1 != grid4); + REQUIRE(grid1 != grid2); + } } SECTION("Different size") { - const TestType grid2({2, 3, 4}, {0.6, 1.5, 2.0}); - const TestType grid3({2, 3, 4}, {0.5, 1.6, 2.0}); - const TestType grid4({2, 3, 4}, {0.5, 1.5, 2.1}); + for (std::size_t i = 0; i < TestType::Dim; ++i) { + Size sizeDifferent = size; + sizeDifferent[i] += 0.1; + + const TestType grid2(resolution, sizeDifferent); - REQUIRE(grid1 != grid2); - REQUIRE(grid1 != grid3); - REQUIRE(grid1 != grid4); + REQUIRE(grid1 != grid2); + } } } From 853d96f0c62ec282be971b84a7b95a4463addfbf Mon Sep 17 00:00:00 2001 From: Sam Silverman Date: Tue, 17 Mar 2026 23:32:15 -0400 Subject: [PATCH 3/8] Major redesign of API and docstrings --- apps/2_3DGrid/2_3DGrid.cpp | 6 +- apps/3_DensityFunction/3_DensityFunction.cpp | 4 +- .../4_LinearElasticity/4_LinearElasticity.cpp | 14 +- .../5_LinearDielectric/5_LinearDielectric.cpp | 16 +- .../6_LinearPiezoelectricity.cpp | 25 +- include/monad/detail/constants.hpp | 2 +- include/monad/detail/eigen_utils.hpp | 36 +- include/monad/detail/mean.hpp | 34 +- include/monad/fem/element/element_base.hpp | 58 +-- include/monad/fem/element/hex20.hpp | 12 +- include/monad/fem/element/hex8.hpp | 12 +- include/monad/fem/element/quad4.hpp | 12 +- include/monad/fem/element/quad8.hpp | 10 +- .../mechanical/linear_elastic_kernel.hpp | 94 ++-- .../linear_elastic_kernel_traits.hpp | 113 ----- .../linear_piezoelectric_kernel.hpp | 71 ++- .../scalar/linear_scalar_diffusive_kernel.hpp | 61 +-- include/monad/fem/operator/dof_map.hpp | 140 ++++++ .../fem/operator/matrix_free_operator.hpp | 301 ++++++------- .../mechanical/linear_elastic_dof_traits.hpp | 132 ++++++ ...ar_elastic_matrix_free_operator_traits.hpp | 141 ------ .../linear_piezoelectric_dof_traits.hpp | 159 +++++++ ...zoelectric_matrix_free_operator_traits.hpp | 178 -------- .../linear_scalar_diffusive_dof_traits.hpp | 107 +++++ ..._diffusive_matrix_free_operator_traits.hpp | 123 ----- include/monad/field/density_field.hpp | 271 +++++++++++ include/monad/field/field_aliases.hpp | 13 + .../field/make_density_field_from_csv.hpp | 26 ++ .../make_density_field_from_function.hpp | 63 +++ include/monad/grid/grid_2d_base.hpp | 154 ------- include/monad/grid/grid_3d_base.hpp | 73 --- include/monad/grid/grid_aliases.hpp | 139 ++++++ include/monad/grid/grid_base.hpp | 424 ------------------ include/monad/grid/hex20_grid.hpp | 167 ------- include/monad/grid/hex20_topology.hpp | 229 ++-------- include/monad/grid/hex8_grid.hpp | 167 ------- include/monad/grid/hex8_topology.hpp | 116 ++--- include/monad/grid/quad4_grid.hpp | 117 ----- include/monad/grid/quad4_topology.hpp | 81 +--- include/monad/grid/quad8_grid.hpp | 117 ----- include/monad/grid/quad8_topology.hpp | 161 ++----- include/monad/grid/structured_grid.hpp | 41 +- .../monad/integration/integrate_matrix.hpp | 12 +- .../monad/integration/integrate_scalar.hpp | 12 +- include/monad/integration/quadrature_rule.hpp | 20 +- .../monad/io/gmsh/write_gmsh_densities.hpp | 19 +- include/monad/io/gmsh/write_gmsh_elements.hpp | 6 +- include/monad/io/gmsh/write_gmsh_header.hpp | 2 +- include/monad/io/gmsh/write_gmsh_nodes.hpp | 6 +- include/monad/io/save_grid.hpp | 17 +- .../monad/io/save_grid_and_density_field.hpp | 55 +++ ...ield.hpp => save_grid_and_nodal_field.hpp} | 25 +- include/monad/material/bounds.hpp | 42 ++ include/monad/material/material_aliases.hpp | 242 ++++++++++ .../mechanical/linear_elastic_material.hpp | 142 +++--- .../mechanical/linear_elastic_material_2d.hpp | 21 +- .../mechanical/linear_elastic_material_3d.hpp | 13 +- .../linear_piezoelectric_material.hpp | 313 ++++++------- .../transport/linear_transport_material.hpp | 155 +++---- .../linear_transport_material_aliases.hpp | 259 ----------- include/monad/monad.hpp | 21 +- .../monad/solver/identity_preconditioner.hpp | 23 + .../jacobi_preconditioner.hpp | 58 ++- .../mechanical/linear_elastic_physics.hpp | 154 ------- .../linear_elastic_physics_traits.hpp | 144 ------ .../mechanical/linear_elastic_policy.hpp | 199 ++++++++ .../mechanical/linear_elastic_solver.hpp | 27 -- .../linear_piezoelectric_physics.hpp | 217 --------- .../linear_piezoelectric_policy.hpp | 227 ++++++++++ .../linear_piezoelectric_solver.hpp | 23 - include/monad/solver/periodic_cell_solver.hpp | 335 +++++++------- .../linear_scalar_diffusive_physics.hpp | 156 ------- .../scalar/linear_scalar_diffusive_policy.hpp | 159 +++++++ .../scalar/linear_scalar_diffusive_solver.hpp | 22 - ...linear_scalar_diffusive_solver_aliases.hpp | 111 ----- include/monad/solver/solver_aliases.hpp | 74 +++ include/monad/solver/solver_options.hpp | 25 +- src/CMakeLists.txt | 9 +- src/field/make_density_field_from_csv.cpp | 82 ++++ src/grid/hex20_grid.cpp | 262 ----------- src/grid/hex20_topology.cpp | 206 +++++++++ src/grid/hex8_grid.cpp | 121 ----- src/grid/hex8_topology.cpp | 90 ++++ src/grid/quad4_grid.cpp | 89 ---- src/grid/quad4_topology.cpp | 67 +++ src/grid/quad8_grid.cpp | 165 ------- src/grid/quad8_topology.cpp | 134 ++++++ src/solver/solver_options.cpp | 4 - tests/CMakeLists.txt | 33 ++ tests/detail/eigen_utils_test.cpp | 13 +- tests/fem/element/element_test.cpp | 4 +- .../linear_elastic_kernel_2d_test.cpp | 132 ------ ...est.cpp => linear_elastic_kernel_test.cpp} | 131 +++++- .../linear_piezoelectric_kernel_2d_test.cpp | 98 ---- ...p => linear_piezoelectric_kernel_test.cpp} | 89 +++- .../linear_scalar_diffusion_kernel_test.cpp | 1 + ...cpp => linear_elastic_dof_traits_test.cpp} | 22 +- ... linear_piezoelectric_dof_traits_test.cpp} | 26 +- ...near_scalar_diffusion_dof_traits_test.cpp} | 22 +- tests/field/csv/bad1.csv | 3 + tests/field/csv/bad2.csv | 3 + tests/field/csv/bad3.csv | 3 + tests/field/csv/bad4.csv | 4 + tests/field/csv/bad5.csv | 0 tests/field/csv/bad6.csv | 3 + tests/field/csv/good.csv | 3 + tests/field/density_field_test.cpp | 282 ++++++++++++ .../make_density_field_from_csv_test.cpp | 66 +++ .../make_density_field_from_function_test.cpp | 49 ++ tests/grid/structured_grid_test.cpp | 161 +++---- tests/io/gmsh/write_gmsh_densities_test.cpp | 19 +- tests/io/gmsh/write_gmsh_elements_test.cpp | 5 +- ...st.cpp => write_gmsh_nodal_field_test.cpp} | 0 tests/io/gmsh/write_gmsh_nodes_test.cpp | 5 +- tests/io/save_grid_and_density_field_test.cpp | 55 +++ tests/io/save_grid_and_field_test.cpp | 63 --- tests/io/save_grid_and_nodal_field_test.cpp | 81 ++++ tests/io/save_grid_test.cpp | 12 +- tests/material/bounds_test.cpp | 44 ++ .../linear_elastic_material_2d_test.cpp | 29 -- .../linear_elastic_material_3d_test.cpp | 29 -- .../linear_piezoelectric_material_2d_test.cpp | 3 +- .../linear_piezoelectric_material_3d_test.cpp | 3 +- .../linear_transport_material_test.cpp | 30 +- .../mechanical/linear_elastic_solver_test.cpp | 86 ++-- .../linear_piezoelectric_solver_test.cpp | 140 +++--- .../linear_scalar_diffusion_solver_test.cpp | 96 ++-- tests/solver/solver_options_test.cpp | 12 +- 128 files changed, 4882 insertions(+), 5763 deletions(-) delete mode 100644 include/monad/fem/kernel/mechanical/linear_elastic_kernel_traits.hpp create mode 100644 include/monad/fem/operator/dof_map.hpp create mode 100644 include/monad/fem/operator/mechanical/linear_elastic_dof_traits.hpp delete mode 100644 include/monad/fem/operator/mechanical/linear_elastic_matrix_free_operator_traits.hpp create mode 100644 include/monad/fem/operator/multiphysics/linear_piezoelectric_dof_traits.hpp delete mode 100644 include/monad/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_traits.hpp create mode 100644 include/monad/fem/operator/scalar/linear_scalar_diffusive_dof_traits.hpp delete mode 100644 include/monad/fem/operator/scalar/linear_scalar_diffusive_matrix_free_operator_traits.hpp create mode 100644 include/monad/field/density_field.hpp create mode 100644 include/monad/field/field_aliases.hpp create mode 100644 include/monad/field/make_density_field_from_csv.hpp create mode 100644 include/monad/field/make_density_field_from_function.hpp delete mode 100644 include/monad/grid/grid_2d_base.hpp delete mode 100644 include/monad/grid/grid_3d_base.hpp create mode 100644 include/monad/grid/grid_aliases.hpp delete mode 100644 include/monad/grid/grid_base.hpp delete mode 100644 include/monad/grid/hex20_grid.hpp delete mode 100644 include/monad/grid/hex8_grid.hpp delete mode 100644 include/monad/grid/quad4_grid.hpp delete mode 100644 include/monad/grid/quad8_grid.hpp create mode 100644 include/monad/io/save_grid_and_density_field.hpp rename include/monad/io/{save_grid_and_field.hpp => save_grid_and_nodal_field.hpp} (73%) create mode 100644 include/monad/material/bounds.hpp create mode 100644 include/monad/material/material_aliases.hpp delete mode 100644 include/monad/material/transport/linear_transport_material_aliases.hpp create mode 100644 include/monad/solver/identity_preconditioner.hpp rename include/monad/{fem/operator => solver}/jacobi_preconditioner.hpp (52%) delete mode 100644 include/monad/solver/mechanical/linear_elastic_physics.hpp delete mode 100644 include/monad/solver/mechanical/linear_elastic_physics_traits.hpp create mode 100644 include/monad/solver/mechanical/linear_elastic_policy.hpp delete mode 100644 include/monad/solver/mechanical/linear_elastic_solver.hpp delete mode 100644 include/monad/solver/multiphysics/linear_piezoelectric_physics.hpp create mode 100644 include/monad/solver/multiphysics/linear_piezoelectric_policy.hpp delete mode 100644 include/monad/solver/multiphysics/linear_piezoelectric_solver.hpp delete mode 100644 include/monad/solver/scalar/linear_scalar_diffusive_physics.hpp create mode 100644 include/monad/solver/scalar/linear_scalar_diffusive_policy.hpp delete mode 100644 include/monad/solver/scalar/linear_scalar_diffusive_solver.hpp delete mode 100644 include/monad/solver/scalar/linear_scalar_diffusive_solver_aliases.hpp create mode 100644 include/monad/solver/solver_aliases.hpp create mode 100644 src/field/make_density_field_from_csv.cpp delete mode 100644 src/grid/hex20_grid.cpp create mode 100644 src/grid/hex20_topology.cpp delete mode 100644 src/grid/hex8_grid.cpp create mode 100644 src/grid/hex8_topology.cpp delete mode 100644 src/grid/quad4_grid.cpp create mode 100644 src/grid/quad4_topology.cpp delete mode 100644 src/grid/quad8_grid.cpp create mode 100644 src/grid/quad8_topology.cpp delete mode 100644 tests/fem/kernel/mechanical/linear_elastic_kernel_2d_test.cpp rename tests/fem/kernel/mechanical/{linear_elastic_kernel_3d_test.cpp => linear_elastic_kernel_test.cpp} (56%) delete mode 100644 tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_2d_test.cpp rename tests/fem/kernel/multiphysics/{linear_piezoelectric_kernel_3d_test.cpp => linear_piezoelectric_kernel_test.cpp} (57%) rename tests/fem/operator/mechanical/{linear_elastic_matrix_free_operator_test.cpp => linear_elastic_dof_traits_test.cpp} (64%) rename tests/fem/operator/multiphysics/{linear_piezoelectric_matrix_free_operator_test.cpp => linear_piezoelectric_dof_traits_test.cpp} (70%) rename tests/fem/operator/scalar/{linear_scalar_diffusion_matrix_free_operator_traits_test.cpp => linear_scalar_diffusion_dof_traits_test.cpp} (71%) create mode 100644 tests/field/csv/bad1.csv create mode 100644 tests/field/csv/bad2.csv create mode 100644 tests/field/csv/bad3.csv create mode 100644 tests/field/csv/bad4.csv create mode 100644 tests/field/csv/bad5.csv create mode 100644 tests/field/csv/bad6.csv create mode 100644 tests/field/csv/good.csv create mode 100644 tests/field/density_field_test.cpp create mode 100644 tests/field/make_density_field_from_csv_test.cpp create mode 100644 tests/field/make_density_field_from_function_test.cpp rename tests/io/gmsh/{write_gmsh_nodal_data_test.cpp => write_gmsh_nodal_field_test.cpp} (100%) create mode 100644 tests/io/save_grid_and_density_field_test.cpp delete mode 100644 tests/io/save_grid_and_field_test.cpp create mode 100644 tests/io/save_grid_and_nodal_field_test.cpp create mode 100644 tests/material/bounds_test.cpp diff --git a/apps/2_3DGrid/2_3DGrid.cpp b/apps/2_3DGrid/2_3DGrid.cpp index 8b69b90..7197e9c 100644 --- a/apps/2_3DGrid/2_3DGrid.cpp +++ b/apps/2_3DGrid/2_3DGrid.cpp @@ -95,11 +95,13 @@ int main(int argc, char* argv[]) { } monad::Hex8Grid grid({nx, ny, nz}, {lx, ly, lz}); - grid.setDensitiesRandom(seed); + monad::DensityField3d densityField({nx, ny, nz}); + densityField.setRandom(static_cast(seed)); + const auto file = std::filesystem::path(__FILE__).parent_path() / "output.msh"; - monad::saveGrid(grid, file.string(), true); + monad::saveGridAndDensityField(grid, densityField, file.string()); std::cout << "Saved to " + file.string() << std::endl; diff --git a/apps/3_DensityFunction/3_DensityFunction.cpp b/apps/3_DensityFunction/3_DensityFunction.cpp index 7c5c897..6f2a0dd 100644 --- a/apps/3_DensityFunction/3_DensityFunction.cpp +++ b/apps/3_DensityFunction/3_DensityFunction.cpp @@ -41,11 +41,11 @@ int main() { return (xComponent + yComponent + zComponent) / 3; }; - grid.setDensitiesFunction(f); + const auto densityField = monad::makeDensityFieldFromFunction(grid, f); const auto file = std::filesystem::path(__FILE__).parent_path() / "output.msh"; - monad::saveGrid(grid, file.string(), true); + monad::saveGridAndDensityField(grid, densityField, file.string()); std::cout << "Saved to " + file.string() << std::endl; diff --git a/apps/4_LinearElasticity/4_LinearElasticity.cpp b/apps/4_LinearElasticity/4_LinearElasticity.cpp index 11017aa..42a8f50 100644 --- a/apps/4_LinearElasticity/4_LinearElasticity.cpp +++ b/apps/4_LinearElasticity/4_LinearElasticity.cpp @@ -70,32 +70,32 @@ int main(int argc, char* argv[]) { const auto folder = std::filesystem::path(__FILE__).parent_path(); const auto csvFile = folder / "data.csv"; - grid.setDensitiesFile(csvFile.string()); + const auto densityField = monad::makeDensityFieldFromCsv(csvFile); monad::SolverOptions options; options.fields = monad::FieldSave::All; - const monad::LinearElasticSolver solver(grid, material); + const monad::LinearElasticSolver solver; - const auto results = solver.solve(options); + const auto results = solver.solve(grid, densityField, material, options); std::cout << "---Homogenized stiffness tensor---\n" << results.CBar << std::endl; auto file = folder / "density.msh"; - monad::saveGrid(grid, file.string(), true); + monad::saveGridAndDensityField(grid, densityField, file.string()); file = folder / "uMacro.msh"; - monad::saveGridAndField(grid, results.uMacro[0], file.string(), "Macro displacement"); + monad::saveGridAndNodalField(grid, results.uMacro[0], file.string(), "Macro displacement"); file = folder / "uMicro.msh"; - monad::saveGridAndField(grid, results.uMicro[0], file.string(), "Micro displacement"); + monad::saveGridAndNodalField(grid, results.uMicro[0], file.string(), "Micro displacement"); file = folder / "u.msh"; - monad::saveGridAndField(grid, results.u[0], file.string(), "Displacement"); + monad::saveGridAndNodalField(grid, results.u[0], file.string(), "Displacement"); std::cout << "Saved to " + file.string() << std::endl; diff --git a/apps/5_LinearDielectric/5_LinearDielectric.cpp b/apps/5_LinearDielectric/5_LinearDielectric.cpp index 5629182..d7cd52e 100644 --- a/apps/5_LinearDielectric/5_LinearDielectric.cpp +++ b/apps/5_LinearDielectric/5_LinearDielectric.cpp @@ -60,37 +60,37 @@ int main(int argc, char* argv[]) { const auto folder = std::filesystem::path(__FILE__).parent_path(); const auto csvFile = folder / "data.csv"; - grid.setDensitiesFile(csvFile.string()); + const auto densityField = monad::makeDensityFieldFromCsv(csvFile); monad::SolverOptions options; options.fields = monad::FieldSave::All; - const monad::LinearDielectricSolver solver(grid, material); + const monad::LinearDielectricSolver solver; // Results follow the generic transport naming: - // results.KBar → ε̄ + // results.KBar → ϵ̄ // results.phiMacro → φ̄ // results.phiMicro → φ̃ // results.phi → φ - const auto results = solver.solve(options); + const auto results = solver.solve(grid, densityField, material, options); std::cout << "---Homogenized permittivity tensor---\n" << results.KBar << std::endl; auto file = folder / "density.msh"; - monad::saveGrid(grid, file.string(), true); + monad::saveGridAndDensityField(grid, densityField, file.string()); file = folder / "phiMacro.msh"; - monad::saveGridAndField(grid, results.phiMacro[0], file.string(), "Macro electric potential"); + monad::saveGridAndNodalField(grid, results.phiMacro[0], file.string(), "Macro electric potential"); file = folder / "phiMicro.msh"; - monad::saveGridAndField(grid, results.phiMicro[0], file.string(), "Micro electric potential"); + monad::saveGridAndNodalField(grid, results.phiMicro[0], file.string(), "Micro electric potential"); file = folder / "phi.msh"; - monad::saveGridAndField(grid, results.phi[0], file.string(), "Electric potential"); + monad::saveGridAndNodalField(grid, results.phi[0], file.string(), "Electric potential"); std::cout << "Saved to " + file.string() << std::endl; diff --git a/apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp b/apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp index c8db59f..568769a 100644 --- a/apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp +++ b/apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp @@ -14,10 +14,12 @@ * * The base material's piezoelectric coupling tensor is set to * + * ```text * ⎡d 0 0⎤ * ⎣0 -d -d⎦ + * ``` * - * where d=E/10. + * where d=⅒E. * * The Gmsh files are written to: * @@ -106,13 +108,14 @@ int main(int argc, char* argv[]) { const auto folder = std::filesystem::path(__FILE__).parent_path(); const auto csvFile = folder / "data.csv"; - grid.setDensitiesFile(csvFile.string()); + const auto densityField = monad::makeDensityFieldFromCsv(csvFile); monad::SolverOptions options; options.fields = monad::FieldSave::All; - const monad::LinearPiezoelectricSolver solver(grid, material); - const auto results = solver.solve(options); + const monad::LinearPiezoelectricSolver solver; + + const auto results = solver.solve(grid, densityField, material, options); std::cout << "---Homogenized stiffness tensor---\n" << results.cBar << std::endl; std::cout << "\n---Homogenized permittivity tensor---\n" << results.epsilonBar << std::endl; @@ -120,31 +123,31 @@ int main(int argc, char* argv[]) { auto file = folder / "density.msh"; - monad::saveGrid(grid, file.string(), true); + monad::saveGridAndDensityField(grid, densityField, file.string()); file = folder / "uMacro.msh"; - monad::saveGridAndField(grid, results.uMacro[0], file.string(), "Macro displacement"); + monad::saveGridAndNodalField(grid, results.uMacro[0], file.string(), "Macro displacement"); file = folder / "uMicro.msh"; - monad::saveGridAndField(grid, results.uMicro[0], file.string(), "Micro displacement"); + monad::saveGridAndNodalField(grid, results.uMicro[0], file.string(), "Micro displacement"); file = folder / "u.msh"; - monad::saveGridAndField(grid, results.u[0], file.string(), "Displacement"); + monad::saveGridAndNodalField(grid, results.u[0], file.string(), "Displacement"); file = folder / "phiMacro.msh"; - monad::saveGridAndField(grid, results.phiMacro[0], file.string(), "Macro electric potential"); + monad::saveGridAndNodalField(grid, results.phiMacro[0], file.string(), "Macro electric potential"); file = folder / "phiMicro.msh"; - monad::saveGridAndField(grid, results.phiMicro[0], file.string(), "Micro electric potential"); + monad::saveGridAndNodalField(grid, results.phiMicro[0], file.string(), "Micro electric potential"); file = folder / "phi.msh"; - monad::saveGridAndField(grid, results.phi[0], file.string(), "Electric potential"); + monad::saveGridAndNodalField(grid, results.phi[0], file.string(), "Electric potential"); std::cout << "Saved to " + file.string() << std::endl; diff --git a/include/monad/detail/constants.hpp b/include/monad/detail/constants.hpp index 5a394b6..f8f356b 100644 --- a/include/monad/detail/constants.hpp +++ b/include/monad/detail/constants.hpp @@ -2,7 +2,7 @@ namespace monad { - /// @brief Numerical tolerance used to treat small floating-point values as zero. + /// @brief Numerical tolerance for treating small floating-point values as zero. constexpr double NUMERICAL_ZERO = 1e-9; } // namespace monad diff --git a/include/monad/detail/eigen_utils.hpp b/include/monad/detail/eigen_utils.hpp index 6cdd3b9..9ce44be 100644 --- a/include/monad/detail/eigen_utils.hpp +++ b/include/monad/detail/eigen_utils.hpp @@ -10,32 +10,12 @@ namespace monad { namespace detail { - /** - * @brief Converts an array to an Eigen vector. - * - * @tparam N Size of array. - * - * @param[in] array Array. - * - * @returns Eigen vector of `array`. - */ - template - inline Eigen::Vector arrayToEigen(const std::array &array) noexcept { - Eigen::Vector vector; - - for (std::size_t i = 0; i < N; ++i) { - vector[static_cast(i)] = static_cast(array[i]); - } - - return vector; - } - /** * @brief Symmetrizes a square matrix. * - * This function replaces A with ½(A+Aᵀ), removing numerical - * asymmetry introduced by floating-point error in computations - * that theoretically produce symmetric matrices. + * Replaces A with ½(A+Aᵀ) to remove numerical asymmetry from + * floating-point error in computations that should produce a + * symmetric matrix. * * @tparam Derived Eigen matrix type. * @@ -43,7 +23,7 @@ namespace monad { * * @throws std::invalid_argument if `A` is not square. * - * @note Use this only to clean up numerical noise. + * @note Use this only to remove numerical noise. */ template inline void symmetrize(Eigen::MatrixBase &A) { @@ -75,8 +55,8 @@ namespace monad { /** * @brief Checks if a matrix is positive definite. * - * This function checks if a matrix is positive definite - * by attempting to perform a Cholesky factorization. + * Uses a Cholesky factorization to test positive + * definiteness. * * @tparam Derived Eigen matrix type. * @@ -99,8 +79,8 @@ namespace monad { /** * @brief Checks if a matrix is positive semi-definite. * - * This function checks if a matrix is positive semi-definite - * by verifying that all its eigenvalues are non-negative. + * Checks positive semi-definiteness by verifying that all + * eigenvalues are non-negative up to numerical tolerance. * * @tparam Derived Eigen matrix type. * diff --git a/include/monad/detail/mean.hpp b/include/monad/detail/mean.hpp index aff6a25..8265f3f 100644 --- a/include/monad/detail/mean.hpp +++ b/include/monad/detail/mean.hpp @@ -7,30 +7,46 @@ namespace monad { namespace detail { /** - * @brief Arithmetic mean for a list of scalar values. + * @brief Arithmetic mean of a list of scalar values. * - * Given a collection of values {x₁,x₂,...,xₙ}, the arithmetic mean is defined as: + * Given values * + * ```text + * {x₁, x₂, ..., xₙ} + * ``` + * + * the arithmetic mean is defined as: + * + * ```text * (1/n)∑ᵢxᵢ + * ``` * - * @param[in] x List of scalar values. + * @param[in] x Values. * - * @returns Arithmetic mean for a list of scalar values. + * @returns Arithmetic mean of `x`. */ double arithmeticMean(const std::vector &x) noexcept; /** - * @brief Harmonic mean for a list of scalar values. + * @brief Harmonic mean of a list of scalar values. + * + * Given values + * + * ```text + * {x₁,x₂,...,xₙ} + * ``` * - * Given a collection of values {x₁,x₂,...,xₙ}, the harmonic mean is defined as: + * the harmonic mean is defined as: * + * ```text * n/∑ᵢ(1/xᵢ) + * ``` * - * @param[in] x List of scalar values. + * @param[in] x Values. * - * @returns Harmonic mean for a list of scalar values. + * @returns Harmonic mean of `x`. * - * @throws std::invalid_argument if any entry in `x` is zero. + * @throws std::invalid_argument if any entry of `x` is zero. */ double harmonicMean(const std::vector &x); diff --git a/include/monad/fem/element/element_base.hpp b/include/monad/fem/element/element_base.hpp index e9f299b..dfc2150 100644 --- a/include/monad/fem/element/element_base.hpp +++ b/include/monad/fem/element/element_base.hpp @@ -14,12 +14,12 @@ namespace monad { /** * @brief Curiously recurring template pattern (CRTP) base class for FEM elements. * - * @tparam Derived Concrete element class (for CRTP). + * @tparam Derived Concrete element type for CRTP. * @tparam D Spatial dimension (2 or 3). - * @tparam K Number of nodes in the element. - * @tparam N Number of integration points in the element. + * @tparam K Number of element nodes. + * @tparam N Number of integration points. * - * @note `Derived` classes must provide: + * @note `Derived` must provide: * * - `static NodesMatrix localNodes() noexcept` * @@ -66,11 +66,17 @@ namespace monad { /** * @brief Shape functions evaluated at a local point. * - * For a D-dimensional element: + * - 2D element: * - * - D=2: [ξ η]ᵀ → [N₁(ξ,η) ... Nₖ(ξ,η)]ᵀ + * ``` + * [ξ η]ᵀ → [N₁(ξ,η) ... Nₖ(ξ,η)]ᵀ + * ``` + * + * - 3D element: * - * - D=3: [ξ η ζ]ᵀ → [N₁(ξ,η,ζ) ... Nₖ(ξ,η,ζ)]ᵀ + * ``` + * [ξ η ζ]ᵀ → [N₁(ξ,η,ζ) ... Nₖ(ξ,η,ζ)]ᵀ + * ``` * * @param[in] point Local point. * @@ -83,21 +89,19 @@ namespace monad { /** * @brief Shape function gradients evaluated at a local point. * - * For a D-dimensional element: - * - * - D=2: [ξ η]ᵀ → + * - 2D element * * ```text - * ⎡∂N₁/∂ξ ... ∂Nₖ/∂ξ⎤ - * ⎣∂N₁/∂η ... ∂Nₖ/∂η⎦ + * [ξ η]ᵀ → ⎡∂N₁/∂ξ ... ∂Nₖ/∂ξ⎤ + * ⎣∂N₁/∂η ... ∂Nₖ/∂η⎦ * ``` * - * - D=3: [ξ η ζ]ᵀ → + * - 3D element: * * ```text - * ⎡∂N₁/∂ξ ... ∂Nₖ/∂ξ⎤ - * ⎪∂N₁/∂η ... ∂Nₖ/∂η⎪ - * ⎣∂N₁/∂ζ ... ∂Nₖ/∂ζ⎦ + * ⎡∂N₁/∂ξ ... ∂Nₖ/∂ξ⎤ + * [ξ η ζ]ᵀ → ⎢∂N₁/∂η ... ∂Nₖ/∂η⎥ + * ⎣∂N₁/∂ζ ... ∂Nₖ/∂ζ⎦ * ``` * * @param[in] point Local point. @@ -111,21 +115,19 @@ namespace monad { /** * @brief Jacobian matrix evaluated at a local point. * - * For a D-dimensional element: - * - * - D=2: [ξ η]ᵀ → + * - 2D element: * * ```text - * ⎡∂x/∂ξ ∂x/∂η⎤ - * ⎣∂y/∂ξ ∂y/∂η⎦ + * [ξ η]ᵀ → ⎡∂x/∂ξ ∂x/∂η⎤ + * ⎣∂y/∂ξ ∂y/∂η⎦ * ``` * - * - D=3: [ξ η ζ]ᵀ → + * - 3D element: * * ```text - * ⎡∂x/∂ξ ∂x/∂η ∂x/∂ζ⎤ - * ⎪∂y/∂ξ ∂y/∂η ∂y/∂ζ⎪ - * ⎣∂z/∂ξ ∂z/∂η ∂z/∂ζ⎦ + * ⎡∂x/∂ξ ∂x/∂η ∂x/∂ζ⎤ + * [ξ η ζ]ᵀ → ⎢∂y/∂ξ ∂y/∂η ∂y/∂ζ⎥ + * ⎣∂z/∂ξ ∂z/∂η ∂z/∂ζ⎦ * ``` * * @param[in] point Local point. @@ -137,7 +139,7 @@ namespace monad { return gradShapeFunctions(point) * nodes; } - /// @brief Quadrature rule for integration. + /// @brief Quadrature rule. static QuadratureRule quadratureRule() noexcept { return Derived::quadratureRule(); } @@ -145,9 +147,11 @@ namespace monad { /** * @brief Area (2D) or volume (3D). * - * Computes area/volume via: + * Computes the measure as * + * ```text * ∫_Ω|det(J)|dΩ + * ``` * * @param[in] nodes Element nodes. * diff --git a/include/monad/fem/element/hex20.hpp b/include/monad/fem/element/hex20.hpp index 623a115..40607e2 100644 --- a/include/monad/fem/element/hex20.hpp +++ b/include/monad/fem/element/hex20.hpp @@ -42,7 +42,9 @@ namespace monad { /** * @brief Shape functions evaluated at a local point. * + * ```text * [ξ η ζ]ᵀ → [N₁(ξ,η,ζ) ... N₂₀(ξ,η,ζ)]ᵀ + * ``` * * @param[in] point Local point. * @@ -53,12 +55,10 @@ namespace monad { /** * @brief Shape function gradients evaluated at a local point. * - * [ξ η ζ]ᵀ → - * * ```text - * ⎡∂N₁/∂ξ ... ∂N₂₀/∂ξ⎤ - * ⎪∂N₁/∂η ... ∂N₂₀/∂η⎪ - * ⎣∂N₁/∂ζ ... ∂N₂₀/∂ζ⎦ + * ⎡∂N₁/∂ξ ... ∂N₂₀/∂ξ⎤ + * [ξ η ζ]ᵀ → ⎢∂N₁/∂η ... ∂N₂₀/∂η⎥ + * ⎣∂N₁/∂ζ ... ∂N₂₀/∂ζ⎦ * ``` * * @param[in] point Local point. @@ -67,7 +67,7 @@ namespace monad { */ static ShapeFuncGradMatrix gradShapeFunctions(const Point &point) noexcept; - /// @brief Quadrature rule for integration. + /// @brief Quadrature rule. static QuadratureRule quadratureRule() noexcept; /// @brief Gmsh element type ID. diff --git a/include/monad/fem/element/hex8.hpp b/include/monad/fem/element/hex8.hpp index b562105..dba21e7 100644 --- a/include/monad/fem/element/hex8.hpp +++ b/include/monad/fem/element/hex8.hpp @@ -42,7 +42,9 @@ namespace monad { /** * @brief Shape functions evaluated at a local point. * + * ```text * [ξ η ζ]ᵀ → [N₁(ξ,η,ζ) ... N₈(ξ,η,ζ)]ᵀ + * ``` * * @param[in] point Local point. * @@ -53,12 +55,10 @@ namespace monad { /** * @brief Shape function gradients evaluated at a local point. * - * [ξ η ζ]ᵀ → - * * ```text - * ⎡∂N₁/∂ξ ... ∂N₈/∂ξ⎤ - * ⎪∂N₁/∂η ... ∂N₈/∂η⎪ - * ⎣∂N₁/∂ζ ... ∂N₈/∂ζ⎦ + * ⎡∂N₁/∂ξ ... ∂N₈/∂ξ⎤ + * [ξ η ζ]ᵀ → ⎢∂N₁/∂η ... ∂N₈/∂η⎥ + * ⎣∂N₁/∂ζ ... ∂N₈/∂ζ⎦ * ``` * * @param[in] point Local point. @@ -67,7 +67,7 @@ namespace monad { */ static ShapeFuncGradMatrix gradShapeFunctions(const Point &point) noexcept; - /// @brief Quadrature rule for integration. + /// @brief Quadrature rule. static QuadratureRule quadratureRule() noexcept; /// @brief Gmsh element type ID. diff --git a/include/monad/fem/element/quad4.hpp b/include/monad/fem/element/quad4.hpp index f226f87..3609fab 100644 --- a/include/monad/fem/element/quad4.hpp +++ b/include/monad/fem/element/quad4.hpp @@ -7,7 +7,7 @@ namespace monad { namespace fem { /** - * @brief 4-node quadrilateral (Quad4) finite element. + * @brief 4-node quadrilateral (Quad4) element. * * The Quad4 element uses bilinear shape-functions on ξ,η∈[-1,1]. * @@ -34,7 +34,9 @@ namespace monad { /** * @brief Shape functions evaluated at a local point. * + * ```text * [ξ η]ᵀ → [N₁(ξ,η) ... N₄(ξ,η)]ᵀ + * ``` * * @param[in] point Local point. * @@ -45,11 +47,9 @@ namespace monad { /** * @brief Shape function gradients evaluated at a local point. * - * [ξ η]ᵀ → - * * ```text - * ⎡∂N₁/∂ξ ... ∂N₄/∂ξ⎤ - * ⎣∂N₁/∂η ... ∂N₄/∂η⎦ + * [ξ η]ᵀ → ⎡∂N₁/∂ξ ... ∂N₄/∂ξ⎤ + * ⎣∂N₁/∂η ... ∂N₄/∂η⎦ * ``` * * @param[in] point Local point. @@ -58,7 +58,7 @@ namespace monad { */ static ShapeFuncGradMatrix gradShapeFunctions(const Point &point) noexcept; - /// @brief Quadrature rule for integration. + /// @brief Quadrature rule. static QuadratureRule quadratureRule() noexcept; /// @brief Gmsh element type ID. diff --git a/include/monad/fem/element/quad8.hpp b/include/monad/fem/element/quad8.hpp index 099b719..56e7658 100644 --- a/include/monad/fem/element/quad8.hpp +++ b/include/monad/fem/element/quad8.hpp @@ -34,7 +34,9 @@ namespace monad { /** * @brief Shape functions evaluated at a local point. * + * ```text * [ξ η]ᵀ → [N₁(ξ,η) ... N₈(ξ,η)]ᵀ + * ``` * * @param[in] point Local point. * @@ -45,11 +47,9 @@ namespace monad { /** * @brief Shape function gradients evaluated at a local point. * - * [ξ η]ᵀ → - * * ```text - * ⎡∂N₁/∂ξ ... ∂N₈/∂ξ⎤ - * ⎣∂N₁/∂η ... ∂N₈/∂η⎦ + * [ξ η]ᵀ → ⎡∂N₁/∂ξ ... ∂N₈/∂ξ⎤ + * ⎣∂N₁/∂η ... ∂N₈/∂η⎦ * ``` * * @param[in] point Local point. @@ -58,7 +58,7 @@ namespace monad { */ static ShapeFuncGradMatrix gradShapeFunctions(const Point &point) noexcept; - /// @brief Quadrature rule for integration. + /// @brief Quadrature rule. static QuadratureRule quadratureRule() noexcept; /// @brief Gmsh element type ID. diff --git a/include/monad/fem/kernel/mechanical/linear_elastic_kernel.hpp b/include/monad/fem/kernel/mechanical/linear_elastic_kernel.hpp index 54d4e6b..6eed3dd 100644 --- a/include/monad/fem/kernel/mechanical/linear_elastic_kernel.hpp +++ b/include/monad/fem/kernel/mechanical/linear_elastic_kernel.hpp @@ -3,7 +3,6 @@ #include #include #include "monad/material/mechanical/linear_elastic_material.hpp" -#include "monad/fem/kernel/mechanical/linear_elastic_kernel_traits.hpp" #include "monad/integration/integrate_matrix.hpp" #include "monad/detail/eigen_utils.hpp" @@ -14,17 +13,22 @@ namespace monad { namespace mechanical { /** - * @brief Provides core FEM computations for a linear elastic element. + * @brief Core FEM computations for a linear elastic element. * - * This kernel implements the weak form of the linear elastic PDE: + * This kernel implements the weak form of the linear elasticity: * + * ```text * ∇·σ=∇·(Cε)=0 + * ``` * - * where the displacements are decomposed into macroscopic and microscopic components: + * where the displacements u∈ℝᵈ are decomposed into macroscopic and + * microscopic components: * + * ```text * u=ū+ũ + * ``` * - * @tparam ElementT Element class (e.g. Quad4). + * @tparam ElementT Element type (e.g. Quad4). */ template struct LinearElasticKernel { @@ -33,8 +37,7 @@ namespace monad { /// @brief Number of dofs in the element. static constexpr int NumDofs = Element::Dim * Element::NumNodes; - using Material = LinearElasticMaterial; - using Traits = LinearElasticKernelTraits; + using Material = material::LinearElasticMaterial; using Point = typename Element::Point; using NodesMatrix = typename Element::NodesMatrix; @@ -49,23 +52,20 @@ namespace monad { /** * @brief Element B matrix evaluated at a local point. * - * The B matrix relates an element's nodal displacements u to strains ε in Voigt - * notation at a local `point`: + * The B matrix maps nodal displacements u∈ℝᵈ to + * strains ε∈ℝᵛ at a local `point`: * + * ```text * ε=Bu - * - * For a D-dimensional element: - * - * - D=2: point=[ξ η]ᵀ - * - * - D=3: point=[ξ η ζ]ᵀ + * ``` * * @param[in] point Local point. * @param[in] nodes Element nodes. * * @returns Element B matrix evaluated at `point`. * - * @throws std::invalid_argument if `nodes` define a degenerate or inverted element geometry. + * @throws std::invalid_argument if `nodes` define a degenerate element. + * @throws std::invalid_argument if `nodes` define an inverted element. */ static BMatrix bMatrix(const Point &point, const NodesMatrix &nodes) { const auto J = Element::jacobian(point, nodes); @@ -82,25 +82,61 @@ namespace monad { const auto dN = Element::gradShapeFunctions(point); const auto dNGlobal = J.inverse() * dN; - BMatrix B; - Traits::fillB(B, dNGlobal); + BMatrix B = BMatrix::Zero(); + + if constexpr (Element::Dim == 2) { + // Normal strain ε₁₁ + B(0, Eigen::seq(0, Eigen::indexing::last, 2)) = dNGlobal.row(0); + + // Normal strain ε₂₂ + B(1, Eigen::seq(1, Eigen::indexing::last, 2)) = dNGlobal.row(1); + + // Shear strain ε₁₂ + B(2, Eigen::seq(0, Eigen::indexing::last, 2)) = dNGlobal.row(1); + B(2, Eigen::seq(1, Eigen::indexing::last, 2)) = dNGlobal.row(0); + } + else { + // Normal strain ε₁₁ + B(0, Eigen::seq(0, Eigen::indexing::last, 3)) = dNGlobal.row(0); + + // Normal strain ε₂₂ + B(1, Eigen::seq(1, Eigen::indexing::last, 3)) = dNGlobal.row(1); + + // Normal strain ε₃₃ + B(2, Eigen::seq(2, Eigen::indexing::last, 3)) = dNGlobal.row(2); + + // Shear strain ε₁₂ + B(3, Eigen::seq(0, Eigen::indexing::last, 3)) = dNGlobal.row(1); + B(3, Eigen::seq(1, Eigen::indexing::last, 3)) = dNGlobal.row(0); + + // Shear strain ε₁₃ + B(4, Eigen::seq(0, Eigen::indexing::last, 3)) = dNGlobal.row(2); + B(4, Eigen::seq(2, Eigen::indexing::last, 3)) = dNGlobal.row(0); + + // Shear strain ε₂₃ + B(5, Eigen::seq(1, Eigen::indexing::last, 3)) = dNGlobal.row(2); + B(5, Eigen::seq(2, Eigen::indexing::last, 3)) = dNGlobal.row(1); + } return B; } /** - * @brief Element mechanical stiffness matrix (left-hand side of the discretized weak form). + * @brief Element mechanical stiffness matrix evaluated at a local point. * - * Weak form lhs for an element e: + * For an element e: * + * ```text * Kₑ=∫_ΩₑBᵀCBdΩₑ + * ``` * - * @param[in] point Local point. + * @param[in] material Linear elastic material. * @param[in] nodes Element nodes. * * @returns Element mechanical stiffness matrix evaluated at `point`. * - * @throws std::invalid_argument if `nodes` define a degenerate or inverted element geometry. + * @throws std::invalid_argument if `nodes` define a degenerate element. + * @throws std::invalid_argument if `nodes` define an inverted element. */ static StiffnessMatrix lhs(const Material &material, const NodesMatrix &nodes) { const auto rule = Element::quadratureRule(); @@ -116,25 +152,28 @@ namespace monad { StiffnessMatrix K = integration::integrateMatrix(integrand, rule); - // Remove numerical artifacts + // Remove numerical asymmetry detail::symmetrize(K); return K; } /** - * @brief Element force matrix (right-hand side of the discretized weak form). + * @brief Element force matrix evaluated at a local point. * - * Weak form rhs for an element e: + * For an element e: * + * ```text * Fₑ=-∫_ΩₑBᵀCdΩₑε̄ + * ``` * - * @param[in] point Local point. + * @param[in] material Linear transport material. * @param[in] nodes Element nodes. * * @returns Element force matrix evaluated at `point`. * - * @throws std::invalid_argument if `nodes` define a degenerate or inverted element geometry. + * @throws std::invalid_argument if `nodes` define a degenerate element. + * @throws std::invalid_argument if `nodes` define an inverted element. */ static FieldMatrix rhs(const Material &material, const NodesMatrix &nodes) { const auto rule = Element::quadratureRule(); @@ -148,6 +187,7 @@ namespace monad { return B.transpose() * C * J.determinant(); }; + // No need to multiply by ε̄=I for unit macroscopic strains return -integration::integrateMatrix(integrand, rule); } }; diff --git a/include/monad/fem/kernel/mechanical/linear_elastic_kernel_traits.hpp b/include/monad/fem/kernel/mechanical/linear_elastic_kernel_traits.hpp deleted file mode 100644 index b751993..0000000 --- a/include/monad/fem/kernel/mechanical/linear_elastic_kernel_traits.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#pragma once - -#include - -namespace monad { - - namespace fem { - - namespace mechanical { - - /** - * @brief Linear elastic kernel traits. - * - * This struct isolates dimension-specific logic so that the finite element kernel - * can be written generically in terms of spatial dimension. - * - * @tparam D Spatial dimension (2 or 3). - */ - template - struct LinearElasticKernelTraits; - - /** - * @brief 2D linear elastic kernel traits. - * - * This struct isolates 2D-specific logic so that the finite element kernel - * can be written generically in terms of spatial dimension. - */ - template <> - struct LinearElasticKernelTraits<2> { - /** - * @brief 2D element B matrix evaluated at a local point. - * - * The B matrix relates an element's nodal displacements u to strains ε in Voigt - * notation at a local point: - * - * ε=Bu - * - * @tparam BMatrix B matrix type. - * @tparam ShapeFuncGradMatrix Shape function gradient matrix type. - * - * @param[in,out] B Element B matrix evaluated at a point. - * @param[in] dN Element shape function gradients evaluated at a point. - */ - template - static void fillB(BMatrix &B, const ShapeFuncGradMatrix &dN) { - B.setZero(); - - // Normal strain ε₁₁ - B(0, Eigen::seq(0, Eigen::indexing::last, 2)) = dN.row(0); - - // Normal strain ε₂₂ - B(1, Eigen::seq(1, Eigen::indexing::last, 2)) = dN.row(1); - - // Shear strain ε₁₂ - B(2, Eigen::seq(0, Eigen::indexing::last, 2)) = dN.row(1); - B(2, Eigen::seq(1, Eigen::indexing::last, 2)) = dN.row(0); - } - }; - - /** - * @brief 3D linear elastic kernel traits. - * - * This struct isolates 3D-specific logic so that the finite element kernel - * can be written generically in terms of spatial dimension. - */ - template <> - struct LinearElasticKernelTraits<3> { - /** - * @brief 3D element B matrix evaluated at a local point. - * - * The B matrix relates an element's nodal displacements u to strains ε in Voigt - * notation at a local point: - * - * ε=Bu - * - * @tparam BMatrix B matrix type. - * @tparam ShapeFuncGradMatrix Shape function gradient matrix type. - * - * @param[in,out] B Element B matrix evaluated at a point. - * @param[in] dN Element shape function gradients evaluated at a point. - */ - template - static void fillB(BMatrix &B, const ShapeFuncGradMatrix &dN) { - B.setZero(); - - // Normal strain ε₁₁ - B(0, Eigen::seq(0, Eigen::indexing::last, 3)) = dN.row(0); - - // Normal strain ε₂₂ - B(1, Eigen::seq(1, Eigen::indexing::last, 3)) = dN.row(1); - - // Normal strain ε₃₃ - B(2, Eigen::seq(2, Eigen::indexing::last, 3)) = dN.row(2); - - // Shear strain ε₁₂ - B(3, Eigen::seq(0, Eigen::indexing::last, 3)) = dN.row(1); - B(3, Eigen::seq(1, Eigen::indexing::last, 3)) = dN.row(0); - - // Shear strain ε₁₃ - B(4, Eigen::seq(0, Eigen::indexing::last, 3)) = dN.row(2); - B(4, Eigen::seq(2, Eigen::indexing::last, 3)) = dN.row(0); - - // Shear strain ε₂₃ - B(5, Eigen::seq(1, Eigen::indexing::last, 3)) = dN.row(2); - B(5, Eigen::seq(2, Eigen::indexing::last, 3)) = dN.row(1); - } - }; - - } // namespace mechanical - - } // namespace fem - -} // namespace monad diff --git a/include/monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp b/include/monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp index 1004a42..3288630 100644 --- a/include/monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp +++ b/include/monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp @@ -8,6 +8,7 @@ #include "monad/fem/kernel/mechanical/linear_elastic_kernel.hpp" #include "monad/fem/kernel/scalar/linear_scalar_diffusive_kernel.hpp" #include "monad/integration/integrate_matrix.hpp" +#include "monad/detail/eigen_utils.hpp" namespace monad { @@ -16,19 +17,24 @@ namespace monad { namespace multiphysics { /** - * @brief Provides core FEM computations for a linear piezoelectric element. + * @brief Core FEM computations for a linear piezoelectric element. * - * This kernel implements the weak form of the linear piezoelectric PDE: + * This kernel implements the weak form of the linear piezoelectricity: * - * ∇·S=∇·(cT-dᵀE)=0 - * ∇·(-D)=∇·(-dT-εE)=0 + * ```text + * ∇·T=∇·(cS-dᵀE)=0 + * ∇·(D)=∇·(dS+ϵE)=0 + * ``` * - * where the displacements and electric potentials are decomposed into macroscopic and microscopic components: + * where the displacements u∈ℝᵈ and electric potentials φ∈ℝ are decomposed into + * macroscopic and microscopic components: * + * ```text * u=ū+ũ * φ=φ̄+φ̃ + * ``` * - * @tparam Element Element class (e.g. Quad4). + * @tparam Element Element type (e.g. Quad4). */ template struct LinearPiezoelectricKernel { @@ -40,7 +46,9 @@ namespace monad { /// @brief Number of dofs in the element. static constexpr int NumDofs = ElectricalKernel::NumDofs + MechanicalKernel::NumDofs; - using Material = LinearPiezoelectricMaterial, LinearTransportMaterial>; + using MechanicalMaterial = material::LinearElasticMaterial; + using ElectricalMaterial = material::LinearTransportMaterial; + using Material = material::LinearPiezoelectricMaterial; using Point = typename Element::Point; using NodesMatrix = typename Element::NodesMatrix; @@ -51,37 +59,50 @@ namespace monad { /// @brief Element piezoelectric stiffness matrix type. using StiffnessMatrix = Eigen::Matrix; - /// @brief Element mechanical field (induced by macroscopic electrical loading) matrix type. + /// @brief Element mechanical field matrix type induced by macroscopic electrical loading. using UPhiCouplingFieldMatrix = Eigen::Matrix; - /// @brief Element electrical field (induced by macroscopic mechanical loading) matrix type. + /// @brief Element electrical field matrix type induced by macroscopic mechanical loading. using PhiUCouplingFieldMatrix = Eigen::Matrix; /// @brief Element electromechanical field matrix type. using FieldMatrix = Eigen::Matrix; /** - * @brief Element piezoelectric stiffness matrix (left-hand side of the discretized weak form). + * @brief Element piezoelectric stiffness matrix evaluated at a local point. * - * Weak form lhs for an element e: + * For an element e: * * ```text * Kₑ = ⎡ (Kᵤᵤ)ₑ -(Kᵤᵩ)ₑ⎤ * ⎣-(Kᵩᵤ)ₑ -(Kᵩᵩ)ₑ⎦ * ``` * - * - (Kᵤᵤ)ₑ=∫_ΩₑBᵤᵀsBᵤdΩₑ (element mechanical stiffness matrix) + * - Element mechanical stiffness matrix: * - * - (Kᵩᵩ)ₑ=∫_ΩᵩBᵤᵀεBᵩdΩₑ (element electrical stiffness matrix) + * ```text + * (Kᵤᵤ)ₑ=∫_ΩₑBᵤᵀcBᵤdΩₑ + * ``` + * + * - Element electrical stiffness matrix: + * + * ```text + * (Kᵩᵩ)ₑ=∫_ΩᵩBᵤᵀεBᵩdΩₑ + * ``` * - * - (Kᵩᵤ)ₑ=(Kᵤᵩ)ₑᵀ=∫_ΩᵩBᵩᵀdBᵤdΩₑ=(∫_ΩᵩBᵤᵀdᵀBᵩdΩₑ)ᵀ (element coupling stiffness matrix) + * - Element piezoelectric coupling stiffness matrix: * - * @param[in] point Local point. + * ```text + * (Kᵩᵤ)ₑ=(Kᵤᵩ)ₑᵀ=∫_ΩᵩBᵩᵀdBᵤdΩₑ=(∫_ΩᵩBᵤᵀdᵀBᵩdΩₑ)ᵀ + * ``` + * + * @param[in] material Linear piezoelectric material. * @param[in] nodes Element nodes. * * @returns Element piezoelectric stiffness matrix evaluated at `point`. * - * @throws std::invalid_argument if `nodes` define a degenerate or inverted element geometry. + * @throws std::invalid_argument if `nodes` define a degenerate element. + * @throws std::invalid_argument if `nodes` define an inverted element. */ static StiffnessMatrix lhs(const Material &material, const NodesMatrix &nodes) { const auto rule = Element::quadratureRule(); @@ -104,29 +125,33 @@ namespace monad { K << Kuu, -Kphiu.transpose(), -Kphiu, -Kphiphi; + // Remove numerical asymmetry + detail::symmetrize(K); + return K; } /** - * @brief Element source matrix (right-hand side of the discretized weak form). + * @brief Element source matrix evaluated at a local point. * - * Weak form rhs for an element e: + * For an element e: * * ```text * Fₑ = ⎡ (Fᵤ)ₑ⎤ = ⎡ (Fᵤᵤ)ₑ (Fᵤᵩ)ₑ⎤ * ⎣-(Fᵩ)ₑ⎦ ⎣-(Fᵩᵤ)ₑ -(Fᵩᵩ)ₑ⎦ * ``` * - * - (Fᵤ)ₑ=[-∫_ΩₑBᵤᵀsdΩₑT̄ ∫_ΩₑBᵤᵀdᵀdΩₑĒ] + * - (Fᵤ)ₑ=[-∫_ΩₑBᵤᵀcdΩₑT̄ ∫_ΩₑBᵤᵀdᵀdΩₑĒ] * * - (Fᵩ)ₑ=[-∫_ΩₑBᵩᵀdᵀdΩₑT̄ -∫_ΩₑBᵩᵀεdΩₑĒ] * - * @param[in] point Local point. + * @param[in] material Linear piezoelectric material. * @param[in] nodes Element nodes. * * @returns Element source matrix evaluated at `point`. * - * @throws std::invalid_argument if `nodes` define a degenerate or inverted element geometry. + * @throws std::invalid_argument if `nodes` define a degenerate element. + * @throws std::invalid_argument if `nodes` define an inverted element. */ static FieldMatrix rhs(const Material &material, const NodesMatrix &nodes) { const auto rule = Element::quadratureRule(); @@ -149,7 +174,11 @@ namespace monad { const auto Fuu = MechanicalKernel::rhs(material.elasticMaterial(), nodes); const auto Fphiphi = ElectricalKernel::rhs(material.dielectricMaterial(), nodes); + + // No need to multiply by T̄=I for unit macroscopic strains const PhiUCouplingFieldMatrix Fphiu = -integration::integrateMatrix(integrandPhiU, rule); + + // No need to multiply by Ē=I for unit macroscopic electric fields const UPhiCouplingFieldMatrix Fuphi = integration::integrateMatrix(integrandUPhi, rule); FieldMatrix F; diff --git a/include/monad/fem/kernel/scalar/linear_scalar_diffusive_kernel.hpp b/include/monad/fem/kernel/scalar/linear_scalar_diffusive_kernel.hpp index 05487e6..2a2bdea 100644 --- a/include/monad/fem/kernel/scalar/linear_scalar_diffusive_kernel.hpp +++ b/include/monad/fem/kernel/scalar/linear_scalar_diffusive_kernel.hpp @@ -2,9 +2,9 @@ #include #include +#include "monad/material/transport/linear_transport_material.hpp" #include "monad/integration/integrate_matrix.hpp" #include "monad/detail/eigen_utils.hpp" -#include "monad/material/transport/linear_transport_material.hpp" namespace monad { @@ -12,26 +12,31 @@ namespace monad { namespace scalar { - /// @brief Specifies the sign convention relating the physical field G to the scalar potential gradient ∇φ. + /// @brief Sign convention for the derived field ∇φ. enum class GradientConvention { - /// @brief Physical field is defined as field G=−∇φ. + /// @brief Derived field is defined as −∇φ. Negative, - /// @brief Physical field is defined as field G=∇φ. + /// @brief Derived field is defined as ∇φ. Positive }; /** - * @brief Provides core FEM computations for a linear scalar diffusive element. + * @brief Core FEM computations for a linear scalar diffusive element. * - * This kernel implements the weak form of the scalar diffusion PDE: + * This kernel implements the weak form of scalar diffusion: * + * ```text * ∇·J=∇·(K∇φ)=0 + * ``` * - * where the scalar potentials are decomposed into macroscopic and microscopic components: + * where the scalar potentials φ∈ℝ are decomposed into macroscopic and + * microscopic components: * + * ```text * φ=φ̄+φ̃ + * ``` * - * @tparam ElementT Element class (e.g. Quad4). + * @tparam ElementT Element type (e.g. Quad4). * @tparam C Gradient sign convention (GradientConvention::Negative or Positive). */ template @@ -46,7 +51,7 @@ namespace monad { /// @brief Gradient sign. static constexpr double GradSign = (C == GradientConvention::Negative ? -1.0 : 1.0); - using Material = LinearTransportMaterial; + using Material = material::LinearTransportMaterial; using Point = typename Element::Point; using NodesMatrix = typename Element::NodesMatrix; @@ -61,23 +66,20 @@ namespace monad { /** * @brief Element B matrix evaluated at a local point. * - * The B matrix relates an element's nodal scalar potentials φ to scalar gradients at a - * local `point`: + * The B matrix masp nodal scalar potentials φ∈ℝ to + * scalar potential gradients ∇φ∈ℝᵈ at a local `point`: * + * ```text * ∇φ=Bφ - * - * For a D-dimensional element: - * - * - D=2: point=[ξ η]ᵀ - * - * - D=3: point=[ξ η ζ]ᵀ + * ``` * * @param[in] point Local point. * @param[in] nodes Element nodes. * * @returns Element B matrix evaluated at `point`. * - * @throws std::invalid_argument if `nodes` define a degenerate or inverted element geometry. + * @throws std::invalid_argument if `nodes` define a degenerate element. + * @throws std::invalid_argument if `nodes` define an inverted element. */ static BMatrix bMatrix(const Point &point, const NodesMatrix &nodes) { const auto J = Element::jacobian(point, nodes); @@ -97,18 +99,21 @@ namespace monad { } /** - * @brief Element diffusive stiffness matrix (left-hand side of the discretized weak form) evaluated at a local point. + * @brief Element diffusive stiffness matrix evaluated at a local point. * - * Weak form lhs for an element e: + * For an element e: * - * Kₑ=∫_ΩₑBᵀABdΩₑ + * ```text + * Kₑ=∫_ΩₑBᵀKBdΩₑ + * ``` * * @param[in] material Linear transport material. * @param[in] nodes Element nodes. * * @returns Element diffusive stiffness matrix evaluated at `point`. * - * @throws std::invalid_argument if `nodes` define a degenerate or inverted element geometry. + * @throws std::invalid_argument if `nodes` define a degenerate element. + * @throws std::invalid_argument if `nodes` define an inverted element. */ static StiffnessMatrix lhs(const Material &material, const NodesMatrix &nodes) { const auto rule = Element::quadratureRule(); @@ -124,25 +129,28 @@ namespace monad { StiffnessMatrix K = integration::integrateMatrix(integrand, rule); - // Remove numerical artifacts + // Remove numerical asymmetry detail::symmetrize(K); return K; } /** - * @brief Element source matrix (right-hand side of the discretized weak form) evaluated at a local point. + * @brief Element source matrix evaluated at a local point. * - * Weak form rhs for an element e: + * For an element e: * + * ```text * Fₑ=-∫_ΩₑBᵀAdΩₑ∇φ̄ + * ``` * * @param[in] material Linear transport material. * @param[in] nodes Element nodes. * * @returns Element source matrix evaluated at `point`. * - * @throws std::invalid_argument if `nodes` define a degenerate or inverted element geometry. + * @throws std::invalid_argument if `nodes` define a degenerate element. + * @throws std::invalid_argument if `nodes` define an inverted element. */ static FieldMatrix rhs(const Material &material, const NodesMatrix &nodes) { const auto rule = Element::quadratureRule(); @@ -156,6 +164,7 @@ namespace monad { return B.transpose() * A * J.determinant(); }; + // No need to multiply by ∇φ̄=I for unit macroscopic scalar potential gradients return -integration::integrateMatrix(integrand, rule); } }; diff --git a/include/monad/fem/operator/dof_map.hpp b/include/monad/fem/operator/dof_map.hpp new file mode 100644 index 0000000..eebaec6 --- /dev/null +++ b/include/monad/fem/operator/dof_map.hpp @@ -0,0 +1,140 @@ +#pragma once + +#include +#include +#include +#include +#include + +namespace monad { + + namespace fem { + + /** + * @brief Maps element periodic dofs into the reduced periodic dof space. + * + * Fixed dofs are stored as `-1`. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + * @tparam Traits Dof traits type (e.g. LinearElasticDofTraits). + */ + template + class DofMap { + public: + using Element = typename Grid::Element; + using ElementDofs = std::array; + using ElementDofList = std::vector; + + /** + * @brief Constructs a dof map. + * + * @param[in] grid Grid. + */ + explicit DofMap(const Grid &grid) { + numPeriodicNodes_ = grid.numPeriodicNodes(); + numReducedDofs_ = Traits::NumNodeDofs * numPeriodicNodes_ - Traits::NumFixedDofs; + + elementDofs_.reserve(grid.numElements()); + + for (std::size_t i = 0; i < grid.numElements(); ++i) { + const auto element = grid.periodicElement(i); + const auto periodicDofs = Traits::elementDofs(element, numPeriodicNodes_); + + ElementDofs reducedDofs; + + for (std::size_t j = 0; j < periodicDofs.size(); ++j) { + const std::size_t periodicDof = periodicDofs[j]; + + if (Traits::isFixedPeriodicDof(periodicDof, numPeriodicNodes_)) { + reducedDofs[j] = -1; + } + else { + const std::size_t reducedDof = Traits::periodicToReducedDof(periodicDof, numPeriodicNodes_); + reducedDofs[j] = static_cast(reducedDof); + } + } + + elementDofs_.push_back(reducedDofs); + } + } + + /// @brief Number of elements in the map. + std::size_t size() const noexcept { + return elementDofs_.size(); + } + + /// @brief Number of reduced periodic dofs. + std::size_t numReducedDofs() const noexcept { + return numReducedDofs_; + } + + /** + * @brief Reduced periodic dofs of an element. + * + * @param[in] index Element index. + * + * @returns Reduced periodic dofs of an element. + * + * @throws std::out_of_range if `index` is outside the range [0, `size()`). + */ + const ElementDofs &reducedDofs(std::size_t index) const { + if (index >= elementDofs_.size()) { + throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(elementDofs_.size()) + ")."); + } + + return elementDofs_[index]; + } + + /** + * @brief Returns `true` if a periodic dof is fixed. + * + * @param[in] dof Periodic dof. + * + * @returns `true` if `dof` is fixed, `false` otherwise. + */ + bool isFixedPeriodicDof(std::size_t dof) const noexcept { + return Traits::isFixedPeriodicDof(dof, numPeriodicNodes_); + } + + /** + * @brief Maps a periodic dof to a reduced periodic dof. + * + * The reduced periodic dof space is formed by removing fixed + * periodic dofs from the full periodic dof numbering. + * + * @param[in] dof Periodic dof. + * + * @returns Reduced periodic dof. + */ + std::size_t periodicToReducedDof(std::size_t dof) const noexcept { + return Traits::periodicToReducedDof(dof, numPeriodicNodes_); + } + + /** + * @brief Maps a reduced periodic dof to a periodic dof. + * + * The reduced periodic dof space is formed by removing fixed + * periodic dofs from the full periodic dof numbering. + * + * @param[in] dof Reduced periodic dof. + * + * @returns Periodic dof. + */ + std::size_t reducedToPeriodicDof(std::size_t dof) const noexcept { + return Traits::reducedToPeriodicDof(dof, numPeriodicNodes_); + } + + private: + /// @brief Number of periodic nodes. + std::size_t numPeriodicNodes_; + + /// @brief Number of reduced periodic dofs. + std::size_t numReducedDofs_; + + /// @brief Per-element mapping into the reduced periodic dof space. + ElementDofList elementDofs_; + }; + + } // namespace fem + +} // namespace monad diff --git a/include/monad/fem/operator/matrix_free_operator.hpp b/include/monad/fem/operator/matrix_free_operator.hpp index 6ea505e..19a6ccd 100644 --- a/include/monad/fem/operator/matrix_free_operator.hpp +++ b/include/monad/fem/operator/matrix_free_operator.hpp @@ -1,46 +1,40 @@ #pragma once #include -#include -#include -#include #ifdef _OPENMP #include #endif #include #include -#include "monad/detail/constants.hpp" +#include "monad/field/density_field.hpp" +#include "monad/fem/operator/dof_map.hpp" #include "monad/detail/eigen_utils.hpp" -#include "monad/grid/grid_base.hpp" namespace monad { namespace fem { /** - * @brief Matrix-free operator for the global stiffness matrix. + * @brief Matrix-free operator for the reduced global stiffness matrix. * - * The operator represents the action of the global stiffness matrix - * on a vector without explicitly assembling the matrix and is defined - * on the reduced set of unconstrained periodic dofs. + * This class applies the global stiffness operator without explicitly + * assembling the global matrix. * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * @tparam Traits Matrix free operator traits class (e.g. LinearElasticMatrixFreeOperatorTraits<2>). + * @tparam Grid Grid type (e.g. Quad4Grid). + * @tparam Traits Dof traits type (e.g. LinearElasticDofTraits<2>). * * @note Inspiration: https://libeigen.gitlab.io/eigen/docs-nightly/group__MatrixfreeSolverExample.html */ - template - class MatrixFreeOperator : public Eigen::EigenBase> { + template + class MatrixFreeOperator : public Eigen::EigenBase> { public: - static_assert(Element::Dim == Grid::Dim, "Element spatial dimension must equal grid spatial dimension."); + using Element = typename Grid::Element; /// @brief Number of dofs per element. static constexpr int NumElementDofs = Element::NumNodes * Traits::NumNodeDofs; - using ElementsList = typename GridBase::ElementsList; - using DensityList = typename GridBase::DensityList; - using ElementDofList = std::vector>; + /// @brief Element dof vector type. + using DofVector = Eigen::Vector; /// @brief Element stiffness matrix type. using StiffnessMatrix = Eigen::Matrix; @@ -55,73 +49,29 @@ namespace monad { }; /** - * @brief Constructs the matrix-free operator. + * @brief Constructs a matrix-free operator. * - * @param[in] grid Periodic unit cell grid. + * @param[in] grid Grid. + * @param[in] densityField Per-element density field defined on `grid`. * @param[in] elementKReference Reference element stiffness matrix for unit density. - */ - MatrixFreeOperator(const GridBase &grid, const StiffnessMatrix &elementKReference) - : elementKReference_(elementKReference), elements_(grid.periodicElements()), densities_(grid.densities()) { - const std::size_t numPeriodicNodes = grid.numPeriodicNodes(); - const std::size_t numReducedDofs = Traits::NumNodeDofs * numPeriodicNodes - Traits::NumFixedDofs; - - numRows_ = static_cast(numReducedDofs); - numCols_ = numRows_; - - // Precompute global-reduced dof mapping - // Fixed dofs are marked with -1 and skipped during gather/scatter - const std::size_t numElements = elements_.size(); - elementDofs_.resize(numElements); - - for (std::size_t i = 0; i < numElements; ++i) { - auto &element = elements_[i]; - const auto dofs = Traits::dofs(element, numPeriodicNodes); - - for (std::size_t j = 0; j < dofs.size(); ++j) { - const std::size_t dof = dofs[j]; - if (Traits::isFixedDof(dof, numPeriodicNodes)) { - elementDofs_[i][j] = -1; - } - else { - const std::size_t reducedDof = Traits::reducedDof(dof, numPeriodicNodes); - elementDofs_[i][j] = static_cast(reducedDof); - } - } - } - } - - /// @brief Reference element stiffness matrix for unit density. - const StiffnessMatrix &elementKReference() const noexcept { - return elementKReference_; - } - - /// @brief Periodic node indices for all elements. - const ElementsList &elements() const noexcept { - return elements_; - } - - /// @brief Material densities for all elements. - const DensityList &densities() const noexcept { - return densities_; - } - - /** - * @brief Reduced dofs for all elements. * - * @note Fixed dofs are set to -1. + * @throws std::invalid_argument if `grid` and `densityField` do not have the same resolution. */ - const ElementDofList &elementDofs() const noexcept { - return elementDofs_; + MatrixFreeOperator(const Grid &grid, const field::DensityField &densityField, const StiffnessMatrix &elementKReference) + : densityField_(densityField), dofMap_(grid), elementKReference_(elementKReference) { + if (grid.resolution() != densityField_.resolution()) { + throw std::invalid_argument( "Grid resolution must match density field resolution."); + } } /// @brief Number of rows. int rows() const noexcept { - return numRows_; + return static_cast(dofMap_.numReducedDofs()); } /// @brief Number of columns. int cols() const noexcept { - return numCols_; + return static_cast(dofMap_.numReducedDofs()); } /// @brief `true` if the matrix-free operator is symmetric, `false` otherwise. @@ -134,43 +84,95 @@ namespace monad { return detail::isPSD(elementKReference_); } + /// @brief Per-element density field. + const field::DensityField &densityField() const noexcept { + return densityField_; + }; + + /// @brief Reduced periodic dof map. + const DofMap &dofMap() const noexcept { + return dofMap_; + } + + /// @brief Reference element stiffness matrix for unit density. + const StiffnessMatrix& elementKReference() const noexcept { + return elementKReference_; + } + /** - * @brief Overloads the multiplication operator to define the matrix-vector product y=Kx. + * @brief Matrix-vector multiplication Kx=y. * - * @tparam Rhs Type of the right-hand side vector. + * @tparam Lhs Type of the left-hand side vector x. + * @tparam Rhs Type of the right-hand side vector y. * - * @param[in] x Right-hand side vector. - * - * @returns Product Kx. + * @param[in] lhs Left-hand side vector x. + * @param[in,out] rhs Right-hand side vector y. */ - template - Eigen::Product - operator*(const Eigen::MatrixBase &x) const { - return Eigen::Product(*this, x.derived()); - } + template + void apply(const Eigen::MatrixBase &lhs, Rhs &rhs) const { +#ifdef _OPENMP +#ifdef DEFAULT_OMP_NUM_THREADS + omp_set_num_threads(DEFAULT_OMP_NUM_THREADS); +#endif + #pragma omp parallel for schedule(static) +#endif + for (std::size_t i = 0; i < dofMap_.size(); ++i) { + const auto &reducedDofs = dofMap_.reducedDofs(i); + const double density = densityField_.getDensity(i); - private: - /// @brief Reference element stiffness matrix for unit density. - const StiffnessMatrix &elementKReference_; + // Gather the element dof vector from the reduced periodic vector. + // Fixed dofs are represented by -1 in the map and are treated as zero. + DofVector x; - /// @brief Number of rows. - int numRows_; + for (std::size_t j = 0; j < reducedDofs.size(); ++j) { + const int reducedDof = reducedDofs[j]; + const int localReducedDof = static_cast(j); - /// @brief Number of columns. - int numCols_; + x(localReducedDof) = (reducedDof >= 0) ? lhs(reducedDof) : 0.0; + } - /// @brief Periodic node indices for all elements. - ElementsList elements_; + // Apply the density-scaled reference element stiffness + const DofVector y = density * (elementKReference_ * x); - /// @brief Material densities for all elements. - DensityList densities_; + // Scatter the local contribution back into the reduced global vector + for (std::size_t j = 0; j < reducedDofs.size(); ++j) { + const int reducedDof = reducedDofs[j]; + const int localReducedDofs = static_cast(j); + + if (reducedDof >= 0) { +#ifdef _OPENMP + #pragma omp atomic +#endif + rhs(reducedDof) += y(localReducedDofs); + } + } + } + } /** - * @brief Reduced dofs for all elements. + * @brief Overloaded operator for matrix-vector multiplication y=Kx. * - * @note Fixed dofs are set to -1. + * @tparam Lhs Type of the right-hand side vector x. + * + * @param[in] x Left-hand side vector x. + * + * @returns Matrix-vector product Kx. */ - ElementDofList elementDofs_; + template + Eigen::Product + operator*(const Eigen::MatrixBase &x) const { + return Eigen::Product(*this, x.derived()); + } + + private: + /// @brief Per-element density field. + const field::DensityField &densityField_; + + /// @brief Reduced periodic dof map. + DofMap dofMap_; + + /// @brief Reference element stiffness matrix for unit density. + const StiffnessMatrix &elementKReference_; }; } // namespace fem @@ -182,109 +184,58 @@ namespace Eigen { namespace internal { /** - * @brief This step informs Eigen's expression system that MatrixFreeOperator should be treated similarly to Eigen::SparseMatrix. + * @brief Eigen traits specialization for `MatrixFreeOperator`. + * + * This tells Eigen to treat `MatrixFreeOperator` like a sparse matrix in + * expression templates. * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * @tparam Traits Matrix free operator traits class (e.g. LinearElasticMatrixFreeOperatorTraits). + * @tparam Grid Grid type (e.g. Quad4Grid). + * @tparam Traits Dof traits type (e.g. LinearElasticDofTraits<2>). * * @note Inspiration: https://libeigen.gitlab.io/eigen/docs-nightly/group__MatrixfreeSolverExample.html */ - template - struct traits> : public Eigen::internal::traits> {}; + template + struct traits> : public Eigen::internal::traits> {}; /** - * @brief Specializes Eigen's product implementation for the matrix-vector multiplication Kx. + * @brief Eigen product specialization for matrix-vector multiplication. * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * @tparam Traits Matrix free operator traits class (e.g. LinearElasticMatrixFreeOperatorTraits). - * @tparam Rhs Type of the right-hand side vector. + * @tparam Grid Grid type (e.g. Quad4Grid). + * @tparam Traits Dof traits type (e.g. LinearElasticDofTraits<2>). + * @tparam Lhs Type of the left-hand side vector. * * @note Inspiration: https://libeigen.gitlab.io/eigen/docs-nightly/group__MatrixfreeSolverExample.html */ - template + template struct generic_product_impl< - monad::fem::MatrixFreeOperator, - Rhs, + monad::fem::MatrixFreeOperator, + Lhs, SparseShape, DenseShape, GemvProduct // General matrix-vector product - > : generic_product_impl_base, Rhs, - generic_product_impl, Rhs>> { - using Operator = typename monad::fem::MatrixFreeOperator; - using Scalar = typename Product::Scalar; + > : generic_product_impl_base, Lhs, + generic_product_impl, Lhs>> { + using Operator = typename monad::fem::MatrixFreeOperator; + using Scalar = typename Product::Scalar; /** - * @brief Implements the core matrix-vector multiplication y=Kx. + * @brief Matrix-vector multiplication Kx=y. * - * @tparam Dest The type of the destination vector y. + * @tparam Rhs Type of the right-hand side vector y. * - * @param[in,out] dst Destination vector y. - * @param[in] lhs Matrix-free operator K. - * @param[in] rhs Right-hand side vector x. + * @param[in,out] rhs Right-hand side vector y. + * @param[in] K Matrix-free operator. + * @param[in] lhs Left-hand side vector x. * @param[in] alpha Scaling factor (must be 1). * * @note Inspiration: https://libeigen.gitlab.io/eigen/docs-nightly/group__MatrixfreeSolverExample.html */ - template - static void scaleAndAddTo(Dest &dst, const Operator &lhs, const Rhs &rhs, const Scalar &alpha) { + template + static void scaleAndAddTo(Rhs &rhs, const Operator &K, const Lhs &lhs, const Scalar &alpha) { eigen_assert(alpha == Scalar(1) && "scaling is not implemented"); EIGEN_ONLY_USED_FOR_DEBUG(alpha); - using DofVector = Eigen::Vector; - - const auto &elementKReference = lhs.elementKReference(); - const auto &elements = lhs.elements(); - const auto &densities = lhs.densities(); - const auto &elementDofs = lhs.elementDofs(); - -#ifdef _OPENMP -#ifdef DEFAULT_OMP_NUM_THREADS - omp_set_num_threads(DEFAULT_OMP_NUM_THREADS); -#endif - #pragma omp parallel for schedule(static) -#endif - for (std::size_t i = 0; i < elements.size(); ++i) { - const double density = densities[i]; - const auto &dofs = elementDofs[i]; - - // --- Gather --- - // Assemble the local vector x from the reduced global vector rhs. - // Fixed dofs are treated as zero. - DofVector x; - - for (std::size_t j = 0; j < dofs.size(); ++j) { - const int globalDof = dofs[j]; - const int localDof = static_cast(j); - - if (globalDof >= 0) { - x(localDof) = rhs(globalDof); - } - else { - x(localDof) = 0.0; - } - } - - // --- Apply --- - // Apply the element stiffness Kx (scaled by material density). - const DofVector y = density * (elementKReference * x); - - // --- Scatter --- - // Accumulate local element Kx contributions into the reduced global vector dst. - for (std::size_t j = 0; j < dofs.size(); ++j) { - const int globalDof = dofs[j]; - const int localDof = static_cast(j); - - if (globalDof >= 0) { - -#ifdef _OPENMP - #pragma omp atomic -#endif - dst(globalDof) += y(localDof); - } - } - } + K.apply(lhs, rhs); } }; diff --git a/include/monad/fem/operator/mechanical/linear_elastic_dof_traits.hpp b/include/monad/fem/operator/mechanical/linear_elastic_dof_traits.hpp new file mode 100644 index 0000000..4a1484f --- /dev/null +++ b/include/monad/fem/operator/mechanical/linear_elastic_dof_traits.hpp @@ -0,0 +1,132 @@ +#pragma once + +#include +#include + +namespace monad { + + namespace fem { + + namespace mechanical { + + /** + * @brief Dof numbering rules for periodic linear elasticity problems. + * + * @tparam D Spatial dimension (2 or 3). + */ + template + struct LinearElasticDofTraits { + /// @brief Number of dofs per node. + static constexpr int NumNodeDofs = D; + + /// @brief Number of fixed periodic dofs to remove rigid-body transformations. + static constexpr int NumFixedDofs = D; + + /** + * @brief Expands element node indices into dofs. + * + * Given an element with node indices [n₁, ..., nₖ], the + * associated dofs are + * + * - 2D: [2n₁, 2n₁+1, ..., 2nₖ, 2nₖ+1] + * + * - 3D: [3n₁, 3n₁+1, 3n₁+2, ..., 3nₖ, 3nₖ+1, 3nₖ+2] + * + * @tparam K Number of element nodes. + * + * @param[in] element Element node indices. + * @param[in] numNodes Total number of nodes. + * + * @returns Dofs associated with `element`. + * + * @note `numNodes` is unused here. It is kept only to match + * the interface of other dof traits that require node-based offsets. + */ + template + static auto elementDofs(const std::array &element, std::size_t numNodes) noexcept { + (void)numNodes; + + std::array dofs; + + std::size_t index = 0; + + for (std::size_t i = 0; i < K; ++i) { + const std::size_t node = element[i]; + + for (std::size_t j = 0; j < NumNodeDofs; ++j) { + dofs[index++] = NumNodeDofs * node + j; + } + } + + return dofs; + } + + /** + * @brief Returns `true` if a periodic dof is fixed. + * + * The first `D` periodic dofs are fixed. + * + * - 2D: [0, 1] + * + * - 3D: [0, 1, 2] + * + * @param[in] dof Periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns `true` if `dof` is fixed, `false` otherwise. + * + * @note `numNodes` is unused here. It is kept only to match + * the interface of other dof traits that require node-based offsets. + */ + static bool isFixedPeriodicDof(std::size_t dof, std::size_t numNodes) noexcept { + (void)numNodes; + + return dof < NumFixedDofs; + } + + /** + * @brief Maps a periodic dof to a reduced periodic dof. + * + * The reduced periodic dof space is formed by removing fixed + * periodic dofs from the full periodic dof numbering. + * + * @param[in] dof Periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns Reduced periodic dof. + * + * @note `numNodes` is unused here. It is kept only to match + * the interface of other dof traits that require node-based offsets. + */ + static std::size_t periodicToReducedDof(std::size_t dof, std::size_t numNodes) noexcept { + (void)numNodes; + + return dof - NumFixedDofs; + } + + /** + * @brief Maps a reduced periodic dof to a periodic dof. + * + * The reduced periodic dof space is formed by removing fixed + * periodic dofs from the full periodic dof numbering. + * + * @param[in] dof Reduced periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns Periodic dof. + * + * @note `numNodes` is unused here. It is kept only to match + * the interface of other dof traits that require node-based offsets. + */ + static std::size_t reducedToPeriodicDof(std::size_t dof, std::size_t numNodes) noexcept { + (void)numNodes; + + return dof + NumFixedDofs; + } + }; + + } // namespace mechanical + + } // namespace fem + +} // namespace monad diff --git a/include/monad/fem/operator/mechanical/linear_elastic_matrix_free_operator_traits.hpp b/include/monad/fem/operator/mechanical/linear_elastic_matrix_free_operator_traits.hpp deleted file mode 100644 index 0f62608..0000000 --- a/include/monad/fem/operator/mechanical/linear_elastic_matrix_free_operator_traits.hpp +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once - -#include -#include - -namespace monad { - - namespace fem { - - namespace mechanical { - - /** - * @brief Linear elastic matrix free operator traits. - * - * This struct isolates physics- and dimension-specific logic - * so that the matrix free operator can be written generically. - * - * @tparam D Spatial dimension (2 or 3). - */ - template - struct LinearElasticMatrixFreeOperatorTraits { - /// @brief Number of dofs per node. - static constexpr int NumNodeDofs = D; - - /// @brief Number of fixed dofs to remove rigid body transformations. - static constexpr int NumFixedDofs = D; - - /** - * @brief List of dofs associated with an element's nodes. - * - * Given an element with node indices [n₁, ..., nₖ], its dofs are: - * - * - D=2: [2n₁, 2n₁+1, ..., 2nₖ, 2nₖ+1] - * - * - D=3: [3n₁, 3n₁+1, 3n₁+2, ..., 3nₖ, 3nₖ+1, 3nₖ+2] - * - * @tparam K Number of nodes in the element. - * - * @param[in] element Node indices for a specific element. - * @param[in] numNodes Number of nodes. - * - * @returns List of dofs associated with `element`'s nodes. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - template - static auto dofs(const std::array &element, std::size_t numNodes) noexcept { - (void)numNodes; - - std::array data; - - std::size_t index = 0; - - for (std::size_t i = 0; i < K; ++i) { - const std::size_t node = element[i]; - - for (std::size_t j = 0; j < NumNodeDofs; ++j) { - data[index++] = NumNodeDofs * node + j; - } - } - - return data; - } - - /** - * @brief Checks if a global dof is fixed. - * - * The fixed dofs are: - * - * - D=2: [0, 1] - * - * - D=3: [0, 1, 2] - * - * @param[in] dof Global dof. - * @param[in] numNodes Number of nodes. - * - * @returns `true` if `dof` is fixed, `false` otherwise. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static bool isFixedDof(std::size_t dof, std::size_t numNodes) noexcept - { - (void)numNodes; - - return dof < NumFixedDofs; - } - - /** - * @brief Maps a global dof to its reduced version. - * - * Matrix-free operators act only on unconstrained periodic dofs. - * This function maps dofs from a space where fixed dofs are - * included to a space where they are removed. - * - * @param[in] dof Global dof. - * @param[in] numNodes Number of nodes. - * - * @returns Reduced dof. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static std::size_t reducedDof(std::size_t dof, std::size_t numNodes) noexcept { - (void)numNodes; - - return dof - NumFixedDofs; - } - - /** - * @brief Maps a reduced dof to its global version. - * - * Matrix-free operators act only on unconstrained periodic dofs. - * This function maps dofs from a space where fixed dofs - * are removed to a space where they are included. - * - * @param[in] dof Reduced dof. - * @param[in] numNodes Number of nodes. - * - * @returns Global dof. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static std::size_t expandedDof(std::size_t dof, std::size_t numNodes) noexcept { - (void)numNodes; - - return dof + NumFixedDofs; - } - }; - - } // namespace mechanical - - } // namespace fem - -} // namespace monad diff --git a/include/monad/fem/operator/multiphysics/linear_piezoelectric_dof_traits.hpp b/include/monad/fem/operator/multiphysics/linear_piezoelectric_dof_traits.hpp new file mode 100644 index 0000000..63d444c --- /dev/null +++ b/include/monad/fem/operator/multiphysics/linear_piezoelectric_dof_traits.hpp @@ -0,0 +1,159 @@ +#pragma once + +#include +#include +#include "monad/fem/operator/mechanical/linear_elastic_dof_traits.hpp" +#include "monad/fem/operator/scalar/linear_scalar_diffusive_dof_traits.hpp" + +namespace monad { + + namespace fem { + + namespace multiphysics { + + /** + * @brief Dof numbering rules for periodic linear piezoelectricity problems. + * + * @tparam D Spatial dimension (2 or 3). + */ + template + struct LinearPiezoelectricDofTraits { + using MechanicalTraits = mechanical::LinearElasticDofTraits; + using ElectricalTraits = scalar::LinearScalarDiffusiveDofTraits; + + /// @brief Number of dofs per node. + static constexpr int NumNodeDofs = MechanicalTraits::NumNodeDofs + ElectricalTraits::NumNodeDofs; + + /// @brief Number of fixed periodic dofs to remove rigid-body transformations. + static constexpr int NumFixedDofs = MechanicalTraits::NumFixedDofs + ElectricalTraits::NumFixedDofs; + + /** + * @brief Expands element node indices into dofs. + * + * Given an element with node indices [n₁, ..., nₖ], the + * associated dofs are + * + * - 2D: [2n₁, 2n₁+1, ..., 2nₖ, 2nₖ+1, n₁+2k, ..., nₖ+2k] + * + * - 3D: [3n₁, 3n₁+1, 3n₁+2, ..., 3nₖ, 3nₖ+1, 3nₖ+2, n₁+3k, ..., nₖ+3k] + * + * @tparam K Number of element nodes. + * + * @param[in] element Element node indices. + * @param[in] numNodes Total number of nodes. + * + * @returns Dofs associated with `element`. + */ + template + static auto elementDofs(const std::array &element, std::size_t numNodes) noexcept { + const std::size_t numMechanicalDofs = numNodes * MechanicalTraits::NumNodeDofs; + + // Mechanical dofs + const auto mechanicalDofs = MechanicalTraits::elementDofs(element, numNodes); + + // Electrical dofs + auto electricalDofs = ElectricalTraits::elementDofs(element, numNodes); + + // Offset electrical dofs by number of mechanical dofs + for (auto &dof : electricalDofs) { + dof += numMechanicalDofs; + } + + // Concatenate + std::array dofs; + std::size_t index = 0; + + for (auto dof : mechanicalDofs) { + dofs[index++] = dof; + } + for (auto dof : electricalDofs) { + dofs[index++] = dof; + } + + return dofs; + } + + /** + * @brief Returns `true` if a periodic dof is fixed. + * + * The first `D` mechanical dofs and the first electrical + * dof are fixed: + * + * - 2D: [0, 1, 2m] + * + * - 3D: [0, 1, 2, 3m] + * + * @param[in] dof Periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns `true` if `dof` is fixed, `false` otherwise. + */ + static bool isFixedPeriodicDof(std::size_t dof, std::size_t numNodes) noexcept { + const std::size_t numMechanicalDofs = numNodes * MechanicalTraits::NumNodeDofs; + + // Fixed mechanical periodic dofs + if (dof < numMechanicalDofs) { + return MechanicalTraits::isFixedPeriodicDof(dof, numNodes); + } + + // Fixed electrical periodic dof + // Electrical periodic dofs are offset by number of mechanical periodic dofs + return ElectricalTraits::isFixedPeriodicDof(dof - numMechanicalDofs, numNodes); + } + + /** + * @brief Maps a periodic dof to a reduced periodic dof. + * + * The reduced periodic dof space is formed by removing fixed + * periodic dofs from the full periodic dof numbering. + * + * @param[in] dof Periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns Reduced periodic dof. + */ + static std::size_t periodicToReducedDof(std::size_t dof, std::size_t numNodes) noexcept { + const std::size_t numMechanicalDofs = numNodes * MechanicalTraits::NumNodeDofs; + const std::size_t numReducedMechanicalDofs = numMechanicalDofs - MechanicalTraits::NumFixedDofs; + + // Mechanical periodic dofs + if (dof < numMechanicalDofs) { + return MechanicalTraits::periodicToReducedDof(dof, numNodes); + } + + // Electrical periodic dofs + // Electrical periodic dofs are offset by number of mechanical periodic dofs + return ElectricalTraits::periodicToReducedDof(dof - numMechanicalDofs, numNodes) + numReducedMechanicalDofs; + } + + /** + * @brief Maps a reduced periodic dof to a periodic dof. + * + * The reduced periodic dof space is formed by removing fixed + * periodic dofs from the full periodic dof numbering. + * + * @param[in] dof Reduced periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns Periodic dof. + */ + static std::size_t reducedToPeriodicDof(std::size_t dof, std::size_t numNodes) noexcept { + const std::size_t numMechanicalDofs = numNodes * MechanicalTraits::NumNodeDofs; + const std::size_t numReducedMechanicalDofs = numMechanicalDofs - MechanicalTraits::NumFixedDofs; + + // Mechanical reduced periodic dofs + if (dof < numReducedMechanicalDofs) { + return MechanicalTraits::reducedToPeriodicDof(dof, numNodes); + } + + // Electrical reduced periodic dofs + // Electrical reduced periodic dofs are offset by number of mechanical reduced periodic dofs + return ElectricalTraits::reducedToPeriodicDof(dof - numReducedMechanicalDofs, numNodes) + numMechanicalDofs; + } + }; + + } // namespace multiphysics + + } // namespace fem + +} // namespace monad diff --git a/include/monad/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_traits.hpp b/include/monad/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_traits.hpp deleted file mode 100644 index 3fb9e34..0000000 --- a/include/monad/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_traits.hpp +++ /dev/null @@ -1,178 +0,0 @@ -#pragma once - -#include -#include -#include "monad/fem/operator/mechanical/linear_elastic_matrix_free_operator_traits.hpp" -#include "monad/fem/operator/scalar/linear_scalar_diffusive_matrix_free_operator_traits.hpp" - -namespace monad { - - namespace fem { - - namespace multiphysics { - - /** - * @brief Linear piezoelectric matrix free operator traits. - * - * This struct isolates physics- and dimension-specific logic - * so that the matrix free operator can be written generically. - * - * @tparam D Spatial dimension (2 or 3). - */ - template - struct LinearPiezoelectricMatrixFreeOperatorTraits { - using MechanicalTraits = mechanical::LinearElasticMatrixFreeOperatorTraits; - using ElectricalTraits = scalar::LinearScalarDiffusiveMatrixFreeOperatorTraits; - - /// @brief Number of dofs per node. - static constexpr int NumNodeDofs = MechanicalTraits::NumNodeDofs + ElectricalTraits::NumNodeDofs; - - /// @brief Number of fixed dofs to remove rigid body transformations. - static constexpr int NumFixedDofs = MechanicalTraits::NumFixedDofs + ElectricalTraits::NumFixedDofs; - - /** - * @brief List of dofs associated with an element's nodes. - * - * Given an element with node indices [n₁, ..., nₖ], its dofs are: - * - * - D=2: [2n₁, 2n₁+1, ..., 2nₖ, 2nₖ+1, n₁+2k, ..., nₖ+2k] - * - * - D=3: [3n₁, 3n₁+1, 3n₁+2, ..., 3nₖ, 3nₖ+1, 3nₖ+2, n₁+3k, ..., nₖ+3k] - * - * @tparam K Number of nodes in the element. - * - * @param[in] element Node indices for a specific element. - * @param[in] numNodes Number of nodes. - * - * @returns List of dofs associated with `element`'s nodes. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - template - static auto dofs(const std::array &element, std::size_t numNodes) noexcept { - const std::size_t numMechanicalDofs = numNodes * MechanicalTraits::NumNodeDofs; - - // Mechanical dofs - const auto mechanicalDofs = MechanicalTraits::dofs(element, numNodes); - - // Electrical dofs - auto electricalDofs = ElectricalTraits::dofs(element, numNodes); - - // Offset electrical dofs by number of mechanical dofs - for (auto &dof : electricalDofs) { - dof += numMechanicalDofs; - } - - // Concatenate - std::array data; - std::size_t index = 0; - - for (auto dof : mechanicalDofs) { - data[index++] = dof; - } - for (auto dof : electricalDofs) { - data[index++] = dof; - } - - return data; - } - - /** - * @brief Checks if a global dof is fixed. - * - * The fixed dofs are (assuming m total nodes): - * - * - D=2: [0, 1, 2m] - * - * - D=3: [0, 1, 2, 3m] - * - * @param[in] dof Global dof. - * @param[in] numNodes Number of nodes. - * - * @returns `true` if `dof` is fixed, `false` otherwise. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static bool isFixedDof(std::size_t dof, std::size_t numNodes) noexcept { - const std::size_t numMechanicalDofs = numNodes * MechanicalTraits::NumNodeDofs; - - // Fixed mechanical dofs - if (dof < numMechanicalDofs) { - return MechanicalTraits::isFixedDof(dof, numNodes); - } - - // Fixed electrical dof - // Electrical dofs are offset by number of mechanical dofs - return ElectricalTraits::isFixedDof(dof - numMechanicalDofs, numNodes); - } - - /** - * @brief Maps a global dof to its reduced version. - * - * Matrix-free operators act only on unconstrained periodic dofs. - * This function maps dofs from a space where fixed dofs are - * included to a space where they are removed. - * - * @param[in] dof Global dof. - * @param[in] numNodes Number of nodes. - * - * @returns Reduced dof. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static std::size_t reducedDof(std::size_t dof, std::size_t numNodes) noexcept { - const std::size_t numMechanicalDofs = numNodes * MechanicalTraits::NumNodeDofs; - const std::size_t numReducedMechanicalDofs = numMechanicalDofs - MechanicalTraits::NumFixedDofs; - - // Shifting for mechanical dofs. - if (dof < numMechanicalDofs) { - return MechanicalTraits::reducedDof(dof, numNodes); - } - - // Shifting for electrical dof - // Electrical dofs are offset by number of mechanical dofs - return ElectricalTraits::reducedDof(dof - numMechanicalDofs, numNodes) + numReducedMechanicalDofs; - } - - /** - * @brief Maps a reduced dof to its global version. - * - * Matrix-free operators act only on unconstrained periodic dofs. - * This function maps dofs from a space where fixed dofs - * are removed to a space where they are included. - * - * @param[in] dof Reduced dof. - * @param[in] numNodes Number of nodes. - * - * @returns Global dof. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static std::size_t expandedDof(std::size_t dof, std::size_t numNodes) noexcept { - const std::size_t numMechanicalDofs = numNodes * MechanicalTraits::NumNodeDofs; - const std::size_t numReducedMechanicalDofs = numMechanicalDofs - MechanicalTraits::NumFixedDofs; - - // Shifting for mechanical dofs - if (dof < numReducedMechanicalDofs) { - return MechanicalTraits::expandedDof(dof, numNodes); - } - - // Shifting for electrical dof - // Electrical dofs are offset by number of mechanical dofs - return ElectricalTraits::expandedDof(dof - numReducedMechanicalDofs, numNodes) + numMechanicalDofs; - } - }; - - } // namespace multiphysics - - } // namespace fem - -} // namespace monad diff --git a/include/monad/fem/operator/scalar/linear_scalar_diffusive_dof_traits.hpp b/include/monad/fem/operator/scalar/linear_scalar_diffusive_dof_traits.hpp new file mode 100644 index 0000000..985e532 --- /dev/null +++ b/include/monad/fem/operator/scalar/linear_scalar_diffusive_dof_traits.hpp @@ -0,0 +1,107 @@ +#pragma once + +#include +#include + +namespace monad { + + namespace fem { + + namespace scalar { + + /// @brief Dof numbering rules for periodic linear scalar diffusive problems. + struct LinearScalarDiffusiveDofTraits { + /// @brief Number of dofs per node. + static constexpr int NumNodeDofs = 1; + + /// @brief Number of fixed periodic dofs to remove rigid-body transformations. + static constexpr int NumFixedDofs = 1; + + /** + * @brief Expands element node indices into dofs. + * + * Given an element with node indices [n₁, ..., nₖ], the + * associated dofs are [n₁, ..., nₖ]. + * + * @tparam K Number of element nodes. + * + * @param[in] element Element node indices. + * @param[in] numNodes Total number of nodes. + * + * @returns Dofs associated with `element`. + * + * @note `numNodes` is unused here. It is kept only to match + * the interface of other dof traits that require node-based offsets. + */ + template + static auto elementDofs(const std::array &element, std::size_t numNodes) noexcept { + (void)numNodes; + + return element; + } + + /** + * @brief Returns `true` if a periodic dof is fixed. + * + * The first periodic dof is fixed. + * + * @param[in] dof Periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns `true` if `dof` is fixed, `false` otherwise. + * + * @note `numNodes` is unused here. It is kept only to match + * the interface of other dof traits that require node-based offsets. + */ + static bool isFixedPeriodicDof(std::size_t dof, std::size_t numNodes) noexcept { + (void)numNodes; + + return dof == 0; + } + + /** + * @brief Maps a periodic dof to a reduced periodic dof. + * + * The reduced periodic dof space is formed by removing fixed + * periodic dofs from the full periodic dof numbering. + * + * @param[in] dof Periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns Reduced periodic dof. + * + * @note `numNodes` is unused here. It is kept only to match + * the interface of other dof traits that require node-based offsets. + */ + static std::size_t periodicToReducedDof(std::size_t dof, std::size_t numNodes) noexcept { + (void)numNodes; + + return dof - NumFixedDofs; + } + + /** + * @brief Maps a reduced periodic dof to a periodic dof. + * + * The reduced periodic dof space is formed by removing fixed + * periodic dofs from the full periodic dof numbering. + * + * @param[in] dof Reduced periodic dof. + * @param[in] numNodes Total number of periodic nodes. + * + * @returns Periodic dof. + * + * @note `numNodes` is unused here. It is kept only to match + * the interface of other dof traits that require node-based offsets. + */ + static std::size_t reducedToPeriodicDof(std::size_t dof, std::size_t numNodes) noexcept { + (void)numNodes; + + return dof + NumFixedDofs; + } + }; + + } // namespace scalar + + } // namespace fem + +} // namespace monad diff --git a/include/monad/fem/operator/scalar/linear_scalar_diffusive_matrix_free_operator_traits.hpp b/include/monad/fem/operator/scalar/linear_scalar_diffusive_matrix_free_operator_traits.hpp deleted file mode 100644 index 10ed857..0000000 --- a/include/monad/fem/operator/scalar/linear_scalar_diffusive_matrix_free_operator_traits.hpp +++ /dev/null @@ -1,123 +0,0 @@ -#pragma once - -#include -#include - -namespace monad { - - namespace fem { - - namespace scalar { - - /** - * @brief Linear scalar diffusive matrix free operator traits. - * - * This struct isolates physics- and dimension-specific logic - * so that the matrix free operator can be written generically. - */ - struct LinearScalarDiffusiveMatrixFreeOperatorTraits { - /// @brief Number of dofs per node. - static constexpr int NumNodeDofs = 1; - - /// @brief Number of fixed dofs to remove rigid body transformations. - static constexpr int NumFixedDofs = 1; - - /** - * @brief List of dofs associated with an element's nodes. - * - * Given an element with node indices [n₁, ..., nₖ], its dofs are: - * - * [n₁, ..., nₖ] - * - * @tparam K Number of nodes in the element. - * - * @param[in] element Node indices for a specific element. - * @param[in] numNodes Number of nodes. - * - * @returns List of dofs associated with `element`'s nodes. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - template - static auto dofs(const std::array &element, std::size_t numNodes) noexcept { - (void)numNodes; - - auto dofs = element; - - return dofs; - } - - /** - * @brief Checks if a global dof is fixed. - * - * The fixed dofs are: - * - * [0] - * - * @param[in] dof Global dof. - * @param[in] numNodes Number of nodes. - * - * @returns `true` if `dof` is fixed, `false` otherwise. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static bool isFixedDof(std::size_t dof, std::size_t numNodes) noexcept { - (void)numNodes; - - return dof == 0; - } - - /** - * @brief Maps a global dof to its reduced version. - * - * Matrix-free operators act only on unconstrained periodic dofs. - * This function maps dofs from a space where fixed dofs are - * included to a space where they are removed. - * - * @param[in] dof Global dof. - * @param[in] numNodes Number of nodes. - * - * @returns Reduced dof. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static std::size_t reducedDof(std::size_t dof, std::size_t numNodes) noexcept { - (void)numNodes; - - return dof - NumFixedDofs; - } - - /** - * @brief Maps a reduced dof to its global version. - * - * Matrix-free operators act only on unconstrained periodic dofs. - * This function maps dofs from a space where fixed dofs - * are removed to a space where they are included. - * - * @param[in] dof Reduced dof. - * @param[in] numNodes Number of nodes. - * - * @returns Global dof. - * - * @note The `numNodes` argument is included for multi-physics - * operators where dof offsets may depend on the total number - * of nodes. - */ - static std::size_t expandedDof(std::size_t dof, std::size_t numNodes) noexcept { - (void)numNodes; - - return dof + NumFixedDofs; - } - }; - - } // namespace scalar - - } // namespace fem - -} // namespace monad diff --git a/include/monad/field/density_field.hpp b/include/monad/field/density_field.hpp new file mode 100644 index 0000000..c3b15e6 --- /dev/null +++ b/include/monad/field/density_field.hpp @@ -0,0 +1,271 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include "monad/detail/constants.hpp" + +namespace monad { + + namespace field { + + /** + * @brief Per-element density field. + * + * @tparam D Spatial dimension (2 or 3). + */ + template + class DensityField { + public: + static_assert(D == 2 || D == 3, "Density field spatial dimension must be 2 or 3."); + + static constexpr int Dim = D; + + using Resolution = std::array; + using DensityList = std::vector; + + /** + * @brief Constructs a density field. + * + * @param[in] resolution Number of elements in each dimension. + * + * @throws std::invalid_argument if any entry in `resolution` is zero. + * + * @note Densities are initalized to zero. + */ + explicit DensityField(const Resolution& resolution) + : resolution_(resolution) { + for (std::size_t i = 0; i < D; ++i) { + if (resolution_[i] == 0) { + throw std::invalid_argument("Resolution in dimension " + std::to_string(i + 1) + " must be positive."); + } + } + + densities_.resize(numElements()); + setZeros(); + } + + /// @brief Number of elements in each dimension. + const Resolution& resolution() const noexcept { + return resolution_; + } + + /// @brief Number of elements. + std::size_t numElements() const noexcept { + std::size_t total = 1; + + for (std::size_t n : resolution_) { + total *= n; + } + + return total; + } + + /** + * @brief Per-element material densities. + * + * @note Densities are stored in row-major order. + */ + const DensityList& densities() const noexcept { + return densities_; + } + + /** + * @brief Material density of an element. + * + * @param[in] index Element index. + * + * @returns Material density of an element. + * + * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). + */ + double getDensity(std::size_t index) const { + if (index >= numElements()) { + throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); + } + + return densities_[index]; + } + + /** + * @brief Set the material density of an element. + * + * @param[in] index Element index. + * @param[in] density Density. + * + * @throws std::invalid_argument if `density` is outside the range [0,1]. + * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). + * + * @note Densities are clamped to a minimum value of `ZERO_TOLERANCE` to improve + * numerical stability. + */ + void setDensity(std::size_t index, double density) { + if (index >= numElements()) { + throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); + } + + if (density < 0.0 || density > 1.0) { + throw std::invalid_argument("Density (" + std::to_string(density) + ") is out of range [0,1]."); + } + + densities_[index] = std::max(NUMERICAL_ZERO, density); + } + + /** + * @brief Set the material densities. + * + * @param[in] densities Densities. + * + * @throws std::invalid_argument if the size of `densities` does not equal the number of grid elements. + * @throws std::invalid_argument if any value in `densities` is outside the range [0,1]. + * + * @note Densities are stored in row-major order. + * @note Densities are clamped to a minimum value of `ZERO_TOLERANCE` to improve numerical stability. + */ + void setDensities(const DensityList& densities) { + if (densities.size() != numElements()) { + throw std::invalid_argument("Densities size (" + std::to_string(densities.size()) + ") must equal number of elements (" + std::to_string(numElements()) + ")."); + } + + for (std::size_t i = 0; i < densities.size(); ++i) { + setDensity(i, densities[i]); + } + } + + /** + * @brief Sets all material densities to a constant value. + * + * @param[in] density Density. + * + * @throws std::invalid_argument if `density` is outside the range [0,1]. + * + * @note Densities are clamped to a minimum value of `ZERO_TOLERANCE` to + * improve numerical stability. + */ + void setConstant(double density) { + if (density < 0.0 || density > 1.0) { + throw std::invalid_argument("Density (" + std::to_string(density) + ") is out of range [0,1]."); + } + + for (std::size_t i = 0; i < numElements(); ++i) { + setDensity(i, density); + } + } + + /// @brief Sets all material densities to zero. + void setZeros() noexcept { + setConstant(0.0); + } + + /// @brief Sets all material densities to one. + void setOnes() noexcept { + setConstant(1.0); + } + + /** + * @brief Set the material densities to random values. + * + * @param[in] seed RNG seed (optional). + * + * @note Densities are clamped to a minimum value of + * `ZERO_TOLERANCE` to improve numerical stability. + */ + void setRandom(unsigned int seed = std::random_device{}()) noexcept { + std::mt19937 rng(seed); + + for (std::size_t i = 0; i < numElements(); ++i) { + // std::uniform_real_distribution is not portably defined across compilers. + // Use the standardized mt19937 engine to guarantee consistency across Mac, + // Windows, and Linux. + const double density = static_cast(rng()) / static_cast(std::mt19937::max()); + + setDensity(i, density); + } + } + + /** + * @brief Periodically translates the element densities. + * + * @param[in] shift Shift in each directions. + */ + void translate(const Resolution& shift) noexcept { + DensityList shifted(numElements()); + + if constexpr (D == 2) { + const std::size_t nx = resolution_[0]; + const std::size_t ny = resolution_[1]; + + for (std::size_t i = 0; i < nx; ++i) { + for (std::size_t j = 0; j < ny; ++j) { + const std::size_t oldIndex = j * nx + i; + const std::size_t iNew = (i + shift[0]) % nx; + const std::size_t jNew = (j + shift[1]) % ny; + const std::size_t newIndex = jNew * nx + iNew; + + shifted[newIndex] = densities_[oldIndex]; + } + } + } + else { + const std::size_t nx = resolution_[0]; + const std::size_t ny = resolution_[1]; + const std::size_t nz = resolution_[2]; + const std::size_t elementsPerPlane = nx * ny; + + for (std::size_t i = 0; i < nx; ++i) { + for (std::size_t j = 0; j < ny; ++j) { + for (std::size_t k = 0; k < nz; ++k) { + const std::size_t oldIndex = k * elementsPerPlane + j * nx + i; + const std::size_t iNew = (i + shift[0]) % nx; + const std::size_t jNew = (j + shift[1]) % ny; + const std::size_t kNew = (k + shift[2]) % nz; + const std::size_t newIndex = kNew * elementsPerPlane + jNew * nx + iNew; + + shifted[newIndex] = densities_[oldIndex]; + } + } + } + } + + setDensities(shifted); + } + + /// @brief Equality comparison. + bool operator==(const DensityField& other) const noexcept { + auto vectorEqual = [](const DensityList& v1, const DensityList& v2) noexcept { + if (v1.size() != v2.size()) { + return false; + } + + for (std::size_t i = 0; i < v1.size(); ++i) { + if (std::fabs(v1[i] - v2[i]) > NUMERICAL_ZERO) { + return false; + } + } + + return true; + }; + + return resolution_ == other.resolution_ && vectorEqual(densities_, other.densities_); + } + + /// @brief Inequality comparison. + bool operator!=(const DensityField& other) const noexcept { + return !(*this == other); + } + + private: + /// @brief Number of elements in each dimension. + Resolution resolution_; + + /// @brief Per-element material densities. + DensityList densities_; + }; + + } // namespace field + +} // namespace monad diff --git a/include/monad/field/field_aliases.hpp b/include/monad/field/field_aliases.hpp new file mode 100644 index 0000000..d223bf4 --- /dev/null +++ b/include/monad/field/field_aliases.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "monad/field/density_field.hpp" + +namespace monad { + + /// @brief Per-element density field for 2d grids. + using DensityField2d = field::DensityField<2>; + + /// @brief Per-element density field for 2d grids. + using DensityField3d = field::DensityField<3>; + +} // namespace monad diff --git a/include/monad/field/make_density_field_from_csv.hpp b/include/monad/field/make_density_field_from_csv.hpp new file mode 100644 index 0000000..6c3a9c9 --- /dev/null +++ b/include/monad/field/make_density_field_from_csv.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include +#include "monad/field/field_aliases.hpp" + +namespace monad { + + /** + * @brief Constructs a 2D density field from a CSV file. + * + * @param[in] file Path to the CSV file. + * + * @returns 2D density field defined by the `file` entries. + * + * @throws std::runtime_error if `file` cannot be opened. + * @throws std::runtime_error if `file` is empty. + * @throws std::runtime_error if `file` contains non-numeric values. + * @throws std::runtime_error if `file` contains any value outside the range [0,1]. + * @throws std::runtime_error if `file` contains rows with inconsistent lengths. + * + * @note CSV entries are interpreted as a 2D grid with the origin at the + * bottom-left corner. + */ + DensityField2d makeDensityFieldFromCsv(const std::string& file); + +} // namespace monad diff --git a/include/monad/field/make_density_field_from_function.hpp b/include/monad/field/make_density_field_from_function.hpp new file mode 100644 index 0000000..e3fbe4d --- /dev/null +++ b/include/monad/field/make_density_field_from_function.hpp @@ -0,0 +1,63 @@ +#pragma once + +#include +#include +#include +#include +#include "monad/field/density_field.hpp" +#include "monad/integration/integrate_scalar.hpp" + +namespace monad { + + /** + * @brief Constructs a density field from a continuous function. + * + * Element densities are computed by averaging a continuous function + * + * ```text + * f:ℝᵈ→[0,1] + * ``` + * + * over each grid element using numerical quadrature. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + * + * @param[in] grid Grid. + * @param[in] f Function. + * + * @returns Density field defined on the grid elements. + * + * @throws std::invalid_argument if `f` returns a value outside the range [0,1]. + * + * @note Densities are clamped to a minimum value of `ZERO_TOLERANCE` to improve + * numerical stability. + */ + template + inline field::DensityField makeDensityFieldFromFunction(const Grid &grid, const std::function& f) { + field::DensityField densityField(grid.resolution()); + + for (std::size_t i = 0; i < grid.numElements(); ++i) { + const auto nodes = grid.elementNodes(i); + + auto integrand = [&](const typename Grid::Point& point) -> double { + const auto N = Grid::Element::shapeFunctions(point); + const typename Grid::Point globalPoint = N.transpose() * nodes; + + const double density = f(globalPoint); + if (density < 0.0 || density > 1.0) { + throw std::invalid_argument("Function value (" + std::to_string(density) + ") is outside range [0,1]."); + } + + const auto J = Grid::Element::jacobian(point, nodes); + + return density * std::abs(J.determinant()); + }; + + const double density = integration::integrateScalar(integrand, Grid::Element::quadratureRule()) / Grid::Element::measure(nodes); + densityField.setDensity(i, density); + } + + return densityField; + } + +} // namespace monad diff --git a/include/monad/grid/grid_2d_base.hpp b/include/monad/grid/grid_2d_base.hpp deleted file mode 100644 index 06070a3..0000000 --- a/include/monad/grid/grid_2d_base.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include "monad/grid/grid_base.hpp" - -namespace monad { - - /** - * @brief Curiously recurring template pattern (CRTP) base class for 2D grid meshes. - * - * @tparam Derived Concrete grid mesh class (CRTP). - * @tparam Element Concrete element class (e.g. Quad4). - * - * @note `Derived` classes must provide: - * - * - `std::size_t numNodes() const noexcept` - * - * - `std::size_t numPeriodicNodes() const noexcept` - * - * - `Point node(std::size_t index) const` - * - * - `ElementList element(std::size_t index) const` - * - * - `ElementList periodicElement(std::size_t index) const` - */ - template - class Grid2dBase : public GridBase { - public: - static_assert(Element::Dim == 2, "Element spatial dimension must be 2."); - - using GridBase::GridBase; - using Resolution = typename GridBase::Resolution; - using DensityList = typename GridBase::DensityList; - - /** - * @brief Translates the element densities periodically. - * - * @param[in] shift Shift in each directions. - */ - void translate(const Resolution &shift) noexcept { - DensityList shiftedDensities(this->numElements()); - - const std::size_t nx = this->resolution_[0]; - const std::size_t ny = this->resolution_[1]; - - for (std::size_t i = 0; i < nx; ++i) { - for (std::size_t j = 0; j < ny; ++j) { - const std::size_t oldIndex = j * nx + i; - - const std::size_t iNew = (i + shift[0]) % nx; - const std::size_t jNew = (j + shift[1]) % ny; - - std::size_t newIndex = jNew * nx + iNew; - - shiftedDensities[newIndex] = this->densities_[oldIndex]; - } - } - - this->setDensities(shiftedDensities); - } - - /// @brief Grid area. - double area() const noexcept { - return this->measure(); - } - - /** - * @brief Set the material densities using a CSV file. - * - * @param[in] file CSV file. - * - * @throws std::runtime_error if `file` cannot be opened. - * @throws std::runtime_error if `file` contains no data. - * @throws std::runtime_error if `file` contains non-numeric data. - * @throws std::runtime_error if `file` contains numbers outside the range [0, 1]. - * @throws std::runtime_error if `file` contains rows/columns not matching the grid resolution. - * - * @note The CSV data is interpreted as a 2D array with the origin - * located at the bottom-left corner. - */ - void setDensitiesFile(const std::string &file) { - std::ifstream ifs(file, std::ios::in | std::ios::binary); - if (!ifs.is_open()) { - throw std::runtime_error("Could not open " + file + " for reading."); - } - - const std::size_t nx = this->resolution_[0]; - const std::size_t ny = this->resolution_[1]; - - std::vector> rows; - - std::string line; - - // Load csv data - while (std::getline(ifs, line)) { - if (line.empty()) { - continue; - } - - std::istringstream iss(line); - std::string cell; - - std::vector row; - row.reserve(nx); - - while (std::getline(iss, cell, ',')) { - if (cell.empty()) { - continue; - } - - double value; - try { - value = std::stod(cell); - } - catch (const std::invalid_argument &) { - throw std::runtime_error("File " + file + " contains non-numeric data."); - } - if (value < 0.0 || value > 1.0) { - throw std::runtime_error("File " + file + " contains data outside the range [0,1]."); - } - row.push_back(value); - } - - if (row.empty()) { - continue; - } - - if (row.size() != nx) { - throw std::runtime_error("File " + file + " number of columns (" + std::to_string(row.size()) + ") does not equal grid x-resolution (" + std::to_string(nx) + ")."); - } - - rows.push_back(row); - } - - if (rows.size() != ny) { - throw std::runtime_error("File " + file + " number of rows (" + std::to_string(rows.size()) + ") does not equal grid y-resolution (" + std::to_string(ny) + ")."); - } - - // Flatten csv data - for (std::size_t i = 0; i < ny; ++i) { - for (std::size_t j = 0; j < nx; ++j) { - std::size_t rowStart = nx * (ny - 1 - i); - this->setDensity(rowStart + j, rows[i][j]); - } - } - } - }; - -} // namespace monad diff --git a/include/monad/grid/grid_3d_base.hpp b/include/monad/grid/grid_3d_base.hpp deleted file mode 100644 index e0cdc36..0000000 --- a/include/monad/grid/grid_3d_base.hpp +++ /dev/null @@ -1,73 +0,0 @@ -#pragma once - -#include "monad/grid/grid_base.hpp" - -namespace monad { - - /** - * @brief Curiously recurring template pattern (CRTP) base class for 3D grid meshes. - * - * @tparam Derived Concrete grid mesh class (CRTP). - * @tparam Element Concrete element class (e.g. Hex8). - * - * @note `Derived` classes must provide: - * - * - `std::size_t numNodes() const noexcept` - * - * - `std::size_t numPeriodicNodes() const noexcept` - * - * - `Point node(std::size_t index) const` - * - * - `ElementList element(std::size_t index) const` - * - * - `ElementList periodicElement(std::size_t index) const` - */ - template - class Grid3dBase : public GridBase { - public: - static_assert(Element::Dim == 3, "Element spatial dimension must be 3."); - - using GridBase::GridBase; - using Resolution = typename GridBase::Resolution; - using DensityList = typename GridBase::DensityList; - - /** - * @brief Translates the element densities periodically. - * - * @param[in] shift Shift in each directions. - */ - void translate(const Resolution &shift) noexcept { - DensityList shiftedDensities(this->numElements()); - - const std::size_t nx = this->resolution_[0]; - const std::size_t ny = this->resolution_[1]; - const std::size_t nz = this->resolution_[2]; - - const std::size_t elementsPerPlane = nx * ny; - - for (std::size_t i = 0; i < nx; ++i) { - for (std::size_t j = 0; j < ny; ++j) { - for (std::size_t k = 0; k < nz; ++k) { - const std::size_t oldIndex = k * elementsPerPlane + j * nx + i; - - const std::size_t iNew = (i + shift[0]) % nx; - const std::size_t jNew = (j + shift[1]) % ny; - const std::size_t kNew = (k + shift[2]) % nz; - - std::size_t newIndex = kNew * elementsPerPlane + jNew * nx + iNew; - - shiftedDensities[newIndex] = this->densities_[oldIndex]; - } - } - } - - this->setDensities(shiftedDensities); - } - - /// @brief Grid volume. - double volume() const noexcept { - return this->measure(); - } - }; - -} // namespace monad diff --git a/include/monad/grid/grid_aliases.hpp b/include/monad/grid/grid_aliases.hpp new file mode 100644 index 0000000..bbdd253 --- /dev/null +++ b/include/monad/grid/grid_aliases.hpp @@ -0,0 +1,139 @@ +#pragma once + +#include "monad/grid/structured_grid.hpp" +#include "monad/grid/quad4_topology.hpp" +#include "monad/grid/quad8_topology.hpp" +#include "monad/grid/hex8_topology.hpp" +#include "monad/grid/hex20_topology.hpp" + +namespace monad { + + /** + * @brief 2D structured grid of 4-node quadrilateral (Quad4) elements. + * + * Example 3x2 grid: + * + * ```text + * o───────o───────o───────o + * │ │ │ │ + * │ │ │ │ + * │ │ │ │ + * o───────o───────o───────o + * │ │ │ │ + * │ │ │ │ + * │ │ │ │ + * o───────o───────o───────o + * ``` + * + * Global axes: + * + * - x runs left→right. + * + * - y runs bottom→top. + */ + using Quad4Grid = grid::StructuredGrid; + + /** + * @brief 2D structured grid of 8-node quadrilateral (Quad8) elements. + * + * Example 3x2 grid: + * + * ```text + * o───o───o───o───o───o───o + * │ │ │ │ + * o o o o + * │ │ │ │ + * o───o───o───o───o───o───o + * │ │ │ │ + * o o o o + * │ │ │ │ + * o───o───o───o───o───o───o + * ``` + * + * Global axes: + * + * - x runs left→right. + * + * - y runs bottom→top. + */ + using Quad8Grid = grid::StructuredGrid; + + /** + * @brief 3D structured grid of 8-node hexahedral (Hex8) elements. + * + * Example 3x2x2 grid: + * + * ```text + * o─────────o─────────o─────────o + * / / / /│ + * / / / / │ + * / / / / │ + * o─────────o─────────o─────────o │ + * / / / /│ │ + * / / / / │ o + * / / / / │ /│ + * o─────────o─────────o─────────o │ / │ + * │ │ │ │ │/ │ + * │ │ │ │ o │ + * │ │ │ │ /│ │ + * │ │ │ │ / │ o + * │ │ │ │/ │ / + * o─────────o─────────o─────────o │ / + * │ │ │ │ │/ + * │ │ │ │ o + * │ │ │ │ / + * │ │ │ │ / + * │ │ │ │/ + * o─────────o─────────o─────────o + * ``` + * + * Global axes: + * + * - x runs left→right. + * + * - y runs front→back. + * + * - z runs bottom→top. + */ + using Hex8Grid = grid::StructuredGrid; + + /** + * @brief 3D structured grid of 20-node hexahedral (Hex20) elements. + * + * Example 3x2x2 grid: + * + * ```text + * o────o────o────o────o────o────o + * / / / /│ + * o o o o │ + * / / / / o + * o────o────o────o────o────o────o │ + * / / / /│ │ + * o o o o │ o + * / / / / o /│ + * o────o────o────o────o────o────o │ o │ + * │ │ │ │ │/ o + * │ │ │ │ o │ + * o o o o /│ │ + * │ │ │ │ o │ o + * │ │ │ │/ o / + * o────o────o────o────o────o────o │ o + * │ │ │ │ │/ + * │ │ │ │ o + * o o o o / + * │ │ │ │ o + * │ │ │ │/ + * o────o────o────o────o────o────o + * ``` + * + * Global axes: + * + * - x runs left→right. + * + * - y runs front→back. + * + * - z runs bottom→top. + */ + using Hex20Grid = grid::StructuredGrid; + +} // namespace monad diff --git a/include/monad/grid/grid_base.hpp b/include/monad/grid/grid_base.hpp deleted file mode 100644 index 0cb26e8..0000000 --- a/include/monad/grid/grid_base.hpp +++ /dev/null @@ -1,424 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include "monad/detail/constants.hpp" -#include "monad/integration/integrate_scalar.hpp" - -namespace monad { - - /** - * @brief Curiously recurring template pattern (CRTP) base class for grid meshes. - * - * @tparam Derived Concrete grid mesh class (CRTP). - * @tparam ElementT Concrete element class (e.g. Quad4). - * - * @note `Derived` classes must provide: - * - * - `std::size_t numNodes() const noexcept` - * - * - `std::size_t numPeriodicNodes() const noexcept` - * - * - `Point node(std::size_t index) const` - * - * - `ElementList element(std::size_t index) const` - * - * - `ElementList periodicElement(std::size_t index) const` - * - * - `void translate(const Resolution &shift) noexcept` - */ - template - class GridBase { - public: - static_assert(ElementT::Dim == 2 || ElementT::Dim == 3, "Element spatial dimension must be 2 or 3."); - - using Element = ElementT; - - /// @brief Spatial dimension (2 or 3). - static constexpr int Dim = Element::Dim; - - using Resolution = std::array; - using Size = std::array; - - using Point = typename Element::Point; - using NodesMatrix = typename Element::NodesMatrix; - - using NodesList = std::vector; - using ElementList = std::array; - using ElementsList = std::vector; - using DensityList = std::vector; - - /** - * @brief Constructs a grid mesh. - * - * @param[in] resolution How many cells in each dimension. - * @param[in] size Physical lengths in each dimension. - * - * @throws std::invalid_argument if any entry in `resolution` is zero. - * @throws std::invalid_argument if any entry in `size` is non-positive. - * - * @note Densities are initalized to 0. - */ - GridBase(const Resolution &resolution, const Size &size) - : resolution_(resolution), size_(size) { - for (std::size_t i = 0; i < Dim; ++i) { - if (resolution_[i] == 0) { - throw std::invalid_argument("Resolution in dimension " + std::to_string(i + 1) + " must be positive."); - } - - if (size_[i] <= 0) { - throw std::invalid_argument("Size in dimension " + std::to_string(i + 1) + " (" + std::to_string(size_[i]) + ") must be positive."); - } - } - - densities_.resize(numElements()); - setDensitiesZeros(); - } - - /// @brief How many cells in each dimension. - const Resolution &resolution() const noexcept { - return resolution_; - } - - /// @brief Physical lengths in each dimension. - const Size &size() const noexcept { - return size_; - } - - /** - * @brief Material density at each element. - * - * @note Densities are stored in row-major order. - */ - const DensityList &densities() const noexcept { - return densities_; - } - - /// @brief Number of elements. - std::size_t numElements() const noexcept { - std::size_t product = 1; - - for (std::size_t entry : resolution_) { - product *= entry; - } - - return product; - } - - /// @brief Number of nodes. - std::size_t numNodes() const noexcept { - return derived().numNodes(); - } - - /// @brief Number of periodic nodes. - std::size_t numPeriodicNodes() const noexcept { - return derived().numPeriodicNodes(); - } - - /** - * @brief Coordinates for a specific node. - * - * @param[in] index Node index. - * - * @returns Coordinates. - * - * @throws std::out_of_range if `index` is outside the range [0,`numNodes()`). - */ - Point node(std::size_t index) const { - return derived().node(index); - } - - /// @brief Coordinates for all nodes. - NodesList nodes() const noexcept { - NodesList data; - data.reserve(numNodes()); - - for (std::size_t i = 0; i < numNodes(); ++i) { - data.push_back(node(i)); - } - - return data; - } - - /** - * @brief Node indices for a specific element. - * - * @param[in] index Element index. - * - * @returns Node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList element(std::size_t index) const { - return derived().element(index); - } - - /// @brief Node indices for all elements. - ElementsList elements() const noexcept { - ElementsList data; - data.reserve(numElements()); - - for (std::size_t i = 0; i < numElements(); ++i) { - data.push_back(element(i)); - } - - return data; - } - - /** - * @brief Periodic node indices for a specific element. - * - * @param[in] index Element index. - * - * @returns Periodic node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList periodicElement(std::size_t index) const { - return derived().periodicElement(index); - } - - /// @brief Periodic node indices for all elements. - ElementsList periodicElements() const noexcept { - ElementsList data; - data.reserve(numElements()); - - for (std::size_t i = 0; i < numElements(); ++i) { - data.push_back(periodicElement(i)); - } - - return data; - } - - /** - * @brief Material density for a specific element. - * - * @param[in] index Element index. - * - * @returns Material density. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - double getDensity(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - return densities_[index]; - } - - /** - * @brief Set the material density for a specific element. - * - * @param[in] index Element index. - * @param[in] density Element density. - * - * @throws std::invalid_argument if `density` is outside the range [0,1]. - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - * - * @note Densities are clamped to a minimum value `NUMERICAL_ZERO` to ensure numerical stability. - */ - void setDensity(std::size_t index, double density) { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - if (density < 0 || density > 1) { - throw std::invalid_argument("Density (" + std::to_string(density) + ") is out of range [0,1]."); - } - - densities_[index] = std::max(NUMERICAL_ZERO, density); - } - - /** - * @brief Set the material densities. - * - * @param[in] densities Material densities. - * - * @throws std::invalid_argument if the size of `densities` does not equal the number of grid elements. - * @throws std::invalid_argument if any value in `densities` is outside the range [0,1]. - * - * @note Densities are stored in row-major order. - * @note Densities are clamped to a minimum value `NUMERICAL_ZERO` to ensure numerical stability. - */ - void setDensities(DensityList densities) { - if (densities.size() != numElements()) { - throw std::invalid_argument("Densities size (" + std::to_string(densities.size()) + ") must equal number of grid elements (" + std::to_string(numElements()) + ")."); - } - - for (std::size_t i = 0; i < densities.size(); ++i) { - setDensity(i, densities[i]); - } - } - - /** - * @brief Set the material densities to a specific value. - * - * @param[in] density Element density. - * - * @throws std::invalid_argument if `density` is outside the range [0,1]. - * - * @note Densities are clamped to a minimum value `NUMERICAL_ZERO` to ensure numerical stability. - */ - void setDensitiesConstant(double density) { - if (density < 0 || density > 1) { - throw std::invalid_argument("Density (" + std::to_string(density) + ") is out of range [0,1]."); - } - - for (std::size_t i = 0; i < numElements(); ++i) { - setDensity(i, density); - } - } - - /// @brief Set the material densities to zeros. - void setDensitiesZeros() noexcept { - setDensitiesConstant(0.0); - } - - /// @brief Set the material densities to ones. - void setDensitiesOnes() noexcept { - setDensitiesConstant(1.0); - } - - /** - * @brief Set the material densities to random values. - * - * @param[in] seed RNG seed (default: -1 for random). - * - * @note Densities are clamped to a minimum value `NUMERICAL_ZERO` to ensure numerical stability. - */ - void setDensitiesRandom(int seed = -1) noexcept { - std::mt19937 rng; - if (seed >= 0) { - rng.seed(static_cast(seed)); - } - - // std::uniform_real_distribution generates values in [0, 1), so setting - // Use the next representable double after 1 to make the range effectively inclusive - const double upperBound = std::nextafter(1.0, 2.0); - - std::uniform_real_distribution dist(NUMERICAL_ZERO, upperBound); - - for (std::size_t i = 0; i < numElements(); ++i) { - setDensity(i, dist(rng)); - } - } - - /** - * @brief Set the material densities using a continuous function. - * - * Element values are computed as the element-wise average of the continuous function. - * - * @param[in] f Continuous function from ℝᵈ→[0,1] evaluated at element nodes. - * - * @throws std::invalid_argument if `f` is outside the range [0,1]. - * - * @note Densities are clamped to a minimum value `NUMERICAL_ZERO` to ensure numerical stability. - */ - void setDensitiesFunction(const std::function &f) { - for (std::size_t i = 0; i < numElements(); ++i) { - const auto nodes = elementNodes(i); - - auto integrand = [&](const Point &point) -> double { - const auto N = Element::shapeFunctions(point); - const Point globalPoint = N.transpose() * nodes; - - const double density = f(globalPoint); - - if (density < 0 || density > 1) { - throw std::invalid_argument("Function value (" + std::to_string(density) + ") is outside range [0,1]."); - } - - const auto J = Element::jacobian(point, nodes); - - return density * std::abs(J.determinant()); - }; - - double density = integration::integrateScalar(integrand, Element::quadratureRule()) / Element::measure(nodes); - - setDensity(i, density); - } - } - - /** - * @brief Translates the element densities periodically. - * - * @param[in] shift Shift in each directions. - */ - void translate(const Resolution &shift) noexcept { - derived().translate(shift); - } - - /** - * @brief Nodal coordinates for a specific element. - * - * @param[in] index Element index. - * - * @returns Nodal coordinates. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - NodesMatrix elementNodes(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - NodesMatrix data; - - int j = 0; - for (std::size_t i : element(index)) { - data.row(j++) = node(i); - } - - return data; - } - - /// @brief Grid area (2D) or volume (3D). - double measure() const noexcept { - const auto referenceElementNodes = elementNodes(0); - const double referenceElementMeasure = Element::measure(referenceElementNodes); - - return referenceElementMeasure * static_cast(numElements()); - } - - /// @brief Equality comparison. - bool operator==(const GridBase &other) const noexcept { - return resolution_ == other.resolution_ - && size_ == other.size_ - && densities_ == other.densities_; - } - - /// @brief Inequality comparison. - bool operator!=(const GridBase &other) const noexcept { - return !(*this == other); - } - - protected: - /// @brief How many cells in each dimension. - Resolution resolution_; - - /// @brief Physical lengths in each dimension. - Size size_; - - /** - * @brief Material density at each element. - * - * @note Densities are stored in row-major order. - */ - DensityList densities_; - - private: - /// @brief Utility method to safely cast the base class pointer to the derived class reference (CRTP). - const Derived &derived() const noexcept { - // The static_cast is safe because Derived must inherit from GridBase - return *static_cast(this); - } - }; - -} // namespace monad diff --git a/include/monad/grid/hex20_grid.hpp b/include/monad/grid/hex20_grid.hpp deleted file mode 100644 index 33b11de..0000000 --- a/include/monad/grid/hex20_grid.hpp +++ /dev/null @@ -1,167 +0,0 @@ -#pragma once - -#include "monad/grid/grid_3d_base.hpp" -#include "monad/fem/element/hex20.hpp" - -namespace monad { - - /** - * @brief 2D grid mesh of 4-node quadrilaterl (Hex20) elements. - * - * Example 3x2x2 grid: - * - * ```text - * o────o────o────o────o────o────o - * / / / /│ - * o o o o │ - * / / / / o - * o────o────o────o────o────o────o │ - * / / / /│ │ - * o o o o │ o - * / / / / o /│ - * o────o────o────o────o────o────o │ o │ - * │ │ │ │ │/ o - * │ │ │ │ o │ - * o o o o /│ │ - * │ │ │ │ o │ o - * │ │ │ │/ o / - * o────o────o────o────o────o────o │ o - * │ │ │ │ │/ - * │ │ │ │ o - * o o o o / - * │ │ │ │ o - * │ │ │ │/ - * o────o────o────o────o────o────o - * ``` - * - * Global axes: - * - * - x runs left→right. - * - * - y runs front→back. - * - * - z runs bottom→top. - */ - class Hex20Grid : public Grid3dBase { - public: - using Grid3dBase::Grid3dBase; - - /// @brief Number of nodes. - std::size_t numNodes() const noexcept; - - /// @brief Number of periodic nodes. - std::size_t numPeriodicNodes() const noexcept; - - /** - * @brief Coordinates for a specific node. - * - * Example 3x2x2 grid: - * - * ```text - * 32───60───33───61───34───62───35 - * / / / /│ - * 83 84 85 86│ - * / / / / 110 - * 28───57───29───58───30───59───31 │ - * / / / /│ │ - * 79 80 81 82│ 23 - * / / / / 106 /│ - * 24───54───25───55───26───56───27 │ 78│ - * │ │ │ │ │/ 98 - * │ │ │ │ 19 │ - * 99 100 101 102 /│ │ - * │ │ │ │ 74│ 11 - * │ │ │ │/ 94 / - * 12───45───13───46───14───47───15 │ 70 - * │ │ │ │ │/ - * │ │ │ │ 7 - * 87 88 89 90 / - * │ │ │ │ 66 - * │ │ │ │/ - * 0────36───1────37───2────38───3 - * ``` - * - * @param[in] index Node index. - * - * @returns Coordinates. - * - * @throws std::out_of_range if `index` is outside the range [0,`numNodes()`). - */ - Point node(std::size_t index) const; - - /** - * @brief Node indices for a specific element. - * - * Example 3x2x2 grid: - * - * ```text - * 32───60───33───61───34───62───35 - * / / / /│ - * 83 𝟿 84 𝟷𝟶 85 𝟷𝟷 86│ - * / / / / 110 - * 28───57───29───58───30───59───31 │ - * / / / /│ │ - * 79 80 81 82│ 23 - * / / / / 106 /│ - * 24───54───25───55───26───56───27 │ 78│ - * │ │ │ │ │/ 98 - * │ │ │ │ 19 │ - * 99 𝟼 100 𝟽 101 𝟾 102 /│ │ - * │ │ │ │ 74│ 11 - * │ │ │ │/ 94 / - * 12───45───13───46───14───47───15 │ 70 - * │ │ │ │ │/ - * │ │ │ │ 7 - * 87 𝟶 88 𝟷 89 𝟸 90 / - * │ │ │ │ 66 - * │ │ │ │/ - * 0────36───1────37───2────38───3 - * ``` - * - * @param[in] index Element index. - * - * @returns Node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList element(std::size_t index) const; - - /** - * @brief Periodic node indices for a specific element. - * - * Example 3x2x2 grid: - * - * ```text - * 0────12───1────13───2────14───0 - * / / / /│ - * 27 𝟿 28 𝟷𝟶 29 𝟷𝟷 27│ - * / / / / 42 - * 3────15───4────16───5────17───3 │ - * / / / /│ │ - * 24 25 26 24│ 6 - * / / / / 45 /│ - * 0────12───1────13───2────14───0 │ 33│ - * │ │ │ │ │/ 36 - * │ │ │ │ 9 │ - * 42 𝟼 43 𝟽 44 𝟾 42 /│ │ - * │ │ │ │ 30│ 0 - * │ │ │ │/ 39 / - * 6────18───7────19───8────20───6 │ 27 - * │ │ │ │ │/ - * │ │ │ │ 3 - * 36 𝟶 37 𝟷 38 𝟸 36 / - * │ │ │ │ 24 - * │ │ │ │/ - * 0────12───1────13───2────14───0 - * ``` - * - * @param[in] index Element index. - * - * @returns Periodic node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList periodicElement(std::size_t index) const; - }; - -} // namespace monad diff --git a/include/monad/grid/hex20_topology.hpp b/include/monad/grid/hex20_topology.hpp index d7941a7..fae8126 100644 --- a/include/monad/grid/hex20_topology.hpp +++ b/include/monad/grid/hex20_topology.hpp @@ -9,7 +9,7 @@ namespace monad { namespace grid { /** - * @brief Topology rules for 3D structured Hex20 grids. + * @brief Topology rules for structured 3D Hex20 grids. */ struct Hex20Topology { using Element = fem::Hex20; @@ -21,266 +21,87 @@ namespace monad { /** * @brief Number of corner nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of corner nodes. */ - static std::size_t numCornerNodes(const Resolution& resolution) noexcept { - return (resolution[0] + 1) * (resolution[1] + 1) * (resolution[2] + 1); - } + static std::size_t numCornerNodes(const Resolution& resolution) noexcept; /** * @brief Number of x-edge midpoint nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of x-edge midpoint nodes. */ - static std::size_t numXMidNodes(const Resolution& resolution) noexcept { - return resolution[0] * (resolution[1] + 1) * (resolution[2] + 1); - } + static std::size_t numXMidNodes(const Resolution& resolution) noexcept; /** * @brief Number of y-edge midpoint nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of y-edge midpoint nodes. */ - static std::size_t numYMidNodes(const Resolution& resolution) noexcept { - return (resolution[0] + 1) * resolution[1] * (resolution[2] + 1); - } + static std::size_t numYMidNodes(const Resolution& resolution) noexcept; /** * @brief Number of z-edge midpoint nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of z-edge midpoint nodes. */ - static std::size_t numZMidNodes(const Resolution& resolution) noexcept { - return (resolution[0] + 1) * (resolution[1] + 1) * resolution[2]; - } + static std::size_t numZMidNodes(const Resolution& resolution) noexcept; /** * @brief Number of nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of nodes. */ - static std::size_t numNodes(const Resolution& resolution) noexcept { - return numCornerNodes(resolution) + numXMidNodes(resolution) + numYMidNodes(resolution) + numZMidNodes(resolution); - } + static std::size_t numNodes(const Resolution& resolution) noexcept; /** * @brief Number of periodic nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of periodic nodes. */ - static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept { - return 4 * resolution[0] * resolution[1] * resolution[2]; - } + static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept; /** - * @brief Coordinates for a specific node. + * @brief Coordinates of a node. * * @param[in] index Node index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * @param[in] size Physical lengths in each dimension. * - * @returns Coordinates for a specific node. + * @returns Coordinates of a node. */ - static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t nz = resolution[2]; - const std::size_t corners = numCornerNodes(resolution); - const std::size_t xMids = numXMidNodes(resolution); - const std::size_t yMids = numYMidNodes(resolution); - - const double dx = size[0] / static_cast(nx); - const double dy = size[1] / static_cast(ny); - const double dz = size[2] / static_cast(nz); - - double x; - double y; - double z; - - if (index < corners) { - const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); - const std::size_t indexInPlane = index % nodesPerPlane; - const std::size_t i = indexInPlane % (nx + 1); - const std::size_t j = indexInPlane / (nx + 1); - const std::size_t k = index / nodesPerPlane; - - x = static_cast(i) * dx; - y = static_cast(j) * dy; - z = static_cast(k) * dz; - } - else if (index < corners + xMids) { - index -= corners; - - const std::size_t nodesPerPlane = nx * (ny + 1); - const std::size_t indexInPlane = index % nodesPerPlane; - const std::size_t i = indexInPlane % nx; - const std::size_t j = indexInPlane / nx; - const std::size_t k = index / nodesPerPlane; - - x = (static_cast(i) + 0.5) * dx; - y = static_cast(j) * dy; - z = static_cast(k) * dz; - } - else if (index < corners + xMids + yMids) { - index -= corners + xMids; - - const std::size_t nodesPerPlane = (nx + 1) * ny; - const std::size_t indexInPlane = index % nodesPerPlane; - const std::size_t i = indexInPlane % (nx + 1); - const std::size_t j = indexInPlane / (nx + 1); - const std::size_t k = index / nodesPerPlane; - - x = static_cast(i) * dx; - y = (static_cast(j) + 0.5) * dy; - z = static_cast(k) * dz; - } - else { - index -= corners + xMids + yMids; - - const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); - const std::size_t indexInPlane = index % nodesPerPlane; - const std::size_t i = indexInPlane % (nx + 1); - const std::size_t j = indexInPlane / (nx + 1); - const std::size_t k = index / nodesPerPlane; - - x = static_cast(i) * dx; - y = static_cast(j) * dy; - z = (static_cast(k) + 0.5) * dz; - } - - return Point(x, y, z); - } + static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept; /** - * @brief Node indices for a specific element. + * @brief Node indices of an element. * * @param[in] index Element index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Node indices for a specific element. + * @returns Node indices of an element. */ - static ElementList element(std::size_t index, const Resolution& resolution) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t elementsPerPlane = nx * ny; - const std::size_t corners = numCornerNodes(resolution); - const std::size_t xMids = numXMidNodes(resolution); - const std::size_t yMids = numYMidNodes(resolution); - - const std::size_t i = index % nx; - const std::size_t j = (index / nx) % ny; - const std::size_t k = index / elementsPerPlane; - - const auto cornerNodeIndex = [nx, ny](std::size_t ii, std::size_t jj, std::size_t kk) { - return kk * ((nx + 1) * (ny + 1)) + jj * (nx + 1) + ii; - }; - - const auto xMidNodeIndex = [nx, ny, corners](std::size_t ii, std::size_t jj, std::size_t kk) { - return corners + kk * nx * (ny + 1) + jj * nx + ii; - }; - - const auto yMidNodeIndex = [nx, ny, corners, xMids](std::size_t ii, std::size_t jj, std::size_t kk) { - return corners + xMids + kk * (nx + 1) * ny + jj * (nx + 1) + ii; - }; - - const auto zMidNodeIndex = [nx, ny, corners, xMids, yMids](std::size_t ii, std::size_t jj, std::size_t kk) { - return corners + xMids + yMids + kk * (nx + 1) * (ny + 1) + jj * (nx + 1) + ii; - }; - - return { - cornerNodeIndex(i, j, k), - cornerNodeIndex(i + 1, j, k), - cornerNodeIndex(i + 1, j + 1, k), - cornerNodeIndex(i, j + 1, k), - cornerNodeIndex(i, j, k + 1), - cornerNodeIndex(i + 1, j, k + 1), - cornerNodeIndex(i + 1, j + 1, k + 1), - cornerNodeIndex(i, j + 1, k + 1), - xMidNodeIndex(i, j, k), - yMidNodeIndex(i + 1, j, k), - xMidNodeIndex(i, j + 1, k), - yMidNodeIndex(i, j, k), - xMidNodeIndex(i, j, k + 1), - yMidNodeIndex(i + 1, j, k + 1), - xMidNodeIndex(i, j + 1, k + 1), - yMidNodeIndex(i, j, k + 1), - zMidNodeIndex(i, j, k), - zMidNodeIndex(i + 1, j, k), - zMidNodeIndex(i + 1, j + 1, k), - zMidNodeIndex(i, j + 1, k) - }; - } + static ElementList element(std::size_t index, const Resolution& resolution) noexcept; /** - * @brief Periodic node indices for a specific element. + * @brief Periodic node indices of an element. * * @param[in] index Element index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Periodic node indices for a specific element. + * @returns Periodic node indices of an element. */ - static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t nz = resolution[2]; - const std::size_t numElements = nx * ny * nz; - const std::size_t elementsPerPlane = nx * ny; - - const std::size_t i = index % nx; - const std::size_t j = (index / nx) % ny; - const std::size_t k = index / elementsPerPlane; - - const auto cornerNodeIndex = [nx, ny, nz](std::size_t ii, std::size_t jj, std::size_t kk) { - return (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); - }; - - const auto xMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { - return numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); - }; - - const auto yMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { - return 2 * numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); - }; - - const auto zMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { - return 3 * numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); - }; - - return { - cornerNodeIndex(i, j, k), - cornerNodeIndex(i + 1, j, k), - cornerNodeIndex(i + 1, j + 1, k), - cornerNodeIndex(i, j + 1, k), - cornerNodeIndex(i, j, k + 1), - cornerNodeIndex(i + 1, j, k + 1), - cornerNodeIndex(i + 1, j + 1, k + 1), - cornerNodeIndex(i, j + 1, k + 1), - xMidNodeIndex(i, j, k), - yMidNodeIndex(i + 1, j, k), - xMidNodeIndex(i, j + 1, k), - yMidNodeIndex(i, j, k), - xMidNodeIndex(i, j, k + 1), - yMidNodeIndex(i + 1, j, k + 1), - xMidNodeIndex(i, j + 1, k + 1), - yMidNodeIndex(i, j, k + 1), - zMidNodeIndex(i, j, k), - zMidNodeIndex(i + 1, j, k), - zMidNodeIndex(i + 1, j + 1, k), - zMidNodeIndex(i, j + 1, k) - }; - } + static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept; }; } // namespace grid diff --git a/include/monad/grid/hex8_grid.hpp b/include/monad/grid/hex8_grid.hpp deleted file mode 100644 index 2360a19..0000000 --- a/include/monad/grid/hex8_grid.hpp +++ /dev/null @@ -1,167 +0,0 @@ -#pragma once - -#include "monad/grid/grid_3d_base.hpp" -#include "monad/fem/element/hex8.hpp" - -namespace monad { - - /** - * @brief 2D grid mesh of 4-node quadrilaterl (Hex8) elements. - * - * Example 3x2x2 grid: - * - * ```text - * o─────────o─────────o─────────o - * / / / /│ - * / / / / │ - * / / / / │ - * o─────────o─────────o─────────o │ - * / / / /│ │ - * / / / / │ o - * / / / / │ /│ - * o─────────o─────────o─────────o │ / │ - * │ │ │ │ │/ │ - * │ │ │ │ o │ - * │ │ │ │ /│ │ - * │ │ │ │ / │ o - * │ │ │ │/ │ / - * o─────────o─────────o─────────o │ / - * │ │ │ │ │/ - * │ │ │ │ o - * │ │ │ │ / - * │ │ │ │ / - * │ │ │ │/ - * o─────────o─────────o─────────o - * ``` - * - * Global axes: - * - * - x runs left→right. - * - * - y runs front→back. - * - * - z runs bottom→top. - */ - class Hex8Grid : public Grid3dBase { - public: - using Grid3dBase::Grid3dBase; - - /// @brief Number of nodes. - std::size_t numNodes() const noexcept; - - /// @brief Number of periodic nodes. - std::size_t numPeriodicNodes() const noexcept; - - /** - * @brief Coordinates for a specific node. - * - * Example 3x2x2 grid: - * - * ```text - * 32────────33────────34────────35 - * / / / /│ - * / / / / │ - * / / / / │ - * 28────────29────────30────────31 │ - * / / / /│ │ - * / / / / │ 23 - * / / / / │ /│ - * 24────────25────────26────────27 │ / │ - * │ │ │ │ │/ │ - * │ │ │ │ 19 │ - * │ │ │ │ /│ │ - * │ │ │ │ / │ 11 - * │ │ │ │/ │ / - * 12────────13────────14────────15 │ / - * │ │ │ │ │/ - * │ │ │ │ 7 - * │ │ │ │ / - * │ │ │ │ / - * │ │ │ │/ - * 0─────────1─────────2─────────3 - * ``` - * - * @param[in] index Node index. - * - * @returns Coordinates. - * - * @throws std::out_of_range if `index` is outside the range [0,`numNodes()`). - */ - Point node(std::size_t index) const; - - /** - * @brief Node indices for a specific element. - * - * Example 3x2x2 grid: - * - * ```text - * 32────────33────────34────────35 - * / / / /│ - * / 𝟿 / 𝟷𝟶 / 𝟷𝟷 / │ - * / / / / │ - * 28────────29────────30────────31 │ - * / / / /│ │ - * / / / / │ 23 - * / / / / │ /│ - * 24────────25────────26────────27 │ / │ - * │ │ │ │ │/ │ - * │ │ │ │ 19 │ - * │ 𝟼 │ 𝟽 │ 𝟾 │ /│ │ - * │ │ │ │ / │ 11 - * │ │ │ │/ │ / - * 12────────13────────14────────15 │ / - * │ │ │ │ │/ - * │ │ │ │ 7 - * │ 𝟶 │ 𝟷 │ 𝟸 │ / - * │ │ │ │ / - * │ │ │ │/ - * 0─────────1─────────2─────────3 - * ``` - * - * @param[in] index Element index. - * - * @returns Node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList element(std::size_t index) const; - - /** - * @brief Periodic node indices for a specific element. - * - * Example 3x2x2 grid: - * - * ```text - * 0─────────1─────────2─────────0 - * / / / /│ - * / 𝟿 / 𝟷𝟶 / 𝟷𝟷 / │ - * / / / / │ - * 3─────────4─────────5─────────3 │ - * / / / /│ │ - * / / / / │ 6 - * / / / / │ /│ - * 0─────────1─────────2─────────0 │ / │ - * │ │ │ │ │/ │ - * │ │ │ │ 9 │ - * │ 𝟼 │ 𝟽 │ 𝟾 │ /│ │ - * │ │ │ │ / │ 0 - * │ │ │ │/ │ / - * 6─────────7─────────8─────────6 │ / - * │ │ │ │ │/ - * │ │ │ │ 3 - * │ 𝟶 │ 𝟷 │ 𝟸 │ / - * │ │ │ │ / - * │ │ │ │/ - * 0─────────1─────────2─────────0 - * ``` - * - * @param[in] index Element index. - * - * @returns Periodic node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList periodicElement(std::size_t index) const; - }; - -} // namespace monad diff --git a/include/monad/grid/hex8_topology.hpp b/include/monad/grid/hex8_topology.hpp index 3ef8c53..532e714 100644 --- a/include/monad/grid/hex8_topology.hpp +++ b/include/monad/grid/hex8_topology.hpp @@ -9,7 +9,7 @@ namespace monad { namespace grid { /** - * @brief Topology rules for 3D structured Hex8 grids. + * @brief Topology rules for structured 3D Hex8 grids. */ struct Hex8Topology { using Element = fem::Hex8; @@ -18,112 +18,54 @@ namespace monad { using Point = typename Element::Point; using ElementList = std::array; - /// @brief Number of nodes. - static std::size_t numNodes(const Resolution& resolution) noexcept { - return (resolution[0] + 1) * (resolution[1] + 1) * (resolution[2] + 1); - } + /** + * @brief Number of nodes. + * + * @param[in] resolution Number of elements in each dimension. + * + * @returns Number of nodes. + */ + static std::size_t numNodes(const Resolution& resolution) noexcept; - /// @brief Number of periodic nodes. - static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept { - return resolution[0] * resolution[1] * resolution[2]; - } + /** + * @brief Number of periodic nodes. + * + * @param[in] resolution Number of elements in each dimension. + * + * @returns Number of periodic nodes. + */ + static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept; /** - * @brief Coordinates for a specific node. + * @brief Coordinates of a node. * * @param[in] index Node index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * @param[in] size Physical lengths in each dimension. * - * @returns Coordinates for a specific node. + * @returns Coordinates of a node. */ - static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); - const std::size_t indexInPlane = index % nodesPerPlane; - - const std::size_t i = indexInPlane % (nx + 1); - const std::size_t j = indexInPlane / (nx + 1); - const std::size_t k = index / nodesPerPlane; - - const double dx = size[0] / static_cast(nx); - const double dy = size[1] / static_cast(ny); - const double dz = size[2] / static_cast(resolution[2]); - - const double x = static_cast(i) * dx; - const double y = static_cast(j) * dy; - const double z = static_cast(k) * dz; - - return Point(x, y, z); - } + static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept; /** - * @brief Node indices for a specific element. + * @brief Node indices of an element. * * @param[in] index Element index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Node indices for a specific element. + * @returns Node indices of an element. */ - static ElementList element(std::size_t index, const Resolution& resolution) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t elementsPerPlane = nx * ny; - - const std::size_t i = index % nx; - const std::size_t j = (index / nx) % ny; - const std::size_t k = index / elementsPerPlane; - - const auto nodeIndex = [nx, ny](std::size_t ii, std::size_t jj, std::size_t kk) { - return kk * ((nx + 1) * (ny + 1)) + jj * (nx + 1) + ii; - }; - - return { - nodeIndex(i, j, k), - nodeIndex(i + 1, j, k), - nodeIndex(i + 1, j + 1, k), - nodeIndex(i, j + 1, k), - nodeIndex(i, j, k + 1), - nodeIndex(i + 1, j, k + 1), - nodeIndex(i + 1, j + 1, k + 1), - nodeIndex(i, j + 1, k + 1) - }; - } + static ElementList element(std::size_t index, const Resolution& resolution) noexcept; /** - * @brief Periodic node indices for a specific element. + * @brief Periodic node indices of an element. * * @param[in] index Element index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Periodic node indices for a specific element. + * @returns Periodic node indices of an element. */ - static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t nz = resolution[2]; - const std::size_t elementsPerPlane = nx * ny; - - const std::size_t i = index % nx; - const std::size_t j = (index / nx) % ny; - const std::size_t k = index / elementsPerPlane; - - const auto nodeIndex = [nx, ny, nz](std::size_t ii, std::size_t jj, std::size_t kk) { - return (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); - }; - - return { - nodeIndex(i, j, k), - nodeIndex(i + 1, j, k), - nodeIndex(i + 1, j + 1, k), - nodeIndex(i, j + 1, k), - nodeIndex(i, j, k + 1), - nodeIndex(i + 1, j, k + 1), - nodeIndex(i + 1, j + 1, k + 1), - nodeIndex(i, j + 1, k + 1) - }; - } + static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept; }; } // namespace grid diff --git a/include/monad/grid/quad4_grid.hpp b/include/monad/grid/quad4_grid.hpp deleted file mode 100644 index 0380ccf..0000000 --- a/include/monad/grid/quad4_grid.hpp +++ /dev/null @@ -1,117 +0,0 @@ -#pragma once - -#include "monad/grid/grid_2d_base.hpp" -#include "monad/fem/element/quad4.hpp" - -namespace monad { - - /** - * @brief 2D grid mesh of 4-node quadrilaterl (Quad4) elements. - * - * Example 3x2 grid: - * - * ```text - * o───────o───────o───────o - * │ │ │ │ - * │ │ │ │ - * │ │ │ │ - * o───────o───────o───────o - * │ │ │ │ - * │ │ │ │ - * │ │ │ │ - * o───────o───────o───────o - * ``` - * - * Global axes: - * - * - x runs left→right. - * - * - y runs bottom→top. - */ - class Quad4Grid : public Grid2dBase { - public: - using Grid2dBase::Grid2dBase; - - /// @brief Number of nodes. - std::size_t numNodes() const noexcept; - - /// @brief Number of periodic nodes. - std::size_t numPeriodicNodes() const noexcept; - - /** - * @brief Coordinates for a specific node. - * - * Example 3x2 grid: - * - * ```text - * 8───────9───────10──────11 - * │ │ │ │ - * │ │ │ │ - * │ │ │ │ - * 4───────5───────6───────7 - * │ │ │ │ - * │ │ │ │ - * │ │ │ │ - * 0───────1───────2───────3 - * ``` - * - * @param[in] index Node index. - * - * @returns Coordinates. - * - * @throws std::out_of_range if `index` is outside the range [0,`numNodes()`). - */ - Point node(std::size_t index) const; - - /** - * @brief Node indices for a specific element. - * - * Example 3x2 grid: - * - * ```text - * 8───────9───────10──────11 - * │ │ │ │ - * │ 𝟹 │ 𝟺 │ 𝟻 │ - * │ │ │ │ - * 4───────5───────6───────7 - * │ │ │ │ - * │ 𝟶 │ 𝟷 │ 𝟸 │ - * │ │ │ │ - * 0───────1───────2───────3 - * ``` - * - * @param[in] index Element index. - * - * @returns Node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList element(std::size_t index) const; - - /** - * @brief Periodic node indices for a specific element. - * - * Example 3x2 grid: - * - * ```text - * 0───────1───────2───────0 - * │ │ │ │ - * │ 𝟹 │ 𝟺 │ 𝟻 │ - * │ │ │ │ - * 3───────4───────5───────3 - * │ │ │ │ - * │ 𝟶 │ 𝟷 │ 𝟸 │ - * │ │ │ │ - * 0───────1───────2───────0 - * ``` - * - * @param[in] index Element index. - * - * @returns Periodic node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList periodicElement(std::size_t index) const; - }; - -} // namespace monad diff --git a/include/monad/grid/quad4_topology.hpp b/include/monad/grid/quad4_topology.hpp index 1f22871..caaa00d 100644 --- a/include/monad/grid/quad4_topology.hpp +++ b/include/monad/grid/quad4_topology.hpp @@ -9,7 +9,7 @@ namespace monad { namespace grid { /** - * @brief Topology rules for 2D structured Quad4 grids. + * @brief Topology rules for structured 2D Quad4 grids. */ struct Quad4Topology { using Element = fem::Quad4; @@ -21,98 +21,51 @@ namespace monad { /** * @brief Number of nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of nodes. */ - static std::size_t numNodes(const Resolution& resolution) noexcept { - return (resolution[0] + 1) * (resolution[1] + 1); - } + static std::size_t numNodes(const Resolution& resolution) noexcept; /** * @brief Number of periodic nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of periodic nodes. */ - static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept { - return resolution[0] * resolution[1]; - } + static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept; /** - * @brief Coordinates for a specific node. + * @brief Coordinates of a node. * * @param[in] index Node index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * @param[in] size Physical lengths in each dimension. * - * @returns Coordinates for a specific node. + * @returns Coordinates of a node. */ - static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t i = index % (nx + 1); - const std::size_t j = index / (nx + 1); - - const double dx = size[0] / static_cast(nx); - const double dy = size[1] / static_cast(resolution[1]); - - const double x = static_cast(i) * dx; - const double y = static_cast(j) * dy; - - return Point(x, y); - } + static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept; /** - * @brief Node indices for a specific element. + * @brief Node indices of an element. * * @param[in] index Element index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Node indices for a specific element. + * @returns Node indices of an element. */ - static ElementList element(std::size_t index, const Resolution& resolution) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - const auto nodeIndex = [nx](std::size_t ii, std::size_t jj) { - return jj * (nx + 1) + ii; - }; - - return { - nodeIndex(i, j), - nodeIndex(i + 1, j), - nodeIndex(i + 1, j + 1), - nodeIndex(i, j + 1) - }; - } + static ElementList element(std::size_t index, const Resolution& resolution) noexcept; /** - * @brief Periodic node indices for a specific element. + * @brief Periodic node indices of an element. * * @param[in] index Element index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Periodic node indices for a specific element. + * @returns Periodic node indices of an element. */ - static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - const auto nodeIndex = [nx, ny](std::size_t ii, std::size_t jj) { - return (jj % ny) * nx + (ii % nx); - }; - - return { - nodeIndex(i, j), - nodeIndex(i + 1, j), - nodeIndex(i + 1, j + 1), - nodeIndex(i, j + 1) - }; - } + static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept; }; } // namespace grid diff --git a/include/monad/grid/quad8_grid.hpp b/include/monad/grid/quad8_grid.hpp deleted file mode 100644 index a00b30f..0000000 --- a/include/monad/grid/quad8_grid.hpp +++ /dev/null @@ -1,117 +0,0 @@ -#pragma once - -#include "monad/grid/grid_2d_base.hpp" -#include "monad/fem/element/quad8.hpp" - -namespace monad { - - /** - * @brief 2D grid mesh of 8-node quadrilaterl (Quad8) elements. - * - * Example 3x2 grid: - * - * ```text - * o───o───o───o───o───o───o - * │ │ │ │ - * o o o o - * │ │ │ │ - * o───o───o───o───o───o───o - * │ │ │ │ - * o o o o - * │ │ │ │ - * o───o───o───o───o───o───o - * ``` - * - * Global axes: - * - * - x runs left→right. - * - * - y runs bottom→top. - */ - class Quad8Grid : public Grid2dBase { - public: - using Grid2dBase::Grid2dBase; - - /// @brief Number of nodes. - std::size_t numNodes() const noexcept; - - /// @brief Number of periodic nodes. - std::size_t numPeriodicNodes() const noexcept; - - /** - * @brief Coordinates for a specific node. - * - * Example 3x2 grid: - * - * ```text - * 8───18──9───19──10──20──11 - * │ │ │ │ - * 25 26 27 28 - * │ │ │ │ - * 4───15──5───16──6───17──7 - * │ │ │ │ - * 21 22 23 24 - * │ │ │ │ - * 0───12──1───13──2───14──3 - * ``` - * - * @param[in] index Node index. - * - * @returns Coordinates. - * - * @throws std::out_of_range if `index` is outside the range [0,`numNodes()`). - */ - Point node(std::size_t index) const; - - /** - * @brief Node indices for a specific element. - * - * Example 3x2 grid: - * - * ```text - * 8───18──9───19──10──20──11 - * │ │ │ │ - * 25 𝟹 26 𝟺 27 𝟻 28 - * │ │ │ │ - * 4───15──5───16──6───17──7 - * │ │ │ │ - * 21 𝟶 22 𝟷 23 𝟸 24 - * │ │ │ │ - * 0───12──1───13──2───14──3 - * ``` - * - * @param[in] index Element index. - * - * @returns Node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList element(std::size_t index) const; - - /** - * @brief Periodic node indices for a specific element. - * - * Example 3x2 grid: - * - * ```text - * 0───6───1───7───2───8───0 - * │ │ │ │ - * 15 𝟹 16 𝟺 17 𝟻 15 - * │ │ │ │ - * 3───9───4───10──5───11──3 - * │ │ │ │ - * 12 𝟶 13 𝟷 14 𝟸 13 - * │ │ │ │ - * 0───6───1───7───2───8───0 - * ``` - * - * @param[in] index Element index. - * - * @returns Periodic node indices. - * - * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). - */ - ElementList periodicElement(std::size_t index) const; - }; - -} // namespace monad diff --git a/include/monad/grid/quad8_topology.hpp b/include/monad/grid/quad8_topology.hpp index 93f6cd2..4f4de58 100644 --- a/include/monad/grid/quad8_topology.hpp +++ b/include/monad/grid/quad8_topology.hpp @@ -21,187 +21,78 @@ namespace monad { /** * @brief Number of corner nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of corner nodes. */ - static std::size_t numCornerNodes(const Resolution& resolution) noexcept { - return (resolution[0] + 1) * (resolution[1] + 1); - } + static std::size_t numCornerNodes(const Resolution& resolution) noexcept; /** - * @brief Number of horizontal edge midpoint nodes. + * @brief Number of x-edge midpoint nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Number of horizontal edge midpoint nodes. + * @returns Number of x-edge midpoint nodes. */ - static std::size_t numXMidNodes(const Resolution& resolution) noexcept { - return resolution[0] * (resolution[1] + 1); - } + static std::size_t numXMidNodes(const Resolution& resolution) noexcept; /** - * @brief Number of vertical edge midpoint nodes. + * @brief Number of y-edge midpoint nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Number of vertical edge midpoint nodes. + * @returns Number of y-edge midpoint nodes. */ - static std::size_t numYMidNodes(const Resolution& resolution) noexcept { - return (resolution[0] + 1) * resolution[1]; - } + static std::size_t numYMidNodes(const Resolution& resolution) noexcept; /** * @brief Number of nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of nodes. */ - static std::size_t numNodes(const Resolution& resolution) noexcept { - return numCornerNodes(resolution) + numXMidNodes(resolution) + numYMidNodes(resolution); - } + static std::size_t numNodes(const Resolution& resolution) noexcept; /** * @brief Number of periodic nodes. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * * @returns Number of periodic nodes. */ - static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept { - return 3 * resolution[0] * resolution[1]; - } + static std::size_t numPeriodicNodes(const Resolution& resolution) noexcept; /** - * @brief Coordinates for a specific node. + * @brief Coordinates of a node. * * @param[in] index Node index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * @param[in] size Physical lengths in each dimension. * - * @returns Coordinates for a specific node. + * @returns Coordinates of a node. */ - static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t corners = numCornerNodes(resolution); - const std::size_t xMids = numXMidNodes(resolution); - - const double dx = size[0] / static_cast(nx); - const double dy = size[1] / static_cast(ny); - - double x; - double y; - - if (index < corners) { - const std::size_t i = index % (nx + 1); - const std::size_t j = index / (nx + 1); - - x = static_cast(i) * dx; - y = static_cast(j) * dy; - } - else if (index < corners + xMids) { - index -= corners; - - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - x = (static_cast(i) + 0.5) * dx; - y = static_cast(j) * dy; - } - else { - index -= corners + xMids; - - const std::size_t i = index % (nx + 1); - const std::size_t j = index / (nx + 1); - - x = static_cast(i) * dx; - y = (static_cast(j) + 0.5) * dy; - } - - return Point(x, y); - } + static Point node(std::size_t index, const Resolution& resolution, const Size& size) noexcept; /** - * @brief Node indices for a specific element. + * @brief Node indices of an element. * * @param[in] index Element index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Node indices for a specific element. + * @returns Node indices of an element. */ - static ElementList element(std::size_t index, const Resolution& resolution) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t corners = numCornerNodes(resolution); - const std::size_t xMids = numXMidNodes(resolution); - - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - const auto cornerNodeIndex = [nx](std::size_t ii, std::size_t jj) { - return jj * (nx + 1) + ii; - }; - - const auto xMidNodeIndex = [nx, corners](std::size_t ii, std::size_t jj) { - return corners + jj * nx + ii; - }; - - const auto yMidNodeIndex = [nx, corners, xMids](std::size_t ii, std::size_t jj) { - return corners + xMids + jj * (nx + 1) + ii; - }; - - return { - cornerNodeIndex(i, j), - cornerNodeIndex(i + 1, j), - cornerNodeIndex(i + 1, j + 1), - cornerNodeIndex(i, j + 1), - xMidNodeIndex(i, j), - yMidNodeIndex(i + 1, j), - xMidNodeIndex(i, j + 1), - yMidNodeIndex(i, j) - }; - } + static ElementList element(std::size_t index, const Resolution& resolution) noexcept; /** - * @brief Periodic node indices for a specific element. + * @brief Periodic node indices of an element. * * @param[in] index Element index. - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * - * @returns Periodic node indices for a specific element. + * @returns Periodic node indices of an element. */ - static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept { - const std::size_t nx = resolution[0]; - const std::size_t ny = resolution[1]; - const std::size_t numElements = nx * ny; - - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - const auto cornerNodeIndex = [nx, ny](std::size_t ii, std::size_t jj) { - return (jj % ny) * nx + (ii % nx); - }; - - const auto xMidNodeIndex = [nx, ny, numElements](std::size_t ii, std::size_t jj) { - return numElements + (jj % ny) * nx + (ii % nx); - }; - - const auto yMidNodeIndex = [nx, ny, numElements](std::size_t ii, std::size_t jj) { - return 2 * numElements + (jj % ny) * nx + (ii % nx); - }; - - return { - cornerNodeIndex(i, j), - cornerNodeIndex(i + 1, j), - cornerNodeIndex(i + 1, j + 1), - cornerNodeIndex(i, j + 1), - xMidNodeIndex(i, j), - yMidNodeIndex(i + 1, j), - xMidNodeIndex(i, j + 1), - yMidNodeIndex(i, j) - }; - } + static ElementList periodicElement(std::size_t index, const Resolution& resolution) noexcept; }; } // namespace grid diff --git a/include/monad/grid/structured_grid.hpp b/include/monad/grid/structured_grid.hpp index b23d173..c876d55 100644 --- a/include/monad/grid/structured_grid.hpp +++ b/include/monad/grid/structured_grid.hpp @@ -12,9 +12,9 @@ namespace monad { namespace grid { /** - * @brief Structured grid with topology-defined node and element numbering. + * @brief Structured grid mesh. * - * @tparam TopologyT Concrete topology class (e.g. Quad4Topology). + * @tparam TopologyT Concrete topology type (e.g. Quad4Topology). */ template class StructuredGrid { @@ -35,12 +35,11 @@ namespace monad { /** * @brief Constructs a structured grid. * - * @param[in] resolution How many cells in each dimension. + * @param[in] resolution Number of elements in each dimension. * @param[in] size Physical lengths in each dimension. * * @throws std::invalid_argument if any entry in `resolution` is zero. * @throws std::invalid_argument if any entry in `size` is non-positive. - * */ StructuredGrid(const Resolution &resolution, const Size &size) : resolution_(resolution), size_(size) { @@ -55,7 +54,7 @@ namespace monad { } } - /// @brief How many cells in each dimension. + /// @brief Number of elements in each dimension. const Resolution &resolution() const noexcept { return resolution_; } @@ -87,11 +86,11 @@ namespace monad { } /** - * @brief Coordinates for a specific node. + * @brief Coordinates of a node * * @param[in] index Node index. * - * @returns Coordinates for a specific node. + * @returns Coordinates of a node. * * @throws std::out_of_range if `index` is outside the range [0,`numNodes()`). */ @@ -103,7 +102,7 @@ namespace monad { return Topology::node(index, resolution_, size_); } - /// @brief Coordinates for all nodes. + /// @brief Coordinates of all nodes. NodesList nodes() const noexcept { NodesList out; out.reserve(numNodes()); @@ -116,11 +115,11 @@ namespace monad { } /** - * @brief Node indices for a specific element. + * @brief Node indices of an element. * * @param[in] index Element index. * - * @returns Node indices for a specific element. + * @returns Node indices of an element. * * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). */ @@ -132,7 +131,7 @@ namespace monad { return Topology::element(index, resolution_); } - /// @brief Node indices for all elements. + /// @brief Node indices of all elements. ElementsList elements() const noexcept { ElementsList out; out.reserve(numElements()); @@ -145,11 +144,11 @@ namespace monad { } /** - * @brief Periodic node indices for a specific element. + * @brief Periodic node indices of an element. * * @param[in] index Element index. * - * @returns Periodic node indices for a specific element. + * @returns Periodic node indices of an element. * * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). */ @@ -161,7 +160,7 @@ namespace monad { return Topology::periodicElement(index, resolution_); } - /// @brief Periodic node indices for all elements. + /// @brief Periodic node indices of all elements. ElementsList periodicElements() const noexcept { ElementsList out; out.reserve(numElements()); @@ -174,11 +173,11 @@ namespace monad { } /** - * @brief Nodal coordinates for a specific element. + * @brief Nodal coordinates of an element. * * @param[in] index Element index. * - * @returns Nodal coordinates for a specific element. + * @returns Nodal coordinates of an element. * * @throws std::out_of_range if `index` is outside the range [0,`numElements()`). */ @@ -206,14 +205,14 @@ namespace monad { } /// @brief Grid area. - template - std::enable_if_t area() const noexcept { + template + std::enable_if_t area() const noexcept { return measure(); } /// @brief Grid volume. - template - std::enable_if_t volume() const noexcept { + template + std::enable_if_t volume() const noexcept { return measure(); } @@ -228,7 +227,7 @@ namespace monad { } private: - /// @brief How many cells in each dimension. + /// @brief Number of elements in each dimension. Resolution resolution_; /// @brief Physical lengths in each dimension. diff --git a/include/monad/integration/integrate_matrix.hpp b/include/monad/integration/integrate_matrix.hpp index 9c1d283..25bf43d 100644 --- a/include/monad/integration/integrate_matrix.hpp +++ b/include/monad/integration/integrate_matrix.hpp @@ -9,15 +9,19 @@ namespace monad { namespace integration { /** - * @brief Performs numerical integration (quadrature) of a vector integrand function. + * @brief Performs numerical integration (quadrature) of a matrix-valued integrand. * - * The integrand is a scalar function from ℝᵈ→ℝᵐˣᵐ. + * The integrand is a function of the form: + * + * ```text + * f:ℝᵈ→ℝᵐˣⁿ + * ``` * * @tparam F Type of the integrand. * @tparam D Spatial dimension of the integration domain. * @tparam N Number of integration points. * - * @param[in] integrand Function to be integrated. + * @param[in] integrand Integrand function. * @param[in] rule Quadrature rule. * * @returns Approximate value of the integral. @@ -27,7 +31,7 @@ namespace monad { using DomainType = typename QuadratureRule::Point; using RangeType = std::invoke_result_t; - static_assert(std::is_invocable_r_v, "Integrand must be callable as PointRange(PointDomain)."); + static_assert(std::is_invocable_r_v, "Integrand must be callable as f(x)."); RangeType result = RangeType::Zero(); diff --git a/include/monad/integration/integrate_scalar.hpp b/include/monad/integration/integrate_scalar.hpp index 1db0475..88d57c1 100644 --- a/include/monad/integration/integrate_scalar.hpp +++ b/include/monad/integration/integrate_scalar.hpp @@ -9,15 +9,19 @@ namespace monad { namespace integration { /** - * @brief Performs numerical integration (quadrature) of a scalar integrand function. + * @brief Performs numerical integration (quadrature) of a scalar-valued integrand. * - * The integrand is a scalar function from ℝᵈ→ℝ. + * The integrand is a function of the form: + * + * ```text + * f:ℝᵈ→ℝ + * ``` * * @tparam F Type of the integrand. * @tparam D Spatial dimension of the integration domain. * @tparam N Number of integration points. * - * @param[in] integrand Function to be integrated. + * @param[in] integrand Integrand function. * @param[in] rule Quadrature rule. * * @returns Approximate value of the integral. @@ -26,7 +30,7 @@ namespace monad { double integrateScalar(const F &integrand, const QuadratureRule &rule) { using DomainType = typename QuadratureRule::Point; - static_assert(std::is_invocable_r_v, "Integrand must be callable as double(Point)."); + static_assert(std::is_invocable_r_v, "Integrand must be callable as f(x)."); double result = 0.0; diff --git a/include/monad/integration/quadrature_rule.hpp b/include/monad/integration/quadrature_rule.hpp index 4ca7033..cbab247 100644 --- a/include/monad/integration/quadrature_rule.hpp +++ b/include/monad/integration/quadrature_rule.hpp @@ -3,6 +3,7 @@ #include #include #include +#include "monad/detail/constants.hpp" namespace monad { @@ -11,13 +12,10 @@ namespace monad { /** * @brief Quadrature rule for numerical integration. * - * A quadrature rule contains: + * A quadrature rule consists of a set of integration + * points and the corresponding integration weights. * - * 1. A list of integration points. - * - * 2. A corresponding list of weights. - * - * @tparam D Spatial dimension of the integration domain. + * @tparam D Spatial dimension. * @tparam N Number of integration points. */ template @@ -25,7 +23,7 @@ namespace monad { static_assert(D > 0, "Spatial dimension of the integration domain must be positive."); static_assert(N > 0, "Number of integration points must be positive."); - /// @brief Spatial dimension of the integration domain. + /// @brief Spatial dimension. static constexpr int Dim = D; /// @brief Number of integration points. @@ -38,13 +36,13 @@ namespace monad { /// @brief Integration points. PointsList points; - /// @brief Integration point weights. + /// @brief Integration weights. WeightsList weights; /// @brief Equality comparison. - bool operator==(QuadratureRule const &other) const { + bool operator==(const QuadratureRule &other) const noexcept { for (std::size_t i = 0; i < NumPoints; ++i) { - if (!points[i].isApprox(other.points[i])) { + if (!points[i].isApprox(other.points[i], NUMERICAL_ZERO)) { return false; } } @@ -52,7 +50,7 @@ namespace monad { } /// @brief Inequality comparison. - bool operator!=(QuadratureRule const &rhs) const { + bool operator!=(const QuadratureRule &rhs) const noexcept { return !(*this == rhs); } }; diff --git a/include/monad/io/gmsh/write_gmsh_densities.hpp b/include/monad/io/gmsh/write_gmsh_densities.hpp index c28c00a..3d147b4 100644 --- a/include/monad/io/gmsh/write_gmsh_densities.hpp +++ b/include/monad/io/gmsh/write_gmsh_densities.hpp @@ -3,6 +3,7 @@ #include #include #include +#include "monad/field/density_field.hpp" #include "monad/detail/constants.hpp" namespace monad { @@ -12,17 +13,19 @@ namespace monad { namespace gmsh { /** - * @brief Writes the Gmsh file `$ElementData` section containing per-element material densities. + * @brief Writes the Gmsh `$ElementData` section for per-element material densities. * - * @tparam Grid Grid class (e.g. Quad4Grid). + * @tparam D Spatial dimension (2 or 3). * * @param[in,out] os Output stream. - * @param[in] grid Periodic unit cell grid. + * @param[in] densityField Per-element density field. * * @note Gmsh documentation: https://gmsh.info/doc/texinfo/gmsh.html#MSH-file-format */ - template - void writeGmshDensities(std::ostream &os, const Grid &grid) noexcept { + template + void writeGmshDensities(std::ostream &os, const field::DensityField &densityField) noexcept { + static_assert(D == 2 || D == 3, "Density field spatial dimension must be 2 or 3."); + const int numStringTags = 1; const std::string stringTag = "Density"; const int numRealTags = 0; @@ -37,15 +40,15 @@ namespace monad { << numIntegerTags << "\n" << "0\n" << "1\n" - << static_cast(grid.numElements()) << "\n"; + << static_cast(densityField.numElements()) << "\n"; // Section body - for (std::size_t i = 0; i < grid.numElements(); ++i) { + for (std::size_t i = 0; i < densityField.numElements(); ++i) { const std::size_t elementTag = i + 1; os << elementTag; - double value = grid.getDensity(i); + double value = densityField.getDensity(i); // Report 0 rather than NUMERICAL_ZERO for cleaner output if (value <= NUMERICAL_ZERO) { diff --git a/include/monad/io/gmsh/write_gmsh_elements.hpp b/include/monad/io/gmsh/write_gmsh_elements.hpp index fa947a6..3aee46e 100644 --- a/include/monad/io/gmsh/write_gmsh_elements.hpp +++ b/include/monad/io/gmsh/write_gmsh_elements.hpp @@ -10,12 +10,12 @@ namespace monad { namespace gmsh { /** - * @brief Writes the Gmsh file `$Elements` section. + * @brief Writes the Gmsh `$Elements` section. * - * @tparam Grid Grid class (e.g. Quad4Grid). + * @tparam Grid Grid type (e.g. Quad4Grid). * * @param[in,out] os Output stream. - * @param[in] grid Periodic unit cell grid. + * @param[in] grid Grid. * * @note Gmsh documentation: https://gmsh.info/doc/texinfo/gmsh.html#MSH-file-format */ diff --git a/include/monad/io/gmsh/write_gmsh_header.hpp b/include/monad/io/gmsh/write_gmsh_header.hpp index 227ee05..30402f4 100644 --- a/include/monad/io/gmsh/write_gmsh_header.hpp +++ b/include/monad/io/gmsh/write_gmsh_header.hpp @@ -9,7 +9,7 @@ namespace monad { namespace gmsh { /** - * @brief Writes the Gmsh file `$MeshFormat` section. + * @brief Writes the Gmsh `$MeshFormat` section. * * @param[in,out] os Output stream. * diff --git a/include/monad/io/gmsh/write_gmsh_nodes.hpp b/include/monad/io/gmsh/write_gmsh_nodes.hpp index 8450972..8d44e7b 100644 --- a/include/monad/io/gmsh/write_gmsh_nodes.hpp +++ b/include/monad/io/gmsh/write_gmsh_nodes.hpp @@ -10,12 +10,12 @@ namespace monad { namespace gmsh { /** - * @brief Writes the Gmsh file `$Nodes` section. + * @brief Writes the Gmsh `$Nodes` section. * - * @tparam Grid Grid class (e.g. Quad4Grid). + * @tparam Grid Grid type (e.g. Quad4Grid). * * @param[in,out] os Output stream. - * @param[in] grid Periodic unit cell grid. + * @param[in] grid Grid. * * @note Gmsh documentation: https://gmsh.info/doc/texinfo/gmsh.html#MSH-file-format */ diff --git a/include/monad/io/save_grid.hpp b/include/monad/io/save_grid.hpp index e60bcf6..bd45d3c 100644 --- a/include/monad/io/save_grid.hpp +++ b/include/monad/io/save_grid.hpp @@ -13,17 +13,16 @@ namespace monad { /** * @brief Writes a grid to a Gmsh file. * - * @tparam Grid Grid class (e.g. Quad4Grid). + * @tparam Grid Grid type (e.g. Quad4Grid). * - * @param[in] grid Periodic unit cell grid. - * @param[in] file File. - * @param[in] saveDensities Set to `true` to save the material densities (default=`false`). + * @param[in] grid Grid. + * @param[in] file Path to the Gmsh file. * - * @throws std::invalid_argument if the `file` extension is not `.msh`. + * @throws std::invalid_argument if `file` does not have the `.msh` extension. * @throws std::runtime_error if the `file` cannot be opened for writing. */ template - void saveGrid(const Grid &grid, const std::string &file, bool saveDensities = false) { + void saveGrid(const Grid &grid, const std::string &file) { static_assert(Grid::Dim == 2 || Grid::Dim == 3, "Grid spatial dimension must be 2 or 3."); if (std::filesystem::path(file).extension() != ".msh") { @@ -40,12 +39,6 @@ namespace monad { io::gmsh::writeGmshNodes(ofs, grid); ofs << "\n\n"; io::gmsh::writeGmshElements(ofs, grid); - - if (saveDensities) { - ofs << "\n\n"; - io::gmsh::writeGmshDensities(ofs, grid); - } - ofs << "\n"; } diff --git a/include/monad/io/save_grid_and_density_field.hpp b/include/monad/io/save_grid_and_density_field.hpp new file mode 100644 index 0000000..f4c2f34 --- /dev/null +++ b/include/monad/io/save_grid_and_density_field.hpp @@ -0,0 +1,55 @@ +#pragma once + +#include +#include +#include +#include +#include "monad/field/density_field.hpp" +#include "monad/io/gmsh/write_gmsh_header.hpp" +#include "monad/io/gmsh/write_gmsh_nodes.hpp" +#include "monad/io/gmsh/write_gmsh_elements.hpp" +#include "monad/io/gmsh/write_gmsh_densities.hpp" + +namespace monad { + + /** + * @brief Writes a grid and its element density field to a Gmsh file. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + * + * @param[in] grid Grid. + * @param[in] densityField Per-element density field defined on `grid`. + * @param[in] file Path to the Gmsh file. + * + * @throws std::invalid_argument if `grid` and `densityField` do not have the same resolution. + * @throws std::invalid_argument if `file` does not have the `.msh` extension. + * @throws std::runtime_error if the `file` cannot be opened for writing. + */ + template + void saveGridAndDensityField(const Grid &grid, const field::DensityField &densityField, const std::string &file) { + static_assert(Grid::Dim == 2 || Grid::Dim == 3, "Grid spatial dimension must be 2 or 3."); + + if (grid.resolution() != densityField.resolution()) { + throw std::invalid_argument( "Grid resolution must match density field resolution."); + } + + if (std::filesystem::path(file).extension() != ".msh") { + throw std::invalid_argument("File extension must be \".msh\"."); + } + + std::ofstream ofs(file, std::ios::trunc); + if (!ofs.is_open()) { + throw std::runtime_error("Could not open " + file + " for writing."); + } + + io::gmsh::writeGmshHeader(ofs); + ofs << "\n\n"; + io::gmsh::writeGmshNodes(ofs, grid); + ofs << "\n\n"; + io::gmsh::writeGmshElements(ofs, grid); + ofs << "\n\n"; + io::gmsh::writeGmshDensities(ofs, densityField); + ofs << "\n"; + } + +} // namespace monad diff --git a/include/monad/io/save_grid_and_field.hpp b/include/monad/io/save_grid_and_nodal_field.hpp similarity index 73% rename from include/monad/io/save_grid_and_field.hpp rename to include/monad/io/save_grid_and_nodal_field.hpp index 0a3f9e4..e78efa1 100644 --- a/include/monad/io/save_grid_and_field.hpp +++ b/include/monad/io/save_grid_and_nodal_field.hpp @@ -11,33 +11,34 @@ #include "monad/io/gmsh/write_gmsh_nodal_field.hpp" namespace monad { + /** - * @brief Writes a grid and nodal field to a Gmsh file. + * @brief Writes a grid and its nodal field to a Gmsh file. * - * @tparam Grid Grid class (e.g. Quad4Grid). + * @tparam Grid Grid type (e.g. Quad4Grid). * @tparam Derived Eigen matrix type. * - * @param[in] grid Periodic unit cell grid. - * @param[in] file File. + * @param[in] grid Grid. * @param[in] field An Nx1 (scalar), Nx2 or Nx3 (vector) nodal field. - * @param[in] name Optional name tag for the nodal field. + * @param[in] file Path to the Gmsh file. + * @param[in] name Optional name for the nodal field. * - * @throws std::invalid_argument if the `file` extension is not `.msh`. - * @throws std::invalid_argument if the `field` size (N) does not equal the number of `grid` nodes. + * @throws std::invalid_argument if `field` size does not equal the number of `grid` nodes. + * @throws std::invalid_argument if `file` does not have the `.msh` extension. * @throws std::runtime_error if the `file` cannot be opened for writing. */ template - void saveGridAndField(const Grid &grid, const Eigen::MatrixBase& field, const std::string &file, const std::string &name = "") { + void saveGridAndNodalField(const Grid &grid, const Eigen::MatrixBase& field, const std::string &file, const std::string &name = "") { static_assert(Grid::Dim == 2 || Grid::Dim == 3, "Grid spatial dimension must be 2 or 3."); - if (std::filesystem::path(file).extension() != ".msh") { - throw std::invalid_argument("File extension must be \".msh\"."); - } - if (field.rows() != static_cast(grid.numNodes())) { throw std::invalid_argument("Field size (" + std::to_string(field.rows()) + ") must equal number of grid nodes (" + std::to_string(grid.numNodes()) + ")."); } + if (std::filesystem::path(file).extension() != ".msh") { + throw std::invalid_argument("File extension must be \".msh\"."); + } + std::ofstream ofs(file, std::ios::trunc); if (!ofs.is_open()) { throw std::runtime_error("Could not open " + file + " for writing."); diff --git a/include/monad/material/bounds.hpp b/include/monad/material/bounds.hpp new file mode 100644 index 0000000..0c63973 --- /dev/null +++ b/include/monad/material/bounds.hpp @@ -0,0 +1,42 @@ +#pragma once + +#include "monad/field/density_field.hpp" +#include "monad/detail/mean.hpp" + +namespace monad { + + /** + * @brief Voigt upper bound for the homogenized material tensor. + * + * @tparam Material Material type (e.g. LinearElasticMaterial2d). + * + * @param[in] material Base material. + * @param[in] densityField Per-element density field. + * + * @returns Voigt upper bound for the homogenized material tensor. + */ + template + auto voigtBound(const Material& material, const field::DensityField& densityField) { + const double density = detail::arithmeticMean(densityField.densities()); + + return density * material.materialTensor(); + } + + /** + * @brief Reuss lower bound for the homogenized material tensor. + * + * @tparam Material Material type (e.g. LinearElasticMaterial2d). + * + * @param[in] material Base material. + * @param[in] densityField Per-element density field. + * + * @returns Reuss lower bound for the homogenized material tensor. + */ + template + auto reussBound(const Material& material, const field::DensityField& densityField) { + const double density = detail::harmonicMean(densityField.densities()); + + return density * material.materialTensor(); + } + +} // namespace monad diff --git a/include/monad/material/material_aliases.hpp b/include/monad/material/material_aliases.hpp new file mode 100644 index 0000000..b187de4 --- /dev/null +++ b/include/monad/material/material_aliases.hpp @@ -0,0 +1,242 @@ +#pragma once + +#include "monad/material/transport/linear_transport_material.hpp" +#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" +#include "monad/material/mechanical/linear_elastic_material_2d.hpp" +#include "monad/material/mechanical/linear_elastic_material_3d.hpp" + +namespace monad { + + /** + * @brief 2D linear dielectric material model. + * + * By Gauss's law, the electric displacement D∈ℝ² is a linear function of + * the electric field E∈ℝ²: + * + * ```text + * D=ϵE=-ϵ∇φ + * ``` + * + * - φ∈ℝ is the electric potential. + * + * - ϵ∈Sym₂(ℝ) is the permittivity tensor. + */ + using LinearDielectricMaterial2d = material::LinearTransportMaterial<2>; + + /** + * @brief 3D linear dielectric material model. + * + * By Gauss's law, the electric displacement D∈ℝ³ is a linear function of + * the electric field E∈ℝ³: + * + * ```text + * D=ϵE=-ϵ∇φ + * ``` + * + * - φ∈ℝ is the electric potential. + * + * - ϵ∈Sym₃(ℝ) is the permittivity tensor. + */ + using LinearDielectricMaterial3d = material::LinearTransportMaterial<3>; + + /** + * @brief 2D linear electrical conductive material model. + * + * By Ohm's law, the current density J∈ℝ² is a linear function of + * the electric field E∈ℝ²: + * + * ```text + * J=σE=-σ∇φ + * ``` + * + * - φ∈ℝ is the electric potential. + * + * - σ∈Sym₂(ℝ) is the conductivity tensor. + */ + using LinearElectricalConductiveMaterial2d = material::LinearTransportMaterial<2>; + + /** + * @brief 3D linear electrical conductive material model. + * + * By Ohm's law, the current density J∈ℝ³ is a linear function of + * the electric field E∈ℝ³: + * + * ```text + * J=σE=-σ∇φ + * ``` + * + * - φ∈ℝ is the electric potential. + * + * - σ∈Sym₃(ℝ) is the conductivity tensor. + */ + using LinearElectricalConductiveMaterial3d = material::LinearTransportMaterial<3>; + + /** + * @brief 2D linear magnetic material model + * + * In a linear magnetic constitutive law, the magnetic flux density B∈ℝ² is a linear function of + * the magnetic field H∈ℝ²: + * + * ```text + * B=μH=-μ∇φ + * ``` + * + * - φ∈ℝ is the magnetic potential. + * + * - μ∈Sym₂(ℝ) is the permeability tensor. + */ + using LinearMagneticMaterial2d = material::LinearTransportMaterial<2>; + + /** + * @brief 3D linear magnetic material model + * + * In a linear magnetic constitutive law, the magnetic flux density B∈ℝ³ is a linear function of + * the magnetic field H∈ℝ³: + * + * ```text + * B=μH=-μ∇φ + * ``` + * + * - φ∈ℝ is the magnetic potential. + * + * - μ∈Sym₃(ℝ) is the permeability tensor. + */ + using LinearMagneticMaterial3d = material::LinearTransportMaterial<3>; + + /** + * @brief 2D linear mass diffusive material model. + * + * By Fick's law, the diffusion flux J∈ℝ² is a linear function of + * the mass concentration gradient ∇c∈ℝ²: + * + * ```text + * J=-D∇c + * ``` + * + * - c∈ℝ is the mass concentration. + * + * - D∈Sym₂(ℝ) is the diffusivity tensor. + */ + using LinearMassDiffusiveMaterial2d = material::LinearTransportMaterial<2>; + + /** + * @brief 3D linear mass diffusive material model. + * + * By Fick's law, the diffusion flux J∈ℝ³ is a linear function of + * the mass concentration gradient ∇c∈ℝ³: + * + * ```text + * J=-D∇c + * ``` + * + * - c∈ℝ is the mass concentration. + * + * - D∈Sym₃(ℝ) is the diffusivity tensor. + */ + using LinearMassDiffusiveMaterial3d = material::LinearTransportMaterial<3>; + + /** + * @brief 2D linear porous material model. + * + * By Darcy's law, the volumetric flux q∈ℝ² is a linear function of + * the pressure gradient ∇p∈ℝ²: + * + * ```text + * q=-K∇p + * ``` + * + * - p∈ℝ is the pressure. + * + * - K∈Sym₂(ℝ) is the permeability tensor. + */ + using LinearPorousMaterial2d = material::LinearTransportMaterial<2>; + + /** + * @brief 3D linear porous material model. + * + * By Darcy's law, the volumetric flux q∈ℝ³ is a linear function of + * the pressure gradient ∇p∈ℝ³: + * + * ```text + * q=-K∇p + * ``` + * + * - p∈ℝ is the pressure. + * + * - K∈Sym₃(ℝ) is the permeability tensor. + */ + using LinearPorousMaterial3d = material::LinearTransportMaterial<3>; + + /** + * @brief 2D linear thermal conductive material model. + * + * By Fourier's law, the heat flux q∈ℝ² is a linear function of + * the temperature gradient ∇T∈ℝ²: + * + * ```text + * q=-κ∇T + * ``` + * + * - T∈ℝ is the temperature. + * + * - κ∈Sym₂(ℝ) is the conductivity tensor. + */ + using LinearThermalConductiveMaterial2d = material::LinearTransportMaterial<2>; + + /** + * @brief 3D linear thermal conductive material model. + * + * By Fourier's law, the heat flux q∈ℝ³ is a linear function of + * the temperature gradient ∇T∈ℝ³: + * + * ```text + * q=-κ∇T + * ``` + * + * - T∈ℝ is the temperature. + * + * - κ∈Sym₃(ℝ) is the conductivity tensor. + */ + using LinearThermalConductiveMaterial3d = material::LinearTransportMaterial<3>; + + /** + * @brief 2D linear piezoelectric material model. + * + * In the stress-charge form, mechanical fields (stress T∈ℝ³ and strain S∈ℝ³) + * and electrical fields (electric displacement D∈ℝ² and electric field E∈ℝ²) + * are coupled by: + * + * ```text + * T=cS-dᵀE + * D=dT+ϵE + * ``` + * + * - c∈Sym₃(ℝ) is the stiffness tensor in Voigt notation. + * + * - ϵ∈Sym₂(ℝ) is the permittivity tensor. + * + * - d∈ℝ²ˣ³ is the piezoelectric coupling tensor. + */ + using LinearPiezoelectricMaterial2d = material::LinearPiezoelectricMaterial; + + /** + * @brief 3D linear piezoelectric material model. + * + * In the stress-charge form, mechanical fields (stress T∈ℝ⁶ and strain S∈ℝ⁶) + * and electrical fields (electric displacement D∈ℝ³ and electric field E∈ℝ³) + * are coupled by: + * + * ```text + * T=cS-dᵀE + * D=dT+ϵE + * ``` + * + * - c∈Sym₆(ℝ) is the stiffness tensor in Voigt notation. + * + * - ϵ∈Sym₃(ℝ) is the permittivity tensor. + * + * - d∈ℝ³ˣ⁶ is the piezoelectric coupling tensor. + */ + using LinearPiezoelectricMaterial3d = material::LinearPiezoelectricMaterial; + +} // namespace monad diff --git a/include/monad/material/mechanical/linear_elastic_material.hpp b/include/monad/material/mechanical/linear_elastic_material.hpp index b33de7c..d768a61 100644 --- a/include/monad/material/mechanical/linear_elastic_material.hpp +++ b/include/monad/material/mechanical/linear_elastic_material.hpp @@ -2,106 +2,78 @@ #include #include -#include "monad/detail/mean.hpp" #include "monad/detail/eigen_utils.hpp" -#include "monad/grid/grid_base.hpp" +#include "monad/detail/constants.hpp" namespace monad { - /** - * @brief Represents a linear elastic material model. - * - * By Hooke's law, stress σ∈ℝᵛ is a linear function of strain ε∈ℝᵛ: - * - * σ=Cε - * - * - C∈Symᵥ(ℝ) is the stiffness tensor (in Voigt notation). - * - * @tparam D Spatial dimension (2 or 3). - */ - template - class LinearElasticMaterial { - public: - static_assert(D == 2 || D == 3, "Spatial dimension D must be 2 or 3."); - - /// @brief Spatial dimension (2 or 3). - static constexpr int Dim = D; - - /// @brief Number of components in Voigt notation. - static constexpr int VoigtSize = (Dim == 2) ? 3 : 6; - - /// @brief Stiffness tensor (in Voigt notation) type. - using MaterialTensor = Eigen::Matrix; - - /// @brief Default constructor. - LinearElasticMaterial() = default; + namespace material { /** - * @brief Constructs a linear elastic material. - * - * @param[in] C Stiffness tensor (in Voigt notation). + * @brief Linear elastic material model. * - * @throws std::invalid_argument if `C` is not positive definite. - */ - explicit LinearElasticMaterial(const MaterialTensor &C) - : C_(C) { - if (!detail::isPD(C_)) { - throw std::invalid_argument("Stiffness tensor is not positive definite."); - } - } - - /// @brief Stiffness tensor C (in Voigt notation). - const MaterialTensor &materialTensor() const noexcept { - return C_; - } - - /** - * @brief Voigt upper bound for the homogenized stiffness tensor. + * By Hooke's law, the stress σ∈ℝᵛ is a linear function of + * the strain ε∈ℝᵛ: * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). + * ```text + * σ=Cε + * ``` * - * @param[in] grid Periodic unit cell grid. + * - C∈Symᵥ(ℝ) is the stiffness tensor in Voigt notation. * - * @returns Voigt upper bound for the homogenized stiffness tensor. + * @tparam D Spatial dimension (2 or 3). */ - template - MaterialTensor voigt(const GridBase &grid) const noexcept { - const double density = detail::arithmeticMean(grid.densities()); - - return density * C_; - } + template + class LinearElasticMaterial { + public: + static_assert(D == 2 || D == 3, "Spatial dimension D must be 2 or 3."); + + /// @brief Spatial dimension (2 or 3). + static constexpr int Dim = D; + + /// @brief Number of components in Voigt notation. + static constexpr int VoigtSize = (Dim == 2) ? 3 : 6; + + /// @brief Stiffness tensor type. + using MaterialTensor = Eigen::Matrix; + + /// @brief Default constructor. + LinearElasticMaterial() = default; + + /** + * @brief Constructs a linear elastic material. + * + * @param[in] C Stiffness tensor. + * + * @throws std::invalid_argument if `C` is not positive definite. + */ + explicit LinearElasticMaterial(const MaterialTensor &C) + : C_(C) { + if (!detail::isPD(C_)) { + throw std::invalid_argument("Stiffness tensor is not positive definite."); + } + } - /** - * @brief Reuss lower bound for the homogenized stiffness tensor. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * - * @param[in] grid Periodic unit cell grid. - * - * @returns Reuss lower bound for the homogenized stiffness tensor. - */ - template - MaterialTensor reuss(const GridBase &grid) const noexcept { - const double density = detail::harmonicMean(grid.densities()); + /// @brief Stiffness tensor. + const MaterialTensor &materialTensor() const noexcept { + return C_; + } - return density * C_; - } + /// @brief Equality comparison. + bool operator==(const LinearElasticMaterial &other) const noexcept { + return C_.isApprox(other.C_, NUMERICAL_ZERO); + } - /// @brief Equality comparison. - bool operator==(const LinearElasticMaterial &other) const noexcept { - return C_.isApprox(other.C_); - } + /// @brief Inequality comparison. + bool operator!=(const LinearElasticMaterial &other) const noexcept { + return !(*this == other); + } - /// @brief Inequality comparison. - bool operator!=(const LinearElasticMaterial &other) const noexcept { - return !(*this == other); - } + protected: + /// @brief Stiffness tensor. + MaterialTensor C_; + }; - protected: - /// @brief Stiffness tensor (in Voigt notation). - MaterialTensor C_; - }; + } // namespace material } // namespace monad diff --git a/include/monad/material/mechanical/linear_elastic_material_2d.hpp b/include/monad/material/mechanical/linear_elastic_material_2d.hpp index c91821a..cb40077 100644 --- a/include/monad/material/mechanical/linear_elastic_material_2d.hpp +++ b/include/monad/material/mechanical/linear_elastic_material_2d.hpp @@ -5,24 +5,27 @@ namespace monad { /** - * @brief Represents a 2D linear elastic material model. + * @brief 2D linear elastic material model. * - * By Hooke's law, stress σ∈ℝ² is a linear function of strain ε∈ℝ²: + * By Hooke's law, the stress σ∈ℝ³ is a linear function of + * the strain ε∈ℝ³: * + * ```text * σ=Cε + * ``` * - * - C∈Sym₂(ℝ) is the stiffness tensor (in Voigt notation). + * - C∈Sym₃(ℝ) is the stiffness tensor in Voigt notation. */ - class LinearElasticMaterial2d : public LinearElasticMaterial<2> { + class LinearElasticMaterial2d : public material::LinearElasticMaterial<2> { public: - using LinearElasticMaterial<2>::LinearElasticMaterial; + using material::LinearElasticMaterial<2>::LinearElasticMaterial; - /// @brief Defines the plane conditions for 2D linear elasticity. + /// @brief Plane condition for 2D linear elasticity. enum class PlaneCondition { - /// @brief Assumes zero out-of-plane stress. + /// @brief Zero out-of-plane stress. PlaneStress = 0, - /// @brief Assumes zero out-of-plane strain. + /// @brief Zero out-of-plane strain. PlaneStrain }; @@ -31,7 +34,7 @@ namespace monad { * * @param[in] E Young's modulus. * @param[in] nu Poisson's ratio. - * @param[in] condition 2D plane condition. + * @param[in] condition Plane condition. * * @throws std::invalid_argument if `E` is non-positive. * @throws std::invalid_argument if `nu` is not in range (-1,0.5). diff --git a/include/monad/material/mechanical/linear_elastic_material_3d.hpp b/include/monad/material/mechanical/linear_elastic_material_3d.hpp index c1ee246..fd3cc3e 100644 --- a/include/monad/material/mechanical/linear_elastic_material_3d.hpp +++ b/include/monad/material/mechanical/linear_elastic_material_3d.hpp @@ -5,17 +5,20 @@ namespace monad { /** - * @brief Represents a 3D linear elastic material model. + * @brief 3D linear elastic material model. * - * By Hooke's law, stress σ∈ℝ³ is a linear function of strain ε∈ℝ³: + * By Hooke's law, the stress σ∈ℝ⁶ is a linear function of + * the strain ε∈ℝ⁶: * + * ```text * σ=Cε + * ``` * - * - C∈Sym₃(ℝ) is the stiffness tensor (in Voigt notation). + * - C∈Sym₆(ℝ) is the stiffness tensor in Voigt notation. */ - class LinearElasticMaterial3d : public LinearElasticMaterial<3> { + class LinearElasticMaterial3d : public material::LinearElasticMaterial<3> { public: - using LinearElasticMaterial<3>::LinearElasticMaterial; + using material::LinearElasticMaterial<3>::LinearElasticMaterial; /** * @brief Constructs a 3D isotropic linear elastic material. diff --git a/include/monad/material/multiphysics/linear_piezoelectric_material.hpp b/include/monad/material/multiphysics/linear_piezoelectric_material.hpp index 7894808..d3900d3 100644 --- a/include/monad/material/multiphysics/linear_piezoelectric_material.hpp +++ b/include/monad/material/multiphysics/linear_piezoelectric_material.hpp @@ -2,197 +2,156 @@ #include #include -#include "monad/material/mechanical/linear_elastic_material.hpp" -#include "monad/material/transport/linear_transport_material.hpp" #include "monad/detail/eigen_utils.hpp" -#include "monad/grid/grid_base.hpp" namespace monad { - /** - * @brief Represents a linear piezoelectric material model. - * - * By the stress-charge form, mechanical (stress S∈ℝᵛ and strain T∈ℝᵛ) and - * electrical (electric displacement D∈ℝᵈ and electric field E∈ℝᵈ) fields - * are coupled: - * - * S=cT-dᵀE - * - * -D=-dT-εE - * - * - c∈Symᵥ(ℝ) is the stiffness tensor (in Voigt notation). - * - * - ε∈Symᴅ(ℝ) is the permittivity tensor (analogous to transport tensor K). - * - * - d∈ℝᵈˣᵛ is the piezoelectric coupling tensor. - * - * @tparam MechanicalMaterial Linear elastic material class (e.g. LinearElasticMaterial2d). - * @tparam ElectricalMaterial Linear dielectric material class (e.g. LinearDielectricMaterial2d). - */ - template - class LinearPiezoelectricMaterial { - public: - static_assert(MechanicalMaterial::Dim == ElectricalMaterial::Dim, "Spatial dimension of materials must be equal."); - static_assert(MechanicalMaterial::Dim == 2 || MechanicalMaterial::Dim == 3, "Spatial dimension D must be 2 or 3."); - - /// @brief Spatial dimension (2 or 3). - static constexpr int Dim = MechanicalMaterial::Dim; - - /// @brief Number of components in Voigt notation. - static constexpr int VoigtSize = MechanicalMaterial::VoigtSize; - - using CouplingTensor = Eigen::Matrix; - - /** @brief Coupled constitutive operator type. + namespace material { + + /** + * @brief Linear piezoelectric material model. + * + * In the stress-charge form, mechanical fields (stress T∈ℝᵛ and strain S∈ℝᵛ) + * and electrical fields (electric displacement D∈ℝᵈ and electric field E∈ℝᵈ) + * are coupled by: * * ```text - * ⎡ c -dᵀ⎤ - * ⎣-d -ε ⎦ + * T=cS-dᵀE + * D=dT+ϵE * ``` - */ - using MaterialTensor = Eigen::Matrix; - - /** - * @brief Constructs a linear piezoelectric material. * - * @param[in] elasticMaterial The linear elastic material. - * @param[in] dielectricMaterial The linear dielectric material. - * @param[in] d The piezoelectric coupling tensor. + * - c∈Symᵥ(ℝ) is the stiffness tensor in Voigt notation. * - * @throws std::invalid_argument if Schur complement + * - ϵ∈Symᴅ(ℝ) is the permittivity tensor. * - * c-dᵀε⁻¹d + * - d∈ℝᵈˣᵛ is the piezoelectric coupling tensor. * - * is not positive definite. + * @tparam MechanicalMaterial Linear elastic material type (e.g. LinearElasticMaterial2d). + * @tparam ElectricalMaterial Linear dielectric material type (e.g. LinearDielectricMaterial2d). */ - LinearPiezoelectricMaterial(const MechanicalMaterial &elasticMaterial, const ElectricalMaterial &dielectricMaterial, const CouplingTensor &d) - : elasticMaterial_(elasticMaterial), dielectricMaterial_(dielectricMaterial), d_(d) { - const auto &c = elasticMaterial_.materialTensor(); - const auto &epsilon = dielectricMaterial_.materialTensor(); - - // Schur complement - // Must be PD for thermodynamic stability - auto S = c - d_.transpose() * epsilon.inverse() * d_; - if (!detail::isPD(S)) { - throw std::invalid_argument("Schur complement is not positive definite."); + template + class LinearPiezoelectricMaterial { + public: + static_assert(MechanicalMaterial::Dim == ElectricalMaterial::Dim, "Spatial dimension of materials must be equal."); + static_assert(MechanicalMaterial::Dim == 2 || MechanicalMaterial::Dim == 3, "Spatial dimension D must be 2 or 3."); + + /// @brief Spatial dimension (2 or 3). + static constexpr int Dim = MechanicalMaterial::Dim; + + /// @brief Number of components in Voigt notation. + static constexpr int VoigtSize = MechanicalMaterial::VoigtSize; + + using CouplingTensor = Eigen::Matrix; + + /** @brief Coupled constitutive operator type. + * + * ```text + * ⎡ c -dᵀ⎤ + * ⎣-d -ϵ ⎦ + * ``` + */ + using MaterialTensor = Eigen::Matrix; + + /** + * @brief Constructs a linear piezoelectric material. + * + * @param[in] elasticMaterial Linear elastic material. + * @param[in] dielectricMaterial Linear dielectric material. + * @param[in] d Piezoelectric coupling tensor. + * + * @throws std::invalid_argument if the Schur complement + * + * ``` + * c-dᵀϵ⁻¹d + * ``` + * + * is not positive definite. + */ + LinearPiezoelectricMaterial(const MechanicalMaterial &elasticMaterial, const ElectricalMaterial &dielectricMaterial, const CouplingTensor &d) + : elasticMaterial_(elasticMaterial), dielectricMaterial_(dielectricMaterial), d_(d) { + const auto &c = elasticMaterial_.materialTensor(); + const auto &epsilon = dielectricMaterial_.materialTensor(); + + // Schur complement must be positive definite for thermodynamic stability. + const auto schur = c - d_.transpose() * epsilon.inverse() * d_; + if (!detail::isPD(schur)) { + throw std::invalid_argument("Schur complement is not positive definite."); + } + + op_ << c, -d_.transpose(), + -d_, -epsilon; } - op_ << c, -d_.transpose(), - -d_, -epsilon; - } + /** + * @brief Converts from a compatible piezoelectric material type. + * + * This constructor allows piezoelectric materials built from compatible + * mechanical and electrical material types to be converted into this + * instantiation. + * + * This is needed when solver code expects a canonical + * `LinearPiezoelectricMaterial<...>` type, but the input uses derived + * or aliased component material types. + * + * @tparam OtherMechanicalMaterial Compatible mechanical material type. + * @tparam OtherElectricalMaterial Compatible electrical material type. + * + * @param[in] other Piezoelectric material to convert from. + */ + template + LinearPiezoelectricMaterial(const LinearPiezoelectricMaterial &other) + : LinearPiezoelectricMaterial(other.elasticMaterial(), other.dielectricMaterial(), other.couplingTensor()) {} + + /// @brief Linear elastic material. + const MechanicalMaterial &elasticMaterial() const noexcept { + return elasticMaterial_; + } - /** - * @brief Converting constructor for compatible piezoelectric material types. - * - * Converts any derived instantiation of `LinearPiezoelectricMaterial` into the - * canonical form expected by the solver. - * - * Example: - * - * LinearPiezoelectricMaterial2d - * - * ↳ LinearPiezoelectricMaterial, LinearTransportMaterial<2>> - * - * @tparam OtherMechanicalMaterial Derived mechanical material type. - * @tparam OtherElectricalMaterial Derived electrical material type. - * - * @param[in] other Linear piezoelectric material. - * - * @note Unlike single-physics materials, the piezoelectric class is a nested - * template over two material types, which prevents implicit type deduction - * for the solver. This constructor explicitly bridges that gap by forwarding - * the material to the canonical base type. - */ - template - LinearPiezoelectricMaterial(const LinearPiezoelectricMaterial &other) - : LinearPiezoelectricMaterial(other.elasticMaterial(), other.dielectricMaterial(), other.couplingTensor()) {} - - /// @brief Linear elastic material. - const MechanicalMaterial &elasticMaterial() const noexcept { - return elasticMaterial_; - } - - /// @brief Linear dielectric material. - const ElectricalMaterial &dielectricMaterial() const noexcept { - return dielectricMaterial_; - } - - /// @brief Piezoelectric coupling tensor d. - const CouplingTensor &couplingTensor() const noexcept { - return d_; - } - - /// @brief Coupled constitutive operator. - const MaterialTensor &materialTensor() const noexcept { - return op_; - } - - /// @brief Equality comparison. - bool operator==(const LinearPiezoelectricMaterial &other) const noexcept { - return op_ == other.op_; - } - - /// @brief Inequality comparison. - bool operator!=(const LinearPiezoelectricMaterial &other) const noexcept { - return !(*this == other); - } - - private: - /// @brief Linear elastic material. - const MechanicalMaterial elasticMaterial_; - - /// @brief Linear dielectric material. - const ElectricalMaterial dielectricMaterial_; - - /// @brief Piezoelectric coupling tensor. - const CouplingTensor d_; - - /** @brief Coupled constitutive operator. - * - * ```text - * ⎡ c -dᵀ⎤ - * ⎣-d -ε ⎦ - * ``` - */ - MaterialTensor op_; - }; - - /** - * @brief Represents a 2D linear piezoelectric material model. - * - * By the stress-charge form, mechanical (stress S∈ℝ³ and strain T∈ℝ³) and - * electrical (electric displacement D∈ℝ² and electric field E∈ℝ²) fields - * are coupled: - * - * S=cT-dᵀE - * - * -D=-dT-εE - * - * - c∈Sym₃(ℝ) is the stiffness tensor (in Voigt notation). - * - * - ε∈Sym₂(ℝ) is the dielectric tensor. - * - * - d∈ℝ²ˣ³ is the piezoelectric coupling tensor. - */ - using LinearPiezoelectricMaterial2d = LinearPiezoelectricMaterial, LinearTransportMaterial<2>>; - - /** - * @brief Represents a 3D linear piezoelectric material model. - * - * By the stress-charge form, mechanical (stress S∈ℝ⁶ and strain T∈ℝ⁶) and - * electrical (electric displacement D∈ℝ³ and electric field E∈ℝ³) fields - * are coupled: - * - * S=cT-dᵀE - * - * -D=-dT-εE - * - * - c∈Sym₆(ℝ) is the stiffness tensor (in Voigt notation). - * - * - ε∈Sym₃(ℝ) is the dielectric tensor. - * - * - d∈ℝ³ˣ⁶ is the piezoelectric coupling tensor. - */ - using LinearPiezoelectricMaterial3d = LinearPiezoelectricMaterial, LinearTransportMaterial<3>>; + /// @brief Linear dielectric material. + const ElectricalMaterial &dielectricMaterial() const noexcept { + return dielectricMaterial_; + } + + /// @brief Piezoelectric coupling tensor. + const CouplingTensor &couplingTensor() const noexcept { + return d_; + } + + /// @brief Coupled constitutive operator. + const MaterialTensor &materialTensor() const noexcept { + return op_; + } + + /// @brief Equality comparison. + bool operator==(const LinearPiezoelectricMaterial &other) const noexcept { + return op_ == other.op_; + } + + /// @brief Inequality comparison. + bool operator!=(const LinearPiezoelectricMaterial &other) const noexcept { + return !(*this == other); + } + + private: + /// @brief Linear elastic material. + const MechanicalMaterial elasticMaterial_; + + /// @brief Linear dielectric material. + const ElectricalMaterial dielectricMaterial_; + + /// @brief Piezoelectric coupling tensor. + const CouplingTensor d_; + + /** @brief Coupled constitutive operator. + * + * ```text + * ⎡ c -dᵀ⎤ + * ⎣-d -ϵ ⎦ + * ``` + */ + MaterialTensor op_; + }; + + } // namespace material } // namespace monad diff --git a/include/monad/material/transport/linear_transport_material.hpp b/include/monad/material/transport/linear_transport_material.hpp index 71e2541..9867f85 100644 --- a/include/monad/material/transport/linear_transport_material.hpp +++ b/include/monad/material/transport/linear_transport_material.hpp @@ -5,113 +5,86 @@ #include #include "monad/detail/mean.hpp" #include "monad/detail/eigen_utils.hpp" -#include "monad/grid/grid_base.hpp" +#include "monad/detail/constants.hpp" namespace monad { - /** - * @brief Represents a linear transport material model. - * - * By a linear transport constitutive law, a flux J∈ℝᵈ is a linear function of a scalar potential gradient ∇φ∈ℝᵈ: - * - * J=-K∇φ - * - * - K∈Symᴅ(ℝ) is the transport tensor. - * - * @tparam D Spatial dimension (2 or 3). - */ - template - class LinearTransportMaterial { - public: - static_assert(D == 2 || D == 3, "Spatial dimension D must be 2 or 3."); - - /// @brief Spatial dimension (2 or 3). - static constexpr int Dim = D; - - /// @brief Transport tensor type. - using MaterialTensor = Eigen::Matrix; + namespace material { /** - * @brief Constructs a linear transport material. + * @brief Linear transport material model. * - * @param[in] K Transport tensor. + * In a linear transport constitutive law, the flux J∈ℝᵈ is + * a linear function of a scalar potential gradient ∇φ∈ℝᵈ: * - * @throws std::invalid_argument if `K` is not positive definite. - */ - explicit LinearTransportMaterial(const MaterialTensor &K) - : K_(K) { - if (!detail::isPD(K_)) { - throw std::invalid_argument("Transport tensor is not positive definite."); - } - } - - /** - * @brief Constructs an isotropic linear transport material. + * ```text + * J=-K∇φ + * ``` * - * @param[in] K Transport constant. + * - K∈Symᴅ(ℝ) is the transport tensor. * - * @throws std::invalid_argument if `K` is non-positive. + * @tparam D Spatial dimension (2 or 3). */ - explicit LinearTransportMaterial(double K) { - if (K <= 0.0) { - throw std::invalid_argument("K (" + std::to_string(K) + ") must be positive."); + template + class LinearTransportMaterial { + public: + static_assert(D == 2 || D == 3, "Spatial dimension D must be 2 or 3."); + + /// @brief Spatial dimension (2 or 3). + static constexpr int Dim = D; + + /// @brief Transport tensor type. + using MaterialTensor = Eigen::Matrix; + + /** + * @brief Constructs a linear transport material. + * + * @param[in] K Transport tensor. + * + * @throws std::invalid_argument if `K` is not positive definite. + */ + explicit LinearTransportMaterial(const MaterialTensor &K) + : K_(K) { + if (!detail::isPD(K_)) { + throw std::invalid_argument("Transport tensor is not positive definite."); + } } - K_ = MaterialTensor::Identity() * K; - } - - /// @brief Transport tensor K. - const MaterialTensor &materialTensor() const noexcept { - return K_; - } - - /** - * @brief Voigt upper bound for the homogenized transport tensor. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * - * @param[in] grid Periodic unit cell grid. - * - * @returns Voigt upper bound for the homogenized transport tensor. - */ - template - MaterialTensor voigt(const GridBase &grid) const noexcept { - const double density = detail::arithmeticMean(grid.densities()); - - return density * K_; - } + /** + * @brief Constructs an isotropic linear transport material. + * + * @param[in] K Transport constant. + * + * @throws std::invalid_argument if `K` is non-positive. + */ + explicit LinearTransportMaterial(double K) { + if (K <= 0.0) { + throw std::invalid_argument("K (" + std::to_string(K) + ") must be positive."); + } + + K_ = MaterialTensor::Identity() * K; + } - /** - * @brief Reuss lower bound for the homogenized transport tensor. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * - * @param[in] grid Periodic unit cell grid. - * - * @returns Reuss lower bound for the homogenized transport tensor. - */ - template - MaterialTensor reuss(const GridBase &grid) const noexcept { - const double density = detail::harmonicMean(grid.densities()); + /// @brief Transport tensor. + const MaterialTensor &materialTensor() const noexcept { + return K_; + } - return density * K_; - } + /// @brief Equality comparison. + bool operator==(const LinearTransportMaterial &other) const noexcept { + return K_.isApprox(other.K_, NUMERICAL_ZERO); + } - /// @brief Equality comparison. - bool operator==(const LinearTransportMaterial &other) const noexcept { - return K_.isApprox(other.K_); - } + /// @brief Inequality comparison. + bool operator!=(const LinearTransportMaterial &other) const noexcept { + return !(*this == other); + } - /// @brief Inequality comparison. - bool operator!=(const LinearTransportMaterial &other) const noexcept { - return !(*this == other); - } + private: + /// @brief Transport tensor. + MaterialTensor K_; + }; - private: - /// @brief Transport tensor K. - MaterialTensor K_; - }; + } // namespace material } // namespace monad diff --git a/include/monad/material/transport/linear_transport_material_aliases.hpp b/include/monad/material/transport/linear_transport_material_aliases.hpp deleted file mode 100644 index 1cd9bd7..0000000 --- a/include/monad/material/transport/linear_transport_material_aliases.hpp +++ /dev/null @@ -1,259 +0,0 @@ -#pragma once - -#include "monad/material/transport/linear_transport_material.hpp" - -namespace monad { - - /** - * @brief Represents a 2D linear dielectric material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For dielectric materials, Gauss's law provides the constitutive relation: - * - * D=εE - * - * - D∈ℝ² is the electric displacement (analogous to flux J).. - * - * - E=-∇φ∈ℝ² is the electric field (analogous to scalar potential gradient ∇φ).. - * - * - φ∈ℝ is the electric potential (analogous to scalar potential φ).. - * - * - ε∈Sym₂(ℝ) is the permittivity tensor (analogous to transport tensor K).. - */ - using LinearDielectricMaterial2d = LinearTransportMaterial<2>; - - /** - * @brief Represents a 3D linear dielectric material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For dielectric materials, Gauss's law provides the constitutive relation: - * - * D=εE - * - * - D∈ℝ³ is the electric displacement (analogous to flux J). - * - * - E=-∇φ∈ℝ³ is the electric field (analogous to scalar potential gradient ∇φ). - * - * - φ∈ℝ is the electric potential (analogous to scalar potential φ). - * - * - ε∈Sym₃(ℝ) is the permittivity tensor (analogous to transport tensor K). - */ - using LinearDielectricMaterial3d = LinearTransportMaterial<3>; - - /** - * @brief Represents a 2D linear electrical conductive material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For electrical conductive materials, Ohm's law provides the constitutive relation: - * - * J=σE - * - * - J∈ℝ² is the current density (analogous to flux J). - * - * - E=-∇φ∈ℝ² is the electric field (analogous to scalar potential gradient ∇φ). - * - * - φ∈ℝ is the electric potential (analogous to scalar potential φ). - * - * - σ∈Sym₂(ℝ) is the conductivity tensor (analogous to transport tensor K). - */ - using LinearElectricalConductiveMaterial2d = LinearTransportMaterial<2>; - - /** - * @brief Represents a 3D linear electrical conductive material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For electrical conductive materials, Ohm's law provides the constitutive relation: - * - * J=σE - * - * - J∈ℝ³ is the current density (analogous to flux J). - * - * - E=-∇φ∈ℝ³ is the electric field (analogous to scalar potential gradient ∇φ). - * - * - φ∈ℝ is the electric potential (analogous to scalar potential φ). - * - * - σ∈Sym₃(ℝ) is the conductivity tensor (analogous to transport tensor K). - */ - using LinearElectricalConductiveMaterial3d = LinearTransportMaterial<3>; - - /** - * @brief Represents a 2D linear magnetic material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For magnetic materials, the constitutive relation is: - * - * B=μH - * - * - B∈ℝ² is the magnetic flux density (analogous to flux J). - * - * - H=-∇φ∈ℝ² is the magnetic field (analogous to scalar potential gradient ∇φ). - * - * - φ∈ℝ is the magnetic potential (analogous to scalar potential φ). - * - * - μ∈Sym₂(ℝ) is the permeability tensor (analogous to transport tensor K). - */ - using LinearMagneticMaterial2d = LinearTransportMaterial<2>; - - /** - * @brief Represents a 3D linear magnetic material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For magnetic materials, the constitutive relation is: - * - * B=μH - * - * - B∈ℝ³ is the magnetic flux density (analogous to flux J). - * - * - H=-∇φ∈ℝ³ is the magnetic field (analogous to scalar potential gradient ∇φ). - * - * - φ∈ℝ is the magnetic potential (analogous to scalar potential φ). - * - * - μ∈Sym₃(ℝ) is the permeability tensor (analogous to transport tensor K). - */ - using LinearMagneticMaterial3d = LinearTransportMaterial<3>; - - /** - * @brief Represents a 2D linear mass diffusive material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For mass diffusive materials, Fick's law provides the constitutive relation: - * - * J=-D∇c - * - * - J∈ℝ² is the diffusion flux (analogous to flux J). - * - * - ∇c∈ℝ² is the mass concentration gradient (analogous to scalar potential gradient ∇φ). - * - * - D∈Sym₂(ℝ) is the diffusivity tensor (analogous to transport tensor K). - */ - using LinearMassDiffusiveMaterial2d = LinearTransportMaterial<2>; - - /** - * @brief Represents a 3D linear mass diffusive material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For mass diffusive materials, Fick's law provides the constitutive relation: - * - * J=-D∇c - * - * - J∈ℝ³ is the diffusion flux (analogous to flux J). - * - * - ∇c∈ℝ³ is the mass concentration gradient (analogous to scalar potential gradient ∇φ). - * - * - D∈Sym₃(ℝ) is the diffusivity tensor (analogous to transport tensor K). - */ - using LinearMassDiffusiveMaterial3d = LinearTransportMaterial<3>; - - /** - * @brief Represents a 2D linear porous material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For porous materials, Darcy's law provides the constitutive relation: - * - * q=-K∇p - * - * - q∈ℝ² is the volumetric flux (analogous to flux J). - * - * - ∇p∈ℝ² is the pressure gradient (analogous to scalar potential gradient ∇φ). - * - * - K∈Sym₂(ℝ) is the permeability tensor (analogous to transport tensor K). - */ - using LinearPorousMaterial2d = LinearTransportMaterial<2>; - - /** - * @brief Represents a 3D linear porous material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For porous materials, Darcy's law provides the constitutive relation: - * - * q=-K∇p - * - * - D∈ℝ³ is the volumetric flux (analogous to flux J). - * - * - ∇p∈ℝ³ is the pressure gradient (analogous to scalar potential gradient ∇φ). - * - * - K∈Sym₃(ℝ) is the permeability tensor (analogous to transport tensor K). - */ - using LinearPorousMaterial3d = LinearTransportMaterial<3>; - - /** - * @brief Represents a 2D linear thermal conductive material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For thermal conductive materials, Fourier's law provides the constitutive relation: - * - * q=-κ∇T - * - * - q∈ℝ² is the heat flux (analogous to flux J). - * - * - ∇T∈ℝ² is the temperature gradient (analogous to scalar potential gradient ∇φ). - * - * - κ∈Sym₂(ℝ) is the conductivity tensor (analogous to transport tensor K). - */ - using LinearThermalConductiveMaterial2d = LinearTransportMaterial<2>; - - /** - * @brief Represents a 3D linear thermal conductive material model. - * - * This type is a physics-specific alias of a general linear transport material, - * whose constitutive relation takes the form: - * - * J=-K∇φ - * - * For thermal conductive materials, Fourier's law provides the constitutive relation: - * - * q=-κ∇T - * - * - q∈ℝ³ is the heat flux (analogous to flux J). - * - * - ∇T∈ℝ³ is the temperature gradient (analogous to scalar potential gradient ∇φ). - * - * - κ∈Sym₃(ℝ) is the conductivity tensor (analogous to transport tensor K). - */ - using LinearThermalConductiveMaterial3d = LinearTransportMaterial<3>; - -} // namespace monad diff --git a/include/monad/monad.hpp b/include/monad/monad.hpp index 44a9082..6cdb979 100644 --- a/include/monad/monad.hpp +++ b/include/monad/monad.hpp @@ -1,23 +1,24 @@ #pragma once +// Fields +#include "monad/field/field_aliases.hpp" +#include "monad/field/make_density_field_from_csv.hpp" +#include "monad/field/make_density_field_from_function.hpp" + // Grids -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" +#include "monad/grid/grid_aliases.hpp" // IO #include "monad/io/save_grid.hpp" -#include "monad/io/save_grid_and_field.hpp" +#include "monad/io/save_grid_and_density_field.hpp" +#include "monad/io/save_grid_and_nodal_field.hpp" // Material #include "monad/material/mechanical/linear_elastic_material_2d.hpp" #include "monad/material/mechanical/linear_elastic_material_3d.hpp" -#include "monad/material/transport/linear_transport_material_aliases.hpp" -#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" +#include "monad/material/bounds.hpp" +#include "monad/material/material_aliases.hpp" // Solvers #include "monad/solver/solver_options.hpp" -#include "monad/solver/mechanical/linear_elastic_solver.hpp" -#include "monad/solver/scalar/linear_scalar_diffusive_solver_aliases.hpp" -#include "monad/solver/multiphysics/linear_piezoelectric_solver.hpp" +#include "monad/solver/solver_aliases.hpp" diff --git a/include/monad/solver/identity_preconditioner.hpp b/include/monad/solver/identity_preconditioner.hpp new file mode 100644 index 0000000..a5d5bf1 --- /dev/null +++ b/include/monad/solver/identity_preconditioner.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include + +namespace monad { + + namespace solver { + + /** + * @brief Identity preconditioner for a matrix-free stiffness operator. + * + * This preconditioner approximates the inverse of the reduced global + * stiffness operator A by the identity matrix: + * + * ```text + * A⁻¹≈I + * ``` + */ + using IdentityPreconditioner = Eigen::IdentityPreconditioner; + + } // namespace solver + +} // namespace monad diff --git a/include/monad/fem/operator/jacobi_preconditioner.hpp b/include/monad/solver/jacobi_preconditioner.hpp similarity index 52% rename from include/monad/fem/operator/jacobi_preconditioner.hpp rename to include/monad/solver/jacobi_preconditioner.hpp index e03e59f..f50c12b 100644 --- a/include/monad/fem/operator/jacobi_preconditioner.hpp +++ b/include/monad/solver/jacobi_preconditioner.hpp @@ -4,17 +4,19 @@ namespace monad { - namespace fem { + namespace solver { /** - * @brief Jacobi (diagonal) preconditioner for the matrix-free operator. + * @brief Jacobi preconditioner for a matrix-free stiffness operator. * - * This preconditioner approximates the inverse of the global stiffness matrix A - * by inverting only its diagonal: + * This preconditioner approximates the inverse of the reduced global + * stiffness operator A by inverting only its diagonal: * + * ```text * A⁻¹≈diag(A)⁻¹ + * ``` * - * @tparam Operator Matrix-free operator class (e.g. MatrixFreeOperator>). + * @tparam Operator Matrix-free operator type (e.g. MatrixFreeOperator>). */ template class JacobiPreconditioner { @@ -35,7 +37,7 @@ namespace monad { } /** - * @brief Computes the diagonal of the global stiffness matrix. + * @brief Computes the diagonal preconditioner from a matrix-free operator. * * @param[in] op Matrix-free operator. * @@ -46,24 +48,33 @@ namespace monad { diagonal_.setZero(n); const auto &elementKReference = op.elementKReference(); - const auto &elementDofs = op.elementDofs(); - const auto &densities = op.densities(); + const auto &dofMap = op.dofMap(); + const auto &densityField = op.densityField(); - // Loop over all elements and accumulate their diagonal contributions - for (std::size_t i = 0; i < elementDofs.size(); ++i) { - const double density = densities[i]; - const auto &dofs = elementDofs[i]; + // Assemble the reduced global diagonal by accumulating the + // density-scaled diagonal entries of each element matrix + for (std::size_t i = 0; i < dofMap.size(); ++i) { + const double density = densityField.getDensity(i); + const auto &reducedDofs = dofMap.reducedDofs(i); - for (std::size_t j = 0; j < dofs.size(); ++j) { - const int globalDof = dofs[j]; - const int localDof = static_cast(j); + for (std::size_t j = 0; j < reducedDofs.size(); ++j) { + const int reducedDof = reducedDofs[j]; + const int localReducedDof = static_cast(j); - if (globalDof >= 0) { - diagonal_(globalDof) += density * elementKReference(localDof, localDof); + if (reducedDof >= 0) { + diagonal_(reducedDof) += density * elementKReference(localReducedDof, localReducedDof); } } } + // Jacobi requires invertible diagonal entries + for (int i = 0; i < diagonal_.size(); ++i) { + if (diagonal_(i) == Scalar(0)) { + info_ = Eigen::NumericalIssue; + break; + } + } + return *this; } @@ -72,9 +83,11 @@ namespace monad { * * Computes * + * ```text * x=A⁻¹b≈diag(A)⁻¹b + * ``` * - * via element-wise division. + * by element-wise division. * * @tparam Rhs Type of the right-hand side vector. * @@ -83,20 +96,23 @@ namespace monad { * @returns Preconditioned vector. */ template - inline Vector solve(const Eigen::MatrixBase &b) const noexcept { + inline Vector solve(const Eigen::MatrixBase &b) const { return b.cwiseQuotient(diagonal_); } /// @brief Status of the preconditioner. Eigen::ComputationInfo info() const noexcept { - return Eigen::Success; + return info_; } private: /// @brief Diagonal of the global stiffness matrix. Vector diagonal_; + + /// @brief Status of the preconditioner. + Eigen::ComputationInfo info_ = Eigen::Success; }; - } // namespace fem + } // namespace solver } // namespace monad diff --git a/include/monad/solver/mechanical/linear_elastic_physics.hpp b/include/monad/solver/mechanical/linear_elastic_physics.hpp deleted file mode 100644 index 67402d4..0000000 --- a/include/monad/solver/mechanical/linear_elastic_physics.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#pragma once - -#include -#include -#include "monad/fem/kernel/mechanical/linear_elastic_kernel.hpp" -#include "monad/fem/operator/mechanical/linear_elastic_matrix_free_operator_traits.hpp" -#include "monad/solver/solver_options.hpp" -#include "monad/solver/mechanical/linear_elastic_physics_traits.hpp" - -namespace monad { - - namespace solver { - - namespace mechanical { - - /** - * @brief Physics policy for linear elastic homogenization. - * - * @tparam Element Element class (e.g. Quad4). - */ - template - struct LinearElasticPhysics { - using Kernel = fem::mechanical::LinearElasticKernel; - using Material = typename Kernel::Material; - - /// @brief Spatial dimension (2 or 3). - static constexpr int Dim = Element::Dim; - - /** - * @brief Number of macroscopic fields: - * - * - D=2: ε̄₁₁, ε̄₂₂, ε̄₁₂. - * - * - D=3: ε̄₁₁, ε̄₂₂, ε̄₃₃, ε̄₁₂, ε̄₁₃, ε̄₂₃. - */ - static constexpr int NumMacroFields = Material::VoigtSize; - - using OperatorTraits = fem::mechanical::LinearElasticMatrixFreeOperatorTraits; - - using Traits = LinearElasticPhysicsTraits; - - /// @brief Global force matrix type. - using FieldMatrix = Eigen::Matrix; - - /// @brief Homogenized stiffness tensor type. - using MaterialTensor = typename Material::MaterialTensor; - - /** - * @brief Results from linear elastic homogenization. - * - * @note Displacement fields are stored in arrays - * ordered by the prescribed macroscopic strain - * loading directions: - * - * - D=2: ε̄₁₁, ε̄₂₂, ε̄₁₂. - * - * - D=3: ε̄₁₁, ε̄₂₂, ε̄₃₃, ε̄₁₂, ε̄₁₃, ε̄₂₃. - * - * Each array entry corresponds to one independent macroscopic loading case. - */ - struct Results { - using NodalField = Eigen::Matrix; - - /// @brief Homogenized stiffness tensor C̄. - MaterialTensor CBar; - - /// @brief Total nodal displacement fields u=ū+ũ. - std::array u; - - /// @brief Macroscopic nodal displacement fields ū. - std::array uMacro; - - /// @brief Microscopic nodal displacement fields ũ. - std::array uMicro; - }; - - /** - * @brief Macroscopic nodal displacements. - * - * The macroscopic displacements Ū are the displacements - * resulting from the macroscopic strains ε̄: - * - * Ū=ε̄x - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * - * @param[in] grid Periodic unit cell grid. - * - * @returns Macroscopic nodal displacements. - */ - template - static FieldMatrix macroscopicField(const GridBase &grid) { - return Traits::macroDisplacements(grid); - } - - /** - * @brief Constructs linear elastic homogenization results. - * - * @param[in] CBar Homogenized stiffness tensor. - * @param[in] U Total nodal displacement fields. - * @param[in] UMacro Macroscopic nodal displacement fields. - * @param[in] UMicro Microscopic nodal displacement fields. - * @param[in] fields Controls which nodal fields are stored in the solver results. - * - * @returns Linear elastic homogenization results. - */ - static Results makeResults(const MaterialTensor &CBar, const FieldMatrix &U, const FieldMatrix &UMacro, const FieldMatrix &UMicro, FieldSave fields) noexcept { - using NodalField = typename Results::NodalField; - - Results results; - - results.CBar = CBar; - - const auto numNodes = U.rows() / Dim; - - if (wants(fields, FieldSave::Total)) { - std::array temp; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - temp[i] = U.col(static_cast(i)).template reshaped(numNodes, Dim); - } - - results.u = temp; - } - - if (wants(fields, FieldSave::Macro)) { - std::array temp; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - temp[i] = UMacro.col(static_cast(i)).template reshaped(numNodes, Dim); - } - - results.uMacro = temp; - } - - if (wants(fields, FieldSave::Micro)) { - std::array temp; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - temp[i] = UMicro.col(static_cast(i)).template reshaped(numNodes, Dim); - } - - results.uMicro = temp; - } - - return results; - } - }; - - } // namespace mechanical - - } // namespace solver - -} // namespace monad diff --git a/include/monad/solver/mechanical/linear_elastic_physics_traits.hpp b/include/monad/solver/mechanical/linear_elastic_physics_traits.hpp deleted file mode 100644 index c7f4755..0000000 --- a/include/monad/solver/mechanical/linear_elastic_physics_traits.hpp +++ /dev/null @@ -1,144 +0,0 @@ -#pragma once - -#include -#include -#include "monad/grid/grid_base.hpp" -#include "monad/fem/operator/mechanical/linear_elastic_matrix_free_operator_traits.hpp" - -namespace monad { - - namespace solver { - - namespace mechanical { - - /** - * @brief Linear elastic physics traits. - * - * This struct isolates dimension-specific logic so that linear elastic physics - * can be written generically in terms of spatial dimension. - * - * @tparam D Spatial dimension (2 or 3). - */ - template - struct LinearElasticPhysicsTraits; - - /** - * @brief 2D linear elastic physics traits. - * - * This struct isolates 2D-specific logic so that linear elastic physics - * can be written generically in terms of spatial dimension. - */ - template <> - struct LinearElasticPhysicsTraits<2> { - using OperatorTraits = fem::mechanical::LinearElasticMatrixFreeOperatorTraits<2>; - - /** - * @brief Macroscopic nodal displacements. - * - * The macroscopic displacements Ū are the displacements - * resulting from the macroscopic strains ε̄: - * - * Ū=ε̄x - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * - * @param[in] grid Periodic unit cell grid. - * - * @returns Macroscopic nodal displacements. - */ - template - static Eigen::MatrixX3d macroDisplacements(const GridBase &grid) { - static_assert(Element::Dim == Grid::Dim, "Element spatial dimension must equal grid spatial dimension."); - - const std::size_t numNodes = grid.numNodes(); - const std::size_t numDofs = OperatorTraits::NumNodeDofs * numNodes; - - Eigen::MatrixX3d U = Eigen::MatrixX3d::Zero(static_cast(numDofs), 3); - - for (std::size_t i = 0; i < grid.numNodes(); ++i) { - auto node = grid.node(i); - - const double x = node(0); - const double y = node(1); - - const int u = static_cast(2 * i); - const int v = static_cast(2 * i + 1); - - U(u, 0) = x; - U(v, 1) = y; - U(u, 2) = 0.5 * y; - U(v, 2) = 0.5 * x; - } - - return U; - } - }; - - /** - * @brief 3D linear elastic physics traits. - * - * This struct isolates 3D-specific logic so that linear elastic physics - * can be written generically in terms of spatial dimension. - */ - template <> - struct LinearElasticPhysicsTraits<3> { - using OperatorTraits = fem::mechanical::LinearElasticMatrixFreeOperatorTraits<3>; - - using MatrixX6d = Eigen::Matrix; - - /** - * @brief Macroscopic nodal displacements. - * - * The macroscopic displacements Ū are the displacements - * resulting from the macroscopic strains ε̄: - * - * Ū=ε̄x - * - * @tparam Grid Grid class (e.g. Hex8Grid). - * @tparam Element Element class (e.g. Hex8). - * - * @param[in] grid Periodic unit cell grid. - * - * @returns Macroscopic nodal displacements. - */ - template - static MatrixX6d macroDisplacements(const GridBase &grid) { - static_assert(Element::Dim == Grid::Dim, "Element spatial dimension must equal grid spatial dimension."); - - const std::size_t numNodes = grid.numNodes(); - const std::size_t numDofs = OperatorTraits::NumNodeDofs * numNodes; - - MatrixX6d U = MatrixX6d::Zero(static_cast(numDofs), 6); - - for (std::size_t i = 0; i < grid.numNodes(); ++i) { - const auto node = grid.node(i); - - const double x = node(0); - const double y = node(1); - const double z = node(2); - - const int u = static_cast(3 * i); - const int v = static_cast(3 * i + 1); - const int w = static_cast(3 * i + 2); - - U(u, 0) = x; - U(v, 1) = y; - U(w, 2) = z; - U(u, 3) = 0.5 * y; - U(v, 3) = 0.5 * x; - U(u, 4) = 0.5 * z; - U(w, 4) = 0.5 * x; - U(w, 5) = 0.5 * y; - U(v, 5) = 0.5 * z; - } - - return U; - } - }; - - } // namespace mechanical - - } // namespace solver - -} // namespace monad diff --git a/include/monad/solver/mechanical/linear_elastic_policy.hpp b/include/monad/solver/mechanical/linear_elastic_policy.hpp new file mode 100644 index 0000000..ee66736 --- /dev/null +++ b/include/monad/solver/mechanical/linear_elastic_policy.hpp @@ -0,0 +1,199 @@ +#pragma once + +#include +#include +#include +#include "monad/fem/kernel/mechanical/linear_elastic_kernel.hpp" +#include "monad/fem/operator/mechanical/linear_elastic_dof_traits.hpp" +#include "monad/material/mechanical/linear_elastic_material.hpp" +#include "monad/solver/solver_options.hpp" + +namespace monad { + + namespace solver { + + namespace mechanical { + + /** + * @brief Physics policy for periodic linear elastic homogenization. + * + * @tparam Element Element type (e.g. Quad4). + */ + template + struct LinearElasticPolicy { + using Kernel = fem::mechanical::LinearElasticKernel; + using DofTraits = fem::mechanical::LinearElasticDofTraits; + using Material = material::LinearElasticMaterial; + using MaterialTensor = typename Material::MaterialTensor; + + /// @brief Spatial dimension (2 or 3). + static constexpr int Dim = Element::Dim; + + /** + * @brief Number of macroscopic strain load cases. + * + * The load cases are ordered in Voigt notation: + * + * - 2D: ε̄₁₁, ε̄₂₂, ε̄₁₂. + * + * - 3D: ε̄₁₁, ε̄₂₂, ε̄₃₃, ε̄₁₂, ε̄₁₃, ε̄₂₃. + */ + static constexpr int NumLoadCases = Material::VoigtSize; + + /// @brief Dof-major matrix type storing one global field per load case. + using DofFieldMatrix = Eigen::Matrix; + + /// @brief Nodal field type. + using NodalFieldMatrix = Eigen::Matrix; + + /// @brief List of nodal fields, one per load case. + using NodalFieldList = std::array; + + /** + * @brief Linear elastic homogenization results. + * + * The homogenized stiffness tensor is always returned. + * Nodal displacements are stored only when requested + * through `FieldSave`. + */ + struct Results { + /// @brief Homogenized stiffness tensor. + MaterialTensor CBar; + + /// @brief Total nodal displacements. + NodalFieldList u; + + /// @brief Macroscopic nodal displacements. + NodalFieldList uMacro; + + /// @brief Microscopic nodal displacements. + NodalFieldList uMicro; + }; + + /** + * @brief Macroscopic nodal displacements. + * + * For each prescribed macroscopic strain ε̄, + * the macroscopic displacements are: + * + * ```text + * ū=ε̄x + * ``` + * + * @tparam Grid Grid type (e.g. Quad4Grid). + * + * @param[in] grid Grid. + * + * @returns Macroscopic nodal displacements. + */ + template + static DofFieldMatrix makeMacroscopicFields(const Grid &grid) noexcept { + const std::size_t numNodes = grid.numNodes(); + const std::size_t numDofs = DofTraits::NumNodeDofs * numNodes; + + DofFieldMatrix UBar = DofFieldMatrix::Zero(static_cast(numDofs), NumLoadCases); + + for (std::size_t i = 0; i < numNodes; ++i) { + const auto node = grid.node(i); + + if constexpr (Dim == 2) { + const double x = node(0); + const double y = node(1); + + const int u = static_cast(2 * i); + const int v = static_cast(2 * i + 1); + + // ū⁽¹¹⁾=ε̄⁽¹¹⁾x + UBar(u, 0) = x; + // ū⁽²²⁾=ε̄⁽²²⁾x + UBar(v, 1) = y; + // ū⁽¹²⁾=ε̄⁽¹²⁾x + UBar(u, 2) = 0.5 * y; + UBar(v, 2) = 0.5 * x; + } + else { + const double x = node(0); + const double y = node(1); + const double z = node(2); + + const int u = static_cast(3 * i); + const int v = static_cast(3 * i + 1); + const int w = static_cast(3 * i + 2); + + // ū⁽¹¹⁾=ε̄⁽¹¹⁾x + UBar(u, 0) = x; + // ū⁽²²⁾=ε̄⁽²²⁾x + UBar(v, 1) = y; + // ū⁽³³⁾=ε̄⁽³³⁾x + UBar(w, 2) = z; + // ū⁽¹²⁾=ε̄⁽¹²⁾x + UBar(u, 3) = 0.5 * y; + UBar(v, 3) = 0.5 * x; + // ū⁽¹³⁾=ε̄⁽¹³⁾x + UBar(u, 4) = 0.5 * z; + UBar(w, 4) = 0.5 * x; + // ū⁽²³⁾=ε̄⁽²³⁾x + UBar(v, 5) = 0.5 * z; + UBar(w, 5) = 0.5 * y; + } + } + + return UBar; + } + + /** + * @brief Packages solver outputs into linear elastic results. + * + * @param[in] CBar Homogenized stiffness tensor. + * @param[in] U Total nodal displacements. + * @param[in] UMacro Macroscopic nodal displacements. + * @param[in] UMicro Microscopic nodal displacements. + * @param[in] fields Controls which nodal fields are stored. + * + * @returns Homogenization results. + */ + static Results makeResults(const MaterialTensor &CBar, const DofFieldMatrix &U, const DofFieldMatrix &UMacro, const DofFieldMatrix &UMicro, FieldSave fields) noexcept { + Results results; + results.CBar = CBar; + + if (wants(fields, FieldSave::Total)) { + results.u = makeStoredFields_(U); + } + + if (wants(fields, FieldSave::Macro)) { + results.uMacro = makeStoredFields_(UMacro); + } + + if (wants(fields, FieldSave::Micro)) { + results.uMicro = makeStoredFields_(UMicro); + } + + return results; + } + + private: + /** + * @brief Converts a nodal displacement block matrix into a list of nodal displacements. + * + * @param[in] U Nodal displacement block matrix. + * + * @return List of nodal displacements. + */ + static NodalFieldList makeStoredFields_(const DofFieldMatrix &U) { + const int numNodes = static_cast(U.rows()) / Dim; + NodalFieldList out; + + for (std::size_t i = 0; i < NumLoadCases; ++i) { + const NodalFieldMatrix u = U.col(static_cast(i)).template reshaped(numNodes, Dim); + out[i] = u; + } + + return out; + } + }; + + } // namespace mechanical + + } // namespace solver + +} // namespace monad diff --git a/include/monad/solver/mechanical/linear_elastic_solver.hpp b/include/monad/solver/mechanical/linear_elastic_solver.hpp deleted file mode 100644 index 4a0fef2..0000000 --- a/include/monad/solver/mechanical/linear_elastic_solver.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -#include "monad/grid/grid_base.hpp" -#include "monad/solver/mechanical/linear_elastic_physics.hpp" -#include "monad/solver/periodic_cell_solver.hpp" -#include "monad/material/mechanical/linear_elastic_material.hpp" - -namespace monad { - - /** - * @brief Periodic unit cell solver for linear elastic problems. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - */ - template - class LinearElasticSolver : public solver::PeriodicCellSolver> { - public: - using Base = solver::PeriodicCellSolver>; - using Base::Base; - }; - - // Template arugment deduction - template - LinearElasticSolver(const GridBase &, const LinearElasticMaterial &) -> LinearElasticSolver; - -} // namespace monad diff --git a/include/monad/solver/multiphysics/linear_piezoelectric_physics.hpp b/include/monad/solver/multiphysics/linear_piezoelectric_physics.hpp deleted file mode 100644 index dc2466d..0000000 --- a/include/monad/solver/multiphysics/linear_piezoelectric_physics.hpp +++ /dev/null @@ -1,217 +0,0 @@ -#pragma once - -#include -#include -#include "monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp" -#include "monad/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_traits.hpp" -#include "monad/solver/mechanical/linear_elastic_physics.hpp" -#include "monad/solver/scalar/linear_scalar_diffusive_physics.hpp" -#include "monad/solver/solver_options.hpp" - -namespace monad { - - namespace solver { - - namespace multiphysics { - - /** - * @brief Physics policy for linear piezoelectric homogenization. - * - * @tparam Element Element class (e.g. Quad4). - */ - template - struct LinearPiezoelectricPhysics { - using Kernel = fem::multiphysics::LinearPiezoelectricKernel; - using Material = typename Kernel::Material; - - /// @brief Spatial dimension (2 or 3). - static constexpr int Dim = Element::Dim; - - /** - * @brief Number of macroscopic fields: - * - * - D=2: ε̄₁₁, ε̄₂₂, ε̄₁₂, Ē₁₁, Ē₂₂. - * - * - D=3: ε̄₁₁, ε̄₂₂, ε̄₃₃, ε̄₁₂, ε̄₁₃, ε̄₂₃, Ē₁₁, Ē₂₂, Ē₃₃. - */ - static constexpr int NumMacroFields = Material::VoigtSize + Dim; - - using OperatorTraits = fem::multiphysics::LinearPiezoelectricMatrixFreeOperatorTraits; - - using MechanicalPhysics = solver::mechanical::LinearElasticPhysics; - using ElectricalPhysics = solver::scalar::LinearScalarDiffusivePhysics; - - /// @brief Global electromechanical field matrix type. - using FieldMatrix = Eigen::Matrix; - - /// @brief Homogenized coupled constitutive operator type. - using MaterialTensor = typename Material::MaterialTensor; - - /** - * @brief Results from linear piezoelectric homogenization. - * - * @note Displacement fields are stored in arrays - * ordered by the prescribed macroscopic strain - * loading directions: - * - * - D=2: ε̄₁₁, ε̄₂₂, ε̄₁₂, Ē₁₁, Ē₂₂. - * - * - D=3: ε̄₁₁, ε̄₂₂, ε̄₃₃, ε̄₁₂, ε̄₁₃, ε̄₂₃, Ē₁₁, Ē₂₂, Ē₃₃. - * - * Each array entry corresponds to one independent macroscopic loading case. - */ - struct Results { - using MechanicalNodalField = Eigen::Matrix; - using ElectricalNodalField = Eigen::VectorXd; - - using LinearElasticMaterialTensor = typename MechanicalPhysics::Material::MaterialTensor; - using LinearDielectricMaterialTensor = typename ElectricalPhysics::Material::MaterialTensor; - using CouplingTensor = typename Material::CouplingTensor; - - /// @brief Homogenized stiffness tensor c̄. - LinearElasticMaterialTensor cBar; - - /// @brief Homogenized permittivity tensor ε̄. - LinearDielectricMaterialTensor epsilonBar; - - /// @brief Homogenized piezoelectric coupling tensor d̄. - CouplingTensor dBar; - - /// @brief Total nodal displacement fields u=ū+ũ. - std::array u; - - /// @brief Macroscopic nodal displacement fields ū. - std::array uMacro; - - /// @brief Microscopic nodal displacement fields ũ. - std::array uMicro; - - /// @brief Total nodal electric potential fields φ=φ̄+φ̃. - std::array phi; - - /// @brief Macroscopic nodal electric potential fields φ̄. - std::array phiMacro; - - /// @brief Microscopic nodal electric potential fields φ̃. - std::array phiMicro; - }; - - /** - * @brief Macroscopic electromechanical fields. - * - * The macroscopic electromechanical fields X̄ are: - * - * ```text - * ⎡Ū 0⎤ - * ⎣0 φ̄⎦ - * ``` - * - * - Ū are the displacements resulting from the macroscopic strains ε̄. - * - φ̄ are the electric potentials resulting from macroscopic electric fields Ē. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * - * @param[in] grid Periodic unit cell grid. - * - * @returns Macroscopic electromechanical fields. - */ - template - static FieldMatrix macroscopicField(const GridBase &grid) { - const std::size_t numNodes = grid.numNodes(); - const std::size_t numDofs = OperatorTraits::NumNodeDofs * numNodes; - - FieldMatrix X = FieldMatrix::Zero(static_cast(numDofs), NumMacroFields); - - // Mechanical block - const auto U = MechanicalPhysics::macroscopicField(grid); - X.topLeftCorner(U.rows(), MechanicalPhysics::NumMacroFields) = U; - - // Electrical block - const auto Phi = ElectricalPhysics::macroscopicField(grid); - X.bottomRightCorner(Phi.rows(), ElectricalPhysics::NumMacroFields) = Phi; - - return X; - } - - /** - * @brief Constructs linear piezoelectric homogenization results. - * - * @param[in] opBar Homogenized coupled constitutive operator. - * @param[in] X Total nodal fields. - * @param[in] XMacro Macroscopic nodal fields. - * @param[in] XMicro Microscopic nodal fields. - * @param[in] fields Controls which nodal fields are stored in the solver results. - * - * @returns Linear piezoelectric homogenization results. - */ - static Results makeResults(const MaterialTensor &opBar, const FieldMatrix &X, const FieldMatrix &XMacro, const FieldMatrix &XMicro, FieldSave fields) noexcept { - using MechanicalNodalField = typename Results::MechanicalNodalField; - using ElectricalNodalField = typename Results::ElectricalNodalField; - - Results results; - - results.cBar = opBar.topLeftCorner(Material::VoigtSize, Material::VoigtSize); - results.epsilonBar = -opBar.bottomRightCorner(Dim, Dim); - results.dBar = -opBar.bottomLeftCorner(Dim, Material::VoigtSize); - - const auto numNodes = X.rows() / OperatorTraits::NumNodeDofs; - const auto numMechanicalDofs = numNodes * OperatorTraits::MechanicalTraits::NumNodeDofs; - const auto numElectricalDofs = numNodes * OperatorTraits::ElectricalTraits::NumNodeDofs; - - if (wants(fields, FieldSave::Total)) { - const auto U = X.topRows(numMechanicalDofs); - const auto Phi = X.bottomRows(numElectricalDofs); - - std::array tempU; - std::array tempPhi; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - tempU[i] = U.col(static_cast(i)).template reshaped(numNodes, Dim); - tempPhi[i] = Phi.col(static_cast(i)); - } - - results.u = tempU; - results.phi = tempPhi; - } - - if (wants(fields, FieldSave::Macro)) { - const auto UMacro = XMacro.topRows(numMechanicalDofs); - const auto PhiMacro = XMacro.bottomRows(numElectricalDofs); - - std::array tempU; - std::array tempPhi; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - tempU[i] = UMacro.col(static_cast(i)).template reshaped(numNodes, Dim); - tempPhi[i] = PhiMacro.col(static_cast(i)); - } - - results.uMacro = tempU; - results.phiMacro = tempPhi; - } - - if (wants(fields, FieldSave::Micro)) { - const auto UMicro = XMicro.topRows(numMechanicalDofs); - const auto PhiMicro = XMicro.bottomRows(numElectricalDofs); - - std::array tempU; - std::array tempPhi; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - tempU[i] = UMicro.col(static_cast(i)).template reshaped(numNodes, Dim); - tempPhi[i] = PhiMicro.col(static_cast(i)); - } - - results.uMicro = tempU; - results.phiMicro = tempPhi; - } - - return results; - } - }; - - } // namespace multiphysics - - } // namespace solver - -} // namespace monad diff --git a/include/monad/solver/multiphysics/linear_piezoelectric_policy.hpp b/include/monad/solver/multiphysics/linear_piezoelectric_policy.hpp new file mode 100644 index 0000000..539367e --- /dev/null +++ b/include/monad/solver/multiphysics/linear_piezoelectric_policy.hpp @@ -0,0 +1,227 @@ +#pragma once + +#include +#include +#include +#include +#include "monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp" +#include "monad/fem/operator/multiphysics/linear_piezoelectric_dof_traits.hpp" +#include "monad/material/mechanical/linear_elastic_material.hpp" +#include "monad/material/transport/linear_transport_material.hpp" +#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" +#include "monad/solver/mechanical/linear_elastic_policy.hpp" +#include "monad/solver/scalar/linear_scalar_diffusive_policy.hpp" +#include "monad/solver/solver_options.hpp" + +namespace monad { + + namespace solver { + + namespace multiphysics { + + /** + * @brief Physics policy for periodic linear piezoelectric homogenization. + * + * @tparam Element Element type (e.g. Quad4). + */ + template + struct LinearPiezoelectricPolicy { + using Kernel = fem::multiphysics::LinearPiezoelectricKernel; + using DofTraits = fem::multiphysics::LinearPiezoelectricDofTraits; + using MechanicalMaterial = material::LinearElasticMaterial; + using ElectricalMaterial = material::LinearTransportMaterial; + using Material = material::LinearPiezoelectricMaterial; + using MaterialTensor = typename Material::MaterialTensor; + using StiffnessTensor = typename MechanicalMaterial::MaterialTensor; + using PermittivityTensor = typename ElectricalMaterial::MaterialTensor; + using CouplingTensor = typename Material::CouplingTensor; + using MechanicalPolicy = solver::mechanical::LinearElasticPolicy; + using ElectricalPolicy = solver::scalar::LinearScalarDiffusivePolicy; + + /// @brief Spatial dimension (2 or 3). + static constexpr int Dim = Element::Dim; + + /** + * @brief Number of macroscopic electromechanical load cases. + * + * The load cases are ordered as mechanical strain cases in + * Voigt order followed by electrical field cases in Cartesian + * component order: + * + * - 2D: S̄₁₁, S̄₂₂, S̄₁₂, Ē₁₁, Ē₂₂. + * + * - 3D: S̄₁₁, S̄₂₂, S̄₃₃, S̄₁₂, S̄₁₃, S̄₂₃, Ē₁₁, Ē₂₂, Ē₃₃. + */ + static constexpr int NumLoadCases = Material::VoigtSize + Dim; + + /// @brief Dof-major matrix type storing one global field per load case. + using DofFieldMatrix = Eigen::Matrix; + + /// @brief Nodal mechanical field type. + using NodalFieldMatrix = Eigen::Matrix; + + /// @brief Nodal electrical field type. + using NodalFieldVector = Eigen::Vector; + + /// @brief List of nodal mechanical fields, one per load case. + using MechanicalNodalFieldList = std::array; + + /// @brief List of nodal electrical fields, one per load case. + using ElectricalNodalFieldList = std::array; + + /** + * @brief Linear piezoelectric homogenization results. + * + * The homogenized material tensors are always returned. + * Nodal fields are stored only when requested + * through `FieldSave`. + */ + struct Results { + /// @brief Homogenized coupled constitutive operator. + MaterialTensor opBar; + + /// @brief Homogenized stiffness tensor. + StiffnessTensor cBar; + + /// @brief Homogenized permittivity tensor. + PermittivityTensor epsilonBar; + + /// @brief Homogenized piezoelectric coupling tensor. + CouplingTensor dBar; + + /// @brief Total nodal displacements. + MechanicalNodalFieldList u; + + /// @brief Macroscopic nodal displacements. + MechanicalNodalFieldList uMacro; + + /// @brief Microscopic nodal displacements. + MechanicalNodalFieldList uMicro; + + /// @brief Total nodal electric potentials. + ElectricalNodalFieldList phi; + + /// @brief Macroscopic nodal electric potentials. + ElectricalNodalFieldList phiMacro; + + /// @brief Microscopic nodal electric potentials. + ElectricalNodalFieldList phiMicro; + }; + + /** + * @brief Macroscopic electromechanical fields. + * + * The macroscopic field is assembled blockwise from: + * + * - Macroscopic displacements for unit macroscopic strains + * + * - Macroscopic electric potentials for unit macroscopic electric fields + * + * ```text + * ⎡Ū 0⎤ + * ⎣0 Φ̄⎦ + * ``` + * + * @tparam Grid Grid type (e.g. Quad4Grid). + * + * @param[in] grid Grid. + * + * @returns Macroscopic electromechanical fields. + */ + template + static DofFieldMatrix makeMacroscopicFields(const Grid &grid) noexcept { + const std::size_t numNodes = grid.numNodes(); + const std::size_t numDofs = DofTraits::NumNodeDofs * numNodes; + + DofFieldMatrix XBar = DofFieldMatrix::Zero(static_cast(numDofs), NumLoadCases); + + // Mechanical block + const auto UBar = MechanicalPolicy::makeMacroscopicFields(grid); + XBar.topLeftCorner(UBar.rows(), MechanicalPolicy::NumLoadCases) = UBar; + + // Electrical block + const auto PhiBar = ElectricalPolicy::makeMacroscopicFields(grid); + XBar.bottomRightCorner(PhiBar.rows(), ElectricalPolicy::NumLoadCases) = PhiBar; + + return XBar; + } + + /** + * @brief Packages solver outputs into linear elastic results. + * + * @param[in] opBar Homogenized coupled constitutive operator. + * @param[in] X Total nodal fields. + * @param[in] XMacro Macroscopic nodal fields. + * @param[in] XMicro Microscopic nodal fields. + * @param[in] fields Controls which nodal fields are stored. + * + * @returns Homogenization results. + */ + static Results makeResults(const MaterialTensor &opBar, const DofFieldMatrix &X, const DofFieldMatrix &XMacro, const DofFieldMatrix &XMicro, FieldSave fields) noexcept { + Results results; + results.opBar = opBar; + results.cBar = opBar.topLeftCorner(Material::VoigtSize, Material::VoigtSize); + results.epsilonBar = -opBar.bottomRightCorner(Dim, Dim); + results.dBar = -opBar.bottomLeftCorner(Dim, Material::VoigtSize); + + if (wants(fields, FieldSave::Total)) { + auto [u, phi] = makeStoredFields_(X); + + results.u = u; + results.phi = phi; + } + + if (wants(fields, FieldSave::Macro)) { + auto [uMacro, phiMacro] = makeStoredFields_(XMacro); + + results.uMacro = uMacro; + results.phiMacro = phiMacro; + } + + if (wants(fields, FieldSave::Micro)) { + auto [uMicro, phiMicro] = makeStoredFields_(XMicro); + + results.uMicro = uMicro; + results.phiMicro = phiMicro; + } + + return results; + } + + private: + /** + * @brief Splits a nodal coupled field block matrix into lists of nodal displacements and + * and electric potentials. + * + * @param[in] X Nodal coupled field block matrix. + * + * @return Pair of lists for nodal displacements and nodal electric potentials. + */ + static std::pair makeStoredFields_(const DofFieldMatrix &X) { + const int numNodes = static_cast(X.rows()) / (Dim + 1); + const int numMechanicalDofs = numNodes * Dim; + const int numElectricalDofs = numNodes; + + const auto U = X.topRows(numMechanicalDofs); + const auto Phi = X.bottomRows(numElectricalDofs); + + MechanicalNodalFieldList outMechanical; + ElectricalNodalFieldList outElectrical; + + for (std::size_t i = 0; i < NumLoadCases; ++i) { + const NodalFieldMatrix u = U.col(static_cast(i)).template reshaped(numNodes, Dim); + const NodalFieldVector phi = Phi.col(static_cast(i)); + + outMechanical[i] = u; + outElectrical[i] = phi; + } + + return {outMechanical, outElectrical}; + } + }; + + } // namespace multiphysics + + } // namespace solver + +} // namespace monad diff --git a/include/monad/solver/multiphysics/linear_piezoelectric_solver.hpp b/include/monad/solver/multiphysics/linear_piezoelectric_solver.hpp deleted file mode 100644 index 9127d87..0000000 --- a/include/monad/solver/multiphysics/linear_piezoelectric_solver.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include "monad/grid/grid_base.hpp" -#include "monad/solver/multiphysics/linear_piezoelectric_physics.hpp" -#include "monad/solver/periodic_cell_solver.hpp" -#include "monad/material/mechanical/linear_elastic_material.hpp" -#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" -#include "monad/material/transport/linear_transport_material.hpp" - -namespace monad { - - template - class LinearPiezoelectricSolver : public solver::PeriodicCellSolver> { - public: - using Base = solver::PeriodicCellSolver>; - using Base::Base; - }; - - // Template arugment deduction - template - LinearPiezoelectricSolver(const GridBase &, const LinearPiezoelectricMaterial &) -> LinearPiezoelectricSolver; - -} // namespace monad diff --git a/include/monad/solver/periodic_cell_solver.hpp b/include/monad/solver/periodic_cell_solver.hpp index abb732d..b758c30 100644 --- a/include/monad/solver/periodic_cell_solver.hpp +++ b/include/monad/solver/periodic_cell_solver.hpp @@ -5,34 +5,34 @@ #include #include #include -#include "monad/detail/constants.hpp" +#include "monad/field/density_field.hpp" +#include "monad/fem/operator/matrix_free_operator.hpp" #include "monad/detail/eigen_utils.hpp" -#include "monad/grid/grid_base.hpp" #include "monad/solver/solver_options.hpp" -#include "monad/fem/operator/matrix_free_operator.hpp" -#include "monad/fem/operator/jacobi_preconditioner.hpp" +#include "monad/solver/jacobi_preconditioner.hpp" namespace monad { namespace solver { /** - * @brief Periodic unit cell solver for linear physics problems. - * - * This class provides a dimension- and physics-agnostic implementation of a - * periodic unit cell solver using a matrix-free finite element operator. + * @brief Stateless periodic-cell solver for structured linear homogenization problems. * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * @tparam Physics Physics class (e.g. LinearElasticPhysics2d). + * @tparam Grid Grid type (e.g. Quad4Grid). + * @tparam Policy Physics policy type (e.g. LinearElasticPolicy). */ - template + template class PeriodicCellSolver { public: - using Material = typename Physics::Material; - using Kernel = typename Physics::Kernel; - using OperatorTraits = typename Physics::OperatorTraits; - using Operator = fem::MatrixFreeOperator; + using Material = typename Policy::Material; + using Kernel = typename Policy::Kernel; + using DofTraits = typename Policy::DofTraits; + using DensityField = field::DensityField; + using Operator = fem::MatrixFreeOperator; + using DofMap = fem::DofMap; + using Preconditioner = JacobiPreconditioner; + + using MaterialTensor = typename Material::MaterialTensor; /// @brief Element stiffness matrix type. using ElementStiffnessMatrix = typename Kernel::StiffnessMatrix; @@ -41,126 +41,90 @@ namespace monad { using ElementFieldMatrix = typename Kernel::FieldMatrix; /// @brief Global field matrix type. - using FieldMatrix = typename Physics::FieldMatrix; - - /// @brief Homogenized material tensor type. - using MaterialTensor = typename Material::MaterialTensor; + using FieldMatrix = typename Policy::DofFieldMatrix; /// @brief Homogenized results type. - using Results = typename Physics::Results; - - /** - * @brief Constructs a periodic unit cell solver. - * - * @param[in] grid Periodic unit cell grid. - * @param[in] material Base material model. - */ - PeriodicCellSolver(const GridBase &grid, const Material &material) - : grid_(grid), material_(material) { - const auto nodes = grid_.elementNodes(0); - - elementKReference_ = Kernel::lhs(material_, nodes); - elementFReference_ = Kernel::rhs(material_, nodes); - } - - /// @brief Periodic unit cell grid_. - const GridBase &grid() const noexcept { - return grid_; - } - - /// @brief Base material model. - const Material &material() const noexcept { - return material_; - } + using Results = typename Policy::Results; /** - * @brief Solves the periodic unit cell problem and computes the homogenized material tensor. - * - * The solver computes the total field X decomposed as: - * - * X=X̄+X̃ - * - * - X̄ is the macroscopic field prescribed via uniform macroscopic loading. - * - * - X̃ is the microscopic field enforcing equilibrium under periodic boundary conditions. + * @brief Solves the periodic cell problem. * * The homogenized material tensor M̄ is then computed via the physics-specific * homogenization functional: * * M̄=1/V∑ₑXₑᵀKₑXₑ * + * @param[in] grid Grid. + * @param[in] densityField Per-element density field defined on `grid`. + * @param[in] material Base material. * @param[in] options Solver options. * * @returns Homogenized material tensor. * - * @throws std::runtime_error if the linear solver fails to converge. + * @throws std::invalid_argument if `grid` and `densityField` do not + * have the same resolution. + * @throws std::runtime_error if the iterative linear solver fails. */ - Results solve(const SolverOptions &options = SolverOptions::defaults()) const { - const FieldMatrix XMacro = Physics::macroscopicField(grid_); - const FieldMatrix XMicro = microscopicField_(options); - const FieldMatrix X = XMacro + XMicro; - - const MaterialTensor MBar = homogenize_(X); - - return Physics::makeResults(MBar, X, XMacro, XMicro, options.fields); - } + Results solve(const Grid &grid, const DensityField &densityField, const Material &material, const SolverOptions &options = {}) const { + if (grid.resolution() != densityField.resolution()) { + throw std::invalid_argument("Grid resolution must match density field resolution."); + } - /// @brief Equality comparison. - bool operator==(const PeriodicCellSolver &other) const noexcept { - return material_ == other.material_ && grid_ == other.grid_; - } + const auto referenceNodes = grid.elementNodes(0); + const ElementStiffnessMatrix elementKReference = Kernel::lhs(material, referenceNodes); + const ElementFieldMatrix elementFReference = Kernel::rhs(material, referenceNodes); - /// @brief Inequality comparison. - bool operator!=(const PeriodicCellSolver &other) const noexcept { - return !(*this == other); - } + const Operator K(grid, densityField, elementKReference); + const DofMap dofMap = K.dofMap(); - private: - /// @brief Periodic unit cell grid_. - GridBase grid_; + const FieldMatrix reducedF = buildReducedRhs_(grid, densityField, dofMap, elementFReference); + const FieldMatrix reducedXMicro = solveReducedSystem_(K, reducedF, options); - /// @brief Base material model. - Material material_; + const FieldMatrix XMicro = expandReducedLhs_(grid, dofMap, reducedXMicro); + const FieldMatrix XMacro = Policy::makeMacroscopicFields(grid); + const FieldMatrix X = XMacro + XMicro; - /// @brief Reference element stiffness matrix for unit density. - ElementStiffnessMatrix elementKReference_; + const MaterialTensor MBar = homogenize_(grid, densityField, elementKReference, X); - /// @brief Reference element source matrix for unit density. - ElementFieldMatrix elementFReference_; + return Policy::makeResults(MBar, X, XMacro, XMicro, options.fields); + } + private: /** - * @brief Builds the reduced right-hand side source matrix. + * @brief Builds the reduced source matrix for the microscopic solve. * - * Constructs the source matrix F in the reduced linear system + * Constructs the right-hand side matrix F in * + * ```text * KX̃=F + * ``` * - * where K acts only on a reduced set of unconstrained periodic dofs. + * on the reduced periodic dof space. * - * @param[in] K Matrix-free stiffness operator. + * @param[in] grid Grid. + * @param[in] densityField Per-element density field defined on `grid`. + * @param[in] dofMap Reduced periodic dof map. + * @param[in] elementFReference Reference element source matrix for unit density. * - * @returns Reduced right-hand side source matrix. + * @returns Reduced periodic source matrix. */ - FieldMatrix buildReducedRhs_(const Operator &K) const noexcept { - const std::size_t numPeriodicNodes = grid_.numPeriodicNodes(); - const std::size_t numPeriodicDofs = OperatorTraits::NumNodeDofs * numPeriodicNodes; - const std::size_t numReducedDofs = numPeriodicDofs - OperatorTraits::NumFixedDofs; - - FieldMatrix reducedF = FieldMatrix::Zero(static_cast(numReducedDofs), static_cast(Physics::NumMacroFields)); + FieldMatrix buildReducedRhs_(const Grid &grid, const DensityField &densityField, const DofMap &dofMap, const ElementFieldMatrix &elementFReference) const noexcept { + const int numReducedDofs = static_cast(dofMap.numReducedDofs()); + const int numLoadCases = static_cast(Policy::NumLoadCases); - const auto &elementDofs = K.elementDofs(); + FieldMatrix reducedF = FieldMatrix::Zero(numReducedDofs, numLoadCases); - for (std::size_t i = 0; i < grid_.numElements(); ++i) { - const double density = grid_.getDensity(i); - const ElementFieldMatrix elementF = density * elementFReference_; + for (std::size_t i = 0; i < grid.numElements(); ++i) { + const auto &reducedDofs = dofMap.reducedDofs(i); + const double density = densityField.getDensity(i); + const ElementFieldMatrix elementF = density * elementFReference; - const auto &dofs = elementDofs[i]; - - for (std::size_t j = 0; j < dofs.size(); ++j) { - const int dof = dofs[j]; + for (std::size_t j = 0; j < reducedDofs.size(); ++j) { + const int reducedDof = reducedDofs[j]; + const int localReducedDof = static_cast(j); - if (dof >= 0) { - reducedF(dof, Eigen::indexing::all) += elementF.row(static_cast(j)); + if (reducedDof >= 0) { + reducedF.row(reducedDof) += elementF.row(localReducedDof); } } } @@ -169,133 +133,146 @@ namespace monad { } /** - * @brief Builds the expanded left-hand side microscopic field. + * @brief Solves the reduced microscopic system. * - * Expands the microscopic field matrix X̃ in the reduced linear system + * Solves * + * ```text * KX̃=F + * ``` * - * from a reduced set of unconstrained periodic dofs to global dofs. + * on the reduced periodic dof space. * - * @param[in] reducedX Reduced microscopic field. + * @param[in] K Matrix-free operator for the reduced periodic stiffness matrix. + * @param[in] reducedF Reduced periodic source matrix. + * @param[in] options Solver options. + * + * @returns Reduced microscopic field matrix. * - * @returns Expanded left-hand side microscopic field. + * @throws std::runtime_error if the iterative solver fails. */ - FieldMatrix buildExpandedLhs_(const FieldMatrix &reducedX) const noexcept { - // Expand reduced to periodic - const std::size_t numPeriodicNodes = grid_.numPeriodicNodes(); - const std::size_t numPeriodicDofs = OperatorTraits::NumNodeDofs * numPeriodicNodes; - const std::size_t numReducedDofs = numPeriodicDofs - OperatorTraits::NumFixedDofs; - - FieldMatrix periodicX = FieldMatrix::Zero(static_cast(numPeriodicDofs), static_cast(Physics::NumMacroFields)); - - for (std::size_t i = 0; i < numReducedDofs; ++i) { - const std::size_t iExpanded = OperatorTraits::expandedDof(i, numPeriodicNodes); - periodicX.row(static_cast(iExpanded)) = reducedX.row(static_cast(i)); - } + FieldMatrix solveReducedSystem_(const Operator &K, const FieldMatrix &reducedF, const SolverOptions &options) const { + Eigen::ConjugateGradient cg; - // Expand periodic to global - const std::size_t numNodes = grid_.numNodes(); - const std::size_t numDofs = OperatorTraits::NumNodeDofs * numNodes; - - FieldMatrix X = FieldMatrix::Zero(static_cast(numDofs), static_cast(Physics::NumMacroFields)); - - for (std::size_t i = 0; i < grid_.numElements(); ++i) { - const auto element = grid_.element(i); - const auto periodicElement = grid_.periodicElement(i); + cg.setMaxIterations(options.maxIterations); + cg.setTolerance(options.tolerance); + cg.compute(K); - const auto dofs = OperatorTraits::dofs(element, numNodes); - const auto periodicDofs = OperatorTraits::dofs(periodicElement, numPeriodicNodes); + FieldMatrix reducedXMicro = cg.solve(reducedF); - for (std::size_t j = 0; j < dofs.size(); ++j) { - const std::size_t dof = dofs[j]; - const std::size_t periodicDof = periodicDofs[j]; + if (cg.info() != Eigen::Success) { + std::string message = "Iterative solver failed"; - X.row(static_cast(dof)) = periodicX.row(static_cast(periodicDof)); + if (cg.info() == Eigen::NoConvergence) { + message += ": No convergence before the iteration limit."; } + else if (cg.info() == Eigen::NumericalIssue) { + message += ": Numerical issue encountered during the solve."; + } + + throw std::runtime_error(message); } - return X; + return reducedXMicro; } /** - * @brief Microscopic correction field. + * @brief Expands the reduced periodic microscopic field matrix to the global dof space. * - * Solves the reduced linear system: + * Expands the left-hand side matrix X̃ in * + * ```text * KX̃=F + * ``` * - * using a matrix-free solver then expands - * the solution to global dofs. - * - * @param[in] options Solver options. - * - * @returns Microscopic correction field. + * to the global dof space. * - * @throws std::runtime_error if the solver fails to converge. + * @param[in] grid Grid. + * @param[in] dofMap Reduced periodic dof map. + * @param[in] reducedX Reduced microscopic field matrix. * - * @note If the global stiffness matric is symmetric, conjugate gradient - * is used, otherwise biconjugate gradient stabilized (BiCSSTAB) is used. + * @returns Global microscopic field matrix. */ - FieldMatrix microscopicField_(const SolverOptions &options) const { - const Operator K(grid_, elementKReference_); - const FieldMatrix reducedF = buildReducedRhs_(K); + FieldMatrix expandReducedLhs_(const Grid &grid, const DofMap &dofMap, const FieldMatrix &reducedX) const noexcept { + // Expand reduced periodic dofs to periodic dofs + const std::size_t numPeriodicNodes = grid.numPeriodicNodes(); + const std::size_t numPeriodicDofs = DofTraits::NumNodeDofs * numPeriodicNodes; - using preconditioner = fem::JacobiPreconditioner; + FieldMatrix periodicX = FieldMatrix::Zero(static_cast(numPeriodicDofs), static_cast(Policy::NumLoadCases)); - Eigen::ConjugateGradient cg; - cg.setMaxIterations(options.maxIterations); - cg.setTolerance(options.tolerance); - cg.compute(K); + for (std::size_t i = 0; i < dofMap.numReducedDofs(); ++i) { + const std::size_t reducedDof = i; + const std::size_t periodicDof = dofMap.reducedToPeriodicDof(i); - FieldMatrix reducedX = cg.solve(reducedF); + periodicX.row(static_cast(periodicDof)) = reducedX.row(static_cast(reducedDof)); + } - if (cg.info() != Eigen::Success) { - std::string error_message = "Solver failed to converge."; - if (cg.info() == Eigen::NoConvergence) { - error_message += " No Convergence - Max iterations reached or tolerance not met."; - } - else if (cg.info() == Eigen::NumericalIssue) { - error_message += " Numerical Issue - Solver encountered stability problems."; - } + // Expand periodic dofs to global dofs + const std::size_t numNodes = grid.numNodes(); + const std::size_t numDofs = DofTraits::NumNodeDofs * numNodes; + + FieldMatrix X = FieldMatrix::Zero(static_cast(numDofs), static_cast(Policy::NumLoadCases)); + + for (std::size_t i = 0; i < grid.numElements(); ++i) { + const auto element = grid.element(i); + const auto periodicElement = grid.periodicElement(i); - throw std::runtime_error(error_message); + const auto globalDofs = DofTraits::elementDofs(element, numNodes); + const auto periodicDofs = DofTraits::elementDofs(periodicElement, numPeriodicNodes); + + for (std::size_t j = 0; j < globalDofs.size(); ++j) { + const std::size_t globalDof = globalDofs[j]; + const std::size_t periodicDof = periodicDofs[j]; + + X.row(static_cast(globalDof)) = periodicX.row(static_cast(periodicDof)); + } } - return buildExpandedLhs_(reducedX); + return X; } /** * @brief Homogenized material tensor. * - * The homogenized material tensor M̄ is obtained via the Hill-Mandel lemma, + * Using the total field matrix X, the homogenized material tensor M̄ + * is computed via the Hill-Mandel lemma: * + * ```text * M̄=1/V∑ₑXₑᵀKₑXₑ + * ``` * - * where the total field X is the sum of the macroscopic and microscopic components, X=X̄+X̃. - * - * @param[in] X Nodal total field. + * @param[in] grid Grid. + * @param[in] densityField Per-element density field defined on `grid`. + * @param[in] elementKReference Reference element stiffness matrix for unit density. + * @param[in] X Global total field matrix. * * @returns Homogenized material tensor. */ - MaterialTensor homogenize_(const FieldMatrix &X) const { + MaterialTensor homogenize_(const Grid &grid, const DensityField &densityField, const ElementStiffnessMatrix &elementKReference, const FieldMatrix &X) const { MaterialTensor MBar = MaterialTensor::Zero(); - const std::size_t numNodes = grid_.numNodes(); + const std::size_t numNodes = grid.numNodes(); + + for (std::size_t i = 0; i < grid.numElements(); ++i) { + const double density = densityField.getDensity(i); + const auto elementK = density * elementKReference; + const auto element = grid.element(i); + const auto dofs = DofTraits::elementDofs(element, numNodes); - for (std::size_t i = 0; i < grid_.numElements(); ++i) { - const double density = grid_.getDensity(i); - const auto elementK = density * elementKReference_; - const auto element = grid_.element(i); - const auto dofs = OperatorTraits::dofs(element, numNodes); - const auto elementX = X(detail::arrayToEigen(dofs), Eigen::indexing::all); + ElementFieldMatrix elementX; + + for (std::size_t j = 0; j < dofs.size(); ++j) { + const std::size_t dof = dofs[j]; + const std::size_t localDof = j; + elementX.row(static_cast(localDof)) = X.row(static_cast(dof)); + } MBar.noalias() += elementX.transpose() * elementK * elementX; } - MBar /= grid_.measure(); + MBar /= grid.measure(); - // Remove numerical artifacts + // Remove numerical asymmetry detail::symmetrize(MBar); return MBar; diff --git a/include/monad/solver/scalar/linear_scalar_diffusive_physics.hpp b/include/monad/solver/scalar/linear_scalar_diffusive_physics.hpp deleted file mode 100644 index 46bf66e..0000000 --- a/include/monad/solver/scalar/linear_scalar_diffusive_physics.hpp +++ /dev/null @@ -1,156 +0,0 @@ -#pragma once - -#include -#include -#include "monad/fem/kernel/scalar/linear_scalar_diffusive_kernel.hpp" -#include "monad/fem/operator/scalar/linear_scalar_diffusive_matrix_free_operator_traits.hpp" -#include "monad/solver/solver_options.hpp" - -namespace monad { - - namespace solver { - - namespace scalar { - - /** - * @brief Physics policy for linear scalar diffusive homogenization. - * - * @tparam Element Element class (e.g. Quad4). - * @tparam C Gradient sign convention (GradientConvention::Negative or Positive). - */ - template - struct LinearScalarDiffusivePhysics { - using Kernel = fem::scalar::LinearScalarDiffusiveKernel; - using Material = typename Kernel::Material; - - /** - * @brief Number of macroscopic fields: - * - * - D=2: ∇φ̄₁₁, ∇φ̄₂₂. - * - * - D=3: ∇φ̄₁₁, ∇φ̄₂₂, ∇φ̄₃₃. - */ - static constexpr int NumMacroFields = Element::Dim; - - using OperatorTraits = fem::scalar::LinearScalarDiffusiveMatrixFreeOperatorTraits; - - /// @brief Global field matrix type. - using FieldMatrix = Eigen::Matrix; - - /// @brief Homogenized material tensor type. - using MaterialTensor = typename Material::MaterialTensor; - - /** - * @brief Linear scalar diffusive homogenization results. - * - * @note Scalar potential fields are stored in arrays - * ordered by the prescribed macroscopic scalar field - * gradient loading directions: - * - * - D=2: ∇φ̄₁₁, ∇φ̄₂₂. - * - * - D=3: ∇φ̄₁₁, ∇φ̄₂₂, ∇φ̄₃₃. - * - * Each array entry corresponds to one independent macroscopic loading case. - */ - struct Results { - using NodalField = Eigen::VectorXd; - - /// @brief Homogenized transport tensor K̄. - MaterialTensor KBar; - - /// @brief Total nodal scalar potential fields φ=φ̄+φ̃. - std::array phi; - - /// @brief Macroscopic nodal scalar potential fields φ̄. - std::array phiMacro; - - /// @brief Microscopic nodal scalar potential fields φ̃. - std::array phiMicro; - }; - - /** - * @brief Macroscopic nodal scalar potentials. - * - * The macroscopic scalar potentials φ̄ are the scalar potentials - * resulting from macroscopic scalar potential gradients ∇φ̄: - * - * φ̄=(∇φ̄)·x - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * - * @param[in] grid Periodic unit cell grid. - * - * @returns Macroscopic nodal scalar potentials. - */ - template - static FieldMatrix macroscopicField(const GridBase &grid) { - const std::size_t numNodes = grid.numNodes(); - const std::size_t numDofs = OperatorTraits::NumNodeDofs * numNodes; - - FieldMatrix Phi = FieldMatrix::Zero(static_cast(numDofs), NumMacroFields); - - for (std::size_t i = 0; i < grid.numNodes(); ++i) { - Phi.row(static_cast(i)) = Kernel::GradSign * grid.node(i); - } - - return Phi; - } - - /** - * @brief Constructs linear scalar diffusive homogenization results. - * - * @param[in] KBar Homogenized transport tensor. - * @param[in] Phi Total nodal scalar potential fields. - * @param[in] PhiMacro Macroscopic nodal scalar potential fields. - * @param[in] PhiMicro Microscopic nodal scalar potential fields. - * @param[in] fields Controls which nodal fields are stored in the solver results. - * - * @returns Linear scalar diffusive homogenization results. - */ - static Results makeResults(const MaterialTensor &KBar, const FieldMatrix &Phi, const FieldMatrix &PhiMacro, const FieldMatrix &PhiMicro, FieldSave fields) noexcept { - using NodalField = typename Results::NodalField; - - Results results; - - results.KBar = KBar; - - if (wants(fields, FieldSave::Total)) { - std::array temp; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - temp[i] = Phi.col(static_cast(i)); - } - - results.phi = temp; - } - - if (wants(fields, FieldSave::Macro)) { - std::array temp; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - temp[i] = PhiMacro.col(static_cast(i)); - } - - results.phiMacro = temp; - } - - if (wants(fields, FieldSave::Micro)) { - std::array temp; - - for (std::size_t i = 0; i < NumMacroFields; ++i) { - temp[i] = PhiMicro.col(static_cast(i)); - } - - results.phiMicro = temp; - } - - return results; - } - }; - - } // namespace scalar - - } // namespace solver - -} // namespace monad diff --git a/include/monad/solver/scalar/linear_scalar_diffusive_policy.hpp b/include/monad/solver/scalar/linear_scalar_diffusive_policy.hpp new file mode 100644 index 0000000..5cdfcb6 --- /dev/null +++ b/include/monad/solver/scalar/linear_scalar_diffusive_policy.hpp @@ -0,0 +1,159 @@ +#pragma once + +#include +#include +#include "monad/fem/kernel/scalar/linear_scalar_diffusive_kernel.hpp" +#include "monad/fem/operator/scalar/linear_scalar_diffusive_dof_traits.hpp" +#include "monad/material/transport/linear_transport_material.hpp" +#include "monad/solver/solver_options.hpp" + +namespace monad { + + namespace solver { + + namespace scalar { + + /** + * @brief Physics policy for periodic linear scalar diffusive homogenization. + * + * @tparam Element Element type (e.g. Quad4). + * @tparam C Gradient sign convention (GradientConvention::Negative or Positive). + */ + template + struct LinearScalarDiffusivePolicy { + using Kernel = fem::scalar::LinearScalarDiffusiveKernel; + using DofTraits = fem::scalar::LinearScalarDiffusiveDofTraits; + using Material = material::LinearTransportMaterial; + using MaterialTensor = typename Material::MaterialTensor; + + /// @brief Spatial dimension (2 or 3). + static constexpr int Dim = Element::Dim; + + /** + * @brief Number of macroscopic scalar potential gradient load cases. + * + * The load cases are ordered in Cartesian component order: + * + * - 2D: ∇φ̄₁₁, ∇φ̄₂₂. + * + * - 3D: ∇φ̄₁₁, ∇φ̄₂₂, ∇φ̄₃₃. + */ + static constexpr int NumLoadCases = Dim; + + /// @brief Dof-major matrix type storing one global field per load case. + using DofFieldMatrix = Eigen::Matrix; + + /// @brief Nodal field type. + using NodalFieldVector = Eigen::Vector; + + /// @brief List of nodal fields, one per load case. + using NodalFieldList = std::array; + + /** + * @brief Linear scalar diffusive homogenization results. + * + * The homogenized transport tensor is always returned. + * Nodal scalar potentials are stored only when requested + * through `FieldSave`. + * + * Each array entry corresponds to one independent macroscopic loading case. + */ + struct Results { + /// @brief Homogenized transport tensor. + MaterialTensor KBar; + + /// @brief Total nodal scalar potential fields. + NodalFieldList phi; + + /// @brief Macroscopic nodal scalar potential fields. + NodalFieldList phiMacro; + + /// @brief Microscopic nodal scalar potential fields. + NodalFieldList phiMicro; + }; + + /** + * @brief Macroscopic nodal scalar potentials. + * + * For each prescribed macroscopic scalar potential gradient ∇φ̄, + * the macroscopic scalar potentials are: + * + * ```text + * φ̄=(∇φ̄)·x + * ``` + * + * @tparam Grid Grid type (e.g. Quad4Grid). + * + * @param[in] grid Grid. + * + * @returns Macroscopic nodal scalar potentials. + */ + template + static DofFieldMatrix makeMacroscopicFields(const Grid &grid) { + const std::size_t numNodes = grid.numNodes(); + const std::size_t numDofs = DofTraits::NumNodeDofs * numNodes; + + DofFieldMatrix PhiBar = DofFieldMatrix::Zero(static_cast(numDofs), NumLoadCases); + + for (std::size_t i = 0; i < numNodes; ++i) { + PhiBar.row(static_cast(i)) = Kernel::GradSign * grid.node(i); + } + + return PhiBar; + } + + /** + * @brief Packages solver outputs into linear elastic results. + * + * @param[in] KBar Homogenized transport tensor. + * @param[in] Phi Total nodal scalar potentials. + * @param[in] PhiMacro Macroscopic nodal scalar potentials. + * @param[in] PhiMicro Microscopic nodal scalar potentials. + * @param[in] fields Controls which nodal fields are stored. + * + * @returns Homogenization results. + */ + static Results makeResults(const MaterialTensor &KBar, const DofFieldMatrix &Phi, const DofFieldMatrix &PhiMacro, const DofFieldMatrix &PhiMicro, FieldSave fields) noexcept { + Results results; + results.KBar = KBar; + + if (wants(fields, FieldSave::Total)) { + results.phi = makeStoredFields_(Phi); + } + + if (wants(fields, FieldSave::Macro)) { + results.phiMacro = makeStoredFields_(PhiMacro); + } + + if (wants(fields, FieldSave::Micro)) { + results.phiMicro = makeStoredFields_(PhiMicro); + } + + return results; + } + + private: + /** + * @brief Converts a nodal scalar potential block matrix into a list of nodal scalar potentials. + * + * @param[in] Phi Nodal scalar potential block matrix. + * + * @return List of nodal scalar potentials. + */ + static NodalFieldList makeStoredFields_(const DofFieldMatrix &Phi) { + NodalFieldList out; + + for (std::size_t i = 0; i < NumLoadCases; ++i) { + const NodalFieldVector phi = Phi.col(static_cast(i)); + out[i] = phi; + } + + return out; + } + }; + + } // namespace scalar + + } // namespace solver + +} // namespace monad diff --git a/include/monad/solver/scalar/linear_scalar_diffusive_solver.hpp b/include/monad/solver/scalar/linear_scalar_diffusive_solver.hpp deleted file mode 100644 index bd4fe87..0000000 --- a/include/monad/solver/scalar/linear_scalar_diffusive_solver.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include "monad/solver/scalar/linear_scalar_diffusive_physics.hpp" -#include "monad/solver/periodic_cell_solver.hpp" - -namespace monad { - - /** - * @brief Periodic unit cell solver for linear scalar diffusive problems. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - * @tparam C Gradient sign convention (GradientConvention::Negative or Positive). - */ - template - class LinearScalarDiffusiveSolver : public solver::PeriodicCellSolver> { - public: - using Base = solver::PeriodicCellSolver>; - using Base::Base; - }; - -} // namespace monad diff --git a/include/monad/solver/scalar/linear_scalar_diffusive_solver_aliases.hpp b/include/monad/solver/scalar/linear_scalar_diffusive_solver_aliases.hpp deleted file mode 100644 index ae39379..0000000 --- a/include/monad/solver/scalar/linear_scalar_diffusive_solver_aliases.hpp +++ /dev/null @@ -1,111 +0,0 @@ -#pragma once - -#include "monad/grid/grid_base.hpp" -#include "monad/solver/scalar/linear_scalar_diffusive_solver.hpp" -#include "monad/material/transport/linear_transport_material.hpp" - -namespace monad { - - /** - * @brief Periodic unit cell solver for linear dielectric problems. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - */ - template - class LinearDielectricSolver : public LinearScalarDiffusiveSolver { - public: - using Base = LinearScalarDiffusiveSolver; - using Base::Base; - }; - - // Template arugment deduction - template - LinearDielectricSolver(const GridBase &, const LinearTransportMaterial &) -> LinearDielectricSolver; - - /** - * @brief Periodic unit cell solver for linear electrical conductive problems. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - */ - template - class LinearElectricalConductiveSolver : public LinearScalarDiffusiveSolver { - public: - using Base = LinearScalarDiffusiveSolver; - using Base::Base; - }; - - // Template arugment deduction - template - LinearElectricalConductiveSolver(const GridBase &, const LinearTransportMaterial &) -> LinearElectricalConductiveSolver; - - /** - * @brief Periodic unit cell solver for linear magnetic problems. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - */ - template - class LinearMagneticSolver : public LinearScalarDiffusiveSolver { - public: - using Base = LinearScalarDiffusiveSolver; - using Base::Base; - }; - - // Template arugment deduction - template - LinearMagneticSolver(const GridBase &, const LinearTransportMaterial &) -> LinearMagneticSolver; - - /** - * @brief Periodic unit cell solver for linear mass diffusive problems. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - */ - template - class LinearMassDiffusiveSolver : public LinearScalarDiffusiveSolver { - public: - using Base = LinearScalarDiffusiveSolver; - using Base::Base; - }; - - // Template arugment deduction - template - LinearMassDiffusiveSolver(const GridBase &, const LinearTransportMaterial &) -> LinearMassDiffusiveSolver; - - /** - * @brief Periodic unit cell solver for linear porous problems. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - */ - template - class LinearPorousSolver : public LinearScalarDiffusiveSolver { - public: - using Base = LinearScalarDiffusiveSolver; - using Base::Base; - }; - - // Template arugment deduction - template - LinearPorousSolver(const GridBase &, const LinearTransportMaterial &) -> LinearPorousSolver; - - /** - * @brief Periodic unit cell solver for linear thermal conductive problems. - * - * @tparam Grid Grid class (e.g. Quad4Grid). - * @tparam Element Element class (e.g. Quad4). - */ - template - class LinearThermalConductiveSolver : public LinearScalarDiffusiveSolver { - public: - using Base = LinearScalarDiffusiveSolver; - using Base::Base; - }; - - // Template arugment deduction - template - LinearThermalConductiveSolver(const GridBase &, const LinearTransportMaterial &) -> LinearThermalConductiveSolver; - -} // namespace monad diff --git a/include/monad/solver/solver_aliases.hpp b/include/monad/solver/solver_aliases.hpp new file mode 100644 index 0000000..7ad54be --- /dev/null +++ b/include/monad/solver/solver_aliases.hpp @@ -0,0 +1,74 @@ +#pragma once + +#include "monad/solver/mechanical/linear_elastic_policy.hpp" +#include "monad/solver/scalar/linear_scalar_diffusive_policy.hpp" +#include "monad/solver/multiphysics/linear_piezoelectric_policy.hpp" +#include "monad/solver/periodic_cell_solver.hpp" + +namespace monad { + + /** + * @brief Stateless periodic-cell solver for structured linear elastic homogenization problems. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + */ + template + using LinearElasticSolver = solver::PeriodicCellSolver>; + + /** + * @brief Stateless periodic-cell solver for structured linear dielectric homogenization problems. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + */ + template + using LinearDielectricSolver = solver::PeriodicCellSolver>; + + /** + * @brief Stateless periodic-cell solver for structured linear electrical conductive homogenization problems. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + */ + template + using LinearElectricalConductiveSolver = solver::PeriodicCellSolver>; + + /** + * @brief Stateless periodic-cell solver for structured linear magnetic homogenization problems. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + */ + template + using LinearMagneticSolver = solver::PeriodicCellSolver>; + + /** + * @brief Stateless periodic-cell solver for structured linear mass diffusive homogenization problems. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + */ + template + using LinearMassDiffusiveSolver = solver::PeriodicCellSolver>; + + /** + * @brief Stateless periodic-cell solver for structured linear porous homogenization problems. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + */ + template + using LinearPorousSolver = solver::PeriodicCellSolver>; + + /** + * @brief Stateless periodic-cell solver for structured linear thermal conductive homogenization problems. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + */ + template + using LinearThermalConductiveSolver = solver::PeriodicCellSolver>; + + /** + * @brief Stateless periodic-cell solver for structured linear piezoelectric homogenization problems. + * + * @tparam Grid Grid type (e.g. Quad4Grid). + */ + template + using LinearPiezoelectricSolver = solver::PeriodicCellSolver>; + +} // namespace monad diff --git a/include/monad/solver/solver_options.hpp b/include/monad/solver/solver_options.hpp index a4d4a4b..2b8fc0f 100644 --- a/include/monad/solver/solver_options.hpp +++ b/include/monad/solver/solver_options.hpp @@ -4,52 +4,49 @@ namespace monad { /// @brief Bitmask controlling which nodal fields are stored in solver results. enum class FieldSave : unsigned int { - /// @brief Do not store any noal fields. + /// @brief Do not store any nodal fields. None = 0, - /// @brief Store total nodal fields X=X̄+X̃. + /// @brief Store total nodal fields. Total = 1 << 0, - /// @brief Store macroscopic nodal fields X̄. + /// @brief Store macroscopic nodal fields. Macro = 1 << 1, - /// @brief Store microscopic nodal fields X̃. + /// @brief Store microscopic nodal fields. Micro = 1 << 2, /// @brief Store all nodal fields. All = Total | Macro | Micro }; - /// @brief Bitwise OR operator. + /// @brief Bitwise OR for field-save flags. FieldSave operator|(FieldSave a, FieldSave b) noexcept; - /// @brief Bitwise AND operator. + /// @brief Bitwise AND for field-save flags. FieldSave operator&(FieldSave a, FieldSave b) noexcept; /** - * @brief Checks whether a specific field-save flag is enabled. + * @brief Returns `true` if a field-save flag is enabled, `false` otherwise. * * @param[in] flags Combined field-save flags. - * @param[in] bit Specific field-save option to test. + * @param[in] bit Flag to test. * * @returns `true` if `bit` is enabled in `flags`, `false` otherwise. */ bool wants(FieldSave flags, FieldSave bit) noexcept; - /// @brief Solver options. + /// @brief Options controlling the iterative solves and result storage. struct SolverOptions { /// @brief Maximum number of solver iterations. int maxIterations = 1000; - /// @brief Convergence tolerance for the solver's residual norm. + /// @brief Relative residual tolerance. double tolerance = 1e-6; - /// @brief Controls which nodal fields are stored in the solver results. + /// @brief Nodal fields to store in the results. FieldSave fields = FieldSave::None; - /// @brief Default solver options. - static SolverOptions defaults(); - /// @brief Equality comparison. bool operator==(const SolverOptions &other) const; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9aecef1..07cf168 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,10 +4,11 @@ set(MONAD_SOURCES fem/element/hex20.cpp fem/element/quad4.cpp fem/element/quad8.cpp - grid/hex8_grid.cpp - grid/hex20_grid.cpp - grid/quad4_grid.cpp - grid/quad8_grid.cpp + field/make_density_field_from_csv.cpp + grid/hex8_topology.cpp + grid/hex20_topology.cpp + grid/quad4_topology.cpp + grid/quad8_topology.cpp io/gmsh/write_gmsh_header.cpp material/mechanical/linear_elastic_2d.cpp material/mechanical/linear_elastic_3d.cpp diff --git a/src/field/make_density_field_from_csv.cpp b/src/field/make_density_field_from_csv.cpp new file mode 100644 index 0000000..da1954e --- /dev/null +++ b/src/field/make_density_field_from_csv.cpp @@ -0,0 +1,82 @@ +#include +#include +#include +#include +#include +#include "monad/field/make_density_field_from_csv.hpp" + +namespace monad { + + DensityField2d makeDensityFieldFromCsv(const std::string& file) { + std::ifstream ifs(file, std::ios::in | std::ios::binary); + if (!ifs.is_open()) { + throw std::runtime_error("Could not open " + file + " for reading."); + } + + std::size_t nx; + std::vector> rows; + std::string line; + + while (std::getline(ifs, line)) { + if (line.empty()) { + continue; + } + + std::istringstream iss(line); + std::string cell; + std::vector row; + + while (std::getline(iss, cell, ',')) { + if (cell.empty()) { + continue; + } + + double value = 0.0; + try { + value = std::stod(cell); + } + catch (const std::invalid_argument&) { + throw std::runtime_error("File " + file + " contains non-numeric values."); + } + + if (value < 0.0 || value > 1.0) { + throw std::runtime_error("File " + file + " contains values outside the range [0,1]."); + } + + row.push_back(value); + } + + if (row.empty()) { + continue; + } + + if (rows.size() == 0) { + nx = row.size(); + } + + if (row.size() != nx) { + throw std::runtime_error("File " + file + " number of columns (" + std::to_string(row.size()) + ") does not equal density field x-resolution (" + std::to_string(nx) + ")."); + } + + rows.push_back(row); + } + + const std::size_t ny = rows.size(); + + if (ny == 0) { + throw std::runtime_error("File " + file + " is empty."); + } + + DensityField2d densityField({nx, ny}); + + for (std::size_t i = 0; i < ny; ++i) { + for (std::size_t j = 0; j < nx; ++j) { + const std::size_t rowStart = nx * (ny - 1 - i); + densityField.setDensity(rowStart + j, rows[i][j]); + } + } + + return densityField; + } + +} // namespace monad diff --git a/src/grid/hex20_grid.cpp b/src/grid/hex20_grid.cpp deleted file mode 100644 index 3c20986..0000000 --- a/src/grid/hex20_grid.cpp +++ /dev/null @@ -1,262 +0,0 @@ -#include -#include -#include "monad/grid/hex20_grid.hpp" - -namespace monad { - - std::size_t Hex20Grid::numNodes() const noexcept { - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - const std::size_t nz = resolution_[2]; - - const std::size_t numCornerNodes = (nx + 1) * (ny + 1) * (nz + 1); - const std::size_t numXMidNodes = nx * (ny + 1) * (nz + 1); - const std::size_t numYMidNodes = (nx + 1) * ny * (nz + 1); - const std::size_t numZMidNodes = (nx + 1) * (ny + 1) * nz; - - return numCornerNodes + numXMidNodes + numYMidNodes + numZMidNodes; - } - - std::size_t Hex20Grid::numPeriodicNodes() const noexcept { - return 4 * numElements(); - } - - Hex20Grid::Point Hex20Grid::node(std::size_t index) const { - if (index >= numNodes()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numNodes()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - const std::size_t nz = resolution_[2]; - - const std::size_t numCornerNodes = (nx + 1) * (ny + 1) * (nz + 1); - const std::size_t numXMidNodes = nx * (ny + 1) * (nz + 1); - const std::size_t numYMidNodes = (nx + 1) * ny * (nz + 1); - - const double lx = size_[0]; - const double ly = size_[1]; - const double lz = size_[2]; - - const double dx = lx / static_cast(nx); - const double dy = ly / static_cast(ny); - const double dz = lz / static_cast(nz); - - double x; - double y; - double z; - - if (index < numCornerNodes) { - const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); - const std::size_t indexInPlane = index % nodesPerPlane; - - const std::size_t i = indexInPlane % (nx + 1); - const std::size_t j = indexInPlane / (nx + 1); - const std::size_t k = index / nodesPerPlane; - - x = static_cast(i) * dx; - y = static_cast(j) * dy; - z = static_cast(k) * dz; - } - else if (index < numCornerNodes + numXMidNodes) { - // x-midpoints: grid size (i: nx, j: ny+1, k: nz+1) - index -= numCornerNodes; - - std::size_t nodesPerPlane = nx * (ny + 1); - std::size_t indexInPlane = index % nodesPerPlane; - - std::size_t i = indexInPlane % nx; - std::size_t j = indexInPlane / nx; - std::size_t k = index / nodesPerPlane; - - x = (static_cast(i) + 0.5) * dx; - y = static_cast(j) * dy; - z = static_cast(k) * dz; - } - else if (index < numCornerNodes + numXMidNodes + numYMidNodes) { - // y-midpoints: grid size (i: nx+1, j: ny, k: nz+1) - index -= numCornerNodes + numXMidNodes; - - const std::size_t nodesPerPlane = (nx + 1) * ny; - const std::size_t indexInPlane = index % nodesPerPlane; - - const std::size_t i = indexInPlane % (nx + 1); - const std::size_t j = indexInPlane / (nx + 1); - const std::size_t k = index / nodesPerPlane; - - x = static_cast(i) * dx; - y = (static_cast(j) + 0.5) * dy; - z = static_cast(k) * dz; - } - else { - // z-midpoints: grid size (i: nx+1, j: ny+1, k: nz) - index -= numCornerNodes + numXMidNodes + numYMidNodes; - - const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); - const std::size_t indexInPlane = index % nodesPerPlane; - - const std::size_t i = indexInPlane % (nx + 1); - const std::size_t j = indexInPlane / (nx + 1); - const std::size_t k = index / nodesPerPlane; - - x = static_cast(i) * dx; - y = static_cast(j) * dy; - z = (static_cast(k) + 0.5) * dz; - } - - return Point(x, y, z); - } - - Hex20Grid::ElementList Hex20Grid::element(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - const std::size_t nz = resolution_[2]; - - const std::size_t elementsPerPlane = nx * ny; - const std::size_t numCornerNodes = (nx + 1) * (ny + 1) * (nz + 1); - const std::size_t numXMidNodes = nx * (ny + 1) * (nz + 1); - const std::size_t numYMidNodes = (nx + 1) * ny * (nz + 1); - - const std::size_t i = index % nx; - const std::size_t j = (index / nx) % ny; - const std::size_t k = index / elementsPerPlane; - - auto cornerNodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - return k * ((nx + 1) * (ny + 1)) + j * (nx + 1) + i; - }; - - auto xMidNodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - return numCornerNodes + k * nx * (ny + 1) + j * nx + i; - }; - - auto yMidNodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - return numCornerNodes + numXMidNodes + k * (nx + 1) * ny + j * (nx + 1) + i; - }; - - auto zMidNodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - return numCornerNodes + numXMidNodes + numYMidNodes + k * (nx + 1) * (ny + 1) + j * (nx + 1) + i; - }; - - // Bottom face corners - const std::size_t n1 = cornerNodeIndex(i, j, k); - const std::size_t n2 = cornerNodeIndex(i + 1, j, k); - const std::size_t n3 = cornerNodeIndex(i + 1, j + 1, k); - const std::size_t n4 = cornerNodeIndex(i, j + 1, k); - - // Top face corners - const std::size_t n5 = cornerNodeIndex(i, j, k + 1); - const std::size_t n6 = cornerNodeIndex(i + 1, j, k + 1); - const std::size_t n7 = cornerNodeIndex(i + 1, j + 1, k + 1); - const std::size_t n8 = cornerNodeIndex(i, j + 1, k + 1); - - // Bottom face midpoints - const std::size_t n9 = xMidNodeIndex(i, j, k); // between n1-n2 - const std::size_t n10 = yMidNodeIndex(i + 1, j, k); // between n2-n3 - const std::size_t n11 = xMidNodeIndex(i, j + 1, k); // between n3-n4 - const std::size_t n12 = yMidNodeIndex(i, j, k); // between n1-n4 - - // Top face edge midpoints - const std::size_t n13 = xMidNodeIndex(i, j, k + 1); // between n5-n6 - const std::size_t n14 = yMidNodeIndex(i + 1, j, k + 1); // between n6-n7 - const std::size_t n15 = xMidNodeIndex(i, j + 1, k + 1); // between n7-n8 - const std::size_t n16 = yMidNodeIndex(i, j, k + 1); // between n5-n8 - - // Vertical midpoints - const std::size_t n17 = zMidNodeIndex(i, j, k); // between n1-n5 - const std::size_t n18 = zMidNodeIndex(i + 1, j, k); // between n2-n6 - const std::size_t n19 = zMidNodeIndex(i + 1, j + 1, k); // between n3-n7 - const std::size_t n20 = zMidNodeIndex(i, j + 1, k); // between n4-n8 - - return {n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20}; - } - - Hex20Grid::ElementList Hex20Grid::periodicElement(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - const std::size_t nz = resolution_[2]; - - const std::size_t elementsPerPlane = nx * ny; - const std::size_t numElements = nx * ny * nz; - - const std::size_t i = index % nx; - const std::size_t j = (index / nx) % ny; - const std::size_t k = index / elementsPerPlane; - - auto cornerNodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - // Periodic wrapping - const std::size_t iP = (i + nx) % nx; - const std::size_t jP = (j + ny) % ny; - const std::size_t kP = (k + nz) % nz; - - return kP * nx * ny + jP * nx + iP; - }; - - auto xMidNodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - // Periodic wrapping - const std::size_t iP = (i + nx) % nx; - const std::size_t jP = (j + ny) % ny; - const std::size_t kP = (k + nz) % nz; - - return numElements + kP * nx * ny + jP * nx + iP; - }; - - auto yMidNodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - // Periodic wrapping - const std::size_t iP = (i + nx) % nx; - const std::size_t jP = (j + ny) % ny; - const std::size_t kP = (k + nz) % nz; - - return numElements + numElements + kP * nx * ny + jP * nx + iP; - }; - - auto zMidNodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - // Periodic wrapping - const std::size_t iP = (i + nx) % nx; - const std::size_t jP = (j + ny) % ny; - const std::size_t kP = (k + nz) % nz; - - return numElements + numElements + numElements + kP * nx * ny + jP * nx + iP; - }; - - // Bottom face corners - const std::size_t n1 = cornerNodeIndex(i, j, k); - const std::size_t n2 = cornerNodeIndex(i + 1, j, k); - const std::size_t n3 = cornerNodeIndex(i + 1, j + 1, k); - const std::size_t n4 = cornerNodeIndex(i, j + 1, k); - - // Top face corners - const std::size_t n5 = cornerNodeIndex(i, j, k + 1); - const std::size_t n6 = cornerNodeIndex(i + 1, j, k + 1); - const std::size_t n7 = cornerNodeIndex(i + 1, j + 1, k + 1); - const std::size_t n8 = cornerNodeIndex(i, j + 1, k + 1); - - // Bottom face midpoints - const std::size_t n9 = xMidNodeIndex(i, j, k); // between n1-n2 - const std::size_t n10 = yMidNodeIndex(i + 1, j, k); // between n2-n3 - const std::size_t n11 = xMidNodeIndex(i, j + 1, k); // between n3-n4 - const std::size_t n12 = yMidNodeIndex(i, j, k); // between n1-n4 - - // Top face edge midpoints - const std::size_t n13 = xMidNodeIndex(i, j, k + 1); // between n5-n6 - const std::size_t n14 = yMidNodeIndex(i + 1, j, k + 1); // between n6-n7 - const std::size_t n15 = xMidNodeIndex(i, j + 1, k + 1); // between n7-n8 - const std::size_t n16 = yMidNodeIndex(i, j, k + 1); // between n5-n8 - - // Vertical midpoints - const std::size_t n17 = zMidNodeIndex(i, j, k); // between n1-n5 - const std::size_t n18 = zMidNodeIndex(i + 1, j, k); // between n2-n6 - const std::size_t n19 = zMidNodeIndex(i + 1, j + 1, k); // between n3-n7 - const std::size_t n20 = zMidNodeIndex(i, j + 1, k); // between n4-n8 - - return {n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20}; - } - -} // namespace monad diff --git a/src/grid/hex20_topology.cpp b/src/grid/hex20_topology.cpp new file mode 100644 index 0000000..b8c2766 --- /dev/null +++ b/src/grid/hex20_topology.cpp @@ -0,0 +1,206 @@ +#include "monad/grid/hex20_topology.hpp" + +namespace monad { + + namespace grid { + + std::size_t Hex20Topology::numCornerNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1) * (resolution[2] + 1); + } + + std::size_t Hex20Topology::numXMidNodes(const Resolution& resolution) noexcept { + return resolution[0] * (resolution[1] + 1) * (resolution[2] + 1); + } + + std::size_t Hex20Topology::numYMidNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * resolution[1] * (resolution[2] + 1); + } + + std::size_t Hex20Topology::numZMidNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1) * resolution[2]; + } + + std::size_t Hex20Topology::numNodes(const Resolution& resolution) noexcept { + return numCornerNodes(resolution) + numXMidNodes(resolution) + numYMidNodes(resolution) + numZMidNodes(resolution); + } + + std::size_t Hex20Topology::numPeriodicNodes(const Resolution& resolution) noexcept { + return 4 * resolution[0] * resolution[1] * resolution[2]; + } + + Hex20Topology::Point Hex20Topology::node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t nz = resolution[2]; + const std::size_t corners = numCornerNodes(resolution); + const std::size_t xMids = numXMidNodes(resolution); + const std::size_t yMids = numYMidNodes(resolution); + + const double dx = size[0] / static_cast(nx); + const double dy = size[1] / static_cast(ny); + const double dz = size[2] / static_cast(nz); + + double x; + double y; + double z; + + if (index < corners) { + const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); + const std::size_t indexInPlane = index % nodesPerPlane; + const std::size_t i = indexInPlane % (nx + 1); + const std::size_t j = indexInPlane / (nx + 1); + const std::size_t k = index / nodesPerPlane; + + x = static_cast(i) * dx; + y = static_cast(j) * dy; + z = static_cast(k) * dz; + } + else if (index < corners + xMids) { + index -= corners; + + const std::size_t nodesPerPlane = nx * (ny + 1); + const std::size_t indexInPlane = index % nodesPerPlane; + const std::size_t i = indexInPlane % nx; + const std::size_t j = indexInPlane / nx; + const std::size_t k = index / nodesPerPlane; + + x = (static_cast(i) + 0.5) * dx; + y = static_cast(j) * dy; + z = static_cast(k) * dz; + } + else if (index < corners + xMids + yMids) { + index -= corners + xMids; + + const std::size_t nodesPerPlane = (nx + 1) * ny; + const std::size_t indexInPlane = index % nodesPerPlane; + const std::size_t i = indexInPlane % (nx + 1); + const std::size_t j = indexInPlane / (nx + 1); + const std::size_t k = index / nodesPerPlane; + + x = static_cast(i) * dx; + y = (static_cast(j) + 0.5) * dy; + z = static_cast(k) * dz; + } + else { + index -= corners + xMids + yMids; + + const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); + const std::size_t indexInPlane = index % nodesPerPlane; + const std::size_t i = indexInPlane % (nx + 1); + const std::size_t j = indexInPlane / (nx + 1); + const std::size_t k = index / nodesPerPlane; + + x = static_cast(i) * dx; + y = static_cast(j) * dy; + z = (static_cast(k) + 0.5) * dz; + } + + return Point(x, y, z); + } + + Hex20Topology::ElementList Hex20Topology::element(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t elementsPerPlane = nx * ny; + const std::size_t corners = numCornerNodes(resolution); + const std::size_t xMids = numXMidNodes(resolution); + const std::size_t yMids = numYMidNodes(resolution); + + const std::size_t i = index % nx; + const std::size_t j = (index / nx) % ny; + const std::size_t k = index / elementsPerPlane; + + const auto cornerNodeIndex = [nx, ny](std::size_t ii, std::size_t jj, std::size_t kk) { + return kk * ((nx + 1) * (ny + 1)) + jj * (nx + 1) + ii; + }; + + const auto xMidNodeIndex = [nx, ny, corners](std::size_t ii, std::size_t jj, std::size_t kk) { + return corners + kk * nx * (ny + 1) + jj * nx + ii; + }; + + const auto yMidNodeIndex = [nx, ny, corners, xMids](std::size_t ii, std::size_t jj, std::size_t kk) { + return corners + xMids + kk * (nx + 1) * ny + jj * (nx + 1) + ii; + }; + + const auto zMidNodeIndex = [nx, ny, corners, xMids, yMids](std::size_t ii, std::size_t jj, std::size_t kk) { + return corners + xMids + yMids + kk * (nx + 1) * (ny + 1) + jj * (nx + 1) + ii; + }; + + return { + cornerNodeIndex(i, j, k), + cornerNodeIndex(i + 1, j, k), + cornerNodeIndex(i + 1, j + 1, k), + cornerNodeIndex(i, j + 1, k), + cornerNodeIndex(i, j, k + 1), + cornerNodeIndex(i + 1, j, k + 1), + cornerNodeIndex(i + 1, j + 1, k + 1), + cornerNodeIndex(i, j + 1, k + 1), + xMidNodeIndex(i, j, k), + yMidNodeIndex(i + 1, j, k), + xMidNodeIndex(i, j + 1, k), + yMidNodeIndex(i, j, k), + xMidNodeIndex(i, j, k + 1), + yMidNodeIndex(i + 1, j, k + 1), + xMidNodeIndex(i, j + 1, k + 1), + yMidNodeIndex(i, j, k + 1), + zMidNodeIndex(i, j, k), + zMidNodeIndex(i + 1, j, k), + zMidNodeIndex(i + 1, j + 1, k), + zMidNodeIndex(i, j + 1, k) + }; + } + + Hex20Topology::ElementList Hex20Topology::periodicElement(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t nz = resolution[2]; + const std::size_t numElements = nx * ny * nz; + const std::size_t elementsPerPlane = nx * ny; + + const std::size_t i = index % nx; + const std::size_t j = (index / nx) % ny; + const std::size_t k = index / elementsPerPlane; + + const auto cornerNodeIndex = [nx, ny, nz](std::size_t ii, std::size_t jj, std::size_t kk) { + return (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + const auto xMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { + return numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + const auto yMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { + return 2 * numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + const auto zMidNodeIndex = [nx, ny, nz, numElements](std::size_t ii, std::size_t jj, std::size_t kk) { + return 3 * numElements + (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + return { + cornerNodeIndex(i, j, k), + cornerNodeIndex(i + 1, j, k), + cornerNodeIndex(i + 1, j + 1, k), + cornerNodeIndex(i, j + 1, k), + cornerNodeIndex(i, j, k + 1), + cornerNodeIndex(i + 1, j, k + 1), + cornerNodeIndex(i + 1, j + 1, k + 1), + cornerNodeIndex(i, j + 1, k + 1), + xMidNodeIndex(i, j, k), + yMidNodeIndex(i + 1, j, k), + xMidNodeIndex(i, j + 1, k), + yMidNodeIndex(i, j, k), + xMidNodeIndex(i, j, k + 1), + yMidNodeIndex(i + 1, j, k + 1), + xMidNodeIndex(i, j + 1, k + 1), + yMidNodeIndex(i, j, k + 1), + zMidNodeIndex(i, j, k), + zMidNodeIndex(i + 1, j, k), + zMidNodeIndex(i + 1, j + 1, k), + zMidNodeIndex(i, j + 1, k) + }; + } + + } // namespace grid + +} // namespace monad diff --git a/src/grid/hex8_grid.cpp b/src/grid/hex8_grid.cpp deleted file mode 100644 index 1f9e467..0000000 --- a/src/grid/hex8_grid.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include -#include -#include "monad/grid/hex8_grid.hpp" - -namespace monad { - - std::size_t Hex8Grid::numNodes() const noexcept { - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - const std::size_t nz = resolution_[2]; - - return (nx + 1) * (ny + 1) * (nz + 1); - } - - std::size_t Hex8Grid::numPeriodicNodes() const noexcept { - return numElements(); - } - - Hex8Grid::Point Hex8Grid::node(std::size_t index) const { - if (index >= numNodes()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numNodes()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - const std::size_t nz = resolution_[2]; - - const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); - const std::size_t indexInPlane = index % nodesPerPlane; - - const double lx = size_[0]; - const double ly = size_[1]; - const double lz = size_[2]; - - const double dx = lx / static_cast(nx); - const double dy = ly / static_cast(ny); - const double dz = lz / static_cast(nz); - - const std::size_t i = indexInPlane % (nx + 1); - const std::size_t j = indexInPlane / (nx + 1); - const std::size_t k = index / nodesPerPlane; - - const double x = static_cast(i) * dx; - const double y = static_cast(j) * dy; - const double z = static_cast(k) * dz; - - return Point(x, y, z); - } - - Hex8Grid::ElementList Hex8Grid::element(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - - const std::size_t elementsPerPlane = nx * ny; - - const std::size_t i = index % nx; - const std::size_t j = (index / nx) % ny; - const std::size_t k = index / elementsPerPlane; - - auto nodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - return k * ((nx + 1) * (ny + 1)) + j * (nx + 1) + i; - }; - - // Bottom face - const std::size_t n1 = nodeIndex(i, j, k); - const std::size_t n2 = nodeIndex(i + 1, j, k); - const std::size_t n3 = nodeIndex(i + 1, j + 1, k); - const std::size_t n4 = nodeIndex(i, j + 1, k); - - // Top face - const std::size_t n5 = nodeIndex(i, j, k + 1); - const std::size_t n6 = nodeIndex(i + 1, j, k + 1); - const std::size_t n7 = nodeIndex(i + 1, j + 1, k + 1); - const std::size_t n8 = nodeIndex(i, j + 1, k + 1); - - return {n1, n2, n3, n4, n5, n6, n7, n8}; - } - - Hex8Grid::ElementList Hex8Grid::periodicElement(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - const std::size_t nz = resolution_[2]; - - const std::size_t elementsPerPlane = nx * ny; - - const std::size_t i = index % nx; - const std::size_t j = (index / nx) % ny; - const std::size_t k = index / elementsPerPlane; - - auto nodeIndex = [&](std::size_t i, std::size_t j, std::size_t k) { - const std::size_t iP = i % nx; - const std::size_t jP = j % ny; - const std::size_t kP = k % nz; - - return kP * (nx * ny) + jP * nx + iP; - }; - - // Bottom face - const std::size_t n1 = nodeIndex(i, j, k); - const std::size_t n2 = nodeIndex(i + 1, j, k); - const std::size_t n3 = nodeIndex(i + 1, j + 1, k); - const std::size_t n4 = nodeIndex(i, j + 1, k); - - // Top face - const std::size_t n5 = nodeIndex(i, j, k + 1); - const std::size_t n6 = nodeIndex(i + 1, j, k + 1); - const std::size_t n7 = nodeIndex(i + 1, j + 1, k + 1); - const std::size_t n8 = nodeIndex(i, j + 1, k + 1); - - return {n1, n2, n3, n4, n5, n6, n7, n8}; - } - -} // namespace monad diff --git a/src/grid/hex8_topology.cpp b/src/grid/hex8_topology.cpp new file mode 100644 index 0000000..a2a6431 --- /dev/null +++ b/src/grid/hex8_topology.cpp @@ -0,0 +1,90 @@ +#include "monad/grid/hex8_topology.hpp" + +namespace monad { + + namespace grid { + + std::size_t Hex8Topology::numNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1) * (resolution[2] + 1); + } + + std::size_t Hex8Topology::numPeriodicNodes(const Resolution& resolution) noexcept { + return resolution[0] * resolution[1] * resolution[2]; + } + + Hex8Topology::Point Hex8Topology::node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t nz = resolution[2]; + const std::size_t nodesPerPlane = (nx + 1) * (ny + 1); + const std::size_t indexInPlane = index % nodesPerPlane; + + const std::size_t i = indexInPlane % (nx + 1); + const std::size_t j = indexInPlane / (nx + 1); + const std::size_t k = index / nodesPerPlane; + + const double dx = size[0] / static_cast(nx); + const double dy = size[1] / static_cast(ny); + const double dz = size[2] / static_cast(nz); + + const double x = static_cast(i) * dx; + const double y = static_cast(j) * dy; + const double z = static_cast(k) * dz; + + return Point(x, y, z); + } + + Hex8Topology::ElementList Hex8Topology::element(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t elementsPerPlane = nx * ny; + + const std::size_t i = index % nx; + const std::size_t j = (index / nx) % ny; + const std::size_t k = index / elementsPerPlane; + + const auto nodeIndex = [nx, ny](std::size_t ii, std::size_t jj, std::size_t kk) { + return kk * ((nx + 1) * (ny + 1)) + jj * (nx + 1) + ii; + }; + + return { + nodeIndex(i, j, k), + nodeIndex(i + 1, j, k), + nodeIndex(i + 1, j + 1, k), + nodeIndex(i, j + 1, k), + nodeIndex(i, j, k + 1), + nodeIndex(i + 1, j, k + 1), + nodeIndex(i + 1, j + 1, k + 1), + nodeIndex(i, j + 1, k + 1) + }; + } + + Hex8Topology::ElementList Hex8Topology::periodicElement(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t nz = resolution[2]; + const std::size_t elementsPerPlane = nx * ny; + + const std::size_t i = index % nx; + const std::size_t j = (index / nx) % ny; + const std::size_t k = index / elementsPerPlane; + + const auto nodeIndex = [nx, ny, nz](std::size_t ii, std::size_t jj, std::size_t kk) { + return (kk % nz) * (nx * ny) + (jj % ny) * nx + (ii % nx); + }; + + return { + nodeIndex(i, j, k), + nodeIndex(i + 1, j, k), + nodeIndex(i + 1, j + 1, k), + nodeIndex(i, j + 1, k), + nodeIndex(i, j, k + 1), + nodeIndex(i + 1, j, k + 1), + nodeIndex(i + 1, j + 1, k + 1), + nodeIndex(i, j + 1, k + 1) + }; + } + + } // namespace grid + +} // namespace monad diff --git a/src/grid/quad4_grid.cpp b/src/grid/quad4_grid.cpp deleted file mode 100644 index b19612b..0000000 --- a/src/grid/quad4_grid.cpp +++ /dev/null @@ -1,89 +0,0 @@ -#include -#include -#include "monad/grid/quad4_grid.hpp" - -namespace monad { - - std::size_t Quad4Grid::numNodes() const noexcept { - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - - return (nx + 1) * (ny + 1); - } - - std::size_t Quad4Grid::numPeriodicNodes() const noexcept { - return numElements(); - } - - Quad4Grid::Point Quad4Grid::node(std::size_t index) const { - if (index >= numNodes()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numNodes()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - - const double lx = size_[0]; - const double ly = size_[1]; - - const double dx = lx / static_cast(nx); - const double dy = ly / static_cast(ny); - - const std::size_t i = index % (nx + 1); - const std::size_t j = index / (nx + 1); - - const double x = static_cast(i) * dx; - const double y = static_cast(j) * dy; - - return Point(x, y); - } - - Quad4Grid::ElementList Quad4Grid::element(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - const std::size_t nx = resolution_[0]; - - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - auto nodeIndex = [&](std::size_t i, std::size_t j) { - return j * (nx + 1) + i; - }; - - const std::size_t n1 = nodeIndex(i, j); - const std::size_t n2 = nodeIndex(i + 1, j); - const std::size_t n3 = nodeIndex(i + 1, j + 1); - const std::size_t n4 = nodeIndex(i, j + 1); - - return {n1, n2, n3, n4}; - } - - Quad4Grid::ElementList Quad4Grid::periodicElement(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - auto nodeIndex = [&](std::size_t i, std::size_t j) { - const std::size_t iP = i % nx; - const std::size_t jP = j % ny; - - return jP * nx + iP; - }; - - const std::size_t n1 = nodeIndex(i, j); - const std::size_t n2 = nodeIndex(i + 1, j); - const std::size_t n3 = nodeIndex(i + 1, j + 1); - const std::size_t n4 = nodeIndex(i, j + 1); - - return {n1, n2, n3, n4}; - } - -} // namespace monad diff --git a/src/grid/quad4_topology.cpp b/src/grid/quad4_topology.cpp new file mode 100644 index 0000000..9848843 --- /dev/null +++ b/src/grid/quad4_topology.cpp @@ -0,0 +1,67 @@ +#include "monad/grid/quad4_topology.hpp" + +namespace monad { + + namespace grid { + + std::size_t Quad4Topology::numNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1); + } + + std::size_t Quad4Topology::numPeriodicNodes(const Resolution& resolution) noexcept { + return resolution[0] * resolution[1]; + } + + Quad4Topology::Point Quad4Topology::node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t i = index % (nx + 1); + const std::size_t j = index / (nx + 1); + + const double dx = size[0] / static_cast(nx); + const double dy = size[1] / static_cast(ny); + + const double x = static_cast(i) * dx; + const double y = static_cast(j) * dy; + + return Point(x, y); + } + + Quad4Topology::ElementList Quad4Topology::element(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + const auto nodeIndex = [nx](std::size_t ii, std::size_t jj) { + return jj * (nx + 1) + ii; + }; + + return { + nodeIndex(i, j), + nodeIndex(i + 1, j), + nodeIndex(i + 1, j + 1), + nodeIndex(i, j + 1) + }; + } + + Quad4Topology::ElementList Quad4Topology::periodicElement(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + const auto nodeIndex = [nx, ny](std::size_t ii, std::size_t jj) { + return (jj % ny) * nx + (ii % nx); + }; + + return { + nodeIndex(i, j), + nodeIndex(i + 1, j), + nodeIndex(i + 1, j + 1), + nodeIndex(i, j + 1) + }; + } + + } // namespace grid + +} // namespace monad diff --git a/src/grid/quad8_grid.cpp b/src/grid/quad8_grid.cpp deleted file mode 100644 index 31508c5..0000000 --- a/src/grid/quad8_grid.cpp +++ /dev/null @@ -1,165 +0,0 @@ -#include -#include -#include "monad/grid/quad8_grid.hpp" - -namespace monad { - - std::size_t Quad8Grid::numNodes() const noexcept { - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - - const std::size_t numCornerNodes = (nx + 1) * (ny + 1); - const std::size_t numXMidNodes = nx * (ny + 1); - const std::size_t numYMidNodes = (nx + 1) * ny; - - return numCornerNodes + numXMidNodes + numYMidNodes; - } - - std::size_t Quad8Grid::numPeriodicNodes() const noexcept { - return 3 * numElements(); - } - - Quad8Grid::Point Quad8Grid::node(std::size_t index) const { - if (index >= numNodes()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numNodes()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - - const std::size_t numCornerNodes = (nx + 1) * (ny + 1); - const std::size_t numXMidNodes = nx * (ny + 1); - - const double lx = size_[0]; - const double ly = size_[1]; - - const double dx = lx / static_cast(nx); - const double dy = ly / static_cast(ny); - - double x; - double y; - - if (index < numCornerNodes) { - const std::size_t i = index % (nx + 1); - const std::size_t j = index / (nx + 1); - - x = static_cast(i) * dx; - y = static_cast(j) * dy; - } - else if (index < numCornerNodes + numXMidNodes) { - // x-midpoints are laid out in nx columns (i) and (ny + 1) rows (j). - index -= numCornerNodes; - - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - x = (static_cast(i) + 0.5) * dx; - y = static_cast(j) * dy; - } - else { - // y-midpoints are laid out in (nx + 1) columns (i) and ny rows (j). - index -= numCornerNodes + numXMidNodes; - - const std::size_t i = index % (nx + 1); - const std::size_t j = index / (nx + 1); - - x = static_cast(i) * dx; - y = (static_cast(j) + 0.5) * dy; - } - - return Point(x, y); - } - - Quad8Grid::ElementList Quad8Grid::element(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - - const std::size_t numCornerNodes = (nx + 1) * (ny + 1); - const std::size_t numXMidNodes = nx * (ny + 1); - - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - auto cornerNodeIndex = [&](std::size_t i, std::size_t j) { - return j * (nx + 1) + i; - }; - - auto xMidNodeIndex = [&](std::size_t i, std::size_t j) { - return numCornerNodes + j * nx + i; - }; - - auto yMidNodeIndex = [&](std::size_t i, std::size_t j) { - return numCornerNodes + numXMidNodes + j * (nx + 1) + i; - }; - - // Corner nodes - const std::size_t n1 = cornerNodeIndex(i, j); - const std::size_t n2 = cornerNodeIndex(i + 1, j); - const std::size_t n3 = cornerNodeIndex(i + 1, j + 1); - const std::size_t n4 = cornerNodeIndex(i, j + 1); - - // Midpoint nodes - const std::size_t n5 = xMidNodeIndex(i, j); // between n1-n2 - const std::size_t n6 = yMidNodeIndex(i + 1, j); // between n2-n3 - const std::size_t n7 = xMidNodeIndex(i, j + 1); // between n3-n4 - const std::size_t n8 = yMidNodeIndex(i, j); // between n1-n4 - - return {n1, n2, n3, n4, n5, n6, n7, n8}; - } - - Quad8Grid::ElementList Quad8Grid::periodicElement(std::size_t index) const { - if (index >= numElements()) { - throw std::out_of_range("Index (" + std::to_string(index) + ") is out of range [0," + std::to_string(numElements()) + ")."); - } - - const std::size_t nx = resolution_[0]; - const std::size_t ny = resolution_[1]; - - const std::size_t numElements = nx * ny; - - const std::size_t i = index % nx; - const std::size_t j = index / nx; - - auto cornerNodeIndex = [&](std::size_t i, std::size_t j) { - const std::size_t iP = i % nx; - const std::size_t jP = j % ny; - - return jP * nx + iP; - }; - - auto xMidNodeIndex = [&](std::size_t i, std::size_t j) { - // Periodic wrapping - const std::size_t iP = i % nx; - const std::size_t jP = j % ny; - - return numElements + jP * nx + iP; - }; - - auto yMidNodeIndex = [&](std::size_t i, std::size_t j) { - // Periodic wrapping - const std::size_t iP = i % nx; - const std::size_t jP = j % ny; - - return numElements + numElements + jP * nx + iP; - }; - - // Corner nodes - const std::size_t n1 = cornerNodeIndex(i, j); - const std::size_t n2 = cornerNodeIndex(i + 1, j); - const std::size_t n3 = cornerNodeIndex(i + 1, j + 1); - const std::size_t n4 = cornerNodeIndex(i, j + 1); - - // Midpoint nodes - const std::size_t n5 = xMidNodeIndex(i, j); // between n1-n2 - const std::size_t n6 = yMidNodeIndex(i + 1, j); // between n2-n3 - const std::size_t n7 = xMidNodeIndex(i, j + 1); // between n3-n4 - const std::size_t n8 = yMidNodeIndex(i, j); // between n1-n4 - - return {n1, n2, n3, n4, n5, n6, n7, n8}; - } - -} // namespace monad diff --git a/src/grid/quad8_topology.cpp b/src/grid/quad8_topology.cpp new file mode 100644 index 0000000..b916b6d --- /dev/null +++ b/src/grid/quad8_topology.cpp @@ -0,0 +1,134 @@ +#include "monad/grid/quad8_topology.hpp" + +namespace monad { + + namespace grid { + + std::size_t Quad8Topology::numCornerNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * (resolution[1] + 1); + } + + std::size_t Quad8Topology::numXMidNodes(const Resolution& resolution) noexcept { + return resolution[0] * (resolution[1] + 1); + } + + std::size_t Quad8Topology::numYMidNodes(const Resolution& resolution) noexcept { + return (resolution[0] + 1) * resolution[1]; + } + + std::size_t Quad8Topology::numNodes(const Resolution& resolution) noexcept { + return numCornerNodes(resolution) + numXMidNodes(resolution) + numYMidNodes(resolution); + } + + std::size_t Quad8Topology::numPeriodicNodes(const Resolution& resolution) noexcept { + return 3 * resolution[0] * resolution[1]; + } + + Quad8Topology::Point Quad8Topology::node(std::size_t index, const Resolution& resolution, const Size& size) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t corners = numCornerNodes(resolution); + const std::size_t xMids = numXMidNodes(resolution); + + const double dx = size[0] / static_cast(nx); + const double dy = size[1] / static_cast(ny); + + double x; + double y; + + if (index < corners) { + const std::size_t i = index % (nx + 1); + const std::size_t j = index / (nx + 1); + + x = static_cast(i) * dx; + y = static_cast(j) * dy; + } + else if (index < corners + xMids) { + index -= corners; + + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + x = (static_cast(i) + 0.5) * dx; + y = static_cast(j) * dy; + } + else { + index -= corners + xMids; + + const std::size_t i = index % (nx + 1); + const std::size_t j = index / (nx + 1); + + x = static_cast(i) * dx; + y = (static_cast(j) + 0.5) * dy; + } + + return Point(x, y); + } + + Quad8Topology::ElementList Quad8Topology::element(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t corners = numCornerNodes(resolution); + const std::size_t xMids = numXMidNodes(resolution); + + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + const auto cornerNodeIndex = [nx](std::size_t ii, std::size_t jj) { + return jj * (nx + 1) + ii; + }; + + const auto xMidNodeIndex = [nx, corners](std::size_t ii, std::size_t jj) { + return corners + jj * nx + ii; + }; + + const auto yMidNodeIndex = [nx, corners, xMids](std::size_t ii, std::size_t jj) { + return corners + xMids + jj * (nx + 1) + ii; + }; + + return { + cornerNodeIndex(i, j), + cornerNodeIndex(i + 1, j), + cornerNodeIndex(i + 1, j + 1), + cornerNodeIndex(i, j + 1), + xMidNodeIndex(i, j), + yMidNodeIndex(i + 1, j), + xMidNodeIndex(i, j + 1), + yMidNodeIndex(i, j) + }; + } + + Quad8Topology::ElementList Quad8Topology::periodicElement(std::size_t index, const Resolution& resolution) noexcept { + const std::size_t nx = resolution[0]; + const std::size_t ny = resolution[1]; + const std::size_t numElements = nx * ny; + + const std::size_t i = index % nx; + const std::size_t j = index / nx; + + const auto cornerNodeIndex = [nx, ny](std::size_t ii, std::size_t jj) { + return (jj % ny) * nx + (ii % nx); + }; + + const auto xMidNodeIndex = [nx, ny, numElements](std::size_t ii, std::size_t jj) { + return numElements + (jj % ny) * nx + (ii % nx); + }; + + const auto yMidNodeIndex = [nx, ny, numElements](std::size_t ii, std::size_t jj) { + return 2 * numElements + (jj % ny) * nx + (ii % nx); + }; + + return { + cornerNodeIndex(i, j), + cornerNodeIndex(i + 1, j), + cornerNodeIndex(i + 1, j + 1), + cornerNodeIndex(i, j + 1), + xMidNodeIndex(i, j), + yMidNodeIndex(i + 1, j), + xMidNodeIndex(i, j + 1), + yMidNodeIndex(i, j) + }; + } + + } // namespace grid + +} // namespace monad diff --git a/src/solver/solver_options.cpp b/src/solver/solver_options.cpp index 8e2474b..e9f989d 100644 --- a/src/solver/solver_options.cpp +++ b/src/solver/solver_options.cpp @@ -14,10 +14,6 @@ namespace monad { return (flags & bit) != FieldSave::None; } - SolverOptions SolverOptions::defaults() { - return SolverOptions{}; - } - bool SolverOptions::operator==(const SolverOptions &other) const { return maxIterations == other.maxIterations && tolerance == other.tolerance diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index aa1e855..6e015b6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,11 +1,44 @@ cmake_minimum_required(VERSION 3.10) set(TEST_SOURCES + detail/eigen_utils_test.cpp + detail/mean_test.cpp + fem/element/element_test.cpp + fem/kernel/mechanical/linear_elastic_kernel_test.cpp + fem/kernel/multiphysics/linear_piezoelectric_kernel_test.cpp + fem/kernel/scalar/linear_scalar_diffusion_kernel_test.cpp + fem/operator/mechanical/linear_elastic_dof_traits_test.cpp + fem/operator/multiphysics/linear_piezoelectric_dof_traits_test.cpp + fem/operator/scalar/linear_scalar_diffusion_dof_traits_test.cpp + field/density_field_test.cpp + field/make_density_field_from_csv_test.cpp + field/make_density_field_from_function_test.cpp grid/hex8_topology_test.cpp grid/hex20_topology_test.cpp grid/quad4_topology_test.cpp grid/quad8_topology_test.cpp grid/structured_grid_test.cpp + integration/integrate_matrix_test.cpp + integration/integrate_scalar_test.cpp + integration/quadrature_rule_test.cpp + io/gmsh/write_gmsh_densities_test.cpp + io/gmsh/write_gmsh_elements_test.cpp + io/gmsh/write_gmsh_header_test.cpp + io/gmsh/write_gmsh_nodal_field_test.cpp + io/gmsh/write_gmsh_nodes_test.cpp + io/save_grid_and_density_field_test.cpp + io/save_grid_and_nodal_field_test.cpp + io/save_grid_test.cpp + material/mechanical/linear_elastic_material_2d_test.cpp + material/mechanical/linear_elastic_material_3d_test.cpp + material/multiphysics/linear_piezoelectric_material_2d_test.cpp + material/multiphysics/linear_piezoelectric_material_3d_test.cpp + material/transport/linear_transport_material_test.cpp + material/bounds_test.cpp + solver/mechanical/linear_elastic_solver_test.cpp + solver/multiphysics/linear_piezoelectric_solver_test.cpp + solver/scalar/linear_scalar_diffusion_solver_test.cpp + solver/solver_options_test.cpp ) add_executable(monad_tests ${TEST_SOURCES}) diff --git a/tests/detail/eigen_utils_test.cpp b/tests/detail/eigen_utils_test.cpp index 291b57e..1ba67b1 100644 --- a/tests/detail/eigen_utils_test.cpp +++ b/tests/detail/eigen_utils_test.cpp @@ -6,16 +6,11 @@ using namespace monad::detail; -TEST_CASE("monad::detail: Test arrayToEigen", "[monad]") { - const std::array array{1, 2, 3}; - - const Eigen::Vector3i expected(1, 2, 3); - - REQUIRE(arrayToEigen(array) == expected); -} - TEST_CASE("monad::detail: Test symmetrize/isSymmetric", "[monad]") { - Eigen::Matrix3d A = Eigen::Matrix3d::Random(); + Eigen::Matrix3d A; + A << 1, 2, 3, + 2, 3, 4.001, + 3, 4, 5; REQUIRE(!isSymmetric(A)); diff --git a/tests/fem/element/element_test.cpp b/tests/fem/element/element_test.cpp index 2cf6236..0dfc322 100644 --- a/tests/fem/element/element_test.cpp +++ b/tests/fem/element/element_test.cpp @@ -1,8 +1,8 @@ #include +#include #include #include #include -#include #include "monad/fem/element/quad4.hpp" #include "monad/fem/element/quad8.hpp" #include "monad/fem/element/hex8.hpp" @@ -118,7 +118,7 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::ElementBase Test quadratureRule", "[monad]" expected = analyticIntegral(p, p, p); } - auto integrand = [p](const Point &point) -> double { + auto integrand = [&](const Point &point) -> double { if constexpr (TestType::Dim == 2) { return numericIntegrand(point, p, p); } diff --git a/tests/fem/kernel/mechanical/linear_elastic_kernel_2d_test.cpp b/tests/fem/kernel/mechanical/linear_elastic_kernel_2d_test.cpp deleted file mode 100644 index d728673..0000000 --- a/tests/fem/kernel/mechanical/linear_elastic_kernel_2d_test.cpp +++ /dev/null @@ -1,132 +0,0 @@ -#include -#include -#include -#include -#include "monad/fem/element/quad4.hpp" -#include "monad/fem/element/quad8.hpp" -#include "monad/fem/kernel/mechanical/linear_elastic_kernel.hpp" -#include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/detail/eigen_utils.hpp" -#include "monad/detail/constants.hpp" - -using namespace monad; -using namespace monad::fem; -using namespace monad::fem::mechanical; -using namespace monad::detail; - -using Types = std::tuple; - -TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (2d): Test bMatrix", "[monad]", Types) { - using FieldMatrix = typename LinearElasticKernel::FieldMatrix; - - auto nodes = TestType::localNodes(); - const auto points = TestType::quadratureRule().points; - - SECTION("BU=ε for unit strains") { - const auto expected = Eigen::Matrix3d::Identity(); - - for (auto point : points) { - const auto B = LinearElasticKernel::bMatrix(point, nodes); - - FieldMatrix U; - U.setZero(); - - // Displacements of unit axial strain ε₁₁ - U(Eigen::seq(0, Eigen::indexing::last, 2), 0) = nodes.col(0); - - // Displacements of unit axial strain ε₂₂ - U(Eigen::seq(1, Eigen::indexing::last, 2), 1) = nodes.col(1); - - // Displacements of unit shear strain ε₁₂ - U(Eigen::seq(0, Eigen::indexing::last, 2), 2) = 0.5 * nodes.col(1); - U(Eigen::seq(1, Eigen::indexing::last, 2), 2) = 0.5 * nodes.col(0); - - REQUIRE((B * U).isApprox(expected, NUMERICAL_ZERO)); - } - } - - SECTION("BU=0 for rigid body transformations") { - for (auto point : points) { - const auto B = LinearElasticKernel::bMatrix(point, nodes); - - FieldMatrix U; - U.setZero(); - - // Unit x translation - U(Eigen::seq(0, Eigen::indexing::last, 2), 0).setOnes(); - - // Unit y translation - U(Eigen::seq(1, Eigen::indexing::last, 2), 1).setOnes(); - - // 90° ccw rotation - U(Eigen::seq(0, Eigen::indexing::last, 2), 2) = -nodes.col(1); - U(Eigen::seq(1, Eigen::indexing::last, 2), 2) = nodes.col(0); - - REQUIRE((B * U).isZero(NUMERICAL_ZERO)); - } - } - - SECTION("Invalid element - degenerate element") { - nodes = 0.0 * nodes; - - const auto point = nodes.row(0); - - REQUIRE_THROWS_AS(LinearElasticKernel::bMatrix(point, nodes), std::invalid_argument); - } - - SECTION("Invalid element - reverse node ordering") { - nodes = nodes.rowwise().reverse(); - - const auto point = nodes.row(0); - - REQUIRE_THROWS_AS(LinearElasticKernel::bMatrix(point, nodes), std::invalid_argument); - } -} - -TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (2d): Test lhs/rhs", "[monad]", Types) { - using FieldMatrix = typename LinearElasticKernel::FieldMatrix; - - const LinearElasticMaterial2d material(1.0, 0.3, LinearElasticMaterial2d::PlaneCondition::PlaneStress); - auto nodes = TestType::localNodes(); - - SECTION("No errors") { - const auto K = LinearElasticKernel::lhs(material, nodes); - - REQUIRE(isSymmetric(K)); - REQUIRE(isPSD(K)); - - SECTION("UᵀKU=UᵀF=0 for rigid body transformations") { - const FieldMatrix F = LinearElasticKernel::rhs(material, nodes); - - FieldMatrix U; - U.setZero(); - - // Unit x translation - U(Eigen::seq(0, Eigen::indexing::last, 2), 0).setOnes(); - - // Unit y translation - U(Eigen::seq(1, Eigen::indexing::last, 2), 1).setOnes(); - - // 90° ccw rotation - U(Eigen::seq(0, Eigen::indexing::last, 2), 2) = -nodes.col(1); - U(Eigen::seq(1, Eigen::indexing::last, 2), 2) = nodes.col(0); - - REQUIRE((U.transpose() * K * U).isZero(NUMERICAL_ZERO)); - REQUIRE((U.transpose() * F).isZero(NUMERICAL_ZERO)); - } - } - - SECTION("Invalid element - degenerate element") { - nodes = 0.0 * nodes; - - REQUIRE_THROWS_AS(LinearElasticKernel::lhs(material, nodes), std::invalid_argument); - REQUIRE_THROWS_AS(LinearElasticKernel::rhs(material, nodes), std::invalid_argument); - } - - SECTION("Invalid element - reverse node ordering") { - nodes = nodes.rowwise().reverse(); - - REQUIRE_THROWS_AS(LinearElasticKernel::lhs(material, nodes), std::invalid_argument); - REQUIRE_THROWS_AS(LinearElasticKernel::rhs(material, nodes), std::invalid_argument); - } -} diff --git a/tests/fem/kernel/mechanical/linear_elastic_kernel_3d_test.cpp b/tests/fem/kernel/mechanical/linear_elastic_kernel_test.cpp similarity index 56% rename from tests/fem/kernel/mechanical/linear_elastic_kernel_3d_test.cpp rename to tests/fem/kernel/mechanical/linear_elastic_kernel_test.cpp index 43a00f3..389dd06 100644 --- a/tests/fem/kernel/mechanical/linear_elastic_kernel_3d_test.cpp +++ b/tests/fem/kernel/mechanical/linear_elastic_kernel_test.cpp @@ -4,7 +4,10 @@ #include #include "monad/fem/element/hex8.hpp" #include "monad/fem/element/hex20.hpp" +#include "monad/fem/element/quad4.hpp" +#include "monad/fem/element/quad8.hpp" #include "monad/fem/kernel/mechanical/linear_elastic_kernel.hpp" +#include "monad/material/mechanical/linear_elastic_material_2d.hpp" #include "monad/material/mechanical/linear_elastic_material_3d.hpp" #include "monad/detail/eigen_utils.hpp" #include "monad/detail/constants.hpp" @@ -14,9 +17,75 @@ using namespace monad::fem; using namespace monad::fem::mechanical; using namespace monad::detail; -using Types = std::tuple; +using Types2d = std::tuple; +using Types3d = std::tuple; -TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (3d): Test bMatrix", "[monad]", Types) { +TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (2d): Test bMatrix", "[monad]", Types2d) { + using FieldMatrix = typename LinearElasticKernel::FieldMatrix; + + auto nodes = TestType::localNodes(); + const auto points = TestType::quadratureRule().points; + + SECTION("BU=ε for unit strains") { + const auto expected = Eigen::Matrix3d::Identity(); + + for (auto point : points) { + const auto B = LinearElasticKernel::bMatrix(point, nodes); + + FieldMatrix U = FieldMatrix::Zero(); + + // Displacements of unit axial strain ε₁₁ + U(Eigen::seq(0, Eigen::indexing::last, 2), 0) = nodes.col(0); + + // Displacements of unit axial strain ε₂₂ + U(Eigen::seq(1, Eigen::indexing::last, 2), 1) = nodes.col(1); + + // Displacements of unit shear strain ε₁₂ + U(Eigen::seq(0, Eigen::indexing::last, 2), 2) = 0.5 * nodes.col(1); + U(Eigen::seq(1, Eigen::indexing::last, 2), 2) = 0.5 * nodes.col(0); + + REQUIRE((B * U).isApprox(expected, NUMERICAL_ZERO)); + } + } + + SECTION("BU=0 for rigid body transformations") { + for (auto point : points) { + const auto B = LinearElasticKernel::bMatrix(point, nodes); + + FieldMatrix U = FieldMatrix::Zero(); + + // Unit x translation + U(Eigen::seq(0, Eigen::indexing::last, 2), 0).setOnes(); + + // Unit y translation + U(Eigen::seq(1, Eigen::indexing::last, 2), 1).setOnes(); + + // 90° ccw rotation + U(Eigen::seq(0, Eigen::indexing::last, 2), 2) = -nodes.col(1); + U(Eigen::seq(1, Eigen::indexing::last, 2), 2) = nodes.col(0); + + REQUIRE((B * U).isZero(NUMERICAL_ZERO)); + } + } + + SECTION("Invalid element - degenerate element") { + nodes = 0.0 * nodes; + + const auto point = nodes.row(0); + + REQUIRE_THROWS_AS(LinearElasticKernel::bMatrix(point, nodes), std::invalid_argument); + } + + SECTION("Invalid element - reverse node ordering") { + nodes = nodes.rowwise().reverse(); + + const auto point = nodes.row(0); + + REQUIRE_THROWS_AS(LinearElasticKernel::bMatrix(point, nodes), std::invalid_argument); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (3d): Test bMatrix", "[monad]", Types3d) { using FieldMatrix = typename LinearElasticKernel::FieldMatrix; auto nodes = TestType::localNodes(); @@ -28,8 +97,7 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (3d): Test for (auto point : points) { const auto B = LinearElasticKernel::bMatrix(point, nodes); - FieldMatrix U; - U.setZero(); + FieldMatrix U = FieldMatrix::Zero(); // Displacements of unit axial strain ε₁₁ U(Eigen::seq(0, Eigen::indexing::last, 3), 0) = nodes.col(0); @@ -60,8 +128,7 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (3d): Test for (auto point : points) { auto B = LinearElasticKernel::bMatrix(point, nodes); - FieldMatrix U; - U.setZero(); + FieldMatrix U = FieldMatrix::Zero(); // Unit x translation U(Eigen::seq(0, Eigen::indexing::last, 3), 0).setOnes(); @@ -105,7 +172,54 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (3d): Test } } -TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (3d): Test lhs", "[monad]", Types) { +TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (2d): Test lhs/rhs", "[monad]", Types2d) { + using FieldMatrix = typename LinearElasticKernel::FieldMatrix; + + const LinearElasticMaterial2d material(1.0, 0.3, LinearElasticMaterial2d::PlaneCondition::PlaneStress); + auto nodes = TestType::localNodes(); + + SECTION("No errors") { + const auto K = LinearElasticKernel::lhs(material, nodes); + + REQUIRE(isSymmetric(K)); + REQUIRE(isPSD(K)); + + SECTION("UᵀKU=UᵀF=0 for rigid body transformations") { + const FieldMatrix F = LinearElasticKernel::rhs(material, nodes); + + FieldMatrix U = FieldMatrix::Zero(); + + // Unit x translation + U(Eigen::seq(0, Eigen::indexing::last, 2), 0).setOnes(); + + // Unit y translation + U(Eigen::seq(1, Eigen::indexing::last, 2), 1).setOnes(); + + // 90° ccw rotation + U(Eigen::seq(0, Eigen::indexing::last, 2), 2) = -nodes.col(1); + U(Eigen::seq(1, Eigen::indexing::last, 2), 2) = nodes.col(0); + + REQUIRE((U.transpose() * K * U).isZero(NUMERICAL_ZERO)); + REQUIRE((U.transpose() * F).isZero(NUMERICAL_ZERO)); + } + } + + SECTION("Invalid element - degenerate element") { + nodes = 0.0 * nodes; + + REQUIRE_THROWS_AS(LinearElasticKernel::lhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(LinearElasticKernel::rhs(material, nodes), std::invalid_argument); + } + + SECTION("Invalid element - reverse node ordering") { + nodes = nodes.rowwise().reverse(); + + REQUIRE_THROWS_AS(LinearElasticKernel::lhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(LinearElasticKernel::rhs(material, nodes), std::invalid_argument); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (3d): Test lhs", "[monad]", Types3d) { using FieldMatrix = typename LinearElasticKernel::FieldMatrix; const LinearElasticMaterial3d material(1.0, 0.3); @@ -120,8 +234,7 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticKernel (3d): Test SECTION("UᵀKU=UᵀF=0 for rigid body transformations") { const FieldMatrix F = LinearElasticKernel::rhs(material, nodes); - FieldMatrix U; - U.setZero(); + FieldMatrix U = FieldMatrix::Zero(); // Unit x translation U(Eigen::seq(0, Eigen::indexing::last, 3), 0).setOnes(); diff --git a/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_2d_test.cpp b/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_2d_test.cpp deleted file mode 100644 index d285a96..0000000 --- a/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_2d_test.cpp +++ /dev/null @@ -1,98 +0,0 @@ -#include -#include -#include -#include -#include "monad/fem/element/quad4.hpp" -#include "monad/fem/element/quad8.hpp" -#include "monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp" -#include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/material/transport/linear_transport_material_aliases.hpp" -#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" -#include "monad/detail/eigen_utils.hpp" -#include "monad/detail/constants.hpp" - -using namespace monad; -using namespace monad::fem; -using namespace monad::fem::mechanical; -using namespace monad::fem::scalar; -using namespace monad::fem::multiphysics; -using namespace monad::detail; - -using Types = std::tuple; - -TEMPLATE_LIST_TEST_CASE("monad::fem::electrical::LinearPiezoelectricKernel (2d): Test lhs/rhs", "[monad]", Types) { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; - - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const LinearPiezoelectricMaterial2d material(elasticMaterial, dielectricMaterial, d); - - auto nodes = TestType::localNodes(); - - SECTION("No errors") { - const auto K = LinearPiezoelectricKernel::lhs(material, nodes); - - REQUIRE(isSymmetric(K)); - REQUIRE(!isPSD(K)); - - SECTION("xᵀKx=xᵀF=0 for rigid body transformations") { - using FieldVector = Eigen::Vector::NumDofs>; - using MechanicalKernel = typename LinearPiezoelectricKernel::MechanicalKernel; - - const auto F = LinearPiezoelectricKernel::rhs(material, nodes); - - FieldVector x; - - const int numMechanicalDofs = MechanicalKernel::NumDofs; - - // Unit x translation - x.setZero(); - x(Eigen::seq(0, numMechanicalDofs - 1, 2)).setOnes(); - - REQUIRE((x.transpose() * K * x).isZero(NUMERICAL_ZERO)); - REQUIRE((x.transpose() * F).isZero(NUMERICAL_ZERO)); - - // Unit y translation - x.setZero(); - x(Eigen::seq(1, numMechanicalDofs - 1, 2)).setOnes(); - - REQUIRE((x.transpose() * K * x).isZero(NUMERICAL_ZERO)); - REQUIRE((x.transpose() * F).isZero(NUMERICAL_ZERO)); - - // 90° ccw rotation - x.setZero(); - x(Eigen::seq(0, numMechanicalDofs - 1, 2)) = -nodes.col(1); - x(Eigen::seq(1, numMechanicalDofs - 1, 2)) = nodes.col(0); - - REQUIRE((x.transpose() * K * x).isZero(NUMERICAL_ZERO)); - REQUIRE((x.transpose() * F).isZero(NUMERICAL_ZERO)); - - // Unit electrical translation - x.setZero(); - x(Eigen::seq(numMechanicalDofs, Eigen::indexing::last)).setOnes(); - - REQUIRE((x.transpose() * K * x).isZero(NUMERICAL_ZERO)); - REQUIRE((x.transpose() * F).isZero(NUMERICAL_ZERO)); - } - } - - SECTION("Invalid element - degenerate element") { - nodes = 0.0 * nodes; - - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::lhs(material, nodes), std::invalid_argument); - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::rhs(material, nodes), std::invalid_argument); - } - - SECTION("Invalid element - reverse node ordering") { - nodes = nodes.rowwise().reverse(); - - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::lhs(material, nodes), std::invalid_argument); - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::rhs(material, nodes), std::invalid_argument); - } -} diff --git a/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_3d_test.cpp b/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_test.cpp similarity index 57% rename from tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_3d_test.cpp rename to tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_test.cpp index 2504960..83e1481 100644 --- a/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_3d_test.cpp +++ b/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_test.cpp @@ -4,10 +4,12 @@ #include #include "monad/fem/element/hex8.hpp" #include "monad/fem/element/hex20.hpp" +#include "monad/fem/element/quad4.hpp" +#include "monad/fem/element/quad8.hpp" #include "monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp" +#include "monad/material/mechanical/linear_elastic_material_2d.hpp" #include "monad/material/mechanical/linear_elastic_material_3d.hpp" -#include "monad/material/transport/linear_transport_material_aliases.hpp" -#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" +#include "monad/material/material_aliases.hpp" #include "monad/detail/eigen_utils.hpp" #include "monad/detail/constants.hpp" @@ -17,10 +19,89 @@ using namespace monad::fem::mechanical; using namespace monad::fem::scalar; using namespace monad::fem::multiphysics; using namespace monad::detail; +using namespace monad::material; -using Types = std::tuple; +using Types2d = std::tuple; +using Types3d = std::tuple; -TEMPLATE_LIST_TEST_CASE("monad::fem::electrical::LinearPiezoelectricKernel (3d): Test lhs/rhs", "[monad]", Types) { +TEMPLATE_LIST_TEST_CASE("monad::fem::electrical::LinearPiezoelectricKernel (2d): Test lhs/rhs", "[monad]", Types2d) { + using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; + + const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); + const LinearDielectricMaterial2d dielectricMaterial(2.1); + + const CouplingTensor d { + {0.01, 0.0, 0.0}, + {0.0, 0.01, 0.01} + }; + + const LinearPiezoelectricMaterial2d material(elasticMaterial, dielectricMaterial, d); + + auto nodes = TestType::localNodes(); + + SECTION("No errors") { + const auto K = LinearPiezoelectricKernel::lhs(material, nodes); + + REQUIRE(isSymmetric(K)); + REQUIRE(!isPSD(K)); + + SECTION("xᵀKx=xᵀF=0 for rigid body transformations") { + using FieldVector = Eigen::Vector::NumDofs>; + using MechanicalKernel = typename LinearPiezoelectricKernel::MechanicalKernel; + + const auto F = LinearPiezoelectricKernel::rhs(material, nodes); + + FieldVector x; + + const int numMechanicalDofs = MechanicalKernel::NumDofs; + + // Unit x translation + x.setZero(); + x(Eigen::seq(0, numMechanicalDofs - 1, 2)).setOnes(); + + REQUIRE((x.transpose() * K * x).isZero(NUMERICAL_ZERO)); + REQUIRE((x.transpose() * F).isZero(NUMERICAL_ZERO)); + + // Unit y translation + x.setZero(); + x(Eigen::seq(1, numMechanicalDofs - 1, 2)).setOnes(); + + REQUIRE((x.transpose() * K * x).isZero(NUMERICAL_ZERO)); + REQUIRE((x.transpose() * F).isZero(NUMERICAL_ZERO)); + + // 90° ccw rotation + x.setZero(); + x(Eigen::seq(0, numMechanicalDofs - 1, 2)) = -nodes.col(1); + x(Eigen::seq(1, numMechanicalDofs - 1, 2)) = nodes.col(0); + + REQUIRE((x.transpose() * K * x).isZero(NUMERICAL_ZERO)); + REQUIRE((x.transpose() * F).isZero(NUMERICAL_ZERO)); + + // Unit electrical translation + x.setZero(); + x(Eigen::seq(numMechanicalDofs, Eigen::indexing::last)).setOnes(); + + REQUIRE((x.transpose() * K * x).isZero(NUMERICAL_ZERO)); + REQUIRE((x.transpose() * F).isZero(NUMERICAL_ZERO)); + } + } + + SECTION("Invalid element - degenerate element") { + nodes = 0.0 * nodes; + + REQUIRE_THROWS_AS(LinearPiezoelectricKernel::lhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(LinearPiezoelectricKernel::rhs(material, nodes), std::invalid_argument); + } + + SECTION("Invalid element - reverse node ordering") { + nodes = nodes.rowwise().reverse(); + + REQUIRE_THROWS_AS(LinearPiezoelectricKernel::lhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(LinearPiezoelectricKernel::rhs(material, nodes), std::invalid_argument); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::fem::electrical::LinearPiezoelectricKernel (3d): Test lhs/rhs", "[monad]", Types3d) { using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); diff --git a/tests/fem/kernel/scalar/linear_scalar_diffusion_kernel_test.cpp b/tests/fem/kernel/scalar/linear_scalar_diffusion_kernel_test.cpp index a48b722..6c1b796 100644 --- a/tests/fem/kernel/scalar/linear_scalar_diffusion_kernel_test.cpp +++ b/tests/fem/kernel/scalar/linear_scalar_diffusion_kernel_test.cpp @@ -15,6 +15,7 @@ using namespace monad; using namespace monad::fem; using namespace monad::fem::scalar; using namespace monad::detail; +using namespace monad::material; using Types = std::tuple< LinearScalarDiffusiveKernel, diff --git a/tests/fem/operator/mechanical/linear_elastic_matrix_free_operator_test.cpp b/tests/fem/operator/mechanical/linear_elastic_dof_traits_test.cpp similarity index 64% rename from tests/fem/operator/mechanical/linear_elastic_matrix_free_operator_test.cpp rename to tests/fem/operator/mechanical/linear_elastic_dof_traits_test.cpp index cedaa94..7e0b0be 100644 --- a/tests/fem/operator/mechanical/linear_elastic_matrix_free_operator_test.cpp +++ b/tests/fem/operator/mechanical/linear_elastic_dof_traits_test.cpp @@ -1,25 +1,25 @@ #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" +#include "monad/grid/grid_aliases.hpp" +#include "monad/field/density_field.hpp" #include "monad/fem/kernel/mechanical/linear_elastic_kernel.hpp" +#include "monad/fem/operator/mechanical/linear_elastic_dof_traits.hpp" #include "monad/fem/operator/matrix_free_operator.hpp" -#include "monad/fem/operator/mechanical/linear_elastic_matrix_free_operator_traits.hpp" using namespace monad; +using namespace monad::field; using namespace monad::fem; using namespace monad::fem::mechanical; using Types = std::tuple; -TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticMatrixFreeOperator: Test isSymmetric/isPSD", "[monad]", Types) { +TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical: Test LinearElasticDofTraits", "[monad]", Types) { using Resolution = typename TestType::Resolution; using Size = typename TestType::Size; using Element = typename TestType::Element; using Kernel = LinearElasticKernel; - using Operator = MatrixFreeOperator>; + using Traits = LinearElasticDofTraits; + using Operator = MatrixFreeOperator; using Material = typename Kernel::Material; using StiffnessTensor = typename Material::MaterialTensor; @@ -29,8 +29,10 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticMatrixFreeOperator Size size; size.fill(0.5); - TestType grid(resolution, size); - grid.setDensitiesRandom(1234); + const TestType grid(resolution, size); + + DensityField densityField(resolution); + densityField.setRandom(1234); StiffnessTensor C = StiffnessTensor::Random(); // Make PSD @@ -43,7 +45,7 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::mechanical::LinearElasticMatrixFreeOperator const auto nodes = grid.elementNodes(0); const auto elementKReference = Kernel::lhs(material, nodes); - const Operator K(grid, elementKReference); + const Operator K(grid, densityField, elementKReference); REQUIRE(K.isSymmetric()); REQUIRE(K.isPSD()); diff --git a/tests/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_test.cpp b/tests/fem/operator/multiphysics/linear_piezoelectric_dof_traits_test.cpp similarity index 70% rename from tests/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_test.cpp rename to tests/fem/operator/multiphysics/linear_piezoelectric_dof_traits_test.cpp index 7d900af..daa2901 100644 --- a/tests/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_test.cpp +++ b/tests/fem/operator/multiphysics/linear_piezoelectric_dof_traits_test.cpp @@ -1,17 +1,16 @@ #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" +#include "monad/grid/grid_aliases.hpp" +#include "monad/field/density_field.hpp" #include "monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp" #include "monad/fem/operator/matrix_free_operator.hpp" -#include "monad/fem/operator/multiphysics/linear_piezoelectric_matrix_free_operator_traits.hpp" +#include "monad/fem/operator/multiphysics/linear_piezoelectric_dof_traits.hpp" #include "monad/material/mechanical/linear_elastic_material_2d.hpp" #include "monad/material/mechanical/linear_elastic_material.hpp" #include "monad/material/transport/linear_transport_material.hpp" using namespace monad; +using namespace monad::field; using namespace monad::fem; using namespace monad::fem::multiphysics; @@ -22,9 +21,10 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::multiphysics::LinearPiezoelectricMatrixFree using Size = typename TestType::Size; using Element = typename TestType::Element; using Kernel = LinearPiezoelectricKernel; - using Operator = MatrixFreeOperator>; - using MechanicalMaterial = LinearElasticMaterial; - using ElectricalMaterial = LinearTransportMaterial; + using Traits = LinearPiezoelectricDofTraits; + using Operator = MatrixFreeOperator; + using MechanicalMaterial = typename Kernel::MechanicalMaterial; + using ElectricalMaterial = typename Kernel::ElectricalMaterial; using Material = typename Kernel::Material; using StiffnessTensor = typename MechanicalMaterial::MaterialTensor; using CouplingTensor = typename Material::CouplingTensor; @@ -35,8 +35,10 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::multiphysics::LinearPiezoelectricMatrixFree Size size; size.fill(0.5); - TestType grid(resolution, size); - grid.setDensitiesRandom(1234); + const TestType grid(resolution, size); + + DensityField densityField(resolution); + densityField.setRandom(1234); StiffnessTensor c = StiffnessTensor::Random(); // Make PSD @@ -47,14 +49,14 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::multiphysics::LinearPiezoelectricMatrixFree const MechanicalMaterial elasticMaterial(c); const ElectricalMaterial dielectricMaterial(2.1); - const CouplingTensor d = 0.1 * CouplingTensor::Random(); + const CouplingTensor d = CouplingTensor::Constant(0.01); const Material material(elasticMaterial, dielectricMaterial, d); const auto nodes = grid.elementNodes(0); const auto elementKReference = Kernel::lhs(material, nodes); - const Operator K(grid, elementKReference); + const Operator K(grid, densityField, elementKReference); REQUIRE(K.isSymmetric()); REQUIRE(!K.isPSD()); diff --git a/tests/fem/operator/scalar/linear_scalar_diffusion_matrix_free_operator_traits_test.cpp b/tests/fem/operator/scalar/linear_scalar_diffusion_dof_traits_test.cpp similarity index 71% rename from tests/fem/operator/scalar/linear_scalar_diffusion_matrix_free_operator_traits_test.cpp rename to tests/fem/operator/scalar/linear_scalar_diffusion_dof_traits_test.cpp index 8a14a71..ce69051 100644 --- a/tests/fem/operator/scalar/linear_scalar_diffusion_matrix_free_operator_traits_test.cpp +++ b/tests/fem/operator/scalar/linear_scalar_diffusion_dof_traits_test.cpp @@ -1,14 +1,13 @@ #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" +#include "monad/grid/grid_aliases.hpp" +#include "monad/field/density_field.hpp" #include "monad/fem/kernel/scalar/linear_scalar_diffusive_kernel.hpp" #include "monad/fem/operator/matrix_free_operator.hpp" -#include "monad/fem/operator/scalar/linear_scalar_diffusive_matrix_free_operator_traits.hpp" +#include "monad/fem/operator/scalar/linear_scalar_diffusive_dof_traits.hpp" using namespace monad; +using namespace monad::field; using namespace monad::fem; using namespace monad::fem::scalar; @@ -29,13 +28,14 @@ using Types = std::tuple< TypePair >; -TEMPLATE_LIST_TEST_CASE("monad::fem::scalar::LinearScalarDiffusiveMatrixFreeOperator: Test isSymmetric/isPSD", "[monad]", Types) { +TEMPLATE_LIST_TEST_CASE("monad::fem::scalar: Test LinearScalarDiffusiveDofTraits", "[monad]", Types) { using Grid = typename TestType::Grid; using Resolution = typename Grid::Resolution; using Size = typename Grid::Size; using Element = typename Grid::Element; using Kernel = LinearScalarDiffusiveKernel; - using Operator = MatrixFreeOperator; + using Traits = LinearScalarDiffusiveDofTraits; + using Operator = MatrixFreeOperator; using Material = typename Kernel::Material; Resolution resolution; @@ -44,15 +44,17 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::scalar::LinearScalarDiffusiveMatrixFreeOper Size size; size.fill(0.5); - Grid grid(resolution, size); - grid.setDensitiesRandom(1234); + const Grid grid(resolution, size); + + DensityField densityField(resolution); + densityField.setRandom(1234); const Material material(2.1); const auto nodes = grid.elementNodes(0); const auto elementKReference = Kernel::lhs(material, nodes); - const Operator K(grid, elementKReference); + const Operator K(grid, densityField, elementKReference); REQUIRE(K.isSymmetric()); REQUIRE(K.isPSD()); diff --git a/tests/field/csv/bad1.csv b/tests/field/csv/bad1.csv new file mode 100644 index 0000000..241f5ef --- /dev/null +++ b/tests/field/csv/bad1.csv @@ -0,0 +1,3 @@ +0.1,0.2 +-0.3,0.4 +0.5,0.6 \ No newline at end of file diff --git a/tests/field/csv/bad2.csv b/tests/field/csv/bad2.csv new file mode 100644 index 0000000..eab3b9a --- /dev/null +++ b/tests/field/csv/bad2.csv @@ -0,0 +1,3 @@ +0.1,0.2 +1.3,0.4 +0.5,0.6 \ No newline at end of file diff --git a/tests/field/csv/bad3.csv b/tests/field/csv/bad3.csv new file mode 100644 index 0000000..9865b54 --- /dev/null +++ b/tests/field/csv/bad3.csv @@ -0,0 +1,3 @@ +0.1,0.2 +0.3,0.4 +0.5 \ No newline at end of file diff --git a/tests/field/csv/bad4.csv b/tests/field/csv/bad4.csv new file mode 100644 index 0000000..5dba4a4 --- /dev/null +++ b/tests/field/csv/bad4.csv @@ -0,0 +1,4 @@ +0.1,0.2 +0.3,0.4 +0.5,0.6 +0.7 \ No newline at end of file diff --git a/tests/field/csv/bad5.csv b/tests/field/csv/bad5.csv new file mode 100644 index 0000000..e69de29 diff --git a/tests/field/csv/bad6.csv b/tests/field/csv/bad6.csv new file mode 100644 index 0000000..8e7dbf5 --- /dev/null +++ b/tests/field/csv/bad6.csv @@ -0,0 +1,3 @@ +0.1,0.2 +a,0.4 +0.5,0.6 \ No newline at end of file diff --git a/tests/field/csv/good.csv b/tests/field/csv/good.csv new file mode 100644 index 0000000..92463aa --- /dev/null +++ b/tests/field/csv/good.csv @@ -0,0 +1,3 @@ +0.5,0.6 +0.3,0.4 +0.1,0.2 \ No newline at end of file diff --git a/tests/field/density_field_test.cpp b/tests/field/density_field_test.cpp new file mode 100644 index 0000000..fda5957 --- /dev/null +++ b/tests/field/density_field_test.cpp @@ -0,0 +1,282 @@ +#include +#include +#include +#include +#include +#include +#include +#include "monad/field/field_aliases.hpp" +#include "monad/detail/constants.hpp" + +using namespace monad; + +using Types = std::tuple; + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test initalization", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + SECTION("Invalid resolution") { + for (std::size_t i = 0; i < TestType::Dim; ++i) { + Resolution resolutionInvalid = resolution; + resolutionInvalid[i] = 0; + + REQUIRE_THROWS_AS(TestType(resolutionInvalid), std::invalid_argument); + } + } +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test resolution", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + const TestType densityField(resolution); + + const Resolution actual = densityField.resolution(); + + REQUIRE(actual == resolution); +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test numElements", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + const TestType densityField(resolution); + + const std::size_t actual = static_cast(std::pow(2.0, TestType::Dim)); + const std::size_t expected = densityField.numElements(); + + REQUIRE(actual == expected); +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test densities", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using DensityList = typename TestType::DensityList; + + Resolution resolution; + resolution.fill(2); + + const TestType densityField(resolution); + + const DensityList actual(densityField.numElements(), NUMERICAL_ZERO); + const DensityList expected = densityField.densities(); + + REQUIRE_THAT(actual, Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test getDensity/setDensity", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + TestType densityField(resolution); + + SECTION("No errors") { + REQUIRE_THAT(densityField.getDensity(1), Catch::Matchers::WithinAbs(NUMERICAL_ZERO, NUMERICAL_ZERO)); + + densityField.setDensity(1, 0.4); + + REQUIRE_THAT(densityField.getDensity(1), Catch::Matchers::WithinAbs(0.4, NUMERICAL_ZERO)); + } + + SECTION("Invalid index") { + const std::size_t badIndex = densityField.numElements(); + + REQUIRE_THROWS_AS(densityField.getDensity(badIndex), std::out_of_range); + REQUIRE_THROWS_AS(densityField.setDensity(badIndex, 0.4), std::out_of_range); + } + + SECTION("Invalid density") { + REQUIRE_THROWS_AS(densityField.setDensity(0, -0.1), std::invalid_argument); + REQUIRE_THROWS_AS(densityField.setDensity(0, 1.1), std::invalid_argument); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test setDensities", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using DensityList = typename TestType::DensityList; + + Resolution resolution; + resolution.fill(2); + + TestType densityField(resolution); + + DensityList densities(densityField.numElements(), 0.4); + + SECTION("No errors") { + densityField.setDensities(densities); + + REQUIRE_THAT(densityField.densities(), Catch::Matchers::Approx(densities).margin(NUMERICAL_ZERO)); + } + + SECTION("Invalid density") { + densities[0] = -0.1; + + REQUIRE_THROWS_AS(densityField.setDensities(densities), std::invalid_argument); + + densities[0] = 1.1; + + REQUIRE_THROWS_AS(densityField.setDensities(densities), std::invalid_argument); + } + + SECTION("Invalid size") { + densities.push_back(0.4); + + REQUIRE_THROWS_AS(densityField.setDensities(densities), std::invalid_argument); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test setConstant", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using DensityList = typename TestType::DensityList; + + Resolution resolution; + resolution.fill(2); + + TestType densityField(resolution); + + SECTION("No errors") { + DensityList expected(densityField.numElements(), 0.4); + + densityField.setConstant(0.4); + + REQUIRE_THAT(densityField.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); + } + + SECTION("Invalid density") { + REQUIRE_THROWS_AS(densityField.setConstant(-0.1), std::invalid_argument); + REQUIRE_THROWS_AS(densityField.setConstant(1.1), std::invalid_argument); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test setZeros", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + TestType densityField1(resolution); + TestType densityField2(resolution); + + densityField1.setConstant(0.0); + densityField2.setZeros(); + + REQUIRE(densityField1 == densityField2); +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test setOnes", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + TestType densityField1(resolution); + TestType densityField2(resolution); + + densityField1.setConstant(1.0); + densityField2.setOnes(); + + REQUIRE(densityField1 == densityField2); +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test setRandom", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using DensityList = typename TestType::DensityList; + + Resolution resolution; + resolution.fill(2); + + TestType densityField(resolution); + + densityField.setRandom(1234); + + if constexpr (TestType::Dim == 2) { + DensityList expected{ + 0.19151945020806033, + 0.49766366637723142, + 0.62210876648829061, + 0.8178384429351051, + }; + + REQUIRE_THAT(densityField.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); + } + + else { + DensityList expected{ + 0.19151945020806033, + 0.49766366637723142, + 0.62210876648829061, + 0.8178384429351051, + 0.43772773734240972, + 0.61211189362502472, + 0.78535858373748102, + 0.77135991905149071 + }; + + REQUIRE_THAT(densityField.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test translate", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + TestType densityField(resolution); + + densityField.setDensity(1, 0.4); + + if constexpr (TestType::Dim == 2) { + // Pre-shift: Point=(1,0) → Index=1 + // Post-shift: Point=(0,0) → Index=0 + densityField.translate({1, 2}); + + REQUIRE_THAT(densityField.getDensity(0), Catch::Matchers::WithinAbs(0.4, NUMERICAL_ZERO)); + } + + else { + // Pre-shift: Point=(1,0,0) → Index=1 + // Post-shift: Point=(0,0,1) → Index=4 + densityField.translate({1, 2, 3}); + + REQUIRE_THAT(densityField.getDensity(4), Catch::Matchers::WithinAbs(0.4, NUMERICAL_ZERO)); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test operator==", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + TestType densityField1(resolution); + densityField1.setConstant(0.4); + + TestType densityField2(resolution); + densityField2.setConstant(0.4); + + REQUIRE(densityField1 == densityField2); +} + +TEMPLATE_LIST_TEST_CASE("monad::DensityField: Test operator!=", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + + Resolution resolution; + resolution.fill(2); + + TestType densityField1(resolution); + densityField1.setConstant(0.4); + + TestType densityField2(resolution); + densityField2.setConstant(0.5); + + REQUIRE(densityField1 != densityField2); +} diff --git a/tests/field/make_density_field_from_csv_test.cpp b/tests/field/make_density_field_from_csv_test.cpp new file mode 100644 index 0000000..d7407f8 --- /dev/null +++ b/tests/field/make_density_field_from_csv_test.cpp @@ -0,0 +1,66 @@ +#include +#include +#include +#include +#include +#include "monad/field/field_aliases.hpp" +#include "monad/field/make_density_field_from_csv.hpp" + +using namespace monad; + +TEST_CASE("monad: Test makeDensityFieldFromCsv", "[monad]") { + using DensityList = typename DensityField2d::DensityList; + + DensityField2d densityField({2, 3}); + + const auto folder = std::filesystem::path(__FILE__).parent_path() / "csv"; + + SECTION("No errors") { + const auto file = folder / "good.csv"; + + auto densityField = makeDensityFieldFromCsv(file.string()); + + const DensityList expected { + 0.1, + 0.2, + 0.3, + 0.4, + 0.5, + 0.6 + }; + + REQUIRE_THAT(densityField.densities(), Catch::Matchers::Approx(expected).margin(NUMERICAL_ZERO)); + } + + SECTION("Invalid csv data") { + // data < 0 + auto file = folder / "bad1.csv"; + + REQUIRE_THROWS_AS(makeDensityFieldFromCsv(file.string()), std::runtime_error); + + // data > 1 + file = folder / "bad2.csv"; + + REQUIRE_THROWS_AS(makeDensityFieldFromCsv(file.string()), std::runtime_error); + + // not enough data + file = folder / "bad3.csv"; + + REQUIRE_THROWS_AS(makeDensityFieldFromCsv(file.string()), std::runtime_error); + + // too much data + file = folder / "bad4.csv"; + + REQUIRE_THROWS_AS(makeDensityFieldFromCsv(file.string()), std::runtime_error); + + // no data + file = folder / "bad5.csv"; + + REQUIRE_THROWS_AS(makeDensityFieldFromCsv(file.string()), std::runtime_error); + + // non-numeric data + file = folder / "bad6.csv"; + + REQUIRE_THROWS_AS(makeDensityFieldFromCsv(file.string()), std::runtime_error); + } +} diff --git a/tests/field/make_density_field_from_function_test.cpp b/tests/field/make_density_field_from_function_test.cpp new file mode 100644 index 0000000..2487e9e --- /dev/null +++ b/tests/field/make_density_field_from_function_test.cpp @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include "monad/grid/grid_aliases.hpp" +#include "monad/field/make_density_field_from_function.hpp" + +using namespace monad; + +using Types = std::tuple; + +TEMPLATE_LIST_TEST_CASE("monad: Test makeDensityFieldFromFunction", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + using Point = typename TestType::Point; + + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.4); + + const TestType grid(resolution, size); + + SECTION("No errors") { + // f(x)=0.1Σᵢxᵢ + auto f = [](const Point &x) -> double { + return 0.1 * x.sum(); + }; + + const auto densityField = makeDensityFieldFromFunction(grid, f); + + // The average of a linear function over a convex region equals its value at the centroid + const auto nodes = grid.elementNodes(1); + const Point centroid = nodes.colwise().mean(); + const double expected = f(centroid); + + REQUIRE_THAT(densityField.getDensity(1), Catch::Matchers::WithinAbs(expected, NUMERICAL_ZERO)); + } + + SECTION("Bad function") { + // f(x)=exp(Σᵢxᵢ) + auto f = [](const Point &x) -> double { + return std::exp(x.sum()); + }; + + REQUIRE_THROWS_AS(makeDensityFieldFromFunction(grid, f), std::invalid_argument); + } +} diff --git a/tests/grid/structured_grid_test.cpp b/tests/grid/structured_grid_test.cpp index e9b1ea4..479474d 100644 --- a/tests/grid/structured_grid_test.cpp +++ b/tests/grid/structured_grid_test.cpp @@ -5,17 +5,12 @@ #include #include #include -#include "monad/grid/structured_grid.hpp" -#include "monad/grid/quad4_topology.hpp" -#include "monad/grid/quad8_topology.hpp" -#include "monad/grid/hex8_topology.hpp" -#include "monad/grid/hex20_topology.hpp" +#include "monad/grid/grid_aliases.hpp" #include "monad/detail/constants.hpp" using namespace monad; -using namespace monad::grid; -using Types = std::tuple, StructuredGrid, StructuredGrid, StructuredGrid>; +using Types = std::tuple; TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test initalization", "[monad]", Types) { using Resolution = typename TestType::Resolution; @@ -62,9 +57,7 @@ TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test resolution", "[monad] const TestType grid(resolution, size); - const Resolution actual = grid.resolution(); - - REQUIRE(actual == resolution); + REQUIRE(grid.resolution() == resolution); } TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test size", "[monad]", Types) { @@ -79,9 +72,7 @@ TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test size", "[monad]", Typ const TestType grid(resolution, size); - const Size actual = grid.size(); - - REQUIRE(actual == size); + REQUIRE(grid.size() == size); } TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test numElements", "[monad]", Types) { @@ -96,8 +87,8 @@ TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test numElements", "[monad const TestType grid(resolution, size); - const std::size_t actual = static_cast(std::pow(2.0, TestType::Dim)); - const std::size_t expected = grid.numElements(); + const std::size_t expected = static_cast(std::pow(2.0, TestType::Dim)); + const std::size_t actual = grid.numElements(); REQUIRE(actual == expected); } @@ -162,17 +153,17 @@ TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test node", "[monad]", Typ } SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.node(grid.numNodes()), std::out_of_range); + const std::size_t badIndex = grid.numNodes(); + + REQUIRE_THROWS_AS(grid.node(badIndex), std::out_of_range); } } TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { - SECTION("StructuredGrid") { - using NodesList = typename StructuredGrid::NodesList; - - const StructuredGrid grid({2, 3}, {0.5, 1.5}); + SECTION("Quad4Grid") { + using NodesList = typename Quad4Grid::NodesList; - const auto actual = grid.nodes(); + const Quad4Grid grid({2, 3}, {0.5, 1.5}); const NodesList expected { {0.0, 0.0}, @@ -189,6 +180,8 @@ TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { {0.5, 1.5} }; + const auto actual = grid.nodes(); + REQUIRE(actual.size() == expected.size()); for (std::size_t i = 0; i < actual.size(); ++i) { @@ -196,12 +189,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { } } - SECTION("StructuredGrid") { - using NodesList = typename StructuredGrid::NodesList; + SECTION("Quad8Grid") { + using NodesList = typename Quad8Grid::NodesList; - const StructuredGrid grid({2, 3}, {0.5, 1.5}); - - const auto actual = grid.nodes(); + const Quad8Grid grid({2, 3}, {0.5, 1.5}); const NodesList expected { {0.0, 0.0}, @@ -235,6 +226,8 @@ TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { {0.5, 1.25} }; + const auto actual = grid.nodes(); + REQUIRE(actual.size() == expected.size()); for (std::size_t i = 0; i < actual.size(); ++i) { @@ -242,12 +235,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { } } - SECTION("StructuredGrid") { - using NodesList = typename StructuredGrid::NodesList; - - const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Hex8Grid") { + using NodesList = typename Hex8Grid::NodesList; - const auto actual = grid.nodes(); + const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); const NodesList expected { {0.0, 0.0, 0.0}, @@ -312,6 +303,8 @@ TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { {0.5, 1.5, 2.0} }; + const auto actual = grid.nodes(); + REQUIRE(actual.size() == expected.size()); for (std::size_t i = 0; i < actual.size(); ++i) { @@ -319,12 +312,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { } } - SECTION("StructuredGrid") { - using NodesList = typename StructuredGrid::NodesList; - - const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Hex20Grid") { + using NodesList = typename Hex20Grid::NodesList; - const auto actual = grid.nodes(); + const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); const NodesList expected { {0.0, 0.0, 0.0}, @@ -522,6 +513,8 @@ TEST_CASE("monad::grid::StructuredGrid: Test nodes", "[monad]") { {0.5, 1.5, 1.75} }; + const auto actual = grid.nodes(); + REQUIRE(actual.size() == expected.size()); for (std::size_t i = 0; i < actual.size(); ++i) { @@ -552,15 +545,17 @@ TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test element", "[monad]", } SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.element(grid.numElements()), std::out_of_range); + const std::size_t badIndex = grid.numElements(); + + REQUIRE_THROWS_AS(grid.element(badIndex), std::out_of_range); } } TEST_CASE("monad::grid::StructuredGrid: Test elements", "[monad]") { - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3}, {0.5, 1.5}); + SECTION("Quad4Grid") { + const Quad4Grid grid({2, 3}, {0.5, 1.5}); - const StructuredGrid::ElementsList expected { + const Quad4Grid::ElementsList expected { {0, 1, 4, 3}, {1, 2, 5, 4}, {3, 4, 7, 6}, @@ -572,10 +567,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test elements", "[monad]") { REQUIRE(grid.elements() == expected); } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3}, {0.5, 1.5}); + SECTION("Quad8Grid") { + const Quad8Grid grid({2, 3}, {0.5, 1.5}); - const StructuredGrid::ElementsList expected { + const Quad8Grid::ElementsList expected { {0, 1, 4, 3, 12, 21, 14, 20}, {1, 2, 5, 4, 13, 22, 15, 21}, {3, 4, 7, 6, 14, 24, 16, 23}, @@ -587,10 +582,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test elements", "[monad]") { REQUIRE(grid.elements() == expected); } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Hex8Grid") { + const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); - const StructuredGrid::ElementsList expected { + const Hex8Grid::ElementsList expected { {0, 1, 4, 3, 12, 13, 16, 15}, {1, 2, 5, 4, 13, 14, 17, 16}, {3, 4, 7, 6, 15, 16, 19, 18}, @@ -620,10 +615,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test elements", "[monad]") { REQUIRE(grid.elements() == expected); } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Hex20Grid") { + const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); - const StructuredGrid::ElementsList expected { + const Hex20Grid::ElementsList expected { {0, 1, 4, 3, 12, 13, 16, 15, 60, 101, 62, 100, 68, 110, 70, 109, 145, 146, 149, 148}, {1, 2, 5, 4, 13, 14, 17, 16, 61, 102, 63, 101, 69, 111, 71, 110, 146, 147, 150, 149}, {3, 4, 7, 6, 15, 16, 19, 18, 62, 104, 64, 103, 70, 113, 72, 112, 148, 149, 152, 151}, @@ -676,15 +671,17 @@ TEMPLATE_LIST_TEST_CASE("monad::grid::StructuredGrid: Test periodicElement", "[m } SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.element(grid.numElements()), std::out_of_range); + const std::size_t badIndex = grid.numElements(); + + REQUIRE_THROWS_AS(grid.element(badIndex), std::out_of_range); } } TEST_CASE("monad::grid::StructuredGrid: Test periodicElements", "[monad]") { - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3}, {0.5, 1.5}); + SECTION("Quad4Grid") { + const Quad4Grid grid({2, 3}, {0.5, 1.5}); - const StructuredGrid::ElementsList expected { + const Quad4Grid::ElementsList expected { {0, 1, 3, 2}, {1, 0, 2, 3}, {2, 3, 5, 4}, @@ -696,10 +693,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test periodicElements", "[monad]") { REQUIRE(grid.periodicElements() == expected); } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3}, {0.5, 1.5}); + SECTION("Quad8Grid") { + const Quad8Grid grid({2, 3}, {0.5, 1.5}); - const StructuredGrid::ElementsList expected { + const Quad8Grid::ElementsList expected { {0, 1, 3, 2, 6, 13, 8, 12}, {1, 0, 2, 3, 7, 12, 9, 13}, {2, 3, 5, 4, 8, 15, 10, 14}, @@ -711,10 +708,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test periodicElements", "[monad]") { REQUIRE(grid.periodicElements() == expected); } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Hex8Grid") { + const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); - const StructuredGrid::ElementsList expected { + const Hex8Grid::ElementsList expected { {0, 1, 3, 2, 6, 7, 9, 8}, {1, 0, 2, 3, 7, 6, 8, 9}, {2, 3, 5, 4, 8, 9, 11, 10}, @@ -744,10 +741,10 @@ TEST_CASE("monad::grid::StructuredGrid: Test periodicElements", "[monad]") { REQUIRE(grid.periodicElements() == expected); } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Hex20Grid") { + const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); - const StructuredGrid::ElementsList expected { + const Hex20Grid::ElementsList expected { {0, 1, 3, 2, 6, 7, 9, 8, 24, 49, 26, 48, 30, 55, 32, 54, 72, 73, 75, 74}, {1, 0, 2, 3, 7, 6, 8, 9, 25, 48, 27, 49, 31, 54, 33, 55, 73, 72, 74, 75}, {2, 3, 5, 4, 8, 9, 11, 10, 26, 51, 28, 50, 32, 57, 34, 56, 74, 75, 77, 76}, @@ -779,11 +776,11 @@ TEST_CASE("monad::grid::StructuredGrid: Test periodicElements", "[monad]") { } TEST_CASE("monad::grid::StructuredGrid: Test elementNodes", "[monad]") { - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3}, {0.5, 1.5}); + SECTION("Quad4Grid") { + const Quad4Grid grid({2, 3}, {0.5, 1.5}); SECTION("No errors") { - const StructuredGrid::NodesMatrix expected { + const Quad4Grid::NodesMatrix expected { {0.25, 0.0}, {0.5, 0.0}, {0.5, 0.5}, @@ -796,15 +793,17 @@ TEST_CASE("monad::grid::StructuredGrid: Test elementNodes", "[monad]") { } SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.elementNodes(grid.numElements()), std::out_of_range); + const std::size_t badIndex = grid.numElements(); + + REQUIRE_THROWS_AS(grid.elementNodes(badIndex), std::out_of_range); } } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3}, {0.5, 1.5}); + SECTION("Quad8Grid") { + const Quad8Grid grid({2, 3}, {0.5, 1.5}); SECTION("No errors") { - const StructuredGrid::NodesMatrix expected { + const Quad8Grid::NodesMatrix expected { {0.25, 0.0}, {0.5, 0.0}, {0.5, 0.5}, @@ -821,15 +820,17 @@ TEST_CASE("monad::grid::StructuredGrid: Test elementNodes", "[monad]") { } SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.elementNodes(grid.numElements()), std::out_of_range); + const std::size_t badIndex = grid.numElements(); + + REQUIRE_THROWS_AS(grid.elementNodes(badIndex), std::out_of_range); } } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Hex8Grid") { + const Hex8Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); SECTION("No errors") { - const StructuredGrid::NodesMatrix expected { + const Hex8Grid::NodesMatrix expected { {0.25, 0.0, 0.0}, {0.5, 0.0, 0.0}, {0.5, 0.5, 0.0}, @@ -846,15 +847,17 @@ TEST_CASE("monad::grid::StructuredGrid: Test elementNodes", "[monad]") { } SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.elementNodes(grid.numElements()), std::out_of_range); + const std::size_t badIndex = grid.numElements(); + + REQUIRE_THROWS_AS(grid.elementNodes(badIndex), std::out_of_range); } } - SECTION("StructuredGrid") { - const StructuredGrid grid({2, 3, 4}, {0.5, 1.5, 2.0}); + SECTION("Hex20Grid") { + const Hex20Grid grid({2, 3, 4}, {0.5, 1.5, 2.0}); SECTION("No errors") { - const StructuredGrid::NodesMatrix expected { + const Hex20Grid::NodesMatrix expected { {0.25, 0.0, 0.0}, {0.5, 0.0, 0.0}, {0.5, 0.5, 0.0}, @@ -883,7 +886,9 @@ TEST_CASE("monad::grid::StructuredGrid: Test elementNodes", "[monad]") { } SECTION("Invalid index") { - REQUIRE_THROWS_AS(grid.elementNodes(grid.numElements()), std::out_of_range); + const std::size_t badIndex = grid.numElements(); + + REQUIRE_THROWS_AS(grid.elementNodes(badIndex), std::out_of_range); } } } diff --git a/tests/io/gmsh/write_gmsh_densities_test.cpp b/tests/io/gmsh/write_gmsh_densities_test.cpp index ba42ea0..db855f9 100644 --- a/tests/io/gmsh/write_gmsh_densities_test.cpp +++ b/tests/io/gmsh/write_gmsh_densities_test.cpp @@ -2,33 +2,26 @@ #include #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" +#include "monad/field/field_aliases.hpp" #include "monad/io/gmsh/write_gmsh_densities.hpp" using namespace monad; using namespace monad::io::gmsh; -using Types = std::tuple; +using Types = std::tuple; TEMPLATE_LIST_TEST_CASE("monad::io::gmsh: Test writeGmshDensities", "[monad]", Types) { using Resolution = typename TestType::Resolution; - using Size = typename TestType::Size; Resolution resolution; resolution.fill(1); - Size size; - size.fill(0.5); - - TestType grid(resolution, size); - grid.setDensitiesRandom(1234); + TestType densityField(resolution); + densityField.setRandom(1234); std::ostringstream oss; - writeGmshDensities(oss, grid); + writeGmshDensities(oss, densityField); const std::string expected = "$ElementData\n" "1\n" @@ -38,7 +31,7 @@ TEMPLATE_LIST_TEST_CASE("monad::io::gmsh: Test writeGmshDensities", "[monad]", T "0\n" "1\n" "1\n" - "1 0.497664\n" + "1 0.191519\n" "$EndElementData"; REQUIRE(oss.str() == expected); diff --git a/tests/io/gmsh/write_gmsh_elements_test.cpp b/tests/io/gmsh/write_gmsh_elements_test.cpp index 0ca2c3c..4c5b71f 100644 --- a/tests/io/gmsh/write_gmsh_elements_test.cpp +++ b/tests/io/gmsh/write_gmsh_elements_test.cpp @@ -1,10 +1,7 @@ #include #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" +#include "monad/grid/grid_aliases.hpp" #include "monad/io/gmsh/write_gmsh_elements.hpp" using namespace monad; diff --git a/tests/io/gmsh/write_gmsh_nodal_data_test.cpp b/tests/io/gmsh/write_gmsh_nodal_field_test.cpp similarity index 100% rename from tests/io/gmsh/write_gmsh_nodal_data_test.cpp rename to tests/io/gmsh/write_gmsh_nodal_field_test.cpp diff --git a/tests/io/gmsh/write_gmsh_nodes_test.cpp b/tests/io/gmsh/write_gmsh_nodes_test.cpp index ea1f894..9f9ac4d 100644 --- a/tests/io/gmsh/write_gmsh_nodes_test.cpp +++ b/tests/io/gmsh/write_gmsh_nodes_test.cpp @@ -1,10 +1,7 @@ #include #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" +#include "monad/grid/grid_aliases.hpp" #include "monad/io/gmsh/write_gmsh_nodes.hpp" using namespace monad; diff --git a/tests/io/save_grid_and_density_field_test.cpp b/tests/io/save_grid_and_density_field_test.cpp new file mode 100644 index 0000000..59c8516 --- /dev/null +++ b/tests/io/save_grid_and_density_field_test.cpp @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include "monad/grid/grid_aliases.hpp" +#include "monad/field/density_field.hpp" +#include "monad/io/save_grid_and_density_field.hpp" + +using namespace monad; +using namespace monad::field; + +using Types = std::tuple; + +TEMPLATE_LIST_TEST_CASE("monad: Test saveGridAndDensityField", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.5); + + const TestType grid(resolution, size); + const DensityField densityField(resolution); + + const std::filesystem::path folder = std::filesystem::path(__FILE__).parent_path(); + std::filesystem::path file = folder / "output.msh"; + + SECTION("No errors") { + saveGridAndDensityField(grid, densityField, file.string()); + + REQUIRE(std::filesystem::is_regular_file(file)); + + std::filesystem::remove(file); + } + + SECTION("Invalid field size") { + resolution[0] += 1; + + REQUIRE_THROWS_AS(saveGridAndDensityField(grid, DensityField(resolution), file.string()), std::invalid_argument); + } + + SECTION("Invalid file extension") { + file = folder / "output.csv"; + + REQUIRE_THROWS_AS(saveGridAndDensityField(grid, densityField, file.string()), std::invalid_argument); + } + + SECTION("Invalid file path") { + file = folder / "NonExistentDir" / "output.msh"; + + REQUIRE_THROWS_AS(saveGridAndDensityField(grid, densityField, file.string()), std::runtime_error); + } +} diff --git a/tests/io/save_grid_and_field_test.cpp b/tests/io/save_grid_and_field_test.cpp deleted file mode 100644 index b8d149c..0000000 --- a/tests/io/save_grid_and_field_test.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include -#include -#include -#include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" -#include "monad/io/save_grid_and_field.hpp" - -using namespace monad; - -using Types = std::tuple; - -TEMPLATE_LIST_TEST_CASE("monad: Test saveGridAndField", "[monad]", Types) { - using Resolution = typename TestType::Resolution; - using Size = typename TestType::Size; - - Resolution resolution; - resolution.fill(2); - - Size size; - size.fill(0.5); - - TestType grid(resolution, size); - grid.setDensitiesRandom(); - const int numNodes = static_cast(grid.numNodes()); - - const std::filesystem::path folder = std::filesystem::path(__FILE__).parent_path(); - std::filesystem::path file = folder / "output.msh"; - - SECTION("No errors") { - const Eigen::MatrixX2d field = Eigen::MatrixX2d::Random(numNodes, 2); - - saveGridAndField(grid, field, file.string()); - - REQUIRE(std::filesystem::is_regular_file(file)); - - std::filesystem::remove(file); - } - - SECTION("Invalid field size") { - const Eigen::MatrixX4d field = Eigen::MatrixX4d::Random(numNodes, 4); - - REQUIRE_THROWS_AS(saveGridAndField(grid, field, file.string()), std::invalid_argument); - } - - SECTION("Invalid file extension") { - const Eigen::MatrixX2d field = Eigen::MatrixX2d::Random(numNodes, 2); - - file = folder / "output.csv"; - - REQUIRE_THROWS_AS(saveGridAndField(grid, field, file.string()), std::invalid_argument); - } - - SECTION("Invalid file path") { - const Eigen::MatrixX2d field = Eigen::MatrixX2d::Random(numNodes, 2); - - file = folder / "NonExistentDir" / "output.msh"; - - REQUIRE_THROWS_AS(saveGridAndField(grid, field, file.string()), std::runtime_error); - } -} diff --git a/tests/io/save_grid_and_nodal_field_test.cpp b/tests/io/save_grid_and_nodal_field_test.cpp new file mode 100644 index 0000000..2ef0cde --- /dev/null +++ b/tests/io/save_grid_and_nodal_field_test.cpp @@ -0,0 +1,81 @@ +#include +#include +#include +#include +#include "monad/grid/grid_aliases.hpp" +#include "monad/io/save_grid_and_nodal_field.hpp" + +using namespace monad; + +using Types = std::tuple; + +TEMPLATE_LIST_TEST_CASE("monad: Test saveGridAndNodalField", "[monad]", Types) { + using Resolution = typename TestType::Resolution; + using Size = typename TestType::Size; + + Resolution resolution; + resolution.fill(2); + + Size size; + size.fill(0.5); + + const TestType grid(resolution, size); + const int numNodes = static_cast(grid.numNodes()); + + const std::filesystem::path folder = std::filesystem::path(__FILE__).parent_path(); + std::filesystem::path file = folder / "output.msh"; + + SECTION("No errors") { + SECTION("Scalar field") { + const Eigen::VectorXd field = Eigen::VectorXd::Random(numNodes); + + saveGridAndNodalField(grid, field, file.string()); + + REQUIRE(std::filesystem::is_regular_file(file)); + + std::filesystem::remove(file); + } + + SECTION("2D Vector field") { + const Eigen::MatrixX2d field = Eigen::MatrixX2d::Random(numNodes, 2); + + saveGridAndNodalField(grid, field, file.string()); + + REQUIRE(std::filesystem::is_regular_file(file)); + + std::filesystem::remove(file); + } + + SECTION("3D Vector field") { + const Eigen::MatrixX3d field = Eigen::MatrixX3d::Random(numNodes, 3); + + saveGridAndNodalField(grid, field, file.string()); + + REQUIRE(std::filesystem::is_regular_file(file)); + + std::filesystem::remove(file); + } + } + + SECTION("Invalid field size") { + const Eigen::VectorXd field = Eigen::VectorXd::Random(numNodes - 1); + + REQUIRE_THROWS_AS(saveGridAndNodalField(grid, field, file.string()), std::invalid_argument); + } + + SECTION("Invalid file extension") { + const Eigen::VectorXd field = Eigen::VectorXd::Random(numNodes); + + file = folder / "output.csv"; + + REQUIRE_THROWS_AS(saveGridAndNodalField(grid, field, file.string()), std::invalid_argument); + } + + SECTION("Invalid file path") { + const Eigen::VectorXd field = Eigen::VectorXd::Random(numNodes); + + file = folder / "NonExistentDir" / "output.msh"; + + REQUIRE_THROWS_AS(saveGridAndNodalField(grid, field, file.string()), std::runtime_error); + } +} diff --git a/tests/io/save_grid_test.cpp b/tests/io/save_grid_test.cpp index dc5f319..80ce26d 100644 --- a/tests/io/save_grid_test.cpp +++ b/tests/io/save_grid_test.cpp @@ -2,10 +2,7 @@ #include #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" +#include "monad/grid/grid_aliases.hpp" #include "monad/io/save_grid.hpp" using namespace monad; @@ -23,13 +20,12 @@ TEMPLATE_LIST_TEST_CASE("monad: Test saveGrid", "[monad]", Types) { size.fill(0.5); TestType grid(resolution, size); - grid.setDensitiesRandom(); const std::filesystem::path folder = std::filesystem::path(__FILE__).parent_path(); std::filesystem::path file = folder / "output.msh"; SECTION("No errors") { - saveGrid(grid, file.string(), true); + saveGrid(grid, file.string()); REQUIRE(std::filesystem::is_regular_file(file)); @@ -39,12 +35,12 @@ TEMPLATE_LIST_TEST_CASE("monad: Test saveGrid", "[monad]", Types) { SECTION("Invalid file extension") { file = folder / "output.csv"; - REQUIRE_THROWS_AS(saveGrid(grid, file.string(), true), std::invalid_argument); + REQUIRE_THROWS_AS(saveGrid(grid, file.string()), std::invalid_argument); } SECTION("Invalid file path") { file = folder / "NonExistentDir" / "output.msh"; - REQUIRE_THROWS_AS(saveGrid(grid, file.string(), true), std::runtime_error); + REQUIRE_THROWS_AS(saveGrid(grid, file.string()), std::runtime_error); } } diff --git a/tests/material/bounds_test.cpp b/tests/material/bounds_test.cpp new file mode 100644 index 0000000..c77a3e1 --- /dev/null +++ b/tests/material/bounds_test.cpp @@ -0,0 +1,44 @@ +#include +#include +#include "monad/material/transport/linear_transport_material.hpp" +#include "monad/field/density_field.hpp" +#include "monad/material/bounds.hpp" +#include "monad/detail/constants.hpp" + +using namespace monad; +using namespace monad::material; +using namespace monad::field; + +using Types = std::tuple, LinearTransportMaterial<3>>; + +TEMPLATE_LIST_TEST_CASE("monad: Test voigtBound/reussBound", "[monad]", Types) { + using Resolution = typename DensityField::Resolution; + + const TestType material(2.1); + + Resolution resolution; + resolution.fill(2); + + DensityField densityField(resolution); + + SECTION("Solid material: reuss=voigt=K") { + const auto K = material.materialTensor(); + + densityField.setOnes(); + + const auto voigt = voigtBound(material, densityField); + const auto reuss = reussBound(material, densityField); + + REQUIRE(voigt.isApprox(K, NUMERICAL_ZERO)); + REQUIRE(reuss.isApprox(K, NUMERICAL_ZERO)); + } + + SECTION("Random material: reuss≤voigt") { + densityField.setRandom(1234); + + const auto voigt = voigtBound(material, densityField); + const auto reuss = reussBound(material, densityField); + + REQUIRE(reuss.trace() <= voigt.trace()); + } +} diff --git a/tests/material/mechanical/linear_elastic_material_2d_test.cpp b/tests/material/mechanical/linear_elastic_material_2d_test.cpp index ab824f0..dd466dc 100644 --- a/tests/material/mechanical/linear_elastic_material_2d_test.cpp +++ b/tests/material/mechanical/linear_elastic_material_2d_test.cpp @@ -1,7 +1,6 @@ #include #include #include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/grid/quad4_grid.hpp" #include "monad/detail/constants.hpp" using namespace monad; @@ -54,34 +53,6 @@ TEST_CASE("monad::LinearElasticMaterial2d: Test materialTensor", "[monad]") { REQUIRE(material.materialTensor().isApprox(C, NUMERICAL_ZERO)); } -TEST_CASE("monad::LinearElasticMaterial2d: Test voigt/reuss", "[monad]") { - const LinearElasticMaterial2d material(1.0, 0.3, LinearElasticMaterial2d::PlaneCondition::PlaneStress); - - // Just using to get density values (does not matter 2D vs. 3D) - Quad4Grid grid({3, 3}, {1.0, 1.0}); - - SECTION("Solid material: reuss=voigt=C") { - const auto C = material.materialTensor(); - - grid.setDensitiesOnes(); - - const auto voigt = material.voigt(grid); - const auto reuss = material.reuss(grid); - - REQUIRE(voigt.trace() == reuss.trace()); - REQUIRE(voigt.trace() == C.trace()); - } - - SECTION("Random material: reuss≤voigt") { - grid.setDensitiesRandom(1234); - - const auto voigt = material.voigt(grid); - const auto reuss = material.reuss(grid); - - REQUIRE(reuss.trace() <= voigt.trace()); - } -} - TEST_CASE("monad::LinearElasticMaterial2d: Test operator==", "[monad]") { LinearElasticMaterial2d material1(1.0, 0.3, LinearElasticMaterial2d::PlaneCondition::PlaneStress); LinearElasticMaterial2d material2(1.0, 0.3, LinearElasticMaterial2d::PlaneCondition::PlaneStress); diff --git a/tests/material/mechanical/linear_elastic_material_3d_test.cpp b/tests/material/mechanical/linear_elastic_material_3d_test.cpp index 7536679..3fd3def 100644 --- a/tests/material/mechanical/linear_elastic_material_3d_test.cpp +++ b/tests/material/mechanical/linear_elastic_material_3d_test.cpp @@ -1,7 +1,6 @@ #include #include #include "monad/material/mechanical/linear_elastic_material_3d.hpp" -#include "monad/grid/quad4_grid.hpp" #include "monad/detail/constants.hpp" using namespace monad; @@ -47,34 +46,6 @@ TEST_CASE("monad::LinearElasticMaterial3d: Test materialTensor", "[monad]") { REQUIRE(material.materialTensor().isApprox(C, NUMERICAL_ZERO)); } -TEST_CASE("monad::LinearElasticMaterial3d: Test voigt/reuss", "[monad]") { - const LinearElasticMaterial3d material(1.0, 0.3); - - // Just using to get density values (does not matter 2D vs. 3D) - Quad4Grid grid({3, 3}, {1.0, 1.0}); - - SECTION("Solid material: reuss=voigt=C") { - const auto C = material.materialTensor(); - - grid.setDensitiesOnes(); - - const auto voigt = material.voigt(grid); - const auto reuss = material.reuss(grid); - - REQUIRE(voigt.trace() == reuss.trace()); - REQUIRE(voigt.trace() == C.trace()); - } - - SECTION("Random material: reuss≤voigt") { - grid.setDensitiesRandom(1234); - - const auto voigt = material.voigt(grid); - const auto reuss = material.reuss(grid); - - REQUIRE(reuss.trace() <= voigt.trace()); - } -} - TEST_CASE("monad::LinearElasticMaterial3d: Test operator==", "[monad]") { LinearElasticMaterial3d material1(1.0, 0.3); LinearElasticMaterial3d material2(1.0, 0.3); diff --git a/tests/material/multiphysics/linear_piezoelectric_material_2d_test.cpp b/tests/material/multiphysics/linear_piezoelectric_material_2d_test.cpp index 4ca5965..f023e4d 100644 --- a/tests/material/multiphysics/linear_piezoelectric_material_2d_test.cpp +++ b/tests/material/multiphysics/linear_piezoelectric_material_2d_test.cpp @@ -1,8 +1,7 @@ #include #include #include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/material/transport/linear_transport_material_aliases.hpp" -#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" +#include "monad/material/material_aliases.hpp" #include "monad/detail/constants.hpp" using namespace monad; diff --git a/tests/material/multiphysics/linear_piezoelectric_material_3d_test.cpp b/tests/material/multiphysics/linear_piezoelectric_material_3d_test.cpp index c35c629..73f478e 100644 --- a/tests/material/multiphysics/linear_piezoelectric_material_3d_test.cpp +++ b/tests/material/multiphysics/linear_piezoelectric_material_3d_test.cpp @@ -1,8 +1,7 @@ #include #include #include "monad/material/mechanical/linear_elastic_material_3d.hpp" -#include "monad/material/transport/linear_transport_material_aliases.hpp" -#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" +#include "monad/material/material_aliases.hpp" #include "monad/detail/constants.hpp" using namespace monad; diff --git a/tests/material/transport/linear_transport_material_test.cpp b/tests/material/transport/linear_transport_material_test.cpp index 971dde3..b11458e 100644 --- a/tests/material/transport/linear_transport_material_test.cpp +++ b/tests/material/transport/linear_transport_material_test.cpp @@ -1,10 +1,10 @@ #include #include #include "monad/material/transport/linear_transport_material.hpp" -#include "monad/grid/quad4_grid.hpp" #include "monad/detail/constants.hpp" using namespace monad; +using namespace monad::material; using Types = std::tuple, LinearTransportMaterial<3>>; @@ -45,34 +45,6 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearTransportMaterial: Test materialTensor", " REQUIRE(material.materialTensor().isApprox(K, NUMERICAL_ZERO)); } -TEMPLATE_LIST_TEST_CASE("monad::LinearTransportMaterial: Test voigt/reuss", "[monad]", Types) { - const TestType material(2.1); - - // Just using to get density values (does not matter 2D vs. 3D) - Quad4Grid grid({3, 3}, {1.0, 1.0}); - - SECTION("Solid material: reuss=voigt=K") { - const auto K = material.materialTensor(); - - grid.setDensitiesOnes(); - - const auto voigt = material.voigt(grid); - const auto reuss = material.reuss(grid); - - REQUIRE(voigt.trace() == reuss.trace()); - REQUIRE(voigt.trace() == K.trace()); - } - - SECTION("Random material: reuss≤voigt") { - grid.setDensitiesRandom(1234); - - const auto voigt = material.voigt(grid); - const auto reuss = material.reuss(grid); - - REQUIRE(reuss.trace() <= voigt.trace()); - } -} - TEMPLATE_LIST_TEST_CASE("monad::LinearTransportMaterial: Test operator==", "[monad]", Types) { const TestType material1(1.0); const TestType material2(1.0); diff --git a/tests/solver/mechanical/linear_elastic_solver_test.cpp b/tests/solver/mechanical/linear_elastic_solver_test.cpp index 9539859..78565f6 100644 --- a/tests/solver/mechanical/linear_elastic_solver_test.cpp +++ b/tests/solver/mechanical/linear_elastic_solver_test.cpp @@ -1,24 +1,41 @@ #include #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" -#include "monad/material/mechanical/linear_elastic_material.hpp" -#include "monad/solver/mechanical/linear_elastic_solver.hpp" +#include "monad/grid/grid_aliases.hpp" +#include "monad/material/mechanical/linear_elastic_material_2d.hpp" +#include "monad/material/mechanical/linear_elastic_material_3d.hpp" +#include "monad/material/bounds.hpp" +#include "monad/field/field_aliases.hpp" +#include "monad/solver/solver_aliases.hpp" #include "monad/detail/eigen_utils.hpp" #include "monad/detail/constants.hpp" using namespace monad; using namespace monad::detail; -using Types = std::tuple; - -TEMPLATE_LIST_TEST_CASE("monad::LinearElasticSolver2d: Test solve", "[monad]", Types) { - using Resolution = typename TestType::Resolution; - using Size = typename TestType::Size; - using Material = LinearElasticMaterial; +template +struct TypePair { + using Grid = GridT; + using Material = MaterialT; + using DensityField = DensityFieldT; + using Solver = SolverT; +}; + +using Types = std::tuple< + TypePair>, + TypePair>, + TypePair>, + TypePair> +>; + +TEMPLATE_LIST_TEST_CASE("monad::LinearElasticSolver: Test solve", "[monad]", Types) { + using Grid = typename TestType::Grid; + using Material = typename TestType::Material; + using DensityField = typename TestType::DensityField; + using Solver = typename TestType::Solver; + + using Resolution = typename Grid::Resolution; + using Size = typename Grid::Size; using StiffnessTensor = typename Material::MaterialTensor; Resolution resolution; @@ -27,7 +44,7 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearElasticSolver2d: Test solve", "[monad]", T Size size; size.fill(0.5); - TestType grid(resolution, size); + Grid grid(resolution, size); StiffnessTensor C = StiffnessTensor::Random(); // Make PSD @@ -37,23 +54,23 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearElasticSolver2d: Test solve", "[monad]", T const Material material(C); - SECTION("Density=1 → CBar=material") { - grid.setDensitiesOnes(); - const LinearElasticSolver solver(grid, material); + DensityField densityField(resolution); - const auto results = solver.solve(); - const auto &CBar = results.CBar; + const Solver solver; - const auto expected = material.materialTensor(); + SECTION("Density=1 → CBar=C") { + densityField.setOnes(); + + const auto results = solver.solve(grid, densityField, material); + const auto &CBar = results.CBar; - REQUIRE(CBar.isApprox(expected, NUMERICAL_ZERO)); + REQUIRE(CBar.isApprox(C, NUMERICAL_ZERO)); } SECTION("Density=0 → CBar=0") { - grid.setDensitiesZeros(); - LinearElasticSolver solver(grid, material); + densityField.setZeros(); - const auto results = solver.solve(); + const auto results = solver.solve(grid, densityField, material); const auto &CBar = results.CBar; // Set zero threshold to one order of magnitude larger @@ -61,18 +78,17 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearElasticSolver2d: Test solve", "[monad]", T } SECTION("Random density") { - grid.setDensitiesRandom(1234); - const LinearElasticSolver solver(grid, material); + densityField.setRandom(1234); - auto results = solver.solve(); + const auto results = solver.solve(grid, densityField, material); const auto &CBar = results.CBar; REQUIRE(isSymmetric(CBar)); REQUIRE(isPD(CBar)); SECTION("Voigt/Reuss bounds") { - const auto voigt = material.voigt(grid); - const auto reuss = material.reuss(grid); + const auto voigt = voigtBound(material, densityField); + const auto reuss = reussBound(material, densityField); REQUIRE(reuss.trace() <= CBar.trace()); REQUIRE(CBar.trace() <= voigt.trace()); @@ -82,24 +98,22 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearElasticSolver2d: Test solve", "[monad]", T Resolution shift; shift.fill(1); - grid.translate(shift); + densityField.translate(shift); - const LinearElasticSolver solver2(grid, material); + const auto resultsShift = solver.solve(grid, densityField, material); - results = solver.solve(); - const auto &CBar2 = results.CBar; + const auto &CBarShift = resultsShift.CBar; - REQUIRE(CBar2.isApprox(CBar, NUMERICAL_ZERO)); + REQUIRE(CBarShift.isApprox(CBar, NUMERICAL_ZERO)); } } SECTION("Bad options") { - grid.setDensitiesRandom(1234); - const LinearElasticSolver solver(grid, material); + densityField.setRandom(1234); SolverOptions options; options.maxIterations = 1; - REQUIRE_THROWS_AS(solver.solve(options), std::runtime_error); + REQUIRE_THROWS_AS(solver.solve(grid, densityField, material, options), std::runtime_error); } } diff --git a/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp b/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp index 9c77e34..b0371ed 100644 --- a/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp +++ b/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp @@ -1,32 +1,49 @@ #include #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" -#include "monad/material/mechanical/linear_elastic_material.hpp" -#include "monad/material/transport/linear_transport_material.hpp" -#include "monad/material/multiphysics/linear_piezoelectric_material.hpp" -#include "monad/solver/multiphysics/linear_piezoelectric_solver.hpp" +#include "monad/grid/grid_aliases.hpp" +#include "monad/material/mechanical/linear_elastic_material_2d.hpp" +#include "monad/material/mechanical/linear_elastic_material_3d.hpp" +#include "monad/material/material_aliases.hpp" +#include "monad/material/bounds.hpp" +#include "monad/field/field_aliases.hpp" +#include "monad/solver/solver_aliases.hpp" #include "monad/detail/eigen_utils.hpp" #include "monad/detail/constants.hpp" using namespace monad; using namespace monad::detail; -using Types = std::tuple; +template +struct TypePair { + using Grid = GridT; + using MechanicalMaterial = MechanicalMaterialT; + using ElectricalMaterial = ElectricalMaterialT; + using Material = MaterialT; + using DensityField = DensityFieldT; + using Solver = SolverT; +}; + +using Types = std::tuple< + TypePair>, + TypePair>, + TypePair>, + TypePair> +>; TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricSolver: Test solve", "[monad]", Types) { - using Resolution = typename TestType::Resolution; - using Size = typename TestType::Size; - using Element = typename TestType::Element; - using MechanicalMaterial = LinearElasticMaterial; - using ElectricalMaterial = LinearTransportMaterial; - using Material = LinearPiezoelectricMaterial; - using StiffnessTensor = typename MechanicalMaterial::MaterialTensor; + using Grid = typename TestType::Grid; + using MechanicalMaterial = typename TestType::MechanicalMaterial; + using ElectricalMaterial = typename TestType::ElectricalMaterial; + using Material = typename TestType::Material; + using DensityField = typename TestType::DensityField; + using Solver = typename TestType::Solver; + + using Resolution = typename Grid::Resolution; + using Size = typename Grid::Size; using CouplingTensor = typename Material::CouplingTensor; - using MaterialTensor = typename Material::MaterialTensor; + using StiffnessTensor = typename MechanicalMaterial::MaterialTensor; + using PermittivityTensor = typename ElectricalMaterial::MaterialTensor; Resolution resolution; resolution.fill(2); @@ -34,7 +51,7 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricSolver: Test solve", "[monad] Size size; size.fill(0.5); - TestType grid(resolution, size); + Grid grid(resolution, size); StiffnessTensor c = StiffnessTensor::Random(); // Make PSD @@ -43,35 +60,40 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricSolver: Test solve", "[monad] c += StiffnessTensor::Identity(); const MechanicalMaterial elasticMaterial(c); - const ElectricalMaterial dielectricMaterial(2.1); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + const ElectricalMaterial dielectricMaterial(epsilon); const CouplingTensor d = 0.1 * CouplingTensor::Random(); const Material material(elasticMaterial, dielectricMaterial, d); + DensityField densityField(resolution); + + const Solver solver; + SECTION("Density=1 → homogenized=material") { - grid.setDensitiesOnes(); - const LinearPiezoelectricSolver solver(grid, material); + densityField.setOnes(); - const auto results = solver.solve(); + const auto results = solver.solve(grid, densityField, material); const auto &cBar = results.cBar; const auto &epsilonBar = results.epsilonBar; const auto &dBar = results.dBar; - MaterialTensor op; - op << cBar, -dBar.transpose(), - -dBar, -epsilonBar; - - const MaterialTensor expected = material.materialTensor(); - - REQUIRE(op.isApprox(expected, NUMERICAL_ZERO)); + REQUIRE(cBar.isApprox(c, NUMERICAL_ZERO)); + REQUIRE(epsilonBar.isApprox(epsilon, NUMERICAL_ZERO)); + REQUIRE(dBar.isApprox(d, NUMERICAL_ZERO)); } - SECTION("Density=0 → operator=0") { - grid.setDensitiesZeros(); - const LinearPiezoelectricSolver solver(grid, material); + SECTION("Density=0 → CBar=0") { + densityField.setZeros(); - const auto results = solver.solve(); + const auto results = solver.solve(grid, densityField, material); const auto &cBar = results.cBar; const auto &epsilonBar = results.epsilonBar; const auto &dBar = results.dBar; @@ -83,64 +105,42 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricSolver: Test solve", "[monad] } SECTION("Random density") { - grid.setDensitiesRandom(1234); - const LinearPiezoelectricSolver solver(grid, material); - - auto results = solver.solve(); - const auto &cBar = results.cBar; - const auto &epsilonBar = results.epsilonBar; - const auto &dBar = results.dBar; + densityField.setRandom(1234); - REQUIRE(isSymmetric(cBar)); - REQUIRE(isPD(cBar)); + const auto results = solver.solve(grid, densityField, material); + const auto &opBar = results.opBar; - REQUIRE(isSymmetric(epsilonBar)); - REQUIRE(isPD(epsilonBar)); + REQUIRE(isSymmetric(opBar)); + REQUIRE(!isPD(opBar)); SECTION("Voigt/Reuss bounds") { - SECTION("cBar") { - const auto voigt = elasticMaterial.voigt(grid); - const auto reuss = elasticMaterial.reuss(grid); - - REQUIRE(reuss.trace() <= cBar.trace()); - REQUIRE(cBar.trace() <= voigt.trace()); - } - - SECTION("epsilonBar") { - const auto voigt = dielectricMaterial.voigt(grid); - const auto reuss = dielectricMaterial.reuss(grid); + const auto voigt = voigtBound(material, densityField); + const auto reuss = reussBound(material, densityField); - REQUIRE(reuss.trace() <= epsilonBar.trace()); - REQUIRE(epsilonBar.trace() <= voigt.trace()); - } + REQUIRE(reuss.trace() <= opBar.trace()); + REQUIRE(opBar.trace() <= voigt.trace()); } SECTION("Translational invariance") { Resolution shift; shift.fill(1); - grid.translate(shift); + densityField.translate(shift); - const LinearPiezoelectricSolver solver2(grid, material); + const auto resultsShift = solver.solve(grid, densityField, material); - results = solver.solve(); - const auto &cBar2 = results.cBar; - const auto &epsilonBar2 = results.epsilonBar; - const auto &dBar2 = results.dBar; + const auto &opBarShift = resultsShift.opBar; - REQUIRE(cBar2.isApprox(cBar, NUMERICAL_ZERO)); - REQUIRE(epsilonBar2.isApprox(epsilonBar, NUMERICAL_ZERO)); - REQUIRE(dBar2.isApprox(dBar, NUMERICAL_ZERO)); + REQUIRE(opBarShift.isApprox(opBar, NUMERICAL_ZERO)); } } SECTION("Bad options") { - grid.setDensitiesRandom(1234); - const LinearPiezoelectricSolver solver(grid, material); + densityField.setRandom(1234); SolverOptions options; options.maxIterations = 1; - REQUIRE_THROWS_AS(solver.solve(options), std::runtime_error); + REQUIRE_THROWS_AS(solver.solve(grid, densityField, material, options), std::runtime_error); } } diff --git a/tests/solver/scalar/linear_scalar_diffusion_solver_test.cpp b/tests/solver/scalar/linear_scalar_diffusion_solver_test.cpp index 7d8d8c8..81f3310 100644 --- a/tests/solver/scalar/linear_scalar_diffusion_solver_test.cpp +++ b/tests/solver/scalar/linear_scalar_diffusion_solver_test.cpp @@ -1,70 +1,81 @@ #include #include #include -#include "monad/grid/quad4_grid.hpp" -#include "monad/grid/quad8_grid.hpp" -#include "monad/grid/hex8_grid.hpp" -#include "monad/grid/hex20_grid.hpp" -#include "monad/material/transport/linear_transport_material.hpp" -#include "monad/solver/scalar/linear_scalar_diffusive_solver.hpp" +#include "monad/grid/grid_aliases.hpp" +#include "monad/material/material_aliases.hpp" +#include "monad/material/bounds.hpp" +#include "monad/field/field_aliases.hpp" +#include "monad/solver/solver_aliases.hpp" #include "monad/detail/eigen_utils.hpp" #include "monad/detail/constants.hpp" using namespace monad; using namespace monad::detail; -using namespace monad::fem::scalar; -template +template struct TypePair { using Grid = GridT; - static constexpr GradientConvention Convention = C; + using Material = MaterialT; + using DensityField = DensityFieldT; + using Solver = SolverT; }; +// Negative sign convention: linear dielectric material +// Positive sign convention: linear mass diffusive material using Types = std::tuple< - TypePair, - TypePair, - TypePair, - TypePair, - TypePair, - TypePair, - TypePair, - TypePair + TypePair>, + TypePair>, + TypePair>, + TypePair>, + TypePair>, + TypePair>, + TypePair>, + TypePair> >; TEMPLATE_LIST_TEST_CASE("monad::Solver: Test solve", "[monad]", Types) { using Grid = typename TestType::Grid; + using Material = typename TestType::Material; + using DensityField = typename TestType::DensityField; + using Solver = typename TestType::Solver; + using Resolution = typename Grid::Resolution; using Size = typename Grid::Size; - using Element = typename Grid::Element; - using Solver = LinearScalarDiffusiveSolver; + using MaterialTensor = typename Material::MaterialTensor; Resolution resolution; - resolution.fill(3); - + resolution.fill(2); + Size size; size.fill(0.5); Grid grid(resolution, size); - const LinearTransportMaterial material(2.1); + MaterialTensor K = MaterialTensor::Random(); + // Make PSD + K = K.transpose() * K; + // Make PD + K += MaterialTensor::Identity(); + + const Material material(K); + + DensityField densityField(resolution); + + const Solver solver; SECTION("Density=1 → KBar=material") { - grid.setDensitiesOnes(); - const Solver solver(grid, material); + densityField.setOnes(); - const auto results = solver.solve(); + const auto results = solver.solve(grid, densityField, material); const auto &KBar = results.KBar; - const auto expected = material.materialTensor(); - - REQUIRE(KBar.isApprox(expected, NUMERICAL_ZERO)); + REQUIRE(KBar.isApprox(K, NUMERICAL_ZERO)); } SECTION("Density=0 → KBar=0") { - grid.setDensitiesZeros(); - const Solver solver(grid, material); + densityField.setZeros(); - const auto results = solver.solve(); + const auto results = solver.solve(grid, densityField, material); const auto &KBar = results.KBar; // Set zero threshold to one order of magnitude larger @@ -72,18 +83,17 @@ TEMPLATE_LIST_TEST_CASE("monad::Solver: Test solve", "[monad]", Types) { } SECTION("Random density") { - grid.setDensitiesRandom(1234); - const Solver solver(grid, material); + densityField.setRandom(1234); - auto results = solver.solve(); + const auto results = solver.solve(grid, densityField, material); const auto &KBar = results.KBar; REQUIRE(isSymmetric(KBar)); REQUIRE(isPD(KBar)); SECTION("Voigt/Reuss bounds") { - const auto voigt = material.voigt(grid); - const auto reuss = material.reuss(grid); + const auto voigt = voigtBound(material, densityField); + const auto reuss = reussBound(material, densityField); REQUIRE(reuss.trace() <= KBar.trace()); REQUIRE(KBar.trace() <= voigt.trace()); @@ -93,24 +103,22 @@ TEMPLATE_LIST_TEST_CASE("monad::Solver: Test solve", "[monad]", Types) { Resolution shift; shift.fill(1); - grid.translate(shift); + densityField.translate(shift); - const Solver solver2(grid, material); + const auto resultsShift = solver.solve(grid, densityField, material); - results = solver.solve(); - const auto &KBar2 = results.KBar; + const auto &KBarShift = resultsShift.KBar; - REQUIRE(KBar2.isApprox(KBar, NUMERICAL_ZERO)); + REQUIRE(KBarShift.isApprox(KBar, NUMERICAL_ZERO)); } } SECTION("Bad options") { - grid.setDensitiesRandom(1234); - const Solver solver(grid, material); + densityField.setRandom(1234); SolverOptions options; options.maxIterations = 1; - REQUIRE_THROWS_AS(solver.solve(options), std::runtime_error); + REQUIRE_THROWS_AS(solver.solve(grid, densityField, material, options), std::runtime_error); } } diff --git a/tests/solver/solver_options_test.cpp b/tests/solver/solver_options_test.cpp index 1a5c3c7..b6eed27 100644 --- a/tests/solver/solver_options_test.cpp +++ b/tests/solver/solver_options_test.cpp @@ -4,7 +4,7 @@ using namespace monad; TEST_CASE("monad::SolverOptions: Test defaults", "[monad]") { - const auto options = SolverOptions::defaults(); + const SolverOptions options; REQUIRE(options.maxIterations == 1000); REQUIRE(options.tolerance == 1e-6); @@ -12,31 +12,29 @@ TEST_CASE("monad::SolverOptions: Test defaults", "[monad]") { } TEST_CASE("monad::SolverOptions: Test operator==", "[monad]") { - const auto options1 = SolverOptions::defaults(); - const auto options2 = SolverOptions::defaults(); + const SolverOptions options1; + const SolverOptions options2; REQUIRE(options1 == options2); } TEST_CASE("monad::SolverOptions: Test operator!=", "[monad]") { - const auto options1 = SolverOptions::defaults(); + const SolverOptions options1; + SolverOptions options2; SECTION("Different maxIterations") { - auto options2 = SolverOptions::defaults(); options2.maxIterations += 1; REQUIRE(options1 != options2); } SECTION("Different tolerance") { - auto options2 = SolverOptions::defaults(); options2.tolerance += 1e-5; REQUIRE(options1 != options2); } SECTION("Different fields") { - auto options2 = SolverOptions::defaults(); options2.fields = FieldSave::Total; REQUIRE(options1 != options2); From 0957bf125093d814f74fa3f9f3c8866f218d511a Mon Sep 17 00:00:00 2001 From: Sam Silverman Date: Wed, 18 Mar 2026 11:52:49 -0400 Subject: [PATCH 4/8] Piezoelectric material constructor uses tensors --- .../linear_piezoelectric_kernel.hpp | 16 +- include/monad/material/material_aliases.hpp | 6 +- .../linear_piezoelectric_material.hpp | 119 +++++---- .../transport/linear_transport_material.hpp | 1 - .../linear_piezoelectric_policy.hpp | 10 +- src/field/make_density_field_from_csv.cpp | 4 +- tests/CMakeLists.txt | 3 +- .../linear_piezoelectric_kernel_test.cpp | 88 ++++--- .../linear_piezoelectric_dof_traits_test.cpp | 21 +- .../linear_piezoelectric_material_2d_test.cpp | 165 ------------ .../linear_piezoelectric_material_3d_test.cpp | 176 ------------- .../linear_piezoelectric_material_test.cpp | 239 ++++++++++++++++++ .../linear_piezoelectric_solver_test.cpp | 28 +- 13 files changed, 399 insertions(+), 477 deletions(-) delete mode 100644 tests/material/multiphysics/linear_piezoelectric_material_2d_test.cpp delete mode 100644 tests/material/multiphysics/linear_piezoelectric_material_3d_test.cpp create mode 100644 tests/material/multiphysics/linear_piezoelectric_material_test.cpp diff --git a/include/monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp b/include/monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp index 3288630..8527748 100644 --- a/include/monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp +++ b/include/monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp @@ -48,7 +48,7 @@ namespace monad { using MechanicalMaterial = material::LinearElasticMaterial; using ElectricalMaterial = material::LinearTransportMaterial; - using Material = material::LinearPiezoelectricMaterial; + using Material = material::LinearPiezoelectricMaterial; using Point = typename Element::Point; using NodesMatrix = typename Element::NodesMatrix; @@ -117,8 +117,11 @@ namespace monad { return Bphi.transpose() * d * Bu * J.determinant(); }; - const auto Kuu = MechanicalKernel::lhs(material.elasticMaterial(), nodes); - const auto Kphiphi = ElectricalKernel::lhs(material.dielectricMaterial(), nodes); + const MechanicalMaterial mechanicalMaterial(material.stiffnessTensor()); + const ElectricalMaterial electricalMaterial(material.permittivityTensor()); + + const auto Kuu = MechanicalKernel::lhs(mechanicalMaterial, nodes); + const auto Kphiphi = ElectricalKernel::lhs(electricalMaterial, nodes); const CouplingStiffnessMatrix Kphiu = integration::integrateMatrix(integrand, rule); StiffnessMatrix K; @@ -172,8 +175,11 @@ namespace monad { return B.transpose() * d.transpose() * J.determinant(); }; - const auto Fuu = MechanicalKernel::rhs(material.elasticMaterial(), nodes); - const auto Fphiphi = ElectricalKernel::rhs(material.dielectricMaterial(), nodes); + const MechanicalMaterial mechanicalMaterial(material.stiffnessTensor()); + const ElectricalMaterial electricalMaterial(material.permittivityTensor()); + + const auto Fuu = MechanicalKernel::rhs(mechanicalMaterial, nodes); + const auto Fphiphi = ElectricalKernel::rhs(electricalMaterial, nodes); // No need to multiply by T̄=I for unit macroscopic strains const PhiUCouplingFieldMatrix Fphiu = -integration::integrateMatrix(integrandPhiU, rule); diff --git a/include/monad/material/material_aliases.hpp b/include/monad/material/material_aliases.hpp index b187de4..3d228b7 100644 --- a/include/monad/material/material_aliases.hpp +++ b/include/monad/material/material_aliases.hpp @@ -2,8 +2,6 @@ #include "monad/material/transport/linear_transport_material.hpp" #include "monad/material/multiphysics/linear_piezoelectric_material.hpp" -#include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/material/mechanical/linear_elastic_material_3d.hpp" namespace monad { @@ -217,7 +215,7 @@ namespace monad { * * - d∈ℝ²ˣ³ is the piezoelectric coupling tensor. */ - using LinearPiezoelectricMaterial2d = material::LinearPiezoelectricMaterial; + using LinearPiezoelectricMaterial2d = material::LinearPiezoelectricMaterial<2>; /** * @brief 3D linear piezoelectric material model. @@ -237,6 +235,6 @@ namespace monad { * * - d∈ℝ³ˣ⁶ is the piezoelectric coupling tensor. */ - using LinearPiezoelectricMaterial3d = material::LinearPiezoelectricMaterial; + using LinearPiezoelectricMaterial3d = material::LinearPiezoelectricMaterial<3>; } // namespace monad diff --git a/include/monad/material/multiphysics/linear_piezoelectric_material.hpp b/include/monad/material/multiphysics/linear_piezoelectric_material.hpp index d3900d3..7cdcb3e 100644 --- a/include/monad/material/multiphysics/linear_piezoelectric_material.hpp +++ b/include/monad/material/multiphysics/linear_piezoelectric_material.hpp @@ -26,21 +26,26 @@ namespace monad { * * - d∈ℝᵈˣᵛ is the piezoelectric coupling tensor. * - * @tparam MechanicalMaterial Linear elastic material type (e.g. LinearElasticMaterial2d). - * @tparam ElectricalMaterial Linear dielectric material type (e.g. LinearDielectricMaterial2d). + * @tparam D Spatial dimension (2 or 3). */ - template + template class LinearPiezoelectricMaterial { public: - static_assert(MechanicalMaterial::Dim == ElectricalMaterial::Dim, "Spatial dimension of materials must be equal."); - static_assert(MechanicalMaterial::Dim == 2 || MechanicalMaterial::Dim == 3, "Spatial dimension D must be 2 or 3."); + static_assert(D == 2 || D == 3, "Spatial dimension D must be 2 or 3."); /// @brief Spatial dimension (2 or 3). - static constexpr int Dim = MechanicalMaterial::Dim; + static constexpr int Dim = D; /// @brief Number of components in Voigt notation. - static constexpr int VoigtSize = MechanicalMaterial::VoigtSize; + static constexpr int VoigtSize = (Dim == 2) ? 3 : 6; + /// @brief Stiffness tensor type. + using StiffnessTensor = Eigen::Matrix; + + /// @brief Permittivity tensor type. + using PermittivityTensor = Eigen::Matrix; + + /// @brief Piezoelectric coupling tensor type. using CouplingTensor = Eigen::Matrix; /** @brief Coupled constitutive operator type. @@ -55,10 +60,12 @@ namespace monad { /** * @brief Constructs a linear piezoelectric material. * - * @param[in] elasticMaterial Linear elastic material. - * @param[in] dielectricMaterial Linear dielectric material. + * @param[in] c Stiffness tensor. + * @param[in] epsilon Permittivity tensor. * @param[in] d Piezoelectric coupling tensor. * + * @throws std::invalid_argument if `c` is not positive definite. + * @throws std::invalid_argument if `epsilon` is not positive definite. * @throws std::invalid_argument if the Schur complement * * ``` @@ -67,49 +74,55 @@ namespace monad { * * is not positive definite. */ - LinearPiezoelectricMaterial(const MechanicalMaterial &elasticMaterial, const ElectricalMaterial &dielectricMaterial, const CouplingTensor &d) - : elasticMaterial_(elasticMaterial), dielectricMaterial_(dielectricMaterial), d_(d) { - const auto &c = elasticMaterial_.materialTensor(); - const auto &epsilon = dielectricMaterial_.materialTensor(); + LinearPiezoelectricMaterial(const StiffnessTensor &c, const PermittivityTensor &epsilon, const CouplingTensor &d) + : c_(c), epsilon_(epsilon), d_(d) { + + if (!detail::isPD(c_)) { + throw std::invalid_argument("Stiffness tensor is not positive definite."); + } + + if (!detail::isPD(epsilon_)) { + throw std::invalid_argument("Permittivity tensor is not positive definite."); + } + + op_ << c_, -d_.transpose(), + -d_, -epsilon_; // Schur complement must be positive definite for thermodynamic stability. - const auto schur = c - d_.transpose() * epsilon.inverse() * d_; + const auto schur = c_ - d_.transpose() * epsilon_.inverse() * d_; if (!detail::isPD(schur)) { throw std::invalid_argument("Schur complement is not positive definite."); } - - op_ << c, -d_.transpose(), - -d_, -epsilon; } - /** - * @brief Converts from a compatible piezoelectric material type. - * - * This constructor allows piezoelectric materials built from compatible - * mechanical and electrical material types to be converted into this - * instantiation. - * - * This is needed when solver code expects a canonical - * `LinearPiezoelectricMaterial<...>` type, but the input uses derived - * or aliased component material types. - * - * @tparam OtherMechanicalMaterial Compatible mechanical material type. - * @tparam OtherElectricalMaterial Compatible electrical material type. - * - * @param[in] other Piezoelectric material to convert from. - */ - template - LinearPiezoelectricMaterial(const LinearPiezoelectricMaterial &other) - : LinearPiezoelectricMaterial(other.elasticMaterial(), other.dielectricMaterial(), other.couplingTensor()) {} - - /// @brief Linear elastic material. - const MechanicalMaterial &elasticMaterial() const noexcept { - return elasticMaterial_; + // /** + // * @brief Converts from a compatible piezoelectric material type. + // * + // * This constructor allows piezoelectric materials built from compatible + // * mechanical and electrical material types to be converted into this + // * instantiation. + // * + // * This is needed when solver code expects a canonical + // * `LinearPiezoelectricMaterial<...>` type, but the input uses derived + // * or aliased component material types. + // * + // * @tparam OtherMechanicalMaterial Compatible mechanical material type. + // * @tparam OtherElectricalMaterial Compatible electrical material type. + // * + // * @param[in] other Piezoelectric material to convert from. + // */ + // template + // LinearPiezoelectricMaterial(const LinearPiezoelectricMaterial &other) + // : LinearPiezoelectricMaterial(other.elasticMaterial(), other.dielectricMaterial(), other.couplingTensor()) {} + + /// @brief Stiffness tensor. + const StiffnessTensor &stiffnessTensor() const noexcept { + return c_; } - /// @brief Linear dielectric material. - const ElectricalMaterial &dielectricMaterial() const noexcept { - return dielectricMaterial_; + /// @brief Permittivity tensor. + const PermittivityTensor &permittivityTensor() const noexcept { + return epsilon_; } /// @brief Piezoelectric coupling tensor. @@ -117,14 +130,22 @@ namespace monad { return d_; } - /// @brief Coupled constitutive operator. + /** @brief Coupled constitutive operator. + * + * ```text + * ⎡ c -dᵀ⎤ + * ⎣-d -ϵ ⎦ + * ``` + */ const MaterialTensor &materialTensor() const noexcept { return op_; } /// @brief Equality comparison. bool operator==(const LinearPiezoelectricMaterial &other) const noexcept { - return op_ == other.op_; + return c_.isApprox(other.c_, NUMERICAL_ZERO) + && epsilon_.isApprox(other.epsilon_, NUMERICAL_ZERO) + && d_.isApprox(other.d_, NUMERICAL_ZERO); } /// @brief Inequality comparison. @@ -133,11 +154,11 @@ namespace monad { } private: - /// @brief Linear elastic material. - const MechanicalMaterial elasticMaterial_; + /// @brief Stiffness tensor. + const StiffnessTensor c_; - /// @brief Linear dielectric material. - const ElectricalMaterial dielectricMaterial_; + /// @brief Permittivity tensor. + const PermittivityTensor epsilon_; /// @brief Piezoelectric coupling tensor. const CouplingTensor d_; diff --git a/include/monad/material/transport/linear_transport_material.hpp b/include/monad/material/transport/linear_transport_material.hpp index 9867f85..2507769 100644 --- a/include/monad/material/transport/linear_transport_material.hpp +++ b/include/monad/material/transport/linear_transport_material.hpp @@ -3,7 +3,6 @@ #include #include #include -#include "monad/detail/mean.hpp" #include "monad/detail/eigen_utils.hpp" #include "monad/detail/constants.hpp" diff --git a/include/monad/solver/multiphysics/linear_piezoelectric_policy.hpp b/include/monad/solver/multiphysics/linear_piezoelectric_policy.hpp index 539367e..b473256 100644 --- a/include/monad/solver/multiphysics/linear_piezoelectric_policy.hpp +++ b/include/monad/solver/multiphysics/linear_piezoelectric_policy.hpp @@ -6,8 +6,6 @@ #include #include "monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp" #include "monad/fem/operator/multiphysics/linear_piezoelectric_dof_traits.hpp" -#include "monad/material/mechanical/linear_elastic_material.hpp" -#include "monad/material/transport/linear_transport_material.hpp" #include "monad/material/multiphysics/linear_piezoelectric_material.hpp" #include "monad/solver/mechanical/linear_elastic_policy.hpp" #include "monad/solver/scalar/linear_scalar_diffusive_policy.hpp" @@ -28,12 +26,10 @@ namespace monad { struct LinearPiezoelectricPolicy { using Kernel = fem::multiphysics::LinearPiezoelectricKernel; using DofTraits = fem::multiphysics::LinearPiezoelectricDofTraits; - using MechanicalMaterial = material::LinearElasticMaterial; - using ElectricalMaterial = material::LinearTransportMaterial; - using Material = material::LinearPiezoelectricMaterial; + using Material = material::LinearPiezoelectricMaterial; using MaterialTensor = typename Material::MaterialTensor; - using StiffnessTensor = typename MechanicalMaterial::MaterialTensor; - using PermittivityTensor = typename ElectricalMaterial::MaterialTensor; + using StiffnessTensor = typename Material::StiffnessTensor; + using PermittivityTensor = typename Material::PermittivityTensor; using CouplingTensor = typename Material::CouplingTensor; using MechanicalPolicy = solver::mechanical::LinearElasticPolicy; using ElectricalPolicy = solver::scalar::LinearScalarDiffusivePolicy; diff --git a/src/field/make_density_field_from_csv.cpp b/src/field/make_density_field_from_csv.cpp index da1954e..61ed676 100644 --- a/src/field/make_density_field_from_csv.cpp +++ b/src/field/make_density_field_from_csv.cpp @@ -13,7 +13,7 @@ namespace monad { throw std::runtime_error("Could not open " + file + " for reading."); } - std::size_t nx; + std::size_t nx = 0; std::vector> rows; std::string line; @@ -50,7 +50,7 @@ namespace monad { continue; } - if (rows.size() == 0) { + if (rows.empty()) { nx = row.size(); } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6e015b6..de89344 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -31,8 +31,7 @@ set(TEST_SOURCES io/save_grid_test.cpp material/mechanical/linear_elastic_material_2d_test.cpp material/mechanical/linear_elastic_material_3d_test.cpp - material/multiphysics/linear_piezoelectric_material_2d_test.cpp - material/multiphysics/linear_piezoelectric_material_3d_test.cpp + material/multiphysics/linear_piezoelectric_material_test.cpp material/transport/linear_transport_material_test.cpp material/bounds_test.cpp solver/mechanical/linear_elastic_solver_test.cpp diff --git a/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_test.cpp b/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_test.cpp index 83e1481..a4ec24a 100644 --- a/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_test.cpp +++ b/tests/fem/kernel/multiphysics/linear_piezoelectric_kernel_test.cpp @@ -7,9 +7,6 @@ #include "monad/fem/element/quad4.hpp" #include "monad/fem/element/quad8.hpp" #include "monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp" -#include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/material/mechanical/linear_elastic_material_3d.hpp" -#include "monad/material/material_aliases.hpp" #include "monad/detail/eigen_utils.hpp" #include "monad/detail/constants.hpp" @@ -25,31 +22,41 @@ using Types2d = std::tuple; using Types3d = std::tuple; TEMPLATE_LIST_TEST_CASE("monad::fem::electrical::LinearPiezoelectricKernel (2d): Test lhs/rhs", "[monad]", Types2d) { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; + using Kernel = LinearPiezoelectricKernel; + using Material = typename Kernel::Material; + using StiffnessTensor = typename Material::StiffnessTensor; + using PermittivityTensor = typename Material::PermittivityTensor; + using CouplingTensor = typename Material::CouplingTensor; - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); - const LinearPiezoelectricMaterial2d material(elasticMaterial, dielectricMaterial, d); + const CouplingTensor d = CouplingTensor::Constant(0.01); + + const Material material(c, epsilon, d); auto nodes = TestType::localNodes(); SECTION("No errors") { - const auto K = LinearPiezoelectricKernel::lhs(material, nodes); + const auto K = Kernel::lhs(material, nodes); REQUIRE(isSymmetric(K)); REQUIRE(!isPSD(K)); SECTION("xᵀKx=xᵀF=0 for rigid body transformations") { - using FieldVector = Eigen::Vector::NumDofs>; - using MechanicalKernel = typename LinearPiezoelectricKernel::MechanicalKernel; + using FieldVector = Eigen::Vector; + using MechanicalKernel = typename Kernel::MechanicalKernel; - const auto F = LinearPiezoelectricKernel::rhs(material, nodes); + const auto F = Kernel::rhs(material, nodes); FieldVector x; @@ -89,45 +96,54 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::electrical::LinearPiezoelectricKernel (2d): SECTION("Invalid element - degenerate element") { nodes = 0.0 * nodes; - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::lhs(material, nodes), std::invalid_argument); - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::rhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(Kernel::lhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(Kernel::rhs(material, nodes), std::invalid_argument); } SECTION("Invalid element - reverse node ordering") { nodes = nodes.rowwise().reverse(); - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::lhs(material, nodes), std::invalid_argument); - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::rhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(Kernel::lhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(Kernel::rhs(material, nodes), std::invalid_argument); } } TEMPLATE_LIST_TEST_CASE("monad::fem::electrical::LinearPiezoelectricKernel (3d): Test lhs/rhs", "[monad]", Types3d) { - using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; + using Kernel = LinearPiezoelectricKernel; + using Material = typename Kernel::Material; + using StiffnessTensor = typename Material::StiffnessTensor; + using PermittivityTensor = typename Material::PermittivityTensor; + using CouplingTensor = typename Material::CouplingTensor; + + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial(2.1); + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); - const CouplingTensor d { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; + const CouplingTensor d = CouplingTensor::Constant(0.01); - const LinearPiezoelectricMaterial3d material(elasticMaterial, dielectricMaterial, d); + const Material material(c, epsilon, d); auto nodes = TestType::localNodes(); SECTION("No errors") { - const auto K = LinearPiezoelectricKernel::lhs(material, nodes); + const auto K = Kernel::lhs(material, nodes); REQUIRE(isSymmetric(K)); REQUIRE(!isPSD(K)); SECTION("xᵀKx=xᵀF=0 for rigid body transformations") { - using FieldVector = Eigen::Vector::NumDofs>; - using MechanicalKernel = typename LinearPiezoelectricKernel::MechanicalKernel; + using FieldVector = Eigen::Vector; + using MechanicalKernel = typename Kernel::MechanicalKernel; - const auto F = LinearPiezoelectricKernel::rhs(material, nodes); + const auto F = Kernel::rhs(material, nodes); FieldVector x; @@ -190,14 +206,14 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::electrical::LinearPiezoelectricKernel (3d): SECTION("Invalid element - degenerate element") { nodes = 0.0 * nodes; - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::lhs(material, nodes), std::invalid_argument); - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::rhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(Kernel::lhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(Kernel::rhs(material, nodes), std::invalid_argument); } SECTION("Invalid element - reverse node ordering") { nodes = nodes.rowwise().reverse(); - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::lhs(material, nodes), std::invalid_argument); - REQUIRE_THROWS_AS(LinearPiezoelectricKernel::rhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(Kernel::lhs(material, nodes), std::invalid_argument); + REQUIRE_THROWS_AS(Kernel::rhs(material, nodes), std::invalid_argument); } } diff --git a/tests/fem/operator/multiphysics/linear_piezoelectric_dof_traits_test.cpp b/tests/fem/operator/multiphysics/linear_piezoelectric_dof_traits_test.cpp index daa2901..b898d7d 100644 --- a/tests/fem/operator/multiphysics/linear_piezoelectric_dof_traits_test.cpp +++ b/tests/fem/operator/multiphysics/linear_piezoelectric_dof_traits_test.cpp @@ -3,11 +3,8 @@ #include "monad/grid/grid_aliases.hpp" #include "monad/field/density_field.hpp" #include "monad/fem/kernel/multiphysics/linear_piezoelectric_kernel.hpp" -#include "monad/fem/operator/matrix_free_operator.hpp" #include "monad/fem/operator/multiphysics/linear_piezoelectric_dof_traits.hpp" -#include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/material/mechanical/linear_elastic_material.hpp" -#include "monad/material/transport/linear_transport_material.hpp" +#include "monad/fem/operator/matrix_free_operator.hpp" using namespace monad; using namespace monad::field; @@ -16,17 +13,16 @@ using namespace monad::fem::multiphysics; using Types = std::tuple; -TEMPLATE_LIST_TEST_CASE("monad::fem::multiphysics::LinearPiezoelectricMatrixFreeOperator: Test isSymmetric/isPSD", "[monad]", Types) { +TEMPLATE_LIST_TEST_CASE("monad::fem::multiphysics: Test LinearPiezoelectricDofTraits", "[monad]", Types) { using Resolution = typename TestType::Resolution; using Size = typename TestType::Size; using Element = typename TestType::Element; using Kernel = LinearPiezoelectricKernel; using Traits = LinearPiezoelectricDofTraits; using Operator = MatrixFreeOperator; - using MechanicalMaterial = typename Kernel::MechanicalMaterial; - using ElectricalMaterial = typename Kernel::ElectricalMaterial; using Material = typename Kernel::Material; - using StiffnessTensor = typename MechanicalMaterial::MaterialTensor; + using StiffnessTensor = typename Material::StiffnessTensor; + using PermittivityTensor = typename Material::PermittivityTensor; using CouplingTensor = typename Material::CouplingTensor; Resolution resolution; @@ -46,12 +42,15 @@ TEMPLATE_LIST_TEST_CASE("monad::fem::multiphysics::LinearPiezoelectricMatrixFree // Make PD c += StiffnessTensor::Identity(); - const MechanicalMaterial elasticMaterial(c); - const ElectricalMaterial dielectricMaterial(2.1); + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); const CouplingTensor d = CouplingTensor::Constant(0.01); - const Material material(elasticMaterial, dielectricMaterial, d); + const Material material(c, epsilon, d); const auto nodes = grid.elementNodes(0); const auto elementKReference = Kernel::lhs(material, nodes); diff --git a/tests/material/multiphysics/linear_piezoelectric_material_2d_test.cpp b/tests/material/multiphysics/linear_piezoelectric_material_2d_test.cpp deleted file mode 100644 index f023e4d..0000000 --- a/tests/material/multiphysics/linear_piezoelectric_material_2d_test.cpp +++ /dev/null @@ -1,165 +0,0 @@ -#include -#include -#include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/material/material_aliases.hpp" -#include "monad/detail/constants.hpp" - -using namespace monad; - -TEST_CASE("monad::LinearPiezoelectricMaterial2d: Test initalization", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; - - SECTION("Invalid piezoelectric tensor") { - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d { - {10.0, 0.0, 0.0}, - {0.0, 10.0, 10.0} - }; - - REQUIRE_THROWS_AS(LinearPiezoelectricMaterial2d(elasticMaterial, dielectricMaterial, d), std::invalid_argument); - } -} - -TEST_CASE("monad::LinearPiezoelectricMaterial2d: Test elasticMaterial", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; - - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const LinearPiezoelectricMaterial2d material(elasticMaterial, dielectricMaterial, d); - - REQUIRE(material.elasticMaterial() == elasticMaterial); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial2d: Test dielectricMaterial", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; - - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const LinearPiezoelectricMaterial2d material(elasticMaterial, dielectricMaterial, d); - - REQUIRE(material.dielectricMaterial() == dielectricMaterial); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial2d: Test couplingTensor", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; - - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const LinearPiezoelectricMaterial2d material(elasticMaterial, dielectricMaterial, d); - - REQUIRE(material.couplingTensor().isApprox(d, NUMERICAL_ZERO)); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial2d: Test materialTensor", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; - using MaterialTensor = typename LinearPiezoelectricMaterial2d::MaterialTensor; - - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const LinearPiezoelectricMaterial2d material(elasticMaterial, dielectricMaterial, d); - - MaterialTensor expected; - expected << elasticMaterial.materialTensor(), -d.transpose(), - -d, -dielectricMaterial.materialTensor(); - - REQUIRE(material.materialTensor().isApprox(expected, NUMERICAL_ZERO)); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial2d: Test operator==", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; - - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const LinearPiezoelectricMaterial2d material1(elasticMaterial, dielectricMaterial, d); - const LinearPiezoelectricMaterial2d material2(elasticMaterial, dielectricMaterial, d); - - REQUIRE(material1 == material2); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial2d: Test operator!=", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial2d::CouplingTensor; - - SECTION("Different elastic materials") { - const LinearElasticMaterial2d elasticMaterial1(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearElasticMaterial2d elasticMaterial2(1.1, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - LinearPiezoelectricMaterial2d material1(elasticMaterial1, dielectricMaterial, d); - LinearPiezoelectricMaterial2d material2(elasticMaterial2, dielectricMaterial, d); - - REQUIRE(material1 != material2); - } - - SECTION("Different electric materials") { - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial1(2.1); - const LinearDielectricMaterial2d dielectricMaterial2(2.2); - - const CouplingTensor d { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const LinearPiezoelectricMaterial2d material1(elasticMaterial, dielectricMaterial1, d); - const LinearPiezoelectricMaterial2d material2(elasticMaterial, dielectricMaterial2, d); - - REQUIRE(material1 != material2); - } - - SECTION("Different piezoelectric tensors") { - const LinearElasticMaterial2d elasticMaterial(1.0, 0.3, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); - const LinearDielectricMaterial2d dielectricMaterial(2.1); - - const CouplingTensor d1 { - {0.01, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const CouplingTensor d2 { - {0.02, 0.0, 0.0}, - {0.0, 0.01, 0.01} - }; - - const LinearPiezoelectricMaterial2d material1(elasticMaterial, dielectricMaterial, d1); - const LinearPiezoelectricMaterial2d material2(elasticMaterial, dielectricMaterial, d2); - - REQUIRE(material1 != material2); - } -} diff --git a/tests/material/multiphysics/linear_piezoelectric_material_3d_test.cpp b/tests/material/multiphysics/linear_piezoelectric_material_3d_test.cpp deleted file mode 100644 index 73f478e..0000000 --- a/tests/material/multiphysics/linear_piezoelectric_material_3d_test.cpp +++ /dev/null @@ -1,176 +0,0 @@ -#include -#include -#include "monad/material/mechanical/linear_elastic_material_3d.hpp" -#include "monad/material/material_aliases.hpp" -#include "monad/detail/constants.hpp" - -using namespace monad; - -TEST_CASE("monad::LinearPiezoelectricMaterial3d: Test initalization", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; - - SECTION("Invalid piezoelectric tensor") { - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.0, 0.0, 0.0, 10.0, 0.0, 0.0}, - {0.0, 0.0, 10.0, 0.0, 0.0, 0.0}, - {10.0, 10.0, 10.0, 0.0, 0.0, 0.0} - }; - - REQUIRE_THROWS_AS(LinearPiezoelectricMaterial3d(elasticMaterial, dielectricMaterial, d), std::invalid_argument); - } -} - -TEST_CASE("monad::LinearPiezoelectricMaterial3d: Test elasticMaterial", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; - - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const LinearPiezoelectricMaterial3d material(elasticMaterial, dielectricMaterial, d); - - REQUIRE(material.elasticMaterial() == elasticMaterial); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial3d: Test dielectricMaterial", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; - - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const LinearPiezoelectricMaterial3d material(elasticMaterial, dielectricMaterial, d); - - REQUIRE(material.dielectricMaterial() == dielectricMaterial); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial3d: Test couplingTensor", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; - - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const LinearPiezoelectricMaterial3d material(elasticMaterial, dielectricMaterial, d); - - REQUIRE(material.couplingTensor().isApprox(d, NUMERICAL_ZERO)); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial3d: Test materialTensor", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; - using MaterialTensor = typename LinearPiezoelectricMaterial3d::MaterialTensor; - - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const LinearPiezoelectricMaterial3d material(elasticMaterial, dielectricMaterial, d); - - MaterialTensor expected; - expected << elasticMaterial.materialTensor(), -d.transpose(), - -d, -dielectricMaterial.materialTensor(); - - REQUIRE(material.materialTensor().isApprox(expected, NUMERICAL_ZERO)); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial3d: Test operator==", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; - - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const LinearPiezoelectricMaterial3d material1(elasticMaterial, dielectricMaterial, d); - const LinearPiezoelectricMaterial3d material2(elasticMaterial, dielectricMaterial, d); - - REQUIRE(material1 == material2); -} - -TEST_CASE("monad::LinearPiezoelectricMaterial3d: Test operator!=", "[monad]") { - using CouplingTensor = typename LinearPiezoelectricMaterial3d::CouplingTensor; - - SECTION("Different elastic materials") { - const LinearElasticMaterial3d elasticMaterial1(1.0, 0.3); - const LinearElasticMaterial3d elasticMaterial2(1.1, 0.3); - - const LinearDielectricMaterial3d dielectricMaterial(2.1); - - const CouplingTensor d { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const LinearPiezoelectricMaterial3d material1(elasticMaterial1, dielectricMaterial, d); - const LinearPiezoelectricMaterial3d material2(elasticMaterial2, dielectricMaterial, d); - - REQUIRE(material1 != material2); - } - - SECTION("Different electric materials") { - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial1(2.1); - const LinearDielectricMaterial3d dielectricMaterial2(2.2); - - const CouplingTensor d { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const LinearPiezoelectricMaterial3d material1(elasticMaterial, dielectricMaterial1, d); - const LinearPiezoelectricMaterial3d material2(elasticMaterial, dielectricMaterial2, d); - - REQUIRE(material1 != material2); - } - - SECTION("Different piezoelectric tensors") { - const LinearElasticMaterial3d elasticMaterial(1.0, 0.3); - const LinearDielectricMaterial3d dielectricMaterial(2.1); - - const CouplingTensor d1 { - {0.0, 0.0, 0.0, 0.01, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const CouplingTensor d2 { - {0.0, 0.0, 0.0, 0.02, 0.0, 0.0}, - {0.0, 0.0, 0.01, 0.0, 0.0, 0.0}, - {0.01, 0.01, 0.01, 0.0, 0.0, 0.0} - }; - - const LinearPiezoelectricMaterial3d material1(elasticMaterial, dielectricMaterial, d1); - const LinearPiezoelectricMaterial3d material2(elasticMaterial, dielectricMaterial, d2); - - REQUIRE(material1 != material2); - } -} diff --git a/tests/material/multiphysics/linear_piezoelectric_material_test.cpp b/tests/material/multiphysics/linear_piezoelectric_material_test.cpp new file mode 100644 index 0000000..ff69eea --- /dev/null +++ b/tests/material/multiphysics/linear_piezoelectric_material_test.cpp @@ -0,0 +1,239 @@ +#include +#include +#include "monad/material/mechanical/linear_elastic_material_2d.hpp" +#include "monad/material/material_aliases.hpp" +#include "monad/detail/constants.hpp" + +using namespace monad; + +using Types = std::tuple; + +TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricMaterial: Test initalization", "[monad]", Types) { + using StiffnessTensor = typename TestType::StiffnessTensor; + using PermittivityTensor = typename TestType::PermittivityTensor; + using CouplingTensor = typename TestType::CouplingTensor; + + SECTION("Invalid stiffness tensor") { + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + c(0, 0) = 0.0; + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + const CouplingTensor d = CouplingTensor::Constant(0.01); + + REQUIRE_THROWS_AS(TestType(c, epsilon, d), std::invalid_argument); + } + + SECTION("Invalid permittivity tensor") { + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + epsilon(0, 0) = 0.0; + + const CouplingTensor d = CouplingTensor::Constant(0.01); + + REQUIRE_THROWS_AS(TestType(c, epsilon, d), std::invalid_argument); + } + + SECTION("Invalid piezoelectric coupling tensor") { + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + const CouplingTensor d = CouplingTensor::Constant(10.0); + + REQUIRE_THROWS_AS(TestType(c, epsilon, d), std::invalid_argument); + } +} + +TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricMaterial: Test stiffnessTensor", "[monad]", Types) { + using StiffnessTensor = typename TestType::StiffnessTensor; + using PermittivityTensor = typename TestType::PermittivityTensor; + using CouplingTensor = typename TestType::CouplingTensor; + + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + const CouplingTensor d = CouplingTensor::Constant(0.01); + + const TestType material(c, epsilon, d); + + REQUIRE(material.stiffnessTensor().isApprox(c, NUMERICAL_ZERO)); +} + +TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricMaterial: Test permittivityTensor", "[monad]", Types) { + using StiffnessTensor = typename TestType::StiffnessTensor; + using PermittivityTensor = typename TestType::PermittivityTensor; + using CouplingTensor = typename TestType::CouplingTensor; + + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + const CouplingTensor d = CouplingTensor::Constant(0.01); + + const TestType material(c, epsilon, d); + + REQUIRE(material.permittivityTensor().isApprox(epsilon, NUMERICAL_ZERO)); +} + +TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricMaterial: Test couplingTensor", "[monad]", Types) { + using StiffnessTensor = typename TestType::StiffnessTensor; + using PermittivityTensor = typename TestType::PermittivityTensor; + using CouplingTensor = typename TestType::CouplingTensor; + + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + const CouplingTensor d = CouplingTensor::Constant(0.01); + + const TestType material(c, epsilon, d); + + REQUIRE(material.couplingTensor().isApprox(d, NUMERICAL_ZERO)); +} + +TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricMaterial: Test materialTensor", "[monad]", Types) { + using StiffnessTensor = typename TestType::StiffnessTensor; + using PermittivityTensor = typename TestType::PermittivityTensor; + using CouplingTensor = typename TestType::CouplingTensor; + using MaterialTensor = typename TestType::MaterialTensor; + + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + const CouplingTensor d = CouplingTensor::Constant(0.01); + + const TestType material(c, epsilon, d); + + MaterialTensor op; + op << c, -d.transpose(), + -d, -epsilon; + + REQUIRE(material.materialTensor().isApprox(op, NUMERICAL_ZERO)); +} + +TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricMaterial: Test operator==", "[monad]", Types) { + using StiffnessTensor = typename TestType::StiffnessTensor; + using PermittivityTensor = typename TestType::PermittivityTensor; + using CouplingTensor = typename TestType::CouplingTensor; + + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + const CouplingTensor d = CouplingTensor::Constant(0.01); + + const TestType material1(c, epsilon, d); + const TestType material2(c, epsilon, d); + + REQUIRE(material1 == material2); +} + +TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricMaterial: Test operator!=", "[monad]", Types) { + using StiffnessTensor = typename TestType::StiffnessTensor; + using PermittivityTensor = typename TestType::PermittivityTensor; + using CouplingTensor = typename TestType::CouplingTensor; + + StiffnessTensor c = StiffnessTensor::Random(); + // Make PSD + c = c.transpose() * c; + // Make PD + c += StiffnessTensor::Identity(); + + PermittivityTensor epsilon = PermittivityTensor::Random(); + // Make PSD + epsilon = epsilon.transpose() * epsilon; + // Make PD + epsilon += PermittivityTensor::Identity(); + + CouplingTensor d = CouplingTensor::Constant(0.01); + + const TestType material1(c, epsilon, d); + + SECTION("Different stiffness tensor") { + c(1, 1) += 0.01; + + const TestType material2(c, epsilon, d); + + REQUIRE(material1 != material2); + } + + SECTION("Different permittivity tensor") { + epsilon(1, 1) += 0.01; + + const TestType material2(c, epsilon, d); + + REQUIRE(material1 != material2); + } + + SECTION("Different piezoelectric coupling tensor") { + d(1, 1) += 0.01; + + const TestType material2(c, epsilon, d); + + REQUIRE(material1 != material2); + } +} diff --git a/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp b/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp index b0371ed..c7cfdfa 100644 --- a/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp +++ b/tests/solver/multiphysics/linear_piezoelectric_solver_test.cpp @@ -2,8 +2,6 @@ #include #include #include "monad/grid/grid_aliases.hpp" -#include "monad/material/mechanical/linear_elastic_material_2d.hpp" -#include "monad/material/mechanical/linear_elastic_material_3d.hpp" #include "monad/material/material_aliases.hpp" #include "monad/material/bounds.hpp" #include "monad/field/field_aliases.hpp" @@ -14,27 +12,23 @@ using namespace monad; using namespace monad::detail; -template +template struct TypePair { using Grid = GridT; - using MechanicalMaterial = MechanicalMaterialT; - using ElectricalMaterial = ElectricalMaterialT; using Material = MaterialT; using DensityField = DensityFieldT; using Solver = SolverT; }; using Types = std::tuple< - TypePair>, - TypePair>, - TypePair>, - TypePair> + TypePair>, + TypePair>, + TypePair>, + TypePair> >; TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricSolver: Test solve", "[monad]", Types) { using Grid = typename TestType::Grid; - using MechanicalMaterial = typename TestType::MechanicalMaterial; - using ElectricalMaterial = typename TestType::ElectricalMaterial; using Material = typename TestType::Material; using DensityField = typename TestType::DensityField; using Solver = typename TestType::Solver; @@ -42,8 +36,8 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricSolver: Test solve", "[monad] using Resolution = typename Grid::Resolution; using Size = typename Grid::Size; using CouplingTensor = typename Material::CouplingTensor; - using StiffnessTensor = typename MechanicalMaterial::MaterialTensor; - using PermittivityTensor = typename ElectricalMaterial::MaterialTensor; + using StiffnessTensor = typename Material::StiffnessTensor; + using PermittivityTensor = typename Material::PermittivityTensor; Resolution resolution; resolution.fill(2); @@ -59,19 +53,15 @@ TEMPLATE_LIST_TEST_CASE("monad::LinearPiezoelectricSolver: Test solve", "[monad] // Make PD c += StiffnessTensor::Identity(); - const MechanicalMaterial elasticMaterial(c); - PermittivityTensor epsilon = PermittivityTensor::Random(); // Make PSD epsilon = epsilon.transpose() * epsilon; // Make PD epsilon += PermittivityTensor::Identity(); - const ElectricalMaterial dielectricMaterial(epsilon); - - const CouplingTensor d = 0.1 * CouplingTensor::Random(); + const CouplingTensor d = CouplingTensor::Constant(0.01); - const Material material(elasticMaterial, dielectricMaterial, d); + const Material material(c, epsilon, d); DensityField densityField(resolution); From 3bfb6f8cab3eced03e58f0e43b68121c258ead35 Mon Sep 17 00:00:00 2001 From: Sam Silverman <26936956+samsilverman@users.noreply.github.com> Date: Fri, 12 Jun 2026 08:59:09 -0400 Subject: [PATCH 5/8] Option to print solver diagnostics --- include/monad/solver/periodic_cell_solver.hpp | 84 +++++++++++++------ include/monad/solver/solver_options.hpp | 3 + src/solver/solver_options.cpp | 3 +- tests/solver/solver_options_test.cpp | 7 ++ 4 files changed, 69 insertions(+), 28 deletions(-) diff --git a/include/monad/solver/periodic_cell_solver.hpp b/include/monad/solver/periodic_cell_solver.hpp index b758c30..1057c81 100644 --- a/include/monad/solver/periodic_cell_solver.hpp +++ b/include/monad/solver/periodic_cell_solver.hpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include #include #include "monad/field/density_field.hpp" @@ -49,11 +51,6 @@ namespace monad { /** * @brief Solves the periodic cell problem. * - * The homogenized material tensor M̄ is then computed via the physics-specific - * homogenization functional: - * - * M̄=1/V∑ₑXₑᵀKₑXₑ - * * @param[in] grid Grid. * @param[in] densityField Per-element density field defined on `grid`. * @param[in] material Base material. @@ -77,16 +74,44 @@ namespace monad { const Operator K(grid, densityField, elementKReference); const DofMap dofMap = K.dofMap(); + if (options.verbose) { + std::cout << "[PeriodicCellSolver]\n" + << "\t[Problem]\n" + << "\t\tElements: " << grid.numElements() << std::endl + << "\t\tNodes: " << grid.numNodes() << std::endl + << "\t\tPeriodic nodes: " << grid.numPeriodicNodes() << std::endl + << "\t\tGlobal dofs: " << grid.numNodes() * DofTraits::NumNodeDofs << std::endl + << "\t\tReduced periodic dofs: " << dofMap.numReducedDofs() << std::endl + << "\t\tLoad cases: " << Policy::NumLoadCases << std::endl + << "\t[Solver]\n" + << "\t\tIterations: " << options.maxIterations << std::endl + << "\t\tTolerance: " << options.tolerance << std::endl; + } + + int iterations = 0; + double error = 0.0; + const FieldMatrix reducedF = buildReducedRhs_(grid, densityField, dofMap, elementFReference); - const FieldMatrix reducedXMicro = solveReducedSystem_(K, reducedF, options); - const FieldMatrix XMicro = expandReducedLhs_(grid, dofMap, reducedXMicro); - const FieldMatrix XMacro = Policy::makeMacroscopicFields(grid); - const FieldMatrix X = XMacro + XMicro; + const auto start = std::chrono::steady_clock::now(); + const FieldMatrix reducedWMicro = solveReducedSystem_(K, reducedF, options, iterations, error); + const auto stop = std::chrono::steady_clock::now(); + auto duration = std::chrono::duration_cast(stop - start); - const MaterialTensor MBar = homogenize_(grid, densityField, elementKReference, X); + if (options.verbose) { + std::cout << "\t[Results]\n" + << "\t\tIterations: " << iterations << std::endl + << "\t\tError: " << error << std::endl + << "\t\tSolve time (ms): " << duration.count() << std::endl; + } + + const FieldMatrix WMicro = expandReducedLhs_(grid, dofMap, reducedWMicro); + const FieldMatrix WMacro = Policy::makeMacroscopicFields(grid); + const FieldMatrix W = WMacro + WMicro; - return Policy::makeResults(MBar, X, XMacro, XMicro, options.fields); + const MaterialTensor ABar = homogenize_(grid, densityField, elementKReference, W); + + return Policy::makeResults(ABar, W, WMacro, WMicro, options.fields); } private: @@ -96,7 +121,7 @@ namespace monad { * Constructs the right-hand side matrix F in * * ```text - * KX̃=F + * KW̃=F * ``` * * on the reduced periodic dof space. @@ -138,7 +163,7 @@ namespace monad { * Solves * * ```text - * KX̃=F + * KW̃=F * ``` * * on the reduced periodic dof space. @@ -146,12 +171,14 @@ namespace monad { * @param[in] K Matrix-free operator for the reduced periodic stiffness matrix. * @param[in] reducedF Reduced periodic source matrix. * @param[in] options Solver options. + * @param[out] iterations Number of iterations used by the solver. + * @param[out] error Final relative residual reported by the solver. * * @returns Reduced microscopic field matrix. * * @throws std::runtime_error if the iterative solver fails. */ - FieldMatrix solveReducedSystem_(const Operator &K, const FieldMatrix &reducedF, const SolverOptions &options) const { + FieldMatrix solveReducedSystem_(const Operator &K, const FieldMatrix &reducedF, const SolverOptions &options, int &iterations, double &error) const { Eigen::ConjugateGradient cg; cg.setMaxIterations(options.maxIterations); @@ -160,6 +187,9 @@ namespace monad { FieldMatrix reducedXMicro = cg.solve(reducedF); + iterations = static_cast(cg.iterations()); + error = cg.error(); + if (cg.info() != Eigen::Success) { std::string message = "Iterative solver failed"; @@ -179,10 +209,10 @@ namespace monad { /** * @brief Expands the reduced periodic microscopic field matrix to the global dof space. * - * Expands the left-hand side matrix X̃ in + * Expands the left-hand side matrix W̃ in * * ```text - * KX̃=F + * KW̃=F * ``` * * to the global dof space. @@ -234,22 +264,22 @@ namespace monad { /** * @brief Homogenized material tensor. * - * Using the total field matrix X, the homogenized material tensor M̄ + * Using the total field matrix W, the homogenized material tensor Ā * is computed via the Hill-Mandel lemma: * * ```text - * M̄=1/V∑ₑXₑᵀKₑXₑ + * Ā=1/V∑ₑWₑᵀKₑWₑ * ``` * * @param[in] grid Grid. * @param[in] densityField Per-element density field defined on `grid`. * @param[in] elementKReference Reference element stiffness matrix for unit density. - * @param[in] X Global total field matrix. + * @param[in] W Global total field matrix. * * @returns Homogenized material tensor. */ - MaterialTensor homogenize_(const Grid &grid, const DensityField &densityField, const ElementStiffnessMatrix &elementKReference, const FieldMatrix &X) const { - MaterialTensor MBar = MaterialTensor::Zero(); + MaterialTensor homogenize_(const Grid &grid, const DensityField &densityField, const ElementStiffnessMatrix &elementKReference, const FieldMatrix &W) const { + MaterialTensor ABar = MaterialTensor::Zero(); const std::size_t numNodes = grid.numNodes(); @@ -259,23 +289,23 @@ namespace monad { const auto element = grid.element(i); const auto dofs = DofTraits::elementDofs(element, numNodes); - ElementFieldMatrix elementX; + ElementFieldMatrix elementW; for (std::size_t j = 0; j < dofs.size(); ++j) { const std::size_t dof = dofs[j]; const std::size_t localDof = j; - elementX.row(static_cast(localDof)) = X.row(static_cast(dof)); + elementW.row(static_cast(localDof)) = W.row(static_cast(dof)); } - MBar.noalias() += elementX.transpose() * elementK * elementX; + ABar.noalias() += elementW.transpose() * elementK * elementW; } - MBar /= grid.measure(); + ABar /= grid.measure(); // Remove numerical asymmetry - detail::symmetrize(MBar); + detail::symmetrize(ABar); - return MBar; + return ABar; } }; diff --git a/include/monad/solver/solver_options.hpp b/include/monad/solver/solver_options.hpp index 2b8fc0f..6755f23 100644 --- a/include/monad/solver/solver_options.hpp +++ b/include/monad/solver/solver_options.hpp @@ -47,6 +47,9 @@ namespace monad { /// @brief Nodal fields to store in the results. FieldSave fields = FieldSave::None; + /// @brief Set to `true` to print solver diagnostics. + bool verbose = false; + /// @brief Equality comparison. bool operator==(const SolverOptions &other) const; diff --git a/src/solver/solver_options.cpp b/src/solver/solver_options.cpp index e9f989d..5b3329d 100644 --- a/src/solver/solver_options.cpp +++ b/src/solver/solver_options.cpp @@ -17,7 +17,8 @@ namespace monad { bool SolverOptions::operator==(const SolverOptions &other) const { return maxIterations == other.maxIterations && tolerance == other.tolerance - && fields == other.fields; + && fields == other.fields + && verbose == other.verbose; } bool SolverOptions::operator!=(const SolverOptions &other) const { diff --git a/tests/solver/solver_options_test.cpp b/tests/solver/solver_options_test.cpp index b6eed27..6c32e38 100644 --- a/tests/solver/solver_options_test.cpp +++ b/tests/solver/solver_options_test.cpp @@ -9,6 +9,7 @@ TEST_CASE("monad::SolverOptions: Test defaults", "[monad]") { REQUIRE(options.maxIterations == 1000); REQUIRE(options.tolerance == 1e-6); REQUIRE(options.fields == FieldSave::None); + REQUIRE(options.verbose == false); } TEST_CASE("monad::SolverOptions: Test operator==", "[monad]") { @@ -39,4 +40,10 @@ TEST_CASE("monad::SolverOptions: Test operator!=", "[monad]") { REQUIRE(options1 != options2); } + + SECTION("Different verbose") { + options2.verbose = true; + + REQUIRE(options1 != options2); + } } From 429bbcf482672ac46fbc9519b407882ee9cef619 Mon Sep 17 00:00:00 2001 From: Sam Silverman <26936956+samsilverman@users.noreply.github.com> Date: Fri, 12 Jun 2026 08:59:20 -0400 Subject: [PATCH 6/8] Default build apps and not tests --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 1047cd0..f2248fe 100755 --- a/build.sh +++ b/build.sh @@ -6,5 +6,5 @@ fi rm -rf build mkdir build cd build -cmake .. -DMONAD_USE_OPENMP=ON -DMONAD_BUILD_APPS=OFF -DMONAD_BUILD_TESTS=ON +cmake .. -DMONAD_USE_OPENMP=ON -DMONAD_BUILD_APPS=ON -DMONAD_BUILD_TESTS=OFF make -j8 From 8f7667daf4dab789a171e90dfb224118086ff0f0 Mon Sep 17 00:00:00 2001 From: Sam Silverman <26936956+samsilverman@users.noreply.github.com> Date: Fri, 12 Jun 2026 08:59:24 -0400 Subject: [PATCH 7/8] Update 6_LinearPiezoelectricity.cpp --- apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp b/apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp index 568769a..ce28bd3 100644 --- a/apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp +++ b/apps/6_LinearPiezoelectricity/6_LinearPiezoelectricity.cpp @@ -98,12 +98,14 @@ int main(int argc, char* argv[]) { const monad::LinearElasticMaterial2d elasticMaterial(E, nu, monad::LinearElasticMaterial2d::PlaneCondition::PlaneStress); const monad::LinearDielectricMaterial2d dielectricMaterial(epsilon); + const auto c = elasticMaterial.materialTensor(); + const auto epsilonTensor = dielectricMaterial.materialTensor(); const Eigen::Matrix d { {E / 10.0, 0.0, 0.0}, {0.0, E / 10.0, E / 10.0} }; - const monad::LinearPiezoelectricMaterial2d material(elasticMaterial, dielectricMaterial, d); + const monad::LinearPiezoelectricMaterial2d material(c, epsilonTensor, d); const auto folder = std::filesystem::path(__FILE__).parent_path(); const auto csvFile = folder / "data.csv"; From 4f8cb56f4c52ae290ae9fb59d55fbc28e12e1fd9 Mon Sep 17 00:00:00 2001 From: Sam Silverman <26936956+samsilverman@users.noreply.github.com> Date: Fri, 12 Jun 2026 09:00:54 -0400 Subject: [PATCH 8/8] Update teaser figure --- assets/create_teaser.py | 4 +- assets/images/teaser.png | Bin 207031 -> 205436 bytes assets/images/teaser.svg | 32420 ++++++++++++++++++------------------- 3 files changed, 16212 insertions(+), 16212 deletions(-) diff --git a/assets/create_teaser.py b/assets/create_teaser.py index 0ca79a2..9d42745 100644 --- a/assets/create_teaser.py +++ b/assets/create_teaser.py @@ -12,8 +12,8 @@ 'custom', [ (0.0, 'white'), - (0.5, '#e6d0d1'), - (1.0, '#9e5457') + (0.5, '#c9e3f6'), + (1.0, 'C0') ] ) diff --git a/assets/images/teaser.png b/assets/images/teaser.png index a27b4555b4527616f3b3a273da910b38f41be18b..24cf0ba630fc47e64fa5a5717553530d46748842 100644 GIT binary patch literal 205436 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

=^3QV^a6ngh} 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 z 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

|Mf@oMB4Y^~|Qq(ZfYS{CEeNGo%)H_gjun zl>XXlnz=O2m{6J5DvFEW485XbvKT=E_B{Gb1_KP22a1f?Jm}H)m1ZVC`r&O% zFa`I^x8t!`d70zj`g*Dv;iZu;nL)y%$K(EaeHcjI7ZJOxOkK%}Gv#AB9RS#ToLkIV z3w1}|WOWD&+V8_4Dt$!c0i-AlJ&*YIyjV6FqV=MCcpg&Jx<<GLm!I|#L9$<>dwu(=W z*Gm(&AM`P^;E?9!>vODNwxKiw7PY)Y0SFXvoM0*BX{|2-iSy1nU8}b z&MWVKl@*}}{;{e$%{K3PEHYWD;GK;5k(R~a@vcRfIWKjQ=2#AU(}>Hajx-qc`BtxI zu)hq2gq{$Hur_z7ffzkvrYe{Sx%z5`BEWI4Cz~TCVe?-&M_1zNuZo0%zU*#jelP2@ zX6AVK^CIo!(=cfjYZhJ=EKL<129pulXX%nbHD9)R_cFVoR5%>)0b;22&qjs$FiI>x z$`a7){DzqKWD1>EFNb8Ft$}4!P{|(VL;MJ-8c)^q<#SGYrG?a7GGl$NzxCC-a-puk z7v=pASvn_cGp+Pro`=b;*1Y2?KxzEN9@lyHL%g@lbJ##nZ4gx?Z{!Pzx`f8ARSX*^ zu@)gWe7v^vjcr#W=eEa9Zp*m~1qfjJy{}YqkcB%)jht~?${hE*7*PSCp6==!UD;Kx zPbGYmyLo#@zd3!r!%Ly)$&cft_t>cm9Av61e2!%Sd)m7+SQR)96<5>*>!x)^ia~iM z)$#8jRYI;uHJ?A4xB5qDEX@2&CrKUK|9H-3%7Ev`7_sgk-z|IoW(3lE$G|5&E|?zt z?TrjM7neFV;2br7lMvV5;4Xt_`jdn4{GXUR6E(u%WU?djP_&^aB-oOW=hIm7atGI$ zC)w}~n|!fEPpd0lrObythb11o@^jJ)B$D!DC_nczjMLTUo2m$t1~dc zbZGe;>~(f-90n5)jk~hOBC|V0d?>!d))hejzIAFl)O{V`p_x08({j^==eJdIh97^& z-z&+-N;~SiGK{SmH8s6}rtny{mY~--eMBg+vF$ChqkSZl^J6EsNCGj4$5-tizDPMg z6&^rAsyllM5 z;IngW&aAW`<5tNamIcJ&7cKzD@KQUjMSs2Y(nVBTonde~nq5Sr-Nd!)lQ&Tm#n{(? z+9k=3J(}GL0yd@U@EcJ8R8+KFx4|l2C8rc7Ui}~cD$|bsTooKebc~?_m#{?lZCfH=g9KOU0&+T2%-5P85Mi3W)U?Fd^Ndv8VcfJ>f;vI@;kLTyUTD4Y>}r`uBl0Z=FyFP`w?M9w z7{q8o1kCDS^j^eeXiQhSE4OT6$=HlU#)8K|<|yu85z=E6j79qBM^e4cs<|6f$ko=| zj28GY|H@t!^zqd@-ld?S>Ra?U?M%gLoF@z-eWW*a!zC+BwA zC0(bRQ4Nj0)H!X!C!P4u*LV+Gryul7Wds8<-eRl?^l(y#$cY$6;V#7|dXVtVVrXGS zXa3TI*OYm`M5RL?#QLa@TN8$*DT9_V)ZFO3bHy}5KxM!Adm$bx!#pJR_q3(`S2Hy8 z+csrTJ}NptWgw}SqYC$wbnf2`9ivIc{2SNkb)MC)ho1n>aN`8iS-i<@5B1}8YB}c+ zbeJb?Ot<*)P~7!U{P<0m^ok9%)XXsO9N)rXa&<9mOi$bNL-d?ZbgIjLL`hmNb!844 zImga2g(+-sy|;IrTX&d0Gdv;%l@({gaDm2=4rhiDrM9s2&d$1_#yEge@HkX1O+OM@ z-i_g1=~aLG#TG-?In50E?IFw>i|78XZXQ%a#H93;6=l*nQ&<{4*WC-fnZGijbn(BR z(9dJYJoirNg+Ee7a-aW3>p9q!NH?mt$0o7*M$4Rj0763zV@739-7PYp%0A$pldg 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 ZD^qs#{6P3Og(U!Ws48kI)Ilx7{tqzDFD?K8 literal 207031 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

pdK}e7Mke~o(TAosu^)8qp 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 z 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 diff --git a/assets/images/teaser.svg b/assets/images/teaser.svg index f573801..26ad8a4 100644 --- a/assets/images/teaser.svg +++ b/assets/images/teaser.svg @@ -6,11 +6,11 @@ - 2026-01-26T10:36:06.317221 + 2026-06-12T09:00:35.521131 image/svg+xml - Matplotlib v3.9.1, https://matplotlib.org/ + Matplotlib v3.9.2, https://matplotlib.org/ @@ -35,7 +35,7 @@ L -20.659653 139.499639 L -20.659653 135.859653 L -24.299639 135.859653 z -" clip-path="url(#pf069569da0)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #1f77b4"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #c8e3f6"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> +" clip-path="url(#p67bfec989b)" style="fill: #ffffff"/> @@ -16237,7 +16237,7 @@ L 55.41052 139.499639 L 55.41052 135.859653 L 49.950541 135.859653 z -" clip-path="url(#pb33c92a228)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #1f77b4"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #c8e3f6"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> +" clip-path="url(#p0520cb5895)" style="fill: #ffffff"/> @@ -32439,7 +32439,7 @@ L 209.740347 180.44946 L 209.740347 174.989481 L 206.100361 174.989481 z -" clip-path="url(#pb672c9d340)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #1f77b4"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #c8e3f6"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> +" clip-path="url(#pc7e27f3307)" style="fill: #ffffff"/> @@ -48641,7 +48641,7 @@ L 316.750383 147.325605 L 317.114381 143.685619 L 313.474395 144.049617 z -" clip-path="url(#p87e939fb14)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #1f77b4"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #c8e3f6"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> +" clip-path="url(#p3a3f1666ff)" style="fill: #ffffff"/> @@ -64843,7 +64843,7 @@ L -20.659653 254.699639 L -20.659653 251.059653 L -24.299639 251.059653 z -" clip-path="url(#pccc5039887)" style="fill: #e6d0d1"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #1f77b4"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #ffffff"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> +" clip-path="url(#pfc81166f28)" style="fill: #c8e3f6"/> @@ -81045,7 +81045,7 @@ L 55.233674 254.699639 L 55.092924 251.475531 L 49.950541 251.464966 z -" clip-path="url(#p623a1be48b)" style="fill: #e6d0d1"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #1f77b4"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #ffffff"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> +" clip-path="url(#p1ccb8b26d5)" style="fill: #c8e3f6"/> @@ -97247,7 +97247,7 @@ L 209.416153 295.649459 L 209.442612 290.469018 L 206.100361 290.438521 z -" clip-path="url(#p2403d727bf)" style="fill: #e6d0d1"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #1f77b4"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #ffffff"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> +" clip-path="url(#paa13b628f2)" style="fill: #c8e3f6"/> @@ -113449,7 +113449,7 @@ L 316.750383 262.975142 L 316.747456 259.327056 L 313.136977 259.249617 z -" clip-path="url(#p453b117bdb)" style="fill: #e6d0d1"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #1f77b4"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #ffffff"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> +" clip-path="url(#p885a3abac2)" style="fill: #c8e3f6"/> - + - + - + - + - + - + - + - +