From d6ea4290c72408f14c174b006aa87c28ee743019 Mon Sep 17 00:00:00 2001 From: Antonio De Lucreziis Date: Tue, 25 Mar 2025 00:28:31 +0100 Subject: [PATCH] added report repo files --- .github/workflows/build.yaml | 13 + .gitignore | 7 +- .vscode/settings.json | 15 +- README.md | 2 +- typst-report/README.md | 6 + typst-report/main.typ | 643 ++++++++++++++++++ typst-report/makefile | 16 + typst-report/plots/laplacian-hessenberg.png | Bin 0 -> 9425 bytes typst-report/plots/laplacian-schur.png | Bin 0 -> 9216 bytes .../plots/laplacian-strong-scaling-3.png | Bin 0 -> 38005 bytes .../laplacian-strong-scaling-4-loglog.png | Bin 0 -> 47304 bytes .../plots/laplacian-strong-scaling-4.png | Bin 0 -> 38150 bytes typst-report/plots/laplacian-weak-scaling.png | Bin 0 -> 34501 bytes .../suitesparse-atmosmodd-hessenberg.png | Bin 0 -> 6413 bytes .../plots/suitesparse-atmosmodd-schur.png | Bin 0 -> 6202 bytes typst-report/plots/suitesparse-atmosmodd.png | Bin 0 -> 28923 bytes typst-report/theme.typ | 320 +++++++++ 17 files changed, 1019 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/build.yaml create mode 100644 typst-report/README.md create mode 100644 typst-report/main.typ create mode 100644 typst-report/makefile create mode 100644 typst-report/plots/laplacian-hessenberg.png create mode 100644 typst-report/plots/laplacian-schur.png create mode 100644 typst-report/plots/laplacian-strong-scaling-3.png create mode 100644 typst-report/plots/laplacian-strong-scaling-4-loglog.png create mode 100644 typst-report/plots/laplacian-strong-scaling-4.png create mode 100644 typst-report/plots/laplacian-weak-scaling.png create mode 100644 typst-report/plots/suitesparse-atmosmodd-hessenberg.png create mode 100644 typst-report/plots/suitesparse-atmosmodd-schur.png create mode 100644 typst-report/plots/suitesparse-atmosmodd.png create mode 100644 typst-report/theme.typ diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..962cc96 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,13 @@ +name: Build Typst document +on: push + +jobs: + build_typst_documents: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Typst + uses: lvignoli/typst-action@main + with: + source_file: typst-report/main.typ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7d7c26d..d4985c5 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,9 @@ build*/ *.out *.lock? -*.mat \ No newline at end of file +*.mat + +# Typst Report + +*.pdf +typst-report/plots/cropped/ diff --git a/.vscode/settings.json b/.vscode/settings.json index f8cdad8..9420e03 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,24 +1,37 @@ { "clangd.arguments": ["-background-index", "-compile-commands-dir=build/"], "cSpell.words": [ + "argmin", "Arnoldi", "AXPY", "DHSEQR", + "diagonalizable", "eigvals", + "GMRES", "Hessenberg", + "kron", "Krylov", - "LAPACK", + "Lapack", "LAPACKE", + "luma", "MATDENSE", "MATMPIAIJ", "matwrite", "mpirun", + "Mult", + "orthogonalize", + "pagebreak", + "Petsc", "PETSC", "PETSCVIEWERHDF", "Reorthogonalization", "SBATCH", + "spack", "spdiagm", "srun", + "tridiagonal", + "typst", + "underbrace", "VECMPI" ] } diff --git a/README.md b/README.md index f3e970a..7428141 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Arnoldi Iteration +# Arnoldi Iteration for Eigenvalues ## Setup diff --git a/typst-report/README.md b/typst-report/README.md new file mode 100644 index 0000000..4761888 --- /dev/null +++ b/typst-report/README.md @@ -0,0 +1,6 @@ +# Distributed Arnoldi Method for Eigenvalues using PETSc & Lapack + +Report written in Typst for the _Scientific Computing_ course + + + diff --git a/typst-report/main.typ b/typst-report/main.typ new file mode 100644 index 0000000..fdb8181 --- /dev/null +++ b/typst-report/main.typ @@ -0,0 +1,643 @@ +#import "theme.typ": ams-article, definition, theorem, proposition, proof, todo + +#import "@preview/algorithmic:0.1.0" +#import algorithmic: algorithm + +#show: ams-article.with( + paper-size: "a4", + title: [Distributed Arnoldi Method for Eigenvalues using PETSc & Lapack], + authors: ( + ( + name: "Antonio De Lucreziis", + organization: [Dipartimento di Matematica], + location: [Pisa, Italia], + email: "antonio.delucreziis@gmail.com", + url: "https://aziis98.com" + ), + ), + abstract: [ + In this project we implement the Arnoldi Method for eigenvalues using #link("https://www.netlib.org/lapack/")[Lapack] #link("https://petsc.org/release/")[PETSc], #link("https://www.open-mpi.org/")[OpenMPI] libraries for distributed matrix and vector operations and run some numerical simulations on a small cluster of $tilde.basic 30$ nodes of #link("https://radxa.com/products/rock4/4cp")[Rock 4C+] boards we built for the course of #link("https://fdurastante.github.io/courses/highperfmathematics24.html")[High-Performance Mathematics]. + ] +) + +#outline() + += Arnoldi Method for Eigenvalues + +== Theory of Krylov subspaces + +#definition[ + The Krylov subspace of order $ell$ associated with $A$ and $b$ is the subspace + $ + cal(K)_ell (A, b) colon.eq op("span")(b, A b, dots, A^(ell-1) b) + $ +] + +#definition[ + If $x_ell$ is an approximation of the solution to $A x = b$ then the residual is defined as + $ + r_ell colon.eq b - A x_ell + $ +] + +There are various criteria that can be used to identify the "optimal" solution + +- *FOM* -- Have the residual is orthogonal to $cal(K)_ell(A, b)$. + +- *GMRES* -- Have the residual minimized such that $x_ell$ is + +$ + x_ell colon.eq op("argmin")_(x in cal(K)_ell(A, b)) norm(b - A x)_2 +$ + +We are now interested in studying the *FOM* case and the behavior when $ell << n$. + +#pagebreak() + +== Arnoldi Iteration + +We now want to construct a nice basis for $cal(K)_ell(A, b)$ as the one directly given by $A^j b$ has very poor computational properties. We need a way of constructing an orthogonal basis of the Krylov subspace without using the QR algorithm + +Let's define the Arnoldi iteration that works as follows + +- First let's define $v_1 colon.eq b slash norm(b)_2$ + +- For $j = 1, dots, ell$ + + - Let's define $w_(j+1) colon.eq A v_j$ + + - The to obtain the next vector let's orthogonalize it to the current basis $v_1, dots, v_j$ and let + + $ + pi_j(w_(j+1)) colon.eq sum_(i <= j) (v_i^* w_(j+1)) v_i \ + v_(j+1) + colon.eq + (w_(j+1) - pi_j(w_(j+1)))/(norm(w_(j+1) - pi_j(w_(j+1)))_2) + $ + +Let's also define the following *upper Hessenberg matrix* composed of all the projection coefficients + +$ + h_(i,j) colon.eq v_i^* w_(j+1) = v_i^* A v_j \ + H_ell colon.eq + mat( + h_(1,1), dots, dots, h_(1,ell); + h_(2,1), h_(2,2), "", dots.v; + "", dots.down, dots.down, dots.v; + "", "", h_(ell,ell-1), h_(ell,ell); + ) +$ + +The final algorithm for the *Arnoldi iteration* is + +#align(center, + block( + width: 18em, + align(left, + algorithm({ + import algorithmic: * + Function("Arnoldi-Iteration", args: ($A$, $b$, $ell$), { + Assign[$q_1$][$b \/ norm(b)_2$] + For(cond: $k = 2, .., ell$, { + Assign[$q_k$][$A q_(k-1)$] + For(cond: $j = 1, ..., k - 1$, { + Assign[$h_(j,k-1)$][$q_j^* q_k$] + Assign[$q_k$][$q_k - h_(j,k-1) q_j$] + }) + Assign[$h_(k,k-1)$][$norm(q_k)_2$] + Assign[$q_k$][$q_k \/ h_(k,k-1)$] + }) + }) + }) + ) + ) +) + +== Arnoldi iteration for eigenvalues and eigenvectors + +To use the Arnoldi iteration to compute the eigenvalues of $A$ we can use the following procedure + +- First use the Arnoldi iteration to compute the upper Hessenberg matrix $H_ell$ for the Krylov subspace $cal(K)_ell(A, b)$. + +- Compute the eigenvalues and eigenvectors of this Hessenberg matrix by computing a QR decomposition of the matrix $H_ell$. + +The following theorem states the relationship between the eigenvalues of $H_ell$ and $A$ + +#theorem[ + Let $H_ell$ be the upper Hessenberg matrix from the Arnoldi process for $A$ (without breakdown), starting from $b$. Then, the characteristic polynomial $p(lambda) = det(lambda I - H_ell)$ satisfies + $ + min_(p in cal(P)_ell \ p_ell = 1) norm(p(A) b)_2 + $ +] + +So the characteristic polynomial of $H_ell$ is a good approximation of the characteristic polynomial of $A$. + +To benchmark the performance of our implementation of the distributed Arnoldi method we will use the test problem of finding the eigenvalues of the 3D Laplacian that has a nice closed form solution. + +== 3D Laplacian + +The matrix we will consider comes up from the Laplace equation $u : RR^n -> RR$, for example with zero Dirichlet boundary condition +on the unit cube $[0, 1]^n$ we get the following problem + +$ +cases( + laplace u(x) = 0 #h(4em) & x in [0, 1]^3, + u(x) = u_0(x) & x in partial [0, 1]^3 +) +$ + +Let's discretize this problem using the finite difference method. We will use a uniform grid with $n_i$ points in the $i$-th direction (and also let $h_i colon.eq 1 slash (n_i + 1)$). In dimension $n = 1$ the problem is just the second derivative of $u$ with respect to $x$ and the finite difference approximation is + +$ + D_(x x) u(x) = (u(x + h_x) - 2 u(x) + u(x - h_x)) / (h_x^2) +$ + +where $h_x colon.eq 1 slash (n_1 + 1)$ is the distance between two consecutive points. Let's notice that here the stencil has shape $mat(1, -2, 1, delim: "[")$. If we consider the matrix $upright(bold(D))_(x x)$ associated with the finite difference operator, we can write the problem as $upright(bold(D))_(x x) overline(u) = 0$ where $overline(u)$ is the vector of values of $u$ at the grid points. Where $upright(bold(D))_(x x)$ is the following tridiagonal matrix + +$ + upright(bold(D))_(x x) = + 1 / h_1^2 + mat( + -2, 1, , , ; + 1, -2, 1, , ; + , dots.down, dots.down, dots.down, ; + , , 1, -2, 1; + , , , 1, -2; + delim: "[" + ) +$ + +A tridiagonal matrix with constant diagonals of $a$, $b$, $c$ has the following eigenvalues +$ + lambda_k = a - 2 sqrt(b c) cos((pi k) / (n + 1)) +$ +for $k = 1, dots, n$. In this case we have $a = -2$, $b = 1$, $c = 1$ so the eigenvalues are given by the following expression and have the following bounds +$ + lambda_k + &= -2 - 2 cos((pi k) / (n + 1)) \ + & = -2 (1 + cos(pi k / (n + 1)), in [-1, 1]) \ + &= -4 underbrace(cos^2(pi / 2 dot k / (n + 1)), in [0, 1]) + ==> -4 < lambda_k < 0 \ +$ +// #todo(msg: "Check math")[ +// To easily compute solutions to the Laplace equation we can use the fact that the solution can be written as a linear combination of the eigenvectors of the Laplacian as follows, let $u_0(x)$ be the initial condition, then we can write the solution as +// $ +// u(x) = sum_(i = 1)^(n_1) a_i v_i(x) +// a_i = v_i^* u_0(x) +// $ +// where $v_i(x)$ is the eigenvector of the Laplacian and $a_i$ is the coefficient of the linear combination. +// ] + +For dimension $n = 2$ we have the following stencils + +$ + mat( + , 1, ; + 1, -4, 1; + , 1, ; + delim: "[" + ) + = + mat(1, -2, 1; delim: "[") + + + mat(1;-2;1; delim: "[") + \ + #rotate(90deg, $ arrow.squiggly $) + \ + (D_(x x) + D_(y y)) u(x, y) = (u(x - h_1, y) + u(x + h_1, y) + u(x, y - h_y) + u(x, y + h_y) - 4 u(x, y)) / (h_1^2) +$ + +In this case the matrix associated with the finite difference operator can be written compactly as the sum of two Kronecker products +$ + upright(bold(D))_(x x) + upright(bold(D))_(y y) = + upright(bold(I)) times.circle upright(bold(D))_(y y) + + + upright(bold(D))_(x x) times.circle upright(bold(I)) +$ + +where $upright(bold(I))$ is the identity matrix. The Kronecker product $upright(bold(I)) times.circle upright(bold(D))_(y y)$ is a block diagonal matrix with copies of $upright(bold(D))_(y y)$ on the diagonal and $upright(bold(I)) times.circle upright(bold(D))_(x x)$ is a block diagonal matrix with copies of $upright(bold(D))_(x x)$ on the diagonal. + +This can also be generalized to the case of $n = 3$ and more dimensions. The matrix for the discretized 3D Laplacian can be written as + +$ + L = upright(bold(D_(x x))) times.circle upright(bold(I)) times.circle upright(bold(I)) + + upright(bold(I)) times.circle upright(bold(D_(y y))) times.circle upright(bold(I)) + + upright(bold(I)) times.circle upright(bold(I)) times.circle upright(bold(D_(z z))) +$ + +To compute the eigenvalues and eigenvectors of this matrix we can use the following facts about the Kronecker products. + +#proposition[ + The Kronecker product has the following properties + + - The Kronecker product distributes over the matrix product, i.e. + $ + (A times.circle B) (C times.circle D) = (A C) times.circle (B D) + $ + + - Conjugation commutes with the Kronecker product, i.e. + $ + (A times.circle B)^* = A^* times.circle B^* + $ + + - Let $A = A_1 times.circle A_2 times.circle dots times.circle A_n$ be the Kronecker product of $n$ matrices. Then, the eigenvalues of $A$ are given by the products of the eigenvalues of the $A_i$ +] + +#proposition[ + Given two diagonalizable matrices $A$ and $B$ with eigenvalues $lambda_i$ and $mu_j$, respectively the expression + + $ + A times.circle I + I times.circle B + $ + + has eigenvalues $lambda_i + mu_j$ and a matrix of eigenvectors is $V times.circle W$ where $V$ and $W$ are the matrices of eigenvectors of $A$ and $B$, respectively + + $ + #grid( + columns: 2, + rows: 2, + align: center + horizon, + row-gutter: 1em, + column-gutter: 2em, + $ + A = V D_A V^* + $, + $ + B = W D_B W^* + $, + $ + D_A = mat( + dots.down, , ; + , lambda_i, ; + , , dots.down; + delim: "[" + ) + $, + $ + D_B = mat( + dots.down, , ; + , mu_j, ; + , , dots.down; + delim: "[" + ) + $ + ) + $ +] + +#proof[ + Let's consider $D_A = V^* D_A V$ and $D_B = W^* D_B W$. Then, by conjugation with $V times.circle W$ we have + $ + & (V times.circle W)^* (A times.circle I + I times.circle B) (V times.circle W) \ + &= (V^* times.circle W^*) (A times.circle I + I times.circle B) (V times.circle W) \ + &= (V^* times.circle W^*) (A times.circle I) (V times.circle W) + (V^* times.circle W^*) (I times.circle B) (V times.circle W) \ + &= (V^* A V times.circle I) + (I times.circle W^* B W) \ + &= D_A times.circle I + I times.circle D_B + $ + to conclude let's analyze the block structure of this last term + $ + D_A times.circle I + I times.circle D_B + = mat( + dots.down, , ; + , lambda_i #rect(stroke: 0.5pt, $I$), ; + , , dots.down; + delim: "[" + ) + + + mat( + delim: "[", + dots.down, , ; + , #rect(stroke: 0.5pt, $D_B$), ; + , , dots.down; + ) + = mat( + dots.down, , ; + , #rect(stroke: 0.5pt, $lambda_i I + D_B$), ; + , , dots.down; + delim: "[" + ) + $ + so we can produce all possible combinations of sums of $lambda_i$ and $mu_j$ so the final eigenvalues are given by + $ + = mat( + dots.down, , ; + , lambda_i + mu_j, ; + , , dots.down; + delim: "[" + ) + $ +] + +This fact can also be generalized to the case of $n$ dimensions. So recalling that the eigenvalues of the 1D Laplacian are given by +$ + lambda_i = -4 cos^2((pi i) / (2(n + 1))) +$ +we can write the eigenvalues of the 3D Laplacian as +$ + lambda_(i_1, i_2, i_3) = + -4 (cos^2((pi i_1) / (2(n_1 + 1))) + + cos^2((pi i_2) / (2(n_2 + 1))) + + cos^2((pi i_3) / (2(n_3 + 1)))) + +$ +for $(i_1, i_2, i_3)$ in $[1, dots, n_1]$, $[1, dots, n_2]$, $[1, dots, n_3]$ respectively. This is approximately in the range $[-12, 0]$. + +// TODO + +// The eigenvector for the 1D Laplacian is given by +// $ +// v_(i; thin j) = +// sqrt(2 / (n + 1)) sin((pi i j) / (n + 1)) +// $ +// for $i = 1, dots, n_1$ so the eigenvector for the 3D Laplacian is +// $ +// v_(i_1, i_2, i_3; thin j_1, j_2, j_3) = +// sqrt(2 / (n_1 + 1)) sin((pi i_1 j_1) / (n_1 + 1)) +// sqrt(2 / (n_2 + 1)) sin((pi i_2 j_2) / (n_2 + 1)) +// sqrt(2 / (n_3 + 1)) sin((pi i_3 j_3) / (n_3 + 1)) +// $ +// for the eigenvalue with multi-index $(i_1, i_2, i_3)$ and where $(j_1, j_2, j_3)$ is the multi-index for the various components of the eigenvector. + +#pagebreak() + += PETSc Implementation + +Let's look again at the algorithm for the Arnoldi iteration. There are various operations that can be done in parallel. + +#align(center, + block( + width: 18em, + align(left, + algorithm({ + import algorithmic: * + Function("Arnoldi-Iteration", args: ($A$, $b$, $ell$), { + Assign[$q_1$][$b \/ norm(b)_2$] + For(cond: $k = 2, .., ell$, { + Assign[$q_k$][$A q_(k-1)$] + For(cond: $j = 1, ..., k - 1$, { + Assign[$h_(j,k-1)$][$q_j^* q_k$] + Assign[$q_k$][$q_k - h_(j,k-1) q_j$] + }) + Assign[$h_(k,k-1)$][$norm(q_k)_2$] + Assign[$q_k$][$q_k \/ h_(k,k-1)$] + }) + }) + }) + ) + ) +) + +If we store the matrix $A$ and the vector $b$ in a distributed way, we can compute the following operations in parallel + +- The normalization of $b$ using the function #link("https://petsc.org/release/manualpages/Vec/VecNormalize/")[`VecNormalize`]. + +- The matrix-vector product $A q_k$ using #link("https://petsc.org/release/manualpages/Mat/MatMult/")[`MatMult`]. + +- The inner product $q_j^* q_k$ using #link("https://petsc.org/release/manualpages/Vec/VecDot/")[`VecDot`]. + +- The operation $q_k - h_(j,k-1) q_j$ can be done in parallel as well. More precisely, this can be done as a _fused multiply-add_ operation using the PETSc #link("https://petsc.org/release/manualpages/Vec/VecAXPY/")[`VecAXPY`] function. + +- The norm of $q_k$ can be computed using #link("https://petsc.org/release/manualpages/Vec/VecNorm/")[`VecNorm`]. + +The final algorithm written in C is the following, we will omit all calls to `PetscCall(...)` and other PETSc related infrastructure for the sake of brevity. + +#align(center, box(fill: luma(93%), radius: 5pt, inset: 5pt)[ + #set text(size: 8.5pt) + #set par(leading: 4pt) + ```c + PetscErrorCode ArnoldiIteration(Mat A, Vec b, PetscInt n, PetscInt m, Vec *Q, double *h) { + Vec q; + for (PetscInt i = 0; i < n + 1; i++) { + for (PetscInt j = 0; j < n; j++) { + h[i * n + j] = 0.0; + } + } + VecDuplicate(b, &q); + VecCopy(b, q); + VecNormalize(q, NULL); + Q[0] = q; + for (PetscInt k = 1; k < n + 1; k++) { + Vec v; + VecDuplicate(b, &v); + MatMult(A, Q[k - 1], v); + PetscScalar h_ij; + for (PetscInt j = 0; j < k; j++) { + VecDot(Q[j], v, &h_ij); + h[j * n + k - 1] = h_ij; + VecAXPY(v, -h_ij, Q[j]); + } + VecNorm(v, NORM_2, &h_ij); + h[k * n + k - 1] = h_ij; + if (h_ij > eps) { + VecNormalize(v, NULL); + Q[k] = v; + } else { + break; // Early breakdown + } + } + } + ``` +]) + +The matrix $A$ is stored in a distributed way using the PETSc #link("https://petsc.org/release/manualpages/Mat/Mat/")[`Mat`] type. The vector $b$ is also stored in a distributed way using the PETSc #link("https://petsc.org/release/manualpages/Vec/Vec/")[`Vec`] type. In the first experiments the matrix $A$ is a 3D Laplacian matrix (symmetric case) and the vector $b$ is the vector of ones. + += Numerical Experiments + +For the numerical experiments we set $ell = 25$ as size for the Krylov subspace. We will use the following test problems + +- *Strong scaling* -- Fixed size problem with and varying number of processes. We expect this to start slow and get faster as we increase the number of processes up to a certain point where the overhead of communication will start to deteriorate the computation time. + +- *Weak scaling* -- Varying number of processes and varying size of the problem (costant amount of work per node). We expect this to start fast and get slower as we increase the size of the problem as the cost of communication will deteriorate the computation time. + +- *SuiteSparse Experiment* -- Varying number of processes on a matrix from the SuiteSparse matrix collection. We chose the matrix `atmosmodd` which has a symmetric pattern of non-zeros but is itself non-symmetric to see how the Hessenberg matrix is affected by the non-symmetry (we get a proper, non tridiagonal hessenberg matrix as with the symmetric Laplacian case). + +== Experiment: 3D Laplacian + +All the sparse laplacian matrices are generated using the following Julia code, this generates the 3D Laplacian discretization for a grid of side $N$. The matrix is generated sparse using the `spdiagm` function from `SparseArrays`, `kron` is the Kronecker product function from `LinearAlgebra` and `matwrite` is a function from the `MAT` package to write the matrix to a file in the HDF5 format as needed by PETSc. + +#align(center, box(fill: luma(93%), radius: 5pt, inset: 5pt)[ + #set text(size: 10pt) + #set par(leading: 4pt) + ```jl + using LinearAlgebra + using SparseArrays + using MAT + + N = parse(Int, ARGS[1]) + + ex = fill(1, N - 1) + ey = fill(1, N - 1) + ez = fill(1, N - 1) + + Dxx = spdiagm(-1 => ex, 0 => -2 * [ex; 1], +1 => ex) + Dyy = spdiagm(-1 => ey, 0 => -2 * [ey; 1], +1 => ey) + Dzz = spdiagm(-1 => ez, 0 => -2 * [ez; 1], +1 => ez) + + Ix = spdiagm(0 => [ex; 1]) + Iy = spdiagm(0 => [ey; 1]) + Iz = spdiagm(0 => [ez; 1]) + + L = kron(Dxx, Iy, Iz) + kron(Ix, Dyy, Iz) + kron(Ix, Iy, Dzz) + + matwrite("laplacian_$N.mat", Dict("A" => L)) + ``` +]) + +We dropped the factor $1 slash h_i^2$ from the matrix and computed its eigenvalues for a grid of size $N times N times N$. From the previous discussion we can see that the eigenvalues of the 3D Laplacian are given by the following expression, for $i_1, i_2, i_3 = 1, dots, N$ +$ + lambda_(i_1, i_2, i_3) = + - 4 ( + cos^2((pi i_1) / (2(n_1 + 1))) + + cos^2((pi i_2) / (2(n_2 + 1))) + + cos^2((pi i_3) / (2(n_3 + 1))) + ) +$ + +The factor $cos^2(...)$ is bounded in $[0, 1]$ so the eigenvalues are bounded in $[-12, 0]$. First we can check the correctness of the implementation by checking the eigenvalues and eigenvectors returned by our implementation. In @laplacian-hessenberg we can see the resulting Hessenberg matrix while in @laplacian-schur we have the Schur form returned by `dhesqr`. + +#figure( + image("plots/cropped/laplacian-hessenberg.png", width: 75%), + caption: [ + Resulting Hessenberg matrix for the 3D Laplacian with $N = 20$ and $ell = 25$. + ] +) + +#figure( + image("plots/cropped/laplacian-schur.png", width: 75%), + caption: [ + Resulting Schur matrix for the 3D Laplacian with $N = 20$ and $ell = 25$ after calling `dhesqr` + ] +) + +And we get the following eigenvalues. + +$ +Lambda = { + && -11.73, + && -11.43, + && -11.07, + && -10.64, + && -10.13, \ + && -9.55, + && -8.91, + && -8.21, + && -7.47, + && -6.82, \ + && -6.16, + && -5.49, + && -4.81, + && -4.11, + && -3.59, \ + && -3.09, + && -2.64, + && -2.16, + && -1.61, + && -1.12, \ + && -0.91, + && -0.6, + && -0.43, + && -0.24, + && -0.07 +} +$ + +=== Strong Scaling + +First we tried to run the program starting from $N = 20$ and increasing the number of nodes by doubling. As we can see in @laplacian-strong-scaling-3 the performance starts bad but starts to improve as we increase the size of the problem (initially the problem is too small to be able to take advantage of the parallelism and the communication overhead is too high). + +#figure( + image("plots/cropped/laplacian-strong-scaling-3.png", width: 75%), + caption: [ + Times for varying node count with $N in {20, 40, 80}$, $ell = 25$. + ] +) + +We get our final result in @laplacian-strong-scaling-4 for problem size up to $N = 160$ and we can see that the performance is quite good. The log-log plot in @laplacian-strong-scaling-4-loglog better shows the performance in all the range of problem sizes. + +#figure( + image("plots/cropped/laplacian-strong-scaling-4.png", width: 75%), + caption: [ + Times for varying node count with $N in {20, 40, 80, 160}$ and $ell = 25$. + ] +) + +#figure( + image("plots/cropped/laplacian-strong-scaling-4-loglog.png", width: 75%), + caption: [ + Times for varying node count with $N in {20, 40, 80, 160}$ and $ell = 25$. + ] +) + +From these results we can also see how the performance stabilizes as we increase the node count, at a certain point adding more nodes does not improve as much the performance. + +=== Weak Scaling + +For the weak scaling we generated the matrices for $N = ceil(root(3, i times 20000))$ for $i in {1, ..., 25}$ to get a _constant amount of work per node_. We can see in @laplacian-weak-scaling that the performance degrades as we increase the number of nodes. This is expected as the problem size increases and the communication overhead becomes more significant. + +#figure( + image("plots/cropped/laplacian-weak-scaling.png", width: 75%), + caption: [ + Times with $N = ceil(root(3, i times 20000)) = {28, ..., 80}$ for $i in {1, ..., 25}$ and $ell = 25$. + ] +) + +== Experiment: `atmosmodd` from SuiteSparse + +The matrix `atmosmodd` is a non-symmetric matrix with a symmetric pattern of non-zeros. + +[TODO: More info on the matrix] + +In @atmosmodd-hessenberg we can see that the resulting Hessenberg matrix looks tridiagonal but when looking at the log-log plot we actually see that the matrix is a proper Hessenberg matrix. The resulting Schur matrix is shown in @atmosmodd-schur and the computed eigenvalues are the following + +$ + Lambda = { + && -187078.67, + && -181294.17, + && -173634.23, + && -167725.76, + && -160474.49, \ + && -152024.13, + && -142505.34, + && -132037.86, + && -120709.76, + && -108473.08, \ + && -93768.3, + && -83850.61, + && -75095.74, + && -65634.56, + && -56074.01, \ + && -46728.52, + && -37822.94, + && -29538.87, + && -22025.98, + && -15371.79, \ + && -9907.26, + && -5664.09, + && -2596.04, + && -739.49, + && -60.07 + } +$ + +#figure( + image("plots/cropped/suitesparse-atmosmodd-hessenberg.png", width: 75%), + caption: [ + Resulting Hessenberg matrix for the SuiteSparse matrix `atmosmodd` with $ell = 25$. + ] +) + +#figure( + image("plots/cropped/suitesparse-atmosmodd-schur.png", width: 75%), + caption: [ + Resulting Schur matrix for the SuiteSparse matrix `atmosmodd` with $ell = 25$ after calling `dhesqr` + ] +) + +Finally we can see the same strong scaling performance for this non-symmetric matrix as for symmetric the 3D Laplacian. + +#figure( + image("plots/cropped/suitesparse-atmosmodd.png", width: 75%), + caption: [ + Times of the Arnoldi method for the SuiteSparse matrix `atmosmodd` with $ell = 25$ with varying number of nodes. + ] +) diff --git a/typst-report/makefile b/typst-report/makefile new file mode 100644 index 0000000..a3ea3e6 --- /dev/null +++ b/typst-report/makefile @@ -0,0 +1,16 @@ +SOURCES = $(wildcard plots/*.png) +TARGETS = $(patsubst plots/%.png, plots/cropped/%.png, $(SOURCES)) + + +.PHONY: all clean +all: $(TARGETS) + + +plots/cropped/%.png: plots/%.png + mkdir -p plots/cropped + magick $< -trim +repage -background white $@ + + +clean: + rm -rf plots/cropped + \ No newline at end of file diff --git a/typst-report/plots/laplacian-hessenberg.png b/typst-report/plots/laplacian-hessenberg.png new file mode 100644 index 0000000000000000000000000000000000000000..78b6af6559ddb528798c1f7c2d0aa699f53a3775 GIT binary patch literal 9425 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 literal 0 HcmV?d00001 diff --git a/typst-report/plots/laplacian-schur.png b/typst-report/plots/laplacian-schur.png new file mode 100644 index 0000000000000000000000000000000000000000..b552f2d5f8b2405c79395c32905060a8e9e2815a GIT binary patch literal 9216 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 literal 0 HcmV?d00001 diff --git a/typst-report/plots/laplacian-strong-scaling-3.png b/typst-report/plots/laplacian-strong-scaling-3.png new file mode 100644 index 0000000000000000000000000000000000000000..67fbcb65b986b74cc268f1873c2d558f7263112e GIT binary patch literal 38005 zcmeFZi9ghP|2ICJRN7RhQ%a&jDWR+(OADHW?CWq;$R1|MSVkL_P?i)8vhT`n#!^X= z?1n5uC5*i=_T_%PN9Ve}*ZsJD_kI5Xzw@}pnQP8xKA-pcdOe@d*YiCOE^DZ6-NdyC zgTZXYUO2Cf!K`IqFl(mR*TW}Sf*XY4Uov=QL%fcY72e&##S)`#fxltzgtxc3a=^{f z#nr~iQCvh)MC|y1>v;SPS6NX}hksol;^bm2dQ6H}8E&%i#swo+3}%}JdaX%OOt!&b zLce3rpV7VfVubGDrORAe`sHd}eXR$3_P|}?1L?6vzPehwC0pssy7u(+%sdgp{36{v zLiR&inw|;ML@j`jo_YVny7Omt?>Mg%^2+HTTTXW9^M!@0AqNjyX!h4#Gpl#w5qBM^ zE9r4R`{Bi0*Fv$MO=J=@1%vTTwAYtry~D6Wci|tlb$`gR-kkCE=rgo*eqIdxs=EZsp-=u5-BRdJei$N<)t)Yz2ZuVndhjaUF3+8 zU28^Tz0b5bbF|ao$&)7+)zxXvRr{08mxc_|Qc@UUkuZ1R7JDM)+{Y{wXY$+3LM`?f zQ}Bal+Dhk#(rHxpas3+N%vff6c3B6B)cYY&Y)d??-sSD>b&(3*luw^NaZnX8m_Gtx zJ{chjvtQQ+?iE+rwQCn~@mCe|R~7H@bL;5FqscGgjB>5=jSGd?rku)`^s9JDCHmQB znLSHm?vdiwL1tdRl*z7jGV_f1;5_Sko^+Gb$7bm6G2PxX^tD;drJnA>rbU+rUbqI4 z+HbGhJoRSnw(SjTFbCgS5McS>{osD4-t$w9s=VI({#VCIVm6bfl!%)sa8@xOYjgbp4&)7aR^C2{>RkH?Q4E4^wFA~eegTvB(br_ixu7g3Y@BFwYY zqonq~3g+{0w6RIeD(>eJIC4bj@L`pKXwR(HZ1Wyl^0b?CPg@zaNHazO=icS)&z}nK zmSe`did_kGLfcUp86!zaNe8omN8)u2j}M;XppaqsC1A_Os&UB^^U$h{aw;fYmR;Jq+S`}l+}|HikoFpIBhvs#*y)SLTjqnO_VM2E^(ma?0gnx;PT1v4na zSA4T zP>hpfd?*Sli>~t1U#=1-Yo)`ZqqEdROQ#+ex>p75r+j}XgyxLa+B)V=FJES6f2yqw zZyRPhHP=e_WMrBY&bPG}ImfT(;7-{qZUqZbp$TrCv|rARad)T2Wh}OOji*f4fSEg; zkkf7-DdU=C_4(P$$^cHgt|DjEQj>XRn|ZeR%6wZ$f_t||)yky&SWz#&Mz}B~FHcw8 zy3U^Yf|hPDJXx>U7Isu8C`}53QGL&biQRnc=+TqVK)Z`#0?##)o4LiU9?ijMJcBin z*}7ls+I^1>o8)|tK-kt@Vb`LGL#dfhBc48u)Y8(ja&&Y|?~9UllER5Z$aqX#Tgge! zqI?RwRyNlkmDyTbTPwMNgPT#lGN8E99(K)V_M3lZEA`ihed^eLScAkjqnYXH;-W=g z|5%ys7wXd&MMVe*L_-40jU%eV{q^D>3;r;t( z^`|Evkvt|nr{)G?c&A;>y_tGCAs*lEaTXY_z^$P#q}dAI#hNV2&@pj2IVz3V-rnA? zXMpP~FSn@hlNzV()I4o*QB2zYOG8q2vxZzP_sJ{g(=E#v`$TJJXJ@5WR4^EJHWk?B zIPHrUANJSBWDBT0WxyV%!6UO57rkIPt5^7Km179rP~$ZBa!y~^%qgPl;NXzH_r1VT zAt5#E7tVePOHN4B-$uKEF6wzs;sIxJ9_IE3U65Vi<-f zgkMirmoZLSp~4uYE%6+KxNp5FYp){)!}vR1C9o+)E1rMOO|pDAi#j#ctT_zfRPjgk zcZ&OX_t5efo!W^L!9IWf{8LShUH)-dS!0OrnNN#NMW6}!#M-H;DXHwX?wqxIAuO!l z%EgZrQ`Zr<`rOcxszd1Uo*9H?-;#x+@?+&ar%!(!z7&1hD8^?#b&NW$K)&&AMUNem z9ci<*+T-U)9hDL|e0aXF(4^2Yq-E&lq<45k#4u@PA!e*(Qe$blu$(sgtC#R@gqr~CN!n~_h9P%rRlU#~EC9tW#q!QL(zVNa_ zm96M$wTba7{aFlRC1e(wjqP^ zd74%m8|LeU*8y@6S!E|bi_>zgHOZc1#j^d+uKr*W^S$O=`gMnFXHzH zN5Uc_(;z+Bb(eU|51X%~y?_6nHBLARJ~gX+nYi@hh+^YYVH144{7i~!Fb`!gDT-sk zyUSp*{ujy(5J?1*n^SMC-7sIjE9Tj=6rt=AZPAjSw{voHJ3sG&y>#FtD}9fZ&X@@Z z2n?cJ;W0o?hIut1%{RwLSiEBsHY+L8!;rq-+JJ``I|vK9SmX4s_vbd*pcDmnjN2uo z&$zu=q#@gfDYSL3*!j)7k6+f%sI!>aw{vHFy~4sJfJDt?_wLjH(K15_#H|qDMX?*U zen1&U^6xj8(#44y%8w8=37aPVrRACOHkcI&(z2KOi&Kr|V}v$ba(k|IP46$p{BU+# zFlq5>?X#2T0M$)oi@Ww;BKyn_QYP!<2#v~|HiJ!xu-A3Yo_%+wubw|yhay>jmTVAGLjGY=6a9b)(pWU&V69G5o5 z&vFtZYU6#d+&@-Jaum=g;4zjS^)1ECeBz6&Dv1nKT2L85w978y;~4 z%x#SLOV*qJ#ukjaDju~B)22r|cX4tasW_40xB;&9Rld}$YiXG%CN6H7d(v&+7Iub( z)xz{B0M{JKR&=v7S8ARLzo-+xu)U$;lBwwn{vJ^az*vc;MRZ4R0I`u0HX$!GtRu4a ziAZLq{rgW%fm>;$K5c8n|NPVHpsB2UFDEBwaqpT|zF7a~{qzn z<$ZYT|Lsol+c~_q@^D{gb@;#Wq@XjXgWLZ)%@cf@M^nkRnC>XU%>l80U4~Wcuq;`l zeRNtQ^Hz|u61wj1qsEfoj=jCT(z}GVVLd&)aDbkcx$DM0_9)RL)pY<19upCH%1?l7&}{p% z7h!S?#_&V$uM|j=si~Vi8*cU!|*R#z|w*jFEPfc+9# zR?p9Z5f>n`iILi~{q!n{yzva7U{($b2+%P$juZialZm4i&}5TrZ0Dy2KYjkJtE(IK zA#h)^Ub=q%0&$!C)MGQBIm@L!QBvc(dz%Tpfzky=)}tNyvH%|tko@@Z0-{he-JYUV z5$*@srncugbV@BvB`fLyIEjmom%Q?x-5YkHe&IUk&fRd2$$pfH=3!ey0!#kzK}9`M z0t?f#OyD6cI?FR#bckcc19{h~|FpbzjqzE$9@eR4dK+;tF=FaRsOB+IQBCQt8+XcP zzi;mA>l@6Xj@jl%LtYIxFiQrjKiu;K539qcfM6JM?dBcO(!OfrI1 zlxfEhEH(O>)GD1};A2xJ*1HiY2R}!5n+=aG_GXuwW!vsM?IIyDU$4s3m&f}nV*th` zB;m)8YuF~gt@~hB6R@F&=h~c$O=V$(^KbsTvXY}FQhXlB9ySW%LwdxfO`A9jb0I0Y z_J96GTI1WGsb*oj?|0WN|~MUZ_5`xhIFL!p4MsH;m`ZzQgaKyD@nHz!>#*ebwi*%{Md_{nojwS zz|etXk#xO-01-mS(ShiPlB)dd*E_0AB0CQZM~=@DvGnJ=&5^Q%w6U@UM@UbG5V3Pj zMIy3FCO)~v=$M;l&(9NAmL5Lbgaw9G;3f8;%(;y2+B#;mufZ(RPAhk~<=-L6(u8WJ zo<8KKw)#hCh(dRKo^-UD6JKiPq%>4eHO%DET0&aDJfOa*N>20Hm>#dvaVfZ{;zW?G z2_jl)IXT)WeLuA;DxHxVPdHnTvXU8Or>`ZolKv^bclWK?^(}QdjCFqAeZDt z$df-sslY<=VSyvsM<2KZq;lKopGr}Ez=m}3cziOGDA-DA8ycsP3@F05@}QOc#8R{# zxj6jK?cKWMaIyYLOMfjw7dxb>*YSkBrQNMB>~cJ8f93OHs9YraFHdqjQl~UNKDdO{nOr>Wzd{P z`KG=4=OKkaAas;?C&>2~W+)zvo4SpW}V z5V-Gc=CmF8@;b!J!UL2T%F6OWaM4)VAwIr7H!4bh{_zea>FMb@5acxEnYzjPhIE65+F<)t|mwXptdxrPg_>fM&+XEA%ke%QX28o_H*8|6sB z!bG=_mM3`y`1w1Pv@la`T5fG{O3KmA2_ z>vT}fJ<5IvcCHKX5eD78hX&w&>g%0tX`q{+;F(qQeN(!L+?Bo4rEB)X(q`Y~FBT58 z3W;Y)nlWSM{Y+x;&9({9DRiO5gFECoU*7WNx#F|f%R3B=;Wf5u>M zaq)}uJu-alwWv8tr}$zke#5H+v3%@5_;;{UILNa#lEJarLMF*7PVtp=bW2}JcE&4H zxZy*W^QqlB*|p(OnJkR;>OF)!%RPP~6viQs(>&>&x7NXxFKS;ob0f9)YzJTP=|dGK z@Q^mIOK2-$q512;s zRF`YLO?8OCr;i^SfHtH;Owk`Mh3kkD)kjcb-sf0!#@y@Iy@`nld>hU^-?)AdKZJM^ zXo?xY#%w=4+Dn}4iy*8l&A87?9Xi1cqV|O*--IRXER2W;?m2ljBrG&E9ulM7;_NQ~ zO^v`Pj$%=N=ch-9v!9U3nZ>RHw#$oiYdVbaQYsBQ{)${HODzKN^FY|8=VHo88a;gJ zS%dA||Hy(7uzL{QGA_CKn$#{3VHyWw)@+4Gu30HDH8%DQZ(XO3p<#-QYd<5eS!4KF z;H|zrXH+j=@2>RrWV-1|=^hg~RQEjy=J4;0&0$@VWOGOuG@Dmy1xe0o)_K?V_%Hqm zdRKX#eY=>jQBFebRb^#>2_QV^*EBab=ld+p^NpJ{Jv(_7T|sMW8}{4h*l=f?!cE<5 z|F371R4-q+At1Jt)mh zU;in;&CjoICvKjmeDm9fUl=W{aV+Ge4ZkC@;n@P$VAoDnwu+wOfDLuvg-pCRUpx8p zFf%PKNBftvb54F&<D zdjT9|0v!Ydl&ae;vNyt3-XRfLf3NP+7z~ZY=Mx+r(v$JunHM#Jv!9Os9HM)~6eh^Ykz$q)LB}cJ7~|GI7|VD4+L3EDHm+$MxXe+#PMUaD zGEEo-DS!L1uHwwGeSR+?BG>^eU$!*MHULFMb!r}BVX6ph(|E@Aw?PLlvTaSSP4#)O z#P6)YqJrQ2eS>0~N}}XgK~<>;o|3Z43GNF0A$$9x#-HNFsIJ7W2{RPlzhg>$SCnq2 zp`A0U9<}`x`m`lQS3vb}O;{?ya(I<2V*c=h+g3QUidFA+KzQ+Im8lMJ?`YV8U*#68 zkCQExq}7|hgHVU@ee(>!+Lnq2WlkJ_aMe|U+$#)xG1=*gdHYuCr{NksQyqI2%2wJJ z7#K(a0zpgGZmy__l^;>zpyV<(;GXzR?{GHJ{q&;;PAHH{%VCdo$j{ zb5_^k-6PEsdYy)ygM<=9VC?#C$X&~w`yd?8ttGal_i;1{5>IMLiD?zL>!T4jDlmGa zI^%rifZ703#X@D3*~YMGy4ay>iUF!U52hbfmE zD>_%cH0nfXw~WAsKt6)_A~pC#l?Q2diH{y_`6tH47?_%7IMONm^+o|uW1GIdz0>#W zCca{;G-JBcDT3~(nAUcW$%UHrgE4l3#u{13s zL)X;QG#%HqO;24taK)n*MsY>L4oZSr|8D^{50XSf&UZ^lL$4?x9%9(;TkP>KiJEKt z3E~A_;#kLC`r+%m4?*@aKw<&Xtqz{^V?fQ0rlTpJXqR28AL1nESjyCwU;J4CQCI7K zhqciwzk*302l2L`)B@n1?~ihlaOjZ00pWK!b>9uQMp2n9b4~T7zd)|>{W=AddZ=t+ ztQkez@87RjT3I1X)H3cfBex=pNRX|a9RdDpDpZ$_knth?Pzo$6D&k8Uym4v@(P~9S z^CX*Na&jg*NtYTO3hAv{QR@OAkmWtAM$qpqC^s6Y8~_@^G&SfyA*r60mh*W@fX~{f zd8$*Uch}e535pF5Wyo>PXLaB@bPB6j;SY+W=$3Kh#!n9?YcE%?#!iYX#2_x}Y6#|p zwIa!aXuda4&R^AZ*wM%N{k~;c_TXGb7uK`KnoSxt&Pv?=6ZUhXyFd>t5_9iA=M7m{ zLiRD;(EtQJx6zJ75OFF$eE4+Ykw*3~lSpf5h^0_u+wE`dE8L=sgDt9~6AwcT<%ds> zh3>|}cy3@z&jG3P-28e=zox0V845Pnv{Y|B3C)v^jcH%Fl->yuL}`PXnwpM}PZ`kk zix)5cq1`N@4pqiu@XrBrc0)aBsNq6LC7W&7e+Qtw-~xHo|vhL+Os&3=Io9M{VuxbwOuST1(L*?BIIFFY^Aczy1=0ZH=nqs3Hvdp9x(% z*^YzJnO2aR^RnrmX*_Y8=d6b8ApcU&%2LewEqh|ga_&RhNV9h!6vu-~c2qzhkv`DU z)|OsY)=er0eJ{kRjjOP8|KqZm;lTShPZ!*qXh zUVFQ?^#4gD5v8=GPqUrdcD?q5%t^D4X<1qNFI3_8#{8*^f>>lly9; zq&4?R**C-~2jHs(B9O$2f;BCZAiHvD%yQjCq}eLX^9`zEC$hIA7eV==OL$mV3e?hM zA%`=8hX~2Zbq=-4;@r*_ypT#xqtiOf@^SLLL}S)&!Qcg9&Cfw)!IH4~sdLARp@=V< ziX(Gp<`U;t87Pi}TEurvV!S`vJkrVe2&_I#!!L-@dzX6~)Mgaz5KUaD5=#h^=1+oo*2+lj0Vh4JN3R#LrSAq|xV*ciLk z>_2$#c^86=cs;n!U#r0+>!EMZ<0i4#s3e!G@=R&pB7hQexBwRlAH?EW2 z0=KBNbWe5na>9=EL;k?T+ChZ*af8KBeY5VvtBP6EF#CpAX)s2X4W3eUVoM)?--VD(pEeyIL-sC=?0We4 zK`)C}<0YZ}32Ul<59Ma~FR31ErGIZ@Q8^5Q3wnTE+PR<>^3X0o&)C3rwP!b`(B~)X z_Anof9>pFLwEPQ2a3uy`EZ?=0THNs7H|s8Rp^_CzFqA)`-Mjf%FqZXR-&INUxKLQt z@av*|s7a?}p&1#`ujP03-PbNnHj5IHHepGc817y0)u(i;nHa}FI%~-9LM%VaRrL~q zHpVe%hm8zYCS-Mh&hkPBGNA*pd2haJpgVtM!00qZuAMJPb4asI$@%>}kQnafu^HTM zifl}=AiR*T||AAWO9}JI;mx;|5#tAh`{B!edYvk|B zPkiJP+j0)XfOJ|W+dUvS*Tn6QrHkrd9Ujm|(Rbfi9E|l(LB5B?2(u+fqw+jy{qy_VRbz@2 zLK5;lTgPSya`9tt|DQrw=guwiv62~>s$hjBQ4WQ&1 z|6lZB>jJw6+D@s_88@}v+6m_Gyj}KqZ9vtPyyX9oZDIdGC&PeRX>yv~d7-?6J29WNEVC1V#zS`gkEq{=mzDb=sovaT<3vt6<{oaEJ73=%l%1Y$Sr@Z&u95!?d#E`6W$Ymm2Uzw76dh$MB~b;bT$ zV%4Zo+#X55i>?h>f8FSpSZ20q_FMY;4H;uE+5e-ENc-QUdsdbZ8XoIhdwcVm(oj&* zP<;vXpboGs+1lE+WSU3^a?5B#-Tkt@e(S+X>mYNaYPn8hNHfY)TjNv zX0MX}i4+Yx8sw@$rMTHZuge9723VL5-fqJ&%1(YZK4_c+z zVB#_UzPK*A>TldTd3Nl0`Qk-EZeZ`n_ouG5h!+4VjD4iFy3avD#XxnZ5q85M%ll-+ zr}C)bM|G&4v9Ya%HI8#NoUu!?O<{_F*XU|#9mEoZVa%yWtJ68Ht;(#=W}0#aO@+X}|gNw!-cSi;A*ycE^R1*u1x`#Lvf4WR8=hI!EdYOh@tTHq=Hy>lo38)*XLrD{vYLJEv zUJh&sXwJy|5kMV|Bz~CI4dc6*ADG{vU94QXlW4M1F>YNeZ=y} z6E94VAC7{@DW`~zp02V&hr-oHP;*U$OFF!A)I zE3JE1Wl`VDXW?5hq~+q3X(+TZq42M7VD6m{HdSG)anX&Jh}EM2sGt9(uaAFTrJ+#I zK}YXg_!Yh@!ei{{xzoYE-B=B|QHhn&4ZL2Lkwk$2%}Nd!A~eDH)eNFl0`j{(+)XWc z|M7gHa&l@>lHonedt6VX-mS9HzssLh%42qmn1Y!~CErNFwnY%CYF};#z1#4cpX`D~ z@DU&(;O#F~bLPtvoKS}~YS5ZpwI;Lg8u`wH0ev7(q-^$zH+W1Dk`ln0la}&ZGfk4A zI@I}nj3TuPN-n=;Ct`l|_ov0iDglIzo*rqBM`jyjnF5C3;_8~|n5_or8`6W=ZwU$W z_sX6#+a5>Ddk(>3Dxd_uYLReJ9E>*xA~tkpkyD0agIBctbNZ2(d6 zDDBn{#(DIG?!&WOd}y?$qu z#;?I#&#s*>%5eTY&7@?R9F7SKGtHqBR|%dto}HB_ZLqI{0sB(m z5an1lX9b|#gnrTR5UZxb`Y)$IIm*WmYNvOyo2(7-UgND(d6*{IYP7n{^MbE7to@2o z(SG-?m*9uALu^=~Z3mbx`#Y^+EitSsXJ`L6AY8zZ(34qXr z(D&=!oZBX!fD|`Wl_a$zKVWh+@gmq@$0fnQxtY3o+moORmQ~hv=jPVCxw1SSVX!`Y zfw>LC7I(;9ESaophCpRlU9}?FSL7Xr7HT2>J!!=6YkCvcpqRm9U2m5XG>eT2m{@XpJb@!5A2VffH%~MN&1Y zLENdZ#7tl>bA_M07?PLglj_zsRL7o4)>d zn`TfNjr*0cio$$(;rWL(UZenr1f8y{JR>9H5}1<<;j`-&*59hEzTn$Zz)3ltO)~Ep zonI}QVBYw{6M*U`po;Uzh&?iMAwLNcfB`uS!cgW>N?(Z|Cp=S8c@)MkpTpSUp`Km2 zA8j+t8urgXPKtLTZu!R$r4xFw*=PnWY6Bencj)u>GlsO_@L#- zCFhm_KB;`j;n=2TO~uTWMgK;VbW_=%+Dvsux;(*i>fHqADy33-hSmg1GpRbsL!edZ zgQXmFOa7x^8Uj`6RYCEI{yZ5%+k>)=y~}eIih72|*PT^SzuxVI!Ho8vHexBophz2& z^&P;vhVt({vc;wTJ%QtrW<1UDs+@|)nk6zFk;0+$3_>3(`?~!2C{+V)X9#D)40d6< z^Sk{n?KorIybB&t6aO?0E>?cWsr8SMJAyb>(4{HfTkIY+(GAj$N(8Wh_bQ1too z#n5|+*+y<5+0}&3L8G&0%fVdCCXb5V! zY+T#a&C~O6^@DajVR zs$Ag5Hv?O*{K81?JgC%6cn!OkFOXX^j9fovBTW%>8nDh^LI@FE3IErrJojy(^zCRs z+0fD&(ndJTfU17Z-_OgC>ta()+ApVWUU7dp-7?zfz~|IlzkVsB+0M=HZ*NlSUgCds zj@iHJ}l6D^>f2)8!(e>p%{^u&l(vpjTIE|f6rTsY*u*(W)ojD#KNdy(9d(xQ>s z{`~gnQlb^3m1Q&fKhPA&bxJGCOH8nK+JN5)S&0{`$ef&uVUfev7Nh?%oLJlxd zUP#(t_-|0Pb|33XjaeG8<~nsF7FCjz19l?^NaQK!E7ssW@+0g^+Pq*ch$UY8#fQW; zITSw|!kxDeeL-^- z27~$GnHSS6MWpIr>{|bWO*>NMROkn>#L+`O7gcGd;MPaM9-SYZ1Gpds5cd)o)cTZA3O*~ zR0EI;2!Y>H0R1MBPpSKDS#n<@<(J$nUL6c}Etub%VCrER_8^}?l#V>@k%JByI&>DG zQgtpxo;&en>N$c%-Mx?me@^-1!G)vU$QXjTaRN%p>>J?Ji*cD(@iN#GZQFA!Cy1q# zG0HH$a+g6~qy)#y;r=JE>#jz(ju^$eZ|Z5(T)+5!l@8wB^9RxQyt49Ohg~)ePCMEW zgcxi`wT?!Lxjf{-Ev78zjc7)O$zwNWvHgZeXQ7ulfH=LujgHLDZNm=CFW`{1*D_#S zSaJHg(rhy4l=>>;GRbV&n(p01U*&2C?xG+@Gcc!#`uy6geEz&3_+h~x$1A?&j&HZ} zDF+R8Ip@f%g<08JV>va>0n?0I)oU{yH$xwl?*AQ9gqfv}`y`|DkzfRF0|K3IQL%o- z5`+o;LVphYm6@HAM?FKpq7i)D=X{dQs(SCc{S4q3sEVP(OF8W~sTFUXRF+hpOkeQM zh5AAJsjAzq0{^ZQ8C&xT9K*~E6iXZrhuom(^(}dq#@!mN< z^zfO`6iIR=xxTKhVPH}AE>hEO^ z=dZ~>0Cz^z^o8)_ZoFOBDs?AzBKNJL4p^s_otP_wW!Ymowz_F3aIg0G)gDkHyGScb zl<5vTCc?9@`$3Iod)}!^&-xyD1s0rYp^s0xnc^^E>m{D+1QWD{kH0_3ATy97&cPv* z=5T-=0tFA(!ef=hVC{UWv9z~KsGIKSD~d3>c=w@L_d|#TtT}W19nVYax|=Fc9!W1M zFf5<_!FeoOwD9+J2V>pEG~(~AeGq)VZSzjE%f|S~)`;x3+8BBUQM2@SgE7!x1ca-r zt2dM!D6xEhjd5?Is9@{fbj!*b{LCU1Wd7gN^5z+TR;c{XH*3L4{ED)btr*$7J`dJ2 zK4?0&R7EN1cZ5jL3Ey$QFZYGvgJU=%=(GX!iS5OgrStOmPvCTe@azXED=dxP+s!T<& zl!Y2U7A0&xu_dB!{KJDMeHu8_j4>HTRiU1OJ~foy9OT;M~P+ z!zh~=;AhR3{K0R??n4x1uB_*f9xNQpsT&NTmP$b#jJma}4;r$tpZA$McPkU}>WxSfp zIQm{u)^Jn6+?YpM0edefS?b8_hWyY0l(PrOJu6FY=wSXhwQGb!p%Lc zP6I3YqNmIo?mP0y=J$VNXU<4Jv-@2}{y*}YB%4Tm>01@nkx6xmD_-GGpCY^G0?rAH zaYQ(v)^R)rjvT{56S-Vv{Gs5%M#c1%R9-I9<**%z`>r@$miClpZDl2PICs;Cv~DxA zEI4lmc3h}U+o7W<;7gu@(|>8!_0bEs?9v@mpdmnY*l<~m;YLMX*ath0d>X{N4N}Nj zxnLTS_94b2VS!SGZ?g+E( zy!@@{Ki2vGZX@vaRJviYduIEU$Rr<-URW;-K+rF2s-c;l{H) z&Fh6pb*ngp`!Gmf2OmBBuB0*Qkv1kbr=V_r3McA46QYeveYjhkiG=r;w|C%UHy7W0 zQ#oJxy8JP}JY`C2>Fe^_)fmAIHTH(eF8qi(<<-hP;3KtZ(TM{Fr?ct#)YaYp=FIkn zTOuD$Y@tifD=Z04s=Cx<8t9kCiT5bzl$+0bI%IvZCwQVxOyBY4z@O2G($OT(hlvE2 znV!?}O9PL$^kh#}~q&jlixLR2u1^vhfW&xCOTo~P|?eYDCMDM0yBJ;BW!M0w< z@)LsdxaGHfl<9aoW?zBmb1#G|+5i0fodfUeXK`KkgJ9sNJ&9mQN14CYOwmN`;nVBb z#y_EE&WJqN#>h~xuC{SCri;MWwioOt-@9GxUi3Z?b72Me2}Pl{kzFdX0jzo z8`W1G5ah79=gV>THB_dvc-=}BC_nhBD_2yO$2X;wMbr@w2=0zvZS^LDC_RPt8?iyJ3WqzG_Iht{@uTj^UJc~VkL7IwY zRmr^B@0!k{k@9}^ZLKi9SXa$mL~rH&G6m!&S?Wx?OULs$L`@j%aO(P0>@s$V>HnJ4 z;LquulJ0MsxySm^rkYKJ`iL3EhS@8c{Hx%r06E`^KY4d#5BuSgW410oUoKoG5t$1H`LD0U zn;FeLG&5&Xe7XjzF4|oRMKK?avSYSugGnIh!d>~ZoPDMVo9E4Ai%t56Kpj&Ta?5O> z4tIz1FD=kX!!6Otwx;#YTx1#J#=7fv`;a-{HuswSZ?scoC@3z+7HZ`^+8 zj#$1(cx`l*FtE|x)_aavOBXYkEU0UKh!e^yz-P8T&7!IGlqLXSCwENhl3OPw$X!d< z-0lIHRQdvC5r(dxMT+?qMW)(FG8(-migs;}l(}o+XBq%nU2T&%_f6f6a_hzg-|c=G zN{LBuHtNO0UTWXP1C2n-^FVCKp-{Y8`6PP%m@dk{Ht=U{rd3?8!-*4&Q-Ch>!7MGO~3C+1D=Au*Cp)Aq-TxiS=Do) zP>5I{J&rPGb+4W)88rf2ceGKoAoo9n1_RLa8ws%{dy)Hu9P}A>!3T(`e7ct0-;Q9;O|qjX$%p8NFJ*+BAg3 z2}BkWqWc}5Cy&xPy$cKLLVtAbQb?3iX5M2CMYR|}eN#w43`mn<336n7kVKE1wI=Ir<&8XbXfx-_so_^c{_frxyW+U$_rTiIlZ~z`(rY@f0Zt^m45d; z3db4J)KR>j4uEbYK(_$ZNq{}sM`3Z`SgLSiN$sSBbvyUoqkd8bj;+&aqiJpicFZxF zaj7REs_nvqOTYYQo~}_4Qcx42*4)lS5d;?bSyRBpb;F*~+={2dJc(IgQAD0a<6^z2 zV^VXX`-G%yp$LW!=(y7zN3%LJ0c{$WK0Sykdk*hBvuDjdJ*tLyT6kRu8n>MTZb{*e zp!X@x%$KEcrRAl%gi3`=-?N-M(wsYZy54`sBPqIwA|1wo|Nn+ zH5S%3wca)t8rDz=XL;_11NYd9-5YoC=s9CyX>}c_tL5!=?$LdXjS`Ydf7=-g{-yjf zFYojL@7bPhgt^!n0?f~;0u)wMVfA4q_IF1A86Fpw^4I3zkM{E86c{eB4}*GJVIXdNgn_tm*VIp~Sf-d_-(YF1 zop)ZG^enZ$&?`$>IUq0P`V+CMVuZny5kqmyoJUWJH4eF<0R$R}xe*4Q{0DT+7W9IN zB)X195vgAt9J0H!lFL1e>qSXs#ojJRaM>T~^@uhKb9vxGdxj$hLkao(Q%!7XzBgD9Z<7ATPayd z6j~83EuK~%O`|6cL?~uQlzC#UrxkP}cwLMAk~!e)n0_HTlMw(x8N+q~c#b2NbLfOf zb#uHTQ5UH+@r7Ev87oSPlVO#zz>GW#o1%sG;fv>}jZK59z}!G*m<1wzGkEiaGgBvF$~`03+2|(?)k*(Bo3@ zgjC;PM{pLca;4PJsjob-;{$*!^rRyeA*V3xhd83n?aV!5du953COubwW$|0g{NGC( z&>5k%n|T{_)MB*bq_vy|N`;f@N2wMO75$ItRuL7~DFrgqB0W8X8sXa=AlCP5w_SGPym%4gJu14bJe9bhpL{WnN2;-ilo`(0`MRt9?Q3E zd+Iwg+2Nl(=TxQq{wUO=tDjU~bP+guRIHk$C?i%(TLQmH$x=+@zJ&+@^! z+IqXW**bYS+MdRgrg?3s0Uq0T3{f>Ww!&ev?>pajlXWu*ANd7}L&9J$@*9MN#Cx47 zmuY}qc9##F2Y1=2wOPH*L2Y&S$&pafc~SS~(M2lV5gn3+lMFd>BWWqw4bc>NFm9_R zG7~#=sH&brGuJgU$9-&YsVl#7=EcxcxsK^JUVa(4Yu~n1E3fkwkn#WLHzHK^Wdik%zvJM&~-|^ivjr&fUrk$sYf;zw@gdu|tP5JMhf{o!H z%>ZB+K7!!Nj@1ehw5+r~Dx@&%J1lvV%Q&z^+B~A=X-ZMS7v2fA;fsAI<d2+L+gjIZ>}vbV z&YGzqd2`=lReg4Qu2p$9=kO!u2D!Dx{n=YLYt38MjsxdWWqzgYlvG+m!Fhpv0pom6+8R$=jxpg1 z&om*uefy+`s3GHj4L%C1=>KUx;zuWS+PD@_oTNuae70fOH^V7nR}dbDp_pC(KTX1} zhE7wL?t6CnM)|NFHNA7c_e@V#dn%w`-SN~Oxwkl+&epvb@d5>#S{K%j^>2^n4nH12 zC$x0#vIxE${Do&|N9Wb@;hXB&P*t?q)e&{atHvS2CPOQcsvT|_e(boA{Y<{u+-!Ko zSfj3xj-QmW}yqf%6EKT$^KmMEyN(_UqrNwy-VO+A~c$l8igirwBoE&8_zAsu?vdC@Pe_ZH@&)c3$R{sNEt)DI2dI7L=F5 zJ;*vQWA8s3W1a2Pw#etq-x>M!!sWAGw_U!wPE$3)sh_03cS{U)dr@WHN9cwL9uhli z=0W=>p7xg0uNRbe`hW>rMKk_~Ov$MIG(B!SL0Nm{?lPhiS1G}bA07GR9Nv}Rm@D1L z?9sDbulXM*4%D0TC>y!=R-E7y8-Co(R&;zL#W{YwwS1<9+wz`{0l0K`Vz3y^hdXw$Rj zlbdbkHk=htC%%sR=k)%+J+5<-I^L6I6lXaOVw-`qaW z``tU<``kP37~hw1z+>Fm*?X_G=A3J-Ie&kA*8ZJWa6kLP=_X8l&IvdQNV3hvYi?I;6^9S9pJb8DUf+ z(ico-6^W}E;Omz#&2~MfdUcL;#C0byNapkj7?2CdJgDeiI(XdG=*%9yQ&YP>Mu16# zjB111WxhrOuxaP;Yi>kSM+bZ}&- zaqXA%+RWgw2DLsB0@;VuC1rUcfjWXyqE8Q?X)-lI^Ddd+2iAu<{yI(dq&a~N8300JE z1Wj2{OjbL;SA9{dww_PA)aKeV;k3;OQbg>GJf-M%J;PEU~idc~XOI5tcnWiNV{h5F8$d&GGBEKz{G7Fl%t)alhH z`=bOlD1DCLmydGmhj}2dKSGdH8ssMf1!d!`1wj&JRZ?nza_b=X!4*GhJ@ONiw)S*Y z_M}Vf4yPULk7L3P;5V6BgYN2Ax~)CMMFQN$Tf@K1gw2j}zO^p4efr@;BG3xWVJ#@w zpgsZbT$uGyjly+18uj0w zSt?0o=JXt#!OBL;=49u5>&nRsD+vm`_B-ftAb7VJ^Dk@t+xKoS>Yqxg+?;~XFVt~b z%$*IJjT4hJG%)Y5BcHcVgv5u@zlXDHWFb+_Htf@pl0T4$T`B=LDo!_--{KiH%YrUV zk^VKP+&ch$1AL2t^&RSWhYKdk@(?T=jt?&RXc{~lsmDOEH|&@l6MP9JKbM9OHfu4l z)o6NFP`MXyLu=I(w+97IS=0f4Pj;$)uxMt@1YK-kz3R|oUe2Yii?=WhZH^VL&dwcB z10}Qa^V_rgstqrW;;j48E>mQ;!=cVagsOoLUykE~LntGPYa`liOELiq-_?XCL-cRn zO3&0IF?^hWl7Ymf@CP%SHcZN2qMgo@hOLU6_bFGQp_tQlWNDnW{(H$n!xuO2A9rwK z8s)9n#W~BF;+Ee38Y^a@y9YU49yCn%>}r*x^u_{XB>d_9VGH9yzvNt>a>CV!bE=35 zx`2&WNIftdJ}Zp+rfc~R6nRU#}~NACCZ-()+(N6mQ{Dk3_L5k4kNojC1*mG47+E> z5d14Q6L&0lqf1CWL`?=}sR<%oS@K%_BEgFJsI@0|(@OpfsU}Eg{^E8il|WBFH-D1C zf_%Z)S+hppF(=MaKYR5p3t3EplB=#!w*E1FFK437>cc?w#uuy8Up5LzA(_#aw`xS( z=(vMvZC`#nEQ=m<9$742lhNEJELStCyo+40BIJc3cIUyAftl|jII4xxjJ14Su(rAa zqy?hFX?ieiu4gU2sb3*KxT*;k@2_N$XGYK?dj{ZJO*64|d=MZRGV=$~Wlu<|ospeu z{VgK>EuLZ}OJX%g9cPmsK(@+I?8mj2v)^f6K$$Y=MY;vwCC(+d3wH&F%c`DqTS<`s|)GsjgpPt zfnBqTa;vwwZwltaE7x` z_gsAa1rCAP$Pt*ABmeVXXfv*D8~^gUUAO#wlee__sm?f48q8Z^(h#Nb!-|)a5Zv+f zf^lQuq<{9c#9CeaF>{*`)?1uo!+! z!|`!?kiGiq33alnR;#)b8oAa7I+rhpvG)aN)>|@3ethXJS{Q2#EwjDUR&N$XxBc!J zBceH}dKt31w+$AOLXE#2S1|y$3e-(;_iLVbh_J~oQJFcj<|E(OiL;0ngbZn!%7QJ$m zbl69N@j2tmXzPoL=ve2(EaXF%9e`-#bvQKk(q~_V5xeXZlfLCRH{<0`H`8cOC|@c5 zDGR@Z)3SbM*mT!(@`umn4kF8WTs@E>e%1I|gp5@T+;}<;`)MV!JybfaPpN&$4Y|Hc z29v&_5re}&opVd`-QW`;nUl1$r3JT8BPTV=jeH*;xprBt`(>c;zMnWN-<+UZXsD|Fw50r6 zU*$Wtr;Cn6dU9+#ou_B@JGqJ_z=ShD5cOBmo2VmisQeYs7Vu@EloOk$X?(@JqHas6 zeh6UyKB?Tu2`(yEC7KGaE(sSC`s#c|1BXLZYw+kOKS-6V761|z+!#P_mA7_x=OwdK|jYbVNilL24#(7dFPMNC&A zr!~?2-B>{7Gp_{AgBL`@%wr}vslHX+DEsoIBW;fUQoNC_wVkeUm60)t4};q_guGqJ z$)Hh}cn=oz(xxZ5RYSTYwCE)C_||h;PPk9Yr^VFI9uTzdu8ug*JuOu5{M?UNs+0-N z=+w?Bxuf@Bn=Rg1PNFb@)gBzksGpR?h)lJ7CyUa3gMCvvZl7S943nlLk83Z+uJIY| zm$LEC?wCKH-G7Fn9KPY*IX^z!qh&t&xXvseT^J{}Ii_1mqezSIl*WZM!4IX0F|Dy_ ztW8FGyEN?8&n7RESNVcf|H^;GS!vy~ud&jC-WD*X*;^W%`Q6m0LC)Tl>La+^ z^jw7#W0Nd>WATpNQh@i5)?>Z)Jtsl<#Yc zB&O_0L-Z_0!_`;LoW)xFD5SjXQd5#`TC2(XWN(Z%g+h*`tX00nOv|qXxOi7NCK)a9 z<4W;`wC-XwpA3rQ(@V$HcZXTeV>a0J1O^wERM5R>fwOeCu~{GCbHA6k^(PIB%t~!* zDam+Zp?9=PsW+Wbhbbi#ve6xZvu@~A0U@G}WWfva@|`c=`^M~j4=bzThQC6}TuNDA z-dUrn6HJSKnX{BeVp9OR%JpnXO_w=cesLl485-@F_ag-}(=qy(A z?Zv9x^1OwbuO|@M!at-oY2Zf&7ge;VF4TT;s*G)q^VxecPa0Ip_~lPbs9A1~CJ6wwfS z==9}yHc2#YYktO0&WXK8H9BQC;3r#!vP>qr94IOc!jz zB-n-0c;7}o~hhDbi(|c&WA@wImrK~`-rFCBFe%}rsZyF zHpDo~`46~aE}%;*#zq@QcQy;hMuNX@dz%OO@d}&n%s*b2SW0{7aVYqNi|KI}P92Xc zqY<+|JU^MVw7rm5O0^gF3GL-^Ie>jmJKH17V1aC~kib)y)gS2Fx$t`3KjxkjI}mqtokzH(zzv(>bKsx^ z8NK_9U4pTkzwIjt6`|graYqY!y`*rJp)878-JmyC$jyQto1)tLQx^Burg8msrXx+Y zAe&a(9~bxbWI_vmTdJ;3vF_ebHJ$R2Shc7Or_70Xl}L)#ybDz-Y~m%&tI1lf(X|41 zn$j=lM#Z?LI@>*Vwjesc4KVEP5I=d`BEvetv1dfqnc~zt;!?pP(cs%Js!}<3dq!Sr zza1UX?v5<_m4LqYs(ygf%p^G8yi*>tZ`k(Ly>mFaLcvbzk}H1(%eUez!kLA9a3(}7+Fisb}OgBB?Oax*$W}mmP>${&fxDP)FE943Slxm_)?O@a5h@SRSH)75Y!}e!yw56?TZlf+MbEF|wr!qPq@#=N z$Fh{-1qK33~;Og-`xz_NcnQ{83AGRh$ye4j`qhZ*4JpPHW?+sR1!wYjFX0RTxf@(hxMC9i+>YUcmp&IzKlSXVlv zOTS=^-8S|$kUyw4CQctu6(hV^$!(VBFUhQ^wP#$p)TlW4kE8KBC%%{fO=gvL68_U8 z?1n*=j|F{?u!e^^ocB$XI9jPzwoVCU+MNBdn)+kAZp1T@``gAZzvB&MMU&G8+lS^c zO;|N8lh8#$$+TxK6mvsg9(8&ZVM%shu_;T44)&bMpB?66m{3BY+4WA#rF0#g zxTev!Y{n@N{&p;v^kXsjX?UF3EGKwiZ?D_|fBy7#ri)q?&dr!dIFMs=4!amW&O|4h z4o0;t1b-azCJ|7J&bDBF?1;bCss}4NE3ZANgsAVo7aZOXIGuSlPY|)(EM|pk$xndvQrm!BJVS zHTs9lKfU=D+)s*F4!f95fmQp{`7sHGEE#fQ%aW~nlkVa|%GP94sC;8N_<0_ovsFl8 zBCkWu39}f2Qc;x=cT7uCPMi?|)63+5?FmsD^VItSTu_m@D`iwwqlv;uT)Tvm+CK-z^m=&Xd4I@LM zoNWuEcc~ccQSI3`76*S8be?$}^-}49<$ZLeP~PhIt%!8QE>eMOlXQzokVHnjWk&W$ zg00jvapjW>Yc3u*M1BiQA|3U);pJH@W#{6`dJAFA7lmR~sk}k2V^+GISmiO5gI#TG zzl$c8x8D`t2BeYu_s}hErunjSoZa3nhE17M_F^%QiJWbe(?o@|aRZ6thJy{);^GfTD%44& zrnJlNM`5m0cQ(#N%E)_FcMr>jDSy6TR*1b-suguG9nF}Emb{`l*?EA1CT{ydPXC-M zg48p%dwa?E>FF7L=!9BgnrJFm&g{;n!YSOy}$@(A);GHMd3%DcP4|b?q!cf>8qibc)??& zwA}c=1zs{E!i7b|?3!eDGQ|t#H_!e!c`!Gpz2e99lLLn7N}U{qQ8PVMu9kvh;UxV> zOx$=okEb#K2^aP>{Sl(bIR7a*9*COH{=CEpDEhYhhBP z2g7e0iVCE*v<9u@pV69cJhyP&KWEaZf6JPy`)Tf$i0&87e{nOvlcwJs5UcqI_Go0$ zi;5#rOu-K-+X7{Y;_|+?t5GWqqgOLVH)wgx&^?~3SqZ{%PinYFIy6wyDYnLb7N$e3y{cCJS$88pFdsRxi zFSAN!^KyI>-=euu=a0e+lCfx@z{(Hmr$(JgsqBON+}-eM=L$*A9B3J)Fm*O%fs{tAUTCLytvA7^(I-f z*jHT9d?)6Ms;{kz1~n2g znpAu81X&`&_qqO6uYMPI6789%rbJ;r*V-9p{lJjeLp%*wSEiZm$)yhRhI)o9fly-f z>w=`=Ewl7TNpX$R`3BbRagzfUdA+(RvKLHP^#b1yzYn76v_B9kELb8o5lB=to> zh?1nOv*jq~B5I9n@q@E-ks0}|BDt>YZJ(h0Ed~>_plyB=W74JFB)RXNQOW8Y9wtSh zcE=sm?J7eTXUsEe)qEN`e{pTw^_SO?j%#8X7#+4bw$u2R56*dSU&{~KBAj+`L%+H9 zN5ymrKl!k!QLe$f+Tm= zTftuU_J@0L$GI;y`M$*JM3=NKZNeqQ?aZ|J=Y6qPeGLx0Ix|ZAIL^CN)y(&qJN6p&d=9HzJ`|_y7rtCb&C2ce{ zKdOb~*@qP(@^c1=zkK`&{G5yQQeR^CXnmzcbeEy}bGfOPJ4qMq=BG0$G(FSlmXY96tsdHBEf@wc=RF$!;0#_a=_s*DM?!(fKkGdebvE!k*L=82b!HNbxyc3B$x@qxEd=c$p7i5Y(H zEQNOWfZ)gAuH8>s?6QnCO9IlbIei-PTK9kv{SFG&>Ugm=i3j zp%J4K({#pURnJC7vH0qV3OUDjnU{Iv@IOyV8a$P^kaZM^bz`JnmsMJD*LWt!@*pT! z^#79w6A)z-+iaMg9zAr2R_Cm^eJ!x_!)$9eJ|n&IDb_$3^!^mrJpe&o2+|=5S-3fJBdW zo6Zxms;BFZ3Y~B$*2q?%G!-WNiZ5pbT9!JyoN1g^mJ1|LNzyxxX!QA7T~thW*>-bU zQfx_Kd}jxUE};FBjNA&oPBIUg5XfeDUjqjxN0%nMIHJqyQHrTx?a@3Fz9DSPJ!*HY z=_WJk>4POf!6Hd=Y{nsm@LpE(DE~oLoIvU}wHHC#5B`|ix^3E2%PE$A>;rM!PhF) z?#4RbFgkExN=~I$;tX`%Z=W%bIPprdYi$vTHKN~1_a+5?q&c3GO;dX>9d3^pkVjkY zeHL0t@Pl+{$no0~kK*IQZS%D5Ld~^K>VfDjnkO>(>Q-MzhE7N!UM%J!j1-$JYz} z?wM*-BnFA+4Di?a#!6OY<#9D9v6H1BJa z{b8b_vMVo=JFj| z0;$tjpYCXH1(`B*rF4Y+=D9>KRrZ6ZyF}Q_iC##0h@>aMhQR#}5WDERrI*JRGwi!% zmMv?_?egpH<6|NM9z8o1rsNcup#pL^0Us3|lJ+iBsyEdmlSX{&w%XN{s9o^=1HVTf zHhCC#KljdKH5heQ8NS`qf(NA+H_xsntxC$uU0tPOANwV4k)i24Qz&}+W@pW|c?I zNPi?cfwj0eSApp&by|#nq{GU#eO-`GY%=@pO=5`EUlY%i2$bJC2;Y(Zxk8bw z_JwDF`r}yKA)f3rtNNx&rKFre<@V_dv{%yA2?nwbrg!p6<2onj37i|hPKA}+wZ)71 z;8KEUcNe1~e3x1_CIyCA%E6-bkr_x(G?6Iqc3REP$v862f6%fDZ^EycV@U5=b4&)3 zMPD`y`A$g%&FlT8Iq2xObJ!S?_pKU7=3@f?o9O!yCT7 zb6+vmU6!wv?AyvIhIwHYzPR$AA>G6ApgD7Ze(;9^Xt=>7YA3ve)X+vky`P1ds->@{jp;eb>Z$F zH$rr#UghrRlw7)Q;%JyR8Z=iJ6xjOo#zn}z{8|f(cDsPI2a$)Nyi867MHl=*PFA+@ zmGYG9{EOnBCSqG=n2XNmL~+&)J!5@c3$MRhx~(%x{iAmB%6*~sWIfyBI9sRGXJ%66 z+r41k37sXw@n<>4(fu@=*>&KPzD-AgM8uMML`;oq%dZ4X<|kBeNDtEor5$1-_-fFw zwnE^?46sliO4`K$mvfH`b zl2leQR5QtXrBcVz zc>w~2E~JtXAgY?}W|Fuf7dC4^ckojU6g}sU?A}}f2;=F@viCZ4R|)E~jLQ@cr}C2w z{-rxjFHnsBi}D!~x9TedC{}{jOY|uB-h=zU&nOEqQ30pk*ABNtU++06`27W0f{PQ? zgse&GD~^d|e_}&YWIz{IeY@ zm3H{AC(jg#lzzSZgQiUj%+a%XJti6EaW2t&5tCSHe-(fEt&p(em3rh05Ju>S5Ktm2 z_j`Uxykz2yJ*9mmW>SuE-Z?aCVz2}spnsUvEhTp^djFqI$xTP!)$9XFDE1Q^f%5tI z7oOJQm{gf#k{b1kH@-H&bBTHLPCb*>r;2Px9=QyqapRyS*$vo+6c9&nfNTOpwgU*R z!gpw0)+8^3-BO&jt>zb}{RHV3u1gf2{#U6oSJVA{8GFt_nHLRU40B>Vj zt^q`50+Fpm0%%AAiW7_anJ%hL&!0c< zkI0e7{YP1ytHge!(i1fDbagU|wYvX@q|yI@I#QbXUkW!*K}-?EG7I1o=0HkV8v$Uw zB8buTW1{}#!TE%G{U7t-{sZgLmoBu&3>wc4pu{V^Z9y4;lY?BOZ-`tMf)iQ&!Bh32 zLKbP9YTYA{V1)=OfO>Kl$X#S1J!|}H3RVeS3M~3OS8n96`v;KDmw|I_2gLV1?>}JH z2fIG||6z0f+5bn50@1raIKlszBGCLp$nFL;7SR#CJ@6DJ`Ut@qq@e&RbK3lWNhSQ> z(2H+;P26jxv@zf{Af;kO5%%35rt|}=TOg~&oE%OYBuGmtB8>p6B=zfl(SJxy z{7+3{8Iib^hjRQ+V!?k)oB&uql$=5_`{dmJq`veAto+|3nEnmY*~WciA2LEglHBSK z+3-I;@PBc8|Fp@5C6LP+2OyiFom~c0aDV_q_k^tQe-@sjGAMv*;ky)A26uQ+ShxUG zjTwMOm|Cci`X3Njr_9dRFqn4MICy_)Xc#XEkaFoS)mC1exEU7{^BxpD5TzKXVb;#< zWB~33=OVik0aihM?Eh9-;zFKXabu$Q6_Av`r-Eu*ass$786 zfNEES##(~v%+bmFg$OVsigYLxB5eWc0MR*vDIMM<8bUNhklMAMKO#^ism;Avf(O#qZ#kO0t3<;NACxr&~kkz z&33G;lh>gCm;@+TgD5wGRwMw~R41>0&_34sFd`JHm}duk6{Mgy8w!_^>wI_R@dA+L z1l-9g*&vIfV-9Q%MAFa8tE5$taq8fK0|JIED!`m4R(|qk(DBMHEYt<;lpb(OGP{`n zW_2O-AVg%F*FG@?0C?+Jo9a>!5)Y!50V-sbR3}6%^n%aSj3vO@dM9K75%1k7kqP|& zNoe;D0PL_4k-sx%3aO~mpq72G*cbyagNzbvjEq$^7idCz zBAg}4?>Q~@G|d#jaDjBNBEhv7q3(j*x1OEdsBY(l4y=8Ww-KIB2T@aBREsyG%MosNP~gbBU3e9dbqCRs3k26Dmw`f?ur*Nh1$$y1I9r=!G+)~9N=;PoTmY#9hZd}C z1+%n&fnm9Bf(X$mrbCH5Qk75wGI^_G%In_{MjCMS;MTuqt@Q_q2TOY`jJ2n9OhvS% zKkj70ZBqKy+Q65yldUVjMtK~2dnn6`{OQow8Lg(o% zuvDfp*ghtaAY)%&2}BH2DH0I4nv>TSGLwuz5}-IEqpqZ%If?*Rjhf&*x96dGCuRaT zK|+3Hi*q6(HGx1EU2U42oNNZWI}i3{Di$l{((~aXNOyzkkf0vp7DLVy)SM)~3;-s# z8U=(hTud{97*s(CWlaOJrv+eauj#?-A~rJ*ZyydO>?Yc9E0xJVE|4Lv$V}z)R9j&dxHgUcG7o zqHehg3TxM2#j|m?-0NMHuHrmA*EPAxad_C-y}Zd<9DM(qWG!ar)Kr^T$Z?RWiU-EN zm}aq+HGK>O6u#Atzo$+p7BHcn4Z>lIso^xp<2 zC#UllF4zDj`KyCWdl96m-(MKlMcx9E>W9)&RZ!9No-54fS%nDbe87S@U=5DRW&+ss zyw~_1P+Zz{^e<4da9>^V-U&D=%|VbquQVmkpUqL6@Yoh&nfQ5yH(2W~6tgNga@Sd|9 zBC#lsaX4H@GwAvpJ8@zw-nbwhtDgrbH+4IWG^>Z8Cw>HnR1#^SPj!$HmzGvDFgOspTQ~|JXv-Xq$dMyl;9m94GK#=c zy~bjX9XWCt)e895q0!M$5GA>iu4fI3b>YvSs{k!8{bzYa#ix%SHvl93jL=2D2S}GV zd2$E%RBfZ=Nvw23zE;KC)JhFk{qFQ`+s0h2g2uQz2^MkL45VdjJ$FA)?}n6?NN`RQ z_crh00$H3FINbBF-NMHd6nIloQW~0@W4qGm6bwI5xv!g;n4~I?_1vORD18M=7cYJV zEh(?5p1lA?{S57!HezIG__3+!Z&2UkdH{Dl46#5@rT;kqpNdNnO|D+u7>L2(e$E#c z6uZ$cP4yA}MlVi1B#|xv=@@C4p1!_gGBO6JMZnEI{_x?SN^lonsZoMVUMxNhUY?HL<7+L)zP&=h+oVX`sK zJi&r(=53xZ&a6J@wQ}f_24opuF?s6%~P3 zI4&tF{}~9A?sGpi5HaKcqifgx0(5D_(2$j%pPv=PVXr|KOQ-e4cu%1Sm{wg2izvA9 z;oraJLE7pvNMWbj8`HNBjTlNqs_HwjC(VIl{II(EGU&z(fiOzDaofYOssbGyopEaB zZcw>@XK?c6ix)?vSOBsMRZV?JCX-85X_fx_L7prG21?05LUt$W{Q2|hczqZ=w@${j z7^OZKD`10YSz32?eYCI*$T5aTMm|YS7OwDNK7&X>L|l9uD5t!P?+4I1lYa=N80Uk2 zpNIa|Ey|uSoZtNBU-sxroNmHoQ>-EMcgf<@lzN$v5C#ce%o^y%!}ZZ>(4U|Y(`=2=b3eD|Tab4^Gs|WInULUm z#{;Y)a_KFb9{|(*wyCMj&xV)n#o$vz)>jMc%DX_;@QX`V4$>GX0^e?-iw@P+0iQLPFSY&Hpnr9~d{Swr;|t#{Hn6OFC~aZvXr5=XShdQ+%?ZJZ}av_o|Ua z1OlMp{?gOePamO7fh8=%a7s%Q)Ah2yg2}YQ>sHSf2ST5aSjBFH`8>3kL#d*ztLrXM zi2XS>HVjhLkvTWnEj;%+(nqnWGNQz6Mtc<|KQd2?Jpz4leYCtWUu(fE=N;kB%39LXc-8G<H3MofrzM4?O=#b$XXghx-FJSk}_ei9Z|)7G|oad8nm(=xEcbd8LT zuP!iv(^=Es&krVK+s>Vz;ct6|g`YYqb==pkU8}CG-3)%qHD1WPZnula4#xmW&$wj;KTG+uUHHxocOh}vI6b=5Y{hZo8ejiVv(!1wRkwd*RFA?Rgi z{AR3P#>XF*Ek0f3R($Bd0nrW=0X#2HX=y3q%FHN%cT5JK!(E-K@R~TbbLY+wJRTn& z9i8y@4HkQnD;#9XHQM%F4KFG>dj_Te)^2Xn;9jqX?GpUlo~~63t(a!d>L=dx8vlAF z%iyH7jg1IU#l?g!1@_#lFDMW)Ff@D$vYy-c`T4D_td4*L!8Hquw;j#kdli=oU_xQy z%FcT=836WG>r3G8<-(bzCFJ6e>xYpI)J(C~WMz8R*d0q(bLzFMVpCEPJH zJ9S(eE9&gx@&pdM@9w@AVB3)un{6>~7~KUt5I0lTZYaZCR<*k}w3!E6aavYXU)4NE z+8FtzZ)CnAKVMzf1x;exDHgzy2-&j{IyLg@$X(|30?`O~y+8DTTM>E#ymbGr-jWpl z=aseD>aothkKOp;%87p+i`vlhZvVfIC2%=^h4nAwWx^#l4u`r)sHv&tniBKN!>+(z zwL_58z7&OU>e1Dd%fPsbWWrtE5S6A2DW%rLl)R;M zR5& zXlSSgZW>H6c09Sd0gj22G^Q-diX1x@(EYEAR=;_3H<+=WGItR$36sC&LF^Q4+O_-l z{{fuy2f$9BGA+H)Kd`awW`gvoQ=fs2et)QX!{^%CE2-Zcmi|8a59qwc#>Niy6xuYj zwu0YK`Ul3>Kvi&6>%b~!X&8i1mw}T!IbeyY@K>qpz6D|2bw9uJ5KVobnu-9u>hIt# zXBHRhD!dt1c6OmKeTCpw~WspnL))wEN)oenXgY9=&)9Fs$5M>gwv3$6AvJ^>D*#5ZOau z0t1_i3w-nyP0by<1kOKzEA4J7IB2t1 zcXl3x2@P~Fu$um< zXkcXY1C~i3fS8$^YoGS@_Re#^LV)RhY(hfKr%xM?A3xrwcICvBj6Vqlk!_EF7AI29zI?bA&HCv#i8Nh$JRBW))0LVjFK3r*e81klpynS=7xrw z2_})y;Y>Id-nL%$_V%&y@$bvZmI?TAc4R?-v$Pu?Jg@gD3}%&YJu_em&i45rGD?%4 zK701*drjEOxHv-_5)Q`?lRa}AQzN58iAhN*nVDg&Nf(Bp!OHG`f8?_c0np6McNON6 zQozDx4UO%wnqpvRP!~^0NihW4pi89aWzPVgudBRjWtknhn+sG1ZUN7omYkd%4GZw( zwaxxdHPZuz5Bh_3@ZD~VjB~HgH8qb?tdp}P3|5e)d;(LTqYzWUg8WAyx9{PB zogT1K9{~n^24r?V*Vn6L8{CCuF7Pz%LN+k@AMYnh!^+@eSY!kd$svfm&ihOqhIjOb z7nV^zK0dceK2pfM0?hc0#PfTjqN2o4p1i83w-080d-m_wXDxGCeSLSOr^InT6w*J= z$vJt-q$H~j<*x!m@_l8c00?r6TvSrBc6Q!rV>2wTxCNNR{r_$nWYy6m^U>1yw@vgQ zj@05b?fGf*3M;6(UIrQhDse~h>(|>ZT(|&=LtGm+Z0PIHHq;kCfLtNCgFS~1ZGkrX zYwOn34d-17Ez+$hD&5^ulG5GX-7(k3 z=lh#kvu4)JU-Q?TwOGC{4`=Uv?zpZ`-N)ytoCN+Q@=GWb3SUa{;d2xUa}I^V*t&oX zze&H1!wmoM+dNXXQ83rHvD3DCjgr;2u`n^WF)`A)Vf)(3+Q{6DlZBgwgXxB$jg5u1 z04uBM|M~+Kb1MVZyF4_H;35|-BwtyhP=wmZ55^DCWFr)+kX!2E{TKEzOT%_fFSo}} z*L%x&?eqyh1;u9CRa1YY`{+Tmt*SJvx{$7-n$n}9lrokvVUp6*qqz7Z4KwMkcQz*} z!{x`=7!TZ*hMLiBtAP|OzY{$CC_e3Ot``PQxvcQdx`>PiO~tlxka=p~p!@g2cuin~ z_3*zJhWfw%ktF?8jO5DMYyRA|_DBDITa3c8`S;6U7P0^Jr?~(BpZ*tV7r|ikB*XB0gwNbOfziW${ zr%}Q55)<2wfeVM;-jcmv-B{@8B)TMMoPYoJA^Mq?HvKa>ZlY6Obh_Ul{&h!^ROxn) zDpkNT0fsOyZ}_vXkAvgm+ujk1G?Y4Q+OOA=@NYJAMvA(MgocK?r%!0_Z)do+9IjTJ zmep^q3`c*H4!4?#G&pDqV|rC>?y?#E^=iB5-WX>2$$_!U@uDWpy0IOW=;?mjox67@ zwtF=RZC*ZnI7Nzk30dq(XorQL$&&K&1}8`R=dqR#*{$J*n_UX>$8(GM`T05=kpgNt z_aZnA2=sFzKj4yFB`05CtyrtZ-Cs6$_0=ZDNF5$u>`ZPWq}DAMBolQxV*laarW+_+ z*Br?yB_kuGzv{sB!OLs2Gydc=W1PK5N_z37kj86scYVAY*uPN2F5>^Pv(zsxBh!rW zF1NpQwO&p|g?!X$6W^DZxmu4ynecG+ve6Ojy4bX|v^NuKt$gs!QszHsp(|JdRvfzswo3o^Oyy}Tx^ib%N( zF9(XA6rOIsOi{Fi5ef+l^X#0z$;|98%~JIK)2C0XY4w5p1;2iMOvxyZ`tjqo$Gdm@ zhf6vA*{`L&bP2eA9}kub|2`h~qM3<9uVCB|79KubEwLDXkY2W<^5x4Hi<05kbn8EN zlG*ecf>xa~hKAG>QX*0UPmjDV5;2Tf6Jo>?Vu@>W_e6cPY)*b?#bb5NO16dMMYxi zaF*A|O+BBFx}F|?4h!3u@MYZ?Jv|BU>r=Tf=&Az z1+UqXg^RKAz1bLR0)=F`X;|1}QO4=oFzZ75Qz0k1{)p42>`ZfH&ByEa_~7n@Xyt>q zz3TO81tXU#;mK!Dcd7WTZWfHX2)=yzvUGnYnyR(2t!>tqwOp$w_0=ePnNalTvTtqm zRAY#1CbfC_KErGrnnhb%`)HEpbga$wgcIHu7^S_Fxf_24wnh) zTO-(ONZGX9PWOk3tnn-Nrb6TeDD7bDk-M!gq-405qobpu{5D$!+eS5fYjyNqzb30V z=+5x_`0>)I<=eM!A1f)4UHC>PMFh~PM4t`WD{kfOH^;|(gkTN_f>W!Mibm+^yrDBy%04$Eo~Jk zk4eP%y8TgocXu~gR#sLW6yW36x^;f+pF%?XXJ%#y>K{o+P>i0uoF6njtz~u5M%8Uh zHwos|>v51#@R+dSP1X+^gfPf*)cI5FmT3}RxiYWO^$w}$FJMl6Nm%uvdI+umCW=9? z6kQ`GwmLoDea0pZ{fU@fV~TKUf#t;B*&m_2KJkNZ@T)?id}_n zd%}IV3C0?8l%lF?6LZ1PMp@1G#l^*<)$+r+!2;I%_wS#_!h$LYWllU<`^XEu@;Y3- zXM7(%zm%-3@IuWm*k`sI8ykBEiy0U{peOnBj*P+JAGQ8Ghc+E8kL~O0qj3tvr{KwS zKD1@2INBgkxcA_}gTgTnT;+TdGP8ncPfu*cG?iM1*;ua@{Y8tRg4I~e{iDq`G9i05 z-THv#r!G*5wMnt#T~GMeCRcKxP~@8q?!0?@`AYE0SL3u?dZ<2ibAP{*2|IF)QM_>( zb>3x1@0i3nF8q9_!IW;dIzkn<+MhG)HjTP?@gkFQW`cNR({%N?h0X1p!DTLP?ze^d zYHDi9i&Q_B4)Msjyzjrm#?T_gww`GoPcK=S=&d;6M#@Qv?ee)BckaxiGpu37Z@{px zBTbrJx9&1Av1g;6PMsgwsG!qHeGCN+jca9gnda=*=^^X3TTtJNtYiaw2w>(%tL_}oW@YXjVK!3J1 zHug_bQxoC73OZ7TVWo6a4j}5$@^W_yiI~^^%&4M*LX8)VOGDZ2NE55eI_`J5*gw$g zV72!Vn)UAJwhBL`fcGE6=cqN|;WX}H8gZDVf;&|q@Tlvj0vVfDC1D%|-0`Vu?{RyX z4o|d?pWjUmj;kS!TVGe*=jP^CodV0YhtWfc*3(2z~}JL&~>PJoNpJp#M4)$7-Ju*t5d~0ZAf`-xSnjr z6#zBt_8URknQzNpzR%*Pk;_p8L_s_SWVSQzoC<@WZr)84q3=$;5P zs9U0<@i8$m@B{#!03XUka$xOQ?)HZHn@RO%V^=pn3j*dUsN)|ep`?|F}7!IxN{r=`G zCRKr_U=W2_q5HzZ8BiIT9v3%jdkEg zYL>OvO93Y)eg96~kIJ)r1GZnU>JqEqh)WSVEKO7#eDZ zNkId+c9`&CJgOJjXrPaAn2C&WIhY@U1_f2!<@9ir=<3ytcV*jlBMywnBq8|NVJcWc zQdV~QYoN#kEWX*9X!D)k^{1;j!swk$%gM*5Z}#ZuI>gVLISW7u4;XP=WS;DhX5~KE zUNnFPORAXCEh#0%4t36oUR1QACabo#wl3GG(+_Gg=2`}Ex!t1`|wh&;aio+lHA-bzSE;k|Dd4D^jutBNb&T8 zM%{<PVSC?9)-@VjH96Nzs!%-N~d7IS#lm zet6SsJZhmn`;A7%;|$nnWF%@9?pMgjjNW^Ck{iTWdS;mo7t5u1(HLIeeJ52L~|lauasUbCUT`Nch5MN3}1n!?kQL;v^h&)1mn&{)*&1H6Ye|C>nOX|>nh zm7AOUv81H;I?U1A+o$O-m!bcN6D!b-bPqxG-Q(R+UQc`q{XP>O z`dhbZ?P2o#2F*%Zy#4%+M)D~U|6l$CaUGFTm0k>Yi{P!Y42Zg~W`E<_TGr7(`o#?M7R0SxYN> z(o_kJMh*eJ{V|AluHyyXPKq>nPnDFEWE15Hgnu~N zv(VRDGH@5FJVyC`OIli*)5-qqQN`)*>E67&>n{tJYfP&7e$~|v;#^N0%u3hm#5F#z zxZ_ZdWw;*SgD%TLqG3ONDG!LvZE?(Y{PoJt`$JWEAygc{otu&g%P;fCd z$A0Ut1mXTsVIkki$!>+h%a?C|FT7Avsz)%Q?ef5f?l-T2(mEZj*CYE|Vo8`_M`SR^ zfDl=!jSUTaI;+fdboDq$u{wLrpUZ8D@;-Y>k|ZFt9C>wMAy0JnvcXWfneMgjSY`qU zpuN5QYd*LCzyILusr^(*N#enSbNV?4W+msawy5=?hy%64DJK7SnMWqW#V-dx+FrRd zCoE%Vczf(no|KrFxV<Tg)94i=J^$v$qzd1ro=|8oGKn$bID}vjYcz=ICRjr7l{pG*W2*zxu z{3qk^F9=Z+!WwW-e;lZjr;?@2grk+sa^V5@2yQ*IBa(J?p@Rzz;rj`n>gbCNkjpc0_!IUXaD~F z>z*zbIB6q*@#Dvj8$3LUHN%0JDmUfM#HE0bW!A0gEJ|+19oEao1I8z(>-YcX{de(= z2`QbI16eQ4oeeo1ow^&s-r&{n%(hqE4(KvcZ`SRF+|vVWp8e0C9Xh}g0pyRDn3(vx zuFeY3Ko+zif_hTVsv1I38JJbMpdJ^b*aCXQCcm{TJ{_8Ytecgg&M#z}2IhS5T`s(q~;?Tz3h`!y{&={PYq0;atfrq#OiuDI=XU-`Nm;Z=3)ggsOpbSng7;X|;Pb8l z3(nT6ItThrIYIraG)1IciX3k#0NOzqpZ#>Gl0D$60IBG2#_c@D!oO2rN6M&(m%YzxpjcD#4|)-!7< zn#UiZ2-CRrYP!b421JOXE8)K2YH5u)q44k7cvm@neFhXXT;27FTBwDg0OnT8b~R8O z92^Y|4Qmw!Z{FO+C1KHn|6HF?+wt;tf^=n9`6lZZU+KP+{@I9BMamklNpeBYu`FFn zeSICX(Sm2l3Mj^@VKX$rZ$2_k?%w#S#Fg>$C&rDtcQ3hp`9cS%Fp|eK>Xa0y0U)d2 zpKeJXVH{WEvQELzl1U?KnDdq0R>xD|`N!t6D2L3b|H8&=*GkOWLmY=_W zzr0dJA1@t-<@IYF0s;aXPGnq?q7VDqTWUTVpZ|L_MFcncTVaP|cp!Q@dS7(Gy+!Wayq^d!`kZ>7ZSE zM6|T784Fs&rJtnFi(r_fPeT7rCQ=S1I(n9#8Lq0;nF)s8<~p5c1TZKm=kf8VihkS1-gpfe&|LRW(tt>J*hL`*5}by>)k3Hk8){=ct&sYHr&M`(o1 zcN*^IBV|s!cgUmcj=IJ}yZ#gxH!{AxwPgeQ=T)W_#;aGaP`SCenE>MAK!c!H34~6F zSHq{%`#C*r@pSbvhKZC<-zWX6mM1a^!kHOr^EAYxDvFOg7r437G-~3MPNr~|#62$$ ziFgh3zqu9`6oe{xfQ)?rPL6)d1c00=kZ*1Pk`bL15)z_J?(}KYn+OnG8Oy4t{;FBw zvbES7SWk_{3va6Z7Orvdbp!#~f{H1jP;Ime1{+&jXFyV#{o>0)cUv+mExElSmonVR zT{ze~au%b#*pveQo>IQoPH3*#@RQCcc&Jx3aiYg$&H9w$o=d7WW?i?L5)<7`-y;Ra zMvAp`?Hmf|fR)#VlBRPgqAj|Ch!b8{_ZZMA@vmRMNO{dD5rrjDbi=MWA>js$iqs`s zT-f7XT`%-oqH1FSMDoc7Px_rJw!!WB{gCb|kq_Uh5K6^vX^ok$K<5K%W_Vaft}U~y zaqsi}*^0e$hhtUC)_sGR(4Vv@Xpu6kUR{NEhc{A2=xD75`H`3sW-XqhV=12dLT|;) z?{X(Wxn$s_WBL3xa`1kSxH^n&Mer? zF1U96Z;YmxwF^dQM#T#55+=?8NvyR$wf`+Tx=jDeNVyC)d-Pu?h1KvSKR?W3`@Efw zzwfQ1RL+Z{i!vycdv^`h^8Sc=mA!5vj>5fU$Z|VjW4q$u+@TxB;Y?;Awd_+pJvY^} zQKPHp#Igy-%&e=^iDiG6NydpX9L&SrJ#ly5)Q{@TNOm}O{54{ai9(;Az<4{CE&b1s z+=i}8@Zf2N#(UX#xxTG=RPOSKKf3$wDdo1|4 z_3I4`|AvDk*^Om`{(SB4%eHl7?_({oQKsmfF^wWutYcec zF&-d$@G2&SN2R}UTOcZvQ;u=TuM@*CC3OpHXXnvu6fQ128wKyP?U`s)-@y*8y*c4w z1UuZ|eD=k&IlQU`ZCK*|(-+sYljZ4`wv14@FJI=t94@{#AIWqNlZ`g&&yD=Wdy3(f zCQqZL`}j~C4WG{4!~=O^%KO0HNI?J52ifunWQ%H@tnUy{?4c}!M1{EIj?+5YbSYgn;Rl?hF`jt&YZno$|R;PS76|s>@(X zh^_!km;scjU*&=2M_^K%o1|~w8DK1=GxlaYa|NCJAx8ve%vAQVVpHuyQe@0`aK;UVX3d zI)bV*p6EqA0RV%Mlat8J<@g}Weq9G-oF||v?v9{YQDkIf;9KpD(sOf%LZ#2PU!TzJ zQklO5i@*4Wv^`&9a?FFdJIScApJ}yacLyux)R3pVbu0Jt=cmURt{7UfvQ^yrey#*1 zd3LM+9&@UY7nGn@p-mY%;q5L0jItj;yf-$iz$cku1wAdsrbCM9RrYV1cBrclz$2-a z>y?#~(gw;mdN>lzW2ysa=|mJI*#^wPiZb*4hbxYMu04>CJm;32o~}!Xb`eRt^{wmk z=jWTPB`D>P5KI4I)=b8m|Lp@U()I;{X0)oh76;YVIMPcS8ymF|??vMt0wY#b=}9Li zCT`!k!=L&_E`~2SCWbO9I=X1wlfoXzJ;9=*mD4jZ5`KbL55zAD@9RB~7a?22+Nq17 zBv(wWEVH^UJL)730!5d}@ROF3RTzLL8-zZD)STGHIyxv-#N`!!oO152)}yF1Hq`^`$xEcMA6s6$>=(z{SS zI`Ea@3Hax4K9Cc*h>~{}_UGq6!!fm&qI#UgjbD**zkc0S+DqL>M0AYXT2vQM8zf=g!T2Y|3wGZ{BoOiN$==uF_Kx?$ruH zH*VT0njZDZIvrUVp`{Ac8J^L4yYHBdxjlko1jbgXdP%-`f47omOQky|A{zr{1zHma zpgSlu6iZB68W-UELMF%II0xRl{~boiVyGwKWWGO7WHsUQKE|F7HR6dqROA4gx{su< zz&v^89pR7tF-(+)<1Ry?^9TFhzAWXCPuKc@i%qRX$lwS!3k88FO(tMt=#@P-ruF6P z*W+osAxoS<;T=*y(+G+X+Ue6RRAXT&+v=d%jsuxsG)pB7kAepe%wAht9sob0BC95kOMptP=c3_E? z3Y~tj_BZZnSJaSOc0G}XA6&7gYHEj+JAcmyQu%UozjR0P2E}Qx({1g|I3n#qj&y*Z zz=rMr6O{0kWYiD$9rGc&7{_-7Wv)x_@8EDq9IIO9nI9|o6C|3S$L46QK>uN0FXtsv z6CM! zgZ}6jYu!4nriQ1;xL&!^9|#PUk|(F;{#s$y`9KO>w}PU`y6%)+W`Xc%UxQtxiG zIdcRS%g=kC1l?@r@ zmd5p8?AZrsw2HqJ@A70gIsTlMk9VJW=w4Re;Xmdex%&mQ6%2#yehYs}ALA*>!ujtz zl_&mi13Nha=zSjp{_@JW55{`LLpJn}jg8T; zdY#?NzIzs9oqjc|Iz?$}*#(fvTA*1=`042@)6TFNKNp~kj_Jr$MYUJ23bV7v>L}P$ zRE-X1qMdzPUmHyR{F!*-8vpFHq7B97^&vPYLh_{pKdo-v1gXIJoEGA-Fa#^ggBNOt zSTOpnF^v@`+pJ8)(g`Uy)r0EZeQdC-*UOt|ZoWBluqfp){rVt7S#Ds^{L0~G$;CJ) zx|uPpQsCRyu4NkRP(EQP`&`YgduM-s`bBe`_;I-A#LqPRGa8rV`^MOK5`;AHz^Rfu zr9cx86xz6;k~33++jKk^icsljk*uxz__?Y;G$MNEwsk@N6dQd85e z40Y+&(GxjG1tQs^BA9;543!Un9CuI=GB5@8+;48S27k5iC-*^mCNCl%6}tfh`UI9` zFrov1vzqy)`)+#q!5c6wiU18@*aOC}hx~;-1W4vaD@4J?yqz3tOAe2R@Fds&qng3y za%2wzN;P8hB5EJhlzGwCH+fdI*Ol0;rX-<7DVI5N!<~dRGQxpJEk(HE-(-W9pESsh zg*8qp@Ohz;u>)O)2SEqJJ1pPX8FB1v3HG3}gF*(~CgDODU?2T4N&1u~@oaCyY}KB3+K za^&Sj?daVmdK%N*EQ12IyndqAH&Wp3T@bN`fNP-uqy%M+k_-I&`4f^fLAAalG%5Ph zXX4^;98li4xBy|{SZ`bwRD$WQ*$_WJm;UTnYh&Ua(fIsj!5_mXw0Sfx7xred1amkn z{mK1}yCi`E>*Nn&_FseQ!H+G+H-28jY5ftR?}*bI0&zK+$kZdgA>Y`WZ<=HMB;t9 zM(^`ZwYGV<+6!%&SI#66%h|L#RaNPlFRVt&Terrd4_8QeQp>!YZ>Fa*0XoDm`2cF$ zdMz6s`5-yw#z^Z8Muw32gn%;Wp+A29)CTiOnTZ(m#0pT+3a36vqyCpl;_&~hlK6U~ zU?+Lh2Qu0p*`xgOd7^sE6WAFkV47EAOoU2oJ0n8Gb>#w1h0qn{C;UsWUNadOD7Oe* zp@+qN&q@onG!MXSK(kiZ@Ux^WCImPyrWNcBj-J$k3)UD!E8YMG6%h6tw6yLZ@O8Kj z6}Zk&cv|*V;2V91c@315>U{{{XTuVdX^c1=mAI< zXF|#`ab(($A9GzPEp$E(L@hB~Vi&c@K(=^1ZAZ_Jzl2s!0?R)@dL*s^YIL=ZT zVc6hu-BH>H9cE%**XX?eD+%Qb!Mz+B7SQ5MO>5cw=xt@^2N1p2B`M*@?FZl!+AO?4 zmHPX0rN3HS)i!T#sa4gKubHUjT2goKepAbD&(`|v>rtZcZ4M4Mq(t-E$}n`^C*&kd zLfk^6rhyv)ai7ap*4AKg85GV$8KX1>R|+QyVB@pHR+Ff3IksQQs<$XoQ*)gECb}RD zHfV)zo(dU{2`OZLmX=IbDo$NMXQ1=&xHjl`=~&v=o03*PIb_UI_aZefF{)-Vu_)7G zG;{A|f9}f{?S+oq{wYcd`{5NR=+AS7G-#{rnJmDD=i8wkNFZr3YX}oOefI1=D8jrW z_VnOVC7ee5Uur5wUc&8!kDflgjHGQoeE2}>c^?E%L?&t#ToroW@@W#0rW>B=WGh?X zk-yh%zp*#}x?KCsVE*c&c3b0jhe-yNe3L{F3Vxk#6QII0*r|4O?eHkwq+Iy{IPmKO zN{r+*2yj)+!vq`l|4v+)=Pjq!Ss5w<;h!Y19?_n+lo>)Usy?U7PkLD0#*c%Nf6EOJ zklfnJ!eF)?l$<#AlK3gl4lITvmlRX!=eVX$N5!NqRwW=o6-PTc*SfX{eHS)u9TPuL=KI&P`PHK0fLOZGy~DNxJGyG zBz{YJAGJGz2{5WG!^^qrHYFyGPPWRwGJ0hn1KBqevVNoea--POhG)~g1S2F%gX)I^i={uU8;`7|BZn-a`WMsMw7ac z0@j^!XP?qJMo_PY=0^uw-~((P;3J}83lKo3HH`uGSw6Fu}hXcNJ#)GL^z6mc4L zS&EDV(udiP2Q3Lv!2qpizJGri7{&v+i1TiLJ02+9uPQ(8%duX2@p4?F=<4pD&?OAE zNMz+3AK61aui<`kZAOb(h!Mt7*S<^x*|kV0!>nW(iAME{DM_8Hq@25i1V(iMI0lg3 z-{MvZIU2IwQr+Mtqj8m4m2j2bYmQV_P^e@xL{vXkSM5c7-fZn5`;V+epFbMJf79-_ zDs5?TH}ixJ6}SU}h}BNNK}b-L8>qC9p|DHVy>#gkA0+WE5E3$SaeZE&tXEJ`S#T{Y zDvCs8<%kGUB)ABFaQogp!Lh?(kbaOL8-l#RyLTNgs5mxF)`jfWJqFpRhoDt}Z3Mvw z4)o3veUJV{p|hY1AxET4A7@9FK@ySW_y<(3;)^kjtgE{lueq31<$$3BW9^8DZi*w( z*!pl3Oz&K_I9WGNDewXfrKrL3D+s(-=pS3aZLO=YNNgOPA&MDeQGHPj5`0H9ycM)U zLNOj5=fHzHjev6b4k?O9oAIYN1q7m?RYd2s3iv{4WFq!GErj?~yu;?qIt)cehNh?| zAx*0v87D-6$B}>l4GAS>bDPT!C;VQ{!h%iHdHXt2^{T3>5c5J}7niR7J>st&-R|jA zu5J_Pte`8}PqQ|GJLIYX5gv$j8jRRa;)5LX0(G)ePyw1pGkhFTIniSq zlzv-W3t~3`;F6M(!q7U}TSq+V7|S}chmRjyL1G3InEE3{#jsQ1j*brd)v{gXQv0lP zj=YJm+2|zRGvB$Q+Ohvo%|ZlxkLNFzR@LoTH3O21qdXsJc4W>;BlM#X)Cq1E%BsnF z-KK{2d^2Q=X_J!r`(rqmhjcppc4>vRDsnJKk62sCV?no)l9!)FRQ%G-R?HiMg3%xj zAR3Y=D`1L5aj$HMNV|$v06#8*AHgyS@X4m9rygi_hXc3VK}&(h96Ax7 zpl2;QU$giPbX(8YO;AMw(9=(ZxVgKSmBofVun z3$YQjm>ds7_@cL3%9k%52M3OE_7fMWowuGLO8NX;a!~!HMBbRMG>iuuo4=FniV!8v(a)EOs#w-5tp$k+V0iBv=%trkjcKv1~pw^yP3h`sGUr>+z$&myD=(R^vjG`D? z^#N3=ss-sa)mC0jY?i~>omF$Zb*O16DK&}Yam%HNJATz-Q zNck*oj17_;6T0qUg8R6rU7%Eqjl>1!H(*mCVt3+lMLQT1vNapih2hM}+WS^2($Yq1 zWlJ@_E6UEv4O)$)WRZz+!dCJds6pq?fix*i?NHP}*9wKZU637jc zfugMtd9HKAz_f?Q;~#%dbTo@3#K75d*$9bm@9S%TaGwJ_zQB^Z%WYVMh*k#qSqOvv zO_rxYHV2YrsWDEqAv;^+Lx4|ckD9^0=`6rOgM!G#q&W^c3P9-Q`&l&e-wcO_(4 zNYVk!TK7@C!`3+nuAubsmTa?t5Rxuw-7d9t3wN&t{5Z`nLM}k`WIga`J9gm8T{JqcV!{_?loN#AC2de1m;JdP4A3bY*jg(7CQP#?&V0#`77WW_Q zbWuRy_5MS#0`q_kdZ=FATfUglA9u@>N0iY%njyskzGlN?yTa!HvgY|fFfjif9^gf)( zP}n>X5@Vo&_|+Y-y!sRNQ2R2Up99hOa$`8{b2(X8g46+ZT_j*9xl55sx5pV-|#J@>cwWDkL3 zbQ{7<+S>2qtS*6P+6e4YCeDco$=IdSHl8A z(gf4the;CIDrqRlxWvdAxEXhH77d$ejaGcHF-69T&I_^0+BxM6!h35X$T-<}d7#<* zqF?d=y9Rt)n`6xTc5_yN7sQ5{pv%Y}s04zImorR_Xi${S#J;c-E+Fw4;63EpHh!d@ z?t{zUp-#cCnGVF)EzjaGQ*6p`TH}9I_%kTpGuGN#S9UkLZb+?kdz)%UoA*^3pC{oi zj;(@x%8{bQiz!tB$ep-i&L1GP_F=#cPzg0{2rAd?4OJ@Q>UJtu;8GBz z0%?Uy-ymo9b)`w2h?ba_!_xgSN349PvJ&2ndS4)+48f6(fdTTlg{|9)DKCX*>&cKZ z5d5`4FKdjFVh_38PW5j3HproCB3rP=DJCT<&? zX|dtFG*_Pp)F~UzmmtYt01-rU3$T2&v+HVgVnt#z=Q}Y*d(3du?9E1m7G_#72T0;5 zBD<*vB;JhkBLG(nGM6$Sddj{cUp(M+(gs9 zRlkPaBmxLWv*Bp9H6Q>J0H5BJbXZ%H?NG^-3oW!0QeeF5z5B=K3fI(BDP$>loZ70b zSr3WhDEKN1XiA9VAZ^Oe5`n4i9ybGi-_%l08v`vZ1~`&P=wGg02qH~M$;p!ze58P) zeFqDsVfHZCu&_Xel|FE7>sU>x)pOclFQYkT9)~nKH$PdaM${$U8Dq?E(f53|`yAa$f?W_DIv!?GBsgbmjaT>fDe8?U|E8nyyP zlADX)KM?4PqH5r56RJVtf*`Wu{LfJpB*FlJ&^_7;O>1jTNX?wgLTm{Ii8*X1nm=W$ zG;@xUyGe)A0pBMlPCkD8?J!`(Cokx4SgD{O-MJt{o?~tJr!f(5$$;(hLgre`9X?Wn znG2L~{EU+S>S23g1XVy~{#P%4mKA1xv-y)x=AC8j+qVY-hNK>^W zCYfZqTleg_$G1d`-Ck)6*X6^=$vkC4xhG%Ph5hStxyTh1)@_61sfLFw9n2do#dpJ( zrfo|w)v@-8v9?(Bc2|bMSv_MH#dl= z9T4|sIo%u>Pyvw$qEO^;_(LL@7UySPUMP|m8!$?S12LE?B=asvys(REl@&ygZ<#@L zF=|m(R))=u?!zUPVV}pC?qCqRH@;6Z*Q5kS8bIlzJ0%Ha-#y*2po40ad0qhCUa(B1 zeox)&oFj=IoP!hM#rrDWf3&|zc%WiiLUo9-Q=6xfranVqt@O*+MifaVE-3DXcYie9 zvv}Z1=#`TG`%ES?jjt*HShqxpRQdkGU?|f+ofl0<@oO@y*n0LC*iVE|-5JN9j$!OmrLh07+ed zU$q`sxDou;-z%H|gdrzbFj6C-%ATbo4!El2;<4S5%iZg`9Zrt>D0)+?6x3ypXX6!4 z_h(TNlms#KkD$r*X17Trf)6&4;&~YFq zXB`23<&?V{)60ynEbu73jkj*c0C8Np&(40P$4d4l!d6RztUB2Kd-1F4mCKODo`T&r z30Wf@X!1xBZK*Ho9T1d_^?I6+s3=F}RY5>=Gp(_{^^^Rmi%_K6btS^q{-jJ+R|Nu zv_T!4->UFTn5x-0{P2HS6$BLtOu|Q|rp)8x;}Tl~P#th|IHI$57rn|fMd?_}FSzwA z4?4RGGe+0F><45!r|Ohm7!hSRih1LQ5-Z$loRafkGX429%dOSFp zkn5q7h(mCN_j$knWG&P9lWDL8EnCPzFLS1WDbGRk{wK{G2fCiqBEYZZH&I3#0v7sx z!Q;!9bBIbGT=N~l6LjjH{o^<6my|u~1F%3M9>_P}{jl8)5uB|SUi-xbL*?xEo)B1^ zRSEetP;+2GSu^NWH@NKn2GWKNvf>EiU zDm^)nNA;j2Is4Q1w~K}<1p&W!N6%MYr4G>DTXRly?qlUA!7*=8SJ6%QR>Wf#Fxdw0-4KDxikVW>+!6Lf`XH8Tb`HgVWoS7X}%aYY%fQ) zv()fBsJ%q_Q+g(ijb~yT*oM&eY%VM#5sk3V9V*YCEW4gA3iiIK6|ukEI!9aTGFryOCZVugGt?V^~(JQAI7WT)r%dr?{z#s{k6Uldd~=AM>8Jh zAfWZ*s7cewdQ2h!!c0;`mUz^DjXD=CkV^>uJIZZjz!91G?YoY&>@7&3VHggUMFT}Y z9xToa4WInCC6}T&aR9nkP1aozGNP*@V$hP6`it038(+_ssJByKLIf$OCn0M&tw>4y z=?CBAqDGJ!j5Q@td9$p z>ymfg?4{^U-~O<@v%hFMn17|*l;Zk5rRNyRaD-U@_4uDZzk&PeHe7De2Bo>~4BI|D zR|!7oy?eMyio`=!xIp0Fgfq`Z7mUy)rU%TJmscsgk~%g3XSm;>JOnby?{LQdG*?GX zqm?IhFb5IiLg(Lgic!`UY*iuhdUnoKx(3aaI;32)vy-hYUlA8lg9T)DBb74G@7=~@ z+r1d0`DW;vV$OR+^==pu9$WX~z%r8@ExVpRsxnlzu_^ z8xihRkWK)7r7)b;K>n~OU&I*#8>vht^YaIGfByE)6O;SD#1WWrT;dMDJql z45^*<|I$eKzds#j)khu1$N3)P)wA2P1>AoJJMTUB9jQe1hc_z`;~_ntuoyJkWzNx= zc$$-tx$(cL!#QEyC5j4}$!;I(E)job(z@Sx4z)xqDE`H358W@ZMSeeto}-c(CT!kO zMxS%XI;$3`DmvoUb8KH zf6X(Y{KQ(8hhpdC*b=dc)^1R~!`7x@LxE}cV+Poa@uj(rZ+!1!`~qlN=Jx)&ncsG@ zG|duCoqai#^-UkQHm~+tFY)H8>?!t*X5u<;4f+PZZLA&Izv33J)G)=wGjL(Eg&i8N+#D17Rw}=BmvTrsau_#33Iro?$xGOrZCP z<9!JO2=x?@VPFdBUZ5Be0lnzZ!PveGOo|2ErIRrYH;BHR#_WKGxTQ&dJF&oA1MRhA*jpm5TvvCUY z3QY_1;o?xlfgde@2Uf?R-IbK8TQm;6mp_m`aeW-1LwFsEYM>l z?LhD5|D}lemU=ha@2a`dA^PqTqPYLq|93wVutTRmf(k z$Z9-vWP$IVw~gO}(%l3>K$cZ{JOJh@qk>S3G7D=_Fi2rvzBrGU8R9alel)zpTx(H+ zq`mKmR!nX~p+*o6|5XD;2FN9N=;#Ez4gn#fn3|%Uf`TFvPL@GvLkN5s?cd&4ZZa@T z*a!e5Cqm4UqLYI~ggSw_dt!DpZbm z(dCK7MNuDKa@4clRwwKC++R{m~Q7j zfBI@HzCKPhxM`(sICZ!zEU%<@1KS)GMEa>u+qaf&+x< zW7~f!98ZHX11ZoINRe7^0y|7}=wtw)_U9euZ!_;sAx40|jdhwTqXvYUl!sDU(jp;> zp3bVl(c~lY-3X)tHgmhwz$N~`3CK1$l?Zv+M)qI*f7$;RvAAgSGJrzSH*~zrle4tf zB7N)Gt4W;hZi??LLd=Hu=oxgsFYT`1^s}=V`Dg0$(He zD@jXQigu!O6E(`VU)ODH*xXVT8!ZjWBZ8{;7VeRkAN;ZV((mUyhEj`s#U~N)J2X`4 z=>w0RZ~(?B_1If9mu3%h`c2??#_H{!nYm~<9ra&?f6XH8#fdHmtXIXaO5sUOrTXQd zewhC>SYF9H(Ox&UO-n4#i<=e<%WEM+#n=mtTa$BPH~13jmq_s{EC%6eYxzo#@rYJU9Wf zMnY2Z0%OeBA+{(CpN7NqbvPB<3|~Y6N7L~v@V}*8%KE@Yt9_2>Dg$b4-LX$Cr=ORp z+}ZG`r#Q_db)cc{m;X`9nx>mMpR+#eXwY7BpA7aR!fLZDoNV}>6S{hCg{M!^bJTdE z+omN0DjIUS8gZ_MP7s?m6|{T4JD=R;eDL#hC_$qvv%qV+tQTCJg}`|_L_@}e=oBH6 zb3hsQrcc8`v>D{<1t7gWi~I}15xxcfw7oXF>Ksjf{7LZfexqAFDzn7WF1dCVw$i@S z;;d8owsnFt>+T%wN$u?8-vKx3euf$WUm)<}7NK4wGeC|bpzJ9qjMQ?%fTTFxt0lPx zrrpEAboE^3fk%)=f_`07?d0yj4FjM z$%%Q}^9l*kPEAd*!Ixd2dgTJ_*jq`zf0ujx=9hU^w7xti78 z4V@Kb<>%@bWfI}!2@x50&WzZWhO?Eh1Z@QbmwQ)C4HJySX=Sm1&wY-U->j3hH#W8e zLlM1ib(+QCg$YRS&~Xq4ziy<0M!)27l}|%(qFaD@K+)hb_85eCX_V9~u~6_$J#g?J zJNr!sem}FV>s`nI4<%N;?bwvsZvtV?BUQ(f~y(&sY$Af zoNvSKb1@tw4~`sOLb3sH!Wio+5fR3yqKQFn+pDYmVbvzuGEZWDC;gT}d8vLtu^|Amrdf0KdbbFd%MIX{nY+tg%(uu8Jf`m> zN%GZ=0D?Y41z_un|6d-$S0Ad1@J&$nnpe6Dx@7$S(GFzQ~OG?%{-- z9~yc79!R@qM#cAWIB2fMc$=4cT0V@#DsYgX#Nasu(i;BV!7RO zy(u@>NJcsuTTDTfXmn}+dkwL9cT4xwi>V-m;7L(dW~Q{7%)PBOn`Q>E{ z=q^x;#*M8{9={&>&VZm(!eDb2WqIpoS4IX@25eW7OlRdFI&4#{n7kJE$%C0&c3eFv zdLau#7z$XzEXqMB?yDL_aLw!mE4I64*S=0X#wgdeyOnnfyi$kj4kqdSGM1+7fL5I{ z`+4PAx`_V(RCPjU@BYyTYTt$Vo{_^>bcJ8{Wk+0E!)%;%t9amK}Vv>xC0?m|2 z)xO`fXEXkY(`vGQYY+Yc2#<9Y+%>Nk|5Qe1_MRSYW)@$4>a>`UmdI|X@4&y$U7SYA z(oTPRl{o$G3FlU9f_;Y&A_heKzMw_Cb4^7w70|dgsQ7%>lY?+df_Q~Y??gwlpm!}> zrsw_0gR8b3Xt#YZ7hS`e1ggI)5}(;R=mvP*U-pRq5LYcEOM*^QD6X2Vk}A*_bPh48 z2LGtF+uNS(oL>R=PfHJg@ym3$vaFYn_rBC{kueA1tAqev`^zkaU&}%qm|5z(lDc1T zl7q_hD;N=Ie&gWawEp?CyAd@(17!7?Ibo2{%hMpeiS|G6j?x z_A6|IvpmA*`px>b+|UDaZ%l| z+&C~9FV2=Ca8ulv_@AduFc80+%tlO6?KkF3uc3R_K`bak5DFOb48~JV!CT2FBqStJ zM06$maLT3Qp|~G!kEa%Hxz;$WF8dv?axF7n_IIdcjg86bEnGS9LalkGtdrN~!0LMS;p<`=5d;)MzJNqL{B<0@1k&iiPMau{ zl0v3Yw-y|e?b^g16BI26gakzhC=c5@5hJQ1R1Z)MPs0uzXR zPJwZUXtyqz>PCw@(S%Ww52P{4cWY2SKfeBu59?GBP%HdyK^XR%4DFiHRRhJ{WPGj4 z#&UyyIypehR&B01jhOm_f*a<-Wirk$`_T#}pabTJ7brX_TNpYUvj>|dlf#H9I1L(O z-ow~_B`olM7?3}UYY+s72sSTi<3-Ir`*H&)3WfQ(IY5l|eil^Qc?Rk1Ye!V5SGaSS zJLmqj#_&d`XAtxy%s(l1Ss@>eq%W-IfO(br2`q2FIz^*5c{>}PtI3YPN;>*=Jov;! zrzUZJZ$*Tbjx3N5q&=xzd0Np#XVc?xAAwuLR(t}X8OL&^+K!HVY^qtwfX(I(j!qY` z<&-kQjUseUgF_Yi%ceY?`qI~Iu;#Aejh%5AKW=bcAhexu1qY)N2qva=%HPKnSpJOpFrAUr0HSGo zFOK#j46N!0xfH7zreKGxn<$|Jv0nbcnjf>Urv0dlm(L~PP0*snwsBU31M>zdPZ5t< zh+YKpIH=X=P87wvhXxNBUm1VCA|Yjt4kv2u+Q^F5iiS@0=f8j3JQws+6{P7dMEA3X z*xyM-@6`iNH%EaT8qTzRaUR)naU$;hsU*cW#&XnzWAwoaKY|>q&b#ZV29{LQf>Wi` zd9A6+OeJVVgOSlg>M!Y-Om*}nVZ^JA$QU*uYh>E4?25SB1#+$Gd#nq(P-pD}^ue{i~g%lhH?uEoX~It)2^#U!gB-eOlAvwHvnDtbloX*=IbWLZix@FOyC6gghzJ z;>TQAw(e%*02e9`#`HI|tCJHP(8y7|divkue*@4|kgp5gV6?%f8ky#^eohS1ZSXTU z$=$V{7-J}f*d0^NLP&q$!@@#Hg`0Kc6A54jzvFltYJPL724nMkI8(sQ6@mu>QVuR@ zlM)Uqg!2Yw+tMZHAzdpi}?V?mHfBM8ohGI;u1Iy+wt<>{+u58&q}!2*N! z<5Tczr*Zy~duuMW9W$husH)BD-nwV4MoX2+|4dc)frcj~ijMQ}8ZpbWU(YBg`10zd z#MWS5@P)pYfMV=myL|j-Ol)s?wpeBC2c?UCwY$)nZ|)7=^*G}bJ*DziCrA(`eInhE zZ|UDcXmkg+9@~NWQo9Ae_kuZab&<{XxaRf_{r_k2z|%*Ys4oDv5?Ei5M;JRCr$LLY zGWe_+T1yR;>QJsh??)esLPMKE(P^n>!}az0Brs+03?%wc@Qv}--7AGl6*a8EKGi^P zra^kj*L4T)BCw{4Sl=t!nRgt+%W~8XiI;Wu|c(!cvkuo;O4PSlyhsN1{xo_)O~;4ALG&Yi!UEK<9%J4gMidpMG5AvM(vWm37-l>M!Qi+c@gF zWr-0gRHi1D^xqhRK8I3YY04su)25D2Q%R@fK zTcx@_Ap}jz(Jwds6l=-yh*Hdcg$z#uy%AX|GmTQqY3Z60;dtqey zPZU_Uzr_-It-Gq<|4H_Sni^x*2@I1nh$0MfXJMem#Jk>r#8HH>CQ>ZISyuvh=yYfJ zz-*^jN%?uh@nc=ClZj28!Gc_@bH8@F!$<{ux%Io!)v=jsC{2h5V?+TMw<<9C^iR7$ zFGM4>#|t2aX?t594jC{blXinfEAjW^>uhYMe>%=P%rP1p5obhP+-nYIQqaG%1QAC! z;>OTFl_cYi2m6qIfqJb)or!rmP=Y@uJtJdM8J*7em4LmFYQR_^c3nz`Pa8R{CiO=4 z>SFEW`Mv<+bLtSk@IW-mfLgS^V@7gL26fycAQ$Ftmx`!`{X)k}5Z{lR-K%PeA~V9@ zw%&7cN-9K~Ow1XjDt4w|tf@8=`-}G%nde}vW51~}RrBEI4Y$e7!$n`*aO#JT)kEit z5MJ95!WXhaLbzS+paw`u1=UVG(+m|F`inDtt5yB^vpi;2LnmSHzLWBTg5a_}ezWs4 z>mTqIp}))UILlQ&-@^ktZb(a;_v6imkdaYs{D)x;XnvS@Gl5iAQ{YHgRXj)XW`Gq| z1kXZp9F42CDMRr3PsI=iG1-&zA7(!cJpUf!OU;FuhizR?82o92QATl%FS-8O5x__J z8WysZI(8O|C;xSCCOv14tI)yW>3YlkrLyjVo87w%h}@nDPpm?Yyc(SUJ#SdW7Q??F z9&J1Wf*(4jV{1-dqRf~WwY8x+xN?Q~<6G`J-GQM21iFCPnQid7x=L_G``ToQXD%RZ zl!TNC#a=i?0hp;ma6j0QeEee!C`;5^Vuded--CbD)I4f;-_VznyW%1koAU^b29j6i z!CjIDVp5vl;wP)T(1D;Uvk?kS0Dz7Q6EvVuCv78@mhbyw4&8S*p{EKE5$8!yfs%12 zDxmkDS|kx{0|>G;VxGGN+8xYtH%2>ZoI6T^jK?;rO&UJdI_|Dgu0a8d18O<1 zWb5&P2Qt(;<3CqB7Qf(wCA2zwG8OB%-uLv*Ddji!?p)6AV>C%zsI|UFGcMf~L2iBQJ!; z^Ml+6_VN7p=^`=5k&c)`OLW7NlWq5InqBj}abi$1gx<{rd&2w4QR%oqE@|7W)@4TLB|e=r(9}kq_Yi?&dDsK3LLt z^kcNN|7r}d+Az^Wib2TW%FD4*TbkdofR{i_-|k{JvM%j9yrIXEG7P)}qe9J}**&Pc zGaD}_MWm|%afS8*=KGKftE1eD!-lsF@=|lNFKpum5u&}P5n2PpY6G6-HIl9p%h4wA z61GBeDY`N*VN?gZF%H~2M$$&yHw-bS;s>jHt9t2%1eC4xJpZ}@>3~3vfJvR3OAp-; zW|tO#^N^vR@!x9`NnBl&@bbEML-x(8av})Ky}Z1Td)Cebcn}~MU>dZy+ipGI1_J16 z=G9w6vnwxkb&C=?`nA4Ws@A|s9CjAvCsbv5KX!RtER@!`@iDX&*Efy?2HVq z>eR=Lo1Zqv$r<<5_ng(w9$-4Rn`CEJ1%1H2R=Ay%2XF*y!#(CA6e`%CtmGrV~r_|rzf3D7#>d3 z3O}zY2}2X0oNxy!h@ahsxI`9+WXQ^5M?rdOa99}R7EWOQJHWlL;gU-pZZ5*Tz2DHQ zUDqnEJ0H1?9N%l8mD zj^Gy`e1PiM9TQRTwVDHWg}1#z$L*qKq0} z^4xYJ0bXomSq|Q}kvO~>;$_frTVh6v9vDs`X!a#UT7pB=1~L?os=%ln1Hc*|`-i?f zW#j$$E49#N%&q=m05WSeVc6pP$kgPzKY|wD@1J|95ucYG^3`by&q%v@q7XYFjdvE_6huSE6h0n z{_)7)!>JxR#+VwNM*wz!Hg32@&<|awZZSqq2laDU^bi*uf;%G)Hbg7!eFR#iBZy|E zt&IZ`jG%5nkA+3v$Y4eqr74y@r#2s5!5h08YGKD_mtmTtFLQKN^?fd?)}Vl!-pr>a zNQ{j?>|g&47!#wNGTcER#Xj#JJ$O|zYHDJFEfE3ypg?9L0tHcYn_pJ5CDo~aq9hmP zjqh$H!#TQK5(PlVso2qJ_LMd1OJMr(e15Yr55P;UDXnqMNF^8#yd?Y<%Cn9REjVzY z=pW4y18Pp4tQiu#OKlwe=^mlyB5`-n#ma>@>b=1G4G=6c2FaiT#P=3;X(&1s4CtP||-9*8qAfD0m+~PtIfo z4N@akGcS}F-aE!9#oib7%i5V|DW2o&j;mHp#UpZxK z1mag|QnT~j+7tBx&nqbC@-Sry_94TFAR^L6`tpB%vq?F$s&Qb8I+3sS@d}7E1f?!! z`C~-(46HfebI5rd#H+xM9IXGkEC=_4kcjYvC1+J=oE&2ivVnllX=9=t(Ud|g7toKi#s3etBBUQcop@$K1YFJM z@dXQn)@#jd*~ukIg8M3AJ;CGI?v*4G&r1^DIo`uO4O2Dn=6M5IiVz;T%dm8RerI>}+n3Lmd@B0e;Szbc=WqOBhGOK% z;pm~U&#W8cdBvyQ!VoS$U_nsq@S|_MZ3mq~l+|N28c4o}?9xk{klbSj?j}S2cuH|E zQD$alw44NZDmegB%CBm^Q+%L~g1*J#`&gbet-B09tmo(16DSx1$h!&D{KD2&ihEfL z2u!C<;W0rL^nYqDp$@pqJWuxj0^lG38%7wxE(c?fSB+9uR)*+jGUywETk?sF@C_dR zxfa-fJH1^O3m_7pwlwqku}Iz1#+I0f6TK*7dCKI^^p-5x|-X zaa=a*u*$$7hq#>(XFLMCdQ>ez7Tdp%a5=QqXggqa^X|Wb$9ce6&{p`V#_ry}i%9xj zI>{i(^Fht#;$uq$!XF&1S+}84dm9GzvFBIsLxLvF;u5-(1GsTubAo21*E9g@;$6mp0Tq^i~eX#6f=X zM<83qEUjQ>y7`@b(V9H z1lMa8(%u-GD5apvc5kJLR1PegzBE4@=$Nkh`tis7ZKrbQg5IiVAPb!ZJFW7giDG7O zRwu7+q!f1<4vQiS^#eBxi5j?vkz6DhJG*TH+7lpNx*-@6(#f50&EO-Bhx8jT-w^c+ z-wc<}?Y}#ysQkR|Rw-PI9_R-Q`ycSDTCO_i{Je4OQ?(w#5OVpG`)Z^U^4@eJ&u&d* zs&PRQ@^45vM@)L$Jr`v75IR%JZetO^Ljv;Sr zc>Aj2#Jr`U>=}NjS(q?xELYAgW3^e%{kv=WZ~_aQjhzL#TBxP%ObW#FHpC~zdI(){ zwUDbK{vZ->5ee}x1H;P^SP}n0wdIa0!j-hwum48k9w5V+6-;tu$(o@Mvq55n|37+( zg;j2SQ`7T_7{U~6R+nH^|15sbqChOeCqvRtQaA8s5Vs`gB&clzZ=+Se6)+Uj6bLYm z;!JJEbnt;d^?#CRkVQje@-6THLw*f-IFEOi(l|i-^rh`ee!yYL>(Qja&1Vye>o{wZ z%dTA3H@|%?3;eHhU6vmVw{3b$9rx4@z-rb2mZKzDq14?SMFdn^>PGW~SOG#RN!PDl*Q6R!Eb;|Z zQaFLi=qe)vQ_6E27>-$Zn3SXz5Y99TQLR2CAhRN19iyEvZ4s3y{Pqc&T6~JBl77py z#?kwx+P9#E!K!o$O4*sbx*4_q5HA6GMUb3>JA+V&zM}CwL94+PkBf9Y6n($aI(zi7 z_LFe}{Dg~~P1=Rf-Y!>YRHJr#72w0;e}a#FPcRXX_NIo&rQPELyoAZ6iAMlWBGUx` zyWi~no=WcGFUi4^aZ^^gIfysZME2)}YpED@VXFsw96K!keYcWJ%+1XW!DD6t5+sbGstXoE0qH|@xK>` z-k=eJP$Jp~wsPm7wXqm2<^UKQ?)?ozKCKYjrfaj|Lf>b{v#ox_WuDfZiO{X(mQX@% z*qB@URpMH)X?Z_8<*9t)pT74QPal8$VmSx5bntTtEHK5^e za%SSh_RAPNoFSk!r@;Kj_g2MpJ{F%1>){&e{TT$qL4&N;JrEP{rW{#atU_Ib@)j_S}b@UPiqtf2qp6G6u6zoBAqqYcmsVKvCqdSCF1PlHR#DWZ4 zmuV>uQ07j#(}nLk53_c8e=oPGs~5iooefX?pYTwsMtI+!-+5fEl5)c;KZg6~GmMgm zB^XRKNT&fb6cP%7upjWmgXhlsGSXl(66ui@2EbZgU{F}J$b=1cQuE?4#WNWK_1XENguqLde)xY z%HWvpcg)>hE>~OnyW04E?v^GYOk;r9yH$Yvbqkui=SoVxgDY#BBVde#>I!eLWs7Nq zvi<0+W8u_mp|@+KcE&R7sB+G}dTgH=Mlw?w7r4cA;Qocx;J2K>xPQCx4PoK(`WHOW zt^X-@gV+K3r!;+K^I(MXr;Db#QuPd$ntu|B_^qyfGQubnTnT7^B#|$q{{As;$3rgg zjW*+an%&UNka_8Q$1^vw$k+fCptrw97L8HZx_U8YQ0(Ahd2uIf`2O2lCX+kpG}gsa zd4j?4aIJ;2{3etM=99*OhUD_cOTtr56-W2!%(ae-s=fT0do{P2VK zNPTe#nxb6`URS0yjchO|rrr?_4R&ybkA+x_Y9PDGYb#9mGGg2U7{kL|=5XeR!TEko z4UbX7HE!SLO;FI7@Q%Qvez8ECixoMY(mpyb-el+^>`{GT?%uhD{Eu~h0jLkFrel5; z?Q&ry0l>b3=+C=!;$yIb^g7Pw36|TdyC5t9h2A4>fH zSWk#TG<;zHh^t+jmH}W2$WU%mu?_eBY^EDy ziyukaP}AvG4)C28sm^#OXK_4X9;7K1La-IE2ZfmEKG7o0*yzRL-{tf*P)m{o?Nzcf)3a4s!=snUKQRs9xtCWBmA2~grFKVa`b?2N59-Za#gbW zGo5}9SQXVF5E&P_mC0skKCW6kV40pZap0<!$kE*EVqNoUq5;rCi|s!Cc)vZ+SA|)+}fkY~Pp`b(=%D%jFYLb}Vz99Xrl#$a$%{lt zoj~?j0T`+ihK#}Kj|eXfqsIYaJc3{0hUGzCbW0iqtNuE{0t(D+u&k{G_aj}#mrNi* z{YUGsfb4S+D5c>! zT-`N6JN0DcafVrr!G8eDVfPxpzJblIp4YwO1(1cGrRCmW)Q*Ij18bF__I!PbI+Zx z5MXO+X(=`~PaX6B=fH$*3haI^P6*q%4ZC-<6_XnpG&|h1HZxD{AAS6tV^^ee&#lr$ zY@*)n;_|CYS2`}sKNf67!2O3xa)eZw0tIEpynO9^(Eo^tYKn3s{NBHZ>p{bZi3tj& zz{~~R_N9z(_Ob&s4P`T4dGg>U9ChGw5M!B@&@Qlh3i03gQe#@0nt(VUA;1O@27Eqi z_1_jw>OV~g;ekgsK!W_pWAYF!*q;eHGT5sGN%Eb9(3FJVkm4)%f-_qXSr6<)xpC16 zXh%%ax<^}P<{PstG(voR@u*mZE#a((!gf>zl;3NkB8lg z!aLzy?cUfnLt){o!XhuW60Y(D5aO3v|MC3dpH975DOFbEB(RQDAd^>jp_g4d^7=?- zrQO0+bId&J9=Wg-orr&^`Rw>!@7^v5v|vw|e}-zHNVehc7_cz`phtT7>ZetI-Bpy8 z9hOxPIGYe8S_oQ$G?}rgH4Ri4)|)SfW7)^6-?Ih1Xx*#N5&xn%zG}(>2om#XY@Wl( zGvHJro=zxsgxA5JN ziOoqzrby_r6OgSLySg@XnC8?AhAqOc^M!($*5RXHHSD|40VF1B;3+)M(&Yuf1UpAm zhkZIT-k$r-dgL}bcxt+qbl5q6VRP`k;!~p6luRgIy`KG^ag2rTuXi+0S~xquw)XZ- ze{6Uw{UbgT_}S#*bi_9S+(Attr_!67jB8PsM_*sb54>iv=ZTvi;NVhyv7%Z?TG$#s zY}Dj`C9HME+lv1a&!_zlFt1ro@M~6OgZS|@X~VPnAWfeFH~6~5Gm{>|Gflc5pou6u zXmi)ls3!7h!_;mXPg`#?Q`#tU7)V2RqaSF_gv1rV=>F{~H~051At|ZM>rDPTpO(6eTUHdB=$JOp{Gy>LmhHcEks8RN6 zP7I~YuTo&PavS-~1#4}9A}-oQ=yd2jefY5!*lO^CCYpS+u1W)iofH4+moaU5*Lp7k z=dxT_!eQ9|H-o9ru6*_W_T?>86KnV@sDI&Mbh7?8Wc?eZY%y# z&2;!r-Z#T1ZCl@Du^a^V-Gg)gzZze`Bx8K%)5mvr0zyKFT`hrUfvegw@u@w1hm*O9 zq#k`ktZUjOsIl&QsnWS3;FB9@-m>^b0Yqjv>DES*=+(LU6ny~JtaBpR!tsC`%<$i> zO)rMdD|6Cw>UWM~+(yFrD+9^vxuN5nMBk|H9M#>Sp#8(b3;1o8F`MLk^2TXp`{)Dx zmkclWURFLo#NQyP_Pat1zN%yN6JQ(!UsKDTPJ*rUJnllx_*Eygs*66 zjD{FtA6Vs#?Rt!A1?W7E-uwlkEj)cR76IKz|FYp9yG`EX2Y7BWxca<{_HXb^#s>u@ zO|{T|i@)TC-gOsy7d1Y)1Dwr~v=H%KeQ01{X!!p-tQnxQk1f;Bh5m{mBnmHY$K0QA zUf3t$-3XED`iqc?{xx0y4ub+c9<6;b>kH&c{cl;zFe8Qwh5-IR=D<73sy|`6%(}VT zs=#~K*u+Qkc5@~zP1jy5XpfM-ACY*GB?62(5-B`6zHAJYf?w6z=pV9Y{RK)XsPWVEw8kQa;D1)>SSM%N{4pVQ{`VtMIqeXk z){>8e_CZ<$?7Q?50-^u=2kZZRzoUPdCCE=`OGN50$zN(aUE-oFWX9TQPLh1cWg{bH zgIk*FkyK&eL1&pGp$2>B!asB0pG(C0@Q`ybrWm8o)*;d|Ge{7OhiuBRAhZrJ8g6HZ=TKM})M zwj#iYUix12zk>wbM9hb_bPj134x#*%xN)NBVf}7C=(r|1<^-!B*65s_aW^M9t+Tch zMwQpxSBD*JKI9Jx@Bgl-CY|w16WQ;nNTqM_`ch5u-x+{ynUIv~|J&9$Sj|S4WIt{Y ze(fQ#O&V{Gg-dg=;yt!vewSFv|lxl0=O8KgTZcTcmI|gF( z>*O5Z{=;LmAJcrQv7F_#+DhCO;1nEUEoU73JPpR!emWH{xH;qUzu)-s1T5u3WUno* z4U8TLQUs!L>|yC(=k{K5UCZTDMGM?8H0+Pkpx^MRI`}`wFagu^Qs`3_-OggM-7c~g z^B)tr0$vx2x<}dD^)Ki0+d#IE19=R+t|0y!p+kGku`cx^ny_ga6Sj(d zjO{pc&q%r|i3#7paqr9n9h^C2l6gpw2Agp>Goqchx+;1mve$;5qnkpEKLwG~Os!QUGF3#$eaa}fbnlFlF#*ijE#0I>eqAn;vlk`K zlUqtEt{1i9&SrNWu~bF*`^P9skz@BLkto$QHsx4yi1THxq=}a2m``dC6tQ=jjrD7* zt(rH!{+>(}s)zPPis-S=?xO^zXrtd%HR2sckBJ`oJT-pjF_Amy+5V>r6cn(*x_!+; zVlQbn@tk9+(fF;Hf)%~jqNF}|QHNHB%^PV0Azc&vr9n+4!{p88i*SAx$M}>{xw@Fj zbQn%m7*ETzNyvjmxs!>N^tL|JbKS`{*X^yl?E2=|Zf;{FbQdj3Q9$Jq9!qlm{juV{ zklR&d>J|w~ro#9;*=Q5?H4Jh3$Z4pAOP#BWuRNdjfH>%vkhPv@y^y01T0*c}4L(at zv?c#sY@`073{J{`Syhs?xswjD?lj?8Ta}cDVSr%o_zRqt{hUq*u8ao9trS~roSjN5 zc-8OLh05sGFYuMAB@$RL!>GK2mizw>y|a>X$t&K;{pJTg0-Dbszo(Wwc}uI8|40<&`>;FFeB;#PbFa#6qcQLta`g9B<#*&KCB+SofC zS`p`;@9{$|Oh}7yn`+lZF^i{ZkcTwx5ljWY^JgWGY?4W<5ELNT6G2{XTqYYMJOo~D z^&06xaa~nP>MVDzV1vb>T))qf;zBMR$;4LP@teR2bH9$WLSn)_0Y@31DvYjxU^#P? zvYB^D=%s)nLYI}>$&0K*4%4Nn(_SPuTT9K?6<-MO^-pG}p_+W;rRNB47m2VtKZudx z-njY4Svetg&ETQ7J&mGD*U`#K#6yOxv)#a0I=7<15X5v~OqKZd%=PJOf$iN+ zmCtSMd~u(NCleSON+yJ}B*HW-`elW!!}uFSN}Io+hkTNlQKz@NHfYbBTAi7JIdrHt z)f_AHFh-ftMT-jU=8Vw3aXz2QNwrwe0E$_}mznEmzu;@!Z0&iZ^rD6PuUdU``#W{B z`Pr?Mzo^81xulhTu%xMp{el_(NW!IHXS={?A!eqUj)XIjO{5`Y@#}S-D_SehGUfW$ zJvofGs=BGrw7g1NQTuMz~DpiC^U5fg;>ves`H7wSg?&_ITlT=;7?w zdKBFD+X*MD?K6>?aSxKe=AEr9MM(Ujpl9f%88Pe;Dx)FXv%;s^>}9KMstKOLLe+C# z=5!$nrsDL98HtzK{K@~5AZ=}*uY7|oRQ>n!bf<~pGOmnKYI|C1F^xR$BJ4MVm4ESb z#xpiW2>Ij9D=v!AwvHSa7^MaJgKc!3?^}FJ6$p*K(e7xIK(X{_FI}RwbM3$!kMXAz z+HHJ^f$MKM#Dd%9Oex}td_U{T`>2lN$ciXN8cJ-i+S%E?1({n={q)AyYf8y)ndk-Y zTkzD&U%ZeZj2?FhJUYIU>>;jLjCE6-{x(i?4Y3wm5p6Kt68_p1L*GLs0~c1Mqv5NUSjEo*amvi*sTYe%;AJm%T@A>CgYL)ar>- zg#FwPYcv;VU71B19!-}sCa-_lDIPkpjV`>s{)n6IJ&nks)OSy_MOmv^{l-a z=a1&*Hg9O{?-lb4UYr>;KFeU}raefAXTa;cHkd0D@~lr zGLoB5m?@z6n)Nb;Lz|r_HrHEkHux`ZjmRx92)}2`R2;-;QJ{cQ z+TW+CL>Wnk5w69u-+D(;>*gi*B`d;_CkMgH6-#f2_Ny1XA~t>3Q?{~G#Mq+-i=H23 zaybWXSu(zj-H@tCDM;CpFpHtMWoJN@x5GEJAmF2|g8CVfhRu(HCBHq8&LhK@k&I}>%oO7u z>5qB9Je@Qs*RaU+Ml+qa8I~|bCk$UWEF8NEJz2Qrgm z+thg%hPIY==dlvYN44SZz6|#6gC+#et5@8H_vN>QCau6XCWHc z6cA$m#rg$$r8ByXOV!7rwVn^P{wo#x21TsWwE{FmgCV+QS9LXcZ3p8;^z3hb6cELK zjwPGc$oXS}!%2zoAj?0j-Ipvr+_(bW?2(;Hua>o+ylv+5OuhUOCByub0RyS*#?X})=b%kW1m>76QvtMYhb_V@Cz-xUw~t1lexMwbt`UXuQ%D*4UUiuRzWBbp^U zsjPKbB6=Zv$E$GM7e}_q(7>#3__UCS2NozL6!sewX8ScQHm&H79yxzz%lEg>3<{En zM;itnXQR(NC}mr_@`I44$R-m%gYkY`fA} zq}a{~NfP=}O022cw!4^9h#ytiJG~;f&GGhb9c9zEupiDg4WDY%48DGU3Wh|F5~86q z-Kj&eeC9XAlAed@zV0*i&p3W9=9I{!7nPXct(ISVRTFNz-&TCqH*2fLk}7&cyxH$3 z(XB9(&+|z6k1W^P=44(@Yv8vUVgC{@K{Oe(Uw%atd{ce(6Ca8Ve~i)wUDCj`D8Q|d z@@;3R=Va?h8MwN-w$G;XVO8qop8DrPQnp;$praeJjRy-O&OV)9IIC_rhr66SM&9$= zy%&=l6IUudi%L&#vJ@{LxVFKC-u(-zm>G zFi4sBV}-H&w1rpVJzj~6mwMan#-49Kj>K$ix zv1^x9=KqO8dGRn%*60dWHnUzlBf-GekW@({b*|ds^%7N$(9)TFQW(4x@73K(#KD*ETJDD7>d%Q4R4WH>L2hs4qTC~dc0?w>NwVsNtd|xw;eyc1T-Dh)-{{SmExyOP`zj|#z zkzqj9%5%(s3@xKt+CrOslE@7d|0!ilIn_s-gpF4<>ko(T=^cpFCOTIs3^9eH zHE|NNUb}DTUakG@M%&Ef0O^z#di9R&%CpFb4>K2%X;(~4)=E0=jVhuEYBpS-<%^Jz zn>L+Lywr3?^zkIL!huZMJ8ykUHs3)u}vl+TZ_s8q5*)nd^AnVrhxF+kP(5L7Rbmk`}6{mS9 z6YM{FwDT;um9xTtG2Y21U6T7#7H?@H<&TbgI3GFdO|* z3*)!XxjY>*KYHx!HP(KxMup<`s}WopyVKm)aU6w)G z%By0z2UhND&YqOzWYvxxMLt^f#j=}Lcz**I6Y;)`&~H^ww?Y+(@txO<)a&~?Gpza7 zqRKj(ygo;(MvW$fW?h>h^5N1zmme@vJ@^Y%+RrcCrVm zIcuss6{k5RzOQqo(;~!J`+% z@q+S~x8Lfxb!XILuAV&nb802bv~T*l@z02cv!hFD$`kPl5}D60M$Yi_4m@pNXY~7Q zbug?xali1u5z8t_!SL2`zecx4!WwFDf6ryEC#v)=Z@${o`>Og@O>5TcwH?GoZ<(gN z$&IGoXh=zqwjH2bb2@6Lrheaho8xkYqUdt2HCw}tq+rT3>$t=~S+a;#(xljOS^Agg zMCy{PjH%~xR7}Q)@^MoWtRg37#1JZSYFrYd z(s7Z$Yzf!LivAi;*CfZ1ml+55zL{;6^Mt0}PNBj6E}ibB;u^-l1cjP!=CPD0g9qzX z8)y|1TRMy!chOoZuTqpe%`%pFB^^UrS#id6zTL>s2hH%K+T5>S431vo`ePj=5?9(b z(O24!DvRzfc~$PrK04iN6J6!vnO#c%#N7~i2|CEX3Fh4|v@fp}l%!C;4^S(nu8%gy zN1?3Zg(wJgL_fo&?xg5C34z=vh*+te7Hq`L0EqJIGj!Yf#u(QRL*H&1l-do`3jW@o zt(_*O;Mu!m!iW`mjh1M1i@jC)HYv9OA@?cK)X)RMzDP@=`YGosyzo+G_HKSXkCWV@ zlHlP%_%GDwBVv+?np`^8V|Vm6KPP@7$t4h0Hg1y2JkW36x{j)Ck-h;_{oN*l@Ll`1 zjyF1KO`&Xec!Y0JM|zgiC2iblj0(l9^cZKt4VU*lo43yQTD$(@vnVB(rRZx?-QXx1 z=MLJ}7us*@Y~)E$hrN|aEgc;XoScfyDR2NlVt90k@wsn{a*Gt#FQpw#T)OIOQ_LiN zD(^1iCUO*~uGP*jG#CY7iIa}Lb$wglg>&=jmzjjx^Mi&j*6l^>gAWtg?;m|_*&z-Bz$TDdz4&=~uhCOhdG~kDts>r|0Hf7zd;kq?I<0ZsQy0oQVI@_Kg zsH_^-8FV9u)dSW}SXQG~aJXy`&U8L{Amm^H=ut8?x^`&3jN($Y)!^}b_88?45A zPlu}3y7l@n$~swS8;{H+yleGNMUwebyN+MgxWSZ89oA=izILL=OI{>{#YwLu7jTzz zx^h$`p_k2d405S@fLB#~wljix#-cXll$_s)AJ&fcB&_*fCXHNna~A&4U;B8nN7?W6 zpmP-F!*weX=@K~zSmf(6S5Ysl=-WFY4-aili+%IU2V0yyXhABvH+6GZyVv%FN+hr1 zJO1Fs0+whVJ&kzM`^}e8*b4{RZ{JkRC%7jurmolj_c;PnZw_fIW7$XJX-K7ds;NZK zU3sx}hkN0m*4aB~dnX>dAU?(9HA4j4U=jQ#swFS(DZLo=Zx$bqbj13N7A(QWc2)En zPVvY~^|d?8`r-=*B3i;lS23%wM^f)|UMglvk#p3(d_q?7F}a(8?YnhxT6LMZr9von z(`;Qh0l4-~ZF&KHw+MSr@{-5b;JC)J%tzvj8*8x}bGX84sruNdJGJ~}9u z38S7Dw)=KE#ZDDj1`MgO{}{^Xh8-o`v17s&0_A7Zl4(C-vb*8$XI<1OB<22^V;=4b zbn0YZTKeywknf8(KByb$%8$p z@FYNT@Zf?3zvsu+pAVlXqKz7&lj!`VR5wq;cx^`6;l`2ZJMg}Z5KWG$Uy83-dwEk| zoGmf^pvp!y*uYp6F{?r*x;d?LIys0@>bZaI1>Y?UNliLAY>F6EG!JoCkYiihnxIZZ zkm^Q#N`V{fvh?%esqGep5mTwI?zgDq-tS#v8$&yH%}B%HkK|{98D*wNzao0E^m}S; zvf9SO;|rdhjWaO{V<4+B<8myCOkHI2kFAm7`yNF#)c6a0UFg63HZx5#N{zQAE}N>j zoCFcOnD#2Y@8g?|QrMq8vL=`WlxMbg^3HGHV8E3v?c-CD!1*(I8{uH?^%yx$MQb-Atr|7Eqe2tEqYa7GpU3s5 zgj+g;pC|7aa(nUdk#1Ovhj?3whR%$z0F5kJ`O%$1AW0m1@Krj-(>+xs5|7eC3RrWx z_=u){JZe20Z@h7hG)0SJ$3mcJFta{yCBtJPcQoHaHq_CTSl?%AlX0uj!wGFQIjj-7|9!#*^(-fkpM?~#c1nA> z`k7xGNg3Kmsa~JQkMujH&S@O@u2Smpf{3%7+6Nxe&C`;g{F;XFSbmzuAK3w=`<1?> zmh*Z^x!GrHDR!dUtzIPk!F*KU-xYTLVT+CfRYlwv#I}i7dLEUqU^WI?JMLF@(r(*uC%oCP9It0rK5q}}hfd?)64bh>J=+Z~;{DtagxkYY}jlNNa;}IB+cHc%8;>waL?AS;e zACU#zx~@`t5lKDg7WJZ{Yu;K(kqk7a=*&MPb2})r3QZe?y?tKhle{X<55b zT~L^C*gnu;&WBfb#cUzuIux)Z^ZBEYjHtuenQn@x7RN%kMXvt$#HqYd;h!nW4mi}4 zCA_ZLz`d_ng^3Iv<)#@FL{!TQWLKkmQuCI-?&Otx$LF%RS*r#jjiZTY9@QlzJF*Q7 z?j4HZbQHr&D}5RkF3XuxE(^`XiX`;Ek{kWV37S6;KQH|%M5sjfUtLF2h#|H3BcR_u za38*v?GwDgtHbNDH+#B}P zs)@f3*_j6REkkZ!u9`!gJ~343`mW5q_}_XgV(n<=zc@PPWH*-F`?)uK@tdJl@wDHX zjEkoh!_`c76zb8Xd83Buz^uD}D6aRK|7fASqJMZ&G;7;=s(&cEPMCFGMiGy5JHITM zXdzu@TEITYz)VvRH5Hse7?~^NZz-FJLP^cu-)e45<0Z;~>e zygL6^XIBDEW%urnA$?995i%>JGUSxVEaO)~$xP-l9T}1_G9||xQA#K(GRt=mpLvQX zip*1nL>V(r_u1;ZYyJQCzt+9$zH3>ude1)lecor>dq2P5kUIzWj8I^`faZyiJ$BBW z&l!=~+MOJb7WBTz#=#zzp2rbh_La8wLSoc#c}m!vm4#UD&WGr?>Zf>Wp4Aj_7uQVe zCp;d4EW%OJ4}X&_*G^NpqYEun(J!5Roo(J2%H~s4MoCzC087X9ZbDMZA>oaD=G7UL zly;rA4h6NAZY54R?gmD^{mEZEt-?89yEgo^hIO?>Cf&$%+YU(<=7VAEuRrEr^|_q# z_?66&W`Fq;TtQ_MxY~D#QD1VnqpU6#u=->D1K-q+&aGa%^63dNL;jm| zxRBU~i@J5!FH7mJ8u>&du`$xn?kyVw?fEIr+U^gk5Eto0*g~ak=&CElIjc)kqQ6wA zjOOD-UtRQb2PRjCC)_hU=**8pR) zELc6bZ3QE-RK=SE%cZasZK$>XxvobaVVSD^nRmZOH9jJrX}Bh4o(2wdZ|z6vf|f|? zG3-L~bb+X55q%-7U0oO>i1$1NmQwmjV-(9%q- zPi;|d;iex-=hp-Xj;Rl;><}W3`7?HjkGR?#8`9SK+MB0!Uc%3ShWQ$3)5+{)<50x<8y&8JX& znSB?mwJEzWr)?p|_|^MMEaj7j%)u&FdxyWYQxmB>H;SL3fM~V*0q=9L)+(|RZ_%23 z*+KR)wV?}lA|6lvFpASZ*ouMPiDto!7sh?-w0pPD+kS`I(yeiW!gNYwtboPJx$#F$ zBWRKE!l}K7j`MU!=kNhBt}G|V6`rG6Br@3MB?FsXSW^D`S(4ikmHo% zZ57{ZFD#BKF+uEU0c!hb4OqW_L4H~wezBm@<$R#pk+lupn~BV25wvSx9xvq4JwWyn z^+JU`|1E2?=$G0<=Y7ArqQ(KI-R(=zvZodGQINlY*>@OZXOIlEKG_~9&h?$?n^F~g z>=5MK;n#g7j*!Jbl}8N%Nvt?4sM1*);pblAt`70ev^m z>?KdDLMA6Jy^&{0Z)|M~%H)hME903XHR@hGqQKkx$28p*-#Znq-LF|IXL5?u;knE}xg1OgfdoMFqOFNpK8azb9*I{5Svby>a(O%|6_od)HX$ zmyP-hY_TtKp+B^1mys?3(@QAPrw$T-!UC7n44c4Ub;W1n53H3R?(mU~RL|Vwyw)Ze zL}HHNq;htVKbJK#aq&ck4uj6U;k1Ve9)2AufQYI=DsYXc%vdL$*FxDxP73hCI+F&l+K@$%8uUyUyVqX$`o&B_; zXNH4+aQ>c4*OqGHv{!3UVU|6`S%Z5Gx89ai%UUE)2%67NFWK`H6qJ9Ca3_TcPXTZ03Cb9FS4k9@e^te{AAW{_&wZnW|ZfL@fT1)FxYy z=79BTiN~I@0aCBY6P8HO8senG$)_s^VB-}^?7KYH6erzsF1o7Y!n?U zsBeYYm*+0wItlpe&Wtx{UnHEmecG}n(4@ABmsaY|-VH~~)94^qY9UIr$^&0j>`7eE z=uU8|nIJy^W{@|^%Mh6m&lTRoT9AOpGsJ$W>Lnd9kdWMCl=Jyw4r)~8nUaDRfIa6P z5@B+b5R(XBdwb6^Q(}1(1Vy~7fspl!MoT?aAy}3*ZM-gS`X2HF5dJ<8{+@^%uA<@- ziTNil>NK^sy626i-H%8};tGLpV|mCxMtjr@VHTyz-GQWfvti<1!Kf$gjm5gQrJxss zx(j~NK%wx0T zGI~;;9S8`ijvlXj1N(grh{NsEF#-nJGt_-L4EWpT&$HCzyw6JLWXGa5A$o}8?QaN0 zl5@2M_FqfKm?Z4&e@bz&zw{6eaNllYQD!kXg66d=yP7T(zqcaCDA zhC8Qr7N5F$0$EZw(L%0Jb}sG zX{5FjpeY1&hZpD`TOMq)4NA{(+JBw941RiL)E;nN%bFc%O?}!i>=ZUKysmnPcBv65{E@L3}%6 zh$9?aJPS-0BidPPu3b?Q<>MMaEykSKH9taak&r}>)Eya@RAlo-;a}5m1#@IP`yIy$ zJFq-ZS@dsWzYB`r;-uU6(R?D`pykGiAZ7^7+84l`!iz40sjL~kdBe)SSWg;D+^3E| z1K6w4nx`y_T)Wp-nO{%?3z*}f%>oChQus-x8Bm-TL`ir9&z>A^alu3 zhhFO<5+2zR67mR&j;4Dmq^|_uW%h`_66@bG_D735&X_xqgN&rMU`5!S$Xjmk>^=~= z|C2d^p~8cr)GbxX@R#aO&BFbqO-=UuZY;ug=m+HdnQ2}ib*1r_J-M1J7({UG$1(lZ z{V}lCNg=U5j@1zZ68tBYLrlz@Gn)2O8TlI2x)8+HUcJ~=j}CUwy`+GeW>qliLuZEW z%tq@y>)|hpdZo+2|FSe|jF%zew?woag7A`5?{@~kJ#Q4(<^{sL<|(cATiX!bn$qdQ z15Tcs{zo28uyH@8pvA~>QmmBUV`IcXEZZHVk@Wz7Tnt+%YI#zc7x!)c**!kJrd@eV z_Md#JUD?%b+4z}PH}{gM&ZjXq8OV}!k9=Tb3%Vq`gSb#Y&MQ_QCxd~;HV~jNS`yFD zar?{#R3?6!J{A_Zxj?0VXy;Wvn|R0!XZ49dbaMk$_{t&<3 zdj}eF*reURpS80)u9s&T30wxZWWNG#a2>$PMt=Nw85%#Zg8I32z>&Q9X;|+0d&}C1 zT7Lcbex0E&Za&TqM8SI(Ss8;5<@EkmepCXKCyI%STSALl2_QSnAws!MO5AsS*hkwOrFy%LE z{F^?hR9q@IV1X||PDiK7=0&50`CtFoKF<^-h4+~;3fc;}@poR%=mAm33jYb)j3|#*@g;EAscjq9!5jpO0dQL9$6)k&NZ~g#Ws~}Cm5Q1Qm5RD; zmFoo}lw4Flxvr9o3ILB|bH<}`vDXg}IxMF@=g4_|0BrGLfXs0!_Jildvyi8y{(XCE zU7PDZ)37pybG}}15Q#zaGzQx*nmOHxJypXLLA->QQB;Vlz}=g^l;}Y@G`6HXeY`Cx z*N;9)a9L!5X<2yT$g+t2HE0_eptKJnE8nZDr&lxLd`M1ikl^RzBh%d6T)HW>k6EY+ z5VqR8yNP3CSF=sa*#Nm}X6_9leL!5!T~>uX5pi*hS3F08@obScD+;Bdt=6^cOVcjE zx_vgQvvgTs{4aA?1txJOoiAm)x)}wYDLw35++mO23#@^gnv}^LQ_j)stR$9FY#dy} zZZNMgY#bzYN|in!-%C--{g;Whu~wX@k=GRhG*zm2~jAm)Cs z3oXR#y36Hl1$yS^)e#maQA%ORT0lHQ1^%Ifea~gH^oo$JaGzk`aG%hvaH9h5U3oJe zI6y%%8pt&=)zWIu%^d7%dL2mT&OAEc!^E{Md2qtItZTmgysG{o?i2>H$j7=UzlPA& z$I^D|o@RP20E86W-trbQd|gNK+ge{LftH`G?$^obm(Q;@Hl#^t<&c~Ic}F1}7E(@1 z%QB08wAz2L;a8}nUlO629LNUffDk%vcUd|2?=0>=dV_&jn1(}QKlHhY04IPH;L1}& zqfsr;SwgqBfKq_cUvIOurgEDvF%i7w$y}AGFKsm4e^nG8aVfc!e zHxNC4oF0|XaCLyk@hI#mv{BNE`y}@jaINY9$frk1nBjF{A*`v;f)dQl&2jlU?aGH| zio<5`*IztX%x}Ai==Vme2SOJgdkA3@s_|D(H9uDa{^o(gH%TTAa zPj(eu8iKuCE%apQ~7%$NtzWg;yB902pvY$q*hC^zS7>4;%r3m%^`q5-X!f{l%B4$vbhJta<{T3~(m@pr)RO4?J|0;IOr`3#c~tueYoQ0Frr#UWcWm zdWSU9f(3KLzg&tp- zsN(w;u)Cnebz;`~5_eoe0?}o(feZtDr2Cnef~ThJcf`ZiDM?1OLDd+Ht)t`J+7S#v zpd$&3#X3*69fpD0hBOZIz&W1|UcGFCfTsILd4+^%TwGiX{`NcxP#PEvD9<@HwHvZ$ zBqdqv>+84e1(p=kr_GeVW@c>>HkN-t-Hr6m_Q;ZI(ozmkn?`U-GlRC20P!jPfdiwB zpD#OoGTbq$@R5XX7-?i?(E5|5?bV-v{Xq{Uv%p3igWd@Q%o z`SQ+h>j&H4OsVYv08$O0Wkf@pV^6g3i@}$L6~LqcT&NzS-33;j8$XH>^XgY-ZKoTh z+e=MHQx3_>a(?>;XXW|nN!5h5CJ}%%0ioo(jH=q6W!jDhRr%sL@3f*V!n+5;36ie-r$j|fK6n9gB(fa&qFDGpUqWLPXUW<`;nxBSKx*($ zijX>}G&)OlY3D|liN^?-NIg95>b}5IPKeeJssD-CTC+9&nzD*ojHoXgy;FE|CvDpf z`JD+}-~aC;hLRN~UTFQgq{L%s_>-(L3?ySPJDP4GT? zPEK$H{xLuYRk1On1XdnhWYw9e3zL{^UxDRREZ=U7lVb$V#q?xvteBYCwxe1ILd9%J zk>>_9vQ=<>F2hx1n}8FhY+}Nh?7M8}cP1JtLo*BHrWc-lo-4Dg5BnrHTT3U8eAd&h z>6ix(KA+&w*U=dUE@~BLXFPyQ-vOHHtN{W25c~cXZ%hQf#8{?mqU(WWM)>3<@5R3 z{%3-y4UUG2q9KYi9I$rCkVU&dOZ2ncTwE-lLM$I57)swth5)l9_Uoaa>t)SPvVhW0tsyoyN@BkvCqp$C=S}|L>BbTiw2(UZbxaeZsnOU`s(kbxy zH4twK2wf)-O*jOS-~q=!_4JqldKZE;5h@#$IIS&=+ib4G%PxNesROKKOiiOY4*dNH z!V(1vl8-aHg@o7Q1ezrk28~t~K;a42?gG}zBQMWw<}<&iVrTo7`lC~OFbGcC9Qf68 zyHF5Yo*4k4VmQ<)a5)}72w{8m`M%^GL~%%d zv`A!B`3CD!Nu*iztJc<~GsVd)a~#yb=GBo>5Qw$|D6HQ<2?Y#*VPJXiEz5NMQ^8Ox z&VA+L!I#$zRV^)fKpFZtr8`?DAx30mWhvR&eY4A&Od{oxu3um2aVT=nd(mlMUh$Ij z1LR$YMFtlQfH~WNALKS@jEfzYdgTF>#-ZnRJz?l`j&V$KGLB>vNzbcVhB%B|V(b6)5>+4A*It;WkYZ)0$ zNtuG6!|QLXJDmgkxS0sS1(<;^wIDiJAbS1J95Oe=q2-oAZX1-x^20A!j8aaEsYqXigSF3P=o%S^2RN+ba&^q56VBaoT1 zva%jKe!RMuL@4l_x6B)v&jBK-If#w4m20g|=HiJiTT5NM!osuw0P6{V(zCIJ*`)Xu zeOe|%(GNvR^Qn$kkO|Pq%=zn+{uccB@nc(Cn?J-sDyzn*U`TeV%_Y*hkk+=MV|6@J z3P4D9wd~n2;7wKmf@%n&_Ctt=TwY`JGV^r@OqE8E$3>7VpR)~1zJv*0dH0GG%SVl( zWXmJbdC1t<;PsVEJSG736>)WSRl8`nL;&Q%OTck>OAy|Bu9WhdXcoQQFMN15Yt6A`Zb^#}5p)Am0!oN93W^U%r=*H>#{<$R3J41NNJt~yAl;~dN;gPL zH%Lpr^9Ij;_c_<^d$02ceEZs)jks9Pz3!NEj4{VtFXdz;hzY0&@bK`6F?Yok@bHdI z;^7@y`Rf?`B!lTV8~l&Y_O_a>qJ_S#{X=U#Jn4tFmZlcArbdr0+UZ%_7+IKevGcHV zUb$#!Yinu4&%t5#&jsuj)&?9b*J*FVO-@+ey>EkuNBR)`cPL3D(FhMOzy>3JQ|U?g zY`?uT8Fp=NalJ28+wjEOW)FNh`Ljn=vp%t8Jm^)n>SCXNhQDa=nW~?R+zwx9)?_Os ztskpJR+Dnk=b|^$GpU7>x1^iWm$ybP2lvsp2Ncz~2+{g)71|3ghwvH9OBWf8b8&eZ zg(ko_@bKK@O;s58zr$l{K7_vUCO8WZ4gZKABCy^6CI%0mfBzeK_rn*^H||WLPf5@> zqGzK;kE3rc639g#LEoIj|F7E|{{L?SbCat^NPeaHHicH4-vxo%IXhN5I$ZuGDc< zh*uSlhnfTg1jKcus+#=BdMGI=sbFW94@*blAQ#0Y86T{jGCKM=K0bb`mNm2e z%L_si;@*M5wS>4hCT8a3#tqMh;`f@u`4kPJT=EqZ6$9VAiPrTOQaQsYL)4^`YxtJE zV%r)!-*7X8t3=2yYSSVG*wZ}^Z|C$hRS~Jyh+gUa4NC~X1tu;=cNXuzdXo?gfEr!|W z=7!@e>TBC$lxXz%8GbP=bl!u{hc}$d`L|qteLg%;RkUAgRUCq&Ydfs&8{PHa4InC zO<>I|Rj?Vamv?a3aNR2ZJ?u+$-Sqvl&kvr2nU}4qm<^Qj^%?AJuJUhA#`2i;aJ#H^ z8-#Kj;qu{E6=nEt3)s&KK4AAMnO*JD;RtI;ILD=L*pq9tIbX8C{p8nAM^dSZA6vvd6!pu5_9-VjbqVy#F~00RlY0%kgYR+m z729JRL;0zht&kuy`g%@MyevkP3Q!WV^ zG*UA#GS2kbG`*g*uO?HaR`7#^PwV{aDO#gs#l-2QI*u*~tSghT{?k8n{X2ZfSm|G| zhpH$k#kIsrbWyEoYhf@i=gYUuu?quQBwk|hF9w5QVPi|@c~wzf2f;V+R2zzfi82u@ zW5GH!t@*Ucz2+s-QbAW*cn6*7Ff1%AttOde2{1>F6^Vcin%~FF5b(l*$|`r+O0gI$ z$K4WZfb}q!j^I~*$0#d2>RX*>F(~}Vu`5Fhn=hrHq7t;UwDfn+>C>mrQczH|jN6qc z%gdko*!b$zEA^Sw)HzWR3sHzc|$)n5#=U4I%Z5`WZqw#M{m@dZMWa-O@=e@J~J?WN*IqjXL(h)g%U~ zpvjNlXyB0G%uD9-Ee8k6oMvEP?HU$k@flhrEbQzuWlrk@3&m}%tt)6j2b>lp@(_L1 z%N+Auw-+U(qlC4XnVI=VUU97yRP0E@29Sq6!~>_W3<9yFl$5{&8j0-LnA^U#mBhT0 za83Gkv!1xE`4U-)3)p}={xmK>7IdYRqee#jMKa*LsKX{h>-t-J(a6ZCcseC@rJk!P zNik6-FM|xwqvG&i01j>!@9k~{Mn<9oZT$P!5dT8y@=Dbi*~xI5#unHn6!PvO+rKJN z^f518yc6L#o$RF)_nKBjd++x*krnu?=`VyF?J&1#5O9qLN*!uzYWQZI&zw24T1}y2 z`0MBA;+c#R+Zu*o!;!DA9U)yYOhvy~WGm>4p%HSNguvR2(l{Kk=_a?`90*qXaqRn> zOGD*dI&Njc8>46N4O|aQu;Tj77C0X~I-;gkuetmO@L1c2te6bXTj`K%yHubpD zQo;Cy1R7fn68moWnY?zUDg@sml)YBxdR21_np7a4lMF=&WPSEHZnFJ*5mK4IEevV~ zPISxqpc`#V;_IwnQnMAKy6ThO@BCVl{;$#O;->!M(`g(o^+OB08+9 z8SUukg_#$>9Hz#5z~=|J@Fat_;}io5V>4Zu!QV#YzxiF@u^zpPJ`=XTN@CYArRRs| z&yNzHzkUx=BTW1qhX7TSc3G!>w ziU7L+t>7BIe(W_AeM+O7Z{D9WJ8PQShVFHe0k&AxoM7xxe8*Q98JVE7n+*3bn2+2P zQB8>eTa6~0KUnieu<@IxRpqk$-!JUFJxh<&$#_-%{pDN%`|aDeYa1I$y8gj=$XiRE`lWw_BG z|0Deg_dpaWx&?L)!dMfq5PZ}m%1TO1C;#Hc2&+_?P8Y)Yuq!E(*NuLNU^!q}?gS$i z5fL4y^?9KOQT6rr;0z|$u&e3czQ;P85FgLX#r2NxGtZd=YDFcjY&DRfCBQ&W-+rIz zn8(e)fB*oUnClvC;V(>X*C)I(2~B{hRg#mth%p{4cZsdORrz6`ur)Isekxjc!=k@< z)pZNs zJLR(VErC7SmKXbrFB&_%Z7}m|fS2QckUqo5aN^!Qq(osUbS2;1Q2T%$Mu)yU!#Isn z80?0gJd;F1j#4>Rl{D{3-OvPU8=Jtuz<5AT#596xbwO;YHZA~=lC+-;;R~(z*@TL? zm77=Wtf{-Gq^W&CcoL!*qD&~??(MAG%s+W`@R;t#YM#qs>9KSO=k2yc*)D+XfgvHum&81i3JY&M(rOafE2VLoy*4&BX4IY}9}3J1 zu#;53O_R{6op71NjN)mQhEN_U7;$s1QQHc{pUDqiG{!iyJGMWsn`G4wxRocrDiz$2 z<-6UOb|tk9F>87ZmqFvJ_rQ39J7CpZV5BJ4J`PQQ)0=>zD2gHUQ-BSX@7(d!uYdmm zPA3Mp0^oHT?%oQ2{o#zPpgb<%-Md&>;SF(gJ)qlI6n}8-c_ymZxgH+s9Eh)I#N&+- zy+<`(8Qy$KQg^m&HAtZ=?X5vILA4^S6N$#l4Mr2%oEcrN8yi&owuXiNz?UG+a$5|PT0V81iVvP{mEuUxD~Ge1uJ&=* zy|>tL)wm&?kE`?u-p8khF9ca(XD%;<@+@U&vqd;0bWFh&J$NY^#sd&x9WkhytSEoCqZ~;+K9GKeg-@PZp-oE_+p{AX+>Clm5hKs}1OHTx; zc#H#R97f+drjs@hPDEF7X3Y09U;br2umZg3p5 z-%c+WXdSNh<Wd5sVP>|aFLT*i8(IT6t}f9*stOd5 zehTQl;>DBAN%FCXZhkix+1_s1mV@CA(M_6kekVGn$K6V+3!f%_yz=TawLT5eu`&DZ zz@OIK>Q7y7+-qw`*@;y6wPn<49!AflUr*Wa{+bxA>+cV^cke1E z!V?n`ScHYOK}VSV@iFx3!)Mmk)@W~?ICGil(xsbp5`Ka)?=4CfJz>j3R%9#aO<$tpFn$ix`t!2~T@SE5JuRCC z9$XySsBosJgdB5$-p9J`Y#Mc@-3OX49P=KK`Mb-~t+j!ydZ7vY*y%Vpwv%hU7MV>6 z(IFp1z2ZyHg#_Yn8Z!X4+}}%hUfgkgSBb{P$60uJ3vNErw(HhIOp@xcmSK6C$mb*1 z8WbH)5jUkMlN+Gt$LowicL_NNQ5WT-D<8pP%yibQY+PwX3LjpY*i#azjkeau^z?Uy zqe{>7sz>b0Txy<&FLY*ik4|?gpRVjfXSwP+fvs9&hmZtr^gd=^3%h6sH?*Edn=!KE z&t}}eVO>$N{ky7@kel)FKE8%yVWUiQbKU$$bo4h}tLyMX(Mq6(;eg{Af;D4AFFwHX zdn>>yhL@RXbSo&vKad;9Gf9_0GMo2RVBhCFKYY~v=Gl9%P08FmBRf0$EG=y&f)d@? zdRX>7#Dox{fl!sWu{<$@X0XGc+J}sPxt=Q!4ip492ouTxG%B3?d~PJbrnL5a_&uW1 z0m**e!h{s;?aNIfnSiT=V_ZP63FXxDNsx`octJ?P!o{U1=1C-PWo0E^0mMPuUuf+; za2sypcBY0%Aq~Xq=ZhvHy9Fh4fLf#2%YQ#YVIi}8GX-)PqUe?th&&+n zf(XFs!l2GS5fO1i5VWZ0dm$QXInCwq4?RBv7?=@B5}=vIqo8Peo~TY922g0jVv+at z1FSqZji4FL%Cb1B}*h3{Sr4ag3+_>w)A2n+#%Y)zP*9XT7{$kI!-?UF_XdQnTpUnB@3mL2h(H7Spp8TZQC|v5B5J^_P)A_fX zxS$+*iY$e|b})#IASkFd=)IxU9e4&q%W_VmTPo@LVR5-%{ahAQYOscb*LVS;BR-p> z-=LtW+2^`-j)%atjoT#eLPo)WqZDNQO;G-@6A|{)z!$a-`RB&!eGrvUvW!ct8%TJ4 zSirtENB{M(iRSZtfWk89wpT_#Kw!I6!|2s}_^CUJg@`#oDtvR6A2$G;*fQ$>843%! zOv(&t;2C)O`1+OeZ4w1jRrcp8SG@6g^V?afXP={ee0&3O;a4fSx2na=deIRN+_ z&rh5|;V?X$TKfIfnMW24T<(q>-lzYPMr+!HfWhHTRthQwLnv5I8Pz*V#0W+_BgB0CX zG%W^J`b3mhIqm?)nWB{+x@84_hxdpKpFc)&^)Q^p|GJ?V+;DilN12lde{Ej*K^OZ0 zuyMbP{^F6Ze{ha&KD}oV+9=*^Fnazi&mtQ%;Sl*e4quS>(nyDqMaQ4}5An{M|KL$o zmbP{fA?%2kq5!g=3Tn9H=v#@iM8_&!{$t3?SZI-;?Ew53JrU_7vpmt%1roG&Y7eyqAxic?kvBfFbGF* zFkFg(tTSLxyyWEMgm_8RZ`&q~i~D!XjCeBq5*G*i+69g=y1pYp`g}jOOA8kV$0`Np ze25yQ;O-m)lli_P>AY_5!$ejR?bkHfi}>wvRaa3q<1PaNsTJk6Tcnbq$&5i^WEG?t zq?F_0urr;^KxD+cNQgN`>`Kr)KtX_`&kk^-G3Y)+!=;h{lwjUYu{X|SA0S6Xk7LBf zpV-85NB-iE!3i)*40M=`-p`Z77=%B>q7sxL9zv};+Nna6MDTxhuck|3=~jN1z6uPJ zZnW2wER<`!c=3XN{Jrkuf?l$}j_&J%KCBsU=*K1|q;N1Fe+Sil|K99Le11A`!u`;Z z+$W2V90X}zQ}Iap3ohL)>+~82Mk8Mn@h)~))}S^AM~9Lk+wGzX%^m%f9Qw6qZwUi_ z-n$W3ZUKl|+ieGn5S5VAT04$Gira2hO;1m6YC1KOWIgr%FW#!vcLRn2*ow({^vkj>i@Woa?E zu9=Q-J{xYM*0^JJ-Q3bZUqceQAIyl`#zKs+#?CTTj^XahUm6^5u*Ob5#!A9GB{BYA zEc-j~=RL#R!#kFmmY?w*S6U=GKI%%W&UPz;mgA9dFC+#e85spbfv{F1T$k zo|*&kxif%Sk=td{mQAxz4%h;UO|af12N|iW5 zMu=UN`xS^4$^cN5*GK13Tyug0R@mJiK)2nE{`{~N%QtAO>7F%_zTj=J}FL0x{DiK z-Wbh!^5co}_K~rn=}u`fk=?lLy>z*4z6tL8eV*j3*V28?|MR6TKfm-}`V8>}R5|39 z1`z|_Sx9c?vEAa*X_9dNLpo4+tNPLb{TqZH6QCQDts%JB5FG(5ma+BzM=VPn$>i$><Vac6xn6*M9^ zZPtZsC;ys+oY}fE)rJIe40_0(0t?!CMLD@>z_dFVU2}GIb9PY~OqIEEn!P`|LiFwh?m6yW6I3JeaW(EfUW z8mX>6aDNfP%P!HIpPiT>`8m4Or0anDH8TMkb=~S6ti4Kv)&~F^@{W;Eqw%mp?D$4)^D03mqUS*`(ag1~vU5ccah0^S zGoUbL0!88JuFNPz&)`W?6-|`p!>I!~HY4|OpmaiRt`cLo<+F^kHFZ?8%Nx(UpK~WM z%C$J7V%HHJ07+@-4p4wkTScz__^7)I5Nrz06oSrJ&^ru4#z%!Jx=s|aK@(Ecaaj!n zb-@;t7X%QD+Y(;yt|W@Q*kZVRc^YU?C!mK+cu4eE#SpFoU|yl5!7~u{6woD2wSH6N zg==R26<*yxn*xJ_X-Yx(2uu{ppm{T3z+BLUDHTA}Plla@%GF=YP@N4b|77fq zso{XvYMYu!DJHNRLteBX!3jb*P5PWq+zBO=n8;M8N$Pz%7!Xh!8E`-cZ=BY5C{hWx zU2>hUu&DYW!Lh4-=hiKcG<0Se7#Q|Tv?x%c@;TzIz8vLhh`%GQyS?oUF$=PR#Fbu< zD$NG9E7<0mKX};9{3lX=9E9+K8kR(pt+mJNx6K;s8%7ncJ5WDv6-Q zxl^iOQ*)sTj8vT9v;4zCFlwWZv8OcFcYj=>== zTsLLQ!ok5I=myw!6N=f`>Ey)gYU~L{wIhq%KQw$*-3@e>5L+=N4{Mf>V+^oc9# zxpxgB9rT|#_7z&;;vg!iBTmC!Joz_TqEK))ppw-Emz5UBg|c;2pYjS00Url7iI?ko z$sl61h?k>+5dcrRT4qWjV<=|9$Rgkp&`%O7c2_geQJyaN=uLGN<~GGIddq%R?!kg~ zcUx^>_Z5aPy)ua=)Mg z%Ww}r{m+pB^b#sgn7#uNTPOb1PrtHZpOfIRQNqR{KA^hIIQi(4_crf4exbpqM8dE1{PpiSj(Mk#6CI!{YWIF~Rdw}H5KHJW zpdCPVQmJ@wl_|3;6%uZ@sk9AIi_d%Mb6wohQ0+j~7O0VC_s+d0CnWYd4EIcRvS(hX zK;|Yq!^@Dc7??HVx~k#o;9v;v<&B5Suc@7C^C^U18*0L9@rU1${H5>tS%4`&d5QAbcO5&H#`$Zy7$pU--rUJiEVi9uttRbv47aZUp8pq8Vv zc3ZB#w@doj;kZK)`Z8-!y0?*@CO4@jJqZj=k+Eh-E-P1Q*Q_^fUz)_DB7%u015QvP zWq>)L@}hOOV1^k5>mv@-1w!;k1D&VkJ;V3V3PcaVM|WFc7ua9!(=0r7a#$mQA&vC( z`*d6P6R~b^m-mwes?&j<>525jQ4!eH;K$YeG3tbJ`vuZ&G?$-Lgy5SxK7R3ey zYE^5bbu@oL&o=yL15m-`Qhmn6@E4*|XzgpXu&H_2na7T0pmFQj z=z3krLyrTYS+oo`(tS=MkNsVMm&*hr%I_0mA+$BmL&9-1ezd4W4w*1%#GmKDgOAb} zx-@^V7I@rl=odh-Tlo5#Kt)L{9E}05ofKw_%_;0Uf*c9V3q5)J`wxbJ=E;|JUq>;- zFg3TNy~rGu*;kpPLx6qdDkU96Hv4nqj1C83l-HjdpF=mEXdDvU_k1?c!q|l7U+kAK8PL;xOYcO3 z&OHi`vZmR8ORR54!0vm6fq!*3`uV4~ARXlx$Vvuqu}Yo(GyUizZYNQVYk%I4sCc2w z1h%<<&C`51{AZ#3BW2bVCT21b~5#&D9xY6_o^Vqov433G;)N91syBKaq`%(s;<@X!UT#tfI!~<1*Jp+T8(&ffBkO|Vj6;f+nU;^;c5sHdn?V~{Db`Z8i zMpuPF#ODXgT_6q@6A*AV!mh_?6HIB9%hLa$8u0q#%Lej4`$SVdn)WHU9Z(g`5lkac zhmJ$#fwJ|1HpnU&sGJC8h<4x|E2%m=k{~UH03&=Mrf%Uya$%*bVpkbtrdH(r=)7-W zRONkY=x^u$&*Fftxp~f)gAK#2N@OK+7z%R9j;qtyPr^v#{Jl7`j}pOVrwttB-T z!3v#a)^I6*a9w0_`0AOHO{NT}Jz{m=%1|Y7DkP28?5(6S5UDakZ zifxmTzX|yRpoEW{C0P$E_kkYu4LOZ`Q+X8?mBKy1#JLYEk0IL+HiHAiU~t%4rmum` z5ejxgS=J`({KAWI!}+Eyog&-X3|=3(@L^)S830&*p@h>`QTA8Qe*AK6zCU$+z)2R2fq76+KND#|c}Lvs ze@#k1cb4pgStyn2`8vkOrF3LHlqO#n{ol=DGL@F^|7vamv=Ao=kEIjixga<`XOo5!QqOuV{+E6|lkgl77f1waEHadz# zG?*4SFtgn8qwb~*>oir?s_D-$FT0ni>RG3^Unat{v^+bxiZr6vG(zg&Tg*VE+6&lr zdEBjnM*`rlAT`kfRNO_o`|CKWbtNY!qmaX6Gky=L3^?2WD50T(264GoLrAQPQ}^jJ zWLMY%4R#!>S0^9tOM`fpa`34L;v%D9a)&S==SuA^ARSLWfk*mJUBjzvUhNU3XCEIQ zi%z!qKu796yTjuqJUc1z)3TARU{iAHV{Js6)|gaK(xVQRMG!XuA&@XN`-`fp_Z+e? zQ_;G3(s0yNF8G(jq$U%}2%=m!pSm7J*4JM%t213QNM;3(d~BPHfHZCe+10^t(NXpC zOuFQ?@jo^kbGYFr@H%|Sq;(iQgV$OvbIifVtd*iHH9F0`_d zaH`eknuONFvvYFTzW>!)&RQh(Cs_+#ttyK|ELDoVNIc4AEo5_jfdhk#Fi<~_g|pc- zJo_jN6mva7irNy#ypCivF`sT)!R7+-Dgkz-5e&Yk%&EX`t|$J#thwN=?wG3PwwJNT zDBw%%_kVC7p}uK>cY)uw8R`*fGDmo>R_&LHY;HXrz(aumc8m-@K0d)Qk5kLY2jiRl zti);ZuVS~E>-dtAk7XsZ_iHJ5KST&t9QVC#pu41ipa2_$lZZ~R=_(O{Eg>*~QNu2o z-Dig#R5Mk!UoxskoJK>QrI?8BYJ=GL0WkuoPWF`8@6$Ke*@3d&>6J&?9rCt+Dp_+( z%`-+|4?7gK*xS>Rb?+5Sw3^T7iYFMd7GfI+o^bO+d`VBNw>CVd6cK+l|| zo4D6{Noo8=LPie6poP^CpB@rC4kcyoFuGUme|hgs=)S2z2biG_nc^ z^geqf_pV_M8BH(;Pk6G7a#&jy5mm$?+3shHgTwmGL(0v~naovalb8gtr+{Bb$$Db+ zdx>iq)PHMSrj!4m-#j^ZWTbHE>FZB}gSM^LqJj;>4>dK^nu3rAxq%l8$W>$$V^&A^ z_hx&Hs0AK{mhD?aUsKyY9eNIR{XdJy+;}rH5oBIt=y}NNp}3+JecP8Dj^eZemcf1@ zrGwMs=AZIr586)k@2`Q}rkK9Qrjc(5e;|MSytt4biwl>*ud5v$%x{?9N2$@|us77p zor`4nr{dJ-KpART8mogti@g>uQ&a-lf&;P>?Gu=!*N4j@!940ch*j$0=Tf*#uNReI-_aM%6lT%F z6X2<#v7o$zvK|z_A|ai{ie9{kk(8C~0_c|}O_HZXY-2w*p%K0xYVf|m$|u8}0PA4V*T6%r1RADh8{_jMK+RZoif8CCC6SJj z30)=!C;j9X<-VCI1fQT>uOu&jsf`;2_$fGKiI-)7C}Xt0Xhgn$hCU>6t(Z9zcQh#)74{?)EHTHmPh zU_xeYx1#G0ONR$d1?2|dATAD!wMp=OTY_{OG=N=cBs%`MAhqLt3ocHJqde);Kw0NF zilrAJDR#AapQ2lF+go?T#Q{B;hPHwZ=weDh;vU$KKi&|azT4_BQ3H69fSkgFqKgnc z<%4VJkd!|8=(?J!gTW2BtZTuUHU`wcS+TbzBD7d_29ENPYo^!p%3RXujn+*v>k3>- z@=kyPf#+=mcma@A0_fA2Rv4fyD7ba{ImvE&yFFPCJ*vBh9^j4O0uc)JdhBg>Rlr8NjG!{u7nAn=tYB}4PxOE$hPio4MoiDvfYVa8B7(^7w^7D` zHn#S?Ew?>cXrxoAaNR*&O&Ed;(hJ})fe)0U4|mQ!eLUjQ#!k;-)w_d$b@2|GA7mhh zy^IV40L%0Xcc5pg6HWkIJ&{*z|6G9-&PRAxjjUq((ZOMSbPC_`$oKksB@mP!=gc_? z04-3uU{imMT>nMoDf{|sl6GTt);=WOvaY!c*I&RhOCcf)%Kba$Daq z{L9Ru?6&m{CH@K4K$PzGn>8Q3s+>L=8jGkXD9Wh7;YmuH0qz{wY*Ju|=*cngM_n|T z6}##diu$I=VYl7o zs668imI$k_=MbIjsBm+`&i;@G!*ClgxpZW40O`F022AP#rUitWI+#aJ=54eYLik|O zDOF?0G0@l-a@;AuoLZr42b~#t`jNR16wN#cAs}?6f(>lCGyS}Tb{Mn49f7>f%7wg{ z7jA~%a=!%vdm}o(^%1Q)Hxy8hy$K3}x&?P?o9GcEmrCNE<#CNAuw}&fi^xyoSA67W zKv!OK7xNG$UTas%E8lg*wE8hdzL{E8-{+6+YS7i%{-HzJ?M<2V`Hkyltpn==IR`%V zYalDZdAxMfY_-EZZi6lUqsIi|9bYm#!|@C zeBK>A$6&0|LC$5UH3rd}L30fV@Z<)bn^!g2^U7AqF|8SH+hWMM!-bAE(k;8%0JgP* z!{{~TwOinMYXM!C9)k+JXnz9Qlha|Ih~lvKry(FGGwKr2&OI0?=%0>4s8BWCTYzv= z?C;;dEw@nrDR`RuzSK9LBr4G|`{ox&Kj%8fvq3;`pu>v#-UgC|3P{K#Q>2;Uy#}3N z2waitz3>dM9e+?A^(3a=hhWZm{M>=-r}-9)65x)~#gj=Lcj)I zXWW$$!Cw077Py1|jscf%Z9@a7BSFI>BRo%jJ%9w8rrqm)gzKNf*jTb;-gi*Ez*GMl zVh7575YosauM>&Ej3GIM+w@0PrFs`~CLlX2bTWVe3@k(Fh(m`;r3-3jWmZfugjPmG z1VK0DdHns&uj;Ah8>eAdFDo_!N7qfhosm7zb==9lAx|J=jQ|;P?cToq0?1QxV}yVS zJU&!MS|6sH0P97~pzWY=MOc10;Rqh?JgbpA$oqx6CDD}lF9SEo9PvPul_AE4Uemp! zYf6)1WWS|`QE2%_n>y^amvj9b+BIx`=zNwy84%$kWLC}tFA7w#QFkS3G@@gtvZp6t zwU~jfN>)tkzZ{8Mh5x;pZgK$%g*5(*s4z^AS=w-he^+b4!8FW^rIDcOihLIvXVauy zQyy;tfK1Gz=3LEYEtKGq}-?W@?T%{`ijNHNW34vPcTxCIBLu# ztq4tJ&0vb+hN=ywwbWsm+w!NVS$FnrFp&(E|GP}CE(^|78rR=L>T@7u03E$GVkSyB z)>ot$K^yir9cBAhksW!m2my_K%x@`T7mZMh4NGyLh{KZ zksYIo1sAcef~Ol+cNp|n4q86`bGJulys<4C6uTUS%7932j?nHgfyM;zLgK86=R<1w zr>_6e8;*gbtO{Mxm2)UTfB&9jqXkgJyr4v-q-`p9oAef0sx@D0;hcHV{c2j5IG<{f z?+`2{p|sbc+bLn=$fq|=bRlpa3((3z=|2}0KkT8O_w zY1oj2WSGVKP-QGfZds5d7#_KTp&VHgN=r*E!~Xbu9(-~?)=fhl&P69SRZ*dUQ@V-` zt*44b^-R209sz?;8*NXy zXcA1qs3ScVnudUWWDhJ_O{x!CdYED`OWO->ESsZ>f1=4@1pC20mI+1N#G9R~s8K8{ zOAeeFDrf@zK@wr@o5(1cZ$)~Ctic3T4O=pptl)FivYtV9s@nYy*ZL$vYr7bKX4bAU!pl z1$z1p8ZDp`KV9Ys`NtwnW1G4LTwDalw%DP0284xw{)NV2R?wdSc(`?%`@x5HLiRTT zi6zfoyy#gSmO6kX(IJn#orFLFv)=?4&k8_O39zZ9Vc!-)<$5rtzFFxY5p;}S<26~| z+lf-&*_Gt$$_CGGJplso zFYusGfn&Q3H7R=0IDVhDJ*n3-;F#*Oyri@=7R;it?QvRWTKCVd9BRBNa%rMsTa=dUwiTmGJUMwljpc9UqpF!c&u)yBk)vuknUc^e~O746Jf z8tu)kIe<6ftng@6%6(Qzt?U(=88kwpOw27o=Pd#_LEO_ z`*N1@&Dr*X(tDoFVV4$q^bXEK43r3)k5ZfU7%so&{r)zDd7&8F^JIq@iaP2MuZrn9a(Ow33?Nqy|J99H#^7aB7DG{fR@;PI=sjj9!=6DNLM+h zQWLCWJR>xsckHlABH{v{Zk?TUzkPZuB85a&ke!d3W%IZ0*u=Q?mN5L~MNiNO$st7F zmDt&_z%?Y4EtIA{tB{GgixA(Vv-tcEJ_bOx-4fZmkIUWaP|aITPGoCD#cp>prsk(i zZ|rKSYYW%4F|CbYmYNw;{e!^X#flz}5l>Csjn3D#ct=lmFEmcbqQdOY{yL4%fAY5a zpzS+|o@MmRdml8(b|-ZI;6){LU(ii^2CTeVGYU01rOnE=%*osqUmRd|Lukkp4FJ{? zLMj;DeyTEFR8-^ZKt`)Y#h=su`qkkJ-nTp(64t;IH+pH}`-)?p(F$cC+wSM-To^eX z_umAz7bVY;cxBT#-FtcDczy0m~g<*-A%%=g^@yJKgu-DXO_tfG=%-R;s{JZ=piTT?Cib8XPW&b zH5D!;*R`D@oO@xj?%(4`3|w(S!m*gY{5KA2!b{NI@VZNfaW7KnVC|xx!i#7cyt!f{ z_{+Dmsn4B*?z33wuEA(gtB-#s0}m#HYh>Co0ItBzrmH7E+ORe&p7JLM3cP>tERN_? zF4=cwO#dDhc`PNPvN2rU<6M_c;8^zOQ=om}sXoj658c3>Z5z(hruEb||=j{@x zbP!VxwmJz^LYoiMM`07PFH7Ty#GLjv66^%mC~qTv*Ia)iO$J(r?(Q^f5CjD??>#-9 zH$%%&`^rC<-!|(YhI@I_O^OoYc6$d?`h}qX+fIZ}%V^M9_h3trfWN=_OK$l%RbJ7C zK1QL$%`I+jy`OQRCRsrr0MV*gUrt zj_d+s1}J#<*zOR+#Ih}!4?My;!j*U_=zcdU^%Z*WASBnRAfm{Bn+TD@*oyzA(ol9|sh1Q%Y^hqHYR42JRHTPE18QQf?A zJB;VpgC!?iQu8RZVra7@P`r=eLL?|CVXZLf1T06GE3g zjTW|Oq0KK{29+kg&w+tyw6;-YO|dO-=L;dc@g)uXCOviwWj&VFcLOzwy#zZ0MqA-?s~?53D}s%f64s zQfQ^M;t$@Bpn4CR4RTC z%~_@IG~l!B4ojgUf_8vt&h4i(w}JLyznox1j1SuwCFqci+~v^!ZUQeNsjaVXe{)F; zUJcP#74mmy^#!Li{<7WB?ARrr=NadbM@fCxTQ!^&wLU_q9iDM zrTi0spurbBRlYUf2Coyif^meGF`z~|D7sEU3^cA)Is{J6c0$+K(VWKiMz9HIsA?-u z^%b!|1xRm&PoAv1+j?b+uJUS{47~LK&ybv{Iqc=XYSI64NB3GhonL%1nr!E439n|N zuK{cG#4?Y0>v4Iqisa?2zs-I9rmUHFpx$xAxzJ7~G%Y)`LS_2P?H<7;$s)%Ux!U+( zmW}O)*@I7_?JFlPpF9=>ZH&r0i5s%Y4N24}u-2bdP5B|5RGvoiLI)9M2mLTGi zu1+6}&Rrm9no5k%RvzFInzT*%{d<5#a8*g!cADNw355Dj*8eI)w|XB}w4A*0Y@oiK zn%y*X{E*j4eTJXmTtNeals{Ak27}K1_jdv8 zzZw8u2%sEma!Lp-2z1;3V_P=oU}BQHbLXpTuuVxnV9UIo2${q&x05MqfxcvjkkMD? znWvAMWT=FtW-3(six@ZcE+kF1$&P8|+!0{hlP*aR${7717PwY2$TAe5NHwats^;jX ztEb`MrlJ4edGVwyqxoIyCHBFzRX-HvHS2eCW77rROlTf8Retqui)! z6R^?jVNL6l2BqEGdmH}OwXu1fk-Yaxw4E`#{Uzx#6tLB@h$Nb0@4_2!z{P(dQX9N^ zL09g_fO8PNzk*7@F75KY_tDS>1hr$sFV9c>u`9FHQ{Av#gO^(ASiL})k4%K4ZJ=OK z1q6&bDAy3c;UT*hmN075sIs}>n)uvx=kbppUVw1if82!gh~9z$P7W?XE$sYnsI8`> zca_0gpn{Rt1&G^Rca8+S!U>7aK-^4~Yd@U=XtG%5#9VIAkyir1#bxQ^TKRGYOAx#A zVj`C^gcQD@-EttoQfcSxUdqz@t`Ck0ae1RnORZ-7=b8Ib&C$SH$m z4AFv!!R^H2?JcqRy&=-<__*)j#IgfNhDww}(DfaoTpxI^l>S&*CmQ~^A6SrL)FCg` zmM&=LmFR~17&Np-!bESxEGQ!;vauw^$H^Js-15RYAx>@o)8x<_7DDkgG{Y6VNL8nQ z4K1Z&70_+XusXM$*a#~^vOtaa!}{x&Q@JZabAZJN`+nk^h9$; zpoj0=dS80}h`FkjcH~;=j$bV~dw^RV`JBsy7W~&QS3x5b@I>8>VPzrnxuQ&<5Od3L zJsR{5OqmxT*Ej;fW|^_4`@D9NJg**5+8?ZD?fBdrx1}kvCKR zY^Pl@{`pbg0)!>li1GQ|-y7VZ_7PbWM@nnY_9EcX;8fGa;a{iLeDvx@wMtY5@=Wp! zz7o~wzuWqu+mT>)J}@DUDTK8O7B>126|EGXc&WUt_+a|VH!zxjC$-EUpkAPZoW1>s?1&4Y z``l}MMHCOOt;_G7<9GOR)o4N{kWG`)(YZiwfcX6A{as(^+&a`K<)P~yZ@LD$AOCE1G?K%CYy@O8;BxTvtjbio1YMpz%bPPedewDv$s1z< zzvS(pheO32P3rz@E4i;i*#PZT1?cU@jSdzm0yTd@Xa{CIUy&}O}q@4jK&Bt zi7r`Uvf0M^d#t>u(m@UY-TltEVcQ+%iO5vobb<66>$4}wW(g@$Oo#q<*j*QKfY;>M z?>NGVxq!jt=zeR)pJ4IN7Vzh_rn_tcvgx{D7sG< zF+#7Fs14viJo&GY;c0O99ZU}oVP!EuFWL=^dw$N zyHAJS`;n$i*A&V_Fx$g0*qM$-*_t_iC+%BHMg%m{)hORDEPxR&@oa-iK!{4eAb^X+Z_qmg^RS z>~1%oZsX&#M68=tajvPP|Ls*{zi=6lfOW1JYvt8Y>pHmiBPx9UEAqo^EmbehD37wW z26AP#$8lYrD(w6Qtgm?%1~E3-t9rs^>rU=*A78O`-OMXLgiKWGO7zp6!+2Swyf{_&LqP#1Sh|rtB2ZiV!y}B<1^(~wCJ>1dJI)^;AucsXGc`YaNw12#OcI{t zq(2zDdV2;t_D$7zWVO!Co*!NiD3{G8hs zhBHIW0I998q z`P6zn5nn37@A`Xutb|TZGo75K`Impd>vG*EVFjfaew^msSgF~x9Z3xR-7mf)_sfHQ zXHucxX8QlM_7+f4{olVgpcsf?pfrMXsvtUB6hharHx=2);u zRnYISm9)PMGNq{sL5B@br!2YcoF0$Fo{%)YmDBqy`T=~scHS(1~ZBQA}m zomy}m?w4K`h(kS_KpdhovQQb{%TO6$e7xP^`C_=k6Bm@TH4%D(4HxkpNI83~cPgC9 z8bV)^0H|b*??qy?vMw*QI=|w0T*@towl?OR&|H%hZPjjxkM21}XVe&O99YE0b(k3Q zoD80#2}L)=exy)q73o7=+qK~z>F>8tQF6%bgzFc)2_^U(?ukbCw(6u#m7JMRuH3aY zni4)*$M_9gYcWiF#u~1X6ku8?sbDJj$=TAPEj~ueF1dTIAM(oSux(bw9j)^UlEz{? zD=~iEbc8!gq1L;r1@@!WIz*?*xVW{T0HCfjkyMD)z_~=YdTivds~Yl+tYCp*=4tHF zc>aVY72^)ocnY>B0I3@mF5G_Rxp>dX2DhuR-Fh`&SqkDjKNyxL@#Gu4ZM~1AWGgBJ%)KX<~O_2-hBt9{4E! z#MPnOu9BAer7)#HBE-3{*`pm>xyiu&58pCejWnnpS!x|mV>CrdYom;Mybm5BqpHIG@!h2~6F}j-5q}r+N zMu&Q`U8)FkK<(u(CUygL*|EGu^DFFg{k1hboUhPh0Eckn!}C#HdE#Kd$761 zQR^%KOQoQQfI*DMNaKu3Z;+k%z&FCHWnUi`BQr5n!mTFIgSx9S6))j^=S<{sZpO4I zF89<9UqD08?Sp*(+SIUg-#O(y53*J+^oK)VLSXAY9x7~7Y-NG$oV^W}=r0vvomiP{ zL`p0NpLiYJDlE9x#84U_0Dcc*2kA_eY1{UDVX_;7q=5go%`RH6E+u@)MbLsvIf($v(#U^z%nn}sl7 z$|gmCPCIPOh^N5IKA0wty@Z*$BQ}!Dt8;GJd^plhJf}4|iHT7>nKly=mh?~yAu`-H z?725|YcVUuq_1BgS$jNCl$%{Q9YcH=a)yS#9ug^&MHGPy{WFn_d@h(K+%D_<_6p~3 zyK9@+;6o}xU&vubns0hugJ>`{b+R?mLl7C9+{_jeF3##-U!srg6_g|6KhW=HD{T}) z%?i6-`Cq}|-+wH=HQ!N$jZRRw5MMI7RJHz>ntw7EziJNURa$3V>$tzFRJHMwlYb|( z_*d9PNyVZ{!xAlH*OjLqeKDfd9*ZGxw+17;U_Q*zevOSoz3A)xSHEq$A2bt1lgWvm z4GFo%#uMw`&{K3+n`SV&M{>uVRh~LWLJKwav|6Uw)4K+$mLkwse_MRRKBwhbkwMG& zplS;Z1twkF*Y>`iy8%FEq@-i;i^~MEE~}$Lsy@P9+)WKboKRCTC2=mH7MZ_`ekon^PXp(wNN~(Le@FWM2ij;K}38wF$X=12pLi}_0J>No` zkemfnr-@A?nq@vW^OT7LC0@@KaiWr}v_GWx)KTBxO>y5EvI4SLm(Y_BORprKv%Xx& zI7$+SrZ!1S4BRMYoy*u3BPog`Z z)5%BTvULiN9-ucF59GrYh6Wlmw$a#=J`>CV>N+{sAoEGx{oUSdZ1K6?YUdt+GZ zi^Ig?NQaI%-}@VQRD^y;y$DS*#FBwH%W`6Qr4esqf1#?0PFda5OnxUi3Eqi8%XGtuW_PkY zo07oeM#_IaFHPImdOOa$+jn!lko_X?qc75*xqUgs&dnAN?=_`+HO)fW<^Xo4CpHh2 zySwr$FNK`DuUJT^giu;;ODRPsdx+d~XHQygulB$=XjZGXaL`!J;59UC3uFJE2$@Js zW@f`gT)+Z@&GsqMKzA}hnl!nxA!lK8!6g1!5vCx&ErAIF}{1QBIUg% zVcK3^Ufg?*@4}osYQmhnYN|5bBRVJPY9RTLR+v6Mw`qeOE!b)gS>p%rFtbVSM^bIh zB_E5deO$;bS5J&@$yov-Pf=bm4 zR3?@!`>R#7qfbKU`VBb8`^xJDYOD8+ke9rAB%i$4=$7WHKrOaf$%%Gi=Xu#Xrzg*# z1`Pq`WwvkjI=p*#FybTrVzffX5N#al8RmBlih&lk+YR*dPoSRp%bAOjGLZ|L9a}-c zZhJ?(N5|~~e%4zrCot%-#S3BwsNL=5MH4Jt@2pPGAGPD`P}``FOkX~0HuR|zDs+H* z6QgHL_o!!11LC$$tw^oy(`p!AP5sEHwOY?My^6wA9-Px*A3*=^U#_d?mYc{pCJBS2+QJNyVVmc##w6C zO;lTf6O&i>XJjz5_J(GNiTG$bGYjE|<&RvN5l5iD#K*F9tI4q!LR?JEPX9*sf;X~0 z4xSt06IA`NQR@}cgEoo!{`u!uwevaK66qhY9@(#D6*WU++1{~DpPCxddgEKXvws*` z^uYQ&+!YjN629tYd!T{5njA(IDpomvdhlSoMf|kmF^U&9$!$%K8=qp_&oAHXvRECi z%1N@V^2>)P+}azCEI3jwHa!D?wpi~Cc}B~?Sx5y6-lu#=+5YfHkI<*C2qr>*`~q%6 zRF+5_E{9fPVeXTJ9d=xcgN?Iij#^>}UU5vr#EDheu3Bb#=>ptinLIW|19vJjgtJ{W z^F^@jN=W|a5^U*x#R#!>OjL44(iV+Tl1njD-VdGZnd;a@IAl%r=_FJQ_FOzbdZvTkYM5VTm4fh(La7jpUnTY3}XUfj@?#mmZPautD!7ttjU_ zNA8~KQ@~Lo%9N~84YX%aOF6t37b{lHI4$Z*o)*^?KY#LVbEjmPW9PcvaG`~Mxt(5t z8;eks?F~1y_n2@Ye>3EA@Op@mjR^8jS#sq(Nw*)as@WO8!AK_t-?MoFd%`(J$kgiR z;$~4W{Y~6Yke9mM@O`UvVHOX~piB~g6%3VIj7C$%$*%Xj;Uo)sn6(aE(@=5;uy~?U^dXgafY&uV~*Ds1HJ=YigP&r z^L?H4$WLu$M1Prd)W7=p9T~do1Yk(vK$2W=S2uyOVywW?W^91Fz@Xs8_)DEc1pzya zUY3HfYVFOqPMy(=k$f)IY%{0gM>WhG>ssP9%=zauA4awx&2a3-Da^k&F~N0cXRvQ9?I=;gf;n?LSu@RzMCk$c$REIjh; zY<1j}mh~?*txvst3b~&rAucyji ze7W#v!Pp45eEUTF#N_DQZJMc@;_xTIBmL!G0Z$?YB7T=0MWJP7A$t-bV!8Rs4byu| z&Od3KN0Q1$8p9Jhel9svbqNnWIel^F>_%CZc}U;y{^)td=>9GeB-=_O1p6ui;rFvf z`(xhVqYGSpsj! zcQL`}m7Y7+@iOx9P3Kg57xrzf$`we>u<;qk7MNWXUFkdn+c+`3MW2!QbRf}K`+OO zIvl^Oa;{lKRWzckPL4j)2*~AzchXhLq{=3CYFBF17cCoP=VQ2?E2{?CHT1QLA5r^` z&{L}S5Od_F0*8peQc}ug!UdaAxFdP{l73;n7=`FsNyE!W!3ta5@h8zuE4ePC`Q>S| zURriuxaYTU`r-b4&fU(}&|I-ibo)f=KCEijnr`28=b`OW&b95(Ou0dPx@@3Y^L*mf z==n#{qf;bCLyarryWp+cxRhKyi}x5R_5te_)S0H~f%EmCr^(OnCCI8%kMXo4Ta7`7 za0Hhg`gOQL$ytYEMaNy4rW2I%sa$@ey_(ep`XkPqCZRUiAKruGM`0`NtSAGY)u*Fz zWi|2slGsjf7ATt(L=>tt@qluZZ9Ty&}-c}+_+IRF&dc)ys}T(>>keDHaA! zQTFQf#IOAx&q1RBOu$XS$sZ zkSgFYDF~Hth#oUOh)zxD80?+G`+`fRgtjd)%PQv@yO}t~k~cE(lcS8q?nEi{W8wO} z3d@wo^rfGW{>^F9Ltj=1;`PtNl~LXE)xY^?Z4Z3L}yWGOty^f+5Ib;aIkH- zEmDwT?{4tvjYbb~AW?d|+x=2PR3}Q?9E(NgkIn7cG=0B_`<3VNm&{+^B-LT($Ty-; z=w|95`6@04&w8TD|5fUB?+QuQZ87=4&U14bVimYi)lIR_+s3DN`_Utw-uNkq%FmA< zij)G3hw<`hw^rO%9_K%q>ucD@8d^1U5in=7v{P>dqWz}MKW{{%2Cv=?I9Rdml^jpn zwG1d&R4o{-D{Onhqg$EU_T*7toP^)-^c@M4{TER!Nk^MYEaB|(-QGKjQ7zspU*=%q zGOmjEP2b_Or&OZ5icl4~{`?(c`&8zWw}tUyw4x|iEjHFF8rq{_75Z%_A@b|2ZuZ9T zQ?>>T`fCmmhU<}I?87uM-O6p2R%h{h6t!q+OFDRRNc^n)p-F{Xgg^D{yv`n@EZ)3& zQ6y`@{iSB}*q>h+d||>F3m!Fx?f##{Foh!7HVGSqK49Np-_l)J*SWrm9mTONE#m&1 ze=gmBOtd^)E4MsSdLc#nam6sBGX7JFuvQIx+;by0Dk-cH)6IRXZVEvkkSSe3{h_^x zdWx1TTUw+r-#9TlFO?$))s5~oQU5AtR^|L6KCSxIXZ^BAW036ZbPN&n)VH&eFS{&u zkmylAgQ^9yixgb}6O<{jvwWiaL{iR$ai4aw)iFl$cB&HfJ!C_{7K!`^=~@*CvG@wtn0 z>n|lxSif>qr%2|Zd8>s-n}ti8jYptK^%9SeLrgz*PNys6qsf=fq98in>CfKol!5lg zsmHth!7^PJiy?l9z4J$Xx{S5W;zIjcjNQakcdfAT}eV63*eP1dI%+>ji zt>g+U3%=eNIkGQ74b5_w_#7L}be;CFt{c<(qc(i~4o22QuJbr%liE2)`ZmQr&5xI4 z!~@SA0*wfXHrCW^h4YAvW@h^WE2`7sND|-L`kyO|35Xm(5aRM@Wkbve^lb z(&XxO_JoVj-1DeA%W(w9tqW_1!m((>oX%CPA%8GY(YGr9?D~+9c+8hIX)O!P$Q!!Rbs*Ot*NvFFI_r*5HANN!(?%Nlm)p!sFyO z6P!RW!mU1ePATKILkc<#?n^z%l&c-un@9J^_Tx2|XYg|MDf~2*9F?FU?>W=_Yx02StVqFG!)r+n z>WCkhU)YDI1)mIhIUBQ~wx{naq=-p6D-@GoCah3(@Y3f}BJrlG2lq`|L^5oDbmBN0 zAP;#UV3r`@kbqQb()N{rN(un}w4j;>$7*``r8E^VdN<|AXgjP5f2qnBd5tQhwLQ)H`Pdj$ z8MMapmmd?$%gL)xP1RWi@jRy5=wR@h5jdF6{qr_Ni^TPHnP=jQ`h@^)tJf8R-oz~F zW4VWv;}vv#X2#ofpc7N~6M7($sya z@>6ttXwQnpsv_+%i436Yt!}q2f1r^{vCmc^>1UOjnb6SryDPBeg^M=f$-wOjs_rdC z^`Fx`7%M!gw%1VQ>1T{vh|tuZE5|lJ5pGODtB|~~^PW8zkxt2)cp50Klc<5;l$ScC z*)yxzbA3OlLsY!ErJ43=rrP{Z#p%PNtQSQSKK*yK)TSatcnU|gN2=%R2!bxJRj+wME>iAK3)PU;R$4i1U_BR^ZL-^tCB>4D>;UlVWNCdf5%iqbV} z9q8rP1q!Fj+NV^eEEiH0s}4D5D2_ zb2Dq8d+cZuuR~Z**G9ftM9f)n;%W`&ujW6EN`^nhh;+&HyXPnfSXqy(Jnfhw78_0C z5lV6t`otq-$RkASUb!UDMm!&P3!{n_mN@@S80z!*kS%;j&5l*_ut#qgqG?HP{5%cH zKcDx^WZ2vq-gMEn8;>*@NPEJ%7eI8a{}t5(_p(M|L;JHg=MDmj_ZaOpZXa6o>h1m1 zAr7oF9Jva^c!wmEN2c6z!_HPO8odDF=-Ov`H@)bMqM?Yf|j04(7z zlID{KO!aj|7S&4Lq^7z_wSR>Y80df;SE=>d2Ix`n-xtJ3G}_0%hIfv* zgzWgFN2ByS0m*Z6J&7O&i$bWVV3Squ zAAnvHzmxIUF6+*7QPBUHT1Zd7DW4`mES^#(vpjy}`$hZu&rF9zD%V=&>dX6P8rv2* zxR9_Wmbj)5O}8~Qzv>k9^;=YoN;76zv|bl?%iD1K%I#X0P~c2j$6fl;9y>xjTK57w zq=B_ekU}uXAnH*vn(x@DZeUd1ffH5Nw8A`uI2Fjd+H+yU&LXtVn%6&(7;N7Zup zTMxB%p8E@WZT;XdL1dTnlg})DbM@HeJ%K^7P#^J>4N*>hbJaQ7qdBT`E1XwgkhXKy z?0c^02+w`yi@8M3F}rk@t&s}i2#xW=6#h&V%P3!)_R(rZ8Ra(Hjay1>gc3Hb=P8w{ z3m$OtPfrJq4E99SNz&)m<9F%i?ceB$KDm(2pKYXGV-#6yE2?~izBskH7abRu!w_(0 zaMOi9>#^jqjGz~*{=`J=mH)A68n#OJemHd#Xfc$-Rc>6k^3edjPb_?%LL!-JH>uX%?3uk#YX1IDE0q6y;5Eki0x)!0rG<~(A4I?#QFvS0T3M-*_Zz3KP322ze@_ZZ~X^|4>sn5I7=Bh}lm^LEX1}D*Z~x(o|G!`UKcw-0_5Z#Xyknf}eKW>{ zH0poqp>u(##Wqxuwk^9?{Qci*h=19s$bnw6)&I-7{CA5g^45Q=tS%RI@c*xw$!I}T zhY@jA;4L5+>8iEH3&30tmJL6En(29v&eefy1iu}Dmn?uphr`xatWuJo+P^Yiq1PFq zfCE&iMFEXK&28+4)KCMv&I_ye{dw_`R zp`bn?I6PbjwDz_^kBE(eSU~>=2Y|Yeasos%1d;6n*&>jUvM<`cv9$W?zXLz0J*fkY zmw$9q0Yd{7R{%lCG+rlRE`;m|pmYiV0m2E?AwUZtvZ19=Eh8Jk{>IlM93(9P8O|Xl zW(0K2u1Zbq9lvLMSQyjKFB6{IaI1V_oZII-)gf zBq};K7Osz+$B?4<6TmVeGbfIBDnhTjfYt?qZs7+K;1K}mftL|5WYG{Z`lH`JCv%T9YE5z zxOIypVK8h5d*t2$MBcBr6BB?e%~X3*_+MapMCu`}t?&!Qe! zte;_{3Krzx{m`2E{i8HXE@j}XU@!rZUP4^SCC(aB%D_y$jQBUt$9ebBSUH(B;=tyf@x$C1FmE4P1eNv^0S+IeqqQ$k(reHhO?> zy;4_K*B5qj8&I{^UcGu{*UH$&!o`N95vFaTN;MOPa8(FkQLU!PnRKH%K~0M!vue zu;WW2$JloOrI>3ZBqU}Ko3ONzrB8V`(75I02?hUvX8hIqU(LE;TFJYp{v^HxnlkyT zzw(K^mX;PC-r2KfzgP?o4w?b=1@v{#00*B*%n4-S&Rw`5V{M(g#f1lC)>ny%)G$2X z=jO5{iFs*zTDrRn93CC5g9<}Kb2A|bK{mrqfULPeP(mjWa2kLA@goHr8Ig?;wD(`& zmOb6yvcand$lEi}j}!&oQXlUtubjc5!9fAt4KVIAEl&XpoE^aDYao5TPyyqf zK~Rt)i1bEm@4-W;9q4dND-7pd-hgYjTR=-cT zMP<#NK6B=#hzK=sLi{fgfZ&**&;DHi60tC^?ktbusiMX8baf@O)ZJxQ*N}sNzFi|Y3YoKmZSC!iKs~r^)5nx21VgtP0_!N_&_r~i1U~Fn-#mWze6(j4>a_-Ls1;rqH0`u*Lva+%|UmUl=nJo2ppieB{ zSvdi=dkt*%A3)tdR8oSH`9uE?A1?W1SlQ|qT*qRuFoha`yI2gE+Sfrrj5lu*fE1uQ zFZCC24NL8YNMJguyFdkBC|q_rdHJA^8c(D{3*9Iel zf|;2RoHQ1cN@yp!`4F>9w;CPu&;U#Y#dx=WhJRlZZ>Le*{CcYW0{*3V1ABWe@f-pQ^CpfC2WBV;Y}VM5@4~|?aa}H@|%4-cQgbjmG6K_ z?E$ex`(Ix#gH~y5EUJHDa&krEc*9;yZWlfWY%9E-tRgxw#;iHh<=O zGt^yHcPEF>OP|ZL;wmjoNT9m^;DJ<5KLaN{dz6FVo3m{_M0!C;ZV3keH z%?}&u4$D z0l1vSz{3P9nkf3^4z+-NJpf=bPsDUH?58$gQ274`2c8jLcKd>nSj}_xIr7$wFTi%=G4bEmY>rH8L_u6gJ%i z^Oj^FcoV%wX#x(R-5ZiX#tAYgVH347q4nU$rfq?!tH1vVFIg>aP)Y()bc_<7%l*@*}XiP6D>0{bnFx@1K zcgtg*W&1u2?fj2T3Yvk&4&QKzL56+(nNP=8UtfabGy}yb6d*$hS(VndT)Zkq01{&h z4i1JflaJ4J3i&>b?~wv0OcLbN)&Mm01T1=MM@JL5 z^H~<_#o@Ef(eR!V`Gfl#aQrfe7AoLR6063Qt(+4!vqS3h%2qUT-zjvhK43pJx?)tVSfHCat;6{ zB^a>fhdzmjjSU0}s^x@0PmkTi{=Y$BYX))?Fpm=U?FkP zjxCOFXlQu&=#hVD=*7EK7h$#{`e9rqb%y%0aI<`JX^Ggw!-MSFH3l%xCLlOyJ-yZd#BpRU0o5tT4ZF5?;#Ma31Blw27fAHNCloTsI-au^;xa0i*i6wWae znqYW90qu2lb#+mB`E?NNxeOWzA{J-)(m?8?;CRAXnS zQm!TknD1sFAkc>aDEaf84O_*X?605HG~y8-7=n%@(YK#2RW<8xF* z1OveNSilE(gGQrU+uLomvx_Tl_#GA(6&K$bUPYz-fXLtuxFb`uv;TZ7E-nt~zd>%c zix!1&)7=%wnJ0V*(lfz`JT(5+$0{DmDE15<%64%5i7ndm6;3Sae*S_k($F?aZ%L6p z#~^wC-v@VaiWKY3e;&4kKU1$l6T_p7z`p0*+kYPV_yY6)_1OYEYS({1ny&rwqVT^T zRpSI>`0qz^uRRV>zJGt~_Q{>=G5oKlk zvD^lMko_*-Ql;94K$h|DT{4&-KkIx%l#@jfGDcc{J`oVExWz&d=unHy@r{#x-BthTgw@J1^gaH0;Bh zummu%vOWRPUqGMOZB3Aokv)be@NICgH2A^SZyCQQ1RPWn*J|2`S4!653!+ox-~b)efTqzbakMf?fB_I9OD^chA!M zJLD9^uUx&VrmK4n{Cr3{l0aPa0DNcAX+19@A_BSIjG7vnckkYXdwW9zx5SrZorM9l zm3e`bR1Sc&MKFJ0#lHI!1J;z7R+#L87ucwEPhb+_P78Z!|T_X^2si$M3qwBl6NNmfh+SaM5 zCNdr>D&E)CrNEm67=K`RI4Q_DpK@|?`Z+o(lcrja#coH0$s=b6-qGdD5tLj8<-{OW z@~th3m3oPjhvz%^)r$_)qR(%GE2C;)5c2!C8MqvZd|#@rArC7i=^kP6;18LGYW^due+M*WF}Au_Lc0}wk5krH?yc15^f zx*1%rt=HT%I!l#v0`v=HVSNekA+6@E%E@7cz)aQHczl|pDs3Gby4>Kv&(D7`44gr| z)sulxWR5|w3G+z+D8xT2U06v#&(FyVIu$~}G|y4^kr=v5S64SxE}ZVG*DjCm(YDUf zG30!wM#}8=SC0-4Rn^q+A+B&7tHOH0n!zue46>ULhfP7k&dJqpZ2e*=DPGd2Pii3Z zH({c#?hm;Kfg^uW_=wm>u;}H>y-}|@5p!VK2WVNvkGJvd20!Oj_&|%#Phcbf4&vY1 z`tT4MN4MIY8v+bGJh(z6*f925=FiN@k;&7%DK1VYARw^+Ob%F;3&PU0L1iR}IRuaDhr-C!C66&LAMShni> z`>(30sUg!F#41mE))iC4X%X5a$VOhGqa%Sqs2I;n=mkIJRytAhlhD{kPtl#~>O zgs&(}u^W|@BC&|Z7YPKjR*QX992!*Fkc2>4dR^~?6TudAs&24RXxcIp4a$GZW zaS{GKn`27w)mtMKsE$hd)qZeK3}${wM30Md#;KjSDgk zY?8u4?Iqvb+gw)g`%{P2%~r;krNOx>7bLEH$Yx(JdCAe+ps<6Vp?}FEnKsHq`!tLL zfhZ&SBy#HHr+d#y34i)&rQ9PX{LpY-IpqxDhjAj7pC?~gJ53JL0l(Z%kvN_FP=g>6 zKKa4G?=;=X58VHG8_NIxHZV60++G`yEi&JZ&fFG~Vz$$m4K(%(oE!D;tH4BRO|Yr8h^Tx5nKOx&G~@P5Z{X0gP$u zgq_)3d*ZH-wNF90^-!6`P?>du~KXRBrAz`%uk{+zJPP>9bk@6Jfvjwq1yQRBBrEFR#igc1^nu%_dT{Es#+=%xH1p-R!He^A~`j7MUYGqd1BX*4!{X;Jz5dJT(I3fJT%=!xw%WTIA z&}ej8*0MlnFD@j^nqEi{mv<`A98Vxs7Af zEzA26$)4$ntCTuEz$--=J1kE66gXB_Y_AMy!6T|}b<>S*mO9QUjyQEI>y)bM=;##eGTyqCB^h+3YHu;O)N9v4BU_cR-#8wwAbjgV0BJ95P2W+x z*#0u6Y9Cjv@$u0`Y!Xs8*=zmn-p0a5{c0Bq!MPxJ>vEeB!aFQ{3=!*stz8168S%nn zDc?C>?-0em^VpcbF0+TLUcFnNqg7b&wDGk$jCpTwsSs0x`X0u(hwl*Qd-g5#bkkWx z11ARpaqtyhz>?^XKOU2b?WCA!M>&r-oB}I&EEmmH%F$X}P>mB_>Xc$2{OqziYAsVt z@40-ZwU}e6dbJL7OFNuN;fF&ztjl9Y*@$nVI6W#VDoq`oxKhi0F1fH$v(B`(xkn-N zaNW`F9D^lpxKgvos3|Y?L4b~8CjLdg13WHQBUdx(mRuMGEv*$?@x^1ppEA$5<-H00 zHf$5^=g*(_jkt~_&Lwy6IwbK~MlpUL1Y3|aTzzxtW^v7I?e-`P1h!1;FeMe0x#Xiq zC?Ul#KA4KOmey$Q@>|;Q*)c5e?Au@LndJhCncY}^05bgx8Y`f|NiYDoJeVPz1_B*$bE${ z5i|B3Nk|HE@(62Ege%FPfBt+xhD3LWAL~`Su0}o6If~}e&-wh47{=$u!H+<=OG5Nn zV_z98?Y6By%<$gdG6yeZ(U%u18_mV}oqRr?-@5C=O{o&tmqbKF*)X0kH0%o9D3ff9 z-W(EA()RUImzBY`7lJo$KIrW13=9hDHV#2%fT8Iu_2qXDmRd5(Fe@dsMRnJ>d5pt+{=FW_HU1=V1ZjQ1e2DHU`d64bm!%QS8C$G!76nX=!-Np zH(N9XQs@*J`GbFo*-gm3YFO!DGCOTwFj=dbE*opy^FTtPII+KUbuQVrFGTz(3;cYp zQnFZV$MNqLhRWFzrv=r`#a_95-SR%zZ;1nY35Kw8)JTsKCZ(jjWZxt0Fm<@44C;Hu z+S(eeq3azX%IVVm?Nu!^Gqc&LjSVL{Q8#4@cFme6H7{7S3K9qw3#+IbBDR+Wp(cH_ z)-%^@cbz`?JmQ`~=L^DWSPzz{Jb98Lwl{zCaJ`jV8%4qm7ZRMQ>zKEeh%2tGxMncF ze3Y%VI3gw{>&=@tR))dUd|~Leg08tMzisPwQ3XN}zt}Nrwj))gKF5dK=M7p0csi4@ zz3DZNf~mvM^YdmzXU|%|U@DWAj2yVWS&n(G)^da#Z`U8QB9VtLFlBT8>>wUa?^L4e9 zM1Q~HXjSzmq1YHOO=cAnJF0QlC^XOqE34X_jqlA+plNDp$pyz%N$-ot3a~>6NfdF_ zJlxxi{O}9c_tjMiJ%)%H@Cl1QQ(r=O zbKdOL%6(j96o&TLTwI9Kwdo9FlfnpPk zD0m;%)?)R%$9KSs-Dq`$ManSnT;a>tt5kIzbxgqS_z!rvq5kbc$Q>5qZR=Dy*JoCY9qi13aYCUBB z&Ywdd3a36n91uANsq7br{grY{c+6m>W9EyOFIN1SDX4qoavG#aG% zua9U;PLDe)flJ)~{_!q8{G(I|o2aNL=8@ka%g@7ixw@XP8EVt+acdW&e}Hk!3p9Os z|KG0)Y%RS~8{^Wn8U61c%}9pVbsl7AsZWyq|En@+J}DafLLeZ>%E`6Y+x)H_0g|(1WE|9|XegETIBgi>VOImLfA>9nIUnd>QK# z=!B?ni!!O4x#~uCa`h#}OkS&)h;GjZ{dE(KlCG|ZZ<#PLGODt&KZrt{>83m`*3c{w zrY_`hDVt~O?f{3}Af|=3zsx!{od_YuefzfZOl!23gG2ExOvGR%rc^g7JtBgfk(rs` zwez0iZW7+aPwEz9<+dQAfePGiIJ)fyQUI>%5WO-QLYP~(hntHyBq_q~b>oCGgcFT) zS&H=Z^cgpKJGf^__kzqPgyw_5ne>^3EoDnuZ`Gn-3;a_2khWvRU zB0~{*d`B%KW(sEcWCl{&6VtoWF{`eE=v{m|Zsfc;GXhaV@z3lO)`h)ih|W>}5XC9i zzc#U?QCZB`8g}>YayuB?KWie2`g|IH_+A9D8k8>x z`VVnzoO)(uo}0p$dfTxJM1M%LYf9H2+eo3{)tLX8=hi40srS;Usj96}rd$1atRoIV z13vrKo(^Xa4Kykz6D(Nm>DeH(DoF3v;FZiLC+uBihd+&I&{atpvKlNg&r!>KA4thv z0720lW^oRAwApW{_44dR^|XiQ^zEA{;&@CIubYq{?u{mjvU=}j4~SKJR?B57LV)fP zKTZ&WSMrs5Zu61o{1vmEwF!^K?93ALZl+S35gj^Vr=PfyYDZBYh0)a4G1Zu^IW29j_>i2$3l8Ei4b58?H#?f zwWdm#S$D;~ZGo}+1J%Kzk9O-Y0r5lwiGKCM-g_ndR=-l1liY5!9zlH0*Tyil^rJH} za@>ATYHvlds7OFUr3U#kcvMF(1q%y{*(q=^vSD3aT@g`Hnm=1v{?a=5(%$&K;^^=0 zf`9vv{H+th5G{5rDjoKqd@PAc>y4xF>j1fxA>zf{!qdFQuhpiSD}A4Cr0w80xBr{l z!M+uk_RAx{7B0*aA%sNj=TBvC@a`6!X_B)?=PonNL)O^~|ADEU{mz`+lc$Z@fc$rf zkP|=@?#WhT23xTltMkr*NKw}Rj*90IOggsA_vm1k4cwq7H^4qJxtjhKUFbhGa$WSg zGkp^+&sW{@-nYJ3d$3+wH65nrvA@DiarN8K-v|~C@Jfp#)#dMLh0-AT7)&I6c)n_d zcCN;c5uo;3|b0s&C6ACcSV9_8g>M(xg!SDF;FYO1PX)cjUifF|TZwGamI z1e(J#O(anf@Bx{ja$7AsyH8MuWb#?|WkIdNuMfV|lvemzlzh1S^CSi`F&4&K(yKK$ zk%uJ_tvzfA1i3k^8I7phr?X`A2~&<3(~kD_iu*6mf|pXe{tQx)Bk%RM5mBhBG6A#D z`hJ&HE{&`wRTaLw={>10O&uURj_+&&zhBWbFfxSCb+ca>^~7$yqr$bGL)5(OW@Wr3 zSmI!k_4nVj4#F$#e~zB`fAU}A$I^zr)@9ro_oC6n^tZ>v_vK|}9h3|ZtW!V+m<=?`vsou=XOrRmlgUA z*!^EkAJsHo_YZ(VjnY7I&ETIay?0V~M{^>{uguor0m0Zk+8Pp~WWT5K_3=y^Gjim@ zkcMXa-y!!n3NuEQek@jq3v;TR8 z^LsIO2E@NzIM0K3b6T~LdcF4OpQkMkvw9!blK=Ijxw%R$_HLKHYwQXY&#XgD74 z>chP3N$+hNZYMLW@#pIrx@Ae5u^2~se?HGGT~vhHPjp2W=wn@;q>xjYXDh@%lzgP) zWGTh}&xqV|AV5BR)l*SKRV`$jWNL&My>H z;?f;Rt)0s2wqiT?s6~HSi6554Ix~DbNxwpE3;OW!HeqZU>v{>*t5LEMp%8O*s{0)6 z5w^FDUPUBu=)0$v`1^^Fp<)81k;$hK3bC` zywbHXy{QglZ|z9BmwPq@)5AX9q+p_7=D&^1ae6!plWno8-@^u4*v5S8H`W?wcRX<) z%4|vnOcQ>ul%tBvH=KAr&-fmM zcirwi74cA~7W`>N#=xcT>y2wsjC;m}67|umTH#+rZ{r0N4!YLm;7S5c$i$^k$u~>zObHRSr_gL_6i6$nN zWAI_=&0{@0s_v;SpLV*UnDh-7BHmWJw)QmJL=Lm~(C*WS_UC9q{^Tc$;ppfX_2Ghb zP$@I=kKNP_8}%7-vaS#P5t;6P9(!;>E=syXbn5$s5Aojn=q#3n)p~5;-88-eW_k%HPMv+_;;Iwjr^5> zG@}i(Zb@NY^*F&h$AzmSx*i)U7;i|VICw=@ckCf0z*Id9rdIW;(LPINM|`pp%q~v0 z;zKXV;sE1~7x?DKy+1+B%HL;Iznh_6Fx-?l=T9jwuoOYgV?O-(rH$MrA!!9ZOlhG$ zyGGVE@7;9u>ar2-R2Blw<7SNYQRSnt=3o9V6G0!_Qb4CFpu4f=}7QG1)= zckiOBSNZdcDA`%Q9e7r3sG7HsF0_kaRSoULGrKu#DH*sU*-WCEs~6d-F%l{d2!3k) zYp;jTQoia!mp{YUMCjQIw}+e@1GwXFe{P#ot}Ny?k^S7EmHHxdv!W`^_{ISH}IBu%HCxDBW7QY3QZfNsn_z_VlQW5C9AILfmDVLtU}J88^N zA%UfKBWxh)PUE}##G?Ku?k6QrZ_3ns+N&vowQFw^B~fAC-S+9C zD~&+=J9Ba8AM(`E3Cl-UkEU13(_0t>hAuP99_|mtlLd;MyrTgX)o3S}s<$VP<@$%4 zC{dR2^FGJ=9WJHQ_VtI-Jt3t%W&XV#DDT!VWrZu+} zTO&JpznZ?h4}V|AR?U?U8@ckME@W92S5WaRV~M^6y}N)H@LY`0{(I$UA4yZ_<<9d~ z8=UWtNLBfFrc)G>zkj0=ci&yWe4T>K!t@W{`-H`8Z|$u;EE__H{-vw-9a8*^^tB<| z^nBfw_OpWZ0%N@X4%w=+4;Yo4ti_=M$zasK8{UacSlEq`Y#J<8Ew{;-`%LHRW+Qky z^zzB>WzWRR3pm)$kK$B6HpiC!8uJ+%)$_v-)arUH-@zPyIgfIC^mL(1l3JwC>Ud7P zYkQ2+z{(I39@LGt%gpF`GyHX_Cn;d+$%NjYpI*Km>&h6nzQfyXPWI_I4x4t`Zs)6O z`~{^L$m4a&B3@r$J)lkU8Qky@@*ZpxONvn65!wl)6OmW(nGbbpyr`;|ppBUO4^L9|4*L7c?YZJb3#S<>QCGmHqU=LJ)Ub=pQMcPW%#WdZrwMuT@!X zHUyg|abuo#G9Zi8j;T{{ITR3dh zSSk6)#}L`xTu&}ByXz;DBL$OFKE_2vG!QRmW6>vy*`Nt;`m771`%dxlMceYi=g%&t z&xRd>VzU(QGF;0uu(lObZOsUg3?jiKvL?5}HMJ+vYdGi%;$PvS&wCu|2t2Ker78=9{@!5r>PsfII^WrSmmLu6Ep>D!nlv-J%!Wm%q|Jdm!w5*Bv*;?Y$MtDvYT9`ZdPr)BQ6Gv8K!IOdR*09 z|DYsmm6et4($LaRXI0C{+H@a12VEA=I6?a~K$=|%2x~damx22Xg+|`vqQ5X_5#-J= z%dW!{hn5J4dD~;QRk-#TFvNWhU8dUo0#>du_m;L%T(E3p*cGmb8#mCKOITGq3@Wzf zd~1$|yCt?jhtGG8(_pwJLpE}GjEp`a$@l2X+>;B!%Mbsn;3sq(b;_)=1;)J82n9c& zo*Ebw)~cn@pjKyl#5I|K*taK&u;00(0r;prY${H*@^5pIR+a6kSu zQp{kmviqGm5lMHEF{;A<8A`@>ba>Q@3#~}kjXj)=#|Dt}>rD*|jBv^gmbN-&k5#Db z9pG!~x5DHcxGEg?462-P47`GgC>D7mqjt`1(trir>Pqcv{&ahl z`>x(%U*uqUblu*M5K$%A$~H(OfP#_;}`l5aAJObo@4*x$B(5@F47uyL#G-%i&hXNHvj~CP|9sWH;~Xm_5W}e z(V$dORldEkn6~p;R-ExS>1A8k?8k2D+QxEC*BSk~4aJedl0!7t?90l7 zwk({J>`1DUIT8|R^!PhT+=4?!|RwP?xxr+#` zs#}HAR4}e~6gPsMc1%sx-VX4e@l_RWxNLU6{5xPW(@w$~n+ebPpn25`@C{%mL0338 zMm<-v0jvSwJ)*0-yEk2q@(`LISUyDns8!X}cuo+4FaTCEc>7<3@Y^?WFN-d}`5$2I zl68Mv*bTtSLvIDx)FbuH%`5Yyrki7MT}2h7(?%s7i18tvH(4;v+k zvTiP!9$`0@qEq>;6CAX3{GAgEYnk#5=(6ZUPCFe`FfPdVCd8Nlvbpe*EMakYpsUQf zD?{OZTOot5)BM-B%Nj1yZ_;xM%b@IwisR=q)Y6Z1j`Wv}q=h=V;n)@{<_N&|u&aT4 zQ}(+Ha#U0>IqiwqL!c;RPEPr1s;fUJwWi5xxL3L2>MG`PSpEG!V4lb!S-&+jbOBj; zdDSiZ@>KAcJ+k)<;s%a$?Y+=wi(BD??uiCCAwHw8e-fI@1Xu9w!%gRv(*DIn*U|5H z+M)AIXsuZ7&vhghLUW{Q^##EGU&_b&eztNO=H_T9%?AtAvGvG&9DcgB%nm*CnZP%{ z3Nw?BMsZH##G~HZvfk_8XL6J$&`0}Yw(2<%tIlI~!s(~Z*z~17xGr2RDBh^5to)jm zl$Ddy^LRBh)TuYy@uBk)eP?oQ#ah>S(R=^tVfqoVtBDr)wlmLkVKuI)GaDK*u!;8owqu27ap;e%sN! zSFc`K6;^_mBeY7qcP0X2_caR*^1;KLAX`a|5#d6mDFFciOJJ{M$2aBWmXGocQ74?CgB!N1#yrO;kmh8dUx7P>=$Wf zmGAj^R`>lu9Di;}Rqe8Kw?gplKIb&;xW1R!Vssia6VoGTPnV(E6S9GLWB&EcrNLUy z^0ODIZ^;nQT*xZw+NPi}ng<;$fMfN24>zOh4!3kK(g~~g>$@ge^khBlH-Y}rn+`D^ zxjcQJ${zIFkpVr?epRj28e^SVgp%6=<3eUKB;9Ro<8>T`OFjbDi@KMkPS?G;;zR?O zy&N$aeGfFyA|fKt0BlXs#BHhkgIWkZm-*&o2&l3Wn82$``akiA08H^HO|vXWCSK3hUT33iK*| zkK{XB@&pMjy*#t^@m~1=aAEk|*2Za*SFItfx71*K^e(NML3wCXD(V}%JpXNw8WkQpaP*5e22L|pmh z-tG$b5fj%CC#pm9?h0oZR7nLjUGJv0oSheAR>yp3LgzLUCPpSFrldo)woFx1bGuu{y78hnNmGwQx;#Z~xBl zs}CKr;UU`Y{5Vkmo-SNfwaq?LF}84e`asWF)9crnhRXyrYR&ljcfj0YR??JH=A4mp zHS__?4oh3!xU0v$$H;DKAD7&nBxGgsK7`8Lg1g}q{AN$;4BgY!^W$Q7RwY{fyf->` zbur!D3aLrDr+l}j6ynho>|6)<@kV+C?qqTq_NT)U0I*)V)Ri7Rn5gi%C<$Y#Z}zVK z)+UZKlHK*FZviMQloJ=Jr8RP<#n`JvqE4MBxyx``&*A%SNVvRxQuOIWGEYRsWddyI zv)o9g;H*Zj(~*uZoa2aX$(!@~&Bfbn7^bS$K|VJzVM=1Bb!jx^xq7O^k#Tj@DIWc$ zj%Bj*JoRcY*UbS)#4>@*=$E{=JvOOR`h$EP={cD2j%G&ln@k1~-;En{{nuTi81r>a znG{-s=8|~CkMEic$4fosI^$AD=DFT&L5A49^u!fVims!jlO%6Ae zUU(eO|2FVliKx!CYO!S@*ILJZx9zmDuhfWr0%yZ7S*Nz@H9D=k_E68XaBjHF+87XF zosKyykEAIESLT<;bNHHLf_xg^eH_Xik?k+qhZhK`aFmg*F9u(^JYeLTT+@30~cH#6G z3GdkadO4%iZQo@fza0JfUrsg^L&eX%-YCYE0ps_ULuEg^iX{Qmj=9qn zdL1Cyt`XPxqP{woa)V2r+i_n+SiZ?0%&JzG4FGcDG~%p^cu9AvA=ge9_;F+>4PV3U zhBI9hS}}L}xoe-f@>9-v)!xv9l?IgTQE*saVf4|S9HilxXVk!PaAUB+A`m;z7kfuM z6AI6hMlmV!4uvzzRl5$wcQjQf7ycPd#e+U~xs79MuDu3`KwN|hb>}&oM!R8x5Tvt4zeux;Wv-v6IE9cTBN(aVV~ZT^zn411v41?}F)jAl9Ejr!$5pmiiSNztwm5pm z_vNRnraSnKGI&ZN{0a%4GUZJ%2M^U?js|LWox3g+T<&0{8i3bY@@*bXEt!@rq{kfX z`pqHH5)$BG+V;llCVh{?6%)Sg3i+*`h-O2ksJvd(UMPQGGo)5inm5O{^~ zOs@o!So`n4e*+SpAt>&e?>HUYcwHgxS=n5BB)`=s0fy)R`Y^zOb2NjKE+Ld7PNLOR zhGOKX+f-Y{v}Hk&$jvbz0G>2$I;F70*IYcd_09V@Sg$q6lW3LZ)b0X3Hh|z%7`6sX zQ5i0TN|Wb4Es4#68|$ryIzUM}j9X-_hX$k1BO3502Cfp%FXK95 zqT@zP8u94eCy|e7A5mBy@s1BSu~(13xExeax%#Z5$>}(eyU!-(puwd_n0{%8e}|$J zGe@Wr4UN)be=dJL$I2$Vx9Y1v=~~foSxGvQ4O)Kj=~$9*fL@8^hRR}Pj%Tqv1cxO_ zQ|yuKJ?h-mcK9bO6VI^4u_6 znD6`&gmlb^MRVO&-WxxY?J)Bt=py11!H^mXo0?>h9@3uMsFCCtvn@~E4^Y9nj#*cg zYZY*K|Mpj}s~ORz(1#`?q!-${M@^LHnP*{xX%8_j?9Qe4<)3HfLNxdg-mxBXvc}gl zqH^VyV`~%ZIXE1^pqx6-m~QJ%iXiQK9)@>qiR{+H z^Ra?(OXqg|sdjdab$MEZ-!=iQ+ez22mS=Y|IM@hx+AA@|3ng0*wYj-vs#VR=ca%-u zFuimMwOoG-xh~z_c!R{Kn~7&wBFw<;zQsUS?HpWwmc%KZz@LUHO9k@l-aKudd|@T= zA9ddQz@LA%U$vN%OLE5;v1T1W8f#yxrFXrlWp0I!yUwiHqkbpN-TUd@9N-Vk3*RmQ zf`u8TY|S1p{_+RUmTwcu0={F!b@ZcDdJ;0dM}47B7YnTd#PPr3NB@g3qK8U}6?V=6 zw&LCTt>uA_Bou7(??rGd(`~03w$T}~MMbJ3Rb8#z@h#RvvJe1BMje9;`s+q((-(Ww zp#`Jz5xr(-KCiq`STCB42cxwvmjNddZNLU8C+lBNL*n?-FWqe0`t|{M;Ga9pwE>dq zV(^W@*Y9&pwV!H8{%zIDk_wo?crXA$@(9o#jCH!9mq>CEyI1w;Hs-i? zTmHGIXIW3y2kn;!^~aH1^}|jg$2gIWX=`oOdY`U1J``0ccij{DVga|wb9m2Rbt4-n zmaK*DbTaXX7cbD@fJrDwd=wFWt7-Sjzr%=1pEjPAl#((XV4$PRhi3cq0_|!I{{3LN zZJ|!7h5HRj#F~3+v|PWwsm^Ct953gDZ9S*;D2Ma1TSjklfg7m^fC(}{b zIp~VHu>B1cP942}K$w9L^PxU3>wy~ziPTx!W3KbntF%>zF4;Eva%AEOsbb#p2|=}e zyLdY25*$zh5p%&}WY9s*b@6=DW=Y!L_@n)FEyIglw)H~1PhY5YAfpe-W+d!GXg_#t zUFcfqCUss2OTGRef#`^iGBUZay!l@Y!sh>E@yy`dr9V&tdZT7$merT1{c#o=JU9m6 zp3ee%$q=gMnnGV7*z=lq-C6-|Bygu&H!JQKH=8a0DjL}8NESCFkotBY)^IzmJ+a3o z8ydDo_p3j8{owg?D&XiQE)F&vIuSjKQhB++N#Mtu9dx2-oH4zi>;FXfnjd9|dG7o!G&*u5|bC3n^>qXmpnA>Zq{8^c&z)TDl7VMO0<2m@JkLz|&$Q znYcP=BJOUJ(eTTIo9^FRa=hOM!3{AYJp7dgNp zSy?PZ#Ke>f|3;#!`wKs>vM>{UW@9n;l(2i(hVE(~=YtOM)t;GXPcGbmVnXO_+Z~~U z-OTUT1%GuVy6RB#w`J!RwjWVvs_7Jc$==yXrl9Cmo|t%UF~l!TOe*L!WK9L(B(sI- z0^WZtSD>YYgO!aL+kJvwOy-Rn!+6a+mP4=F zI|LHXKTIAQ#rO2c9AE{jq&K+i-V<0?uPN9p()}=I}ZST zu78pc8v2+2^z9j2Ajhl-{6SgmP;~QOcVsURXcqO>iG#*qznERavgJTmTi0lfyC0WJ zPGnGJ-}(%88Ta6|bg~bdLL4x)@*g2%dF!cy}Oz^QtfK_Gv$65_}oVe1cuR86|kzM z2udQL20i}8dd5%d69-S@o`#kTnYdLT-ea@v?z3D?8Pi}|HYWfE%5Az9d%FfpyXahF zOfb+$fnHfbosP%+b)GW^qqW+G@kusyWYo9rkbK{ld?*b8zKp^B>w$h!N9qGqExv>o zzwbMLy<_fA#2P1%hZcKtqY3mtkcni=gfr<>I;4Y4D?y0eQ&m;9jIT2U*lQp+5L5!@ z^mx#}vtPgQ^Hk*`>ZeFCE>4kbsO+3%Uw+Hi$<;}fi3RlrP~gcYHNKWfmx~uQ^hItP zwNKneo*ovuDJp7u;KtK>97us;tr>nC6{}~{&jqdp6Xz#zn132kbB3r23v{MDAXu~U z@oCWTTPcIK<1PVBD$~q+{9$ItVde)bBcmjl=-R#OrX+|Y%9DywQj&<3pI-txbvgP& z%g38qYJTPBH-YG4{?unnTkU|9`j)#Rcdf89npF*r^h6Ugh#nV3nY`C6%~4i;aH==Q z8I@h~;bzCi3&H;B?_FtOlW6upQyk#c9bOF+~wULLrrIsD;{C1&Bq(QG`hME&DGR!{TU8rF*Wsuv{iqTUVABM0-? z#vRsDs9ckhxHcC}JUoFFLIY{E-->4bk5PxD@R+OF_s?|9P08fz$~}Er86xf?2vOaU z)~f}`3U5h{ccq~8_?8&QR#B^Y#QS&`{zH#16W~WsZwvr0&d_^lUW+SD%2JmW8LZe)F3I3X#^`6nqTL zkGAl&$)K(v?z1w1-@JUr@4aPweF{M-ao&SILDXIKGLyWrn_Gpj(|ihd-Ht>68G|M$ zNRD=<$b#vSI)r?xFp3X02|^X|$ZL?FPb1kH^TL3<$>kp04SWe|8RbGgt)@z`6) zj5VP{a6Rc}0?I3zOq_SBwWDR?c9W&b;?_uQbx&z-$^XRmyd%0f zLHG>=#`T$?sQC1>5l^p{tH}w%7TFNd^*2D=(~yom5jP6f9`ca;U`PlTBJ;X`oH@aAs#dF)5Kt#xs_h- z4-VM=Yo#Zpd~ibu&cza9=K6ZYYj^{0>JlF~W{m=O;cJ!iubn%!gavphE%TEGPrA zl&@o8)eo>`){rx1XdFap$=i>9N(GkK##}N=PpC;KP&lgN41%1TbAFeglWF?;H4Egd zI^{NrS2!MDli7pzJNcC>C`T6r$;*FHBV{8U0RBxIVslBgJj99c{2oe^G~Ft-;Y1!) z^b{H6M!cV=1*+gNLght;xA*T`JMx8H`lpvSw z0fAVO_3`xgaO-bp?>!9+;+c}`px0%KweLrIkmqydRq8K|)}rd=fHK~JgqE1<%d`IR zHxYU0B_VkVW8x6Nm^SkMmhdR3T9Zf*7zoJik(){jmz|89OuWf6yY2fd@-P?>*Jl$74Q4x?kOewA_p zC>Q{J^`Pf4tP^$g1TwnER%ar1@Eh3=O3wm3k&0BCGbODl@u^&ZEtwg>%iaDd4eeRXBSYw=gn zM*^9_88|yoQx$^n@IU33YT!s$6v_PJ>4a}NFSD$S*#_c)KcQcZ-q~?#`kJQ&MGT-T z0N02Lm;{bcQObkaB_GGEWG01et+aaNi@2PumKzD@Jmqyzuz~CTBytf!9~DPHM6HLI z{9nr&dR>p?v`h+mSK>7JFzv=o8g_^QqS_wgrxw05pQI*LKSqbSUz^CBIV*j9#Lj2U z2IS?1i*{S3dmgLs76{u%&wVbDGKl4Y&WfPV0qL!F612(ot$vXBi2&ArxF>V&oGLJ- zCY$CA@zuV*<`WWXU&lNPOI-3nrk0w%bj7ybx`5}_!#I)t?R6-Y*POvc5tI@O&~NK| zdzo21L!L@VkB3PHboS))_b&ZzEU>YsK z%Bn^~Uzs}qs~otEEfZu{<4adxCMgj-{NCnLCP)K-UD*h6OnJ7y9@NLK9*E&5%@@A& z1HZPN2Hc}A z@H8^n26UA9hV`R3UW8jibFgYhlBrHaviH_xJ0ARPFm>0~3d-8acB_>eWh5dK7>xBk z1f2)MjouhsC6FMfg&fdjHX}J8xMUR+6l}$VK^3v`Ac%@AqkFQ$ohDx`bcq?irqc4c z1G2q1q3*WXqs3g+Xf6N(D+LT)1-%F5&0P0Nv}J7?5Y;?jacj1O6=*m^CLPv1b9+C$ zaU!&PfnzxWK@P>gY5*xJAO9#A4HUZe-DS=(n>uZ3-f!<@>W_WQTd!p632jd=adn8> zGL_^ie{LK1DPoX@;Wi-WCzF(5dsO(EG@5OCyc;BNB)cg_6!FVfC7=xau z4(ux^`Frwp%TFhp5}qpNRY5p4gP=sl3XG{kmR91tq)C7lTlzPa2h@Cz56eg0=jilZ z224Qhs0oVw=Z>cW*;>Q)wzr3M<|wBC#MW=0n!=O zc*4 z{)qwqA$f8PtaQqLaJ;LOaw`C+ui2is@1Y`U4lT~3_5l!Zp6@{qd&ILaz0|T>qo%@h zvhK*kukJ`#nNjw!$6TV5b`;m%UhRylj{1~Cz9jd5(@=q=D$(9?@}kf+_5e8MVnk*q z3~Gc$*tmq#Mlj2U7*sGppbckn%q)oh7k(B#qet)(!RGMXGc6x(Ht||L7NHZ<(<>j@s@~he?h|`g%E)u%U%Gk2dCw`7-fNB7dAXwTV(e*z zUm6qCmIRqL9M=GReC_J)=ddly0m&kiP{4Tm!4XCV2?2Amm#T`2io2Lnx@;u*)vGc2 zrJ_PYLb|zC1YC@QnmUe3D-3oksOL&tR}J)mlrmtzW6{F`nfo&_F^`R`FO7{Lgtp!n z|58%I3yOSpHa1yc3P}nRu$r3%-K_bKC)B+TIsyYNvgEig_N3guFYNpymBzO1XJ)dd zR*_Nf2z`HIzjnsE2P4&TL09xMQXeeAQ5VDF0=3G+8&0fu?)y#{D z^Ec`C!MMaH>q$#*l42>$Pk5o>t1s(Getgv>Dc< zq@-nsug8tFxLm#huKh^>N7*)}oG2GUaa!1aAvM#f|ZoWLI`XYdto*z^36K1VKhd#%wsI zL8r#82wVW841pyG`dgk5ZaAC)P{~c0ZuT2DB;Z^ObvR~W^8nvLDM;B6eZmkbr{bk0 zh29u;Z|?bX|M;OMHeJm)q^?DOdz+Z=khN;ddw1VM=%&B4(oWl`q^Y9PBrR=it>5GM z$-Q6q`@Q%6zvuj&bMI-r-=Ft*jpuj_TVwQfAP=(JtGTl(Hg5(VXxxFU#cEQ)UH z6OTNoXCfwjTTjkr*r(Z6t~R;+x9{~4EO#_L2HdyCAWYZZ4fN^;OBo$;9@^^9?Lp{( z1zufI@fuZQuw)c;n9I8hK6<}sukWVZhW9MeZXWL&nllPU`;jA-PfeCLJqC~R!GUtV zSfB2c26tZdVJ$G+S^8EYPeNyNIx?lfT0vQI2wj(wYyX1WM;TuI>7x04t6vRlGEY- zmJmFQddoN~F6|jGrMgzc`OYT=1@(YnQ*#~t)A8XJ`>qg%-_;hQSMKf4kY+a3V#7fh zfBPHAV4M`LvEEc^H1y&wQZXUK6n+a^H#^_wBf7wnC`KMJl_mf{gTr7v}} zy-~VtZa;^R7cly@KzLsT>6)b}o%XQz&)u+f{YF&*EIr2c+phz7sw_1Y`pb=#h8EU4 z+{{0QB41`-!p*%--dk5NT4Sx&8azoF`f8zFjBq}ZCpk330Soo%k0m!PETZ|N%~ zHhlNPk!0tETNAQz={YHJMVeCe*z)C-m8*_JrUt-As@>eVbH@*zzMhN$CB!~1{?}K8 z5q0d02xEF+HERBVLKHQ}Xos~FRwSJ$&_CZ^wyXOM>zFz80+w&Ssbl-HsB7x^+I!zN zX4aC3fvDBFV0ZV>PeWmI7k8Dg;|_avARXhhY?>w6m-7|18lX|31{HvG)!8m9!&R+2 zxD5wSCL~)V8I^;>=Da|IF>k)dnzaG}+uZIyf1bDd-ZqP6+toA^Wzk45@0GUOF1vqM z>j04S>%4GZj=dqSHc|no0|Jfcj^Ze92MQH_oAg|=CO#_M7WvBMM)s8Zn?yHYM%ddx zcQ{kyp1Eyg&a7GcV|Db$2Rph-rTZ_lFI7(!LqtJ9oPh`|jUe3L;G%Ra4Fv(}37tm` z4r4n-Ogtw=!)vfae1CJE{xz$bc>RJnGzEDN#EXmD0Kar*aA28K-AZb(HvWS7uwtvR zTIaNGIw@1_2lY7-0#L=iB70)9K0QFXp2a7o0a~3%e@%b$J=RH}Fl~B^rBu_UHIn49 zz>c&5W)Dq-Xa zn-slim=dIV2i=>^zTmbB(j0S|x6}v|9fSejyCEUmas>qiyoGC??Z{dwzD}~w(f2Cy zgCeez(i1;Qe!6cGd$dQ1NlL{nSqfoZT4VALwTCbspe~t)(4Ms7 zqNhR;E~hkZ(XQTeV{`7P0)3%2NgGkT>Wytu0?`ta?VH>X~EcnNv0Q}Wokv#X?J{OfPzRm1(d z&0Ni^nt4>)O>u21>?*;!m$BwX;6m8G-8Rsij(0}_J1Y`qXQ1Uq$hO7nWS1=i;ZuK2 z>T}t2kpW}u!mI7LoUZ8CujbGnw&*nm=NKe4+^573U~OZKycK?YDgU8hAfQX1E}NCb zz4mG1Y+bYKiH5h-;_mYB8|1+@_=h`iIvwrUAB?z;Td=G+L zCrbBz`|aCT_xH(=3>-wiC@zl%Rb#bn-$ewcqNqEitA2C(t-1W%xeKDTmOTI^o;Cr& zhLqUBp{iD&1*?#!DjIn?{0Z1;+)bZ1AGI(EQ0A-w)*gbo9Wdt&WzfO$ZyAHI3qp%w zXbPl=7@VIou~*9<8X<`mCO1RB&CQcv!YdoDB*()8{0!8D%5yGGWyXl%lxPbKO5hq? zkk5xvn+X#Gta5LqK#2&(~{I4sP&XGX%Qre!Lp-=l5K12w5(4b z_%flRL?C4@LntzAx1UHY_MPR_`*a~tvFGedl2RXg@Ej{P#!*ePeW-AZ0{>y-N4pVD z97K!`JUi8V_WEzz7p@dgj{4nE3zr>t#wINYl6V0D#G53I_1EU1WNtOmlN`#tOm^gj zhSd*`x?tbJTZWp))uKrh3M>Zh$BetI zl0k&I2M+uo^`+yp5oyaSDkk#q1^4AXla-#@a3F@iI7oH^f;D`NDPANo8PO9a`4~0r@ZxeQCsmXqsoWO0#eQhO-VI14>a)H z$Eu;^Hrn4zieGqeCv}hQ_-U+}A<|s3=eqmdkZvZ5WCJhNP)K+QOAtV9>K~vIK_V4Y zLxeJp9EAL`>N{p}f@?ysv@RcwEoZt8F>5+3E(@@nJlGdZME zMZr$IFw}I%zQN~fK>&edng0INAA5epEjiZq4S!nWfg%UwuT&Aobt$oK*bF`~K%oTn z+9~t-+KlM+A3JuJ@bHl0;9I+PZJ`;$k|Z9!95Zn4J~TF-W-RB1U<(1eFm=91m_V{n z;7FlYm#c>GNNnYeqPCR_=CE#e@vp4J%^yy3&%2($d|bgN@9roKC+(_IsqrY99F8pO z9`AWM(jHQds#&hfHE|jT5?9$og3$alhcL>1|EEH>6LDx;=-c#Y@$eTl*wP){y~Zm7 z&~I-nuD_(ktWeh+tvO2u}zO*3S+X=$Q zUF-pR_N>-sNo{R^B_7d$3KR|E8y?%w$8TMYd&vnZL#u z*d#4TL035CI%&$y?iN^H5_12hYQ zyie#Fyt=#FwP+Gm_cF|`NWfeSpv}=;n{=*)nOWf${KPF{0EYYyTCO`OOZab2Q!9`9 z`=AOQ$q0nWSy>jM zefF7lfe7eGk>XlyN!!^I0u2x&O)hP5;fpC-qORpOmTEQ7ipmZHbV^UH zd4t$@c-F03H_-nwWX}>*0-+OBJN^B=urM?gb&%E9NVWG3rDDH?HcFO*&Vp6jRQBr? zUI6dGKx%Da>3KoT_hkk_zP4>ebD`7a9(J@=B-m3{gtwCF4&t8X1 zR3T7G>VeP_(->Y4B`l0JE2&Z_?gZm%TRz!hkfOR9-@WjUq&e`~c&W6Nq~P;rkx<=s zlzly*0(DyY<8PJGw{48)U6|1Mx2(;h*LRoxNxlebMkT3jtt`DyxJJuG5cHJuxh(Ql+LGZAP>1Tn1Kg&?Yc~wt;0lr@tTmy7)JK({f(u%#Wq1wdRB1dnD? zqaeqaz1^w|rztXimr{S>c5O-RKZ@FLbvI;+4~*jTNObi8mUNQ6jD+Hgu5CXFT(&3s zt85HcRzMAQvso*(7tM#&uEmsE-~j+4XZUz_2X=bsa0J>NOzVn&QgHs|8pDq#5`X|1 zoOYmnlI1kD0wF4O5F5&7RDyvXcoW^m`DZDd(YSn068UU>J$g0>Y;us97A*>OWHEff z9`Va}hNEYp$0m}G`e7Tgb5uSO1BJ9U6bJBOa~|p-l^wP48*S(6lN3JGR-Mj&Caaxh zDae5jcg#3C-iykr4Csu zj5prO1EoLdl!0ctu7frjDqu`}8t=W-GG1eVAXDGwHUGdxlrSL5wgYEE9ZnT0m?h(^ z(})k_TJS<^vf4O1I%C6l57e1W0h@1(YI0JLBrlrN~PU2<=V}!{#hn|Y{)Uhs@d_-5d;Rmb*sgP_skgL5n zv`aL@Iv#h4vqS zCy0T{D0utzcelI{?x7&J?;skyYx9DR7cUp-94nPpcoliu^j)A}Nong@*;V55(i2C# z^wL4~@{_(0)$vKnJ_FGd`%;5EuRVVNl{E4KY|f2s!P!`rGGLtTe}|*t41Ec-O7M-a>(xoPT(dq% z_RO2=fLBfjVtX2z=}hc`X{lcsXe7!Sy+Y1E)Oow0$@b1RZ%6|aSC7_ltUNmdW1>Ip zg}}-4Yo$>7M7O2m+1!NIQHw^o^PO)3G#YS~U*woYlw;x|S+`F#bW{*r8NHaDlhV^} z03Gonqbd3rYh!^lKeVhYYW(SwqN$$x?gGF?S#q3&zgcCU+u;GxE6qn#`w%l9dWD|q z{+*XJl25;2@3`Z9u6JF}yfllgi|Yh*17o-qwnWM}uY(rNZ(hvhvT$GUQbh!6w9Y>*OT8Y}tBs+~A-+=Y4A9F^dwLO4v)+DEXHA_kbO0>Z!-ZHEhN55gY5WHiLTZ)mV#ukCCGbnm`?kwpl z!6DBT#loERXKs7A=|_k;K>B+d(mUQ}l+ieedlilg1kEyMYLn3G^4@XJh71hdjqP zm*|;Lk&}hwgf^7(^L2hb^Bm~7(8;lIV3E|Kd@9qD>T8%sBK6!C`be|%aN zTV>e>T~BtynEtk+2IigA?!zMmy8|m)?KNrUWpv}P6VbXttEBing@jNyv|vu=vtUVV zh=;b4Nya`z$up-*{nuZR1~ij+m1D;d>_G_|br?U(EkCbr_51NgKkWl7wzF8%uA|Ht z{PwAHXGC}))_~iUkgZ2q?`LGXQoWrdE{JVN8U16`pY%T10NeXI>W|Bt_fJxglNqrq zww(T#7poiNST{bYm~~L*GV6J@-=P4ZvatDu9}z{ z??r^?Nu4bOS%yVE!kVdP?;u_EKjr_Q;BfQ8B+HPaPv00-#hkMqe7U;v!7His3L0-2 zO7ik9^jOe$xPQ7P{zCXyFE1HGh{UZWPEVs|SkAqoLk*OCQ8)_0|r zdUufE%^!=tbb}^@{MD;~K2*kseV+0SBCV0ozI1wTJxB}%`~x;A^&?k6upP?OTX{dwYlj{?T! z%U>6CcmQ+)JoC(S{BauV4OePjP=z&fMN-F#Bzt5+jLxFF=i-8(6pPrzGq-&oWs(FD z^RivBWd=duu+?VQW%B~=;Z|nww$yd@DydS@DgPd-L9*B`W8H4+rx&oyp=4&AWd7g{ zf*OZu0Z)D&Q4{0O3tK1tEh~@=ab>>tm8|g2xx^~wpEO7q3fd7nr#vni&v~)aia5BwPK`e>GvySS#KpRWlj$F_L|x1fXc z`x_?O<>)n&Y=ZtR7scH`(TfhNqc`(ZbV`C({@k|D54aA*X!_abx8<@1hhD}t?7dwy zOjJzf3DC@;7YQ%+QVdgP6VJqsJ%O6W855AA*RF%M=7evo@!>7+eNnfB` z5?>^hSuCLHB^q}R(1ryX;PMAF906opdMtT(bU@j#N|0yUA)|`CnIV}YLOVo|z@djb z2u1@Pf_MKlF?`rca`;fFyq97{-6Pi}Kb-trJ-q4e zei!ZYPRQJlEPZ{)j>O>F67UhNPHP-Ywrc~o%@Z0qG05aUTwNbnM%^WJUHI~k??Ext z$H%8AALa=M0MAFG>CE&VA4m$J)4Y54Zh{5oA4i6K?a6O0Y-(*KtL6#Bq>uesEavaf zDj&4x_5OU(_!fE(JWwfz=5cAfG%2x19+d1o)ma&_Rt~Z!ZX_&>J6~5dTat@w7XVf@ z!*k}$skN6mE2b-0=zY6)Yvan`rXwRtzDM#)bN;9VF}3agx*TL_UV9W`}yEkai{ZFNpOl)eXl-|Si5Gsgr zoqE9++y2&hb#nJ|3CdFuNF7i}>)JH4M6r~DdbkhzUgmvGKf|*@Nls4AsQTd@vP8mb zkpp$p9gVe~qGpjzn>GW(g7&uznTY^oreoW`8`cVCF$#V66TH>aa~@I=8WhF<*8W8g zX|-T{bc@*72fhJG-WLrL^q0XKH-589rvpNFLH3(!w>F$K5u_ih{D9TeGi&ONt;riT zP|_Q;X8ssy2;U>@F`3k?am)_Jnh_TjHM7S#O4GMBS=#c7=5La{&|FhUlV2T;ZyySNyS82A{=Va_V8m za=IypUvSjhIjzxbWFC`^l&{ zn|XCfJh8*^WM;2Q9v?F>oVJfRAs1m~_W4EI;PG7mhjnT`bB{c Y=-@0bn2PSYj6p6;4Nq25N_ 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

5Bm+&Xz{!yNZu(u^mEJbtJ^o^@}Wj2QX^&kG3m zj+zAUOvHt5<-jV~Avf|mEo=Tbr$QDg?fAoR$QOJ7vs&n0uTD2*Ksr8WWtbf~@bFli z5@8!z0=Jt-bu`mathr#pf^<+d8Py@iWk;W*!jus00mg$x+=4I-F0zpX16-AJ7RdMd zV^cNr-O8u&I-I+}zNLMU@WU1gC!KM=dz#i;)Z3b2fNl!KGd5ryfq&vRm_~PE5M}kw zApz2{L&oqHSIpHMmt2XFr7Z=N!rF%I&BL2r`KVi+Dtx(=cfb9nxjmRB1xoeY-ri(;La3)5MFUt>CF02AIlOoKCH#*E+ISHdZ^67?)l+woVfT%p`o zjH2$DAY^Y2bN05U2gBQs4uRZ=DS(Brol#Cz5t)NwEZmBlR#3R}62o5WK>g@U9#abs z5L;Q`Z_0XFcF?6D@k{;QqrB`QmczRaA=4yJn;#X8+ecuL`YW9KI`;OqMmtc70Ifhr z%5YB;^#w(D5{9HuU;5J~Gh18)K#!6%j7SHzsDuNoo(Jbl7%bX3^G6X%G5M(%CumXt z?z^##sT>mu?>3KW;nT;C?HhkY=K+J_tSpK41D-miZ^4&t;*+*q9iP;I3cqX4qUlq6X`~ecI;IZj6kacA)yAcEm|TOdXcjhU_kPl_h`KpHl12$@wqhG;v14T=kizQ&0S&vhp1qFrZX6IB`5Y%kq=%`0M|)did9!T4_u#bL4;pf42^6mY8c!}dry1yKqs z!dfHz?V2p{2B7LeYe>amr7i>wbU_66mAr5xMC$8gF+v$go60&c?Qk0r7~L^p2xR1N zRNxjWxCB_l;DjHA-NAA zV^bZeZDL|FxL?E~9QvGP`&OfeaUKgN8?L=nfJ$(`(S}6+rSNyhu_&)cf?XYI*0Zd+ zNL!{{M{*C`xZz7|3&*^ao`RQ?-QC<$k(0 za6CueI5NcU#g;p(4ApWvQX`R;q7*xQY!9f>Qd<%kiH~7TO{w|}$0P|;{8Y(iv%wKuFf-fgf5dzTJ%O%^pnGH*-Ffaz z(~zE8^bTS@ty8>JymJfhy%x+w*KO+uzcSUPTJ9cJzxLkDvJ6DKbZ?oPdy7^d5h z8t8mF*E^2yuUcyb^fE4)u*80^TDC31D5(LPJIsh@7@u#Gx_+n=r@pzzg-3u-I(7pb zm-?XJO(>k_OA&5s5f3k8gDKwT0^U0EnQmDje!LFjA}+~r01k}k{#aV>tL|_m_H=F3 zV8l-gtb?#gMRk^nLenG$DMReIDciXi+3G6VPjp*=eB$*@QN*^#()C=0O;s@XX39f9 za^`7kcU@Wk+b6JTQZxD&>;H;dCvrOI1!*Y0$&5#;e9CuGR}rmVq5V=%SHWO5>7a}S zk8bOR4I4fLVxep_Zr=A@*!!-_XiTLc5u%@T2{$z9!7Zv;*8clsG=2%E^qz1#=mXQH zgRZX%>2JuGijh z{RTN*m&JO2B@xZ`y$`7g>(BCUF5nzJVvL)<&~?f|P`L(QoTSn7Qe9y6O5RJGeq;dx ztzoD))9q3nwdw%ep~Ol?K}f{~tr+Swpld|?O?kZ(=1VV>H@H#=%9)j01;KtTk)y*f zF;*v<7i-I?L5FYVg9$=95lmy3pum<4N24#*m)W4NVvof9ZcgJkfDH{RC$7?>KDm<8 tZN;?0KmNH3jhO+Z author.name) + let author-string = if authors.len() == 2 { + names.join(" and ") + } else { + names.join(", ", last: ", and ") + } + + // Set document metadata. + set document(title: title, author: names) + + // Set the body font. AMS uses the LaTeX font. + set text(size: normal-size, font: "New Computer Modern") + // set text(size: normal-size, font: "Fira Sans") + // show math.equation: set text(font: "Fira Math") + + // Configure the page. + set page( + paper: paper-size, + // The margins depend on the paper size. + margin: ( + top: 3cm, + left: 3.5cm, + right: 3.5cm, + bottom: 3cm, + ), + + // The page header should show the page number and list of + // authors, except on the first page. The page number is on + // the left for even pages and on the right for odd pages. + header-ascent: 18pt, + header: context { + let i = counter(page).get().first() + if i == 1 { return } + set text(size: script-size) + align(center)[ + #upper(title) + ] + }, + + // On the first page, the footer should contain the page number. + footer-descent: 12pt, + footer: context { + let i = counter(page).get().first() + align(center, text(size: script-size, [#i])) + } + ) + + // Configure headings. + set heading(numbering: "1.") + show heading: it => { + // Create the heading numbering. + let number = if it.numbering != none { + counter(heading).display(it.numbering) + h(7pt, weak: true) + } + + // Level 1 headings are centered and smallcaps. + // The other ones are run-in. + set text(size: normal-size, weight: 400) + set par(first-line-indent: 0em) + if it.level == 1 { + // set align(center) + set text(size: 20pt) + smallcaps[ + #v(18pt, weak: true) + #number + #it.body + #v(normal-size, weak: true) + ] + counter(figure.where(kind: "definition")).update(0) + counter(figure.where(kind: "theorem")).update(0) + } else { + if it.level == 2 { + set text(size: 14pt) + v(16pt, weak: true) + number + let styled = if it.level <= 3 { strong } else { emph } + styled(it.body + [. ]) + h(7pt, weak: true) + } else { + set text(size: 12pt) + v(16pt, weak: true) + number + let styled = if it.level <= 3 { strong } else { emph } + styled(it.body + [. ]) + h(7pt, weak: true) + } + + } + } + + // Configure lists and links. + set list(indent: 1em, body-indent: 5pt) + set enum(indent: 1em, body-indent: 5pt) + show link: it => { + // Set the link color to blue. + let blue2 = color.mix((blue, 50%), (black, 50%)) + // let blue2 = color.mix((blue, 10%), (white, 75%)) + + set text(blue2) + // Underline the link. + underline(offset: 1pt, stroke: blue2, it) + // box(fill: blue2, outset: (x: 2pt, y: 2pt), radius: 2pt, text(fill: navy, it)) + } + + set strong(delta: 200) + + // Configure equations. + show math.equation: set block(below: 8pt, above: 9pt) + show math.equation: set text(weight: 400) + + // show raw: it => box( + // fill: luma(93%), + // radius: 4pt, + // inset: 4pt, + // it + // ) + + // Configure citation and bibliography styles. + set std.bibliography(style: "springer-mathphys", title: [References]) + + set figure(gap: 17pt) + show figure: set block(above: 12.5pt, below: 15pt) + show figure: it => { + // Customize the figure's caption. + show figure.caption: caption => { + smallcaps(caption.supplement) + if caption.numbering != none { + [ ] + numbering(caption.numbering, ..caption.counter.at(it.location())) + } + [. ] + caption.body + } + + // We want a bit of space around tables and images. + show selector.or(table, image): pad.with(x: 23pt) + + // Display the figure's body and caption. + it + } + + // Definitions + show figure.where(kind: "definition"): set align(start) + show figure.where(kind: "definition"): it => block(spacing: 11.5pt, { + strong({ + it.supplement + if it.numbering != none { + [ ] + it.counter.display(it.numbering) + } + [.] + }) + [ ] + it.body + }) + + // Definitions + show figure.where(kind: "theorem"): set align(start) + show figure.where(kind: "theorem"): it => block(spacing: 11.5pt, { + strong({ + it.supplement + if it.numbering != none { + [ ] + it.counter.display(it.numbering) + } + [.] + }) + [ ] + emph(it.body) + }) + + // Display the title and authors. + v(35pt, weak: true) + align(center, smallcaps({ + text(size: 18pt, weight: 600, title) + v(25pt, weak: true) + text(author-string) + })) + + // Configure paragraph properties. + set par(spacing: 1em, leading: 1em, justify: true) + + // Display the abstract + if abstract != none { + v(20pt, weak: true) + // set text(script-size) + show: pad.with(x: 35pt) + smallcaps[Abstract. ] + abstract + } + + // Display the article's contents. + v(29pt, weak: true) + body + + // Display the bibliography, if any is given. + if bibliography != none { + show std.bibliography: set text(footnote-size) + show std.bibliography: set block(above: 11pt) + show std.bibliography: pad.with(x: 0.5pt) + bibliography + } + + // Display details about the authors at the end. + // v(12pt, weak: true) + // show: pad.with(x: 11.5pt) + // set par(first-line-indent: 0pt) + // set text(script-size) + + // for author in authors { + // let keys = ("department", "organization", "location") + + // let dept-str = keys + // .filter(key => key in author) + // .map(key => author.at(key)) + // .join(", ") + + // smallcaps(dept-str) + // linebreak() + + // if "email" in author [ + // _Email address:_ #link("mailto:" + author.email) \ + // ] + + // if "url" in author [ + // _URL:_ #link(author.url) + // ] + + // v(12pt, weak: true) + // } +} + +#let definition(body, numbered: true) = figure( + body, + kind: "definition", + supplement: [Definition], + numbering: if numbered { n => [#n] } +) + +#let theorem(body, numbered: true) = figure( + body, + kind: "theorem", + supplement: [Theorem], + numbering: if numbered { n => [#n] } +) + +#let proposition(body, numbered: true) = figure( + body, + kind: "theorem", + supplement: [Proposition], + numbering: if numbered { n => [#n] } +) + +#let todo(msg: "", body) = grid( + rows: 2, + box(stroke: orange, fill: orange, inset: 3pt)[ + #set text(fill: white, font: "Noto Sans") + #if msg != "" [ + `TODO:` #text(size: footnote-size, msg) + ] else [ + `TODO` + ] + ], + box(stroke: orange, inset: 5pt, body) +) + +// And a function for a proof. +#let proof(body) = block(spacing: 11.5pt, { + emph[Proof.] + [ ] + body + h(1fr) + + // Add a word-joiner so that the proof square and the last word before the + // 1fr spacing are kept together. + sym.wj + + // Add a non-breaking space to ensure a minimum amount of space between the + // text and the proof square. + sym.space.nobreak + + $square.stroked$ +}) +