From 572350d2f29867af46b48f2727e823a70653d5e2 Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 20 Aug 2026 20:38:38 -0400 Subject: [PATCH 01/30] InnerLayer.SLAYER - FEATURE! - Add the Fitzpatrick diffusive-resistive layer width Adds three algebraic scales to `LayerWidths` alongside the Riccati `delta_s`: `delta_norm` (r_s S^-1/3), `delta_visco` (the P^1/6 viscous-resistive broadening) and `delta_dr`, the diffusive-resistive width of Fitzpatrick, Nucl. Fusion 2025 (doi 10.1088/1741-4326/ae4fdd) Eq. (100), which sets the edge layer-overlap criterion. The mapping of Eq. (100) into SLAYER variables is not literal. The paper's tau_A (its Eq. 74) carries no shear, whereas SLAYER's tau_h divides by n*s, so lu = tau_R/tau_h = (n|s|) * (tau_R/tau_A). Substituting that cancels Eq. (100)'s explicit (n|s|)^(-1/2) exactly, leaving delta_dr = r_s^(3/2) * P_perp^(1/4) / ( lu^(1/2) * d_beta^(1/2) ) with no shear factor. Carrying the (n|s|)^(-1/2) on top of SLAYER's lu double-counts the shear and understates the width by sqrt(n|s|) -- a factor of 6.6 at q=7 on the DIII-D-like deck, enough to report no overlap anywhere. Validated against the paper's own Sect. 5.8 JET model, which this reproduces at Psi = 0.9985 for n = 1 (paper: 0.9985) and 0.9936 for n = 4 (paper: 0.9952). Marked `!` because `LayerWidths` gains fields. --- src/InnerLayer/SLAYER/LayerThickness.jl | 41 ++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/InnerLayer/SLAYER/LayerThickness.jl b/src/InnerLayer/SLAYER/LayerThickness.jl index 0b6db9761..9a70a2d38 100644 --- a/src/InnerLayer/SLAYER/LayerThickness.jl +++ b/src/InnerLayer/SLAYER/LayerThickness.jl @@ -137,6 +137,26 @@ is built from, retained as a drift-scale reference. - `delta_s` -- complex layer thickness `δ_s = dels_db · d_β` [m] - `delta_s_m` -- `|δ_s|`, the resistive layer thickness in meters (primary) - `d_beta` -- β-weighted ion scale `c_β·d_i` in meters (drift reference) + - `delta_norm` -- layer normalization length `r_s · S^(-1/3)` in meters, the + length by which Δ' is made dimensionless (`Δ̂' = Δ'·delta_norm`). Shared by all + four regimes of Burgess et al. (2026) Eqs. (10)-(13), not specific to any one + of them, and **not** the classic non-rotating Furth-Killeen-Rosenbluth (1963) + constant-ψ tearing width, which scales as `S^(-2/5)` and is not computed here. + Exactly the reciprocal of the `delta_n` Δ-normalization already carried on + `SLAYERParameters`, restated as a length for comparison with `delta_s_m` + - `delta_dr` -- diffusive-resistive layer thickness in meters, Fitzpatrick (2025) + Eq. (100). Strong magnetic shear near the separatrix forces every resonant layer in + that region into the diffusive-resistive (`nu = 1/4`) regime, so this is the width the + edge overlap criterion compares against surface spacing. In the paper's normalized + radius, `delta_hat = tau_A^(1/2) / (tau_R^(1/4) tau_E^(1/4) d_beta_hat^(1/2) (n|s|)^(1/2))`; + with `lu = tau_R/tau_A` and `P_perp = tau_R/tau_E` that is + `lu^(-1/2) P_perp^(1/4) / (d_beta_hat^(1/2) (n|s|)^(1/2))`, scaled by `rs` for meters. + Distinct from `delta_visco`, which is the 2/3 power of the same timescale grouping and + carries neither the `d_beta` nor the shear factor + - `delta_visco` -- viscous-resistive scale `delta_norm · P_perp^(1/6)` in meters, + from the `P^(1/6)` broadening of the VR-regime growth rate, Burgess et al. + (2026) Eq. (11). The paper gives the growth rate rather than an explicit width; + this is the corresponding length `delta_s_m` should sit within a few orders of magnitude of `d_beta` for a well-posed surface (`dels_db` is O(1)); a large gap flags a normalisation @@ -150,6 +170,9 @@ struct LayerWidths delta_s::ComplexF64 delta_s_m::Float64 d_beta::Float64 + delta_norm::Float64 + delta_visco::Float64 + delta_dr::Float64 end """ @@ -161,11 +184,27 @@ surface. Runs [`riccati_del_s`](@ref) for the dimensionless `δ_s / d_β` and scales by `p.d_beta` to obtain `δ_s` in meters. Keyword arguments are forwarded to `riccati_del_s`. + +The two algebraic comparison scales `delta_norm` and `delta_visco` come from +`p` directly and do not depend on the Riccati solve. """ function slayer_layer_thickness(p::SLAYERParameters; kwargs...) dels_db = riccati_del_s(p; kwargs...) delta_s = dels_db * p.d_beta + # Layer normalization length: exactly 1/delta_n (delta_n = S^(1/3)/r_s), computed + # from rs and lu so it reads as a length. Burgess et al. (2026), the Δ̂' = Δ'/S^(1/3) + # normalization preceding Eq. (10). + delta_norm = p.rs * p.lu^(-1.0 / 3.0) + # Viscous-resistive broadening, P^(1/6) coefficient of Burgess et al. (2026) Eq. (11). + delta_visco = delta_norm * p.P_perp^(1.0 / 6.0) + # Diffusive-resistive width, Fitzpatrick (2025) Eq. (100), in meters. d_beta_hat is the + # normalized ion scale d_beta/rs; the shear is the r-based |s| SLAYER already carries. + # The paper's tau_A (its Eq. 74) carries no shear, whereas SLAYER's tau_h divides by n*s, + # so lu = tau_R/tau_h = (n|s|) * (tau_R/tau_A). Substituting that into Eq. (100) cancels its + # explicit (n|s|)^(-1/2) exactly, leaving no shear dependence in terms of lu. + d_beta_hat = p.d_beta / p.rs + delta_dr = d_beta_hat > 0 ? p.rs * p.lu^(-0.5) * p.P_perp^(0.25) / sqrt(d_beta_hat) : NaN return LayerWidths(p.ising, p.m, p.n, dels_db, delta_s, abs(delta_s), - p.d_beta) + p.d_beta, delta_norm, delta_visco, delta_dr) end From b6d8eba056ff1bd69294699eaf1f0570e8df5f46 Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 20 Aug 2026 20:38:55 -0400 Subject: [PATCH 02/30] Equilibrium - FEATURE! - Share the separatrix edge q-law with the layer-overlap scan Factors the diverging edge model q ~ -A*ln(1-psi) out of the grid-refinement density floor into `edge_q_law`, so one fit serves both that floor and the resistive-layer overlap scan's search for rational surfaces beyond the equilibrium grid. A cubic in psi (on q or on iota) saturates instead of diverging and is not usable for the extrapolation; measured on the DIII-D-like deck, extrapolating from a grid ending at psi=0.97 to the true q=8 surface at psi=0.99976, the log law lands within 5% while a cubic iota undershoots by 18%. `edge_q_law` returns nothing when the diverging model does not describe the equilibrium, judged by knot count, sign of A, and the log fit beating a plain linear one. That test now gates the edge density floor, which was previously applied unconditionally: a limited plasma with finite edge q is no longer packed as if q blew up. Marked `!` because that changes the auto grid, and so results, for limited decks (Solovev, LAR); diverted decks are unaffected. Also adds an optional `psihigh` to `refined_psi_grid`, which truncates the measured knot density so a pass-1 equilibrium can supply the density for a reduced domain. --- src/Equilibrium/GridRefinement.jl | 123 +++++++++++++++++++++++++++++- 1 file changed, 121 insertions(+), 2 deletions(-) diff --git a/src/Equilibrium/GridRefinement.jl b/src/Equilibrium/GridRefinement.jl index e58eb81dc..87aee692c 100644 --- a/src/Equilibrium/GridRefinement.jl +++ b/src/Equilibrium/GridRefinement.jl @@ -57,6 +57,86 @@ const CORE_MODEL_PSI_MAX = 0.03 const EDGE_MODEL_PSI_MIN = 0.9 # θ-lines subsample stride for the 2D geometry channels const THETA_STRIDE = 8 +# --- shared separatrix edge q-law ------------------------------------------------------------- +# Minimum knots in the edge band before a fit is attempted. +const EDGE_FIT_MIN_KNOTS = 4 +# The diverging model must explain the edge q this well in absolute terms. Measured over the +# shipped decks: DIII-D-like 0.9957 and 0.9989 (diverted, q -> inf at the separatrix) against +# 0.972 for the a10 fixed-boundary case, 0.9035 for LAR and 0.7600 for Solovev (all limited, +# finite edge q). Rejecting is the safe direction -- it only means no extrapolation. +const EDGE_FIT_MIN_R2 = 0.99 + +# Least-squares slope and coefficient of determination for y = a + b*x. +function _linfit_r2(x::Vector{Float64}, y::Vector{Float64}) + x_bar = sum(x) / length(x) + y_bar = sum(y) / length(y) + sxx = sum((x .- x_bar) .^ 2) + sxx > 0 || return (NaN, NaN, NaN, NaN) + b = sum((x .- x_bar) .* (y .- y_bar)) / sxx + ss_res = sum((y .- (y_bar .+ b .* (x .- x_bar))) .^ 2) + ss_tot = sum((y .- y_bar) .^ 2) + r2 = ss_tot > 0 ? 1 - ss_res / ss_tot : NaN + return (b, r2, x_bar, y_bar) +end + +""" + edge_q_law(equil; psi_max, psi_min=EDGE_MODEL_PSI_MIN, min_knots=EDGE_FIT_MIN_KNOTS, + min_r2=EDGE_FIT_MIN_R2) -> nothing | (; A, q_bar, u_bar, n_knots, r2_log, r2_linear) + +Least-squares fit of the separatrix edge law `q = q̄ + A·(ln(1−ψ) − ū)` over the equilibrium's +outer knots — the single shared statement of that model, used both by the grid-refinement edge +density floor and by the resistive-layer overlap scan's out-of-grid surface search. + +Returns `nothing` when the diverging model does **not** describe this equilibrium's edge, so a +plasma with finite edge q is never extrapolated as if q blew up: + + - fewer than `min_knots` knots in the band; + - `A ≥ 0`, i.e. q not rising toward ψ = 1; + - `r2_log < min_r2` — the log law does not actually fit; + - `r2_log ≤ r2_linear` — a plain linear-in-ψ fit explains the edge q at least as well, which is + what a **limited** plasma looks like. This comparison carries no scale and is what separates + the shipped limited decks (Solovev 0.760 vs 0.9996 linear; LAR 0.904 vs 0.998) from the + diverted ones (DIII-D 0.996 vs 0.865, 0.999 vs 0.594). + +This is a test of the **model**, not a topology classification: it asks whether q diverges +logarithmically here, not whether an x-point exists. Geometric x-point detection is +[`classify_topology`](@ref), which is a separate concern. +""" +function edge_q_law(equil::PlasmaEquilibrium; + psi_max::Real=Float64(equil.profiles.xs[end]), + psi_min::Real=EDGE_MODEL_PSI_MIN, + min_knots::Int=EDGE_FIT_MIN_KNOTS, + min_r2::Real=EDGE_FIT_MIN_R2) + xs = collect(Float64, equil.profiles.xs) + band = findall(x -> x >= psi_min && x < psi_max, xs) + if length(band) < min_knots + n_tail = max(min_knots, length(xs) ÷ 10) + band = filter(i -> xs[i] < psi_max, collect(max(1, length(xs) - n_tail + 1):length(xs))) + end + length(band) >= min_knots || return nothing + + q = [Float64(equil.profiles.q_spline(xs[i])) for i in band] + u = [log(1.0 - xs[i]) for i in band] + all(isfinite, u) && all(isfinite, q) || return nothing + + A, r2_log, u_bar, q_bar = _linfit_r2(u, q) + _, r2_linear, _, _ = _linfit_r2([xs[i] for i in band], q) + (isfinite(A) && A < 0) || return nothing # q must rise toward the edge + (isfinite(r2_log) && r2_log >= min_r2) || return nothing + (isfinite(r2_linear) && r2_log > r2_linear) || return nothing + + return (A=A, q_bar=q_bar, u_bar=u_bar, n_knots=length(band), r2_log=r2_log, r2_linear=r2_linear) +end + +""" +ψ at which the edge law reaches `q_target`; closed form, no root-finding needed. +""" +edge_q_law_psi(fit, q_target::Real) = 1.0 - exp(fit.u_bar + (q_target - fit.q_bar) / fit.A) + +""" +dq/dψ from the edge law: q = q̄ + A·ln(1−ψ) + const ⇒ dq/dψ = −A/(1−ψ). +""" +edge_q_law_dqdpsi(fit, psi::Real) = -fit.A / (1.0 - psi) # Rational-surface bracketing (Δ′ robustness). The ideal-MHD Δ′ asymptotic matching samples the # cubic equilibrium splines' 2nd/3rd derivatives across each rational ψ_s over the matching stencil # [ψ_s − dpsi, ψ_s + dpsi], dpsi = singfac_min/|n·q′|. A cubic 3rd derivative is piecewise constant @@ -248,10 +328,15 @@ function _knot_density(equil::PlasmaEquilibrium; tau::Float64, kin::Union{Nothin # nodal data of the smallest flux surfaces is dominated by integration and axis # extrapolation error, so measured curvature is not trusted below the core split. dlog = (4.0 * tau)^(1 / 3) + # The edge floor encodes the DIVERGING edge law q ≈ -A·ln(1-ψ), so it is applied only where + # that model actually describes the equilibrium. A limited plasma has finite edge q and must + # not be packed as if q blew up. The density itself stays A-independent (that is the point of + # the form: uniform relative q′ error regardless of A) -- the fit supplies validity, not slope. + edge_diverges = edge_q_law(equil) !== nothing @inbounds for i in 1:n if xs[i] <= CORE_MODEL_PSI_MAX rho_s[i] = 1.0 / (dlog * xs[i]) - elseif xs[i] >= EDGE_MODEL_PSI_MIN + elseif edge_diverges && xs[i] >= EDGE_MODEL_PSI_MIN rho_s[i] = max(rho_s[i], 1.0 / (dlog * (1.0 - xs[i]))) end rho_s[i] = max(rho_s[i], 1.0 / H_TARGET_MAX) @@ -409,9 +494,33 @@ function bracket_mandatory_nodes(grid::Vector{Float64}, centers::Vector{Float64} return merged end +""" + _truncate_density(xs, rho, psihigh) -> (xs_t, rho_t) + +Restrict a measured knot density to `[xs[1], psihigh]`, linearly interpolating `rho` at the new +outer endpoint so the density integral stays continuous in `psihigh`. Errors when `psihigh` lies +outside the sampled grid, where the density is unmeasured. +""" +function _truncate_density(xs, rho::Vector{Float64}, psihigh::Float64) + xs_v = collect(Float64, xs) + psihigh > xs_v[1] || + error("_truncate_density: psihigh=$psihigh must exceed the inner grid bound $(xs_v[1])") + psihigh <= xs_v[end] + 1e-12 || + error( + "_truncate_density: psihigh=$psihigh exceeds the pass-1 grid end $(xs_v[end]); " * + "the knot density is unmeasured there — form the enlarged domain first, then refine against it" + ) + psihigh >= xs_v[end] - 1e-12 && return (xs_v, rho) + + k = searchsortedlast(xs_v, psihigh) + frac = (psihigh - xs_v[k]) / (xs_v[k+1] - xs_v[k]) + rho_end = rho[k] + frac * (rho[k+1] - rho[k]) + return (vcat(xs_v[1:k], psihigh), vcat(rho[1:k], rho_end)) +end + """ refined_psi_grid(equil::PlasmaEquilibrium; tau, kin=nothing, mandatory=Float64[], - singfac_min=1e-4, n_min=1, bracket_coef=BRACKET_COEF, + psihigh=nothing, singfac_min=1e-4, n_min=1, bracket_coef=BRACKET_COEF, min_spacing=MIN_KNOT_SPACING, N_cap=1024) -> Vector{Float64} Build the refined pass-2 ψ grid from a formed pass-1 equilibrium: measured-curvature knot @@ -423,11 +532,18 @@ whose pedestal gradients attract knots; `mandatory` lists rational-surface ψ va `dpsi = singfac_min/(n_min·|q′|)`, and the bracket half-width is `bracket_coef·dpsi` (floored at `min_spacing`). Rational surfaces are bracketed, not pinned: a knot on the surface would make the Δ′ extraction's cubic 3rd derivative jump mid-stencil (see `BRACKET_COEF`). + +`psihigh` builds the grid for a domain *smaller* than the one `equil` was formed on: the measured +density is truncated there and the last node lands exactly on it. This lets a pass-1 equilibrium +supply the density for a re-form on a reduced domain without an extra solve. Passing a `psihigh` +beyond the pass-1 grid is an error — the density out there is unmeasured, so an enlarged domain +must be formed first and refined against that. """ function refined_psi_grid(equil::PlasmaEquilibrium; tau::Float64, kin::Union{Nothing,KineticProfileSplines}=nothing, mandatory::Vector{Float64}=Float64[], + psihigh::Union{Nothing,Real}=nothing, singfac_min::Float64=1e-4, n_min::Int=1, bracket_coef::Float64=BRACKET_COEF, @@ -435,6 +551,9 @@ function refined_psi_grid(equil::PlasmaEquilibrium; N_cap::Int=REFINED_N_CAP) xs = equil.profiles.xs rho = _knot_density(equil; tau, kin) + if psihigh !== nothing + xs, rho = _truncate_density(xs, rho, Float64(psihigh)) + end # Floor the density to a fixed (τ-independent) locally-uniform fine patch around each rational # so Δ′ has the resolution to sample 3rd derivatives there at any accuracy target (see # RATIONAL_RES_SPACING). From 96c8d9586e8a5001463b8e7ee1f11eb6a9c4a0e2 Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 20 Aug 2026 20:38:55 -0400 Subject: [PATCH 03/30] Tearing - FEATURE - Add the resistive-layer overlap scan Locates the q = m/n rational surfaces, computes each one's resistive layer width, and reports the outermost psi at which adjacent layers are still separated -- the outermost domain the matched-asymptotic treatment supports, per Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9. Surfaces beyond the equilibrium grid are located on the shared separatrix edge q-law, so the scan can report an overlap point lying outside psihigh; that is recorded rather than clipped, since it is the bookkeeping a user needs to see whether the domain was constrained by layer physics at all. Widths are compared in normalized flux, converted from metres by the Jacobian of whichever radial label `rs_method` selects -- the same label that sets the shear, tau_R and d_beta/r, because Eq. (100) is not covariant (delta ~ J^(1/2) under a change of radial variable) and is only valid in the coordinate it was derived in. On the DIII-D-like deck the label is worth one rational surface: the cut sits at psi=0.99752 under `:midplane` and 0.99939 under `:flux`, Fitzpatrick's Eq. (30) label. Reports both the |delta_s| and Eq. (100) channels separately so the two can be compared; they disagree by about two surfaces, which is the subject of issue #411. --- src/Tearing/LayerOverlap.jl | 385 ++++++++++++++++++++++++++++++++++++ src/Tearing/Tearing.jl | 2 + 2 files changed, 387 insertions(+) create mode 100644 src/Tearing/LayerOverlap.jl diff --git a/src/Tearing/LayerOverlap.jl b/src/Tearing/LayerOverlap.jl new file mode 100644 index 000000000..1e67f7e5e --- /dev/null +++ b/src/Tearing/LayerOverlap.jl @@ -0,0 +1,385 @@ +# LayerOverlap.jl +# +# Resistive-layer overlap scan: how far out in ψ the equilibrium domain needs +# to extend before adjacent rational surfaces' resistive layers run into each +# other. Once two neighbouring layers overlap, neither surface has a +# well-separated inner region, so the matched-asymptotic treatment stops being +# meaningful there and extending `psihigh` past that point buys nothing. +# Criterion: Fitzpatrick, Nucl. Fusion 2025 (doi 10.1088/1741-4326/ae4fdd) Sect. 5.9 — +# retain surfaces with psi < 1 - eps_c, where overlap is judged with the +# diffusive-resistive layer width of its Eq. (100), the regime strong shear forces +# near the separatrix. +# +# Lives in `Tearing` rather than `InnerLayer/SLAYER` for the same reason +# `build_ggj_inputs` does: it needs `ForceFreeStates._find_rational_surfaces`, +# and `InnerLayer` loads before `ForceFreeStates`. +# +# Surfaces beyond the equilibrium's own ψ grid are located on the separatrix edge +# law q ≈ -A·ln(1-ψ), via the shared `Equilibrium.edge_q_law` helper that also gates +# the grid-refinement edge density model -- one statement of the model, one fit, one +# limited-plasma guard. The log form is the only one that survives the +# extrapolation: a cubic in ψ (on q or on ι = 1/q) saturates instead of diverging. Measured on the DIII-D-like deck, extrapolating +# from a grid ending at ψ=0.97 to the true q=8 surface at ψ=0.99976, the edge law +# lands within 5% while a cubic ι undershoots by 18% — enough to miss the surface +# entirely and report no overlap where there is one. +# +# The extrapolated surfaces inform the *choice* of domain only; the final +# equilibrium is always re-formed and solved on the accepted domain. + +using ..Utilities: KineticProfiles +using ..ForceFreeStates: _find_rational_surfaces, SingType +using ..InnerLayer.SLAYER: SLAYERParameters, build_slayer_inputs, slayer_layer_thickness, + surface_minor_radius, surface_da_dpsi, radial_label +using ..Utilities.NeoclassicalResistivity: NeoResistivityModel, SauterNeoModel +using ..Equilibrium: edge_q_law, edge_q_law_psi, edge_q_law_dqdpsi, InverseIngest +using FastInterpolations: cubic_interp, ExtendExtrap, DerivOp +using Roots: find_zero, Brent +using Printf: @sprintf + +""" + LayerOverlapScan + +Per-surface resistive layer widths and the `psihigh` they imply, from +[`resistive_layer_overlap`](@ref). + +All widths are in **normalized flux**, converted from the metre-valued +`LayerWidths` scales by `Δψ = w / |da/dψ|` so they can be compared against +surface *separations* in ψ. Comparing the metre values directly against ψ is a +dimensional error. + +# Fields + + - `m`, `n` -- resonant mode numbers per surface, ordered by increasing ψ + - `psi` -- surface location in normalized flux + - `rs` -- minor radius at the surface in meters + - `delta_s_m` -- `|δ_s|`, the Riccati resistive layer width, in meters + - `width_delta_s` -- the same width in normalized flux, `|δ_s|/|da/dψ|` + - `width_visco` -- the visco-resistive comparison scale as a Δψ width + - `width_dr` -- the diffusive-resistive width of Fitzpatrick (2025) Eq. (100) as a Δψ + width. This is the criterion the recommendation uses: the paper's Sect. 5.6 shows that + strong shear near the separatrix forces every layer there into the DR regime + - `extrapolated` -- true when the surface was located outside the + equilibrium's ψ grid via the edge q-law + - `psihigh_delta_s`, `psihigh_visco` -- domain implied by each width channel, + `nothing` when that channel never overlaps within the scanned range + - `psihigh` -- the recommendation: the smaller of the two, or `nothing` + - `first_overlap` -- index of the first surface that overlaps its inner + neighbour, `nothing` when none do + - `notes` -- surfaces that were located but could not be scored, and why +""" +struct LayerOverlapScan + m::Vector{Int} + n::Vector{Int} + psi::Vector{Float64} + rs::Vector{Float64} + delta_s_m::Vector{Float64} + width_delta_s::Vector{Float64} + width_visco::Vector{Float64} + width_dr::Vector{Float64} + extrapolated::Vector{Bool} + psihigh_delta_s::Union{Float64,Nothing} + psihigh_visco::Union{Float64,Nothing} + psihigh_dr::Union{Float64,Nothing} + psihigh::Union{Float64,Nothing} + first_overlap::Union{Int,Nothing} + notes::Vector{String} +end + +# Inverse equilibria (CHEASE) are solved on a PRESCRIBED boundary: `InverseIngest.sq_xs` spans +# [0, 1] and `sq_fs[:, 3]` is the code's own q there, finite at ψ = 1 (6.90 on the shipped +# fixture). So beyond `psihigh` there is nothing to model -- the real q is already known, and the +# scan reads it instead of extrapolating. That also means the search runs all the way to ψ = 1 +# rather than stopping short of a separatrix that a fixed-boundary equilibrium does not have. +# +# The direct/EFIT path cannot do this: a g-file also carries q on [0, 1], but it is the +# reconstruction's q, which goes to a finite qa where a diverted plasma's q diverges. GPEC +# recomputes q by field-line tracing out to psihigh, and past that nothing has been traced. +_inverse_q_spline(ingest::InverseIngest) = + cubic_interp(collect(Float64, ingest.sq_xs), collect(Float64, ingest.sq_fs[:, 3]); + extrap=ExtendExtrap()) + +# Locate q = q_target on the real q profile, between `psi_lo` and `psi_hi`. Returns nothing when +# the target is outside the range this equilibrium actually reaches. +function _real_q_surface(qspl, q_target::Real, psi_lo::Float64, psi_hi::Float64) + q_lo, q_hi = Float64(qspl(psi_lo)), Float64(qspl(psi_hi)) + (q_lo - q_target) * (q_hi - q_target) <= 0 || return nothing + return find_zero(p -> Float64(qspl(p)) - q_target, (psi_lo, psi_hi), Brent()) +end + +""" + resistive_layer_overlap(equil, profiles::KineticProfiles; n_tor, kwargs...) + -> LayerOverlapScan + +Locate the q = m/`n_tor` rational surfaces, compute each one's resistive layer +width, and report the outermost `psihigh` at which adjacent layers are still +separated. + +Surfaces inside the equilibrium grid come from +`ForceFreeStates._find_rational_surfaces` (Brent root-finding segmented between +q-extrema, so reverse shear is handled). Surfaces beyond the grid come from the +separatrix edge law `q ≈ -A·ln(1-ψ)` fitted over the outer knots when +`extrapolate=true`, which is what lets the scan recommend a domain *larger* than +the one it was handed. See the file header for why a cubic extrapolation is not +usable here. + +Layer widths come from [`slayer_layer_thickness`](@ref) via +[`build_slayer_inputs`](@ref), so the scan uses the same plasma inputs and the +same resistivity closure as the SLAYER analysis itself. + +# Arguments + + - `equil` -- a formed `PlasmaEquilibrium` + - `profiles` -- `KineticProfiles` spanning the scanned ψ range + +# Keyword arguments + + - `n_tor` -- toroidal mode number; surfaces are q = m/`n_tor` + + - `m_max` -- runaway backstop on the poloidal mode number (default `2000`). This is **not** + the physics limit: the outward search terminates when the edge law places a surface at or + beyond `psi_cap`, i.e. when it is indistinguishable from the separatrix. On a diverted + equilibrium rational surfaces accumulate without bound toward ψ = 1, so some cap is needed, + but it should never be what stops the scan — if it is, the scan says so in `notes`, because + "no overlap found" would otherwise be reported for a non-physical reason + - `psihigh_safe` -- treat this as the outer edge of trusted equilibrium data + (default `equil.profiles.xs[end]`) + - `psi_cap` -- never place a surface beyond this ψ on the **direct** path (default + `1 - 1e-9`). Purely numerical: it is not derived from the contour clamp or from any topology + test, and it stops the outward search from crowding indefinitely onto ψ = 1 where surfaces + become indistinguishable. Loosening it is cheap (1e-6 → 1e-9 adds ~5 surfaces on the + DIII-D-like deck at no measurable cost and does not change the answer) and guards against + missing an overlap that lies further out than the cap. Inverse equilibria ignore it: they + have a prescribed boundary and the search runs to ψ = 1 on the real q. + + Note the accuracy limit here is **not** `psi_cap` but `surface_da_dpsi`, which clamps its + finite-difference stencil to `1 - 1e-4`; surfaces closer than that to the boundary get + geometry evaluated at `1 - 1e-4` rather than at their own ψ (da/dψ = 0.348729 identically + for every ψ beyond it on the DIII-D-like deck). Their widths are therefore approximate + - `extrapolate` -- search past `psihigh_safe` on the edge q-law (default `true`) + - `theta` -- poloidal angle for the minor-radius chord (default `0.0`) + - `mu_i`, `zeff`, `chi_perp`, `chi_tor`, `resistivity_model`, `lnLambda_form` + -- passed through to `build_slayer_inputs` + +The overlap criterion is that surface `k` overlaps its inner neighbour when +`ψ_k − w_k/2 < ψ_{k-1} + w_{k-1}/2`. When that happens **both** surfaces are +contaminated, so the recommendation cuts at the inner edge of surface `k-1`, +leaving `k-2` as the outermost trustworthy surface. +""" +function resistive_layer_overlap(equil, profiles::KineticProfiles; + n_tor::Integer, + m_max::Integer=2000, + max_layer_solves::Integer=64, + psihigh_safe::Real=Float64(equil.profiles.xs[end]), + psi_cap::Real=1.0 - 1e-9, + extrapolate::Bool=true, + theta::Real=0.0, + rs_method::Symbol=:midplane, + mu_i::Real=2.0, + zeff::Real=1.0, + chi_perp=1.0, + chi_tor=1.0, + resistivity_model::NeoResistivityModel=SauterNeoModel(), + lnLambda_form::Symbol=:nrl) + + n_tor > 0 || throw(ArgumentError("resistive_layer_overlap: n_tor must be positive, got $n_tor")) + # Widths come back in metres of whichever radial label `rs_method` selects, so the + # conversion into normalised flux must use that same label's Jacobian. + _, _dr_dpsi = radial_label(equil; rs_method=rs_method, theta=theta) + psihigh_safe = Float64(psihigh_safe) + psi_cap = Float64(psi_cap) + notes = String[] + + # In-grid surfaces for this n, ordered outward. + found = [(m=s.m, psi=s.psifac, extrap=false) + for s in _find_rational_surfaces(equil, Int(n_tor), Int(n_tor)) + if s.psifac <= psihigh_safe && s.m <= m_max] + sort!(found; by=s -> s.psi) + + # Surfaces past the grid. An inverse equilibrium already knows its real q out to ψ = 1, so + # it is read rather than modelled; only the direct path needs the edge law. + edge_fit = nothing + inv_q = (getfield(equil, :ingest) isa InverseIngest) ? _inverse_q_spline(equil.ingest) : nothing + if extrapolate && inv_q !== nothing + psi_top = 1.0 # a prescribed boundary, not a separatrix + m_start = isempty(found) ? 1 : maximum(s.m for s in found) + 1 + reached_end = false + for m in m_start:Int(m_max) + psi_m = _real_q_surface(inv_q, m / n_tor, psihigh_safe, psi_top) + if psi_m === nothing + reached_end = true # q never reaches m/n inside this equilibrium + break + end + psi_m > psihigh_safe || continue + push!(found, (m=m, psi=psi_m, extrap=true)) + end + !reached_end && m_start <= m_max && + push!(notes, + "outward search stopped at the m_max = $m_max backstop rather than at the boundary " * + "q; a \"no overlap\" result here is not conclusive -- raise m_max") + push!(notes, "inverse equilibrium: surfaces beyond ψ = $(@sprintf("%.6f", psihigh_safe)) " * + "read from the real q profile out to ψ = 1 (no edge-law extrapolation)") + elseif extrapolate && psihigh_safe < psi_cap + edge_fit = edge_q_law(equil; psi_max=psihigh_safe) + if edge_fit === nothing + push!( + notes, + "edge q-law rejected: the diverging model q ~ -A*ln(1-ψ) does not describe " * + "this edge (limited plasma with finite edge q, q not rising, or too few outer " * + "knots), so no surfaces are placed beyond ψ = $(@sprintf("%.6f", psihigh_safe))" + ) + else + m_start = isempty(found) ? 1 : maximum(s.m for s in found) + 1 + # Terminates on psi_cap -- surfaces indistinguishable from the separatrix -- not on + # m_max. Reaching m_max means the scan was cut short for a non-physical reason and + # any "no overlap" verdict from it is unsafe, so record that. + reached_cap = false + for m in m_start:Int(m_max) + psi_m = edge_q_law_psi(edge_fit, m / n_tor) + psi_m > psihigh_safe || continue # already inside the grid + if psi_m >= psi_cap + reached_cap = true # separatrix reached: the physical end of the scan + break + end + push!(found, (m=m, psi=psi_m, extrap=true)) + end + if !reached_cap && m_start <= m_max + push!(notes, + "outward search stopped at the m_max = $m_max backstop rather than at the " * + "separatrix; a \"no overlap\" result here is not conclusive -- raise m_max") + end + end + end + + isempty(found) && return LayerOverlapScan(Int[], Int[], Float64[], Float64[], Float64[], Float64[], + Float64[], Bool[], nothing, nothing, nothing, nothing, + push!(notes, "no q = m/$n_tor surfaces found")) + + ms, ns, psis, rss = Int[], Int[], Float64[], Float64[] + dels_m, w_dels, w_visc, w_dr, extraps = Float64[], Float64[], Float64[], Float64[], Bool[] + + # Overlap is decided by the first crossing walking outward, so surfaces far beyond it cannot + # change the answer -- but each one costs a Riccati layer solve, and this scan runs whenever + # kinetic profiles are readable, flag or no flag. Bound the work rather than only the m index, + # and say so when the bound bites, since a "no overlap" verdict from a truncated list is not + # conclusive. + if length(found) > max_layer_solves + push!(notes, + "surface list truncated from $(length(found)) to the innermost $max_layer_solves for " * + "the layer solve (max_layer_solves); a \"no overlap\" verdict here is not conclusive") + found = found[1:max_layer_solves] + end + + for s in found + q_val = s.m / n_tor + # dq/dψ from the equilibrium spline in-grid, from the edge law outside it. + q1_val = if !s.extrap + Float64(equil.profiles.q_deriv(s.psi)) + elseif inv_q !== nothing + Float64(inv_q(s.psi; deriv=DerivOp(1))) # real profile, not a model + else + edge_q_law_dqdpsi(edge_fit, s.psi) + end + da_dpsi = _dr_dpsi(s.psi) + if !isfinite(da_dpsi) || da_dpsi == 0.0 + push!(notes, "m=$(s.m): da/dψ = $da_dpsi at ψ=$(@sprintf("%.6f", s.psi)); cannot convert width to flux units") + continue + end + + sing = SingType(; m=[s.m], n=[Int(n_tor)], psifac=s.psi, rho=sqrt(s.psi), q=q_val, q1=q1_val) + # Built one surface at a time so a single degenerate surface (e.g. ω_*e == ω_*i, + # which makes iota_e singular) is recorded and skipped rather than aborting the scan. + params = try + build_slayer_inputs(equil, [sing], profiles; rs_method=rs_method, + mu_i=mu_i, zeff=zeff, chi_perp=chi_perp, chi_tor=chi_tor, + dr_val=0.0, dc_type=:none, theta=theta, + resistivity_model=resistivity_model, lnLambda_form=lnLambda_form) + catch err + err isa ArgumentError || rethrow() + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): $(err.msg)") + continue + end + + lw = slayer_layer_thickness(params[1]) + if !isfinite(lw.delta_s_m) + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): del_s Riccati did not converge") + continue + end + # Both widths must be finite. A NaN delta_visco would compare false against every + # neighbour in _first_overlap_limit, so the viscous criterion would silently report "no + # overlap" and `recommended` would quietly lose its more conservative half -- biasing the + # domain outward, which is the unsafe direction. + if !isfinite(lw.delta_dr) + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): Eq. (100) width is not finite; " * + "surface excluded so the DR criterion cannot fail open") + continue + end + if !isfinite(lw.delta_visco) + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): viscous width is not finite; " * + "surface excluded so the viscous criterion cannot fail open") + continue + end + + # Metres → normalized flux. This conversion is the whole reason the scan + # can compare a layer width against a surface separation. + push!(ms, s.m) + push!(ns, Int(n_tor)) + push!(psis, s.psi) + push!(rss, params[1].rs) + push!(dels_m, lw.delta_s_m) + push!(w_dels, lw.delta_s_m / abs(da_dpsi)) + push!(w_visc, lw.delta_visco / abs(da_dpsi)) + push!(w_dr, lw.delta_dr / abs(da_dpsi)) + push!(extraps, s.extrap) + end + + ph_dels, k_dels = _first_overlap_limit(psis, w_dels) + ph_visc, k_visc = _first_overlap_limit(psis, w_visc) + ph_dr, k_dr = _first_overlap_limit(psis, w_dr) + # The DR width is the criterion: near the separatrix the shear is strong enough that + # Fitzpatrick (2025) Sect. 5.6 puts every layer in that regime. The delta_s ODE and the + # viscous scale stay reported so the three can be compared, but they do not set the domain. + recommended = ph_dr + + return LayerOverlapScan(ms, ns, psis, rss, dels_m, w_dels, w_visc, w_dr, extraps, + ph_dels, ph_visc, ph_dr, recommended, k_dr, notes) +end + +# Walk outward and return (recommended psihigh, index of first overlapping surface). +# Overlap at k means surfaces k and k-1 are both contaminated, so the domain is cut +# at the inner edge of k-1. +function _first_overlap_limit(psi::Vector{Float64}, w::Vector{Float64}) + for k in 2:length(psi) + if psi[k] - w[k] / 2 < psi[k-1] + w[k-1] / 2 + return (psi[k-1] - w[k-1] / 2, k) + end + end + return (nothing, nothing) +end + +function Base.show(io::IO, ::MIME"text/plain", s::LayerOverlapScan) + println(io, "LayerOverlapScan: $(length(s.psi)) surface(s), n = ", + isempty(s.n) ? "-" : string(s.n[1])) + if !isempty(s.psi) + println(io, rpad("q", 8), rpad("psi", 13), rpad("r_s [m]", 11), + rpad("dpsi(del_s)", 14), rpad("dpsi(visco)", 14), rpad("dpsi(DR)", 14), "source") + for i in eachindex(s.psi) + println(io, + rpad("$(s.m[i])/$(s.n[i])", 8), + rpad(@sprintf("%.7f", s.psi[i]), 13), + rpad(@sprintf("%.5f", s.rs[i]), 11), + rpad(@sprintf("%.4e", s.width_delta_s[i]), 14), + rpad(@sprintf("%.4e", s.width_visco[i]), 14), + rpad(@sprintf("%.4e", s.width_dr[i]), 14), + s.extrapolated[i] ? "extrapolated" : "in-grid") + end + end + _fmt(x) = x === nothing ? "none (no overlap in range)" : @sprintf("%.7f", x) + println(io, " psihigh from |del_s| : ", _fmt(s.psihigh_delta_s)) + println(io, " psihigh from visco : ", _fmt(s.psihigh_visco)) + println(io, " psihigh from Eq.(100): ", _fmt(s.psihigh_dr)) + println(io, " recommended psihigh : ", _fmt(s.psihigh)) + for note in s.notes + println(io, " note: ", note) + end + return nothing +end diff --git a/src/Tearing/Tearing.jl b/src/Tearing/Tearing.jl index 745a30857..80bce7b23 100644 --- a/src/Tearing/Tearing.jl +++ b/src/Tearing/Tearing.jl @@ -22,6 +22,7 @@ using ..Utilities import ..InnerLayer as InnerLayer include("LayerInputs.jl") +include("LayerOverlap.jl") include("Dispersion/Dispersion.jl") include("Runner/Runner.jl") @@ -30,5 +31,6 @@ import .Runner as Runner export InnerLayer, Dispersion, Runner export build_ggj_inputs +export resistive_layer_overlap, LayerOverlapScan end # module Tearing From f66ebb5ce5a1935316d714f00f254981d6a31800 Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 20 Aug 2026 20:39:17 -0400 Subject: [PATCH 04/30] ForceFreeStates - FEATURE - Cap the integration domain at the resistive-layer overlap `sing_lim!` gains an optional `psilim_cap`. Where the resistive layers of adjacent rational surfaces overlap, no surface retains a well-separated inner region and matched asymptotics is not defined, so that location is an upper bound on the useful domain. It is applied as a cap on `qlim` rather than by assigning `psilim` directly, which keeps it a bound rather than a setpoint: the existing `dmlim` / `qhigh` truncation still selects the final surface from inside it, and a cap lying beyond `psihigh` is inert by construction with no special case -- it simply loses the `min`. The domain can therefore only shrink, never grow, so no equilibrium ever has to be re-formed. Measured on the shipped DIII-D decks with the Eq. (100) width in the `:flux` label, the cap changes no retained surface on any of them: it is beyond `psihigh` for the ideal (0.995), riccati (0.995) and gal_resistive (0.993) decks, and on the SLAYER deck (0.9995) it binds by 1.1e-4 in psi without crossing a rational. The scan needs kinetic profiles, which two of those decks do not carry, so it is inert there regardless. --- src/ForceFreeStates/Surfaces/Finding.jl | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ForceFreeStates/Surfaces/Finding.jl b/src/ForceFreeStates/Surfaces/Finding.jl index 2c7bdac14..cbe7c805a 100644 --- a/src/ForceFreeStates/Surfaces/Finding.jl +++ b/src/ForceFreeStates/Surfaces/Finding.jl @@ -110,7 +110,8 @@ performed to find the corresponding `psilim` to integrate to. Note that the Newton iteration will be triggered if either `set_psilim_via_dmlim` is true or `ctrl.qhigh < equil.params.qmax`. Otherwise, the equilibrium edge values are used. """ -function sing_lim!(intr::ForceFreeStatesInternal, ctrl::ForceFreeStatesControl, equil::Equilibrium.PlasmaEquilibrium) +function sing_lim!(intr::ForceFreeStatesInternal, ctrl::ForceFreeStatesControl, equil::Equilibrium.PlasmaEquilibrium; + psilim_cap::Union{Nothing,Real}=nothing) profiles = equil.profiles @@ -119,6 +120,20 @@ function sing_lim!(intr::ForceFreeStatesInternal, ctrl::ForceFreeStatesControl, intr.q1lim = profiles.q_deriv(profiles.xs[end]; hint=Ref(profiles.npts_minus_1)) intr.psilim = equil.params.psihigh_resolved + # Resistive-layer overlap imposes an UPPER BOUND on the domain: past the first pair of + # overlapping layers no surface retains a well-separated inner region, so matched asymptotics + # is not defined out there. Applied as a cap on qlim rather than as psilim directly, so the + # dmlim / qhigh truncation below still selects the final surface from inside the bound. + # Never widens the domain: a cap beyond psihigh is inert by construction. + if psilim_cap !== nothing && psilim_cap < intr.psilim + q_cap = profiles.q_spline(Float64(psilim_cap)) + if q_cap < intr.qlim + @info "Resistive-layer overlap caps the domain: qlim $(@sprintf("%.3f", intr.qlim)) -> " * + "$(@sprintf("%.3f", q_cap)) (psi $(@sprintf("%.6f", intr.psilim)) -> $(@sprintf("%.6f", Float64(psilim_cap))))" + intr.qlim = q_cap + end + end + # Optionally override qlim based on dmlim (Fortran sas_flag=t equivalent). The cutoff reads # the *resolved* toroidal range on `intr`, so callers must assign intr.nlow / intr.nhigh # before calling; an unresolved range is an error rather than a silent change of truncation From f30d110ad3b4b5a3cdd3431411bc99e58023a935 Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 21 Aug 2026 11:39:06 -0400 Subject: [PATCH 05/30] InnerLayer.SLAYER - TEST - Check the layer width against the published Fitzpatrick JET case Rebuilds the model JET equilibrium of Fitzpatrick, Nucl. Fusion 2025 Sect. 5.8 from the paper's own definitions -- the Eqs. (32)-(35) safety factor with alpha-/alpha+ solved self-consistently against Eq. (36), and mtanh edge profiles anchored to its Fig. 8 -- and checks where adjacent resistive layers first overlap against the values the paper reports. The widths are driven through `slayer_parameters` and `slayer_layer_thickness` rather than recomputed here, so the test covers the shipped tau_R / tau_A / d_beta chain and the `delta_dr` formula itself. That distinction matters: the bug this test would have caught -- carrying Eq. (100)'s explicit (n|s|)^(-1/2) on top of a `lu` that already contains it -- lives in exactly that chain, and a test that reimplemented the width would have passed while the shipped one was wrong. Measured against the paper: Psi = 0.9985111 for n = 1 (paper 0.9985, deviation 1.1e-5) and 0.9949738 for n = 4 (paper 0.9952, deviation 2.3e-4). Bounds are set at 1e-4 and 1e-3, leaving roughly 9x and 4x margin; the model is quadrature and root-finding with no BLAS, so platform spread is orders of magnitude below either. The test logs both deviations so a future failure reports how far it moved rather than only that it moved. This is the suite's second check pinned to an external published reference rather than to GPEC's own history. --- test/runtests.jl | 1 + test/runtests_layer_overlap_fitzpatrick.jl | 129 +++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 test/runtests_layer_overlap_fitzpatrick.jl diff --git a/test/runtests.jl b/test/runtests.jl index 7845eea60..540d99a28 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -40,6 +40,7 @@ else include("./runtests_slayer_params.jl") include("./runtests_slayer_riccati.jl") include("./runtests_slayer_inputs.jl") + include("./runtests_layer_overlap_fitzpatrick.jl") include("./runtests_dispersion_residual.jl") include("./runtests_dispersion_coupled.jl") include("./runtests_dispersion_coupled_full.jl") diff --git a/test/runtests_layer_overlap_fitzpatrick.jl b/test/runtests_layer_overlap_fitzpatrick.jl new file mode 100644 index 000000000..21b1efb50 --- /dev/null +++ b/test/runtests_layer_overlap_fitzpatrick.jl @@ -0,0 +1,129 @@ +# External-reference check of the diffusive-resistive layer width against a published +# result: Fitzpatrick, Nucl. Fusion 2025 (doi 10.1088/1741-4326/ae4fdd), Sect. 5.8-5.9. +# +# The paper reports that for its model JET equilibrium the resistive layers of adjacent +# rational surfaces first overlap at Psi = 0.9985 for n = 1 (its Fig. 9) and Psi = 0.9952 +# for n = 4 (its Fig. 10). This rebuilds that equilibrium from the paper's own definitions +# and drives GPEC's `delta_dr` through `slayer_parameters`, so the width formula and the +# tau_R / tau_A / d_beta chain feeding it are checked against a number in print rather than +# against GPEC's own history. +@testset "Layer overlap vs Fitzpatrick (2025) JET model" begin + using GeneralizedPerturbedEquilibrium.InnerLayer.SLAYER: slayer_parameters, + slayer_layer_thickness, SpitzerHarmModel + using QuadGK: quadgk + using Roots: find_zero, Bisection + + # Sect. 5.8 parameters. + B0, R0, A_MIN = 3.45, 2.96, 1.25 + ZEFF, MNUM, CHI = 10.0, 2.0, 1.0 + Q0, Q95, Q105 = 1.01, 3.5, 4.0 + + # Model safety factor, Eqs. (32)-(35). alpha- depends on rhat95, which depends on the + # profile through Eq. (36), so the pair is solved self-consistently. + q_in(r, am) = Q0 - am * log(1 - r^2) + q_out(r, ap) = -ap * log(r^2 - 1) + q_any(r, am, ap) = r < 1 ? q_in(r, am) : q_out(r, ap) + psi_raw(r, am, ap) = quadgk(x -> x / q_any(x, am, ap), 0.0, r; rtol=1e-11)[1] + + am, ap = 1.0, 1.0 + for _ in 1:200 + psi_sep = psi_raw(1.0 - 1e-12, am, ap) + r95 = find_zero(r -> psi_raw(r, am, ap) / psi_sep - 0.95, (0.5, 1 - 1e-9), Bisection()) + f105(r) = (psi_sep + quadgk(x -> x / q_out(x, ap), 1 + 1e-12, r; rtol=1e-10)[1]) / psi_sep - 1.05 + hi = 1.0 + 1e-9 + while hi < 1.40 && f105(hi) < 0 # q_out turns negative past r = sqrt(2) + hi += 0.005 + end + r105 = hi >= 1.40 ? 1.20 : find_zero(f105, (1 + 1e-9, hi), Bisection()) + am_new = -(Q95 - Q0) / log(1 - r95^2) + ap_new = -Q105 / log(r105^2 - 1) + converged = abs(am_new - am) < 1e-12 && abs(ap_new - ap) < 1e-12 + am, ap = am_new, ap_new + converged && break + end + psi_sep = psi_raw(1.0 - 1e-12, am, ap) + q_of(r) = q_any(r, am, ap) + Psi_of(r) = r < 1 ? psi_raw(r, am, ap) / psi_sep : + (psi_sep + quadgk(x -> x / q_out(x, ap), 1 + 1e-12, r; rtol=1e-10)[1]) / psi_sep + dq_dr(r) = r < 1 ? am * 2r / (1 - r^2) : -ap * 2r / (r^2 - 1) + s_of(r) = r * dq_dr(r) / q_of(r) + + # mtanh edge profiles read off the paper's Fig. 8, anchored at Psi = 0.96 and at the + # separatrix (Sect. 5.9 states Te ~ 100 eV there). + function make_tanh(f096, f100, f_ped, f_sol) + a = (f_ped - f_sol) / 2 + x1 = atanh(clamp(1 - (f096 - f_sol) / a, -0.999, 0.999)) + x2 = atanh(clamp(1 - (f100 - f_sol) / a, -0.999, 0.999)) + d = 0.04 / (x2 - x1) + p0 = 0.96 - x1 * d + return P -> f_sol + a * (1 - tanh((P - p0) / d)) + end + te_of = make_tanh(400.0, 100.0, 600.0, 20.0) + ne_of = make_tanh(3.5e19, 1.2e19, 5.0e19, 3.0e18) + + # Width in units of rhat, through the shipped code path. + function width_hat(r, n) + P = Psi_of(r) + te = te_of(P) + ne = ne_of(P) + p = slayer_parameters(; n_e=ne, t_e=te, t_i=te, + omega=0.0, omega_e=1.0e4, omega_i=5.0e3, + qval=q_of(r), sval_r=s_of(r), bt=B0, + rs=r * A_MIN, R0=R0, mu_i=MNUM, zeff=ZEFF, + chi_perp=CHI, chi_tor=CHI, m=1, n=n, + resistivity_model=SpitzerHarmModel(), lnLambda_form=:nrl) + return slayer_layer_thickness(p).delta_dr / A_MIN + end + + function surfaces(n; rmin=0.90, rmax=1.35) + out = Tuple{Int,Float64}[] + for m in 1:400 + qt = m / n + qt < q_of(rmin) && continue + r = if qt < q_of(1 - 1e-13) + find_zero(x -> q_of(x) - qt, (rmin, 1 - 1e-13), Bisection()) + elseif qt > q_of(1 + 1e-13) && qt < q_of(rmax) + find_zero(x -> q_of(x) - qt, (1 + 1e-13, rmax), Bisection()) + else + nothing + end + r === nothing || push!(out, (m, r)) + end + sort!(out; by=t -> t[2]) + return out + end + + # Inner boundary of the overlap region: the first surface whose layer runs into its + # inner neighbour, reported at that neighbour's location. + function overlap_psi(n) + S = surfaces(n) + for k in 2:length(S) + gap = S[k][2] - S[k-1][2] + (width_hat(S[k-1][2], n) + width_hat(S[k][2], n)) / 2 >= gap && return Psi_of(S[k-1][2]) + end + return nothing + end + + # The self-consistent profile must reproduce the paper's own inputs before the widths + # mean anything. + @test isapprox(q_of(0.0), Q0; atol=1e-10) + @test am > 0 && ap > 0 + + psi1 = overlap_psi(1) + @test psi1 !== nothing + psi1 === nothing || @info "Fitzpatrick 2025 overlap, n = 1" psi=psi1 paper=0.9985 deviation=abs(psi1 - 0.9985) atol=1e-4 + # Paper: Psi = 0.9985 (n = 1); measured deviation 1.1e-5. The bound covers the pedestal read + # off Fig. 8 and the resistivity closure (Spitzer-Harm here against the paper's Eqs. 70-72), + # and still leaves ~9x margin. Pure quadrature and root-finding, no BLAS, so platform spread + # sits far below this. + @test isapprox(psi1, 0.9985; atol=1e-4) + + psi4 = overlap_psi(4) + @test psi4 !== nothing + psi4 === nothing || @info "Fitzpatrick 2025 overlap, n = 4" psi=psi4 paper=0.9952 deviation=abs(psi4 - 0.9952) atol=1e-3 + # Paper: Psi = 0.9952 (n = 4); measured deviation 2.3e-4. Looser than n = 1 because these + # surfaces sit further in, where the digitised pedestal shape matters more. + @test isapprox(psi4, 0.9952; atol=1e-3) + # The overlap region must move inward with n, which is the paper's reported scaling. + @test psi4 < psi1 +end From eb8aafd165794d32273e8ee7a6cf683e52d36fa8 Mon Sep 17 00:00:00 2001 From: d-burg Date: Wed, 26 Aug 2026 23:51:50 -0400 Subject: [PATCH 06/30] Docs - MINOR - Index the SLAYER inner-layer references Adds an InnerLayer (SLAYER) section to the per-module citation list, covering the two-fluid slab layer paper the module is built on and the Fitzpatrick 2025 paper whose Eq. (100) width and Sect. 5.9 overlap criterion the layer-overlap scan uses. Both PDFs now live in docs/resources. Co-Authored-By: Claude Opus 5 --- docs/development/references.md | 13 +++++++++++++ ...sma to a resonant magnetic perturbation.pdf | Bin 0 -> 831642 bytes 2 files changed, 13 insertions(+) create mode 100644 docs/resources/2025-Fitzpatrick-Response of a magnetically diverted tokamak plasma to a resonant magnetic perturbation.pdf diff --git a/docs/development/references.md b/docs/development/references.md index e19b92e32..43f3daf74 100644 --- a/docs/development/references.md +++ b/docs/development/references.md @@ -68,6 +68,19 @@ The PerturbedEquilibrium module implements GPEC-style perturbed equilibrium calc - Published: Physics of Plasmas **24**, 032505 (2017) - Describes: Self-consistent coupling with neoclassical effects +## InnerLayer Module (SLAYER) + +The SLAYER slab inner-layer solver and the resistive-layer width diagnostics are based on: + +- **Burgess et al. (2026)**: "Tearing Stability Prediction Combining Toroidal Calculations With a Two-Fluid Slab Layer" + - Location: `docs/resources/2026-Burgess-Tearing Stability Prediction Combining Toroidal Calculations With a Two-Fluid Slab Layer.pdf` + - Describes: The two-fluid slab layer, its four regimes, and the `S^(1/3)` outer-inner matching + +- **Fitzpatrick (2025)**: "Response of a magnetically diverted tokamak plasma to a resonant magnetic perturbation" + - Location: `docs/resources/2025-Fitzpatrick-Response of a magnetically diverted tokamak plasma to a resonant magnetic perturbation.pdf` + - Published: Nuclear Fusion (2025), doi 10.1088/1741-4326/ae4fdd (open access: arXiv:2511.07666) + - Describes: Diffusive-resistive layer width (Eq. 100) and the resistive-layer-overlap truncation `0 < Ψ < 1 − ε_c` (Sect. 5.9) + ## Resistive MHD Stability Analysis (Future Work) GPEC will eventually implement resistive MHD stability analysis based on: diff --git a/docs/resources/2025-Fitzpatrick-Response of a magnetically diverted tokamak plasma to a resonant magnetic perturbation.pdf b/docs/resources/2025-Fitzpatrick-Response of a magnetically diverted tokamak plasma to a resonant magnetic perturbation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b12990f3220bf28e549d2f1a35e53ddde30ee30d GIT binary patch literal 831642 zcmcG$1z45Y_CHQbcb7-HySp2uySwwy9TL(dogytMjig9OiF7wegLL^n2s3x)I(NQv z@ALo7<8wUwJ?~zhReSBV*4`tzf|vw7GXp0)dE0s39XvCD31Dwz1<%I^V3aon8k!ga z4FRm6he`lO1w(UFX8_y7K*hts6u>A7`q{?b93UV7Z)#_9Kau4R1cY6H7WPg6DkTPh zgeB0^!4T+VX>3gmn&xC`2)zHr&`HD66(DJ92jT*tLj^Q-XK^qw<6-CIU}iEh)1d~v zEA~PfKxF|0Iymz%GMd<1GT1wrGcq$VuyL`oGco=oz`(-J%*?>V$-%(^njmLsY-;Ch z`Y;JJ$M_!1($&=1-qzOM&iUtjn}>It8I3&X?TqQ|Oc>c1m>5Bm6;#AE7$jV5Y>W); z>`Xx%s#sV$13-U3Y^j)P&;is;ot!Q0?EtI{%xui;+$!3k(;0sz`u8`>IL0~~A&oox+4 zL(rQ}rq1?uhIYW;rvMy4FS|GyffQkH2ZB~{GIVeNO=grZv;mQSP@}ZizZ7lgi zZW9tg0eC)l9(P*@Tab4G+-+^_oO#^&Nen^GXUYTme*c(}1n~0}pfx|qqiRV6-~oJ2 zAlFg?IoiW4(1@Sp-mySF;^yYY;KuskTHM^+j7%(yEG+b(H|U)`?0|;u^mfjqzmpI% zbvAagbhuX~;GU$Rk-ZC$pM*q!&%~Gq_|tL^2qwnA130)i+59ALV$5i2V`^(^2Xtm+ zW?*In&AO){Yy*7wVqQoojE^=JH3ginW2jfkVN4BjVtgm-hYuRrUvTp$kpLhV z2Nxq7OJ@sHCyDC{u08#;iD%>?qxKl%$uM-DuX zp-{!%-sX}1Z{hIYqapQQ0soQSPychWG`9dc|M%+uKOOLKrTp_~`fq0Y-M1b%{C{mV zOB2u%voy23H`{N!$A1oL|46mYE=E?S#=!qxw|{hP2MZ5pOJiq-pW&L`!Q$Vv^t*FE zg8g$f{V&et=-*&Et zT<2eD&Hc1L)BG1nW~QHWneTHaB>?k%1_b)+A!%ZMNSBx&U_s;+44puZ`R6R^-@)#= z`;TA`tTR9G&iueU^8@!R4~(!pF!B$ z&}su%9~1#%O4QyCc)zjVKYUON>w`?J4>GYm$OL**-qgg>P{iIH^yd9D4v^Dua1wt{ui(ZJ^u%=d$PZRJt*{l z0eh77A!Yn`$?iG%73@Lf{|nfIUH*e)_cHtn_FzLsNhf<32LRiHDgOs(_6O_#2k3hx z`~uDXX!HkY_W#+Q?0;*|du9F#{bX*|9fbTM^pVZ^q&LMqtqOaHhP5qr_1RVg>(Gf za{9SL{3`V$k^e!?zgtc}_n}|G{TL<~eSi|*C9pq7I|MEtzzjctmj4oV{4)PFPxc=#a z{}uXC&3|dZpE=vFN_`~q2>nm(`3p4n-`VqLp7;wi_n-DpP=fWdkNJQ4?XS>(w}1Z3 zO@D>{rvdy|u)ho7KQrK8!Tx7^a{sM8?`8NE?2+UDQ;m<7{+Hi!KR)?u=eZaA7cgd~ zN2~w$Xv|EH*8gj`KSmp2znL5d&l`d_YCeEp#Vk^<)3raLCoI|pUVTN z%s{pk0Fi1KS7l{`3S)X@Omt14> zsc+T%rRP)X3R@n8Ahxp^uRHb|XO_@UXR3zVS8?Y3+h5stE6eN2hfnrGcgT(h`n;FI zoo$;E8h!n~uQDLra1FR!D_l1AUyQZt5-r z$9{4Qn=1w!2eAbOu?T)ns(eD#ImU}0nivv(UcKFxA%Eb02T3Y3#&G(bO(Bx<#HGk> zCWhqMIU@u%!|-gW9Hb;OA?_v5E8G*+ucxYlCsd!g4)?Wtf|4iOdq$q^o!k~Y?eBLT zzSzk=^F|WS`hfmNfo6$Fz~$+nbDVJ9=Nmrh-kijKVHE&)=7nJz6Zh~z z(?V(<&IJ&>O`ST7PW;MPP?6fcfjh6VdSGYZ!(K(#fY;n2Bm_E(21nL=SXPpM3hUM36m+hD8s?&i?|-W%k)PSF;2RNm%Ic zwVeZi0HFv|RF$YAowc_Qv-k4LYX=cx3l-b_)75V>%|{vKJcMyO#3ux#189c;?T)lu zJ1&0>PcG5{^!EJrB!?F%g$rF@IQaBu7MhgDRR+N+jW!U~318xH`FA0d=iWIK6QpR| zv9xf}ggm!am(@in*YBM^W6hYVbVc1TAVA2gds`NR_Hs)9ILYU25up1*1e>V`Cr!fV z_V~&?@su^I*zoU;*6~Bw3O*4D&MhGqpGAvPi=S-3lf$}uO0Tu1cD#-LcZ1#-1h-{+5lGjG_<6A zUk5t)>qj~4?1K02Wb2-1w5L>yfDx-AvO9*9$Y9GBxgC!B)h~HrLf18rE*ELI_r>De zl+k{MJX)8$BXL`K_Dv$((kh9r1tWu8nmyP~uYD@$Dw>4ZajtG8Gi?yFL)ZcfYWRf| zaKEp^1W-98`msZUOhbrp3n=o6`jx8zflpmGE%&-WXBk(6M97}MBOm;Sf<4o!^+jGM zHrfP9Jj{X`T>F(Urv&yb60}1#xGeaLrd7jPh4(?a2wi%_%y=9kypX(-7~SF1$0-n` zQ1MRg*K%_(Z9~Mp=be1#5YkUCNqpv%2rpjq6JtVfU*hG|7eJ;heER|ib|Y`|0pvSUXh!x z1@-}fhz2U!?dKn?U+@_vi{j9su%vBAI&?gj+{g8-@YDlP_Sm9|KW8;M&ZdW6UQtf# zQx?32%+T9fZ{B&^To&{FuI?=};{xy<6JQd)K8cX(MfhO1m2jZBxUhoV|T)FJ4u8jH0(0@2Kl+ic2H=h&R=-$)$n?5<^o&5Z8Jj zil@oTe?x@7ym(P6^8=-%zfM(L?If|JeIZ*(6`6kRM{Wt7QTr!wMtzZ!Yq?P=)Jdq zW{Fc85&y74JW)GV`C62jvsAI+bHGJxK86Bs#>>&S0u^!jd`Dr(7ScI&-EekgtM0ox zPQ`pnZ2OW1D+~BV$aDvsdD|wA6ZFPepC!eK_*9zT%>ts(U#rQ`lws1+@rCAL5(x{U z4uTOtiS&Gi9))UAIvWe^kS2<%9INVJd?H0*#-LmL#*8}>k9JiCJyugpyDMkSl7XfZ zu>?h1Z3ufVEmD$#&IQ$=`nkZg`0!`vwQ=hDAC|7m04C->s85nk z@rk2g@+sxUD6}-v@0l*cQOAM^+b8ueHS&G;W^W|_v=e(Xyc4%hH z5U>3PV^SmK!Ez;s?qwneX~45Agc&$RRDm(wkn5rZvtpyzXjJ4W%+V1kW!^VRH!amE z5S^~wI#6v>-BLHA5MMSI!I?`E`#xH5SlK#a$(+QCP9?c4hCBA#OW4G<1^NYnZ)D#| zm@<8^X%9{byW?fQZ@FVUopL2QVFW%6h>cLg7ZO^Aqt>ZYc#$dv9=ha&mc+o2=P<+d z*}vvaPCgMD^-?yX9wi-_e^J$(L z+NMPTgIFu-O7@m+VERPF^*nnRdP)zGflyQjtt3%-yjWO03G4=kJZ8)%Qvu)4kN|Ls zRV0~E9Edi@GR0zbo<^r;ikz3?)GdwRH9=>}qfg3W+KAA36~ai>XMoRbdMP`(zQ#lq zJKQGLhkysmE5{E4@V7md>tBa4bLdEsh0=W`w5ca2id5A9Tw~wOv2%9V3%2XjpfMA~ z3N*!h<+oDSSh{`060Fv%f;Oor6u>@-jFb?Cq0jr0?3oTBYg&$^D4}%Y_?C%fQ7-

go)S7C)`-qQN@QZwM+&7zDZ}1Oh(0o0j@boJW2f6T` z2;Q!)6GWP}@`2kpoL;%nq&&C6e*T_mC7rp%s;T7tYBk~^Te0?BLtWUj?+Jt&E-pNi z7?Gv@vXk%jO1DX-};Vm>DVtFTk2YEN+Y_B_A5O`Q?%sEIN z4+X&@`YGj-&8u^56rIs|MPOTnMZn8ytjpd?L6f-R%8|1^ud~YmD|t`0U@#5`b7{0l zt|Yz&x&E*k&97&)g!%PXSJiu5-n?BX$g7EsR{bV; z>@pu7P!L;+#->&ff!K z$v@2z$?LK{Z>s45e?4LFBf4#iI&v*SzZ1sKU~==j7d-KeP66jsF^6p2H%+E4bK$Vxf+{*|iUZMiaBLHi3ktmB}LDPoV`x zycA)%Z=5oRPYnCtt|JXKV8VY=lJZE74sOkP`xHlrGUtR3Qu%}fr=*Heu8}cOFB=R1 zJA#qfqRD*WevI+px_GCsq9Pe_w7YgeFDEfU!pD#?_ ziZs6Hion-=Gs#aFwmIy^^<RytT5TS200Mip?uPmurEkBqkJy?{D~K z`BBF#3#-S}J>XY8&o{R9)fZOxKx6*D z3$#`E`wDFk%|;oPj!c-D9y=5gpawoO(__;?0@Rad zemtsWl;Ge14IcXg5*(bM!EYRJfT%ql-hy7^1`U4W0Mv12emux!l;FH4@W_FRrLCzm zy^_7Hp&jVq11I;*0MHS)u`=j#lQ!rp=-LsZim5vgRQ3PsRQcx#-R~Oti`xG8qMRLc zJn%=GcWY@ouhwDto>z>VglB0XIxfFU_37O=DV&w&wcQOJ;__IMc|RCTQcIRp`+djD z4pkcO{mS6bi8zVy64>S)5tzL_L#v1V2@T43G0M{PX4Mk);#Zx$`K9T5+Z+}QF4%;w z7uQElNNuKWjU0{eGrTu3fq4hoSCz%Da_5|k)e%)^G1=YrQ08^3sIN;u*GAb?T3>&z zg@@VS-tzV>;z;H}BEG0Cm+`$oBKW)?zR2M+n=I#I(P-%&nfl3eZBy`` zwcy<+G{L*?i*wb~X`i$0@2Xy@S-7TM()BAEyJ%?BF}@{+zaI`Y!doTsnMw1L{b zv}f1l^ch_5`opwu0wWduR79bzrk1;iiMJ`gc`UxqR3MUvTJ(LT;_a>zQ)YB-UhtA% zP`wLMu*#~Pg|CcX<-Euy=nR7rumIUN95#<{&T%+`RKh(mDW-1B)^qJ_60g5iIm~?XHGn-x(ba-=YBUHVcW0?m zSC(bwHGA6|vhXr*>>p6(@g3Sni*`#`7O~?MCaBFT>UO9x!q}6n#NzHBrH#a|M0>Cs z`EA0CjC!9{b+HEr#yIreSK@Pr9sc*{8(R&8i{cp+|XahdQ~f*F1Ag z9y?%wgUTxJmbQu{rWj0hxluT*l$MZ+ekOnAWMuiJ;>dXXWL(XRH{KGZYpOpYVB+b* zhc@KKJzl$MMgLs9&w1sZ$diXWRYWLWy9s1`H|g5(;H=MNWirX}%%!U|(2;pQ=>bVM zr$-PSapzGW@(E;^2?fIYmfocHAUUIdD7LJVy0wWjv)d*^U;UT0i!KN6b~cC`^8Q z;3i-CSJ#znToNfX5-YfKj*E9QD)Q`MU2@%?yDMezGYdg(Iqs|&I)k36n!V`~LwA+4 zSVTQ7-{7PB>x4y~ou;3w8Edd}e1ZMokMZUin6$%qd;O@R13maiKC@$}VN^qqn-@MW z!epu{yc=GL?`4HP)DYe5;&W%?g()J5F{eZeMpzSl6_A~ke)8c=?3~rFYV+o$@+upD z_YAs>58tK*t9u!=tG<4L(mpn@+) zxu%u~jD|Gj^CU^}AJfit+-gD_GNBu8nv&KYj+z%PfD!|TXEfy(-PuYe{`A7AFA&P6 zl7X07MuMV2zWm~u_*$}%h)}H}LJzZhJGAR9Q){o)SD_gW@z66q0yfjHg(PM90=+oR zGM#+vc)nlMUTWqCB#dmV^n0O@a>(VmvwsWrw&=#g!Ktk1w^NQTJ!b5rOIewj^y@%; z7d0}BA0pDL!Q5iU!=ypbqRF)GZmH!zV9#J_A=XsmJdZ{;#sO!WIE3`3XA~tsr{H;6 z%&b`Uh16Ak9qZLc0RbNxgbz+#SHPF)>e-4J6%?7MK^u85$o5aZsnxy@6Rdav*^RfY zOhFqmIVe7IiA1{9`!qYY>TRQ>Xz%kPqf|U`JqdWmuTVgx=O)i5*Lr1N9mt4yg=y%p zt#pz|oLZpdPk3P77op#|Lb+*H{Wk@rZ|Vj7Pg@;(z5b3^$1F#ATfejE$1gVWM?>SL#F!4?>rN9L}O>wNO^%!|n zobskCZU`Z_PUJ0e0a6Jy7-oj~W*G6N5b_g>86?jOGUv27ESCwc1aEFd^q^35tKK2A zM3>p{EG#d%lp!8CcdBQRBN6v|`nk3Db{+&*FJ0G(eYNfXZq1!0_>DHI>x69+dywCb z;bIWlFiBcZieiB(jigsR!E+VE2R$^rzxAVhSSS~A5le z)5~6h;G5&dQkc2%?>LP;s2(u{O*_ryKysxoLUV>3EUbp2-Ihg6qLvyJ@$nmbn&AR3 zsxs9ltV(hcgtd(ILRR3io1iP+$2}n+=aJjh%ug4R=lwdOf4c!zbG`CbrVIDe^)4W5 zFmC{eo-Gajmh4Qaeq4bTQX3Mj+}dbitl>HiR0!bXs?6Krt2kY6gdx zF>R^FsIW!N&FMHy`OxQy)%w_}cwnOu79C{4hO;#!%Mg1R4gd3ejBK}1MU%TQrOlGV zXF!6q0a|}<^30F=7Ef^&7j?Xw6u_S4C23hIufgPl6mz;m@^Y;W(zkE! zo}Fw-Jn!5CxKgwsrtNmmx8l%0nxe)ajXM_h@0>`(pcw;@~+vs&^+WM zHGytTbYr(HDDb|-hD;Udp8hcj|e`Uvy&ztZY0e&%jEkB8isdBR^ zm%Q$?034hH)=mOd%UaXErD1$cqH9EDy{%H}nMRN}sBqV9<$9T0l(8n;(&1jv$KF1k zS{BR7zd?hrBwd(T0!)huo6xEkhRH!HHKQK2Qs*%atpe)Jsz9fgtcu!|u^;hfnrJk) z6q>g6XQ^?_e^rXFjXi@s4MU&`$sJz)^5GMjf4!CLCd0^V=I*lOE&fi{noPcP8E5L4 zlq-p1{Wv`OsUA*>ZA+RXt#kGK(Taq}K1Y8P?@TPK3?1}~Au7i=-d#_Sd*)ZZOCmoF zxzrqJ;6^fNDBdVsddF*_ogCAU{w3Rg3x~;LydeSDF}_L!=k2AQ{PcR&7TcoT7X0bf zketPdI@J7d2DeslG=jz)-F}?n*hO$HvjoYz+s^|9&pyiD$ol&t3zOHF3s0~nHu}dX zzvX_O0w*w}@MJq?*|?1RyD4>wn3ZwY=Hek|gvwN6<11HNx@>1g`R{##Pbw=FCe6N$ zrmT^tAIj(n)7!PeF3_6k=#XuWgv`b>7*I7*kF6NXNBIb9p$N@2lCiXUIkdPft)o&j zsWQ)ZN@Hey#B%D4T zi3M%+!G&QQJ{^i!0Ies)WHOfc(UhlJaGqD{ybgrYfz9RJMC4K%i+=Ez%NBE^rtS_; zSZZ{DvYCqvV*581ke9T3<7_VBI79V4tXzH41KXNBcFItf5SpaqVOCC zOO5edSC(lygBc{nbf&aNraqekw|_Y*-V$jKDf0EhZU9G*FsqM2vdD9f{=9@-5j#(h z=(Z7^g>*;nXIKCWhZx?ieS<|mXHt|ps!h&W)7{ujS<2~Rz5X3XfLkeeC0k31&pdL^ z^;8lY198Jh)m-(}#3r4D;A#T0|B(jKFoKDv+?;wuJsvjSxENYu#CNts78q_~f5!P| z?&0If6Xy`k;*@Uvezq4j${Gxwf@ytyy$r^c+)VEiwnIfeg!_~FIGMF{pwZusEUov4 zF#^F*bpv0!?-(hfa>RMfk68LIeRMHib47aI&_SxaBEib37tgHm4Gx~-RaoGqqQ7?9 zM{lJ-Tc=>Maj#&o&$@}kBVV!_QumQZueR(jk7-}25nz2%d_K9SQbI|9A4Yfgqh^W&vp(BO{+Ht6Cj^W!~X&@Z4lkGF+E15n}n zc;T1v&vp18Yh4M@wH4;a3&H=a#{J_Zg1`nFwaw86k^NK4BL_Wba zj^wj-u0Yi!!dl|UN|;dJN*`dflYdd6hlwyCJ)_Q0OwD_@)L_f!UV9srmFT3@nKmXp zzLxLlJ}L+iS_@v8LFu@>A%&QT@*?bt-l_F23jIxDFpCQ|y-GB;`(an}2=y4DVQ=>+ z*nTpARM@&?!m`TXCEPMUVNS-X~##Cp(SALaGwrnC1pFb#-ZE$m$AA=x6XZ+M0 zD3pQ8-o1&V#$!r=R#56oJVJ}^T00A)lqbP)>Z(ebtfI*_3kybHuK<5&Adc0CcfkTS zJx?;5ap;sAX5!g7cDmmh`qmV$8zPG$a4NUh!0MyD#!Ic`I_rYNiO^PmYS?yLV5MAr zt8vP9{xL)!DmIZh<(h)pxIpTuEG~~**$IW|QN{ajF8lcJx?oIlrpsr|)};_E$cMjj zv#w+-LPLPpqCno5k6%-Cx=)_eOF}e+UdxZqs~S2??l)5{1#*Y!`}c`SLuV{wA76o}$xnK;FgiS?h8!J@5}TzJ;&mZ#U_w98cvJdcW^**=xu%Wm3k+IKuN^gwEA zwZz7y78uIH_L0V-Et?hQP~+Dfs4g<1x&IYh4-Uzxpp112#2)e zW>43?8govkhyweWNmkQ}w)XS7*dZ6G!!v?+7L{qxVF|)^21h)2dZL}Iai928AbyYB z#Lmgdc(tOMVlMjRIh=bN8g?<55XPs^&)`)dUX$qTyac3u0~cWwX!btZfQBRIEHEfh&q4BL70yyoGVa>%^x1fHDljeNb5V-}$Zec!! zT8Wf!IYx>lMB-_vN=+zcL`NDU26zlvXCkT8xwMp2ct@T+x)fgCdp<~N;m^>7N!o2& zDAFGc$=Am`@Ym^_IvWCn;CrzUp>_z}bMoSppO8*2Abo(Hsl~#toxLg-upMbFVP&SF z>c5t2N{Uc)EI5YiQ{{=QY|H_3mDR@XSSy|f9_ivMG9b@ROU~B55Xj&z8Xh4ALlLrx zRL%+FQcjD_n1q(y?aSX}AbpRR6zxYD8{!c=NPd_J9d7jkuP?)8kPI5#1|D?DCIf6B zZ8>H@E1nmx*37_A(JDT}t< z59ZAwVea(-U>Kc&Zn}si-o9{B&anv4df}ox6?<^hM$*jv6w$`x%kY;n%1O9((w2ip zVAnW#4n^m3ib4s}%4?83{)*lbn4`t=6LS9HW|(jL!YAu3jT_TWFa$0 z+(dT%tjmb zMW7&&(^Yy?@!LpvVp6^y3Nb=&mp5k4LMNsUdvAq$+d%^749es-WQylYCJOkSfITSUY_%p$br&NMY0x;O*9LvVua|1r(YMj0(o3mn?#M>37xL2ZWgRAqM-fml-h;J zddE##YkKqsr*<5DNP^`|S5I5KSl8x)aE7Mr868FQ50n{r%TQH{^<@l0Dj(!8FG_#l z$?<64`teiT+86ub)oas1L(j8KT$|%}7P{?g@vD#Z_Xj9=7dXY2xKO#uEt|BYNsF7P zL|L^mD!0o>^$s=N5sk}>D0VKs;{VVh_N}1>nAAInSJzeP82++`F82;trDCPv$iGliP~-&y_(+jSJO$^ zmXqbTRQn`3YjCnzyt0~0S?Byy{ff%Re~eZ{OPcd3Av9lr$LH z-T0{ZS4Qn@$FzTgqd~&QK8Qp$(~Ch(k5qs|#VPLY<8lY6ZUe_z=37mKd{3pHM(6qy z+OOp(`N_PeLMqm+K`>n&dE(hj9zadt*SL)o!)D;V_FkUy6@c-J%H@7~x&6*wRP)xS z*|wo!-=bOFGMd1-AKZw|pVc(f)OCZ@-*MHIAGm7U?1J|>YHWwitO~#jZZibWV;Rrw zSLwXmhmW!3D3aDdlFNEW6vyvE4-UsnpgV7}i@`r(EHPkeus!wF4bI0LmV>fw%0ZmY z+<4>d5d3mVJf&kLs)#(a990Me#i4`=!gglyZ5MF+PzlZSQj?%G5ng^@4U^z?z^Bv0 z{Abz4nZ_sZ(JUBKjhQTWz@D40bz%{Cdy!Iq!&& zaEE$YX?|eev@nc>2G<4R6C6+Y-r=U^#1uo&`RAM+INxE153_J)P6+TLuA*1lWFo_k zWpsFQ7v6q67bmrCTR45rZQ+)e8|D#0wQw@*{WV2l=V*F(FSiP^=N>lm6h z3z{f z-WZH1n_Y$@6Ne3%0nfk3^8Q1o*N5VRZH?=WfQyQZ07b{ubPZHkzdB0@|J_9}1Kqm7 zvwZj%WUQ>5xG?YLS$jymRdj>sJ-whJqm0=P(3DIK3Apu8B168ssMRN64#% zCNH%Eeb&pL9%W2?KAw(3c#5Aqpc@?5QOoSh#t@GY5MHnFQ5x0P4>kD**!QqW;lDU? z{^O-`iT@vKWzdQ7`x?1&o(s#Y}>LnbS z208_67Utcx%j}8h7rK}7A*?Bw5e71&>oU|yH>UZ8l<}YQDz=~C&n9Z?yrm6s5+&`@ zW!6D6m>p4Q(!7E@n zIH{_|g9An%e9pGnwQUTJd!S`a?Qjl=wp=?@X`p=78GU`v>dhA$2eWNU;;Fwn#o=XI zk>BJALYs6Uftf|n)heM)aT50rkx@lLAF*IBDWs_cIhhn6;Zn@z7;tg=BP>;`OnXIs6!A4=C2byUNsE&`g}B1 z=~wk7K^8y@m4~iDNTvCfBm!juGs-f@pr%PvD|t?0k@YFAiV&+Rfx6i!u3MHhPee(-7J^^M}Sqmi-~pCOCXCh{9azAF}+ES&qhY||C-%jCmP zjk44l05;{M3Se|rJuuL7ic*zwDyO+IAXb-YOhj0{JxYWS1UqF!T00$jmPm1Zf>R?K zxGda!KRq}2{toDXeX{#?_v0$WGiM4vb>6CMJIc2D)HRCF8L4z0o#Rg32`RO>?R_8P zYHvDCu&c2S6|vnhNZ4~yHzT1*lwDl~C3OtcWU_0p_DuXb)Bq+MjTuw@+9)OzA}}>7 zA&92-igH<1NuRw17SsSK*0hYX@a=fC0x|C#z;kDA7S*y0Xs5or%&E0TLSf}- zZVJ(G^&%*~{EVO|&QdcHYeQAQAcjRjjGsp3%u15UT5WmxU+qy+bK<^v(|s zu5!?LC!B8GyKe4tLx6xtYh%ckyA2(QK@NUoh@$|01oHa3Cky5>2>2*$!Za3}GQ7GJ zvaFT8<51ff!4MHbN(s7JP=pz&?;I7@QkCNwY-@{&Wo!IJ<2%9nsFLT_`LkDIksHid zqIt-^3+}|O8572D%xpGHHw09cdc3v@p-C*%*-k+B(G!7SQo$6$EBc`^=!3@q)P(Vc zC}B@9sP)EYH-+Kt6t3r5EYzhVD^-`4nr!DG`v|~|z0PT_SU9z*Nr8BVzqx1hn(^gx zd6=~PcE)cthUkZV-(|ij3bR|iOtt)y0r?u<02897)@vS%Wi5cdm!=0(6r6QqNw$I8 zCV$i)1;h1Orb!X!D5JWJ#V+#FYMo8}`iQFal?TeTal(CDLD8#yqmJS0dOz&z8!#CM ztTCIn3UO4)ywe_HtmVxN+o$CP958pE7N7+}n@1}q&ztvd6^JM*hXd^osv4O^T<+Ej z-tD+j%N@5`*_oHwM$8rv`m#?^Pwg!sCVg(E0Bg*IOe|E znGaQM+p&9f>MK`6L;p35Ffu3qEM5M+TfP$-VhU42pO1jYD0yd8w-1xY@%dZT@WMjs zOsZvDi*K5Wv?VRwc4$aGKd_aeiCK{st$8r(exyyc1%3E7V`~!Q^6|au(3kgd-gSlR znB89}#O8t%!(>@9!wgKIz8xPX^K^uys7beZt@a--_OqXjsqCAOvcGxP9Z*sn0`Ed7 zIcZx{oY4qZl^?aJq`zZM zf6?fO_i!RWY$h2;CC@EzK+390p~#oywxLkY+(bw^Qt`E7=3g1rIMk&n_#V;CmdM%Y z>&^Ub82fAN8-z^Ib zuf5{^QSrjz2kvtRB%%*O{xu0uIA(CLoo}5)Bb>wwLYvFOM!12!I2%&?b-57<3-u%7}479a_=ZRaQ#OX-_=pXr+ zE>z6Qv6L8-gmp_*o+`8|foR{&7IP<-uFq)I)uNHTz=lql%JYuMPM7V}F-lTjB+H);VLh22 zam}i(D@k6pDq*N2H|b!u0w7k?p(>_*%sbT$Cz1u@O4c=j=i|Ft)PVa(t(MvB@Y zRM0KHzLmS>k!gO{cj_2-$7_;=op6Sf-7rFKRs%SygXA>P+qFB9_48*%v4+l~rBNk! zTk)~YwABt8W$h&SC~u{D%Asgpte5h8i++JErN$FLbXP@HRuy8RByr4xH>!Y#4PJrN z41iK>@`~~o%0b>KYpy$x^eo9`+#z_;$27W?%p-;E_d(-wyAj{*Nookhd?woS@x2+_ zLPhCKwtjaC$2Iv6-<@}K&yi0DQqzuJqr7mKr}iPUXy>*=7_TBAl$i5zgnWjy=Ky_7 z-t2#QUG5^YrUDb}fK@vhLrqIk(!uSV%2x8S8=|&?BWr+vbI%S}l2T{j)rG25ie8UU z+!uS<*FaKh{{1Jg4*V))eOKT+W{3e4&h_+|BkTAWhdPtwxX>-fRqO3OjbV&>X=Wty zgst@H)wEVEZ$aX~GNmoK zDXI+0?)hKIE30oXJi8jhsyL`!Wp9n&FmpsS|KwVKU3sW}vk;^SJ#1L^+ygnO#(%vr z)9Yp!x8n`Y;hm6C<=dGX=M!bK%MQ{^`P>{Y6yo7z2@{mQiJvqh042;ckCx}STiV;33o9&gcpQ;|>s%Q!9$@(-CvNpxOU3nYxX4VhQ!@M|^ zvqg!~B>J|_d!M8jW1Zz4U))KK5~7si$+g1r5@R;XMondPTK3lRNz+@WvRRcVURY=D zg&^xPly%nu%;K#Sy7Z?qaeYp)bSt5;OwrMPMMZjU`EnWOmTy<+v8P(j@p_jcRLZ3C zKkvUg#tJ7huV^@K)Rz{#sq;XEeDX9Zg#IE89lG zd;gv~J8E8AH{G@;a5zln(QHf(o^lC!>vf2xqpN}HDa>Z?$@?#yvCr!&4(w&|sl4S) zw)O%fn3G(kKD{x;<$X7zJ^@eFld0oCkSjDhUXB>7FQD7vY_X{N?kPpBR)sXh6D}EA z(N?$s5$Z&vRO`@H&1jVAAFu$hgwHH3h^}Be3`9HAt3_az(IJt$5ld&59r604@|oV~ ziDoL)1xm&nv*+3u<*}97aXlYi6LnKZ@X3&p6lbupc=UTLmjZSxz9`Q(!Nqs8eqR%t zsASC@U`KhHo!|E9IiYhjL^dYSY2UUZmL4}bd2@md28O|ic)7FvXTbcf2x-|h#z?@i^HXp$b|A=(u;Dj+rCQ=30urf0Vd>f_JFBvfEH@mr^ z?XPSJDm#7M4(clyCGmBhxHO?kyWq5*sj9XW^m-2`_85GGC+R{AwET=B}x7el1 zopb2Dt}ocUN5eH+nixK~jcPAtd75Ezj=OG4-#T+(2@I)#YePg_E0PYYJg1ROLleG1 zhV{z~ab@uJkuxae+&(ZGMdNvqcBsy@S{}B%d3~*5fL6ZOTeJtuWIT(OV`eK^bI`v2 z%(mSS^YFU4zrKG?f!%ipk*3Q_JeDlc7d0WGNhe^x-FK4L=GJR_uIKs`K07D}?B!aq z88;E4nO>w-i_xJy(McNrUliE)x1IlA97g|>0{c(5u>V=LeSb6jcXt2g!Zi!%-}d}d zwcV{L>%7W=-g>R>@FLer5;hAe_T2|LQ>E#5HgDrEHUr5d648TDAK5$F9bi zi`yyWjl8HeYJFCpm!Hq+I%lBy>#0DT=~Mc0N;%=8zVgytiXR27v*&iT*mE1ZrQ=#M zS^A4T(YhX!O;rma6T^wcw+B0hi;J(dIm-m}e&CptrtYR&5=R7ib6d#W9gL@0Cwv|I zdZ}LAXiW+2JVF}RS6om*(v zbAPp-)%Pm0yeOIJAI}NEopw418;jZ5?~_ z_LY39`aD-~z;bKX-3w7%+`=bm$h)kUb%Z%iA}s*mv+z`hG^O6SG7Tq+(Wr`cT)=rK>+qzpKH6-nd?b^}@P)TGP2f+*vGc zj23`mDhNds(y{zQQ@VNWiYpL;t-S(yLZz$UjWkcOHME}%1>35ri6)&%tO z&|;WQ!1BlO3MxV24hcFm0(hV@Sfe~mYu5iq+dBqHqF~#?W!tuG+qP}nw$)|3%eKuf z+eTMam+k6$HFIa~JLlcG6X%9)F1SAeDhU7f&%=A0-Ss=<()B(Lj7KutZVWD@<6Z|m8@g?%LoPE&G<`L zsTYk#EsYv?&%@Y`2`V{k(B#{I+nNlv&u_PBUz{oa( zTk4Qz8$$dXR_djnUtN~@AYDb%LU`$*^+()Ds%kZU!!*IPqobu0Sk|CGzt;!SoQNlQ!{cKU9 z3P;h$qqx+WY=PeL^>m|KG@!Y13lw&_5Q!eV>w(G-Y$3s*8z+#`gJ6TOJ<})q9BG-rCvm<;I4ue%z?;Fo+HP3OuLWk>azld&7tDr zRdqo?6~2J(Eloju=~P!$r5OW4WlScYNi!8Rr_91<2**P8VLTtV5Lio-J;;=(?Z!T{ z#oPcW@B+Bb-^W5t^P~~|TzQ}yY1w&1X=)GIM4m>4uJ9yPI>(d~nsvboro4^uw8INB zhkVV@2=AgMdwl0Cz>DUKWv7^Neu%~A6jtLXLfF;DD7#q(jL(qj-KB)D>bIu-`HprUV zNbj!dG4z}gUND(CRtLbq|M1CaPZPFAVr73~EpRmy$3zQy_q2(0vBCWQt$x_m zk*&o62F@9Vh-20_#51+%wt~(aePi~f!(-4mProA&)y-;D_u zScn#wNd2{f1Gw3z0CHG8ObAHF0q6#XrJyd`@%e%$Qkal%yE4z{94lox{#=!3Jv|tk(LmmT_R%cSM4Te2;ZA#F^iC5*dB}W$AXAi&-2W(eUkNs*V#7b>azlc$SK+D zq|ex@1tkdP>wUQHlVyc#RE2Bar3>A3X71d$#Qxz#Abq^T`g#3gx@dfG#;#PNF7yF= zfrki}l%v*&8>eF-Xx-?8ZN7I$59@`H$GN4|sGlGe3IeuVLXn{r#+wGPQAne7GS#md zmZ4^tJ!rM=@AuvwEitiv-{_+pwi9B!FA67v`H@!6=eVuAgrDpqL#BI2FU$tsGH=?j zWi2LsCZ5N*Wknbl92X2-yrhdiw5iS=KJ3zSRTfvaV&vf?x&&FmdH@4fMt8FOyu#6N zg7u;aLgwr!LkAIkxofVBX#h#Vq68V=G=KOpidIn0d;&Juu>t%Gob^Y)q3~Byjfkn+ zSBANgxX|BoYrgWl?VKI{7Aga3_v{y*PB{wDkTr~U5V zhzS2z-1fhT2{C~yo{w=CU()LT>_>bt(uh;zHL;lHQ_-_Cn zBj?xm@yByYj)wHN12&kRnc5$UfNXlwx6aYLO($?IUk^qBb_p55qiRS6aXB}}<|Q9@ zq@wHf%+q*LI5Y_;qEd(AR8Bt!$O`kR6UZ_^3(PQtVxjF?K)5^|#-A)s<+^)vI^aK6a6Zv%e9wfoTC_cr(h4kci zLSGFOmK+^jbnlpQzr3sA#8$%ynvqn?u5@ornQ3ovX7E;^S1H2N%5q_mfkrE3&W*s% zajIZ(sz+c0Dno7tjg&Qt0rC zsB}eju`EM6nN;y&k{BeR7un2rU!8?=MDfA~A-8`skjjQAUj@GYTwi|bxlKFZR0+=g zng6@4NrnO{C053#j$F&O=^km=ZBDj=#4$WtKZ*w8W>-lHty+Vm(h9*o zecj#Ro+|d2o2L5USA>kc>O!jp!76R>Y@O&13qx4e>2;h6m7n3XNt*fLitOC2p1HGh z+ld(i`YrdlEn{?Hgbtkzv}0oDZdyV>zUz4N5XB@_p_!>9r(q?pvINNYE}9#Xc#FzH z{K066UC|%qqh9n(}Wf zh4+A$9+uF*fVT^3IB+jTMA4ng5LqNEqbE5s!C5G*mI(n!GGVZ3MSbHb)?r&txA3a`9gbcA!~(0s=h)r$V0~zF zBp;t5LJ$XQ;#kB$GY-vmmI=c|>{FA_(DW(=u$bH&VQswLHFR~GQ|MTP0@`;fuht(Q zZHzoqFF2|Q%r&4lrKGz$j4+YlL@eF5z?21|f+%3_DY~?|dgSE|ilUIzEmDRCB%K4G z`@$S$W)Wd$5oHUAu?mP2_7eu_&a}~rK*9yBb$(T^@t_t@V;XUJ1YYr%lv}bC&7Cm^ z$8UTnk>_LvW5bdbIFUz$tq!BCXN?Q|KA@zQj7OLuAQY4U0LDZ$5(@Q*vZYx@`fee1 zA74nMHKjj&YT|Vukh{|cjBr_~@OUbx?u0&gelRVWg_zA~IV4q;XNW>r}>D~h;+DnZDJAQNRBKvILSR9H&alqq|&!NlTp@1C@Sry4?y;6D&}#WQjzfD1$e-f4=X_< zsgFD3=u^)GzUqG)H!uK6at{syZ@B%w*16Y|PjF4dpUsEm7myr{aFwFfBsv^KRl`ll z2XpCP^lat~T`-m&O7rBG8RfI3K(Ls)Vb@l}AR}HUVmMBRFfApcK!OSeO;405Oa#iF zA>pZs-iBuiphfCh#mJ@T5u1Lhffv7J(CyE4Ai6$M|t=^m*g7-Gz)GjCk~m^Q>=B3?G#Xp{A!qTLU4yF*6_ zh8SWe0P(NCd@mN2Pq4Jjmu34p+(@uaFDxX6WnrL=s8=qN8|nKgWpAIuJZc9A#RmG{ zF&_TdWvIUtHYv(hrICK0iF;D&WQJruLQXCP@M6dif}5V`-D$3EG9yHtmRpFJ10LV=wJIN z{;FHzk3i>7sRe%kI)5F`d|5QU%47Z(Px)s!^H)3MtMI0>RyGS8DQWOYmt6YnKMkOJySipN zeNN7SJ7bvW$nX>EsMVVaFgj;Wgw_@~z+3rsKEMpch3aS|Df0c!FK>a+hlN5fa6iy& z7vMb)gd94Vrd29{#+oKA4t6NO>k=_F5=?leugzP}!>BLSrwzN~jBxpcjV;@@l65n< z;f8+u&`qgRYe*4FlF$-|dON0Z31l`d;Q-pC6+=CTrF zxQBgq5zW1o7#2P|HQuIfLj?SxlJbP!bcGAefqypQ5sNJ|osRdK~unRnje zyk2rBFW1qso$T z4$BPA^}G}P96?$a5*gDPu6zud0@xx6!IDX+r}YiT{1TrLvM|=Rx>O;e0|jJ0c#U&U_SG&R9P-F3 ztYHs(-1oY7G+ghZD_?g7WWgw(^9fz#n==~M@P;#8uc*EJi6O%sH8)W!H4lTAy6~2b zHNhc9r~-|WMMDbv(Km0d!7?Zqi)r2ZV&tW%8oXKH`52|r3^k?tOos)xM`>w1U<^CB z3=_?<+ycx%0m8M4iu*g^&eoPiZ-uMQ;Su8oh5;b)BhHIW);i#CUfeOeC24lIr_=Ss zPZmFVsEWXVYC{VnUN`P`spwT-T z^6mPh;{+*O3mfQ}%ent=TZ z)&tR}WEF`&WI1O?d(B%2QR2BSGnYNarsa-FUrvP&Ek@}#s6f;?@8I}h(})%Q^?Pb9 z4N}T4xoi${1yQ)Zo-tE(W0`Bxy@-gQTdTpa?vfWk7wqZtok_ZEL-zk!oG?W3?COrx zhQl^(jKBdjXwS}eABa15=gr2;O>e-`D{aKL2ja3dao(vewIy8=FAEJ`xFT0B;O%DH z4IPf-%=f(SQi9Y|Y)zvuuItZMiq(unHu>gPwY8*dam))WwRTi&!g=9z&+{yTn(o!0>7e;BxgC+rHYZ4I|&>q&C$+ z?e}6O?EBj#Ij}V<<^k;UGDo+MuAtkX2RZIRr{* z7))@$EV*8QTd{C^^nnH###9MdLSQ3ugo)f*Pn{)-V$1_2I3|=F;UEG8%0LO8{eg)% zAw>p|{9uMvP)7xduHmEz#?vh|yx}17tCr;f_FN=~cf~y5B0-+hKKvz4n3HG4yh)0l zPTr7x;`_|tOqTX3`68YnF+jler+#y~CBoNT0)T3z;DK3P2OLSS4n>g?1XMg?p|#;T zON6WKAZf$oR-Vh)B-MD@D1V|glDm!s*am({>prQqUcrOiVxr9|{WN;|25iqhf)FL_ zS}aU@cn!741-p7PY4}P4DYP(&lGYx6NjQR$1gABdMBWtJl7)PNLb~tC{tIyMN7d(l z2oC-v%lvP$^k^0*$MmL;`P{l^tIyp{TyMNW~0K_8L%k3IH5Psg8B zf&A^`OXDP-I;q1I>-rzgsHI|NoQ&qeMq_oP2zuRHSxetOmaeYZ>xmH1rw%{r+Pxmc zDpfJlGRD=ixOwE!HM3DFr`%kLw^^PJ6l#f+(gwQp#M`Hb&B8;75U1f=+IOl|34QMQ z5=!h^6*pWAeV1y94ITztepSJXJRL44p!96tb>Vkgw+QC%R2M@Wba!7_?WpXPy&8a@ zg&!rfvf}!GgbZ(YbW{!ye&`a^e6GI(MTskom}WLeZ5$C3)qwB7pGlZY;b;Y**M3(? zsmh)%!Z@XMu5{dmjXQROpx)%zT(crN$Y|=i%5KHQ42@GKiSNr;f~OuDtPx{T(ilzW8C2hI!3Ca#eqO@#^F;h4XNZl9 zot&|K=y}#4-*tYz8!G5&DJiP%+%{6eoU&aRT_E^>d$4L6aDx>0B=50an07 z6U3|M$M-|<%^haICj8TUSj1U*?M`tmx-RGwKQL}R`Z90f(RXBy7pmw99rPb_P$QC1 zZV|GcEW(B8lkubLD3xm+R{}|02uh438@BW~u?|b1R&K`c_ z_^oGS894G|!wwEoG919}QsUQZqY<0v;V7ycj`U@OKO3<6-r=p1Cwiivo(B|P=5F;J zRgm5fZfR3K-!g79bJ*1DWg6qXnA~!OH@xNB*D0u=*B$sYVkk83Mv0ipu;z#g`O(u# zHL2hnR;n-RoYHk7^}VYceL5au!tapc=FIY#_S-4Y{rI%yf zO5Vr4hfT51OFw`Escpf}yu>@R$o)=$E;3cuPlGa{H|{Q zXQ9_+n~GfUS~Kub|*??OtdpfdswTl?yBj^gSrF zv!;xdUqPoVpry-YW(M6~Ta{cJ2}4yPu>yq0H>1}>Yjm9`Q~Y%Zd-a%LT@Tu*&l z@_%~boG9Bz%gX&wXbKm)Y|>8X!DG*J5p_Cv?yRmXXo*9rhKqFT@r{$^A1#UNi8$CD zNx{|iJ;Gcg&oyk~dV=}>^A0X9GUdXfy%m38>R|E~oX+!FkyWnp!|r7C4foYE6S58B z`770aBb%3zaydW1TC9+LG%xwB2_^8X`HznMegwN;iP61*;408B zm9s%Y3jm-b%9BD9xi{uVV;ryrIIQeZguW z8)P+pi~i<$iOG1mdl81!&~fC=V0*r|zrN%i;j$kc-{Yr`1|@8Sl!u+jjt@F6yFbnq zWhXT6zK0Tl-T=Z|XVLG`ZkLL#dF$tf6I z3w!QBct|NCSnT+@OOBY|w6TGV)DZ(2Iqyj5Du6TrDIL!AjsS;W&P7KNiKjc%kxgm} zJBBY9{K;&QZf~s)D=PsQK}E}v0dR$zyqzu?Mak{8QleZ8KE5i5WraP8ioxOD{IJ+z zO~wB>a8XpMK5-W=9M&DD2H7lA7ndC#a#M>~G*W&#ILXHr=SMFgFgHRAV7aN3ZfrG2 zy1BZGEz`jB-8-Zfe2NEshzSKw*K8pN@uo|vkOaNwol`zGo!Z1n#-8ROBCwd7Vlj4@ zM^q0u`E_n(EA_HO1V8A0ZZpo~EZ+&tzPNSENWLX&fWk##1xFTsbQNS8E<0%qE%Wh% zuxrehAG*P?O6VR*B}N_!{E{$u1>osWGn)go%S730F4eIH_B&O)>%+oV9^BLBaR=RfT3e|~HL!~BB<@-dJK(wvH{ALsFY8zV;>aoWa_pl3MUR`ALhF-L&#A6RE%5+D~a31EbO-j zcAhDL9oIy*pIX`J{gHUaBx~B`?9|)x>M|9wHdDuRUzNM@I;;{Pt&|?D5+wWQH)648 zf3;}PGo@al(Ntd>!oxqz%lpY^VD*@M%vML4F46OC{s!VMACq%G;6dZNUHGc#t|U8Rw_UlMeoRlvme zD28;u>j7V8m9hx@a(BJa4>FunVfBY4JIw9%luud(8Uixom_sQ~n&gL4&{oT(iw(FE z$P_-7VLWxH95z}Cs|8Y+I(sf%aoL9ZU%S!T-Po?JbEp2 z!af`aBb4LZR%o>hi`1=0_-DYh}BklX8|vtYK@x3FYrqzCCDJ>su9Qf+_HNW=G1uU8 zY$AVj_vu&qF3Q>6-Rmw&WR1*(9HY6Ra#`)aC-NWUE>4Cv0>hj(++%!%JVSGUR}mU* zt%w6yt}RUr28f$%q&&dwF1^itlmwjYa>_8`dG8fl%U4-Eg z>llQ5hZE+h(@3MUo?`g`S}AZPE^HL4Nq!P)iG1Gyad+ZM?-~zcKG^ka%=T+pL%#u4 zMTCFtSi}UjGu~?R8h3)<<7ag`#Y~$+eM)_H0C@LI&o`||J5OAG8;SyTJj`RFZ1!Ux zw|bnUi0mScsmQQhS4ugrP<$dNYa`8E88Tn=Zvv}+O=+@jhG7(b4U#kkmOw9-Ovkz+ zND%Y4R+49J8z(W1yZOgT-?($zgSo{h`R}?5S8~gu4Y&?WY1HL>%W!#W$js!2=^#Jp z9Sl+82|Q8gl>rkiDoV%^XjL&IjO7%^FUsgtsKz1^&RJrPDq9y{-W??+LS1_udP6_g z+=Wqd*K4Y!WmYcl?6!0^i7pX~BXIhwkBA{;ISnD`JabNwBTRs$2$5mDaGf(;JaMy9 zZZs7obX_BP(7-Q&eTU8Y!rL%`t}+4H>_1-zn7m-a+GgXO7aQ@ojZXTy>sYVFQT;mK zymnBxzJtdVMWru9{nQ2NY7T$h7WfGvB*NF?TWQ!jw9jwe&ZjVF-;ymUO`{U?Y1RG% z*lM?cUahY=pohn7wizh#_+EXECzE>M*DuT=35pZyCFR9|-#?6!x*FnN zu~7i;a(KPF<;617NeM$oThqjR`d zaomwf8abxPa$=LbkE7jfE_GP&n7gEIv4$J$mh!4e$38<}BCP_K4R&LHNLkBcEIuwm zOf(+1sD4vLO~N_3{qDitzK4wSDo2T&DxK&Y#_s8kZ=p0G-bc(5$M$kwVrNJt5mZX{ za&ctac9nGr_DqB%!cZA8{?K)+VeL5($qGpCBll#(G*;}ndkqo?Fh@YAjBe_gPxq40 z;Xq6{XbrAr7p%S=a}6ihSe_ZaG#e6c{b8?Z=(QFaRs?Y|>WR(VUV4w5MWmz5>a32< zBq!xK2TectR8D^5Pmv*L>i!9I5G(CNKTs_8+-7yNU%{z&6ax24RfO1V&w)nlyJOSX z&hnHf9r1cusmUFR;iiQUrwU~`c zt;rz3@SQqHO@C`%U@bI0N(^T^W24p)9307E4nIinTIiDJMmz%9p_uuiouhu737tGh zZXe`TE^iT(F=+Ili0aj=ipaDXlmTc3+P%d{i${JuG!#Mw?H%$++pS#BC9UD9wbakg z_q0_J1yec%2^mFq4kJ%cnBj-rdb6XBj?Boc_fH3bw1)b$lwi2U_nooTb~?bYQeQeW zbjFg{o6lf^RYYTn7FLi{1MtzG-=%+p%JJ*{T|V*We%Zg*0{(N#|7Vcp@BM)Pe2YIo zmj5KS>3`uG{+|q|zZTo{|A;KUK+``8SpN)j{&YF{cPs=e>mTdhJ=VK5cI>}kj^C4h z!B=>+#tr*YvoA)A5q3*BktasHOMnq&B!i|Csi)=R%2iyE%~;9&VKIfm!ePSG)|NXy z<^n~iKg&D~QaPEXS>cr1gQ;jyzSPF>*eso5@34H=i*03L-o_I7GdmrrgANntRcYl? z*0*d?%rO+@xh34!1F?if5p_`)T>q-eC*5|rki~khPC1p4{Yr5DIe1;YE&i&E$nZn5 z;=-!vq8hB;F3S~2nr2-^))$7$zXi{pja>MhR1VO?9F%Xo_fUpg9bBwH#!l#NS6gPo z>pm>Ws!!RZMY>xk6guj&Vf(9iAM@Qk99QlT0zwv(B+ZAaseBUMHej#AO~ypHHwQxw zt{d+3iR_u--M(HTvL8P0BxQ9qtNjd6t}8oeu-S|P1`F;@#Kiza3xL57&YH?HYI1H1 zO>hJh1}QGhXR}r9L^NxgZrue$mRpV-OQr{_awDFd>Tx!|-$q@eNAT;ty1a$Oa-^~; zxprP)`-ta;cT-PA;vg{+sh_lc$36~ZbsESFNk}$-c4X+36g{OaeeaNKi=v;!G&wIg zAKxU}r89)sYuSEFh#ndumWUaG(+m3mIcR3>ki>)@2-1yL>W`JC6zZtHgEhOwe`>Y> zzxrL^3M$@`lh2P-YK5KEKZHRPl5M_YbacRn0r2!{8)uCD6gb6)W6ez77n;>1lZgW= zW7~P!yNvm>S=*%m0~^Z6RW^zkJ30>k4VmYT<9reG$Vf~Le^|i?D>TACbYBnTl;KvP zUB>5zj7y1RVKYB6AjFb^mfe)6&BI zovn%1Y$ydgXaO@hOW7!${z-|hCeVTFGKhg8JPYS%NQI)sCVDN2sXGcUxpH0DMM$2U zzd;@C7A8TJs<9|2S!Y+-so$deNI_a>&G|=$>|Ezsf$K6I$B6uO2r|qgG-N8&DbBX> zW{#tp352FHBvK&f`V+c@E9!=Kfy=7S7=ZRqE`&-Ixaiqi29{NOYEIZ?b)*s{m|WzszkMyQ?K)6Ar=Ni3V|DmZRVNLPw8(gm z)Rt<1c*&ki_kg`X5rnb)HrygSV=fgeQ9YlXC)G@p=v0QQl9>5o>ikI5E@>JSd$XPn z0AW*XjXj{`aI~8yN5@Gg36-{cpNd_J&CDr)XzIbz3$;*3JW}WHxhqs0CE%aET~=`R zt%M|WbbP4JE*mq;YY_1pjO0UODI^hU8}Is@KnU?Iiw`byaj$NQr4c6iH3Vvi5;wV?$OMO9Gx)5n)h?kc?MV1oW&dR%A0CV`(1c`ePIDJBP*Hg~5}P`G5tc z=^^f2nEjxkkS>yUX(vixXg0s+{YkL_V?&~K5owRMgyetUGBERGz;FPis3>)5qzLEc z&j#gIex9aPj>&V<080s`DUU}2^>5jzujDP11&DgQA;M|;HI-~gPzVKbSgMGpRmunI zyTO?k1JMC9yP-53d6zNixC31R$$@0MoD)n207;QNXC-k;zATddMvUbb#(B`15Act? z$dB0LE9VEB8$9R(1BWFhgB`TFBIO}g@s7V&NcjXrRpt78>{9l=ZKM?tU8m@nxHuw@cez6k&cjMNbjILmCmlYk?aSC5Q?T*(Nk}y}V|h<|1~6^9~Y{LiZER0*9M4 z(yNwM$f-7O_wc`cz$?x8T*NXoKCLhtdQ_+9X&zbGznp(8ofp1lIC}ox`;f<&FbB(% z7B`lqt#VYKAZG26GTU57OR>cyZDxhQ-It)7|YRaH{6|r#!Qo^p)8+!;>wU z#!Tnf(Tz3!>EC{jY(J=Y*A{eS7IoI!PA^W)OV(a=ex2%vHtJaTIO?zRyEmKIky(>! zmqTNTk~5`y%P~2u^?MN=el1*z*tXowyphU>4QPe?t7P;x3U!%|p|PB6Qg86XoNcH= zYA$N!o#ke;g*CiKgTfb~5ynqc5ai3*GedglYJf8wP5WSD_MJZruDl%W;q_W;fnsZ7Th}q_d2ea0KbqAK z%QsbLF8#dlTCmyYuJuR8UtYOky@Z6%yWX#OxbX69Zi~eywLZ|*;m*3J>UneLkh1T2 zAI&;i*!QdN*7y6k^r36#okl7yFlUy0jJe@mbAL;e!HLGqw()C^YiRG)s>#n7X2Y3F zfC&aG3boYSSOJK2>OtkibNUGzFq77QY|FBLXu_SBBq^|>VJ#1&@!L|E^nUN)%W1%& zzLhiMxcaRULQKy#&7*@Rr})jV4<{FCau1hnU5X&!D-%C(nlF%!OP$Ud5Iq;t8Jvvr zCo)p83MA66EV#&f*+mY%N&jqO!~-n1CY4m7c;cewSn9gg5S1f@>QPtQvdK~ong$OjS|mU)LI`Da6yPEG0t8rD7JULF70B?604c;c&%U03;Us3b~E8ra_% z<#cEji`JgtBomVs{HTXO1Q|4DJ(wC}s`k<>!@+DR#LirSfP_-$nkXefR}5ewqYgO; zx$`1-CJIjPdR?rl)ZM){-yNw*>(ggq-@JUiJIOA1?10vf9AMlW7MgMB$ni9)=D_pMitPr_PIOR7 znL^qBs+XwMmHPD4zGWilf)F$~Y-p~%5p|N3fQZH97DcIWlldmGZ&{&&L|A0#jFO!c z{9Zq4+Yf_{Cv>XPef;txT4@21dm)mr_HDpLzw9*4)Y)5ABQMz4Np=7nBL=&bYJ5KZ>l{sRn`^F_0+yyG z@#aCB>{p{0*`v7jm5%sJDXe@K$u07NQ4K_)kK;WgiCa&a(d*W(;{F6Y@jUm=J!6KA z?(R3Rr>~4i(teOEFf2~xq~x;zU-TVwO0fVV`0-CJVGSn=Mz+x-D6GBsL_2d`yrKEX z$UT6mPC?-I*07lyWSvwomFQ&?mJMc1A?&0PkM zMq9oCXP3 zg)yE1m2DMIb^D`iXkB}l=xLy-gIobzz6dc@MJ-ggKotXF!3z!jWpdl+?Qu#gqL;l3 z3~TFSsU?>Dn2-6>0J^ft<%N)V(9vT;)--FQMe4N0Awoqv`Gq8^szU}L+4&^yBJ#E> zE$as&FR#qA46kudRtqQ`sCEnf0xs`Psx@4^n?PtqBOAC-Ut#&NzLkhjp`a;aTe&y} zM?p{r0{R8+D-2)^TdZG*CEiepLW8wG5<{uWl8+teMy0M|A`0d&go;%Ti#IZbk4y0F zGvCbO8+xhHpsW>^x@6SievcfxNT9>kQY|rRH6Q>#lu#25KTWN)#C2F1LFk7ON#f1h zAK24@d;$d3Bv<&^sQrv0NaF)ZY`@+e_tFwM*0pidwFy&l8Mg`-YLrg;ESROyV`I6a zELan)$Dt_ZD)Te5d5k$E5S*4-UgczE`KElz#*&ofcyObZ;;_N4ioL~=hh=xc_|aa7 zJv#k@(l39#?^vO79iG#ciDC1gS2x9kbdUg);nx<5e9KK<6#t=klYP>d%0#)WwSsE> zghhI)8C>&}Fqwbf+AOH6yx+=tz8ETBvb>EHi?!rM{uiE}y4xx$%_Z z*-h`kk3&G&bFg*b7aJRrrok3$Bbob!qU)8}vSKp5yq3 z6fHbSw3m7g`0p@^IGiG0qm1kEf*+7Pf`pLPoCq8bC<7~S9TbJ{&W?a{6aCWOu?d{* zip)dU&)a_B^T@Lp8MZG1Zca|V7e7YGl^96hEfo)h1J?p~xd6GsRF*SuoEQhahevNc zf$IVc8NjWGRWX7=>^b$qmvC z!$L)+=v9Tp%_CA^@D(9*Y=J2)I%o)~mR*A;y0VC_vlLPSwbz9{LEn0$8c)=Z9uF6J zo+RTcKS6Z?_VespW284tFIag4eQFUz^!QK+SD4F; zTt1KK>cx7;QjhtzVDU7S<3b=R`$|y%?Jd?>y9lGvrtd$9198dV_3~XIjOjW{nUghP zs)$v($Q-XLipnr2>KfbZ_t)6!hvszX#thli55;3HnHbc4JM4RCRtR-RJCE)LgLJHX z(BCrFNk3#V6Ohs$Y;AP(nvrxyR}%cla^~TeB0>xe3duop9SAx|gLLOqVNZXo&nCcT z+O8ARxLK;k(8+}BdZ5CDi7G|cg^AD+1OM@1e2A*A44SGqWo8g_Z^Rb9OHuMFVP?DkJP zJp4SS*o66|pQ6}ZNl1Syj}6Q&4&#On94}!X2XJ7^eeP-(7qIU!59-mFRO{(z(z}AI zz*jv83i@87^1j^s_Qwz^&F~^~wS`BR&=B1qcTh>uPkAbch_LxE~bp1bkVheyX*?BNE(~TqLWt=J-I{zPG@GRm_H?-ws2IekM&z z^X+&-R$EQnqtv10s24ZBTx0Nuc z>u>eqtsItikns((A_h#NtlSs6&C$Qz`K^7{$?ckX)Zb?VOFPcmm3aWw!7ab%9cAu| z`z^8h`wC6-yKU;9ncvKRkM0<#T^+6J%unDxdq~CRnYp z^*3hKf9CJZs-|C*Ng!{Pc9d&hfF1Ogh!q$`Q!->-iD>O&zSqy4hbmQxD{_TMKqg`I z!1vw5ohQNZ894(XPVSVZ{wM?&WSEiO~YSE>KeeLw=3>qhAY7d4=v}uYb z)E_c?!fzY4=?sqSJT=ueYD#})^?1*O>d}kfv9r;B*on*KWmZ^XuS+v;{RB>w^;}xs zD2WnZVmH;ddppwK^@4I1I#zA3aXWL;u8lZC0(o}$jcs8;hSdXY-RdZ60(z&$sWUgv ztj)oIy09Jpn`eH?W~iuPE#yR;A=tHDA}6(1#sQ#bpG6S%s5!FTtV&*@{98Q*u!|M$ zT)B&1U;s6`bb@+B<+q|Ca-0=jfN~w=tq#kxK(z2PxHSF+AVK(&m5{rNO*UO@NnpM` z^vHR!InOL46qH8qArLMAC*TIR3yS%=vpt|CU}3PedCDW)T_wmPlcCMyGpwuPRI(jd zM+aRvmNtP$Pu=ggv~rehe3cTRi3e9}wBP%^?b>dy_4`6l`TSkQp)0YjXg8%5-dM^> z0}xuE6I4_n@H~K-lRlHy?F|a#3B<7`px$UsBuYZFg}@*BIELqbXhj~>6i1RhH``Ud zx*($PbmEew&J*PV?067ALVNWpq+CoQABtOY9w2D`auXL<+X7>B2c*yu-E;-1t_PDfhliPjvDd>8_PoS2x}TIWGed zulvSiHgX#tvIq&XkM}k~fP9FuyO@Ri*X#A9Whr$t{;LW33aTOr` zhP!v7Y~d0w2yZyY7dIRUc;wK8kdqhkeSiu0^4xj%M}{ZNH>qGW2A&Y{HwrxXXT^c$ zc_XN?v|raXI)Z?DS&9oV(bO#GN>pIZO`oNPtG1bsPyWY|;^h+$nNe6(u=!GaREXY? zky7vU3&Daw1Wh+G1Vkm0_V!XgoGZPwpRyP~%ikNqlQEbKDHI*3k}1NZP!6dG_;?Rr zm>12aDlQq%&^4a-W~MrD*c@T(La8b>+0lI)H)e6xU~-XAf6V$oq9Px;gqCx6i6xrC zpUV)cN&&h?``m&8zDT@)(?e8$xO)f&*n~>-Vt_Pi6&>scM?o1pH`|Q%U?{{1(}xK^ z1~990-3Tx_#he|J5JwE?`5h3eJ_il)9gc!0PLJbHS0T%%I^>quzDF31 z8xPT-EFUX0=MDGqo>$l21GbixYYR1rApHRDXM9Hbjw+!RzZe&jr6klnw8d<<@jH-@ z9e{rT01qk|!=|7GLM^WeK4@7gf|yl-ApJRY^i8pU5^XOMHA}jIq7NAu%ot|v%$5Sr z#L%3UyeP9NJN^|Z?;SNx=n0Z?$X`cMpayJ~D($ZEy4K64_6- zLw?95;;!C*b|fE=H92cEX7(j0l{xZ!teH;P`MO zeL9)dA|Knu2F|0_5-R!hwUf8k;ra(W&*_LeFb^ToDEkGFhRqvYoz_K#!n4l>u>pYs zt~^ZHM38&M+AIN!2#gwD!3opq_evvFQ2YavwbZjt`UeSY@FM7Rx>Ke-b+P%&g8>1p zon(AVqsena8Sn4{Jg^GpCv0+GVdgVzu@+)Rub3J8={j0VVvh5fot?zqOKg7K9aieo z)iPeXUyY(1gf8qH7+C-S6Tc0>Y1e4R%Qq7os@t!hH^bSRaIe1O;G=&6p1g6k{EIRE zM4#uu?bMmBfr>jB&PJe$%1c#k&-}c7x}ral ziQLEYlTd8l(Dl}}J2P{>Il9Hy|NL<>NkClQl(n~(Z86kz13UU!V_BXrn*)w&9BkDwN&}qQB5yVul-ivao4+b`D#QbawFb+(rWPzw|8I%Z9w}z z+tIb9vL~xKTP`I4PvBu-GWQh$`AAPdMl@8j3C@{ZTL@dxVz)Usf3f#tkK$rXal;uC zx{MhPqDi)!M%~Xtvo!!q;AyirEvwky0VUw)mYpMD*3LsG$BE&4)I2+8I;64$6knEd zSOna;ZD4yC`idcMo}>xNf*r3IR3)ZxVuarfV-Jp_kold(k~NJ(oXIt(z#A+MM3Hwa zrE8Jn71DObq~gM**!fT+K3!h7uUJ5shnN`(c6c-jieiCT^h0AMyGKiiBmuLL*vxik z@fl{C1oPXL)#K?}Z*F%JQ67L8rC8mLj8ha$_GP>WW&k0gAPSPhVm5(Yn|{imGSPt9 zT;|Rlw`A@Xr5K*ds0A-DXyJOTmm#P+db7R^@}-jrM=O7NWiFz?fiVCp(&FS16k}D1 zAPSxcVxUJK*i?MMAr2b?6kDi#y&&+<2&uJeZ#dR@y0!w5kdWky%LEb6`4~3PX6g7Q(!+Pl=$I&@#wN5|j$;W~5{`*S~A5D!UBLS*+nOg-fdoghVoi zuzId50e=4<+RiaZv~JO^ZQHhO+qP}nwr$(CZQIsq^K_p!bCOgg_p7}3>LykBzklx9 zwbtBY%o)O1F#1KvmFtLMaFFS1#UHad-yA-Qu~>|GCu?yRYH@_yi>>`0IT1OuZ7t)` zs>SzWKgjuJJ2t^p1f3GdCh&-eoo#80kY5H1cd%9{Juq8WEemev20FJlzkAI#ckgy? zG{;HrXWOP4kISJ+uBswzLLz&)hznbZ!V4?72Z*L55*U`NJFw>3e)IWveA!?616Z$j zZ>MgE?IU2IZ#VU(YjY*~Y!6!JuFcQK_UqEFwf0VZ@_v@;k0W|t*n;5Zpi^Tg!-;>| z`17MR_vd*&Fm-r?s2551)EH(C$G{E!2qVBiTUV_Xzk@>$u2#4}#Y6pVbS^N@ga$W~ z*`|GSVBiTX2-3b*p5yf>23mi+w_3Hsb$<3(U%xveO1q#^f8EcM5j-}{)LavF4`>D2 zNnQ0&``z88DuBOc@FQ~r0p6bm<@p+!3U&qjHr6d@d{zWOHf{bU3%7yZQv6-EcGQ8@ zcS>xstwkqfKEI0Y@u#k>HZ{~68GNSgO+u5sTG|~A6lnwj@Ooi;_~wr#@UGwjj8tIO z-~|ABkeA?v4Rd*U4-Z%My_VAQA8rh$j`Q2g?ArXN=b_lt7lM1g70Hzb$QiMX*USm9 zK^6m2w}8Fjoujpzn!4Q-=yLbmpM$6jb^@xThNEzIIkqiv`_EmM-bur=`Er+Nl(SS^qV#L{g&9!=%p`oRtGc9^f`lp*KRLG`^#G1*F|~dGt{3=Jhi7X zD(~Tg6DYYr-vPHbMDz9ocipyj)_`uW9N{U~-m0LTRXY7g80*^|%xSiaz;W45Jdv3! zM+xd)+cqK((asah@S4+yy2~mIAa5VA@HVYmG}Va^tbFj)@6~N;Gz$1%-kYt#H%I~Y z_#Zjciq~6bMm${Gw9N?Y7LimdPk5wq18pbya!W~%a3!Ud>x9C@WF)S{m05w0U}6CF zBq@;U)mnnCuAl zf)Gc8)_)>n6I{%Yne#*>Epy@tNzxexN-^MP2#?$jxdmnLM&JOTNE8^ZjKCrG1oU9A z=XX$+637uEP4Wf5ayStnMkR5;<8Z(m0Yzebqf(6*b%+VhcLZFh$(*3V0-6HI(*d7< zO#VQ|O0orUg+nnqgB&$j#2J<+!26~?&7j20&~t_fbb$_eW(i!9_{JayB!e6ccp)QO z@SHK7B|xxomnc@T!Z1NXbxvby856iODzAc*5ts)&(k*7WlC=g|B1lKIEKyFn4DrOo z%9@3%Dl)mv^vBYV^|+>q2J}gyTAT7sGi6ccn^gKHi4yWUAx(e~9jW;A&6V?|vh)myrG~_3LAZ7GDg8{NKM92L&1f~Hld?cP-bt~lV&z=N6PZlSRrs+6;vfw z?*}}MfP?11H$Z?_1U*{L%n71m*sR(Bt^3tutdk$Q2vLmb-rJOX3M+#P;XoE;ZRoEo zerDD8I|=5^BvduSRK7RGiRE2b_)Ra419-nJdl&_?9G)RaNIiw*iRE5c%qhs*E||EC zg}5lCug=lmm{TASJuv%Ee_#f8zA$r9ojS(005lpFgtIg}-XSz>du%-pww2uum$Wcn z;$)C%N`iOCq5ycwC93g?CawW7rR059*DC>X*|rAdI9-VA1{F`@ZTd{gC3h5;B>x>q z^96)QqAhg2mtIzjokbH)`rKL0762O>sK75DM&m z#viUb^JF0uo(CNzs6}FU?`g{^%Y_i-BTwUu2W>JUIP)Qj=0W?wFN&O1KDbC|QmtgX znC&EB5Su!D(9}hcZ5HgFB`3aqa$ocq1}qbxv+=Ef3yq(f=l%n%*QKGhJ%vVZFbYb^ zw$`)p*5_oB4_=J0e(hriU@|0D%68mmTLTDGe0ZhWN6=9pjks<}C6v0{r(Qh;4@gXlns=X&70?3|S78`CSG`x^`sh-}RN}oP& z*nQjYtAM@`VmB<@tGNc9kj0_?`(^wc?T!4zBn*W=bWBw!t1rvm8(OBh@8(dytIBD( zC!Hx*B2c$+9CmLiw3)Dtpua6~#O~w-qwKQ5KSE=pj}8wDypRiJ{4MsguO8Y_o{miWWhP=qios;Es6AlqwY5><<-5+& zgOfL**E?W7d$rEqd!nF!(FJ!`t@%%%)?F5bvXN`Mj*qNa^F}ia{&0n&$>$;VODk+;74QQyW1*{rbiy75~1c8dA z@!bJI7Ri@$g=YucP$Br7VgX8(#(1fA-wjHKxYvYt_ zt1h-Q8o&CsViCVgM=B#z%Vran<7`VJPYy-W3ED6S17R#{`PD&$yh@yMUU!a5G_tQn>Dreg=v(d=v zQLXG==L&O4oiwv*{*kr4$jNOG#*C~Ij*y&L7gsj;#D|uYP>{Jg%fX)_p`kQVte8xD zoCY$=uS-+aPNXawakrV4l;A12<(xT`PMZB9S>^4T{&Q%(q$iBd4EF^h{H=0gD<1a>)FM@}V5l zz)1H^?eVlvI7xvZ|HOZY{p2*{Eq_MRXEPzP_z@7y>f5!OQ4>1%4R9_|rxNYhACgrW zQiHO+4Y0+7nvFoX`+CaJqMSx-T3T4xlb@j^lIbYW91cO}Ga;8q>|oC7cC({6{-p;D z7)c<47pvPpAqGjMw{iI_ozoW3x`rJ$`xSF9oN%R z1wtTSDc#`cMG3;JH=?(wSxma1m3;D-u>hws!Swh~>iB~VrC(W{-ZTZ%PEBMF5Gix1 z;~E;)qezHS@>58Y2A-*?rGql%Q%GragfAgYA~7zqP`x#|((>y0R9$N5$1W{Jz=KCk zFY8ITOjKM1Oju+^&pvEQ{+h2qX#)>g_HOFrq4i{ zOmF@#i<4?f%`9|d9Q*D>Lh{uh#()f_0%Nb`6(fGsF<$7ye^L~_=isx`5LTrja8nT$ zjME(j7y{snex=k&;r|#fCI%>!9obys07}}s4iLlmtniEE`rp}4K#&Yc#qTv6ZfK(u zQ49qvt?)`8YH1NB#e1rQQES?*H%6*8e;AXa9GJY8D2D ze~M!#*xPnHV^6#KjqxZ(jX57O+b9-T;EoFImNo^TIQ$FUDI;F#DigZ;4^O=2a|t*~ z!>Kl{qJcvJ>CX9_FWG&bPsi;0kgblL%R2UYy0#sNoa}bSP`S{P?DcNh>ze-er>pP` ziQ>rm`cB5p^}`Z9pw67hcE!%bmTz>OIhM&c*&|*!OPll@567F;OY&mCRjvg(jhpYY4z_kjYQ+{JVsGswnN78hFmqQ2QdK_ZdDYJB*6)0G22UIXp z94nZHU)3&i(4Czooi0&sZ_Y*9H8ga7Lblqt^v>UBA0; ztMZ}AvaQ5ty9V`Bzf^ReI9+?qZee{7Zz`hyurpYp%ghOTtLpaOTy7i7 zEB9xmE%n*}MTjPfAlY@>cGq26Ub%7nY}5%|5YHsAeF%FAUo;tc7J9&YDA8qt1~lzZ z$~FYihMH~OC2Jo^+@qLrq{gDxwvE4kf%;wZ>uMwd)}$nFzNo76%I@K)!@sg3`e7;{ z708_GfMWs-EI|qZKm}wEd^wx#VnzjBJ~V_Bu~eotLPygq$k z@b)v#Z0b>@wZ7sbCGM@M{#w+FsOcTj*Sh6?HVsFvr@p+~{<_d;mxU_R1UL)F4p84L z2Lw}>28_Xm3uu53-GDKmUk4aV2H;lPE!;{xNa&d$ogwamTt#Qt!;08Tz;iz z)N#nrv%bun-x-&Ii5y(7F=tov}Be#|5V?|I5aB0?v53dVziFZi) zuOuP(Fg*~p`yJvG(DPd>ddOPd{T^$0S7kg!MzRy-!2kuxwUt>`n;Egq;3kU7)!O3pVXck#V_EE1zgbW%O0COl z?v){1@h?GgK)7i>pTsUI9+gknu;oI>XmWUj5I2FSdkMi9Mr>P299AgTd5^EpgaULi zI#@F>3kiDf!5Lgqo)#8CJ@|z1IA2%S61t{|7Q8Wl;HRfp{*?Ex%&di2v4;?S9fvz#+DD(*GKJwEm1I3*s_Oc4 zbVRj9b51`PXRJHO_3?$feJ8GipFx5vivrl}C-SE9Ff>8rx7i}V+w>RtNp3vfz*0*X zYIQ;<7;SMSZ>|U|LF6aj)t9`ekKYOfhuI9^D0bVW1}mxE?=46Ag^USIn}ZniBQj9E z(plH%th2Iigf=EH>byM_m>W2?;6vwqweBNMW=!&xnL-m=yYQ5dRw8t|Fjx`jOTKE$}{F^O4pLwqV2GN!3O-7f?A~iRhtOd3q2^OwH&4nDS&iYyuuc zdTkQ|s{QXttm5F;I>W0&i<;x{Gps!)fN=Af%$*at?qo*cXM7zZ$-Xx6=JWA@0K8v& zDj(a`$^$e@R7z3Hn|2CG6hw#Jm1qYby{iSlt~K$lsBGS|JIe1zpR!aNV+=l!x&cH3 z88{GujU&OV9d@^RYoNK%E!eVB+Zq^5cS$*E){%q6oFgGbzl$|57m7p}Gq}%wb%!<) z4|V1s@D&@TS~ED&yTaKmU*Gzm)wgpB_pvryOrYeD;~6-Q;y#2>%;Z{+kq?K4ze;6E z92w9ccV@mFCU$lM;Gb3Z5I9?(P*Kw$L5iKuWW}x+EayrSOSHVrl_A#5#V#`_o~+RX z!8)DlGfWzR;3I8-!e9v1WhQUIRHH3G4uFQ9&z#+{3iEbgfxf~GtiYsP1t=!|jt4k% zh?dSn=Th*9(j@CLZ`RAph%Tdw@WP~MmR9N}+v^5KV4XLU5a2z6|$msSk8j=QjZlQJJ&3dBm1H`XL`~MET?CVQx`e8x^B0moQ@t!Okq`?(=n*)S>QV` z^dLZR+35txZrmwS^$@O|j2~6|ZM=wNDmoE6bRztUZEmwYe1lhvwXv}pUUgykg{Px? zeT0#jds2jUfNC?FaeUw(AmJC_auym@+TETU8jpN9Ke#`Q>3X-kYcvXhc z9WHe871MU_*7Cy#=P9BXFwx(;eRmN51PK07Moyp}}Vvmon=*8MakfIq)$AGUp zFsi5^5zFZRn9YK(-0+L?JNOp91G6W{Ar~~N;fg2foVS`w1C1c~=}V0tVw79s;h->I zI1~e_QXukk66w1({(d)PL(l)Z>U2w3BBFa(_u@A8D$tC+m!kNt{FaA?gXjypMaKiW=UO z`wHU;d$>V)$pBu9Z{0ZjfKADXpJQ{vK+zs`kFR?Hm}ejd`3)!&EQH`Tn6!Jyn>@Ce zk6{y47$n7S0gE+$B}V#&#g=sqrLDI}t|g6v1L&9@ZuAw)#Fml+(+#+?f##A(niL%# zgq-Q)LbmqM`|yV+;X$DxSZMeTdgrEPc-OnOWegGjnYm5dH5ZJDfe zY`4Ks(0hZgH24Q+#lJ>^{f>f92LxD6p&IGuL}RSLhfjcR4^-jcFGj5J$zXf+xMa7L zsIsPN8eGd}pxnIEXhakT(vKQ>(2WH?n#MA|DP0SNn??>;;h!4mvI{bzh|Z*FReu_* z8%t*4E)Xm^D>B2n#)J@Ut`%nStf)?cH3c_Ua8I|sVyf$S7cfer3#Zp(boySuwXNFT z=<1zDf{aWqC6O-$X`naFrY#1X6*D&T52y-czadQ!pGfKqwc3+39fQ?^a4S+2gUY-X-BQ(u?-GH1 zl~6u+1x!1%PbyK@L>A?wVoK=;mPW{ADL^uL);JqyYuxgn(LN^d-a1}XNI~4OrG4zW zqcEBcM(9EHDMf&R>nAYJ{!oQz-iIcz)d3?fh4L78bs(kirrRfU1<#I5ZUvObqM~k~ zpSgBm{PD@qegZ?C!4H+ePZMDh6JruH8QxMw>;&476d5|wz?kgJY%N&7yBy2*C9unr zQ#LA86zF65U#l&6d8`n z6yf_&!ft4MW2&wdQu`>cs`subMcyMEka_MK87qhW9Z^-MKW`4tn0VHwB;Y}Y-4SI# zBaY|dT)agaYsJ2lq>Z&oSMs&{+iyJma_wHh$^opD!HrEjI$NaW_{a#v;#%m4cBjJr zSGMCkH693HmNDS3Tq(jJ`3Xtr;z330%CG^2%l2o#m+mke#^Tjk za$ETNYh_JtGLgBA&nB7b(kP~$)cL14O}FdKcz7V0{hypyCAeUbYe1QB#7zsNDHfUo zHl7deBoooIWE?hS&@YEtLmvpeS5D@64o$6ycxwK{Vi+H?ghjM90ddu^J{&p?OBMf& zw24V89X*TyhycrOjpq##Q*jl*RsHgK-4mNCTO} z48j&fRBdPzt(0v0$*8#LzB*!0AM$u03nBcZ!+o3ka8RTf;xFsZW(It5gO`zBbr0EH zr3-|vAL~}u!!ajX6Qsurh_o*H)($)Y#!EdEc`1$D`9>*8vk*Em#ZuEc#w;p^bc~LS zNkNq#XuID$hhV)h!I^BDb)WWSrZHetzEoU?* zmaot506V?D&%Lf08{bpsBs;x5Tj(Z=Rw)%V8@+q>)$y+G?mBwC-Z$X6j)=Q&>IKi6 zu?<9tPAUzBr<;v_v(|Sb0)}DyN6F_Q)!ipnGWb3W;sv6VWP6D+F@~` zY8`Vm!K{ZlnV`M5+-MyvN>qiX3%hKu8aJIF-#dPJlkGmu0^c{Bw5@A+9J684OMib4 z>%SFaz4ePdtGNKV>ntyaRq>{W8T%{SnzG7rYwMB8NLhMg{r&8|-G1-H3RpUW>N<#h zCspajQo9jA`zUCv@BaR2w^#mtmE=sNeqAk0W~kYP)oH$o-!9v_!#53aW1RKfZ`nTe z)0bzi!R2IA9sYIbcOB8))-Z78=)K<3ZXND@QX^j%>pPm=ueJTPzHPgH=MX@BHDz-B zdw+OJ0jJSS3riyE$#8aqU?}|9mzHTLDSUQkpS&G64?Ev$zbL}Mmct_}S^P1XZ(?S| z{B@t*R`+R^{z)#)q2hhJOw>(paco6MXZ(_tmR(tN>H5;j|7rN8f4C^D^ZnMtdmUG? z1qEg`@m31b+@vatKj=Du$b9mpCD|RlOu}k2UIyqf_%Y%+K$Hbspl?*NOL%q}X5jW$ z-(_Y<$tO#tl*XP{6Y~AD)1Ds5M<{d?ze8jQ{(4!I9s z9WKQb2PJ4+dhtYq!aZ{ z!vYXBZ{q3c^ebiKvH*z-rcBLp6Y<*ANT!C?f1Qq_`+MKR0`_ip4Jp74WKj)mtza<= zNT{|=#W{_^)#}c`VaV1Bi5ts2+)VLwNigg31Y(<)S1OgW)XhSWd^)Z6Un&i|kkDma zlXq$+|7tlfmrc8rF*&^AJ?LtKB7;aNnn6OO2SS2L&2cK#FhUp^FWb8dYXwc?Yo)Mj z%pne+kH~Qgv9o-+RW6y!P3JmrRLuM3s7XWS88pf_|ErU)j8?vmJ0cvx*H4XYt|B7L z(x;D0kp~Qb!t^L|ZbH-$;5At%LxK)U0XhYmBX%g#@>>~JY$afLya3<_ylquxTb{L7*_2W^dhI?Ijevz7NE@2EeMs)hiMjRU!f!6S2H7er%|a zShzcxEd<1NlrF%U>Mg%Zz7GX@c7Pi^A8H1}P={e*B*|=A0!th7sxUZ!01Oud9-<`n zH?j}NEBILdlp+O3uyPNH5E);b4wOHX4Tc;F-)j%h?glnc5HR}SI06I!R@raB;5P^& zfx<*MR{QD;>xX!SW^O1*!!!>7mTsjdS%tF zc(0&jFsQ|Om_fn%-KrTgDsovJ?Nd$mrYa@O4E8UTOTxU3V0~>5nvlhTeWBNCpajTk zaeIUnK53Y0gw)MMq*zp~?A_%VL1V(^h<3T`6Ui451!%e0n*=a&; zGerZ&wbakEhq#>w4sL)-Rf0k{YDKzy@xT1W zN4K?%?$>d07u}s9=n`86E0tS#pns>DWY^ifcYT`@fdPUX)@Dh1t4KW0gkf=S4)t~W z#xMgR%93pJWP{@BCW|r5+LALnylS+zyW%{E7mG-C9^P|p2_U!Dq&fZ|`Pj(9ex>2O><<2YDWTooQDW(v8Z%`951wIyC#_u3 zUnE6;=b$>yjJ8eXD+eu*61C)mqMTAm?Q&hsudUwR!-LHifYg7K9C9uBj*AK=`YMyhEcn{+xsfq#9qrJkm;c9o_RTZNipiA6NWc+TV^Vx2smmbq$ zvW|4)spc_LkxZ=S4zuECSft!1vqMCk!4vKQb@+31}gth;u$>7SLpV@tya zbB;lu3y}GS8Xo)^!(tO<8W8qQTC_nP!i^+4_nXE|_WF-7 z8!?`XC~lMmN%nTDE<+^k$|2FJrf5Y~wn0^^-BpX3>@+0|$M)WiyJg-qR2&|}Sv$d$ zSo^|+4pXeP@gO=m6}Kz{JA`m~Mlo}x;Hi)JvL)ZDnmq1Z>S|meooZ(ep3Z!l-wKUk zw*rUy9Mhr6gZ1v`=)IEPOHg0A3lb@l#ceLyk&3Aas-NgJSgswKF$}wvm&*MURkIev z)o4t{tamZ888L%}8PZQjN9p5%Pxr3H9G5itGT46nhFdfmgJ*!=GU3!e)=WG<^2^Ux z1ldg%-^HlSnuwIxYU5-xU_T+S)nqW(a%3}3Uct2haIqIeEc&mz zZbY=5pt+3FxGq-ng(GcS)3~93?v2429pqqiJPs1>SN%+)9yD=od^C{ul(S)e^PP>7 zXk*0(Z|c-(ZS?9eK|ahzDxUwYvmf(foCuN!eYoh!6_wCxVxwZZS9{~wD$)UFm+QiH zJy;H;W5@lgh`uptgD||>Sg4YvWFGqvN?8P{pS8fStCTO(R($S zrZGaM>R1QStVGgSAVLV`dwdyHDdA;zx4{&(pm&2k_Y72#VuHfQSuKX?>47u$?l2k7 z2OJA}L>I=~0y4RYcF53>#B2@iK)P^)Q)0E4zp5 za;REVPX2c=9SIlj`H;DA2~WIJ1YZj&4jRUHJwh= zu6uA##gViidv~GBq{6;B0gmsV?;Ye~8roJ1RD*%vBNd~b1X6-&uFILDvgP4r(ZXmvD1HV$_0*~;5B7p?(F{2#y1x2*rr9}<0}z}h$1|_bsC3>rB}0` z&uqt}8IqkheRiv2rAvMTW@33<&*xC;##!^(1*}Uews;^DEy}(s(iUkGYxYk6?K@=y zsaHKSx)`x07(cmY8kjQqbozLoGSq;fbkjKrv>#i*^bQg=Rj(j^2=ySUAxaTz$#(I1 zIu_VtsO%=Bq~2{dF^}EEhtfu<3q|{^Em*AoFfB4^|{uV4R^Z#l3ax zPxJ5V$M12B1a%*NfFD!JyQvmv`ulI#i$;&){~&PqN6F0pHY5IXJmPQ3Ez^J3DgKA= z_>Wece-IHIe;@mwr8fU)#relL^WTxb|DIU^!O? z*#=YsaVXKX;>gK7%fw8wuc!0-L6=N5-%F^hv!j+yMa^-vtgiNS<;|=;O;@HoImTVr zk@`eE?9TGhT$z45`KZRHG6ZejQ&T>wd0XuthL%{vom|(tnC$W_q#Eu?rR!0Mp;nd! zRn{xb|7piO>55`B_F2Vz>}HARau#r=l_3q1NDu4%Rf6TX>uM#oWxO;ep_uXHB_)zD z=qV`XrTO!&uplDDK=Q;=cr;`%r;|MAvw0aod1lDDopDfSARFG!rm5^+<9YwJI$92` z==h18N-_wOo_Zg|>9jh#JNo3UH+%mO9>sj|7k7Z`tqxKq%v7Jg%t!y}@W3V})3&6Z zMih=H;Z#poHl#r#GAS;;ImcL|QaOG2N@8Z#I;|u!TFS~rL<}jxt}LQP{bT%?g2B$^ zZn-Y7p3EMKuPR=utlPH0B_UQj)9!)5W_VOs0k#9&%{d zvk3x}7wm6gaWL|7^g3iO;22`H6k{ooN+^>&h&5r)J5AGa1Lor?gvO0xLl+oP+mj8* ze)Y65#^V=coZ$lAXh8~KaDopM#3~1bppY16*%KoI78leIfwY&H5^SKtqaX#ddLI?h zLS#9CLN5-GQ zS%xx@o7iXcqRzZ;1h;lW!^p#zBADWg^Cgo6!xSlxZyq;p@~LGqXi(tSK8hJIR_e{^ zq30s{+2y4sO#J-_EdaQ-W%wjuBjOZ-1L`SmVT@Qxt3gZH^eHJ5^6v~9VItuw@atSi zGV=AoO1eXpVAV(ILzVm>WnZ_d7JwRfJjTS;v7p^pkZw+^P6WTAsi;Epu`VvswN-_h zZs2Vg5@Dy9b88?&8qY8&F;y(k*p+8b2@6xn*q}f?0H^~=Bo_cs(gv$P32OQ zCFKeD`0RB^1c_0suR|3Lvu%}6m}h=wiGC`g5eOnG71Xh5xeWeNWf4L*l@~kC5J_Pl zgUd9E$_AmD*@D(AEQbzUFz9h_4I$^z7VKJ<(&!|o2AA}uDWGB|CMI=SZA}_JV_2&& ztU-l!E8YbNvt=-t>bhh-i)g}d+QHLzfVMUeZ6Pq`eGf2T1K3S;;OighPBp|&SpHi; zZ?p%NrFbq#k6Q!}UNwlqkmpFwqQ&2G*Mw6Gt0h#X2NA^!sR?XwyA;yYAgNsVT}C)v z^-&$I788AZcBETLe0IACcDCs4T6wYBs98Jca_vhp-){Y|y%<%KH{+XaUn@LY?h&s{ z3!9;a=hp}Al54w%p5@)q#csR08O3_D+wm_KKl_)ie=IvSR-2z5q~F=1e|?&GQ<6zC z^LJ+ZYOHRL$~LiRlEqAH@5p{J1Or`-)_?RK|CtmdKCJk4@j39@9*H%=*SN=GYio0O z_}$OVSrRQevzbIDP^;(`#nCRp^YEw(rvQi4ipv2xTeW*x1)1`2mP!#`0Xhv7*X3FXW_bCo5C#ReX>8Ny(Ag({;s z_*Xbul2c5ySeI`ojsaevx{&Xny;re(s4R?Gp7!#JpvmuyvI$qiZhB=?%iE20#74`= zRcz$$;`Cp24BNG?GSu7j>E6&U28xbTUAZPg@usb6D(;8n;>PqxEc{7@FC79QZht+r{bqKRuP} z-7q3evz7`RiKuv>OBx`7y+3ig_81sk}nxUL4&Z_8%mBo)X4f}+DUZ|+e?f%<$^x8$MC z*)@m3X;8CrpBr+}y@Fn|7j8Dp zQYbZ`ZcsUdEJ~_%Kia16J@Lap`Tnr5^E;@>6u^$nXyM_2n*oF7Xvz+n?Z9PgKtE!; zBt>!}8-K*tmed8-N9Do$nzRGdMT4nL^xRL#p~qi)u@TC?EuP^|?bIWrCbH4uOAt@M z=Q(oV>vT+i-*u>ruE{-bje99(tTUUd=*^1r35+4GR5Ho{PD2Sm>JnClS>r>6Mu<8% zD<_7ak0u&1L|{{jXel00G`ZCDhUtpD!K`lB?91~VLOc;%A0EX`%<0L;ae&(0-1&fz zPbTas8n%IqMdQ{#7}g7GX6DC42PZquhWL)5#@=e+JtlGDm;gQj;l|7rre2i_?&J0z zGe2d4fm8sWyg&8Fd=N`e!(ian{tRaOT|)tI%7mK5hQtv6%K4!}FVul2mrqVIk6G+$ z(8;8`14*+_N}-Yv8pddP@>}@(Z}1+UlZ;|}2lIgZ#<6=MOlB!@E}jv%!e{9@b; ztPup_A0;a3Htf)rP==j0|2MJxSoTH?W!v)6@ z2^H+kH_}n3lZ?iXs!Vdy^l(VEzs54j%zH0>fgSWJ=-kt~(kcpWIm?OAptzJkHs`{^Yb&tj{j}ZM z*~M!?DAT);o$JPcl&`A zJnY9TsU{x|`F8u{sdD?XTF4a|M1S&Jy1Y)rC8Y|rW&O7Fr=ilxhH-%+pV~8(GS&co zfMLwfe*Xuji7)Ofa+j9m)LH|81+&-`IkKF2BpYQM77?se|LCSdI zR%J1iWI-1OZosy96xzyOW3jYazxpPEw_HL^_9Qa)Dig$3JyXsXT;$NAG!2&tB7^Jn zboF~XkwC-!ixSir$x(kFWULl-=<4kDoQ}fa`KddU1<~(~7Dfv}n3aS~d)`m4%B$1I zmnNPy4KkDN#L0?J3^P@#+Y#lSzos6pkaTY=wVyIQcdKNez49p9tdg7yU6@Z^( ztb~7B&|CAPo9o!wEIkZMnA#iQ0>Z7tqui4TaV-WVWGl@$C?al;%Fr5y*I7iYJ3Jn$ zgCshzA9S@y0fA-6T2P!RCm~moN`g3_!qos6jf_&;I}v&8&TtLGybD*k5^U9h@5Jax zYdCmA!xuWOV3tIW$}S-|^YVqU1H53I&aGyNg(`KW9#1Sbd_Hc85lMwT>DA;HF<^ACJkJ zp?%%D>h{&JUdJDe>IC-`dlyb(&GWwaA4$#=@bi)eu*rNrAdowDX9FKCataj$9a`a= z;Rb^yQ_-tMF$FDvDp?fU#Heg}7&qek2TyHaNl!+rR}^zkfP5h060J{;JX}nO#n;Uc z5ExMvw%CG$qPlg}uFwtJGUDI^gR4hC&oM^2A3sgxf4u1S+<1IB`=dWU=Ss1x1-c$! z#QsVsZbaP8WPMNoq<`Y$Ya2S5dA#))eeeXyHxuk9j%}qHVbCrG68^qm=1FK{q*fD z3N<<3W6=Op9MPp=K@`8g9FnCfp!jWmOrlv}93)Q9`nYRH@j%X8S}O;IvLGeMWl)c; zLtp>};+(uOeyOrF_6`p$$HY3JV-U7aOTN&=TAb*hoeCG9!{I_&lTQY7_-9-BUJk0AsDxU_9M1O+tvVvD)lQW;?iF(0CGy!lNfpWeYA{{p*S3E!RPqAW07 zbCJ&KKmUe9S5ZIixK~L|MP8XbqM>S%1tn0=X7B>v)b4LxD5wq|;h`EeFQ9L^-Ew_% zv$?k5+LvQr>^3N~1X~PwVKF!~ruspEf!ZCPMvOtbdh|EW(jvQT1j(RVPIq^0rHuRz z9}}pAx^caZf^|jH46p~ji8rG%H%`J&cLgNle>B1$Bb0AbOf|##g+x-gd77;jcGUtN z3_72n5L}hk9H^(vk&+YXs~qV(#Sj|1n=#PgjNU9U91fi+9m7Q0=r@X~Qh%^7bb~Gl zBrF;@Ap#PN2*~gE_pQysWVuBP+^i>XUR`!W5(CTMk}F(wdoW1F;`RyD%rR3Ta?K?`gL68Pm? z@AkpGs3!9Mn!@HEQ0f1~v3ioX-3WJs37?_wc;kL*IDrC#M&E$DglXMz=AE+=HqL-K zU0xQQfCN4BCg_Yz-kJC;nkCn@&Z&yA0R_O6f({A%T#VXj zNYcHHR<~>#>q|k9mxTCQ^Hag*8V7(xJmAGF3;7*wW+LxcW0G$R4XSjLIX_Cs^u5Pc<6_MS-xK#EIRYQ$KR@`rc&qPa7YP=dRR+@bpvPOj- zzuP3;K1G*5Mc47pRnqmH#J3MveE+#%xNG zUt&yE&*wbT7r59dAW2~B`DKu{+0a_1R?^(=#x`QsS%JtU>VeGMbj#& z0N=ZUOc>+<<%HYn(vpxsC`e2j$xl)kpkJj_cao6A**WeYL6)(kCgiq=x}*MFOO7vJ z5Nmrf3@>8B1|xi?RkZ^#yfcMuMmr${2wPpgX=_(Sfys+C;~0Bjf_|*Csjy_xIZdRy zKzWWttF=@)k?vHcYI5--i%TykwLF>31Li2R&{#hN1x#n7YA!G(@69RL-FFH=#M~Zr zhP`DPLQ;)H$Q3Gpk2+DD*|k>Wb$}#9_F^Dwr=Xt$Galg?pLKiI)RiYOqy5A=xm#R} zKQX(!AJ4K5UVA+<(wr$(CZQH!Z zwr$(C?y+s$W81dzZZ!ECDnH#FE@;J0zuf8QU5@mNV!5-l8}2e3X2`Q&>)NUBz{QRN1FRXdq`ubfJQqKV`IJ1uQ%T@i zB)2#_YO5Y1wyX)dnWOj8PK*B#_zJYB=J!L#5h!3#o%OeDDnk4ur!4T(vg z09cy}Ozg8;TETKuH=hKEpK-N|PGz~PT-KW&JoVKnFNJowVdE3Q_QK*Kq3sAuf#8HK zv5Gmlj(z8R;P&qz36tIA!qr5dAlti%ve2cb62|fDyp^(c`XWGFL)i2G^vA&67BGBz zB2SqDYlIATi?}Q|K4DJQQo!1mE@9G}NbI>!9CV*S2ZQPAiI{rkN&`XF090>UqQKp* zBH!@vmZIg)j7#96E;e45*=DegnrJB>pMN61Z${iiKm=vXByE4M=A`1vxPt6DtYhDH z-?V^23W7j_m4D34J2HownU3xBhqm_E={Sg<5=H(dlImVU>GBW_1 z?yLB`Pr31Vqk=F~?2q38S&GpC&!4ur0qZPcJuwW(`TPQ!mK1Wb7rttVAw?A?j6>Qi z+j3t?c@YFo24)eCM_H8%T=XnQr8)Sh{i>~zs3P8Hj{QMGmZR})dU zaJlGZ3@K-u*xnEDS2;${|2$`M{O6pi{~yhn9RD_pik*|;U*^m!9nGYT5k%jWx_o`3 zdJ?%~zQp?=TEmAeJyHL2K3I!^wG#Lwu{fVM;roh17MJLB@=a}O0B@4Jscn3 zt%V|by}y+Nc_CPw`z$L(E9}Iz6b)LjFwH}lY@R;69aKHIy&hk%&dJ2EF$3?hnGj{- z$YRCH4J(t2QRai3?l$6@WwT0U-f|=1C2(RaOs?+i^hs_ z=?vy{*QAZA!Z{6P1_uNm0kp>d2-lj6xmP zDA=u{^C=ojtBhjomeCC3kPWu=gnl(eG5YGFymc3gK;}fibEiV>T>%~t(*|IPJxYau zA!XrJtj3X|ATl{LV9BSm4I>p`AAo>V2<|}<#sZV>5|=_OSx#Me{bDhou4cox3B6Re zC*s6z(?=N2y;>GN+UWjHkczB{?RS>N?H1P<5s<{BP%8x!TwD`eB;|m$)vXuRB2~<@ z5fDqJY;lVS6k{&|*`8LDJ~feb;H5@Cx@ugXDQ(y@<5h#PfcM+Jt~`1~L>>u@CQoeN zx2tk##tJg&dGM=zf|kh@r11!F9H%T~vBm(AaRNb{ipEkq5Smu(5X^~2xwY@DWy{*? z@MMIemO}$>1AWG^D+PrnCh+p3H0V6c;kwch7a!TWtV*;wqE`~@8)Ij7^2r9PX!8+XYb))- zu`~CJx`y6`{^n+-%JE#hyQ;R^gi_Jl2U#S9&Ge8^=86<1{C91ahP`lSO&?Q72CP*( zlgg-LH;4zIEp(wKQxVP^=PnYgQp(eP=S!5PyYJ<`tC2LpAFi7BTAh()3)fvkQ2DbO z^0~rwwTo#(W7Kw1+~vi{eQuFMPGo~J_rV&21V90Rgu(a+vjE9rwDLS#Dm08z!zS-2 zF9`wHpq7Eq>H8x}nIlbQX|yr3|Y_rL+iZna+!#-kcp1a<`A|4LYeodjM3>e_n zZX-tpfV%TD2W0-ThjMoV>3t$^<3)0ddsnaS3hk;VBDT8J8sCR=Gw${WTk79-W-Di+ z^%8UU_p}w_)#&*8I(2AGq^n!9yhguq4N>X=pTfi1&9B;5mah6eD^i~(#^MbC2)bL4 zi8+FHVIM{WC-yH)oxwLcErd-NY1x;eRy8)lSF=553gIhl`vFSa#-##!0nt;UTkxGw z`R)4kzz01+&@wGRydx+Vj;rZHrhXIfma}qVi5=7 z!$DDEHMXPG7k=xoI>$oB(V@JKaRncYiJ-NZi6IMv$Z~uC<-=fYI-AKi-ID6-M5?d% zFZ)JK_W)_amx(lno`qJ_3-+(HRG-dD0MG((3HY7$kqT(65W^yPIIN&kISdPP5Z8>- zg!QEpE{4UYI_|L>(^h#oMy!kB@18u06aBT%7?fbwz=CxUJf1EK@u+r&d7*v@=Y!;k zTt4FLr2KzjYVVevC`%modS~P5^G+faUIco*I1BmQi6n4q+0txu1LLi6;u@jcG zymTx3Bmc<}ihtn%lSnDuECO{8MR?!()hzvRM3)+}789nD_3ma_;Ks09sPlu~8M)-xM4Pq&NkydzR4U0_kP|mzz#Z4WQ>R?4X+v}$q*&E)=Gr2$y9ebu zaTN6$a=}hQ2GNK5>TTciyH{-k?i*^;hCB?H&l3n+CaR0_oqXLd=xOH#7X{rC3}XWn zzJ`gNX%5j?>NLr1Q&hgXiJ>YEXf`!(Ih4X62!*BicOC%Wi?D-SF$(7E zFWEC_L~8{}v% z02uJEDIKqi_+jD*;LBGa-D0WnFu|(frE1Yjd$@v7gbgp_eqqnRX?E@L-%fY z52XOEXU6?q6+lBz9&&IiC*^lkc5&ZM(8spf9%cm1T>_uP$D1&yH^o0N-M^y7f4}}- z5ZML8;x7dPt|=PgNWfL5#7t#^l$Pqi|6)%p1~qN|lRoFUhA+nE6_@raZGSgioy$mz zkTlj~xIU=i=2j&^@mC+twzzo?UEk96s{kZt#avCzC8GUn8;LVQw*57jjUul@ljq~8Yw_`by09lX^Fg_BbCf@b@~eI{_eFv~89*E4w^X5BN-DQtPdM9_H< zRuIrnl)KF5>lyOg$^p2aF46FmiyXJ=yv;^uefm#+-)wJHw>Y7vH8Bn{LsDeqom3eZ zDIy_{A$5%L_()Wt;nc&eX|DpJ!U>DAh(l%WcoqpGm22A0P2$p?%$x^%^@B+`(~+~ zcsSI+TA|qgjL0k+5~}`AX0hc>J`!0Gztg}{zo_@tzoX4|*TPcAHZoY#;TC$a)M25< zzOeIATXr=!#l>*M%dWnjo)DY6RSl+Fb>;)FxJvkJsmcl{z1_xF`OvvgZVZ1?2!Q;l zp(*^sVv6WOcCQpt;vO|=_2*)Oi0O>e2x$An<)qFtwkTet7&N}J5#|jO(5EvPXkX=G z7kMt}dfEec^iuIouxI;AW7F(~IQLq|grBFsE5K-IztB%blzE(sRx!y@D=ZeQV@UG1 zN}6(n>;~070+G7z<3uFz!a5$7q2nT0RLlhk-nu!XdQDjbFfyF*=G&8zqB)XmW3Kv8NqHaRWy=)QR~v;Q$by-Jz-g ztWI`$6uO13chZ2=yRw32nz}I&fH7n}HJ0bu_Pz%&HU699s=gi7S#W@Yi1iVpvdzr5 ze-=gUybr5+Ba{jh$gKlq@b#0bkUlSEKSXFF^bZ4lT5IP$n>TX7i{#N{}^YBv^ z`dx81UG3wvn`y_5;dyG-(u{ie`zVvIjIm^#-QVHoNieKpTsoxXv5m?>=S6*JCj@uh#@;FktDF$`Vw%EM!Fadkj z8_#B=tT217lqvi}gyNiu=br50%;rBRmajidX!#xt2MwbB~6$eQNP-O9tN68Jg|=s?pFwX3BXPYsDf9`YuXuvgSqy)ZS!g&dLohEHfhdKZ%YC!KrNRUSqyX4zkkob!_01GHT8IYinF&;Xq7q|a9p zvg|%jSx|ZG#FfDHyu+=>DaY|=YGi$RGu+a{0gsik4|+Ob2_G`}{mP(Dx7D}d`Bt8= zglGXXvHd6egefya<8>RC*&5x3b^?Lwh_w3;6)}}sJw8F$$wRxap`|qQO7y-SCsk<|Q?muSp|D#^wZwT|Bcv=68P$dg1 zw4Y<$7S(O#4@L+x5$#RWJnwe8>gpzov?kp zDYEXZs(!~r{=I@nb1`+YsJM16{<#j|W?lLkObL#>5_Z^B{%KkNApF!g3aeV|3-|ex z;`J9mEo}PdZV@N4<2~$V4&|eA)WZq&>+Ae#I?w;nS?JxSa-n=Llv2J`J45ttNlp82 zWz+flGuDWt=;Iw!rhAW1`;A)(xsencOuHnTHsL;xtR$VyN_OmvIzwX&-0)Y!WhE{j zU@N@o9|d8TV!u(O7N2t0rH1qP;Mqmz4sGWQIJ2S_Z<@?P>q_}YZ#S!25s(-nDs9hx z+DQ(T<1nCrl&dohoGnKMS>3tCTV=MZ#IZ>6UlSitXl#8hZa@VTs7t65l9n$_YIB8x z1-v$H0*KWa+F?^u%Ygc8>b;~wPc}~ln{4V8AYzp*L1nuWXC!WqIPRa3tCs!{EeB)ZGk8j{=4U3mw~Wgxf_n9~zfDJG5>MQE94=KLv(GKafxO?`GJ@Czvck zHB&0tn%#;Gh&0(di6ncup7Y4qCTRJnAlYPRX55%SC4N^gAmfMG{#*C`bX|`I8~(`# z1*&+|MQn3$l{Dm$Lc(@Q8rTFnBVxz7ZiYZz7aG#g#G_p1aDMO#AlS4CS(0Tti7bHA zNj?6I?y7SE-ni~7CJtc9S*uV-WlEXck&t_H!d0?ZQPGk}{V6`U?oVuq0X+mXbH!OT zF`@&?eo~ss2e7(j*BilSHnpn zXnDx9JRdHqdb{6eG)pL(1`VV}fxtdm@2c`fZ|DO+5y{vvZ*foR<$FZ(zt2IAnSpkK z;VNR92O<_&xSfau=EY{@hWN%rDyP-ARDtBG?PXy0k-3Jz81fahNyi_fL!5UR%b7#Q z)tt?|)XZm6nz(c1Gm->we<@&YO!eq6H2Hw8V~Q9V+>yk*j^>XbXh~d|0G?PD%LQ>c zn#prfR*4Lup=JbnfX1YaU;;o9E}Wh;uBp!GnNpS?`ZQB-^qGW1{knWQk5Rsea5n-& zej9=js(V&>!QG8Y#d}fhyx3?Fk!UKTGKb#%S#exxW=s*RRv}P1vw~S+;aM|Q#;a^O zd`6C&_qdO2xq^@5XtuM*u)8Dz{|25Ll{Th!x~i|7!elZ4HDJMLEkCQc%Hpn<1YimR z!#B%b{d3lXfEC+l#yn_sJxh?m1FMD2&`GwGC25{4XCYT?Whz&ZeV-%uMqQskwnr(N zO~ssZpDD6}+WXLPphJTJ9)pLg64Z?23if;p=Z|hVkT`ra94OFNEAmL&s_yUA-bTNn ztK3~=*xo7Jz<}S+U)`Sae8oB#pu<&p0u2=}M;_@=C+95k1BDY8ONE23(L}xOSkCqS z(gyXsS#XMz?~#v1GTn|^-(3G*bdaT&9nF=^#{PB(1wS~`Jshm^4Qp}VL@S4)#+iXA zNiJ{RTztRiwih#Pu>%OZh^MMEvO=-ZPs!NC2hBbx66XR4benQ*Au!I3{6bEWqSnLN zaTK`j76c8#`(mnS=l6Z*1@8_s_Hp`Q<1xuWdYo*ILVqeh2u9@2cX%~rJpTuG4r<$T%(Dc*ZTC>pzbfpiY;H#GLVBDP=+<+OA_EBbJMVw1#qD8K?D7F&Gd|* zE}rzsoN`md7oC76o^=8s43ryZf?8xH|5E_oE`M+ffUAGV znpuMs6Mu}b0-Qx~3EffVV#S@0KQ?G6{bU(mIZTK8`XMv>0&vc7p#MNCnb%C9#Vv0! zR}%qMgG1`-Ti|a%v_1@TgctUXK_kIUut3raOWJ#GFB(b z(uCFB45^0{i1}VTAOC_JQuc9wA)U8H&iW{3uZK9(-%>uxM80D@=|P^6iUVFZUa{h8 zx<~Q&Y(&0)e>EWsj1-saT<_$@a3PR$p=D_OO7PB{U9!rX6Q8tN>IvdI%l_f-A7SyR zI0)w?yODD~5N(CH%g0LN6+`}vj%~sWOs@Bnm}*7=Q$D(O;sjZ+0VDyK0I%bPb%<%VFn>t%Ncx!Wa-Y@|On%JQuSn z9{P_jmz=x|@tRKVLTviQOlb2u22V>kH?+J%pRNoIF8tdt22}I4jsD zAC?x{a3Gyk532Q~gEFz9Hi$*2P{M-a6Vt&l=k%kLbjw|n4b_^;1#=MOk~#?Qw|Xg( z{W$bpRAnWRDF&=GE2aVH@j04lxNMQT?sY58drfQJ0m&tt#HJOE(#0~Z5Z2s--lCZc zPAnTyu3(t3Iwu<~LrqC$f3jZaLX)t_{YpmoP$neD0Wxv0H&X)oi@Mwh(|sKq+DT$irBV5M}kG z;V<3+!62ywvjA;nW+?@^)dSgP%d~Fc#}agP2czV|LsO*s?|#ls+bh!PBmKiINQ+ad zmg3bChb66MLVjQJbWl4np3u8<`5y&KXh(S%Za^twSpa#vk{vhaQ)*6l$B+rK+&zaO z+4)g#(a9%4PBiTnAFX+V&u1t^dPeQZQ1G(3c$3Sc>(#;riF;4F(tM>*h=SfO-*f0R z(jFkWXIvZ*XGBSZ6plm)7cL+3>HXr=`&1wC#h}9z0yQTZ@eS7h5RZgX>YAY7TUXhy zY-yuDqp+# zd(T;Y0(bKlpdTmRy22oy%&bKX(jyRJ!9jaDBuY@!&{(#4)$32#IbUg_OMyht3Wv@3 znC%4ThqUt~(56=pLyR!DDsT#2)p65FP&v=i44ANW7^7HTSRiWo=3idweV>0{p)gYc zZZ0KpSXrC395{_-agK9k_7F~G6x90RG< z#F<~{QN<9$I13|0GSl{${5E)eh0w|x+)N7LDapYvxdFfGP5EO(r2KL{fx-J0f-J!a z-RVSjl$E)RSuPgk8^GKV`}j%x;49g1j7%!Mxj?)>7reMpZme<4?KY*;hDjWg=-W(H z54wAS%Wrvu)& znxbj{7GLg?K~C}%^TQp51Oqx)TV0w`r?h>xYu!}%)-WhXI_}@GY*kA)%dWe5YXGl z%<5mwu*k>{1Qgn7;6TOw!@1ih0T9tgX(mi_;3ws$>tZhf7)j94LD!Cb8)a>w)Z02m z6}F19sjW7`Ci!DJ416Gu8n>Z65=NiT&=2e-JJrS8&pHHeJ> zO>b~^3(1Vlvl7q|D9CXr1Wz@xM({x*1LCY(L>%n`{mhHs-dOCPLGN)>yt8!?{<`8$ z=u8P+B8dh*L@r<|jI>G6^!iUsgn5fQ7@6G3r3{&0PR$A>6ClTp4e6t6p{%8*&?nlN zB4PJn^GzPWd#`0d&PXs7_Uhr9NM9QJHpiL2)X^AGg~>V^EvwP_0Ih#$3O87Tj@zCL zZQZ#Fm4>vZfzimuO)zi-IO09XU0Fym-;>}?02!CUyLc^L+$uLOqH$sDe5RBt)9Zsi zu1%a>VGqnPT34^+zE*dY6J^+tBxas%Nlbp*yv85^AT17X^LzKPcMqoHLCQ8H#a(MD zN7JDW^RZf)mjmPIC&_l_`jQ5=nCZt5yWnu)!jL}m@I1$KmK>{hFZeU(qUlFR)4w0` zBaHM|h~3;q5iVs5SNgr#gI;T_E%qfxRdKQH`Hj`8q7VjFcC-Q2zh>yUi>;VBMj2gySB(R;0 zow{Y?ti@7}m}MdgbW=P%Z?2F)CQ=JkN&#LzhQ2s`UpAwLzY8#qU9V zwZdOJJ(1A&13fzcr65YbUv7`EZwC81;G} zJX5p5fePv|e5ky-WgT1q30!#u#owWZgcQJ=-coV-zJJhH!~|G#~n$l`t~0|4F9Sq8p-K3z?yeyXelYW01mB?*@_t*2LsUOp;@Vk_1Y;a|8{Gq_MyIv1*DB4i` zEqt(5-$1{bp~YPuF$G4H`mN`j#q_Zv8w@#W*}p4Ps7^egNCXN{wo&Wo6_WqF3~reHO^1!qqdO5Ux14qqF0c zEC$)aF@#|w$#RVu$lcDkGVhnN>tnmy*&?{y6T|+;I5+m4ul%K2h$xkk&dxC1Qdh1h zp``OI-R2L{*8<?qSY1EpTOIIP zhoejOrjzZZ zedFG@K{Vv`DIUQ`2RY+thVW8MQ5D9A=-Y!q>#aHA&Famjd-gN76+UzV6X(J!kUHt7wyr&!m%V-@&I-wD%gGY z+sMLl0Bln!P`@*=M=xV2wJ`UDlxQgh$cM3n0F(nnT@S&8K-@4-4C@xGAS`L$s1fI{ zzUUrCS|q+dJ(lj|f=_c#j_p-z>S`~r=Gx0w2j^pBJyFstwZD=ZV?w1hI}Fo{RXlJW z4;L}e+py_)-62DPuRHMkh&Kj9(>b7B zD*Z(*payYn&)BocAzjQ|sXIuHHTX>o)ykW3k|R~nK+8HRu{85+q9U-;Fg&TE7%ReH zC|^g-ivwDJ@em9-E61fx(9X)gTKHCE6StZ(v{9CNhTpj&$hl~@pJ*#G>Sss_qP})v z%I6hQY}e;4gQ_$-oA%LTSIcUMSXp+@X5B@+L07JiCXmwFOloZ=K@t7<&(KY5{Hg0R zJf(G33Leqv26Km2ZD=^259DMd#9xSj^mW=b`dt_ZiZPQ4kiNim{0D`kJvzE#qtVSZ zUkHdi^iR9f1JSSGyM^46k*A2HY7F*= zq)McMpsKrPl_L|O;~)t}!#IvGs9zlJ$yW`ovaEkn(t6yyANmkBxJ#X9O=XWz3tTSV z=?FkY25`D z(jB#7$Id)Yjq~DPd}JYtoX z)Tj8_wK_uIQ_K9pyztNq4-x?0&4TsEEvOo#LOa9k9wU_yvgz~g(l|mgB=#Ul;|bKE zh+{w#x@Un%iuJp?b>xcMI!!fDNp2yn$0Q}gymyI1v!xr@wB>7MFN+{%GG_xt5h{)y zO+K#;AD%qaS;sofkNCz#|c zu}|_k=vs#&XdKiEv12;bc(@qfS83h#4ZEIe+qhemK&GjQW1yhbaW|o_&hH&4r<-qB$_Uu9d7hm7by@;GA z@5{@-I84DvLgv4$!ZL17&LZWV9;jYGcB#kL76Zr{N!#26(eQW7^18=qjP2vFjF5 zf=uTG;=CP2=iiH^&>Niul=9jxC}7l>j1OqvpBkvF!9-76*Y7ccB_5v6)r3>F)YHj> zR|luwoOe-i1qk7c_Nx~tvxYcsI=>62S~Rlso9RU0aNFaI#IkFdYj1IvK}Sc@L*-Xp z*`A#(d2>b&!W1ytb!r|Y3>LNEbRImg)ACIk+G4GGgsJ<7+u1wiB4o z;_0zry?J~z_QMJ^@d20+6d27&%n~|+(tZj6iyd@d+nnJuKFIESqFYuFaOxhdrDEw- z9PAA{iK=CK#f9N<{uIg0{XEg4;`^0=I|CUcAIEoj>GWdb-_q@UNT3EiT_1HSeXR1B z?jL8<<7>w@mV>H=s}I@96T|yX)JRo~er{Te9h>w=gLw)S$u8Hykc<`hA~qiixhD18 zm)~!ZdHR-#NVZ42E947TvCthAv>*P)WbI}TB)vb~At>8iArS~+s$BrYXrz?bRPPY? z5l`4(3D>fW$%E;*qw0y@ofuNz=tiekY$YR}%oixHri$bnqL}fF+W5>AZ=kIEf3e!s z#86IqktXkOORefQep(*<%vqpbno`aBH^H+gVFM9{kQ+$6Gc`hu?!V zQo;91X9>x2^)hzGduR8RDA3jvh#l7u2CxzkLK3!>|CLbf&mPO}V23{-8^~sWt zt53oBv8fE*Pc!gvrxW2BtY8`5aOvB~GwuK)i(5B_RgPx$tbh31_r}E6Klt%_zzdo} z=6b_~7h-j;!cS2h6A}o}_n1({}~)Q23{?Q?kFuK z)vN}?1%&WQCBC73V9Bl% z)K>(!w3{1{x}rpEmWXATss+g+0c#G{X*4Q^v9bO*b8kw)K0j6F=>;LB%NCWgK)W<4 z$?M$j=qQ-4Xo&(d`uEUh6gdN_VN8mMnHH)JbO)}F{>C>P(ld(50@I~_1^FDZ-Noms z-^vom6HfYbm7%G{n1^yIdlZd!v-wzf5aUs$t3c?Um`5U{;Dx^v2{M^K=}2p~+yFg4 zSOIBBe+Dk{qju{a&=tR#4VI9+vn+$8lfaP-u=6&R9OUA79e9s_+g#J6(t+m+`$c^> zMlgQtbZ5(e+}4a>3|8bQU7Gx`XKy`&4M&D~7^PwHSIBydYr_1nJxYcOZ+3A&lZU}?C<({fx?>bL=oWV1X zB#?bx7w-ay!ce$GG#iby9Jh>%wB~2sAZLUt0Lhv2x6fo%jWe{H`FLs@g-YZ2$x~=K zQyjErHObbbbE=z1MXYKf?GY#@h*sUuP@EqSbM+Ku6PR?;MiKU$q1*N0IGmBW4#KEn< z%?etqj^UYA7J@N2`!WZeRn)eqI!pU?_bLQ3kw0lXr4z}Ke4i`VG63lFW>$|X8KT5( z#$I>g9K&^E)V6N)pN-Pg0Jkn)Wlq;l1C-#SJhW!=Kx{K%MVpR$s9URElM?sk*o-{K z9l)SEWCtXQvurt1g7ns~FJ`r*C?_VT;Bw^J+*X)|KSfnKbG%S^abE2J1R9ieTyMZx2ioRzlz|y9BTR z;eUc54v-rR8USmf%_%5A%knaUZ^xcVii-yV!~G~51|-W>5cPjra%y3RVHr{&A24_< z+-qo+9oEO_aobGXAlg)0C~Q4#d3>_$9VLDT{atC~x?grKv^3fyo!6}{w`ODeUxj~} zG2b`Okc=bbB7G05D-3GX3Sp_mhbopa4oOIKerD#+B~=Nl6F6OWu(MF-uF$By{WA9T z*JieTY;$U*t53w;0*}7vM;@5d--!t$PVGz{WnNgQjOO`Gv)B<8_?|hfh$CmqMewc( z=dq{nO?bj!?>2=|LDepee&p#X=}|dY^ESn!JxJC%^$J^9raPL}$6=6(u07HwQ)iWl zG63@0Ho=4oc9r5)Ik_3ca5NromQFIo3!%cZ0}2I0nt9ZBzDQ9TWeFcwXU28R4cVTZ zYY)4i+>@OP6}y;br_@fYN}8snIV3s}Y0h}eLTG~KbK=eF8CSW$5~Z4lJZ5+})YB_43mpfl+GL%! z1TP9-2a?PAF54N+i#625L%xAeCnivKt+BH#XX^3Y#(-G~(G)_Lnu4ZQbN10LIQJl) zI8BI;FMAGC)l_i-)+wYj|Esde+N)Gb%fvITnp;bQiv8#$6<(qx{sOx~X9q)f;F@5pJQF1Yg^M1*yBXtFLXxciGE z-U;5tWt3hZ`V4Sy;`ajSXTk|{!n7tJI{CY;`e63h6ayhmY)G*GtLR@~LcG!-PZ8m# zi%#n2n^b6~zCX55O!@=_I-4=*NGp!eQ20_YVz>dCHXW`tZ0GUu*i8LVxpS?; zprVc1_soJIcXeA0jlcSkdGX=e8I)4!DBONBoMy!V)w%Zl{YXrKH;dvYPBZ&QS`H1g z&cLn|Xj1(1el}0^q2o$4sUSta?r|J9)3F?i2idz#nQH1F{cAqWe5JjhiqFoCO)l^` z!_Sf#iND9!XkVxE`!M}Fjuz{E{??eZclR*90>+oQB#7K^%IjWO`{qp%2VSZ@Q~mi$ zfKI5RHnUN`=S-|h>+>88YPsf^I#f<>6*FaK$~PDk7nFXqky>|F=NSiK7EUJU1?IDD z5lg*mSt4p#tU&mgfH|3cGy-|V?53kKIjvy3%{=jZ0@!?aNQUz!G!j)KJ+0m&>M@9S z1njWQIyB5TOVO}&nA+tj0EFRJypG+RLR5tQ%H>NgdT0?gk1CVH024r&5N@)vXucQi zArwYtVcE!acQ8b&%JeiQUzvTJJJw_!vV+H)p{=Cwb?DNIhBtbtzTc&Asc+Q&Sm|x= zzWK_fc{B{>_OcnR?7FS|_kxo6I+)6h4Q-G4@*izkQE;K7(FB+)$~+~B)hcJ@#F-{y zewM4$;M0gLz)MlJmo70(03o;?HM_f=U%WlG*B0ocWZ|>(xFi-4PLIIl;rAF za2T^sJnY4WNlI#F(elaI0el8xh#{E#_X{C6dw8R& z5Au9ZbzC@j2r2n)!$!iPo=~j`z6H}2}pt;iabvO?~+(6 zvLuEmbe^GHab_urxJz)czy@|mF>?1i3(y3J;HlIQvKFZrY6Tg=|2egxCkeei7%G4H zEW^;>wRMURWA_-%P*fl!f~-}-zq7o*VAG^ucfFH?L;nQSs`cUv?r1fW+j?l zE1&9Tqse(;LP&Ywt^0zmOU}ZqmNlBhsYh*);K>wr(8%ws!d}tKbZ~RsH0^ zngRK`f8TZ-1j34(m>kR^_{3?_M<2BEPEJfzux#I80um4I{ery7hj(UmW@&PRJKwBM zD%K2{S-+%N?cuRw3n5Hfj+uca*nkNR8_vMKiIi?W!`<^oW<9~5LeT2jbwa7>P(73? zYDDA1S4Sdnv|x=Ip>$SAL5yJS8ls98ELZVA=YQ6zc(_nYa|mk~HPfwOXP|6s*VKn2 zq1dALe=#Em&JBx!|5%0HFY{kWVdQ}9G(oyKOD-@(ELKuE886IH@TwoRj;%h~hF&9y zmNZr%RLc$0u(LODFIma6^A3xNuo0clo-BZq_jTfFWl8$sG$DgW_F2%JoDJ_yCS;(N z?*=^GKr1fY?mp4PuXoM{gT^^AeY)ZA{iasFxfdr(z7M_&{?fHYPnkMfVKi+9OKFcv zp@Ldi^hKs#P$)UW$){3$CHN9YLHy`PbfL9vmqSK=?_-LK9u}+L#6>HuQK(S zgEj=%NwZ(#RrStUqIy-~G*iG2-MM$J<$9Y3_#D)@lCGAQLA1hhcpP$LrDb-ADsmiU zSE5B1;i!v$13!(dllUDijNPjvO-v8Xes6mO48ha(`xZb#%FE@HdbwLVX~x+<9=Hik z$GI(Kf#|%LnKh{+PH61gNTHY)M$maKCp5;$4V#TJAl&;o^3TmL>ceA5ksw)QK#7VCOwdIRr>o zzs)}2Gl-jH>(Waib$Ari>tmdHPix6p99;S@wr^Lx>;}qN+1|O~nZCp^Cy#bTH-0;a z0esretnX0M0SG3BShmJq)(wF=Xr_>y4;4ZnuK~}~m*8Np<miTNpNsn~aJY!^T29y8d5OcK?zf|G$;pe}y9a&s(U!$@G5%5Bwiw-rtNmBlADh z>VMRE|6+gsFV;{j%uN4UNtA=VW_!qX&#P~EnFQ0;oG5_{O9IHY1~N`0h{g@pD3A!Q zS!iRrm`L1wJhoz|TU>5yWyVHt+u)9RQA_l-^kwe%qjtnT`l?|vJpFYbo3WK_i9}x6 z)oy3!8{zwRqI}Me<$Aw=ZvF7V2_FOm??))gkNKfTSxSBVTm>e zW0_0phf;p2&xReGVG3Uj^iS)_m1hMe-{gtW%U2aUV8Ax1pD4Tmzs5IQ9$MJmpEy{Y zaq~ATy!2exrXPK>uZdjVzb?JbDk*b%NOw5hd04T}5(9f-r_JM7%S}-XdswVVF+WR?j7LKEkAz zdPL*7D8)n%MZiU!YhW!+fyEykFF;AwImH^NR7m}U9&P~ow+#0C;h@*9pK3E?Os%); z5m%~0j%fhaZ`5=@4jIp(c%h}#e6_cyeH0!wgFm(Q29GRXsx=$HE{Al=gLo3*!M=R7 z>q>5G?opchKz-lPniQ}0_Sqx*ih+5Mf(%z!B>KI<+R$}3xhz3!S4=ZQlm*=x{+mxB zEW_-&f*h-`aC-^}Cl6KxC*}RaEtwlbZIzE5vxXho#}3Ct~>I}OL} zOexezfBjr;mInEZ;C+{%{x!1boI@eOAJH?O(+T8JQ=rHZ_JeVVuoGK%pgLv;Xfl0c z*D+_zp#5K>!ENY6^_AY(Fe3mZkU`0|nKE{(KTS*tivNSQw~nhTS=xmO9tbXh;BLX) z-QC^Y-91=vclY4#?k>UI2~Kbc_U&Zmypx>CnfHA6cke$eV0W+e?5d}$s(V#e7bzV@ zdQFnCjOxUK;zY(qQ%^al)OLYoEON!>Ou0NG+&%{?y<^j7e7gs;ZKDD=mP_pb5~Ny; zu;yp+^nTd|PlCr)<@Kr47OUYlEADh+3#tuu#t0Yk#L2K{k-p-m7wuzx*a|3=qv|E> ziwEJjq!nA}j=f#M-IJLx63xQ`28grWOS5dGZ-R?As=VK@3=D3ssiSkyy%=jsrOgz)v>n(iv@sf z$puo&-&X2IS`v$+_QXlbv$)Awi7rPJz7v#si_)jm48(}_uqz?wIM{U%M1(6nSic37 zP=!C{WI++}dL&7VTSr~7*;+mH{kTGt?rM;H{>q|~z@shS@OHB3*jbMo5+M-M2Mt^1 z%ob**8DJT0{p}~pdlmF>7;O6MYv`n8vBb|M;T{)CgU)H2Ojx7po077<@E+EFAL2XU zqoW2DhpR7B)FyA)EC}So+Dv^)KWe>vBGd(~6dAqBNOkdOiBApea@WtV8zvp38sgC# zfvLOLsnFjIR>%K@0#TAgxallUUDLEwZ#f4423;zlKK*?fN-Ngl8bc1zMvK+*c+s1% z1GSz^q9w}^Gs1S5DP$v;a==p4d(m=^lOvruHDnBWk~MN(!HLNcXBhmm(K}nNhO4ry z^$7xJm2bFFczjr=L@x?((n1krXEphLd46e~#ENO`s`g$6u>{3wJsRIUQGxpVk&zyA zW~@JYx3jtOQGeQ^IlqN>ls%u$vU+QqKaFcx5^jYPJ6dSrl1R`fVW;hlSy_QdhN#u{W6) z%f3FUr|_2~0x;TP0s4UaY@3)U&|E)Y1!Y4Fj_%K|WGKWdpya=yaZ(}el`Qxe*wQhQ zD3|H z8Vb98ri$^Crd6P1LB|7$$)Qc=S;KuW>BJi3oMHvOekxFrUOKN~NE|A&M$hubGr#6p zVd>?=-q!T-r1){A48u>t;{dxNR@AsTe@s^uV-z^-V`4j$BAIr=^*@zK`fBs^Rv-4< zXkiBSy`jx67J{2*Z!1=Q?oC3morzl${CnPTHNTXk#oR6w-mP5Uu}&OFWd&56I-5ct zBDu*}<&gsg{y4|6NzkKVTQDboB^<@0V+5M|X`yvBIGu;{4pZ5x+*4hL@d zqY@yo9*>bH25W%YkGZgkf+0=C2OtuMzebw(lwSG9sQAu_{qj=*j-keB6RU-<*6s*9 z3wwN#&)Au%xV3j|e&_wm*>yw3!mDjU2CG^H=G%h6na9_;cR6}OJP@dyG|oJAyy72d z-pk>Iw*(cnh>Qyga6)Jld|2#i(FV$z*`s4c5c=XOC{^0*q&GW`Uk~p$i1v(@c)3zn zT_0yW1?_KiDd#6AwaOlQjWJz1uR3>S9VhFK6a(tmBCGg@Ng#l9qgZL8H zMD)Rlh^Lb1dWR41I4fDQrqzKd(~IX-U2YlXmp<~KIC*Yy78_q9V{b4~bDJ-x+05<@ z*qA|=eZinhBa=^6gUoNuz6CUHT_C*m=kL|xPNC0_gorD&jj=^6)vie(MjF=PNU8(U zvuDl7v@E3#8;3gj2p#!U3!aE@wk*oC5mv&HC4@tfmxmt?-U1R<#|+sN&+>S2ifE_Z z>3|Kd1k+XMIzL922nBa`l>RXxPr(C~kW^gI#>b;p0;LU1p`-=0p`#vzaxXvq+J+ zmo1JcIua?*qQn>GKRsXBVXM9&SD2+w1ZSc7fPkx|lOe^ki*LJ|dO_}7A+uX(>*@wh z58s|o08>gwTvoQe5tJ+6XG-?W<%+Pu03ZD7TW3J!iNjg20o<393m0Zkvm26VYH7S! zU!ZJ)7#yD%8&Y3+4bQvt7VmzJ^Cg6(L$k9OlrvnYy!gmqF>za3pxaa2sThi?qPA5L z3fe9BIx2dQg?8QRl0-12hcu;9V$&w74UK3eVcqBkik;gphy<-?NB1_A{QkAs>INhP z@1InoH3mf!#IZkWMx?E1K-)5y8SD$jBk`6GtIEbtXR_PZ*wWIkh5+|cnls;0@x8Jb zLJb1WcW>XI+_59GPZWoYU0$c#0jlgcsgF4)oG+bmHC#tfnQ($zbgKJW8)>{=)eu`( zf1_!1;fJUNlfQ$BEP;pwW7|IiBYDerQSMOJY?N+&t-Y7{O}a+(rKv@|BE9r(v^vV7 zo~vBPWrHaLBF68t3u_&a86`+t3%H5u4Qs2PETS6hWahdsZc`EjxAB&qv1p&vRbs4t zx4)Er<~eDRtpr`Bp1$o+E=yySxl$_pm*J;xuoTMUx?RRz17G@C-}@vxUk8`h)=^fN zlH-?2bOUl%AZ;bO19c)YcN{G~2NjlA#RRcJg7#~psN69=%RN>XtUAklq8?0RNZi8B zBNr%TsOx{-HpdV{lb@;qf2@{Q4&?UsoFqBdW49SSX_9Te6xN{H0lLE_`w@x0i` z*JNEUo1S^+=E=_!6a7?Q$8KvnLd%#Cl2BJK2Xvy)SSXjZQge@v-&xk7OeY7OAGEo? zosV*&75Anz4X;;<2pvxL%h-J_XL6#<{baK@v1?5$N*CvHB%PAUKHad@TK!42Ky-(E z(CM=Lp!azMEa5^<`L10rgS-@)cis{IJW9fcK9|FdA<$3UW8?rD>eROTtt&lTZ3S-` zaZeD1aq(727x`Q1o$$T)op_nz49yQFe*0R(map8tst)QiicUYwrr~&Fev4RFmow0q zT4uq-+o95|dzTQ?VC#Z}yE>bIv73O=+L7ClFrd_Y@bj() zlF-NaZr;aBI^NMRSsJ3UWSg`1>9xlXi;5^fHxIyR!dL^Pl#e;Ht_)4j=uHZ{T5n@( z%WnC;iAB=A=AtjR+IX6(Z+=yxslZ%4awt^ao}m>zi3!$I(YhbjWcbx7>Km!*XlzNuFRh*3isFo=3sd*><$~;Fipu79^~btpoU>UWEUVa{sHbQD0extQ9V;b`(5rQ z34XVgA;{Yo=<#j2?u=0rZ_W`c*+h1}5*J*FE4@6)O##vCp`LJ-dA` zvXdhRgx|*BjD7jM22ns`a#`^fvN91HjFUDK3qP(S!7yzbLoi=&gDR6ye&KeJ`8M+j zuJ*$O?{8Lxe#yT6zqh3G-@Uo}D|v|Z=d`GQDr`^7`fn#bm8q!OFSESy`dV>Dz=>oo z8r|$a94%>LYwR9VCb#4Zr3*w2Qv&3ftW7(rz8+kk~+iER=i?M9jSlSjP(;HNh)T0KyZ z%!EqoQ9QZq>dMV|v-JSMS*b16oH{7GKe=k%)*^uZ4${4KV)zWK5t)i(c#|mhlNab292u0iUM_O zB-)^cbDMdD1!M`Ej(7|FY+!_Z0`y+|0tnxT{Hz7|Rz15QBRoHWFk*}W>%%}yD1^G@ z0K5{Xc7)Z+i@?|x7iTUhBKE9ga2GEWWLP}Vp1mx@6CS}QVDf{nLPQTwpZt414HnAE zM#|W#lE~ZGzOy#Qnj9Ap3-%|*n_$aJ>s$FEBG>qQvl9beK~l36t)?pycfpud_{oM) z0ap=oOPxgn6+HQZxNUSmuCk@Lf5J1EgNA+j}bXyDQ($j z$q4DRsbS8Dy7l&hl5S*%b|071`AgeJD&v(+*D0$!G_AzMWSnc(wcS&3a%jg~iZU69sK&-v4x7Lcj@W-=HF1WXwL&rJmGhgVD>N658TRn_a7xzn}vm#Y3j|AZtbb1I=EXIFr|J+=W?>{ zE#j}ry+O&ppT6BT4R&M8G_VmNH-LVZey}|3z=R{baPI5YH4J9irM9o9Aj557qcw?5 zd%334XahKooNbA|B{M@B>$EKLT;cg@pKxtY|I_XVhU|te^F!l`{5A7o_Y-adqwIyx z3d#)(4hX&=A&^9b>{EuO;Bv2)dzB46+Z<4t#=u2T_Zpy6*rlxkLev9e0{NsA-j<6F zz+{!IMS0SH`Lay8h4&sE!?5(F3_|B;O zu}6{Bu@FD)(Cq<~U_Cg$0lKyyt!kS!QjAG_u?BVuUl}Q6cX`Jh zt54G70d&_@Z`Q}}RhUsX`@l>{bh2%bGmVbd*xWwAT!PFrYKyX%w-ijYtQ`<7#tpyn zxD+%k$x$VNq*`kZ1qv-!orHQP#p+uCcV`A!j)H7g;}1s^825n0Z>f(LRH+gpc3kBW zDJ?>v15FsW=&_UpRt9ffKn`qnOJ{Y>xq2HL;AE5=_7&J`SLu%x zuS0Ff-PLP%E_!%B&2WV$OUz#b`#@!ir5N-*+eigJk&+H^@nB!&_tz6dJazyp;lWZ+ z^=^u5LcKX;rE5JO8Pq9wZz3m$5Dv}R!QSLQJ3sG!2Bjw7_MXt2h@v_JfE z>LZau1;fnL%%FDWIZ!Z4K~sQrxP^SyhhSs3Zs`CUaZ4EVsJWMyjEt)0KlcI$-iA;f=3NB%!~EA-zSl=E+8kp8=uM?Xax|8<%& z3*hw|?%Ca3G((wGMd>5Tkq!8WA{bh+ToZfURdDUtOV#x^8(qL#d z-}K@d8b0oQVf4!Qaj2j#vg9TvCJSgD4>}f-}~9C~?j1PQ;=4vBd#g=*Ys=ss}WO= zevipY6GwH$BM!Pw@2{#t9A3M3iA(q&-O18bfjN7uw?2WdIZz&8Ij=YjtmRU3I6dhE zCvhtGGtPhW4axY}rmS_Ibk@&gPk_+)>f~w`Mq~2=zI^2~L~RQaafA=d8?KcN`^|;S z4dnKT#X2H<;t}EI*!vi8d-_dTiiqt|Llt*8Yi)DqpD4t~P$*zA%=iQzLI{;`~}pfQjO3hb6e)ePEQxn85~ zBzJpWz^7x0ee!}zAt-1vrJWA57EH+Q8`jWWge|bJDk5iP$g75+uw60jwF_G_OPF1c z(~rqFWVA|(0n7L!W;H71c8WdbFyOOP!3HpFKI}-tY#x%01IKrdk1JeELf!Wbx;HnS z$Mgu{mi?LtHfxbWo2LPb^fca11uh?>YHGl5p<|hNK0AdE_yaN0BPX%w0?Vsgw@|jL zR6)RM9Rw#~u|c@;RYn>Xive{?te{=Sdx+x5mw9Ffdoy^STF<|sfvs;Mx5LFacyC93 zqxz(<;OFDz=sKBqN1``^!mkXEFUg!lt5-Y_n1GQ>8=^D^Hnt{FLGccuNN@xaEloqp zwCZzVN*qD1s$>>mH|^pOOc_bFqFBcg{IOMUd5U0QgdHpUY(z1Qbekw%C+iM~dv=Y+ zc45+E@9LyuPrDT)mjLM+;xMy+b00kz6}!THhh4haAV^0(tc1zoWE6Z5FS|2w*8s?e z$QDeLBT4xq5q}8$NE*K*vE5>Z7#YVHASBJWqm}>!XOY!UU}|Uyrc~yX=#@NtH>)#( z>Fr(k+v!wzokaAe9?>W%7`~fA+V9BgXy44@%N1}7$7d61OB0=a5+aM(=!<4Dj7A^f zI@T3M3pWa;v2m^TbE;J4`amU)sbB1b`4=C z!4Jh!iJNP1%l#gqJ3H&$`L+)k&}tB*D%W0Tsi2^<$SV&oW@ZeVM@t~Ss|Q!**FK)p z%B$L*e(pC8@76cKvue9!;;z;8o)W&;bP3nFQ!H}?Kec(mJ;;JjWbziM4sRab9J{K@ z;jU4BAY7E75gJ^nCB(?z?Ka@+xwd?Bu*l>kL^>xn`}MP880(u)lb0%__1N~> z6mnO^cxMZ`yk~81m_gehJx)m8qkb0Y!*?q_J_Ihl)UQAKQcU)B_k-LZP8>)fxPg^z6p>eMR<&*V; z(W-bD+U#`Z1RO(Ker#n=a@)W%*w;Lqi1wC~5E$wyzl>%^OUGoN5`X6;IVE{Y1{$O}>iSJl;Hc z`3Xreom@Y|@k`Nr^D9!TY~H@E=<+?AZv|1!hu$t2625&nzTiB#R={F3Gx`V(P4$Zg zWnXftnBG-{QZZbKIeDnyfX|2Dit#TzCr`Spp-pm}wQ`XMH%O-oKD^$F!F&_;xW{{7 zr_xKC%0{pMq%ecRs3i`yTDl0)2Zo zj!h#cVjt_$3MP*DCAjKI12&y$y(qsWWBZnz{IeH!^1Em3QSsMYC~WJk@I<1{x)*6| z6lkk+X0tm4U_c!7>qf@|&&DKKd7y-I)oWh6JV!-fqh=RiL#H1tHb=0I=%0Cv%}{fn zpr!(__hHLB;W(Ba^I^&euYzh~7Vbf#E&5=1mJd_mJdXDyRhT32jMqfquFOTD9&jwD z;kMqtA-OLP%g#3Brp%QH93T>d;`b=;xcvMCXYw(gR?gd0@AGLfREi?^$+TNd7DSSbKFJxQnXN^fGAPUSslm-Dw{e!W`)}fepHqv4{#t7I zdD{{*;BaZ$KWZBO|35XFmgbkt<9|r~pk)DUVEWay19n_6y=mW5z7v@cD8`;CX)st{ zW?5ZyTsED?MoTrXp@=TWPIaSxIs$_nrf5h=AHULz0ebE0;sNyJ_53Auge3*pD_ZEl z;F)D8M-&y@3*I>P-tHpUGh}PMKnoG{cnz=x9l1t)w%tNNy`+y}cyU@i>mqKo%(l*Q zrJzNQA>O2*W6ZjvX>_{_f=kt_H@NQhMEaOgw#MNFXplRxtdt^Oup}(dnvje>lEtW0 zQykwUm$NQzn$RGJP>WL%pEwm}D$I&d_P}5mlycszj+l>vqD65|No0BPbFlST?5AF& zVwPawOyj=ZP`*riZO!TC$ zH(fr|c{7jc2S$w1IR#&qTg~s^w(2w_WYm0BP!%gO#k-0jrhmz0ceb9q!<$AU&K!XS z!@Ob~Y*mn7_@s6aeUC9)d#GBc-pCt8o8Og|saT{&gn^&Uzun1(3^e~xJ>|*yhON_F8nNa-8*sI-D#W9o~UcEw}E(WY*zvYSwp3h~q2UUWGV`5+P)bIJ| zjJ|UH>f-?9%mH`1L8UL9J15=!VRc{IkLDmxi)CR0jKsZ*lp(2}L6cuR@eq`GBSug; zBt?ZXJJP9Au|X=Tph_WyrhNTW2@*I#20gCLVO`s*?$b=Sr_zC}{Oz5P2m|O@PXU$z zjM^Qn1V|8#&_EQ9v|yiXUdXE=aH`M`q-@Fb$@YuvGlbHM$z(+1binw8s}BNq%I9oJ zBDhDbN|9y4O**8^_(qeH;~Adun?N)uw0W9xx_s58WVvQ=-5*BmL@oC04pxrsJ_BQf z=LQhtpr*X+q!R2d6v%i?k)2PH@w!cs-P1(UNoB3I>$q4HxSVk13Qds>;-zO0;l30z z%S!P?ZhMV_WCJIULksMi_a-Fx#R2MJBH~}Hcib*5nX|Ql-mB=cfJT*d3}Vi#R|zb| z8<>F|C%!c=d*0ufXQ$-aWEkJt|1>RUqefeLFKdVR7@|q6$xc+x6D%}mJ@nASo9>@tYbmSDZ}2zn82U3Q>QR85fN zg{UQFAim-gHBs{AAh0m|8O13CYlfvdvaw;!k$1Ne3O8*a(H$`YDQ)(E1c1uvz=*&| z>%o=CEkRDQY)e!-A=8W~!@kg4o#FiB)4<2x#w)hYSF(>l`z(m_0K zK9Fkc_Fc1yw9j(*M_PZ#w^S!fueC6cU(2_*LhAknZhH|3LTs;Oc2=j)wrBUmNiWCQ9%F}_z z0+zhp6R@MB-qKX;a|zDwcr>KEhLVQ{cKP>jGa*U4J~`HC(g)Zr`&cxw#_f5n}TA(w})R9@!or-(-H=3{RW zDh}`xZZ;Mmo@vDw{ZQ6#%vg@nyf0KNR}FH=J6_!+*pW{RkOx}PPYpX`eUD@7M{u+y ze|PM(G{0=E`G4Zse@>c<`bnO61q14|S z2pHPy+nL%pSli*!GJKB>cPj&rI5Wm0J`JNj4U0>gU(bD{!82cAQeiad3MUfve z`~@NN?}YegX!es3{}+UR>=XaJ5dXDF>o0^qzl{0|p`@^&tQ_xmge<>^@H^ap*YY0; z!T-Go8ULik@3hSL2LpZ<;m>cW{sJh)CojRT`W+zC&j11a{{|3nD)X;2{NCsvRLuA% zCw`0X5B2|y@8_kszwil)Dawin0q{wR{sNGd^)~?j;LTqW{NCuF0RBmd-vazsm4LrA z{PW`5UjRk;L2F#G z*uK9uT>gbxN=QsmMh+lU1<_w^4+Fz*5dOQ`Y3cr%m`wkmcc#DT9boQ$2T@g2SWZ;o z55Y419|`u~+3>#!_8;f~FnIrFF#%%x9cm#laS4U*MqTdv`1v2F^Fzr0W{;Tvq{n}4 zFq!{k%J2Bf{0A$3;wzva+V21gDk@7$NB{uxsr-VFiSh4>Xa3WN{DlxO|NbX#GXKex z-y-~j6h9;Uz0;AEky2CP2OyLb{RQFoKmJ{Wf4Y#L0RHokXa18DzXkY*{(lDed!NHA zCn+oU-K5K_{sQnf7U{=nj&eUm7IXkN^$&yl$JvU2_P@i&@`w6=#`k-dqaez!#-{|p z2N>MnG5y8D-#8t>E0SNG4lUh3+aH!cN%32Vf9U^bh`;wb3Z|BZ_LOqgmbz9ySxi6- zWyNb{Z~8wb^zWkjE8zP1A^*X1NbswONdx2{sPd~Eey6BEP1a9L`d`HGC-r_ShCf*L zGs53H4|#E6Y5pHEDj?qcOHY7!^lwyW`O`Z61rU(y@^|_C6{G&xYX2Xo^kcvKF99Ik z@BIX?vOKTUcM(d8{(|s#A?lA!WPk_$g%EJle?<5Xo{aTxo($k~erL}lctus!zJ~{r z|4#P5%aHZ&j_jY6{3G+|KgsZKjtnqxeuq#^nO9js0Dw?l^?#)y>%aRfT3UcZ{s)5r zh`@df-`~)X?#GhnuUh`SPf(E-6B7O|L%>Yr7lXm@J*fWG=FIVRZF(BfCW@V(K0CL-OBDDL+|h3-eJ^eYj6aSMFbE`XznzCVx!5WzA6M5g&& zgcc5lc7Useu7ja~;g5+o0HvMf4;}$LnXsL;qYW;@p94TfK~RMX(8o|p*U}J|lnT(_ z*wN0AmdeJ!hzxM-(f5x+Vaxgo|5!8^P$Y4|wvw82{sG|D*BmlKekg;hKtp){N_mJt23kTj!3B4h(yaC#p;j zPv=PcU6zjB)zR&y}zif_7cwOHeXwMHQVt0HSpmyY%S837m!+D(L_P8(k_Wot_yky<; zUb;iC_Tv3~Putzyhs?bo?~BXz$J4JbBOT8t>o4ch-1j})FX!4XS9kX>j~C+4!A;(# zWgN?jQpq^>Ui6-~Y3j)nQ{$NW=b7BbbGxk1nZ~Qio~LsYtT;7*kM-xYB?}|ZIV>Yo zm#x0Gq|1lGc+%8)z)5qW*Q6b7b6OXCb)R54S`<#sy>y1dY_Fw~|c}V*d5e z%G@O{XgKTM*{s@*91l(9bzEN_jlQ+BY8!GgYtOdNTW}kVUs5v~^V?!RJ?oEW7JN;o zFL#BRtlq@C9vE$U3HY*7{$wC-e)2;k>uJ7X-S#x=YfJaE_U+Gd_G>%g)50xWdyl5y zU^R*-no?>^Lo-<#uT-y>)+4;{GuEKdP)09WG5km2;cq z+u&}~02fk_<1_s5^D4Bx`Q}LVTYG(vGlyG!F2M~`X8e<533YCvN*&HDn4@D<Wx=Q|p~2)>NmM5v@eL<;A<2 z<+=s`Vf6YY6qFC!+l`N0?5N9EOyH!WF*t2^>wxooGB`M;`_?iy$bzyx?JEl> zaA_~O;7CVEX(#pGCLiUq_+!uyl5w0?F792YLCYIutK=Mw4kOn zboX#ba_qCCH-*F=@p^acexe&yisztfkt5rdA`s`&G!P_}&3efZf~D4$Gx?^kgpImb z|0bKF7B<_Y1ZIsbSo1M^;P}Di;*Ie6K75Rpt{g4Kc&p{*7QeM=1p3XFp)xIIlde1a zc$WA;Y8!a>N;R(;O>@R$mNz`SXE*)j2*aG2#=${-{2F%`8xdX9odJ6~9cge>p>Qjg z1M94-esE4vu48IFqVFPxr&G?Or=YbkzKmbNd0p)9CV71Mc+#{~lR&Ei4IwhR)p*}Z zr8U?E_Y{CWUC}5k&T8pS#2?4G)*UbLEC@WK(7dxQXQ)4GfO^s2CSo z7*IZ9%{)nNxVvLXLmGHU4(}w_t1}6_a)2MyQ%ztBvmXdCwhlTb-oPLJcFfb}Bvt+loWRT)ng zn|E1yJmDpXnT+xkj*lPhTpHAb$i@{ihad7)JN>p3BzWq3X9V7D4SKj}+Ag$&dt9&k z>e_e~I$+5mC1vXbv!>!Qao?S=wKtP+EID4Q%C?Gx+pHBSsnQ8}aSM|W<&wv=LoUxB zuY59`#?hrIq6x&n3|~=_g1~2-a_V@Z z6o`twWuQM+Iv>V2^9A-M)n|C~9BO0koFiA_=Mw zs#CjeNr)3qn&HW)%^g7>CWK~}D-BQ~6ubByM7S1!N;zxsAsJt9qOIkX}Wt)jF>g4RW800^qv>}qaI#)_WBJfM>%n$pdlna7@Y`C zG*K)c?--U5d{|!JAT*secXRDDdxWMpZZQOv(~x68nodpM$p*IR(MxWZORaylxs&hqK)=AL;`oY2mOQxR!gTt*;M+WsP;B3h3xTF9Nm zats^RHuz6#Ag!HYZ+tLE|f#)g$zqQuo*C{%lve( z-;6#3rB%%Wt?Yi{g5To#ym74GB8-Xc^Q+#d~kkfLfW62t4x7LFZ8% z3w(V1BnoR_-YQ0R!mSu4*U!$v>dAv|ji3k_VRvVRoSfFAEXS zTgzs~+tR~_vVeCShPaiBH0s6le`8E7nK@52}i(eN;l;(6;FX!_$2>pW@ zseac}lzIY|B1xaPG&zrsO}T;3Cpl)9DAfcI1-%sd5KRt}^wbzX-ig*~CgMi3mRLH4 zD8DxIgOX8+Ip^@F>d5ExIco2R-NZ=l+;U}Nv>n0M%+b2RFT3tykKjE7eGOiTcco1& zB@4RUB!iVi?WzV39L7xUa7!ki`-gn&b?5tl>E6`RDZo`Rrx&FYs@ySIxqDuyj_f9q^^mK51Q)5RvEmYRn3~ZF!9QHnTRCt{TRm7L% zL{cI#^B@sPU~Eex&MFTma?%!xmG(HnvN7+K5GvcTdKkYN*BLc}qO6W8H}|O?cG&B> z5ed6fxsYu&xm=WeAfbl$)?|BZRMc7M)O1uMv2PbDtgH{|$@=iQoWroNNP0SkLD7(-Af6^>Cxx0)9*Me;& zRf=xgYAXhOCzv?~18-&2y`;nd5PyTgCFd_1B#VAKM@Ss(U)wf8UlDM0H8+aAU2cOo zgT(||0xc;}Y1DET3Q;ny^k~o%=L~GL)GJ~Hl>Orf)kW|wPU2FN6iKEA+p(bIn0`aY zU0o22L+lYTTx2*g&Okov*A7e~BdG%2``~uK=`M#?OL`G+H-6$nn2K*s5{aZu35JfP zv=>li6^UwBX9Ynbg(_=9mVtm$MLtdMYqM5PK%ueE8Be@*Q;?HA+xY$a~~>17?o0ufpvTH|Wfv&?^XozRfq^ zq*vjtT$tXWx(f~Viq9(8K%+seg`_Wx;bTe@d|+K7$1r%YqwAe&&WS5%Bp61Kvtmba zYUqV4=s-dt^z9AK&{p&(968x;n++8Z40OcNmDcO$z@Z5%RIaZw-ZE%PfYjnFcAOg& zXodM0&aOloe%Ds##1X~Oy;2-twM;OkDJ0$ASt=uNLi4rtM`MKf5RGB_Ay_Cv(=<+?qhqiX~vie)Cn$k()%?E7~*Ax77ZVi~_; z5hz!U2FXdA)Kp$(`s9K6ls$gQb}X0P7{d`@ zVin>B>$`-l9<(VVHy#a*8Oktf8Lv*!-JyWLt-Hy7KX*|ctS3RiE1&yV6Vq7(nh5Xm zG1*gIE-5<4w;GW>w!9jp{fpHlco#kxddy-Fj2^h_<8 z0@DduWviY$GSr@#W@}ePdzT>W<0nl5NA^T5xpvd;}cxJ_XIP53ZMhN9HamBgv zdRvU)_&~ros7|jxX|IkB=1=#HKiquL9V)=#ds*BT>}NnrZ$s%LPHlu(%c-r&<@$<$ zEn}zvp9Z=aGLT$Fp7qW?dOk8bpAJYSE=P^j+ebW|tm`#arYL2*ZqXJabcu(LPeYBxP6gz(?oTg?7x2|jj;XH{moqCj7@s{dMS!%^fW8-m3 znxr&p`2(<&5!c+uIxDbOTPZ$|LPa*A#tG7ri{4_drKHRHHIDkwW1ZWP(q5mJy6k=q zQ#dr(|N1<+M4Eo2Fbpyu9Ge^ynKa0;fYEeFaZPbzfm*Ibow5~AF~Ev%b$MFgVohhI zD|Y<>b8YK``?&h7Ol3DjYPy903DGk-nM#06tD2bWQ+rzPLw@VrJ|ai;oLIcYC1bQA z|46Qk>g~R8*-;AKEo;$BOI&4FXmt(eB4`0wP|oSMsUE9dm0Q^B zH`(}`jHznJ63lb$P>XZsOfndNO62HL)K$H&2&Lv(8&-iLz1|r0^9H%IV||@O_r#dy zEuZ$-L@YmaL3yK^aa*jDho=GDVz6g_?T&Q#?hA2=_9HoCW1|6xCRv}q_>@kFSz-en z9`Y6Ziu+oekMro1xrbRk@eIj{oEqT@|8VU3*CT#DLM_~4rEj796bIOtT=8NePJ+9v zv6WMlGc&286Wm!9~#X`JeLn!C~Q+_CQOvEvzVdsx}#&T(rWYV6Dg)A zrG_F}k=Vo`y)kd&omb(XO6OR$H(m>*+cHXtXfrz6AReH+#n;NW9(jf|up@8{mwgl? zBG^LP2~1RJOy#%{^hEVN?(@2QKHiKMHMOn#q&c-7qIgmTg%8)N1IZ1)JX34a(W;~y zARKKL$ON%*>Opx2om^k=(F@GQK8&hCkAQCosHuoo>_dJc0%)~ZU|jWHK-0#sUr8R6 za$CD3Ej86gX9i2id4EBz5*6V*OrxrrZ{y-<(4Kmm~xRRcKz4*@84+4cK}m7 zjHw!+7+j+}g&cZ%61K9oCBd$i^4JY*->zpDdNw@0@J+eT;F!!-#pk$sKTn;v%3$ku z94EVeUTEaiZ?lbD75A1kn>A=FECE}!vxEGSM|Ry%UaX>2U5&;#n+o-6bGO|E_m_r0x0*RK2bSsU1 zYn?-yX~Gy27CPiZTlZ&je=ZDG8&JB&20wx&q(N=j+`x}opuq7w!-bqvYZeas>@9%{ zAJzHgxlJU*9_aJ2!cAt5No8)Yob z&pD&w$H!~5rVAUnE6yS5s*y8Z1(pcIK6pN>u|>nLh3$$~ggtB2p)_SM>-ll}?1zaM zUGg0I_;0|0h|(?`OX$-g8~P=(mlydiM9&M8@DiVbnI7O#l6?%x4PMnzq1>F0P1ps!&_@+Qk`JE@L* zG|J4GZySXd1S{EpHG=WHyp}_Eb!u}Gm4B*Bo<9{<(!Y3`BKdH$#9l$%a%;4gL40{5 zMD9@3$Dlou6G(*!n+=wP`LG6#FI8WT3C<946^$5fyA@omRwp!g5~c*Zs{Be>$_~dm znqX1A99KNcU^{()H1n)@W|?s93Xk{0gcO^UUKLDH<~MXdbOsojN(e&f^!bah+goxk znXa~3{aWyZxFS*lxyIuIK4KM$0K@9^#n3ye z*mt$GK8yr?{D$Dj2#Uj;`3xE=#Z&0!)$F1(L!E&0mojh_o>9x4d6cQ0AvZP0;d_Z= zBk>95;}82vex=h=>GsS;pyHL*1Y)D*Eb+lbuBl+@+4y}RxHQRDDJ%+_Z_$c6S-uv? z2kQ>I%MiJkj)dkFG%DqkaUTxbhf1KX;%4tMdkGhaz3wN34sTEn(m|J*A~mtlBCK#N zD>)AGi*JQE!lS`J9`^E3r3-RW=bCllBlhVqP>$!LGn%Tuz?Mmqgk4e$Q@~^Cdxvud z*%CbGbQpCMNYif3eqEiWs2bt->DD~IIuR;n7<0`_oK5pU7fm*Vp;xk4cUA8~Wt;54 zp^JKSPBX1X38?y>A+q-i86AwPMwQ754Vql;YaIU* zE1j3tBz^&*t4|DRXkn|I)mdGXvi_=++{@?gzcFLQ?4UGVF}w9~1@2;GuB(VJ$7a__ zTt$lsm{Yz8sdH$A)3mQPyp|$tZq|x;kiO4}d&Em`$Le*>L3~y*Uegj*qZO)EX3$d0 z33$nE>xThHxa?>g;1oIknYC8!LgdaCQ6ZzVE3ujbrzJ)=pv|{ro0drUWNZw3d?%@T zGmD=i^TQ;#ZrP}W2i~SyYW7CpbSF`iuo;6N%rtz3$85M?*l5r~P#3Q+n>BHhJMa>8 z;i@2aP_^{L<%6wAaVF%V1`gZrmH_$vJb* z)P1I4a?hAzjS<~Ei!$?-72{h;$3Dc$bqT-9QaL-8Z816i5r=i!I>&nsHye; z-pXf~xb#O`n%{*!gbf?lgGxh_=!P)IVC5P&c@+B)WIg!T!M{O7Jr;U3214eo+0`Li zG*j~1mdpuX`|KsJc%9|kzQ-Dy7Gv7DPfcRD+kOdnAI3f@pU}M2EM4e@SxkO&K@?Wl zk_~Q{fIrY7Ll`uGOU;MdUe^RL!_q5!okBV-uOf**F0$xw^@gg0uVx19PNX}Gd4k7P zqD3!g9A_SX-RIFMPBYi1=6lX!W!HLJ$_KPW(u6aqt_vO+5# zoYqP#mWP?_o1<>eamuTJkVC3o_$i0Si#p23h?Od_jd2SPz(JBAP?QHy_+`0mQsBWA zw?;@J5z+)gZ*6FO#;%;k`da-Z%{3oqV?yL!Q}fL!p8OqmDWd5~MWw&DiE)V8IBWd= zj65u`B7ekOv^zI|_vd*7#jNwfZt_RVHf4j3h-`D(ti{{jPW3GVv2YCP?g}$YvJZEx zztn`6JhG404vsj?1q2o8X0-BL@G!OdV)G*^k2j^!F83U7A|UG*_(D}>|Sacj6_ z0ZI>`Kvl_@hCA<}24sJA%UCn}+?%HTY(wGH&cNFdyb636q!2_?=KxURQgz#$0lZ4e zcuPjJm$&2m$3uP13Tu1xG(t6@&F9xOZ|P&yJD+A3f_{$G9d7*~FW>P=4gs$5(f%Y# z*IUj6rCzezz;T_$77K6uPG7YGv1}SwY>$PV`?CuwL3q{c*OCh5_)>SYB-S7ynuw)KCV@(TUhH0jJ+3)B_#?vK95Z2 zJmQ(tf>#EpeC4^GwVrv63Xb1$Of7%_GaeoMcj7!D$1DAbuidkkw@+s>+ZJygL51jb zJ3VCguB6ZdOCzY=G29Lyfa)jkA~0tMYia}bmyOWNakb5-;{fmv&Ef~z^p}foI`eVL zTmj~9PjB#s0vU)G#5O99BR;Xkf{)7xJ%ufLtpQ-ojs`b?kyn4O#;kJh!PMDt?=J|s zLGSzW2o>_3=+&`vfJprONMP=5Wno`EcqeDHl>=j`Ts_4&2)^^Se;m8$C- z_UHeJ)!`r8_dk#!|2t5_f0N+<3#ftXe*rc87gqBBFR0$(8*Fobvykci`szN4xxEmi~MCLtg&B5tn-HxDk)H%yWw@en~pt z<#i%HcExDGXtkhds~C~%@e(-W@;+aCZ?DX3W?#Q?5UdSUHYVttT|9ylQ#<)0`}(&R zA0hyQj^4gQg{zUHe|kr*rUo7NcUJNX7q52$sjvW)qHpN(JFR;gdlTl~ ze99e4s$9PJ0AD>{AHfSV+saj|<4=&kEFk7d@OGs%P~VqIbRTYzO4PU8|3z|}#hyJ- zIIa0HBbV&F4%GU5V(S!E3X1L~^m7U2wMAhWH7`RL_D$YL= zJL%QhfC}B9%tZPVl&Z^edx(YYt_?o5OqZuR>5w(c0?nKMdoljm0+xGimN@^~v(GFq zGrpH}cK+Yp>3k(LF72uMeX@BH+-uLs2?uW+HVWuX239(h!-|Nv(eNj*U7_j~J?Jh0i6mplXHmk!*=h2AQ>7Sq{*RAG4@AFO8-k#n6 zp&&w2UbbIZwzZGw<9^xh-RtNBYi9qvTSv-{fL4G%8@8@ce)*h8VyWZdgs8If^(m3Z z=F58H#Ce}=p43q$rucbe zIxqy^_e*GDl(&G$2sQVk=1-E1`un;1WLJl6OXY(BqInB04zpGwd259OmB*Q*4bjz} z$_&WglUN&fwu5-zC2i#K>mKY*fp6RPm)1(K1Ugrmu2U(A)%%`oKLo#U)XCdfgPii* zqmk)t%`hfo`MbLs5W!ftX>R2EcJ1Y&T`OVo@{vl(=&hoEIp`m*)lNmt+H3~)ojG+6 zKZnLU(YaJr9gbSx;R|h~9WqxQ8_}5%{y8oMGyiJbCLgHY?4W!4y0@-9l7Qb#o^_zr z!Ytinj8u7t(HG?drgYBX_D1jqy3X~_Bq?KTSB!eq!$^16kUS%OUtC8%LZONv@BL<% zDvnjB@7n$&5k2zSQ<^PTqm|Mne{EGX!Efb^#uJ5L)9EF6`p@ZIl9KGY&H9;yqjTqi z?h%_{I&KB%iZrHe}j2>5L%XtwLq52O>&=W zUNo4#8GlhOZ9`!I*M~go&Q|*QlTqyf%jxMSM_)QouDv1Snani1A3ehX*^WBb>Ulw__9cmsPU9ItoM5iIkEnjz9XD7?iV9qtlhw<<~Bt(Dx zQhYL&!RVasIo6y|m}q6S$G^C>P+zm>lGepKn!K4NB3TbZ?QMs>)q)TcBG0MQPLf?Z z#IPW)oDv!&Fs^t0?-vQCR=Yxyjw18V?mes0)Q`HnTsY2D$HCSU>>AU%5UGPOH5l%3 zf(hN6l3_~nMd4^_Bk_a$eX$&8KfDCz&v4Qx@ZshS_Zq*Jwvrh+l+T4M|DfZ3Br$zx z(xLZPrY^fjB%d3YS=kkY`O*exM$gj<8c~?kOu`9q;#p2PD4Jhylfi<*#J59X#=`ci zXpS{P)La%gDZZ27?qY(*-c{ZT2nOg5j%ITr^N@ExMUr#D^`=ZqBUL1v!>WBjX!zcs zdIH&?GD2Dx_z9;uZkj^i7qNB^QzWH_4sHAUBhpSrL&Yj9*v}*wwWTxW`@FGY*3vgy z`YMcqb2=O?PGD7KM5qvISGEgbrEh@5yCtE zKgzzdB`+@t7Plck8AT|7+UUk-`jMUvq9sTH7k@N8#xH)*Ooydlm$0_*Xv{P;nE#>? zYR@UtFBixCF@n^c^iTCinUgJQ_B9tM$S)lt$Y0;DvnRZVeD(_-=l9duJ9$d9 zX_NgZqrHR%3H5pdma2?Y16TwB0idEW;ByO`8bH9Lc&X>yw4fZ=@Me;Or)ww*=!4GM z9coJZIR#6<)nqo6>HZajFgOYqV-<3(n84 zO$oWrll2J?f1f_N>4^gB_AQ)T>Pt7b_DvkVSyH*;*WmeRNbcJ-R1*tr)>n{e&K`e; zl%1^uty;!(0{l3`a}2*J!ODIuPxE{qJO9JZK(Z1sKW3@pv?;KLi^qs3j1{##A1N^>G!d9LjwK5D-=d*$>w z8m#?I@-~^f9%Q5P{!`(cZT%Knm}BLRCRl@$CUhqwIaKR}kwmueBeP9wT}mMN1x=|~ zq2yy2l~!hDo=mg?GW|`deRPQuJX+16LvGDzj+UuF)I8`@Z+&i=X_ZkKP6)MM2IgYP z552=Z^<`O-Upkm+ExF^uaYW0_ZHngm)PfdqBMZacT>!}+HWrK(#yLbntR;>XN}@U z1@V-Xf?T?UTBu$jV}jaOpYMxI`Zy4US^QhlaNB|PXr2&}P`yP(3|gk^#ifFIMT6Y* zJ-y1t95gb;6t5zNFQx&ykSJre<)GipH7?ry3%0~DNajnbETIh4EqoaINEcXhRD-5>PY8I+q> z#Q$`yrB@ZfSJg7$<)k$x|Dp30#oB}cDtS#lRp=Ea)}Jp$QZ>3?^9O4mwNZ@(?mZ2NJ>t^ozs~l&V^VDGMwM@inF!bGm6^Y1prcN$K-%OsQ{&x+t z*k~Y1P_cCmQG4Y`K^RDHEV`+9Rt>0o3RIfXg%CePy`RjJs1qMj_bQV_c*b;u%O#Z&aBvSM#u;PJd^$T`~i5N*ug@pGe%B@ULi$<){anMT36vWIvL@VP|V?y=sHKd z5jDq2^hiwD%1kQ4DM438u&9*D0~gt=cD+l54^Yr`ehqp`G`aL(@#Lob!BIBJ_Gyg7 zJ@iyOW=dJ9QL}0}tI6AsNhU^`xrOhU+KJda=Nvyh1*Myx0-#Eez~9?o`y&`ZXTNuD zbpC0T7H>%`d@0q6r;E)t;rsE+hMHTbs!;Fo8eJ5@!@)R#u^#Lv*j0E3wZd~bPzig< ziw>a^tq#}R%uv=}+hXnKU^9)}6?EAp1lU>>(>H~Q3pr(6J}LVI+B&xGds1<>(wJbG z{kW*^O+6zg|IuF=JWsxR5p6#|U!{G%Y7(9A8CG_aG{mS3+x!sNoR}5rf@*e>7UqQ| zg__GC4IZbmT^f=Y&f-QO#Orl0c_T;kzn&&-YePWXG$ zM7xl#(I;h>%?FS|XNm732dQuZ?>Np)I$R6T^XavT_RFRXw*j_-(7mp^0lq=OS1K}F zb;FF(eAs09D%0Q%2{ z{QtD|;XkcC|KFqlPCfyFf4+_XQ4DB%lmFv3nUIe>cdO+mZv8VcU=Sl$D%nCLRlQ156TAJYCo4gJoi2d z0euEeY$ru+uk8b0xglSn|JKcYySzCsB!J}UoL_P&|7*W`1MVS^759hN`^JA)0tHb8 zy!{DO4Q#(Tr+QxnoW1lPi?%C5w4l4t`|&_?=yu@SzXMxT&{@FRar#dAn~7mTU{m1E z`(fbCJoJ7LV)z~jeH(-tzK;aH(nH^O{$msH{&Ea01ib4)0)1WpKBt4n>-O!()q@%D zuhqbTL0|3ij^Fc7(Btaq%jZBy^?1XeGS%buf1D5?e1GozD{s)z&~;hO6YAp-_{IK& z-S-Q$fX8mqKoQ#ar?ET`o1zFs^q zy$p1=L-UUHq2UFc?a#gWf){=TPqwF2zDJsmm*(^TM(5o=&wC$T8=hr@Ip)-k-h^*j zZxThXn*-N6*Wh>7p{@m8Z$v(OqL-Jgmx6`*?>a9KEeB2D_S~Pl^#DG~y7uOa9X^_O zky7xEdtpC7_qP46@TEZY^0M2r_S}HG!%+9?pK(G61OTZ4j$dt00nZ{2j(Pn)^@+u# zROrKG5cpYeG&EVV1!vyesWG1iQw>Rm?G4pNk`Wy;r z417x*d>?6iIEOyhp0&SwLT^?9Z^zIV=%XWadGP)6{SW~8clYd5?eGRV$!OZAQ;BAH zUl?mzSo_DTCcJsE?EL8WG<4|H;-0Mo60UF}Q*j4gy3CKoV7B7a6SmfOI7r<#wBHLv z5U-Fb2JQqFS|_L$CaH9WBaq)NP!I>aB4uji~XMn z|Mr#HldRoNRz}F<7b=%~PXFBL`tlr1_CIw4G?^9m*S&_fG9xPxM_-B;)h&bC;6!t5 zwU{>sZWA5HN51V6c%HdSlLWgnHBfy+iA2^vjvnt(&3lYgQ1*t z<=ffu#*QOUtsa;Q_7DYmtvNFty>*BV7VLPSjsLv_`|k_^S{w$a492)DF)BFVsfmWk zm^>YTevmJ&wjO17{SOf{P|e#Y|65^8^rGvCnTaEC!4&~z#19K3(Sr&R-0c7K7ZKSvQsD=>1c{er*d4yqe^VdnhkIl zPIx0~wRpG$UI3vN*LTYgPc7TtIsOi>Itfb6iJbHf(#>PzpdAl#yGZ*jUNf!Un&#Zq zCdTR6hRf#A54ixo#OLXUC1EYyf#-)75W%*!O#QWD2d$97MO*6pw7rKLXla%tawtH9 z#4jP66k-6#ekiVAn%=)Pvp0bH3E5SyId;tMRuBL$@TFZFCMkj8P0EdYSS|j)FCJ=Y zNM`iU>YOj^p&+MR^C5vuaN~l+0}$e_Ao|G;Kd*-`sZTtY7VUzO?9k4%6uJ&;fxvZP|(qgglHTGr)8K(<`}P z+2wIyb?fXH+Ytt z*c@x61yTTqcsp}0Nfb%u6q7~tC`sbiw1ceRvC;be86w>q6j@urJ z=0XRDkb4K+Eeq2~$AE+FWe}R(fibzT+ z5@m@!u_BH2T@~x+ND=`v+*^#ywie^>;HPd6&MO{&S7IMf&ReT@7Y*6KtZEx&uJv*I z)v1S%?LO15qfCKlj%!?te>n7Yiyg#*TKWN^q};0 z9k%d0%=c{lG1Zs|cG8s(3ib;g65x6rsiqOMc-L-jQq;=EEoC;!=7t!t$31?;HX}?WfZo53kIK zrAK@bFR5dIcL?AeXc&m-HIhlNnH0)*8|(Vqv(5$>Uek9PbGfsya4T&4bB-hU_97bQGT3cR{!s6BytTkOj1pVLx_ew5Vtc^^rX>%AAKU%&Qy}Ym0 zH$?JPJ^DAUfADA3{0Zt=8Pf7#Is86rlV_T{e*%VsyA!rB2kjLGxc$q*0XnC3FA1_L zA(3wY*kYHr5UE^K9?TWTfs|nWf@Wqbs2#KzXjBW_O5bYt2gB%XQ3^qI`PP-P-ZDRi z4JX$gd6H{8CD5+`6Y{c|0LmXE?0Z+-Q^9Z-Ke;{P?9jmy&bQ#D!W@R#g0~I#aiuK% z0dpjl7F*g|8;`MsOV;QfO@UgzVm@77HQe)ZG92p`-HxrYNF5@Bv@3`M?k<5m58E)k9A2p!EyszT?isL3dBlaT z6+m*|PKyRXrA3@=ozBl`jz_BAc|PuD6u5s=L3wBi>(+hzi~KeZ7)AkgsLZ-if{`q1E?-7 zAN^TGlz5O2y0U|SO8S>Nd`~(QWI5sOx_!S0Jh-Qckr(oitnt7iK`(59^qJH(YeTCZ zl&<0%yiLHC5iEtKE#&$_T&0=q&^Q#D3IP<){G&TiOET}?7F(+(b5ZVFw|J+`aZ3V> zwZ{o4y8BQsUTDfC(jL}~)_~B98|c1)d1c{w;{nLB;J&om{R>XVdf%SArX$-u8SU6% zv$}68Uu(WZ-NtHw`ed1oo4xeBNg0h@H%)X54Sk2-&~f8I+@A3rzidG_MoO~E^R;Do z$wM$DR1TGZbtFt#^F-`vDIHB5V#^ZfEG0Pam<{!Bf){Qc7Fjt&hwJ+=(zij?>jalK z{X2Jva~=InWS|Jy=luEcMdclZ*@~|VIm#UW{8vuMw%tB?>6#DEEx)josE4nc@N@sC zT9$&JOh7~cRkT>aN0YQ1 z_g#FOx2LpZ!sC>vA2jqj-)qFp@|@Y@>9%V1V@>ELDGcA@iZmg!N^(R9X*Cp`C{xF9 zCf=E@{PA}Ok(ec@`T_$~NrknI`;!A^Tg0q0zojv67B+e;yMPdJm~~Ga+1$hJ=QP$X zMo!&1F-Ft|-iW>=a)BU8a^iEZ)7ktgl#9U=WdY0$Ke?Vw_P$IwgbfC0t|=_C4miB; zzbJE*iXeO2){{+9COhtX<=BHZqI*0KZmTxi^%Hp0)+Do?lQuV8hUDh6k(sk2;8&6z zXvtK2B6Hxi92{G|^m__bt>WTE6Nj?8o@E*Bi-bzOT6X4aGSP$bM3kuo_Ea-wUFU)* z*N{LlR65-FKJ;kJiI$aup=o4zD>O|XUxFbM!G6N>0Xn`@%La7g$l3Lku) zszqkxWQW1-ycDDp6PcKlN3ldo!u+a{{c4buXI})5AV9#anjFb&F`!jP_APt$*69Jk z{Bs(2nlW^sD6gMCz{GC=k!1>)tj?AD`^LM8TAH`l^wvjsaJNlTX9O!K{Gp%zo5;i6 zG`Dk^qNQEpZVKW84}+!UDgWj%%ww%iiMIP90d41w1A;253KsKUphe@f!G-%L%deC1 zp0@L%PfD)d78o_-Q4jR7VJ?}2Z42$bOejJDcGBb%>yH=!HIJ1w*;fRdm6@18CFJ=W zagR@yCrm2+`DU#Z1%iUq$)}f70Z&JVK2ziG%iwCR?-}(<-_E~T?T}+OHyU9zqGUa{ z5PxPXp{WC-GW62_p=J8WAs)7huZi#}+rG1FxGv1}(=A3pCRc3}c(9F0VVUvQa??js z-8gilRy!(~F##VE@vZh_=Mvyyh2&+$TH`>Ok^b3-;t>>%nY2l@khy@X4wO^W3) z3PgAW?raN7#O@sYvwlxz&d!>Su~F;8VHqmi_;2=I{@AIW{jYQfGc}GB2PTWnTy-+{3zf6imwDpJYQ~KIPeSLh4Pc%?d}_zX|(9M$$f50lC>nKOZ!`EwHfsu~B zbCfEw9^rW5Y#ZC3da*DJW2^2vp_#Bw9<>%Au@M}SvEB*urHsHMBGjU+66bJbXeax{ zu_G~guP5*R7QdD*;pNZaAkL8e6fqx7-t&8Z`v8cw3&_2%OCjjRWlHgAW>LooU;i{_ z;U{v-?@Sxy1J0u;aOG;~_>M}~bV zIB@ei8MD(=zW%nRXE!3gWn=5ezQ-Xve~R>(G)PK+mNU;@^M0cQ;~3WZY$e;gR-3#1 zXW^!)7AGKxMW`!Gs{0R8wn(1^GUTIQCMp8~6mMAdjTLJbWH|rvBS14-nC`ikW(7AX z8jkr~-nt50EUh7{9WjN)5$yeuhno`puEmLoHYT<&N|A#d-kRMN;Y$mk!~uev_{)2~nWOz<{sw_xp|D@_5v^XybVguvBJh$c@Y811Y2 zE((Vuxu1~yrpdAbW;}lm+_^)blF%+8@8}TKfz}mDftL_*c~{h}&)4X)y@RyTvHHKS zw0)+;G~bIyZ6pi}WY0SqO~Z^iFkrwi{5;^L`Z&bu$n~0j5%gU51*7^Ym|$-OaRXoi}oasi#dQ;E=^_Qq6$ zdhR{2Y+zzDJ9=GW(!+G>&O{Wjs=^`bsL--CL>jK%GD#3(J`9dNpMyImb!o}+13u%E zd{;fGnuFa36}7=69+A^?CJW0IIgUFEbN+7irf!9w=4{S~>Fp5@RQ_$^!w;9h4c#vs zu}3SNF>YlaWBH3KM3PMw*(yHTK4cp&6$OFjNSfQ!VR9B3C|Ak78{5@a% zy$={Exh8=&tuRhtL_1}OdH@6Ohb7Ag?EJvDI$Ya9Zm?F(%yWBTMvwt700|%ZE2!?y zrb+l@68sgr0ZDq1#R`8jxX;HCPQW#E**KLX7yNZ^CtNLX;63xJz!|rN3B^=$NUf1H z9lg#~it^`UyYmeJ1;3nq+U3h2=$*L-QMa;Zg}oOQTt zyDYKNO|xUdf;4df6D*gT^ZE8rnJfrn2w=HwC|Z$!l9e$rtT?f<$qpj8gsYbumj214 zKhO|v=hpl8L3eOWq!)WWh|6iPrsXq)_sdcQCmZqYcgPWvPLkj)=aMvW)F8Rxef`>e z_=}x1Vm&yS#R&{NB{fPch{BZF>KB74oSLuHR||l+ea|b-K6E6qDmGdwCYKD>x2v*F;qD$Vq0{xyW2oqpNOnHZr81JkR)F58w{+?CwQ zJw(Egh_p66t)So0SJ8lICw!EbM{T83(&W8%MpB7I4%)3W*-h?$`FKo@5_*)int0jX z>!xuRK*@cbPa$`vI6p7PZY;EZ^bGoj?uYDuvOV8$@ANIH+UeI$FH0C7j6z{%3*IgX z1`XZ&J=S&f0ojrN;7#?k^|-H}lFW-<1L&E&isWf-A*Pja5Uc2i8WQq@H`Nc$J&;)5 zi@=VuYNJmC@VDScj=#^6Jt-xyC*&Xo=`D;a3m!HM&-R?}Yf_A< zjv}E78}KK*andsm_&k9~S4TU7Q?H)9loykMEkfFXMsU3mRXrEG%b2v z6x?i2_al0-iJ+XElfM;PRqE6JK@ zMq$xCM3;Iem{G-cMXmPD3vORTB9cT~x&3hgb)4@@Dp1~p%lGo5jP9oeBf^tQXHMj^ zta?w6_2d?ZIz&e;Ox1^_Wp<)-TShWI`m{oAd{t6EHex0rLiKZzRXB+{G?ZPT5fxxI zh&xoh6nD6Qk4xAL5=9-H5dNxuP;WIzZ1VJN_p}{>SzQnJckkGf^-#f*cUUvnU#?@@VJ>Rt(tt10EINFKp8AvG zQrD~=*>*OwtOwzhvjz-DtJ|R1r&V1#_(nO~eLQ5+wjZ#XbWaljJJ-Y{zR(h#uWFsN(r~gb7wnPxVSkwsx&v>I5mKJo2qqxbgAED$x-y(77EgN zP{h!P?HvEBX1RQq@@r{3LCD=6y7v3}%tXno12WNe3(;~S34$dYfit(YS$g1W}& z+!fj(wC+c;9oh|LS<{54IGfD+#4Q5(#s$QH#Wtkq*kXY*5K`RRV%*m$vErB1R2xO` zEq=)1k-BR79$Lm@gVUO0#XZel2@V~^{e1%3bJm;907g5|x%xbGr*4wE_1&AD2%?sf z&4`MV_=f%97SXr03wtV>vKK_Ho9#mHy4QXR$Fbe#!xYMFpK&Yz6Gp8%!hV zDe?2ZsR!xI^Wyh*gfVzwQjCx|nrVAgrC_ss6govcs=U$QFYic9T@Q|YFyvq0=d7wp zNb!asIa1$7b=pV??(P=l+wr4r#f{ABwdSv+m$}#UvR=_JUhI2k0v+u>quPo0bM#hy zPjl@QAF77SobuoZ^t|UyE!o$vRJ&mDz`kgf!)$d|hO*w~CrE(ca>?2Ych#F*@=61% zbEOG?2SjIW2i_8*y9NPaKk6mWGp{j48D5Ro*UR`hW`#aiwy7FyZ4 zf|=au5J92ltqx|KEu^|!pm>etrlvcb1mC}li1eBVrLfF6iCH^#ZXu){1w{xg-nTk3hb#&FxONha zz1~)0jB>3pqq(OT@-IOxo@38peqafyj8uDAP8qaJB(-)rt_}5UJAbjO9fN3iSytaG zMs!o?X>eE4s+HV*ZX{2UT1k;kbWx)hgE+Ei4&{m1KF0K4lDxr$V6mu(3<Krn4SPDhlMopve$Nlzv03-9k{;*H%18z?Y2 zVY1hcdnwVB>sE#a!BQxgnU*%YGV9RhPwYv+pKM0*GeG|B&kO7Z^WXWRpLcLA>$}3k zd>Sz#X*C((H3(c<>X}VH8|*QSp&GaSn`$Mb2RXhl-_w`sor5qv>lCBpj_4i6F z?TNOk=K;C5&W>a(UqqE=3BhpY>9)rFF64A93aptbtLRe>;ho7aN9a9B8y+%nqZhfu zMFWo{S7c`!;04!ITt-XWrqk8TA}C5f%lEj?nty^T*YDG-CxeU1Y}xfC(Q!r4Df%tM z)eilJZU1=R`_ZBW!bubFSRbk_JZtk28l?73lV|p#$sFVyAMa`a`2+gt%zpCNWMck;#-u@kL9o~Zgz3j5WnTI|1BctNKMCR1K~OifEW6(4c#V?gH$+SFAv|NH<6#2;Ar@j^Eo zwPwCVA$>Ki8A$f&)G*Y^?{^HRNHJi%mtkbpXPW>V?7^$-(D^w`d zG7f+8wH}7bM=DT9fENy?XTBp9A}hT?h#^PnA6sxD)`y;4rD3MdDTa@^_X$=#G%l;_ zbLt%9yl-k*SkvKEtcMryqJrG~R29B`*_;in2?@C)ZGz>y6VCQH+eX79Or2W_LA%WF zIkPL;_X4ky>UGMMmEn^y!QW&TmTG~jcz*(uDL(wB#cU#gXw&lk3_$92=yHo|DMZ?{ zeL59nYhQB{Vf`W=C*xF2Qi*3Laew4!nnSRV^8)yJjnYH;NQyWinj z!t=#o_u9NBm~pK$-pT-@wFoT))J$W_^%-Q6JKHJ+3gYWSM&zqy)>_Zd?@JXczCC3q zwd^)iY7MCbJq4zfAA1;1FE{UZgyTpOi3}~{WL~HEg=8$1@}ysUz$J~YR)r}XGPcYzkuj}(mPhhh|pXKq!9KSBV)dO zG8d}(Q!+EkDo3^DTo5jNyUgn{;JjPd2sO_l7#ZtC{PY1VF@5L0s^G$A)312mE}2S} z)P|8264u?J*TR}LPK9-}Ob`f{lmW;1r}Zb9MkY)d{$evSx}~6&eUKtwAC@u?*h+)s z3g;rK!PMQuIy)l(_aS}0)pxgIKpgOGL;85Kqb4KGO`8IGF~#u!bCL9y9N!lyet2$p z%7j*O_@WKHmGrj*@Z=_k<2A1$cp6>Zc|ONEaOSh`$HKS$GX2V6hVg90q12n9l{bk8 zx*RqYfC}f)ltg{Hgv5`})7p$4T#(6av|hUw8u7N40>6>|1P0$onD)CA9L%6k=;lm_qkYW;SS?E6tv{A?EE{%S^E>)Wd|GAt@#({9b-g#2E%&pkH@^?6u ziPd7fNDA|#Bsxy34c2xYGjY6`kqNNot>2{(pGZV21)<8qx<4f=nyCh>%x8aMG02%h zFPItGULmArKP?51JA#SYm62YKf@>fDmUWY}8OmIFl^Mw`Z1x3xX1$aon`uLYNjxW# zOA99`vm!>(1*r&4X2z}mt+3%G{PZoh%~k6$^<}bNN*ewI$^U4hUDmBcfet z$7P|7fa6bBz%In3-Le+&-T1G2YUn~kj*k47{-1w7=vGHF)?r~w*BouH+_*Qi>YiUv zC>)P-@s{9F0t)vE#KV4h&m}sFxE=p7fAE$YZ$J22Ec^bX@#NIo=^5y;i|}32$u0oA z5vmUESb1JQtV2nW65W5(3{!7xnVr|2c_4(Rl>QRwb$&Vrj!(CW@K%amvq?)iI#yW@ zs!993ixZgtHF+1*D0%-R*iwY+8_HCFfT~;;qaNMz?o8X_PY5dw+IYnL-qW@l3?OPi z$|xC^N`LMuiq`o0+0viQO}@_OmmtI*M$BW$fBuO$P9h|NQ4_kBiL6pG)UxwnC08(S zePliGY73SE3K>$_u9|u;xchCdB)hu`Ydi-vRS2z^3vB>j1j%`&Z$@-l9i*u|9;SQH zcM3wB#`iI$Kq0W4MmL?eDv9o2W%j^!qZ4J72Yz{K56eYNFkjvt%+G4q)eIqE2#PY( zeZ`A&dVtpnmhjW#c>8BXQyP=|!x(@6+H1Xhu8SUu=MapUkN)01^pWZ%&U=YOTv;~I zp0XqZnQu3|u5G-4iIG)Fa`(e5$Fkv8k`>{7OuNyMh^_mdMN5oTZu$AhU%Yz~W|;Hc z_K_#PZCTXH-eOLj#7i-nLSdY*IKjQ?;ja;XWJdPM&)8v4m^%0>@25A0Nao-gfJ_s%#@#ypeYn{T68X_WZMR5~fX*_O+)EGF&YuYH zBd#zpNeG$)ypz2o0+ipJrgevS5%1q7jkJFR>UmkG;rZXkuM}eS?0>t8E;yIGK)>ZL zJ6BhAMq!9$(bPIvgQNzwnyyY>o%(Fxf)mxJHI@>UxqH(@Xw@|uL)PT70rEF(8$&n3 zPI?Xp+fU17R|yK}VO7~6*?Tprv8AKbBdz#1z2%?@+)KP_g@gU7u&NMc^c$ro*=O5n zj$z*`x3){lNe7Ze%tG1~aD?x;``0I9-<%xb`7M2?^iAgg6emWGy7lTL*D^NyNL0US&91MQj+vk{ec>T4GnBX(>%BczpZj8(g7Yum*s)(|d8o_?B6R^4} z*c2B&FGwc3W^OrT0z*&x3?tQQ*PTx+7#?mOmGh@YOlC&}age(gdaQS%$`H9U>&sYn zE@WGwlkmsPIP=kM4+aK<#|_Gev(cdgQcSs2C7SOzwFDu_?b?#pFCR|5Lv~wOG-TZn z91h_aNYRfl{$(9n7m6RMd~Koe?4SRe7TJF8zhg=GX;IP+LhjsnAs;HQzJJMF zOv)W))ZdsSn9%t|GN11I2@5Pf{jT?$1){t3TMMFhid?l$lSaCdi3+oJFT+tec@nK9 zxf!TUd}Ssej_GTiELF!2JmszR=XUtyt)6 zBctec4T%N-tqXkjdFI9&jxWP7L^k%3QdENGh>jpY+b9*7ozj8+IDETaVvW=E7Q@Yf z9LnhNSo6S@&j$kRg+w{=8Up!FN$;FjWS|c_o#GmnPiY$#Jv;e(qPg!aFV3q0QI%Ip zZ!VXVz13gk7p};#WHyf%a_=Ir@gAGC>M-<*Fcaw{Og{E+$HctY4q zV<9v2xUzuUqPU^`aZBc3$!%VuvCl^Kok}(KR)t2jl3za9XCV*Xl!&J-``EGlM17T{ zT=D&s{OF6FJ~fisjI<1dCH?Y5Q_RK_DFjTXa}(iWg?-qpFKzJD>Rn2S%?ZbPQ~D3m z!z+`((HyI*c2k4Z<-^I=9;Ml{DMx;Rb@G_>5&8OKqu5_8$a+W6tdF;?W+qxQCQP@0ym0c8ed)Ls&4)t`u?8mr`D@?YqyN?V_ zQ&o*s#rQbPvloZ_keh6=Coy=y4RLYXvu~X*QKd-t{Z)_H39`u4M@E$QOS2TUUAvFMB=GXqf|XJjoZ> zBHwIG1;TLnOi4_RRRO%=;jk{Aax&Ve(fIt-l&Ek@<$CPv>x_Rj?vE&L92WnJ@zWe6 zs%cp~K}BlS(w#)Y#XP(My#&l_%>ki5D!6Cqia+o~V@&(QF>;H=$IE5~h!TuhUBta6 z9f&mTe9A4GwMsDzJJqOGEziLQBJ;NXBLq4Cz>(Fxa&o7TiDl<1kEBpIM0buQy)V1D6klffrFk!q-tWs$dn#cQqOVg%# zP5=8sNV^+6y51K^@{ji4YW-Zer`BydPU7?Xf`Ysz3R35Np+Rc5stfor08hs9@NAF0 zcz`M@iSuP%1SVY_?y*KKz^7TH(b~s)?O5L=EO*+v9iM}c!XA*#zf2>`W_NFIA46JW zebJCG--cJ17j4}AHq<<(;U(4fz74z5wswBzeLDhAI!it2+ii%|Ye1iOl3pgIG)Wh> zk5@`sY^!BT@+6#CW@r0$;i`0c*|pYbxvL*1>1dT?aTk{*o$5n00O_{36Q0#Y{pFm) zX(!K`kDu$~>3$s1Bd{1`!fC+Ghre73O#Zj*9r*-v~weMsNW82hcp) z{cH90;GY>N)?VA*H{p^8uf?Zw+#lHLAdfHc$u}0GC*IS{Z|ny9wRK{iH`d!Q;wFaU zjSb&;HL&ELum5E@R)jiEOlplw9cw81t=ADfsw8$ci~qg7w$dLJ6O60>woMOcDpb<2 zG5t4?^moiRi6h3=-@`_@;ah24w99x#I)+opNu1O14>T)zxnNKa5 z84cDb29Gq66H9@h$ZWfTw2upXgoumz|LW;j&LZ{i#khh>Tcev<_nx90nW|FEZ)Dg%mJQC2zi)d&Ow7c8c>2N z@GlQ*4x%_d@Z*dcqCBo|TCZzNBe8Xp7z-~)>g1#`V;E9X%TrTJ74LcGS(d<{tHZ+d~BEJ#?GsoaXXmGCju2Xz2vu}<69u{_a|j{svC zN@)_%t>CHvXItHxYD1$_kHj=^*4&;_zO=*dAP#TLrJ&i5^{q;qG?e0VTHsl@&PplA z_ujy>3?pgd$8#RdFkr0G^SiQjgDDX0eD>i6qFqhR@$Y?;%DV*cpM5@oXsL3}^?5HX z5G^`bK{15| zJSLK5w1DpXnA8>PX2;N@cua6&TC?P+l|Cjrp|n9J%^*q>pFhhy7VY3Kmk=4~vCrFs zOz#W;A3Yu?i5kq0;dP~lN)@PcUEC@h+Da8Dl@aR40Y01qpGERG%%sn5I}ah4E(hx< zSi_H2G^9KZS?ylp^nV<9780n5to?TQ6dt8Onu)EfSLLl^! zY@TxNRX=^8l^UQ{`da-5x{-YEL1pX#L#g$2BntlnJR$Z}y*ca!wvP8!jt@3-ONE$m zffe##xf{6F?xr69h5fdA)!@>-vEtvwmVdtfm*HAcuL4bhYX>soS|_!#64y4S#dWRQ z7OqE~4`TXt9Be-|rg5m~HM_%F+x`!%HQRE7kg#X^K)N~@(Gz*_v382mTohwR#33j7 z1&xMabkajtAdnB_y^AnqsCM-j_Mv9crNlX@{W7B$hDwQrbTMBMspgv*EIMp+z9JJ2 zdSC<+B!0^8uE|IweSqk-y1Fb#yqQiz23O-4NdVNlAA$Ah!sw{RFuEg0_EFQ2mJ~X_ zXf+2Qx=?YwC$qcVa#TyzZTlcabFe4+w4|l!k{~!MvkplgwWFj`^r3QQ1|b36D)w@n zxsSQ2iC<|Nk@}}Sf|-Mp_?17R7k*QnD6YjTJZhJtd4`tht^U%B8b({t4CvGeCbSKB9-RQ081U8na8S292v3u!?55J48#+@R0ck zsRFB)dQS{)d{Xc9Wr->afAvQ4nwA&ZnX24(x9=%QKA;k{ec}#^H-27$(iB}`Bcdr0 zlbt4Ha5dDxUaX@%g$6nv2`Gpa#@Np=MzrKZhKK>5H;Fj5$tn;O6%J2Cg z5{y)-XX_bvZMRJAO!OSj{g4bGR!>KwBS|*~Xql6xkD)r$?vtMFC^`LV6zzJSAw9*8 z6f)~S*108fiF)w$F;E0gz|F5OrPrkj)4iV&FJ4fj`|+Euh96+|o;^5$W-n?+^~au} zCVZh9K6@Oh0!<9m5VzMW@w~0nTU*Q#dR`%Er?!05W4v+q=d{#|T@dFZE3+6h49@p? z0xcBtjb(n$-wG^i=0<$-Jg+&Or$$*K4tGi!(Tt)%E-u5P>fT)9;QR6bj;OG<{=RHd z31Gf#|Gt{a!7^cKzb~?&n*FP!H^1(^vY4A3*vm=?uWoYTk5NgS$*)rg9X6=Oy1hzn z@5^M(u3CkHwQD6eh64 z3J^h-gzi}I5$S5%EA24qdJnLG&Vd39}k$=AamqFO6(ZoB|N*TZF%MZOn za-~~LBc&lF$ruQ>+v%D9sEuZ;84#8+D5OH!p%HUcrF_UdE^X+L(sw{uxb4wPhDOOw zUL9jI1Tn8hOohS@S7gHfQ-40%XbwpaOHdDKLf)tyyqy3@bwJ0kj8}Y8u>BNt+%W=(4X=b(Ym-fs(YR8Tb}(kRLe&`t zn368d6ef+F7$l2f=gzz--E|uHO%B1iHSpqSnC~)oqek^hsB^(t$2Km6r2NkjRJ}_e zm58?m`GV`rq`I)ZDk3wy;MXwu@31K*g2)S8glM5hIYyN4d}}&TDH+Qp?k=| z>*fQK)qr>(N!Gz&m(hYfOQ~N;75q{|b|X{M*l?+4lbRVZR)JW6uB9ulR~F-tB6gtO zJ!9%I|ClOT%r?Y`OU^r$E0`SM^DZ=)uhmfRpucZ2?Zedv%mvPjeNYFuPKVuUVGRUJ zE1?DxL3+M%&bYz`RRTg3Iv6|>V|<8Ml9~>==VV0>fKfJ`O|wGph{t|1-j0g)R0 znKQGpNSlS8z}iH80bwnA>E5NacX6ppb!pPJa0Ralx-ByxtljbIIY;~GV11!;r=3-a z9vD4mpEok85IVv_$$`Q?Y#O-QL!)u+_e76L-zAv2A zO=s@ud@3VTPYF8^(-v3N!A}8C%+g=E;+N+g43j5L$QkpN5Xja&x73&){ zqWiXAlT3_Dxumt*u}r1ro{x3Bxjw3fjDHzZKK&jf=s(6caj(61pW++Fdc@PC45&)n zmu*-2w)xEVk0UO{8(N=KDv~8@*N04rCI|(+Uy}RXCy-OrIcjio2)h^@p`Ao2t7fYQ z3@RrbUlpPqz(V>T$x;5W@D6E`8Vz~H=Y2_gl?XCqxa>;R6x?ULm8bBlGk>#d>j8o1|IP-yY!8V!#%5@jexP zG^mO*2s)Dv9Aek8Ek|CEku+P97S?e{mAEOJj1*@ z3CBn^ZO5>7p!UjGV-Xm-f)>-{{LcqKK{RJl18DB~yQR6&Fp_t>w36+IRieDO-7d+N zQg8MRLJ7sCB1w29HS{-EacfQbjzuy>eW&DW->Vc?%0h?xCOsTYq2UAq(p@!`42WBb z1Dayz#l=^l^U?d{*;dqKo-8acrFbe3{iKqbuSnc)PaVQzJc(f|F4hSFV3_FLDl$?t z2myffM6niHOkw0Ax9)FoQZ3i?Nnj&WCq|}WE0Z#Y;OBny*MPBAgG*UA;OERbU@Q$0 z&0%brrQRnIyQS{;W1U7sfyMXdoGOXDfWx2fJqQv2D4xf36bo|cBhl^ivmhD3c{`tN zNEkZ|mCo_rHnoi){IoyYoG=#Mx7$9iC52ppnP5KP73-Rz3E5#zQXk z*uSj1NDGW|t#4=Gx#tT&e4Ix%nKeV~XS|(_615FI^|y1BgXF(uzZeT3Z=c9f+eGM3UY#UnpAcGk& zcAL+=?SmwemqXxxKEOk(=*v@ic*7LwaY+y3fi;d*kD7aDdxIb}0#9urEcHMpcuhxQ zTW^5HAcij5;v0`KR<5bG{eo|d7qD*{KhYj4v4Fk$108;$)qs+JviO%_STg7Z$>PAU z%vEVxU!XI00}_rrN>sz1DYqt*04b#6&uXV{-2}0;qTj%_O;ZUR#9D|{rn4jv(`|`j zsWcsD9d8%5a~xZ!LOkJylPzE!`J_y5%}e=tBwy(&iq5dQB3UAVt$X}9LEJ4*>GZBH z<%BN5zvzV_ydTK@i0QJD6ba3|y3Pd$)V%9_@?el6y~&Z`_4k<%)m1;^@?44{BXBGd zAjGPYa9lTfv?l7?j&DgfwD4ABKkSwiAM?R5m6rKdJH5)kU6qnzt`iuGaQw|AHSY?|qkD*S3WDQa|@o=+)>lc@)V8=#xF=l9Ya zrt;n(+zg$uB5l6X+{+k(3O+N81cWHAywaMx24eL|5830y2#| zXZCLDadkRVd zf$Am+uNffLj8|=*TOG`1+W}&kpuMU<<1Cq9Ud`X2Eu-nvR*++-L_i?T9?g#5E6D^$ zV*^;Onobc2_5y_7t6Oc=&?8=-akv(ePTkKt{x4$E=fkD<?GT+B%JIVDpjlI5o{8Y_M4*bCc zPNLQHp81U-vIVR#jPwmTL_`nnVgQt6`au3zA3U=I!BQ%k?G1k}cyp4xexs#Jo8ocN z*FaY%Agno#Q|b>icJ#pOjvwfaNy?k*$Pcs!hF!A9Z*=&;)dx!c$>LvzVd3Aa)6_BS zAw9pf-cLxcfng7GhlbV}F*{P`2Jw^On0LSz+ks&z9I4BT=%_{&lbDiTNo}T?^|G^L z8EQDMmQ*(tr|fXvK3&nn4YU0tFf0iy&(N}%60sI-`()c^iiRUtgo{tiwlMtl3=qGF zeBEC@3cUvOl-_33F($^EW}K7tx`ByH#F#o__*RpioZc*Ga3gmf2-ZxzQ*f0cWI-a?BI6+nYzDB-~DRAHj9IKIDLIjq+q%=MuXKE=-BZ zbKdaZG=cPJ2xV%l(uBC2-K0cDO&S1Go|ebnlbps0WN4>h4_7O|G{-s$9$h$_L&Q{z z8S8DeTf&gis_9?rkgmDiec*HzZyDb+nWwyZ;7iWCX6P`ghOrYn*DY?=?7#sHCi%=o zwChRcz|If~-#20QMa;L!%b+XQp7e6%aA{=LP%oM9nHi`PV|mQzmYFgMd%(+(ZV&an zXW+t+ti2EZUJ{3K{0fI7+N$9mos>s|P&K0sn>k#m3T$qjmV&N1eqIICbXLSgU4-*8 zi0#ptMecd2VtecIh9SF39arlbpJl2G#sRGTod!S_wJYps{4yN1HOQF6n|ZB}J>aJw ziU0br_Y;j`kj$Ir^Gef{d1W&oY~Sdv zi10NDEUFwoWPcpO+Peav2nSLhya8d02&2M{9NEw-V6PUGKns#daYsMif-kzdKA#?r zy<*Pu^?pD9d%Ml&Y4B1@&;GfN2#;iQ-=9Ob_MnvX<9i_mF6734Jm(=LR|tjPzYB>S zL~}mdkYz@u_l*ADHZ_S*6q%oG&ZZK3Pd?K%Udsp^Yae;%`Mk!ICg5RC`@DAd@_Y{T z|Iab;bufIDnA7*MlI)S;uv6d1(3R|u3{RfgC!K~caDSh2wfgMs;oj#`fOR^vb=vz5 z`560sLJQ=%b0Dck-{5%P(W%o+?(Ti3h13|4yFWJI2C`cW4Y_ZdA;4OOwkJ(YB2#8` z)cY|>dLDe4VexX_CXDros!e;FJl3IG!mCIVnV$n}-}hxvSsp&}*H>cp8@4VZYbPS&SXHMh3GlmnSVY_ za>eI!eYro84O$D0t;buc-EWJ%_ITH94`fO}IUjGFP!-?-&w#Sm-uZ4HU;oiT z-lwk*Hn;(0skrwyl#nDBx;FC-J;Xxant|~^mF&TslUMygHYuYAm->zm5OVhW)L3HS zuW#UF2EkDOt@{JCQl5GhF|ppb?5KBDoZlCY+obX7RR4kdHcXPzl-T{oi4SmnK;@q- z{$*&ELKs?5iDoH^46Rp&O58-Vr6J71Gd*;1&B(E6s`;;N?wS9lj^e|-QP23Iq7u0j zdliQizjl+sOp$qoNHR53i?laA34vw}XwbN*(4*X73J|l7IbBoJ6)lLRa`lwJEUbW zYkuvbb!^HVSd<&Yb4s2T_G|bz1vRuN6X|-nr)%QW2vu0TeZ90K;hu;gcd~vpiqG9MiW~VFTC9LCZU} zkIcy)p7?5gGBV)d75I1x*2#$VgtJ4#2j9z5ac}4IAw9q>QyayNjW5ll>}eW6`hG|X zszYM!&yRYPc8VmMpFOC7X8VC){@yd{lZ8Uiv%&6f#Zos@dOk129Vp4b`{>h_*aN_< zebp%S{lXhrXJ9~oTT<4Wr#N4h zSBThr%&L#29F9x1R-RwS64xljmpN#rim6ZwpiJm?ZJP9k<%Q z4A)97_RG;r3)wkr2@L$EbWNd|UpV5?Ed9sLjxzF>-`BiNm(J5i0_esx)n z{sRGBSsJyye*-3T%FZTWdGOT@6uT{6EkE(tAyZ#zhI!++%_-Vco!)qFD|ubcPki_Q z)(1@f$>LvzVrdVo2zWY*MMz8%0&tE-q+igWLzKZ$FZ`M4!5{-oOODo&0S>(!Y5CUJ zoC-BMKwZ}2J*Y{8HBZqLc+o)6LkX0W*wqYc z>8M(aJQHtR_*P9Ea$7&qz9S7xG*<-79`3+(EkbUlxrwqrGNz-&WCT>GQw)`)M2to- za~;Qw+t{0W1E_PFzj@>XI)zKm$l5EO(Xhp>=1|KJ9f0--2uJ{a9l_cKk50%UVJ1-@ zHu=-GpJZzB37XhNK$G(lnZ9nOZRY7 zukYlhYSg!{Ye2duWmgZKYa!<&5+`nB<SBcXZk2*E8hdOS506ue- zU0agTQjf|QR(-mdIun^jsyd+NcpSkpY-gsp*?c66?N>jGW{QrJ`T2(Y zr;j?iHAj5V+|niEFHQL~qnU_Fg9a=l<_Z96QA9v0iE)dn_S!{_et2?Gm9a3Y4quoX zH4rRA6{lB|;c7S;Rm0LX_l~R`M9LWF1?z{W(LC3a@T#k+XNM>jT)61tl23IpC`9LH zaZHL3$(Cw2Nk=qZN_Kr>FuUhi&&2HohDCO0d2SSF_8DruHNXkjh$P*UlVy$_99~Vs z%o)UnVbQ;n=)jOBte>@o4B+urF7+^6in3p*@e{MS-iUS-nHp5V+rL2?Xpt~)a=*F*IUU>6f#c_&I0F+hHsxB5%#Xcz{8|Si8q%oi~t>5Et@#AJ~y7_S^)qCzbDDoTKdfK$?hE z(c2g;^sNMeG8@b8mHq=VT@|2KX+Izq!vfDf{r-St2gc~CVv>F%xJ|WPV@lqLPp^M@ zmevvCM=o}Lqsc#6{0m_$lOayhW64?Yq3tU0A4!j8Y_U?wBGK%cFm}R8Ir>p{er60Z zXAa=rB5Fusa(l)IIml8qQ%kBA|nA6;0HU>;F1MO4nsQvXEW20>OgyH2e3h`HDxOd1z&-4&P-%4!s=f>`bDX zd)Sf%q$YSGn^Z(3C)C~=xU@zhN;B*zvdc6w=#r1o7(g;SPA<@7wi)Y&7&Jx5j?qTW z;8|~ap;&5^AjG|3-EQp&%RcSZM$VYfTo)ZjpvrC{Uvp98cmf3XIpSAMMwe{)nQlky zVJX<<@70m4{e(|Sn!?O=B%4zP$j~+tc2ezGw6>NQDR*LNNCl{yt+w zN0lrOVr=TauF;AwqE(TAJnVydq8qeoNTbLCRjN+Wv{f~kS6L3lF*W8HqxEJ-tGe#M zr42n5j~Dr9XTer_Ws_8M`qoSWW(fybpAqUPk$aDOEj_Z%kj`P}=R>iKdPkQm-J zQ=`?wVkMqrruW3*~HPUd_HNYz(KD6Sbb5G@hS;ZVmFfg*^t2ssC1s){9 z#pJ6WV8f~CN<}}|B&q9bOV#edGA#fs^s;C%683SEKx^NY7SjtWT{>BhB)$?`c_J1G z-Ig?f4;DMp?3!xW`o?a&Q8bR{53C1(MYMDNz=nSpOaA%#Uxj1Qgg$2EYT($VBn->b z4DOSSoi5kPI&INTGM!gyTg74Tsx_o`Ck>6|T*vHm@~=R#j035jswS|xnT>4_*gfOj z>=my7v7<=nQxQiw(S=2rTgBf~L*CYqt-l3juQ^Dr5+l8jsMf5SzlOzKZW$C!pkA|o zxfuNlNp=ngEEs3IP=-rY&SBt!Z>^dhv(__y$p;CE7hYrV6-?OColgrlzPUmIT|K2J zAb>nthxa>5sc8&}`Q4*((MaL|1Lm*Gi*$%X*|F8=L3R^B-6OE4rfiqy@$RKVKJ$%a zIW-f|a8s$-QALh$x;<)Dx#quRS${+G+K>SgFV?}el&Rx)CcH$+ntTXy!!TBx)@i$N zjj*N3hNGNVw_W7T%kYkK=Ztlva4~|+9o=q?x<(XrH89QUs!~0^wz`NZr)Ns^$(I?e z=vi2^J|~mHjINZ2p%~?9J&fLFVvjshaV6ux^#zn5|3y6@2(y~Gtr0nPe5*I_de~sN zM?OG9i0g=VchrrvT?}Ze8OVbYKtha`ty4N#9>kD!xvmMn;jiTwj6t2!ry|)uu9}2d z%`>a>S5m%{Cg|9W@ZdT7g~3Whp~SCre)r zuqO>-jr5MgzY{~B8GX%Y&@LE>GQa=WMH0}=)YUrd>YEwZ3DtqWr}CWy6u|2ckBoH= zc}aDG%e=z*bNvvwlF)pA&LIJQrN)roo7&^F3eWxHIbj1{l~~@t3l1xB+IsdO=XG@) zonw}FDcA+i8z%`xdzKQgaYA~a*SQrS zybhEUju^Ri-v^MK7zMqtKIe4?3;{}<{yyIt0aY|l;<*n!U=Cqb8=w1=sEC47JFn|D zC5UxZpU>NwnpUOjzdW}&o1i8#Qu}@Tm8rz1osYH1%qEkizpYCPz=$jqpgB!Z4d7|l zU&_?qmTPL@os zI3O9~=)8>nh7A(lst!97W#kwHp!Jy_RPu~LP@?sXVqmzpwKPaKQO^kYYFJCKJWffgj)dRc^2u54$7Lz&W1Mu3Kbk;>Ltx}D3@LDdRp0;ShvOj@d3o;>| zvxW5dOr5m=+J}T;NP3J8B7mh|Fyf85QzVP;ZBG0k!Yo0Kbb6k|v!Fq@r|5~OmgWv| zu$r___&S84*)xw6D#JNtAX z=rnJHymLgAlvF}N_g$$!gDjDIE1HdS*mRs=Ifj$goHZpbBbd(G)KYq+KGj3B~H!&RNq@ zEPS1@6MpvXB7{c`&t=4Vspss3v3E>|w-i`JP?7ny__VB8U$8R0US{|0243B2yJ()D zpwoOMOg490HO8FjeRIoRvwlG&xCyB|%;)(JH9HNHM5nqZje#@RV)o?iF?|HXctqyV zecaJNuW>Jz7`#gYs3)6aViU;Y&>nqzO~nT?Ox?+TboBNT!^udU6!m4Ot*aJK%hA`j zeAu|gvaNPfI2cnX&3Oot=5-y*YEBXp)u0~Ihv+f8l;HPnPJOjQQc~V{GHu*t2Ntxf zoali<@AfHMmo)YWFpFt+-hdf|zH<)VX4aMWY*lC%iDhB^$55*>qcp3|OmQ|y9@bqx zQY0iv9IG+=(ti_EI*W$>sUE+|i1yL0JdskCV8I*g-|5OV)3N5+vq!=e$KtF9vZM6w zKUlV?b01BC?79QVg6NKx2YJMrNY)OBGMukhe ze7)}zNY+**50S?s%df<2LcU+eNg78M_wV*OeMuRpv`nn`X;nh4SIG)~pYG{y3Np!a z8&YH6P&TIP`|_ww9?i`2zHET0;&Ab~oGEKXqZ$}4FLQE44R!TUg?=tS;Ep4*A5-C! z%pn4U2DOA~8Hpz~vi-3`GvFr;NOyniR>D$Rly>{rxrDJ7YU23V#b><_4Ai$7WtndG zwm)XKCmOa#Y#%F~ptr-?9v`coYy>8E0ejO6tk?n+Z0i1ajT7MCqAI1XzrBot1y2Az zUMc(MngIv(b%Yo5po7PpWBzb@AX&x<_Wp5_sSj)}*ad{bsV02{mN{Yyu8*OF1Aq`k| zp$yr7Kp>6go2nBhWJ+ymgT7JfH-vQp$(qqsciRh(9ljK;iy!!nz(ma(Z@8yC{A3>T z8y@~$IQi%6e;JfTSQ*llBU!u601!=Cw*y}@4cpPW_n&s8Y8^#U4ZL#z)!hT0HkhD-RktQ#|uZQ$wna7PN?$E~rJOF*27Z&fBRG7qLIc zfdVSRYA6$d7$-lK1U3wyA%lSiTu;RSm{`+cEJB|TJ#`JyA23KXysu1i!Ue-%*a2p8 z^htPV8?5PBn+AmD9j=0(%k2Mf1G%=#ORJBR;;hqR)sf?WZ!U3aE++POS$rS^qxC{A zM&`O-*+gH5K!P0LWYkHtar5~DIUn4?LekG=jRc=P2|Uz1Rd;4}FIEjtW02)O+}cV@ zZufDMj0t+W(x{-gBWvgaJ_2Ih=eeWt(%RD`hmF{-@iQp5CWn?`W!ojSsG6lHT0x^N z^avOu=y4I>+GlY=g24pq?DhhIh+xQ+vAcWr3Nj0lyskvG&Do_?hT#=;^Qz3eW7q;d zd>kKbszHp$iBL4w4DuabM7D?bD@VM3#LOXYw;F`XK(SQ1C0VMryBOZ#3Ys_O08qMq z8ZupSgDj$bO=u$H=PNUcyfrd zMVZ7~PLDVB~TA zyb!OG7V;CW)cf`R0I?RzOrhAX_pO<-_Q7L+&PUFaWsLo9@AD*~qfm7FI(~rI!(8d{ zIj+fjwGi->^FH1h{8X3E`iSe0;!Q+%(u$4ilYLrd{Ke1xx@~}12%m`T<>k!MIE`rH z7{p~xdO(9&_qqBB?95rZ09Tlb8$fWO@pM0?9AWNk+oD@ zmR)o^*JAm=0P1hEsP(F`&uK<;ndYkfF}gRF3lo&*$4KvZNCY9ESfx>axC&+`a7yU} zGR15bmzel*8VUSKBaF9?QJiqMHyejfdg6*wHP|hESSHkuOMkq4p2X4^Ki57!GSv(~ zq5`GvQ=``lmj5B~|M=ive~UqI5}bHkc9LYx-I5V`TzpRYBCWmp2NKM{u;fL{cteO3 z;OgxIIa*-YMKfXjK$INmMG>XF5e*m?(kU?Ng@Evcd#tuTcq!=w2;l`4^naUj|{jIxuezJs^@N?Tttz zWRw#awlUjo>yd1eqwQ!O@1gcb)pX;;u(Svq$GlK>>LUSJG?Iwzv^zFxb|=e>MBY29 z@ib`~zCu@^Nf^D}>>RPLTOuQ)<5s;0abqg7O-Xz;ptG+NWtqF&b7(9j!{SOFOgk@$Q4Ujg zyj{}l)qTYD4Y^$L&q;2al_-`Jwpi~Za-u_olW&iFJQoX5GRT^Z4iTUAN3XdV|EIfu z`8*h^mUnrES=QiIhD&0P3~QZ{C4WP2?YjLUx(y~PW4^@)!QR=Ccl#*$K35vUKB8Y* z60Aak9j;DryOac2Cp6Xs5m{dggzCxlst(dFMoM>NCu@f4BDq@>%?`-UUd z=mV*7tPlnpDr7a+As`)GQn{-jSLouFwU-hkT5`$5nFS0qyYnRDfaz=3`GLpmP4oqd zkm>YS+7UD(!jY^+)762j$kaJ10jas>>{s+s;_&No`NUTth8#jSHN=QwJLNp$l?1Y| z(KI!cuD{(KSi6e+ygq`!o-QsC^uuwbU8>|u1oXp;&fB}PIt7FqK-NBR1y^8II%opO zG7Ecqiqb+Vmmmkp+7{m8NVdqwXdRLI=1K%K8`?G}>52OG2?$EsvxQ|d0Km+~Mr%q7 zuZ|_8O9&2urr4Cw9NE(OlhPNn#wX+BwJyc?k(pyndh8mWb3^}yecgH>hlp^wezZOB<6_VD>EHwAdjemUa-kq$eyf= zSlE!J0Xl{|lcpM3?>e&^t+^Gz(op%ht^jx;%=K8OM^sa?!I(8h6TqN_3xXcY6*bk< zg+t=SnqxSL9$E|d3;&}Z$#anjTzlp^#R7J1HR%{XpI;C~Vx1ZCdnEoHgwRJ#UxiV$ z3DW6KBqY&Dgc38bxX~m*d?bQdnpHB9&E^bO$zdSleOL-ixNzPqma^r%GDb8z>tG-r z=x+-Vw5b`A5MLOF_9Sr|R8{c~C^Q7WnE(Plq>nz}({n`F1-EWjjs^MUh_K3tFbBHy zk=~?p7f4=RK-XZxxv43K48w>a2W5v^2!Y>m)dAOtt$q^;6zze;FrdphbkWrfMiy@c z&|S$FB8C`(W=$HTXJ_%ne#+{P#(xy`RjetkJEUqe8%Sx8vwf(+{@g3(Y+ZGs(NL!W zj`NQB;qZ?oNLVGl;6+45;G1l()EG;o02yR>AFO-l^xP3C0DH>S197gpzjS2->^?~J z&)5Gl6pYh`^ps;0@QhvGO@`WC=F+RD1C{lK@q9*ql|Aye(R}A9Sn_QvGQtcp2u=bL zJ(nptN>a}ottaN|4&{^Px$)C$j<2edM490g@>p$xBJ0+>%M# zQ{1`iErwrjiGx>#UTqMJ*!m0CqFjB1kCB84DlTF1kVyXm|5cya$9kbPrusleJCDsj zM-n@;c}<%)mm49aeGPI-cCtL1jbLs9InkQ29HQJ z;%-3Z?cnJ>Apf~>VKp2wCaB$4a$w3Q-Fa+TZ{Gk9dGs=#cs$j(lANc-0N9*TWNDPX3v*s3Mcss>Mg$BX-LTA zudQOHwBB6io}>s`6pTXHjNYhG2OtJ@76$`CXU@BYl28~(FL;fPfqS8&ftP(bj6S!H ztVtT$Lo!Gy(fX~orszYxKcR|6zxRZiPOcb55C>)?Dd?4OQ3ZX--8p@Ae5;!VrH%;ezu*U#S3W6G@F>t0GnF_4W(c^#(nzN8||@*_S)z-2ZpvF$3z^H68O8A5GM$WnpfnCMp63c%e6wjNz^Mf}Q9qW~lk&KB&og zQ}ra?mVR-gI^vV|GbG^@I=+KNBM9p88e?P@B;l;Xvb6(8GJDZ)hvc!Os-7s2KM&nK zR(PID;q9eQBT%v)s_M5dM^s*;iM-FT8`WDE-Bml1+*8wB;eAaP;h^s({)n*K}DWmHXuc?_8TS$UL>iREuNaww1lyyGsU} z-S;5U4&CAoY=7HHVLNWrxIK-E*@l^pQ9!FxG+myrh+Uzf?^JkF0X+&3fmGY%t zxqnU?kiAvCOMr_Rf^r#<4W%7&)5r=BLoo=_tu=c|fJ9v?7af;nhiAmdP*4i6aY{H3 zgH|$f^udK)J!Zhk(T6=fxVNCHlh*JL2;Rm~*&nva?=hS$Ihe3Em>XO?IA>_2nqX;F zvh!hE8=njx*^1nFv2d$Vlt_K{_Ml@sUW$^G`O7`m?$MZ^M$`E{#!JZvu#6Fq-PB;M zyNM!}UQT_3=tZ|aMD-V^dPTw6#P>nZOM`N*$ST9&o%jru-E}6TbtuXgs!7*~In4Og z`aK%G@yOh)*v64f!*s^tgI+D7$Bt~DVUf_GK4S)h;&PK2#8PztSU{)0FY>`}Tqmwt zqrKtwYR~IH@9V0&pX5T5s8D4usj9nME?80o&cIGFd10r^Qjab2MsRQzvsN)?%RV}5ZfuK?KHlKp$z_b38x zhPfE!q=Zk=@pYSwisCxt0a*JLMY++w9BZ_sZr~LXjto@YKI26GU+k4usXds}W8_*bP)_@Iyd5x z^Ogv3g5r0^8U0^{cNE2czW&z=avAGT2V{tvR+Cy!^KHB7bOv3n>vE^|OOYME(<|zF zkZ%^`1uOdY<6^k?mb5}4*Q=86xt@@TMk|de(52#W?}p)Kk7;7A?O;S zu4lo_Cc`v{j@uql^ycZ7b3`o}*JK;LOJj)xt;8%Q?1YvJqRJ#l8_x7ii#%oNd zhTSC?T7| zb<<=GeMWP^Os^nqDx{9%O~5%TtljWfgGhUI9sDpdyzLzh+m4#9(VBS4T0V#lQOt=f>oUY?iEwj<|t zhG;?IZFQQk!vk0DN2T0&LYj2Fe9BFQF+F1<(*9=!#ngQ;FWG4Oam zZhfW1+b7qusWT5mR_SFisnU8P-*`lkjn9;LsSBr#|4lTe3)S_tq!~ud~tX$0!&geJB;Km5gn}-K#010%1z)r)72pJd&_E z9GGfkjs8lzUfePt&=9lB3)zgz3G0rxSMPh)b5aQ3{+-O zxMz1bw5xT80>+{ox?9#Ze;=iv)E%7GKhj_3_=4vhjE>c35? z-p_!f6-jT{`&)MQp%m@mskQQ9ZvEW(R=d}xsLGmLS<+wmyvS5|M(DXpdNkN>rsI@d zQoXutcP9d1MO+*u{f0FjrmpY(gQkM6z_WWH70=6L?>0ywa0bR(NB*^B?}nA3Dkdfk zLC01YHU6QZ+BO3B;xX?qcfu#Q1;C@<^xj`~7f9iY$8l3ZHkh}W*|4!AiJJbMk1*GD zB-Gs3Z&)&#IYC6E_pYO{jS|1i%m^*rLGF6!P^d0`TAe0=@$ZQij%16OP8fdmtrBBU4(EPHga8WEdrqA zm#80-PfEJCXTQ^dbW3**O_wiMA(R%=hCM@pH`F28Cw`cD!U=7tOs+eD>F=lNFD5LUVdZky>F z_TC*Ch~$MWlF0$=@9^Bi-f^Ar(nn80Smgftb+6|i(^KH2PgV1iyZS|20Fj5P`BzDm z&vN2@TUn?d+N-L0Y)pd`L%$RQaaZ#*c5$x1tyuBIblrRLOhseLSA!{VNq*GEn{^B$Q{P{2!z zSSVqj<}(Nybj-TNh?!e{O9}&OWu>PxPj_Z3*YQnA7A|RS#$zV8bD|=hm>Di}CtqLj z>^2&ZCviJDuqjJMd-USZIB98!P3hZ+nB5-`#bZw|n0d6)UscE)s9| zzoC4j_P;xVGq8dAazYNhdw1jUYz*l$;RIqDQm-CV?OFSyqEJ~ag2PM&HCb27^b`fY zy2uwj8s1UU==E5{ujuAMV7JQczIN=4%ZV2dfT%~_L2C%KD53OSxZZJo@zKH2SB7XY z6q5T!TS=Nk1$l5Ck8XGGr43jr|ECo1DTxF)HvieTs6$HvJrn2gVxFfFWM@iI5&^q05d1zuU)``*z zwe+G>pv(%VFHHSfA_Xa2hnoDf4{IU?S$w#lc{R!HpDzw3T`qvs$Ij+I_`2Gux!zsY zC+1lCm8q}ZZW*cJw(03fL_c*TZ@m=FcEp;f(!|P;@`a!TWS+gX60L!;mZ7FdM7y6gY`W`HH}9=Nk+D!pad zGREY{NmQ(N9-eIOzu%IrTY^kBsB}CaU?A+MTMzONbij!Xl@KOzAVCRWJDcUY=MRe| zj25I|+SNgh)YFk-(qPHgVGol@G>6L{#zRvq9}@Vm=&;$@LI=@hq61`{=QGeF{bAS0 zrYw=30#9NqL09_C(nDv#K~W$adS=&qgtj3vc?&%JFGV7qQ3bw}cE(Ilk4*X<53J^l z2j0^4tkAUUBRP(W<-S)I{>&eH550Id*-s7Z`zj7|3E!U6TLJ>eSCWesbgwrH>dR(s zFVXv3n0Fc5Qrkl8ZF2^#2HMGyq-t@{mfHM!=CDKj834iRAv)#M(3liFAW`Lv>(HoS zn}P@GNV0tunMM+R9-lr&z8)DJ;z{=Y6}mO~Ivp9Iu$7l-NmU4CSFzLzP0aWmLf}yE zxp#4?-Ia9KRNzZK1jRJ&*}FNKCnHy00Q#Y`t8aqa{7*o)_-go z)I<nh}x7oV=xjhfz$-V<-z5pduzM;_t9vRV-0;T$cA0!Y+-yR*BZxK_V< zW!T%XQU}g}159_TtpwlKn281sCOx5H#!4nVEjB^1LcH&5C-of>mS|7F0eE*G9pm9a zoOVFe>^VKH{^%b&lMqE@WM5;C)YK}e7<=x%QrHNiTOKS3eA+z8i7!5Oc>KwH-cfrJ zAgOUcW!4pt3;iW_*Vdck+jNuM^1z9*R&_S67(>wZ@9ua@m3D$00ua_*4LAS=$8-#g zav#v0dzfnnMnBZi*zt zt~A^SMCc#yOCBMDQAEDav4ZjjK?LMde2#~6iF%7_47Pa7gqe4Asb$3Bg8n@N9xqda z`Qym@7|p*~c)F{)}v`?GSoi2wqdPc-8?92=qW0ZwZxxXWTydwu|UDwq}Rgi2Iu z)>{#=QHXK-jT);)_on#J2JOkvr^7g0@QCWnkKNf`U2C#2|KLMIQOk-h@esi}%$d3xfU;De=t}G|>SW z4g;B6b|{Rm5##otR4B(*wtO1Ug_Ay=Ks+R!|h=U9W}JyEqaN_o7uS znKTW;cYxIF3ciP>wizOf=orXIht|F)O^i~%t|R`O$u$dYM$?I1l;&>xVE>TN*WU7+ zAuV~3r(_RwZ`fmYhIzZvPGiE&yu9i$I;%uX8|Rrwmp?(jzh6%lJxnupKZ;6;iVfoK zG1SLlaVFn`d?~~qNN;MI-8FT|)ce=loX|i*m9x~8uGg(6om)t$R8peV;U%40ifnws z8K(7U!aKhbN!U?^x7Wvgmv-G<6B@f&Eu+u0@Rb0kmL>P9;#hLr%(4;yu#UGk?DDF( z_@m&aqt^orh{c$3{ryFVTtWu;qo24=W-GwsAp?RUf{0&~X0!zi-ZN>VG%l}Kb8%~i zHG%)$KY% z16)0YAHy#cnYupsJR^5xv@e%45Z(}wcZL$4}UsO>mb#HMH{u}*iCNO=cYkpJ0D>2!#W zffHCDaYAT#U})VARN%%73~Yz^=LgH>8DW6TkMG&nTFOaF&GkRCTN%kKNPCnJNI7o; zYg=nL&n}eB`7>2_AVNB3@8w8yrV8L4|&6lAlM#2p|l&hamD56Ag{e{!P-H9PYiO5XcTkevA z*p#IRqL40SRDmE4vT{nAP`sO7gHwcX(^Zx{kH!s7(aJ`rIBT~a2l3!))6!O^qbjr@ zW4+D7txJTbH%34*DD-)&*5%|s1vML_#`KkW5AFzinzzZUFt6hw#Kg@qlXsJ2s&K`? z*k0l9=$I?3tcI@qI4p;jRk|l$k|8Z7hbbO&1(c9OmZwT@-uq(&;q*GI?JJqbPCn4#;4=B2Jb{wUb_Cho z{GqqkM{YG8{!;nTD}OXrUF8A7Jz|%`xx6^ zdiZ*`)Cw?jC^i>)w>$6}heru364}&@fCXg7T6x(C+xB*`)znbaz8HM%zy+}*APk9GC+mS7`R|z(-d|4 zOj;3yvn_SHPMz7Jb_N%a9oJlI6YTsyCj(z${)dZy4G{pKBv6USowr^jq#)HMeCu#R zJM$C+1=8EYP2#Hc+Tu&?(LUx-^JXo@Ed0Bq4pn-S<|QpWM-vddRnfaa*?UE=nYe>- z?eUK#EldkU01?00NeH|9NIgg2zm?j~92X&|5d@rK;^v(2Y1O|GfkwkuYY^Z3AOyh~ z+x?nW^d8^{6B z-^&ju{eqUsI%K6Sr>egPuLe|Ls@1hNdHUb8-M&(g7~&PXMXed^$ecJf7lxs~Nj6MR zn=rxMW2QOds}{CQZ!q}lvuEcU>y75U4iRpc;fOrErrRbAg}!z>>Z6rjIBA5=k@C*p zqpkOC?Ma)Lm4K@Dr8ZR7#_&gZMT+a(=0PX}S`V5{Ipp6XBL7gmH>hAo~x^oJ0l)$1G zI!}-TNHry^l3I7!fmVP8XQ#hM=j@NSwJu8zKmaXdl zeE9J+>8+U=@q7(0QM1$_71gmE*+amXJ0PT9l6E)5i5}U_lkm4;oGAVTZpJN1Mepm_ z{+f1j+cg7JQGseG0Q+{_7z!w6SH>tHvr^8-*6Xk@%>Tf~F?GKWU7c$d`CG!>5?Q%P zD?QV>BZ#4`uq9K0R_&?$2cD`2uW-Z&{l&`e6|@wkSx zxf(|F+Y%OR8&C@_(4@>@pa*FEKCqDHu|5%RI^uE7t%5CDvi~<8E)KF0GVN>@5*c&s z-T986AhuVlGj_zz3kpWfp_9pzqjMumP0dSLr2aTBzJ@Ufg$cyh8QGe%rhf?y0f|=- z3mppr6~xYY}gdh|{(Q&vtwYFFjh7%87 z{5^`{d#bF{<*Bh|wExLRpG~Zyh1;x?*SLO*maHbJ6pkl~_KCpF{gs8AqTe465|TJg z+q*>q*w2r4>U&C1WF};JLn9)#aQ!-Qy)LPq1q$#z-|=_f$td=dBDQA!-FFAk z5_m4X#t!MMjs?7JbTYk@t9~HpE#w^xqPOhoH#K=r=&=bLL(`QQ3#W4^S{QcWXO%-4 zT9wRvICExV9mWV)Rd!*5_gjvZ&iL=awW|ipv9zFiRarY7V*(T`pDTP_&Zne6s4L{{ zR9ti-9runcQ%}T-6kR4F9H7OtLPlR?Thb|~g|BAik0)hKz9h18c)&S;@>C#+u3tMP zr7-8*ss^{X*g>vF$3vQYP=!e1PH}z#zgj&23-Wv-q4(jHHv`pac^C;Uc-v+TP7wN) zl5&IhuyQ0x;#+#nalu>G8b;78dUw>FAWS$q5k^+Q(#K7+uu`$^arw_ie*zZVF5!oQ zl6z*mk(Ea0rn`8bnq(LjER6fzQm0vSK3H%?&r-pSt9p6~8v%UP`5!L+Em%OO^Znot zmIf?%dpmXe(2TWy4$1PpZ~9E&y_>iIqn2)X@pk66a!^oEqxvpPmA}b2x-2TDv*+SK zDP5yPuKjEy=*+?(F8?Q{^J8ZPgD-uH00PDtrc;Q^kfB>NZC7?p5p+V^t0157iKU`K zKv{3NWbXAa(Lv%LfC5+?Pik2Z14v161yldOJ8 zTGj?r_Vs8%(Lh*uRBcG_q*y!q*aU!YyJQY{gCC{-{g>P`5z?=e+0rW8vzlS~7S$+U zzrAP|(){&pzb)JL?{F>0$bi%}&lafYv4nIJrxMDb%aGD3fDH`pv^J0HMXwE~+La(yL2s8^3?76S^=AJs7||zXdoTr65v(5RbXi@WE-9|Y=f`y(ED-o zd);t&$D{AQqVl--eUL3ogs#l|ryKomYg#3VMEDBID2Ldk(?=4C(3X?6Y34PZ|hn{LHOkCGo3Y! z_9SM$J9rJW&5smrG97ART?#Z6zk(!;IB^ta#Gp08lNy8} z4g&!#IB4)i(yDNE2<46{W#C)`8Za;#=D3|6Y3=l#NO3+|;Ts*Io2(c~6e(oXfl8SG z4dRKj2*999((4+oyz-wt4W0kJfk%cX>afO(E$PSS21(+$^~Mi1Wvw}NZ;Gvg-k(`D zYtZ+QXnad6;q4-!E2hzdEIC>aXV)a#a|4A8LdAWeB*sADm<3tAI92D8Oir>?q)!kj z9Wf(=hXB@!Ka21&jNoRgt$oO&G}+=~9QQts!6~4gGQ}s;A)PCc5R;+mlkAd4oww(m zjVMbnvU~U?>0K~=mgLw64q^}q1dF@708u1(m%0veDqE4=`+ z%W9&c@^V`!kre=K8%?kQvdi1T(0=q#BIC9{?mj`xE-5*7{^c~08?WBz0!(FkU)!3) zLpzynibwc$qA1pG9*@YtaIMH+q%$CdY{Gx7+J^7SO~MOzJeoiU?N=!KB?iq{e2^2J=P*$Js~U60nH-N z3U&8RVod^p-y;1F7ylYMz{F;rbo88rqE%fkJ7(Mrn-noXKH)gd(N(f3w|M(=zK5)) z)Q$zxeP`Yql@A%bBd7&)iNJ#d2Iy9o2Mn*e45mD$AE)32)g&PfL?wCVVDA6A`FZ>um~HGAsbCN95F7og-BQ z)T`AG1Imjmjg}MEd3MMq9iMN@P}kmJ>#Ib&cFUJnV1e==y0VmKZ$Z`_jzX`v_$}g>aoz|44xe~Kx|x5Z z9z8|`SkIZa1gE9?V|K;A+MY~E;S~=wtYkq@&q;#Pg-|>N2}%MB=_raatDERrt)||3 zQ#^TI@Rrj&IYQvMlTRR~J@e)m0aM3f31W++X(>zAl~~U@_Ws$2c2!rB6mQOk00fmd z*J}dwjD800&sQ==#q8~%n3pS5f6Ss-Y=S?YgOLtW?3h1yz;)A5@f(uGOBq3pLw;P{ z90ruVLm>?LQGP-)5eMWgpm-nhs#xbctbtZQfp^d0<7ptUB1x@VCB9Es-|VCmG4wsG zR8fKYiNDFN_6mb-$`9TE9&yr%rTuEgPeF{P%SYV2>Y5ocZ;S~z_8_OL#9nBwb42K&%-&bY5a9Ip$7%GR|I*}f^z?=`j}?CMSfD) zM;dF~HS9`FpHL&COG=Egxz*_6OVu*P=aOG(lFieH*mPA$%&f70-&i+Gk~%^eS__0$JV{ z5_fi7hXMs1ueQvfa`yZ*$fnvF(buLVD9*NL>pnBt{m5GO*v>6xA`%AnwDhZkTJ>@I z&d{hy=h?l0_p8lc|9TZAY!gs6gL^{?qjm>%8el-C8i3?1U8gy=s__$*_&Z>_cP$oO z&$jYl?xx6&uAGP3p1*ny)YyE; zt6pR;X$RHmrgojy??(&aE&K^?y$^R{)_abZaKo0OU`oPOlTO4TN_|~qr(kV~z}rn2b#V(2>w5}=)*szq%szHsY3K1aD=AK}TiErR4!k$H zmTQv_G!g^6`%Z}^aQF7*^?CR2E-|}g2h+1wOV6R4{5UcoavM2d& z%vFX2qqaJ}ludM{fJ6oeB|#kC%}ZZJyrOX;UI>-IvOCw!)352c%L(CxgWytBxCGA(53*+Iz2PC&>7URRP_IC`4;E-7xXi zmZ|@M*q-v;E=Lrxj5tBi(nZNnuoY%-^gLGhDTwd0Fd-2XfCq1%d)53yR(udK?sTt$ zV!Be)c{=<4oqIN_)d{IF79js~yH*Eoq0JN&s3FVXGJS<(+7SL}>&A6bzm91`paP2n zcsHpJ zvy^}?&;zlMj4(F7F8&)#f%ST&-wYB{lK!Y}Sk-vaHN`hU$_M13aQN9Uy^ew(z%tay&{n zvOr<~7)4aZa8#~*_9ImeuZpVDoFR(*Z~_igm6o>jrvOX!G0haH+$1w$lhXnY;4^${ zc=xY#DUwarsg8doF)C$5qIIS#P&jw9sSN0R!@!vP1jZ6YLWey4^DTUsH^FYU*K zC;Ls;aTMv-@dfX>u(D=)`;>6{$Q9RB6lCW6K7!W=qrH#}^CXQsy`J8_J5ouE}UZ3<3Z4+B$Yhr3D8@sY!;aM~}vmHyRl+1M1)=~T%jkO-dn;u`l z0Q$w6$^g1J0t0kTlFTBbp5@pMSeZ_=R#2=8eV_n7LN(2EI--{0mcfHX79OJjCQYtI zi(y3m61pnL+QtHJ%W%J!HviBM*u^4gA!@)K6xHt$6u`vB{aBm^2|9Fx1YTH{_L%!s zZJ{?z2PRKKk;IyId0#zPJ0gfLlZ74#n4W-4aZa(6wTm3lCUN~ed*TGqq%XgJa&Lun z3I>du0)nM^zs-i^et6=8_frJ51otB!Q}|#-z%9_sF+P$l45h5&esTjoP9~>YVZo@J z9^&yZMlMWtsz8kMK6@mEX{M{2&c4p#`5cQRLSp}hHc>tcDH_dFt|Em{w=^a~bS4)P zG6#oUPBeRZ2LS>{OodL3m<<>hrD{k(-=?dxec|l1H!B^crpm}m#Nn4U&{7-Qdw8V`*@yHgha9p`Ou7OD zAYp>{gWu&YVLgG3-IPB$6)=fHpsa`Jb=< zH83E*g860SGKg01-wv%M*+O&=ksITy{_b4#z=*=2p`@=yOxg}Gz;CpDD+miPiv^Pc z`cE-JxXRZ2M??5agtGBg*)xP}+{agqiwUN{nG>P_O>7V#3Fbk2Gc&kL$h&rk4sIB( zHx2Ddv3XI&X150(c(@(XoL;h+gqkMv zr+t|RnAkTvi|i9P=E_iTb|Zn3DpNUGcLiDi1u!PR8Hr4*4LB$HFkI)Km@~aw%*hAS znGB$mufJ2aDFzqHd_6N`#ooVg`Bxp32q*fNDHf z)7DX$j*0s74)yX`nlT_Te}0I}7jU4mznkK7aIBpH2kAKn@i4`Ggc*?#aNAbZ-Mo*Ar zq&VM-oPcn|CXo$1SbBmF;Lg^@H}=Pt&W5NspnujvL^b{5lf;H1i=9Mkj0|C8z$^?iEeueGO!})5L@P!=OininfYI4q! zjyFWO!^DKo@&3n}2LA7sX7Dx{K%ZCVU0ZPo0!L*Ewf1T9f~9msN1&KWTm6rR+l)idtkcC7zj5Kn+cwo1Jr}^g-D6i=z2%cPIspvTCY9 z!LWm&uOk~$s2Hs7X?h>m>n@6I;90s!CP&8)V?TxitNJJqh`7qlXpyc36|^7 zDSS>yofL7_i-zi`an=q7KFVw+ZC9uKWC)ZZ#5)%G6F|nOZ&EMK;oPK0RGiRW!p>SwI0J6`7*_?LOh$AXPpi zS{2Uk6GUtn^KD6`sk5(4X8!p@UH<3me+?5*Mob&b<$AiIK=pM0bAGa7mTGJ3V%b=)Jdjw^RvW-B&Hl!Qwd#U8XqHf&`c) zws1K_f%lHY<%B?-$97szzB+0iKmKim-4c}`efsM@0vwr@Xe`XJ1l=&bB2>;)i;j?tqTv?PzfW;Esv=3DphTto%|)Yxy{Wqb)HJ{7ap{EPi*1 z4WU*V0j};*q>hRAJaGavRAX;}q%wnUQ@D&0Wg5<`hzt-fIa>_J@=Q8=m5kC0VDyap z36S6Clc9H!(k-TZnlzProu*Ww*Qc0ZAndX_0H>^&3(%{p#3sU>rkwkt%kYc}KG0?C zV3k3)QHvGA=YF)JB~*JO(--DS>U28xVIy*7(^OSd=Y@5b`oWAxj1lDh(3=_O5J|&M z2vU;C+}HrUqd3@v)8WwJ-$^jYXJCfZtf_uQS{|Xni1t=bSe8Q-+XoP`<2EPeIGgHW`aH^#f3%3GG z&gd$lA*L|j8k~g46EY{N)2TJ`4)Qh=4hSE6P0dv!AQkH>JTL`E-&XZ24|o;Oj?}yN zr`;QqJfM&^Wyf67LyZUUGg|^JAapjGY|`RfpbTRuwKpnfPQ^t|m>#)T*Y+fe!!s#H z>kV7NFD~FZ>=!?}c2>#&-VrLpPo$qMz_DzA_H2A3vvTycUYU%c)N7EL z5J3egB{*oB9Y*$^=9CP8NQlrAy_x(j)4F=KdiFYE;N1!TByj5bP;n)G(7yuxE@^7h zWNT9V{Jgo4o;H1)G$~W%Js5#YFC>(FjrBN;BMP} z7Bs{+5CPg{Sz;dXDqON7$3QS;{yTEHk%*vi@|mOa3Jfbh<$BkL3;(y_2YZtS!&IWJ ztZ*P^)&Ko3VeEqK>0?MpP10)c^+gu^4 zk0DQ?9)RHB!!vaGJrXx4Kr-ld&?U@OQ@WlFSaIFh0tESM}wX;?03qO`?HFMyJZ_`BaC)fR?6!~$W8x}m^mRl)dbttkJAi|%fhAPTKn z{=cuiOuoeRyk+0NcJfM0)@1kFS-5wqO5uW2wvBpDS6bgnT+mk#kHR@HaKQ*GaIRyH zf9yUAP>*>)=iDa`PpQK!u;#jBK1 z)W{azJ>o?0MtNrwrZX&@D@mY-X80>D=Lx*eo=+9iv93JaBP73D27cfLbnP38Gp38y z*3FXeFaQwNGp_*mk7a+*cX@qz1rLmtVsjjZD=nRhYvhF?j9pV*L{Z#w1(u@~KRT)f5sg_@zZt&XWYuI~a766T+l0Da;W}@9U_ZK)N?cA- zhBh<$KqDuOG%lfL%82!BqQp-~SKK}g!VCDrx4;D(DvFs$y;`IXEVx9!SiwAZFqex8 zL$NTU}Z(e>y_M#`ISwEU!8o?@3Yb_cSiY$ z$*OojuhwbC1^5i@tp9P?&o%|r+OO~bin#5r297@?xjlC*MW*B0f_5|e`!G+6N2qU8 zh{(4II(i_;>h`2N641P?D73`ZSueUrWXwMdt*pdWk4)fNi%Rpdn) zxS)*qH1gl>*9XTu(S;O>7*n1KxOTlo(h@Jci!uS-kOce4AqSqG5Lvf~l6D9a1*z!W zk1`wl7=p1DTa;lzcf?s>viH+!R?qQMVv@x4fJ61@4CbHK#08=s_{?TEY{@EO523v; z5lT>mdg<(hRww_1EazhBI_)YmecCdagqm2>_5CA;R(uc%O1d zw(YDjAfp!A3eBb>tgU|mX3(>%)3xAdS)o9;>n*gPqQFoei3$$St*d{Tirhd2t{_zY zmmajqqf9q5V0hZnnwidJZ7zE0Gqqha(zp@I?b?~I;o}Eb@G93R^93}1vj?L5|4Q>e zU;k^cU`gb^b5MY;SL7ka!7?2-F4$AzN3KtBRtsE!wHM+MzT1kUa^k^GP`L)~vzcN7 zEP$}pJy#%l#glFQQ(3>u6C5{Zcj6dBSM-b)BxK^3Y#XWt!bhnPD`5c*hMGwT%vb^z zybXLP1DWS_mheNzu$&HzMhI^?gdq}fWVavt5^aWSpM@fG(PMKgg{A+v5jqsVErkIt zjy*s@ffa40T}5ejqMUjUu`&j$qKl3P9e8H-Dv(PW%~{6iqJ2ZKb?`Wx)Rh`xVw0Qw zhZ^AoIT1KTzM9%H<~2i$>T!~I*|fz>Sf?osc;8rImS|RQ{S0>A!KhvQ))YPkL55D^ zbt9w=%lyRq!H2^lD`@jI8|(EQw8hhcVap7a+p_%A?n`CYv&>h5li5S0y@ehDIu+rh z0Sl%J7)>R*YI|S-IbdtV^;Z`tAdE5h5GeF@x+T^0Av~>u;M0)Rp%CpuZT6KY;w@A9 zRG@<1Bdwk5&_1@JdbsfcnZziQODf(rq;DoR!l%`^05VcbuF+dO8t~(D@-Wa%4lFIPA;^9 zY}1ryQ9Cl^;;>hRr;>#)J?^yU}LsbLce<)sfw`EcxIYP?pILM zk3H066-SJ22mpmsSv{~pLl^*C z6)B%nC9eFUzSbq|ELoV2-qSRNt_*1qbR=#xK=D|4yMN@J4IpO91u9W*O>6ss==-bP zJZiu+1vH-i)nl#59ZC5GVVf+9(A%AggU!&Vd?a#c@d^wa7#@z0jPgyk62xJF?S8&$ z@<_(bgAWPttNdZ|UT+lC)1Twcc?xIh9XcyRFn)^;6u@!F>}4w^8>1Pdf~&A&1Nw@mm!T6Pjp{R5s|=L zUy8Sta~#T*8`s|>LemU9z>It(Ot?jK5dngW8+^hCVz~kk-1GbCiF~9Zg@lN)Xp1lV zcGx+L2x!=pPs321!P6z8TRA_#>{&co{M`5X!W3Q&!q`%#b8oAv-vmJuUb%ZH+WyBw zpjXa@z36+0GE1649%qIQ_xD*MGnz{At)Va@+^tU*jP^9cF%Z;6YV7(izOkf5i zBVtFSP*@65K-Em#-3&m$*y5NW#NqCF0MKSwd8!E15{yJmNQlkTF8;Q)&+YgtIGVr}6iZbStzrF(br;bSB<18o4Gx*|0BU2x4$iC=?U5rTwYL13W@ zwF~OR>(G>8iLuXInSzkU<_r@0EOsv)niu@I+ek;XX>?FqhMLMcv^Ud<2p_0lFLN7e z&{cYM!N_cZEyb0d2>7En<-<5WmXO^Lf}Fio=!x|3k%m&!B^W5xc0^bTwetnjzFl(I z3gCT*w5;JFD+&vgG10VWNJK=p?d*q=D7XbL);Tr-U8!MKcVPJ}C9cz6d*dmO%zn#BwQ z)`LU=07$wgNxmv-no16MPGm-jtF?;~&MFRrXNEqc%H$GWEvuv5lq(NKneB*0RqOS~ z^P@@0aK&CGSMAfHgZov#%lxFq8s?-@Yz;Vo5Xe}oN{KT&8fDRO&Z*4oNa^j#wm1>+ z4QpDB71$XHtxTaYEZ<`{c~});LwfkonN>yQAI4vZb8IDv4-G<@%qW0LHEf2@fGVs8 zL?VHVEf=7-LzJ{3dpqz5AI}vmS35{|k-?V&n>@Q?N16oVCOzNza!yfM*Ol=eBUwYp zp%*<5D(P1=gq;P$DtuF#3;VZNLM?y>rYHe{VeD-Yl(?W|N$}70w=LN-Qb3@QzNqWi z^41g;4>W&E*YTzeDI3_5v}eE1ir*0S%*E(Zm+y*w9`VmR1E=8!rpXaE)|5QojSmpC ze1mtgjEX@IKJ+yQ^#cx~=LwL%lj*z1R(dc>W_+JM9>7resf~?hgr8a)Q{t3_U>udp`X$L{BMI~DDnh{ryj7^KaxQ9Kizk7|lshs0pac#QT!i(lY?OAfV85Tw_MO3vGBZ3=Fa6%BA zAyy_=rArQOXvNDPd?@wqlNg{5A=FClf+O;qslYm%eR~n&0rgFz zoM|mTp|_a7=~W9mc{zQi;}ikA@A-fWghpS24r7AbyMkNQYwKZFB>5Db0A;%(n;8KK z=u7DJN9GkFJ%9=d;lm7}G9qvgqZu*q?IquOXbh&LjMWyCd({|$0dDHHjSM2F;mjz^ z2`YiB_QEG>!~7|FT5plUI2rQ&UNQJY88VaNewX`w7xb(ZX2W$5B5HE`~`B8!QmMIU)kE0^TnBZ0Z9t2Qr_pn)nQScUcbyys1+2l5CZcc2 zVql^k=!vz%Sc|YtI}ibMXIe+TWmM!?gv9QIk3T&U4g)>@3VU!ivjL}5V89>p*Fo8|+6>X-_v z_8-zxg9-2*9$ALp!>(o(SFd6IS(Pk0Z^XvT65M<2TDGr?H)LPDu8MK$2wfT@)~M!j z6DL4RnBak-@m;S?IU^i3?^o+R-{-Bu(LEr51RdjzqP8MO6H@o^;IOZ%&?ms45;&6c z3Z}Nh5uXHaeRQR3VH?l@z3NT&R7a<5chR?w%lfEB-6u4Qk>KR?WIYeG0a5^ta3g;; z2rvNbDYRF-{>lqqsXayG|N0w%b~xZIBpxxkHKnLJUJOn2IUzho{5lm7iy{T7d}4#Q zsMOVk)ihghD-j#4I)nl6!r2iJUt!{3naMCXdPTRZYlO$Icvt(DBC0wXRTH!YS5FiW zMm1p9X3P{v9K;)uC~zIuQzh?3R&?JO|Tl{2qq#B(=Q4phuD3`JodWz{OWN z&f_}w=RaD-%hz>a$Vu|hCa;$F(cu~y?IJuVF;3S>zRLJajB!f5&*{Ii0&>gwRb0BA zno_#=fEor6o3;#Sfd>a)B*O-Les979ytq!l22@q)_CXgmv=Vg`%d%&a&-&N#EBj7;MGpA-uFmnpWto)AkQerBLp&;T#jqk6;GT+@(#6P)-vtOcS=fO za+PBntY}oGWSwgfzE2R=hw@-KzCLBeH#1&Dm%Js8GVPOec^C zf+Fyh*w=Yq7HeaIeCC>wTustRGhp& zK-TM#!THq93^@^j$jGV%)}4~$kH`g`%ze|{>9X29Fd!eGem+L)!rc|Y^S$EcAOT~v zh$H%BT8x^GM#wfOe82upW)U%sV};SsT`diZDuh-mijiZa{20xl+(t!Q8aEXO?-62l zs)6l|&V83a6uFF?TdE%Je?-k&Y5<#w{hpbV@PKjHwGHG>+ZXV`eG9NVNv!Q~&8?EO z%lnkTwI00oDQ`RFDM~0n9BmDFfNR$>A)O%GFTV^sgKJ5^_=0;#4=Ex!iwFN6_lRpB zB14Yoa9@w6fCnPux~#{6Bm9Rj#yjT6bCB2FQ)>Jc)evr50H*+{q6TGg(O2wD`m{cdv7wo3xI$NXZKf|zXT!zQjTxL zTX%+e`ls*vzz`Fz>d`gh$5=O|6r1?t)c%o=u~VQ>&EGa9*rC`%3=EJcAGPCRIBNA{SUlv2VDmngK6O0ANMC~id;1Ar)F=;(9^7l>op4w zs3J4rX=A7tI-I-CuZHvBQLLx#ko=rwSl3hr(LWaBnK0Hxs^p0#&NA5{WKAstgwun2 zj^LZm?(O1aS{TaAR~t_6F6ES!exPqBIMNft(LBle$2^Wcuv7;v;&!3Vohy4CHA3#F z*)T_i5Br9`8w{r`_Mvef8@bV-?qAVel|e2|m!b)?sNY?f0dR14xSVcT9Uz^u_Yg$2 zxL$6Ij`2&2ev|&#t4*kWr=59jz7N9;U033h87$i6rz}-Cm>^@Cg#;^^67~ulFo*p> z#v)9qDWC_l4S!As8^^ZUz1guR*-seo7H1DYa|x6IVNy=)po52VlI6s+QTDQP$cB8F z(hYjDP{5#=jWEo!5MkAR!)7Q#pJ_^+@ z_eOxZ;?BtU6J#|Uj_F2NN@myyaXeN z!M3{(Tb$Zu5iWd zobt~tZ**y#QEK-91+t0{zav@$J8A-Iy^wh;b2ci7_Z_ZM54xO^XBr_Ae{&;RVzCE<@*kP9*#dvNl5OnOT% zA@nn>u`3^5kEKNvn)1q(i2of&Bdfhv_^-1=fsFVesza9Hv;-Lme2`cmkxc4Vp8R(b zpPG)FZ!e@mVW)r?yVKB3~c^e z9WugoQZ7rtfilBWN<_ROA0)wnch_osnrW|5!2u?N2@~FD6nsE`q+=jq!m!U07FT6` ztSG>V;>n;r&azWh@xD`0V5hApc1{rx+@f5QCmVk5KQTpUGWT*q@!ma$K^uD~If{2l z=Zpg@(0{K|7!9-U;kTp0Owp>*)y8}<>A(!mhVIgjp4O!U!SK9_XY77Q|hI^+S{&I zitG@8$-#*JXbE;N#(fz5Eh8!1HxdvaFftz74>E*8KmwN5jT7pqL2VEjxZ*f14G8n* z7I>gLz()#%Ot&<}fU4fv2j#Spc%XEh_X@IJL5>Fx6ckkZ$5BTy=(e9?755K-q0*WMP>kW+nO07t&2{pL(y!ox5ec$nP%NfBj+ z{=>bG5lj|{KP5uiyApSQ>;AWDI3K7-O7Ypuf8bU)Z3NBex_xy#R@@#IYzIlp6Iz8$ zpn>7rhNN^Y0%i?^290vvznnY3KcklhlkF85iv2KNb2x@+61R7P+h zEitY&eSLBbHabT3NYGnv`*S*NGMur=P_YzW8W1M078AdBiK$Vy-Sf1TxMXyKxJ6|R zYl-^~(^%SJ0DBFElraqe-)B_8E1NLhqV4=nmGCB} zhI#dd+;TQU3&T0L3S4^ApLU<~m|3#AC*ON}isKhv@7UvmC$y z2yx(J&FisJN{p!)z)4uKfNx#$BX_Ebfs=L1b*9GJRkuy3bEOX{wnf)N4u}WA z%Ek4t-fBkE;*PslH`I`sMhT4$gwJfUKk-raP@(LgP?PX7wn#+ixaSVZrtAxkXF#ZK z;)#=>;1$y=Qqxc<`#Md$D(00!g1+eiB=K&4sw1tnrJ~AfTEZ=&7>=lEkTkxN4cJM4 zgu9j`qF0X$1#I9wFv>S2c;`f!h6;NGn%0!yA$@)>bX;$(`96ppas@|8nRz$kCL|~q zKd~?`t1AP?vtLx1@!pbbdV<7gQ%l2?Ay<;@ z&MOH5wdIIJ0FluuDt$=}YPU*X#Wo#j(WGaD_nK zi5zD*zl?N{6_>F_#R@?!#~u+1Q25T3WgCcRotPLYr}*svK!v7BevQk;wP=Ulc4m-U zc;cA+b1orD9Xk*KodYb=-*uETHG23IVQ<&qNI5v_Ogkn574T@M%Z8=e>M=m!@!kr0 zpokk`h^a7!GWGT_fcrIFSJp>FR zEZvXR`cC&!ol}k+SWL6c=9AUO=uQ~x*L?WEixChAoQK6H(}qN?3`#)0OD0 z_0!$OpX4@X%ViIZ7$vBM^p?&K54$K9dNB80DL2smII=STz(uB&{g&&0xcJv_0u!Z0 zi#BjVd8Ls*r8dwTK!FS)v>v1plT@$*D7=~k=MsI^BIT)p!s=5L9~^m65_xj46`DPb znJ9xkpwMtkF%#+G;#P9PPxSM(NCQ7i*8ohLn4H#Bg`23M@PWC~TB;G3YZH?xB4DvO zEyiBH(Ks@^ol%1=dgV7vRqO;gj)O9oebvuxv173iPFf?PN-+;DBEd+AaJFl3M-d!3 zel=;Hjc_IA95!V|m5fkxL}i9={IC%KCEZTbN%9@5{Y&u{tT`vxP|W*}qtQYMNS#=# z9t9O|jI+`MXB};A3OLINM>n4qezc=;XT}Jq2IHm!8Lq6_0~*ly7&E#fb;kQR$u78; z7j|s6_+Q;EitAR*7BXhIMmVAjtG(XsaVwl+Uj{UankmH|w_I)r3Nq7p#}H*B<}Ql- zS}=`ny?LF{ztRf;_a{6*dA&n~C&c4q-tyxi8c}0@Tcb%!P<|WGMo9^`j%< zQL}ALDrxU$h>8z@!%*cF_2a2gCvE$Pzx<73^^11t@uW0vnfS~|YNP5DKl=U3DEVoU7pwKm6Y;Wd%08&0x(m-NkpJIx`9xlKC*jE9Tf32LF)&2yALRn=0AfL3IP3 z^L3l#oAg{tCTCT-<%;d(-f@k|LWlPvem5oL-qBQVke`=%I7}i+#vUW5m5n0+;hZp| zlJ6N2Rc?r1Qc%)4`Tb7P!fIcvF}aY84C4V+(xe2;^kKV~>cUNa9M3-^XH1o=Ds}7y zZDKrSlt2rmLELY_g1y9n0ccR4nBGDt>*g8NIOaV&){SC!C2_aFT-_OSh991)akO%@SwD{x{K8JS zNL>$s;2bFiEYcLPH8cSNpSfz8`XFMUhQxqOc2u>(t~e#x9FxNV4^OA4of~p=<_oHM zwufYv8+pL6QGz+H5592wl*ma>Xa}Klc$XZqEmswVR5SEwOYjBmJ)8dpow-OPgq`n2`1j|FTT{ko2>1URL3=# z&Hp&F^6uzj2sg?Aictc()C@g<&ACk>5_QqnWeg}oC)Or0TszQ2k$6$ypeRk=J8U~r z4^T!U9f>$(ng&yjnPNILw~hx%FM|~EACISRcnW^F;j8KYaPhB!31wEnGxmoD~>phPg!(b zdJBri#$G0!*a6$YPQqvCq)7Rok+U7@M&y!)j+kcG&@VjP-u{(gpvsIMdu z!Rf;9R7m38Iop=7>q2`Rp%Qzih?!JCfVcI6Y=9E8lo&H0cu^*0ht=@vGk+f02a7Z< zC;{Dl$90(dT}a}+ofS-7@gvd|0VO)?uE*Q62TdUfJcXSHv1!O(iGAT3AQsP|M?ZEP zK~S{`WQlJJ=|2+BaI!PUXR~{l`ilfU;;yBoc1sAaL88MWK!Qr2_P>Ax26~C^;6HL~ z%L=|4jZ4-r#D9@v(dyx=bcJPj7hJO56X07f;YllUCc5f4JKPO|5~e4|zU}wq5QDwl zv0!*`)Uw5ET&hChWE`)%dlF;a)b!xZH18>=Lh6>9<;a4ypaOd3t zBgh6FmJzUv7}gAVzu2uuRAILtCAq4^z8Nlz&?(VJ>G#xZ_a9GBq~R(@ML2!plB3!U z-9=LX%nMt@Q7m>EX;xckpFa!%%?)UQ4kzq=fDjn*iJzq7)|Mc2v!=KYzP{6&gZbKe zk5$!mrNU;nj4cB0|8zQ|Nmuw4Oo|y@hgJ3^BG5S<0Xec<;BeYiaibb;6rwVIJe5GO zR?Le+ejR85uc=*z!3ALP2>_?y!BlY`Tb~{Z70z&_Z(j0T}s*OM*=-YnzDt)kRbh*h6JGt4j2r`~} z2+UJ^)}<7MiaJ!cw*96CT;`u@QM@vJ{kjdkmEO#W1T9DXEX#9dx3oa^JLE^Qf;x!S zgH|#R_wNXxii-)g_pGmIe;Yr^g>+^CM8l|wv5t9y1R8DEynv^k}V+kVq6}#`Q30B+G3T;5kX07+SWJMjxDoPK+d0U@Yo0BG)yMU=ZRT3zkh+dBYwI ze(V{(2A_UgVfp>GZ-u{y+2P38JnRrHY^WdD6o~lo)?ny+aAZ63kK_q^a5JzxI+!ge z0!vBRJbpND)s%&(V+0o`p5?b7o|-95qF{ ztH}+*N)u)#+ud^qinrigUS;VSD7;harjp@p6sNd)ObmsN(FSIAk;X?#v+>QR zT~odYqbcJ@yO7JI{U6B~_>~0|=$3rIg7s2r=Dkh%hWz8OWGF_FZ~a#CN=7s+vk1^z z8Ou;5ZA7xqh~kd%(XEdk5`{I-xH+T}@_TM4uVq3x=s~ff<}$t7_So?pSFSPSW*|0G zpfM&9WgCQuLYQe;>czJ0e!#%KXa;(?GKaKYiR9t*GOD;V9QPaQNiQQFt1-6qQ1#4F zv$aj1VA~VvAYRCT0pd@VlUxX9ih7r^6sOEpZ{4PqCV1Ya?Gm^i0wKz2A_W-L9-ZAm ztZ{$XW719QP40t@Cw_eja1M+e2X_6}4|3WlW-iU!g8()2n4lg|3op~^ zCN57+^#lG7C(Tp~jv<~w-~-lE^nerR@(cp&sus&{ldoe{l{p6 zu1P&ASJ-rkeow<4b#vYFhy=x1R1~W!mVy* zdZ=W=Q3tyak0+-BdLl548BtK0IF<|cfASs0;@$$Ot}$D&vbWcHCIEt&;YDQ0Bfhi`EpyA1Xbh+X8ob9NIvyNZ>irU&Uw}(NgfDF^!9_|vd4tNz( zynO;0kl=f)ixJCPStTV8?;ujdwtx)da~+(-IawnO9>NwRwa_#H&>yG#DK}wGnVS&=^5e0@sFqGMPq@9MZ7LXI#R#e4ZWvVsZ0%tTiRi(->t?$J z8OPE$to5^UWOJ=vXoHQ;ItHvW-*)0;H#(i6`$V3K^QTR@AU55op~wonPH=nYL4XZp zrEi5-2Rgrpd+fACLMA)|l8>9=%3A{d6A*s)FB$Tk?DLL$vQ$2In9Ps5&Y zC9!A_0O0<~yMgI&gj#iROm|u0&)+hhOcpc+2wF4LYzc^KOpW9JyT_)gET)&V0_;*T zU@YtUb?T)JlsZ%Y6W8AoI5!m1G&NgXf184OS_^4n=4MM+BQmE^#olonKp}(i2*(x5 zyqlMB%Gl(Ojsdc6!<0vB#my zZ|k)q_B8+S%E*wNbd6lw&r_GAROyl~kWl9&URlxt>%z~n7 z2v%IOdU`Bc8KF$iCTL})3ovccwIeqw_)OSE4JJ?&W*04nF0=BlTI}y3dxvW9`zY#; zgsoDZ4e9&*guXqhIX3sz;@b~glS|x~h81KYTP{-dS7#7a9uA8EM3pVH{Cn8@#|lr? ztFT;^l5A@UxJZ0_Sbtf#`v8EYnd*mJHK5cR-y^naB~F20*!xMhuy3?l3X+u~)LAK7 zqnFE&+y!;RU)`{RA7sgD6?x0u0Th;_Jh$t0ROQKF9W0_A^?hsq%4nYdF8cp)@vor` z^x|~G0&TpTLTgC}VAHN@v;n*C_*=2D-wa*AoK~-wyGDEg-t_1p)XkZpT+?BD6y_sS za*))?!x@8Gk9bOGX2ed$4$Y$?YJkvA5WO>7D7zs&*t-gUt~Lxp=uF&*fof`!x8jM` zf;PLN6hVUQ0T@<#wnzbkK&y$gZiXi#DxItDrsr$m3SZZ^?fr(-;#yj!*b`XvBcv9L zXMfzYok-41pn7Y%ehxM7NbZtkZw+C>^&Z{gR$2(IobL~`^jh5<9g+3M6v=fX55$zz zTmjJ44({?*Vj|=DCKb4e|2XxaJ~29Jp*%i3!V0buI)STqqUZ&{ETa=ePvj6|Gcq+g zd4Drv)Sx}leXBo?cU$+E#u2^({kSP9%<)xdK^Xq5Bq>3XX1K!%s{+=rNnL zjazhtbubUax!Zcs^I_vkD2H9?6$)ZL)lryHH|c{%*3X)vq1C}bK*5I$d*Lbmd~u-G ztB$-&7uve(M6?2;xSPIa2mW~%4T?EMJhDrv!pruZ{F3R(^y-2eZa$Omnqy6P*Uc*5 zGaRPN{_#p$f>>oq+ID!4cJ;qHcCg5w2{>7?Kf!Is)JQS|1@U=5>ym{SgTNdavHf8M zK3tejBW8u!L+|r^0k*H_1z2dl5`k9v)B$~NwtfaQRDh3Cgj4Xn>tAScYcmHmR`^KGRI2B6ycnd_hM;}aJN44!tTO2U5*>xypQHTY%yG4)$s&M zIK_@->C+?R2>l{m+^d8JhKp@S!p@aX@H{4Jy#n-lz5sO-b&h8~58-c@sjVDM}1k-)sD(4 zD-DOJLzcxEO%WYYHsc3<>=aFM`${D=qg5F-$^SNzq0z};AW)qHaZef`aeoH>{9Pu> zd-WVvO!NvK9v1*-4fuf7E2jxWg}tMZ&a4U>4&VvYc!Ypl*RapY_D~i{-Q970FeQdX zOGZ>omAT%g^4cPE5G+0LtL!c4^6d)&FMBDMOlv|`fkcUmCF?JbqW|$V@+axg3ZJKs!VjJ&i2uoV> zcDAqTC=XAt{vMJ&;FI=B)|sk}Hnx?-qJY(pXGKcTwFa9sFAI?5aAx6vdgIq-@Kbj% z!Ub%-RsUuA)Xxp!zzhdN+R;+tc<{lD+2a#Aeu?lekMHQmNY(ZpBBZ_(OVnm_`f)rt zx~|%3vb$2KAQ0POI?g)}}xpfwcuDinf4hB|%3}>|P07%rm|0}xq^Yy=mY^IW2 zKJj>7U_@QR5^frWfUg+ilT9Pk~c^*gnZ8kP(}#Gi^EYPh?3WelwG6 zot-KVEbdXwR7MZ01gMcq%qrfIh|}0Q>h@slUURN6y99~u4%K}U)X2)l-K6yG0RW6GuRgiPj&@>d!NeakR5h#K zDhovj74oSP>oEb}Blud1q+|U#aP(S%$aN?Ul9$t!>jz8Et)rN*g%7D+oQ8&uZdpX;;0Y1BBdG^{ znxD{{H09K&Fj&_rCK2A=o_}0N)cQ-IqjnS6AwqeCL6k)MN|%@0%+4v8Mq*8@Y*F{z z#S{H*5y2_3IL&E)S6LEc9ALHh`?fqck~$ zHn!cjVf*GU`p}C0;QHH?0>*8o0J6O1I+BRb>##eTUf0($4;_sN@qU`#(4kt+Rs`|L zBkY){kjziG^a zcQ>XtbDWH}<5SjY1|5z9BRL!U1W>6W^7Pc4zvoTU61WAm&YIJhN&d3fU>zR3m9G2; zr;KffGet;}^GzJQ6ZPO*T438G30)4_?j#VoR9k|c&BnKQME5NDCQ4KfX$p2;iFfGI z3@5X^FF59JKE;Bh&@@(0aW)6+D+NXI`oFZDS&m)HZbYY2BQUaW=A`+5J68m`rDt3I zlK}(Q=~C4>yUApb(NLJyxD4PO+qsFCNyz<&cOdM=l;#~#%AMRS2<6Ig zKy5Zo4pF+i>z4De5sB@TPP{D;TovNfkB(0zQcrtZE? z{UWi_(-N-vIHH{4W4mLB%DQ5zs&ns3PA3RMe?O(YUA>@ta~(5MI#yIPEp4t?ueb&w zMn}u&LVQ?vS#oaipQWiP>KBTHJ!2*XI*< zRV?0ucQU+wXN{r*T-tVY!A6fK*e%$p$Sy$fYo5ZXd7s|<~| zkx{r5Wrh7tDw$60q8rs~OhqA~5&*aDZQ1K8AL2%Q+SQH48)juxM!{j;%rA8PH`ONZ zaK=kz2!Pbkek&Ia@u@%%6NJctWbEH-YZ+}l{YEHK45Ro!LD#)@-bAMLFnhXmO2uzV zgJvzqN~e_72(D4;$_n41cc$4m5}&KvVfNUkXpb87(Jj}`=EUW<8-G<{kf@g`+}wl{{CC-FKy(sZ4XG1Ov?dLo26{)2*jexPqJbn?z>c z+utzc@9X~z0?GT75-A|ia0J_w5q+Ajh;}NcG0f;%N=_K;GN08)UGF^gS7rc2$7AUV zAyxEOW?ili;KBl%1tT1iZ%AN&#&;H1XU;rMkdw4 zn$#%}n5s>97fP-bbq$~Vc;GWp4QCa^UTMB!CsS)i)wGZjI+}%VccRF8+cP>h-iZFT znvo2dQREOIG0SEe^5dR0L4&f|RW^`&j1X{Wr&YT}Y(g173nFKYDvYBr$I!Y)!?ONm zV$TS~J#_3)s%D5)(&p-d8`>8j(h+?$Ex%%xNHFjoMk%#qjs}(@o3V{%%=N2@r4-ze z&^K%>=gNAmVyg~nK3lRvl{!+bLvx70M2XgS)fgXSR%Yp0YVYn?>c>b30XuL(Eb12WZV1Qk z38hUr6>Q?DWMI{~3XAPZs+z8=_4DX;nskrJ(eIWwC``+gGz^!L!p3EmnO2b>%1(7X_m1{Acl~|glA}c`{poOx z_p--KiBaUMbVKWljd;SN_W;Vi>Zta$RjJ?+{D82{8sRiA6+I=cGc?|}j}eIuj{&hv zhDdjfn)X`*-jkhHA9VF>QSwb_RJO;Oq=XnYU3F(v6wm)sd|%36Hfc-do*}I?GH8m^ zm9Y}sGh)TPPw~hX^Q9K9f60wK7=w9)fvzz`dIc-pGitz~YEFkEhUO5ifsT5^V*umD zzKvfRgZFUr#V?4M$Rj+0Wp#v|A{J2mZbS0=-hONG#mmHpMe9U6r2OT*?83PAG4ZG2 zmDo)&;qFA|vPJ1OsGBvY-+tbtX;C?8Sn-HmwyV9hpj76f&$ zdj!=;`84xe^bXVDXobAT^mk}SKW5Fns}kWBI7JUtOk8(zbw*}(khXb^n0Sa?d0~Ng zi@nM=E)SXL*Ko)6kPl}w8_MERvCj_ZOgN{T#*;wmQ;oF8D^5oWU(iEK;!huUjW5u+ zH4PSo9)>yUAB&#Qcd$g5Zzi`A`oxc4=Hnwo7!o^?u%b{ zYQf*hv*hxtfQ&zEu7-TVFz@P0-;By17a~L@O{D%XHHKdHKGZaOttOvF00{G*shN5u z0?X@C1xk7;m$PEmXx1;=mFa6B2x9`8UMTB5-|vdViglu;0e159Re(~g<9=#-^QvKw z!ul)?8ZmqWXsI=S|AUGE5V5CmW$5`iSEU2X*+R>8=A20sH2ZYD&lIQwAV_<`Y>6FV zM8b{8;BC`|$57aVA#)mz#6q2P)_3_|X+K0cM>Rhj+bbOVu1`4nz7O_C(s{EYgh4D? z!1P+HWNlnwruPH{5R|Y@MiQ!?=1OohBtM}ztTGca zuQ9@44?lJc*`4B6)6RqL2rf77w5uBN=1?`_v|&@-;i)Eh&6cUDgt9#RKZZ=N*mBe# z8md;t$FnWh1UX*6W~~LCp!dDowUz_!R@f2()gS~}zj7H+{1`GZcedn&)aDo)ffk3S zB8qMeqBjs5Ws^rMjru;VQP{eryOCbYGzChLOSvjo@y_%1nShD^y$wU4^8d%w===#= z{=WXtAQO|ggQ6oc$KM8`i5R`Li2CC13`Olpu>b1f$j~~tY}%55nPO;b*;7G@{syQ> zK7z;FtUJsramia4++*Optt^vlN59ea!mPR*@)p~?r9aVrZJd&Z#C!J0BxH}Na5MQ+ zbdgM{XyU&YIWVXwTVXaz5)kBBJ%>|90l%xGD+^2*c@j%8{3TBXJ3iLJJn_ogX4e{4$pYTDpe;g2^bL$8+ zJ*?*9OC6w9<(bE*8Ov!8a4@Fp$~j?>aO2k;w47TT6;@32d`+@K$3{Qh8HP+XG7p2q zxD_5FC-Qzp$~qE_YtTg=S(<&ZY3;}`e6RFx*4wan5|3j>=ItltE}d|4KH58aOs^I| zqAerX^nO(dtvqu9$_&v3-o}&80QkHf6dvI*W~LH&=YpFwP$CO1e10qqUJmz#7u}*H`3Q4FOpuY7klge2Y*lOwiQhb@b`-hPA3=gvc#YE;^q-Zvt zuK4)Hp`=|y(vs;Y>Sb-QJ2=QoSO>!a!?wAa+g{o&A6XEFo2v;b>zy8HbT63_RaGnX zvmR*7L`*{K0;i@d}}|-&R1pVk`#DKs}~-GaR1Y z3Dn~aZ9FlqMNhwOy3;*)^>Dp*8-7?hQlDf~xtoRq%YLqDN(OiMT3Ifo@r(_oHZ{>G zrO_U^(IR8JWB>}JM>|oDr};KW)V8Pr#w;BJAy`% z81aa8bweY!D^CQ5Vw)EIf~#mBiGx}6^JZ){1>Pt+k#m*@+qIU)L$->T3ds%AVz$@Q z=89y-9l{ahKX5D50-zF|AHmM1WV?Hw??MsYdBMb!4#PA}B5)O1u}<|Q|2n*)NEXIt z#2pNLEM2&g9#qxXQ1(u1sp`1sqr)lrh7M76F;ieE{HpaJE~DQ^pfN93LQEAhjt~u= z)|E+G18osKMKp@qI}enc@G4s>ua&h*AC&Nqgae$1KyH*knJ)n+I6c4kR+)VXiiuumGlbIUM6@OdeG3oAHvIt7f#+DHpuft0`J0V$AUSK#6fCps||8f+|$p&rbs`8mO3OFm}Y!;wR- zF*G?B6`RyLT}_=%cS}(#sZ;#=kT-%wF&IB#nJL9om8e$|VEh=9yGQKTv{VRv$LG;p z-^Pg4i6ZBm`B^b@Wv5(*INoCCh#t%0olKjN;lafp%E?I9N*- z6R)`5G+7Oupll&~a~dRb1=}Jp9DsS{Jji!P9RH4)@~dXLq1J{Ln~ueJy31pJ$-VW{ z5usbjKuGM&0~?fXKQY1y@9ZN-PVb!R4vT-^?j|DPwcWO0tJq%W0BMj1VKZm)WsD3I z0y&gx$V8&%r{V0l4mJj9&Co`2PAwWWPJm$oU}U!N4W?4HOm?l9uW21skB}BY68rl- zM_gr))+@0rn$+Lj*gOhpO}xkw;So>Cnb>9dxr0iG&|8iI46a~N?F5$ZF3EKo>JJj1 z8dnVuat2-Rl$cPJeU)V*O!Wh;@11MEE$478!S11=$ldKrym`lu=7z}W@(ksoE3$s5 zzg%l`+$jjGEXjOGfgw{R!e^AYCL1;Y;fT2&Ln--xW2G?Cj}Pjm!krbCo!S68qXY() zNQCb-{XLZF!A1=H!uY17eaI`aAqUZ`e^97|_j6PCL&^`}R?Qigy7nh5*jl)xgEYEQ z5QV+EOEra{y;F`~F7qt7~Mw%zbb3 zF>{ZE@S0`}H2a$k4bJYKo7(JA8aq?;b|6ZbF`OAxytj>eTpe27#%8uoE zBvnC|5rClDd7E#|D&oQUYDOaA-#z`HA<^`h02b_aqe^**>|A5AzGy;5RWsG7u;pA` zUlBw)XI&AebF3Jg626ucNezzm8$}iZD}Fs>k@wcsEXt5xY6eE*I`X-BNYHsYjTFnc zk|V9RJMqH4q=EFIe(&h?yGLdU&cr6C+enK~h(4@7A(Fmz+}^ zy&@bIQX(!1E_qF$?7jQ@g9RKHzz7_>TUfJeltVzfxq)XjA2q-ZB$DC=bQw4#Cc{#D z+rnm@AV>>*LHc&0CE8UFNdZleR;ngo8}^;S6ukPdkhUrr!D`c}TNff~sMN|nRRe#PvUmxK0`935`@FY?^r7;B@rO@er)Yrd00v>-;I2yYUo zaWG>{rUu(e`$1kk-c&iowK+pHh3u@3Vz$t-MB1+j+NkbEIdh(sHtXwM%Hcpu{Ahc2 zK)OnCImNxl(||@6j07mVYd`BPIk%=(j~x5%q>9`V$c6Xl3vpD7Jp_x)Wmg9t=TA^c zs@C*ZXPqT0;3D*c!6PjL##1SbVh^cOo%29}E%@gbPkR%O7oOo!h zI#S5qQL9-f2iwvVQ&olsfr>D&{lkt~tbmn`YF(}j7m-YyiL)4Wy9?=M|H+RB-v zId?kVk=bE&6xxP5LL7)+07*c$zi!|(H5jj1v}pa(zW0?5Q|N8$DeSe~p{$thaaSm7`o@QpHyeD@zac83yABPMQhS1+hm z5lTG2sBJhli<|b|k5os!Dx5k?F`c~LuC|L+9TC%6GeZW~jG?hOo)!ckr%4;;!^=Z4 z(m}&-8hQJ;Vjr|rIRp!EdS53s7-6hGh1E`3sZ@gCeNfAQ8z5TM1VIo2x~F0r zy+MK|o+lb~fVFAe2Z3rwDO-YSJ)%&$C@NFURMgKmXjZI~Rb4p4hf z@x94ld>0XvM|FXZP5>_`4-IuSE#h|!l$A~vq7PO9wVD}TGW(`k(GAqzYkj^bQ?8YP z8sD%aBe6h4=_U@LU)}LY^>=VGM!4!}werUR)@FEEGfkHgJhF-`yE2@>v0){Kt0XN} z3FBYs6)8`cpuK`53@2dC&3uI(5Z6#iL8y_2zybeWXN9e7(f7m9hgR$czM6Wdezev> zHX2oe*AAu|UZ*cV=P)nKw!pt4Osk5cCfB^1OOLl^U79QSVe4Ks)P4z}1csY$wqEC3HEjNX%Jg0$cO60+w_ z4RF<^7uAHTjBuzR(g0eq;SqvJZ}_llWaSUcnrJ=^*Ps|ykbRRtdfIDitm$pg>u;M5 zVKXn~JBsm;7)k*+F<4{!FM>g=11d7qM|o0R>zHAbPq4)dr|R=yE|(S+@6e+-Y>^901jsM-wEOX@eu@po)ibvx7VltO2e~*hxJ4oo3joxPVl)OCye7 z4nOQolRiA6&n+==le?tmYKRR>y63%ZTi)B-*;Afga5f$>jzDo0-kN!g?6F<4HKecM zCJv|WDppw-4j#0Y0kw?24dGz0xm4bsOF1%#+}n?ph;h_0O&N#clcN;Ox#9C(^;Hsj z$u(hiyZU1xJ`(^m$3!sam$^fl+tuOu9BypyN&MJ&%--fs7UMlRQR;L(x4K@8Lk)uz z+$nR4CZ%j7AP$I$DU%TO?cNd;Q@7BvBYeX+7Q>cFh^M&eax3x_ zjxTj(Cr)PhI1#Udq0TFv*s0kQcrSLWYtNYyeLeU(gKA0JOC~xbkTx@r{dY;8SUsqX z$0U&{sz2kRA9qjNsR;(Lfs-@e+k|PE<}{Dy%QUqS_wJeK?p*~5hT%4zXbUi%JBp`) z+k?VoWGieC$w|W zI}sUj!+4fQlY#Q`wC$cxJch+&sMsOhemx3C64mh~cs}I}u3`vgg-B<-*5jpm_qodv zOp20-F&!#Z6O<_$+8yLhwqefGu4;WF=Z>_QMvHj2Hx=4A4(A8OOemrGrL9< zTU*CWu#vu{>^MlJ6Y@gs<1dQ-l%rfLZE z-1lPk;COe2F(k>{*kOsXj_Fy0=4z^gZ1wk^!5M6J-e(8LiD1NdtE@0)BC>Bucq|vC zGhD}tVL=$U0Z=8$>BNC@s@)jbYTn*|Q!&i_s{VNr)yjX`hX;zPe_Q-l@C~-s!`8be zeuJ&`K0UJq1VA}xQ{d;+`n!kmL8pwqMd%|ArYm8__^mkLjqlL0KTclFyCvlq@4f## zU%)Ai)oWmf@l!bYUY+5`qPWXb>mmii0POtj7xJE$$SQPDWAIs-hWf4`i=?6FkR)cT zK|9i`Knr!aN?9X~FR+bdQpoYYyUB9YWSG$f-;qQxH^pl)$KF!NciKhRACW*M8X?uN zEeb?;u%xpjr~F1iSusAhPsUZymiddR!fOJSttNl*?dLL;A#~}QyTld;nKE25;J?@< zk6L##4-|si7`e_UpKX+m;T1fs)OO9G38T_m-*4#|tyAySu<_xyO_bsON!d|{YXg9T z`O(wIg5KM-vi3csKK#YQ!)3_;?j5jaCFnpG%#kIl>N(A_l$(-Tlzd*c;cr;=c3g%} zlyYRW8eySCxJ_(FCW37zAR{Inj-}K;BSN1bzc*}`4dAfl&UNh8tMOZ1!5k$HrgpJX z=r`cBTfcRmt8%a%fnxP*s#46AqftX{w?wn%pizxf0$7BzlO$rBMuu=#NF;wJ?t2=uVWb~pwyOLS@tlZ-o1y1Jt51HnWhHN?sgVYYmO;)= z_Rm;WWXin-r*AVI@d@2&iC#D@mTb^C1_Gtge%_i_VZl<-PidXx>e9q$oU%1b8xHJA zwNiXjFJD zWJjf!5U~ygAC(n!#ue6xhzoFK4>(YliFTgbpVn+kfwy3qqQ3WcSI?4AG6DI9Kk9p{L*KGaU$iQNWz z6)+clg&rrQ%!8C~%W+VGRV3)Ppci270Z?&@So(l3R@Eu$ql}gSrAek{Op}?4ET94Oj z^zHaEXy2-|BZeMwZI^E@t(97O1maBjlS+by`BKJzPFeTLFok~Pj50yCTvb+(7W4n)kQ5%{ppH zoF{fc6TMNQmTq4thH``O<0atsHs+WuL!MmnROo_y;V1~DtLzrI?R}W=4pGJv8Gt5< zkwcLi$Wju5w8b~P)7WqD7CbJ1vA~IBXf&pEcF))_>aw+mbw)PtRvKZpt!^1<0xqAF z6`LgqQlTRQy7(FtIf2+f0tL^CljJH%9={E96>p^Zpp1B1Jzthd7tg;ZY*!?Y#9$F? zC*Rq^3_)n+J#ik#i$z~2Z-dUPy@Hv!8Qu(8T1wLriqQ|A{f16|S^Q_1O*$$tk1^Xr ztKysTC+MhW?g-YH)fn$U>&=3gkF!x*im z)%sz~WT7Yeu>RRsR|SG7in+FPQ<3w2NRm1Bdx}T@JWQHP?Z#K+jZD4IQthVg0%J1Q z{Hk%QTvB1Uz6WMT)m+f&Rj1UxdZeVdj9OYC4_)w0Uq8{6%JpvdE>y~x7_4t4)d7V^ z0GzD=Qz(E}1d>0zG~OOH-7sSg5}q9Ts|q+*O6|7nRKSD`h%MAc6356v7bm)?dZk!j z&e4L>wU{4CacLtBIPu!AgxM%eg4d{XMn)i1l=Qazd!S&T1r=x`1I5M|OLIJQOE6I` zdgb=5<0~)FhDo&%s(w$Uhpw2Cx^H|=1#DHz!ZC`oP)yW)I2O)UZ0&v!Qh~Kgpsm%! zG3uLJw%ugT);@aYtJYR?)Z?Y4mh{oCG#H^aPKT3zB^Q>s{lv~Y20t0#R^%NNqd^o^ z;_#sE(vlLKHYc;!xwZI<}&8 zq2l+@*lVH=kD%MFkW3LXyAR@>_xf8;g|^D7HN0k<)O+}AylwJ)+{voZR&X1`o0e|D zE3Q0++DA#225#@c$C&_(Gsr#m*3Lv7mwG`W7}??1L_<~%qD@uC_P|yxKEhi0`G&i3 z*vsq5$D={(2(kJ%bbH_(P$6w*a}MTEeFBxXdcIHm|;fA5%h`*wprwcjDfrkj?umb zCjqCXqcb(>JRTYT3Q?ZmyTa*j)*V|6-xrOo~g>6jYP^dt_e zt-xtC44h1%7{hgH`bWaQ;JUxVw zL`$Wj+HIcf`IJqbyRNgaxKAeuy_C`2767l1^>k;-%zWeeBsESQ;kz;6EozPjczefp zba`~!-bUfv9+Ye*PAV!@skV4}(L_q8o-pPbB2msD#mco_G9cN?zr%1QZJGeINFyQ} zA`>LuY3<1xB}uX=8O(26IN&-ErbNV$sIjTR8oSww&FrDzoheq}MGxqR1;Fr6E{LdW zcI=gxxV#Y)nHeE%SYy|DSBT7RJBi%Lb11=GTp53ONj0rggCNFX5zIxR%vBVzkQkpa z6GPtJkcFe<;dh3wF5m$jpq#6KYCe#Z_scX!#-6MFr(eh)2}Quj>j z#aC(-p*KjVCu|Ux2-=!Q(%yP|cLdsRI&6X`91ah!+hI`Su3E0KDx{r{hw~tV9As1t z&kVg(dqOF2z`9w2&ePR8fjq_yLt?)T-()v(a&Ah7lxauMIj0=xrwZu^=xT_NV~(rN zVNfGQa=`V`Vz`l$GR09TIMj%k1UI~gTd@y@@jGJ=wo~HhTB@~pYDJuc&vHvipNS*3-y?z+$qCUXaHP9fxhwx&dICh*r{_e&76Bzeym#dxloC*h%40(Gxq3`v6 z8aGN&Ai5JjbRCAs3&6O7jr_^$_Hc^)L=>@gK6TyO_&|3IVHr>KxGfK~FAG12?Tu+` z6BkadA;$uNOaYj9QC15}O1IySy<*^^*rWQi{e>4}rv^WbjNlmrA)dlTT#c+5-|g@D z%u-lQbE+0}y_CdNEK-&owsB26@lL>3*muC;Bw9Sx`BN%;ue8?iDg{sjAd9VngWQ^{I7=|EXN( z?u`u!>s#58l>7FSFmjZ%*BGwJi1McX?QI74+QyJ_#|}>z(Q zSPNsx0X66{5IGjD1t1_z9b$sttA{PgH zf+7PGklhJ88;Y1$iwun*$xXq|B8r}4Sr0(`y^f`&%&qo)Be4u?e$TI(+8WB(njSiv z=q8!W7-|3z&d_V{Am2ZJWxOo&sdxA90*^88Zjq``BZ78FV=cAc5<)01iCCIqhGu( zbDRc6obDfu&Ku4*8mFP5F@P&Optb?a5N{G<0S^2>fpz+%kgf}I`!ea`2h-`@* zQLkUAP>iot!w%izx2*a7mF68*$Etw%pC{{jbNB&lKBIbJ(ZR9$YpedIS zwti;jEj4=Z7R{T4o3=ie6_~0=5bhnIXQp)}35ClxCFcu*mKEi-S0uXAKTKr^Hbaqw z{tcg7gS({@v)XR@X3Xjgc{06uwd6{S3axi={q^7=-w9ON$|v$Qj9Ui?%{(X-Lh(HMb6(DA!FeG z(yZute=~yC`VfixMEDXdS))5y>N3M;^Y1NDUz6yqD)b3c?|wfm?s^q21TQwPD-`@o zy0}-B+;DAtn?pQ1a8a&WlcGYN9(-2Z>d0uSF{vT*F*ey#Y_m@pr=hqk3~$Z zC5RjH9-H)DJtmtGFDZXAWt145ozOcS64q#B%fBPfL*9tDBU6Yk&k8-R0?VDPtSJD} zZGR>q+mGZop!)mzKLc}Ewh-?vFt^f6nRU>HMGVar-db%;P?9`Z6$_|Os^o10IVb}F zAt|c271$D(ktbk)cZ=ef%;I@vp6omTc<<>AEgM91Rn6Qj=~|K_M7@(fE+}tj)HSc_ znA^af)`ovSlVCi$oRWY}*!DEMXj@@N(#jESopsi`yI3S>LX5PzMO}s|!?L{&+(I{x zVb8zXO;LA@EZ*1MQTM@;o$(f(m>sK5Y{e1D@}Y@@DvUg^y|OS42mc*KXdxxE3CBHH zus@b0UB_zsl6Q)pmb5c^m(BhqlR3y|J%Yn_cP0l`c&TS&gJ~^d49EBcZ4WFgWq!yF zc!t;t(j?k{zW4+6b7y|ntAc7Vj60`(ULvzdL@B{>XAOcy#+gn`J^0$ z8js&pq>hMEcZF4H7XuB5#q<33wv!Jx*)t3%7~q{KV`cbU6)Z;QA9K>3LCy@d1mTD_ zVW{AMHJY)X?kd;LB!B z^R|J6S?eUu^q%avyMmQ1Yeh~wZBbcvZLu>Q*Y`E_PBK{5`URM6ST#q^vZ){qyRJt9;r)D|N_EG2RR#~8ht zoJpXJD=FgTQRn#*@AoE+7Nv`E=_x{$Jy4jao)GQPmB%sP zoXWaqF#e+GUC`KK`L8#oxfU#E*jsS3IkV+QqubP0E-HSsXclyn9;)z0l%V+UaSMwfH zsqHjLeBDZM7u}HR-qx!J)1qTBk3;$lp#i4MPN)V@JBDzt;xTDNi+nItw!KR>3) ziw9hJXQV?U@`8QJhTP4s@E8)@Q;^UJ!6{{6#X2)5jyJUsZivU^=eVm5tVSM8e0;)h zrn-6{I9fvAI(8>jKFIhE8A^$*r{39OGZCQ4FEi2{R?Vp)G^7b!L>%w?IEJmB90WXhurTWfam2X4c(lYShW z{v~@gWW6gB7%JwROLlC7MC=^tZc6#cJKOdC_9z|L?Fzo_JtBS0NfD$niU|*!#M3sS zIg}Vg6}kvEZ1JKLB8;5;uaar_CPpCA>qHwRz`JXdvRKuJ;}{j{!Z(2W(J!p zmS+nEis93JWV0=7g2$VUBj0&h(`J^hi)d=di+Ff<@q7S1g<^mK&o-ch3qb?f6Sr6I zc=lW|sv*?P?)oCLYFz{PJMB;Sj{L}oK9J#;d>yIvuO|iAnt(XFm1Y}e#)utxT)FBB zrmeYx>8>50MyID`G0|hkCm9!nBtUjU*)3(|l#Ylkr3Zl(00+BCKR@hj=o5(E8L}9I zqT9-UWiLDb*Z{~3TIn1EL!035vUs%1=l+yoVTEna2HS(8Zl>dq6m?ro=iCzGLce81nF?=j*r+0`Fp7tRfDy{nrtzRo05am58OV5(!NjlSz-`m6TMl6?nHqqgjWVQa6Dw$l z(hPFphSb8dDI(q&)iB|x_IQ$ULvkaLB#SdC@d*IMogO$`gDkoB{e*EwEQ?Y``&BIF8NqUTaU51kL%H<`F<`20BB)?oE%vRF zm;VxP6c|UT99|-f5eeZFjALvXaFBH|S(IN+2y^}#s!)Nrw`G+8alqT9)as#^{8Sxal#_t4H78-4X zdu!g4_dH+$fd=G^6On2~E{gnmK>JWyvTr#^8RkoowqlnwLK)D1YI^#cS}eib#(dtM z{=1!$j+KL}aLt%{Z)wbw;fvDS4^#h}QERxXh?Ezuk~z1-qT@aLOWl7sq$MfG5txgU zX`8JjLz$LkcN7|7a=uws#!)QO&)T=P%qrxN@w|&DSp>{Ko8(Hki=e9VRtIZB-rnE>$m%N%oF*XE zQndHo+yVu{sTt-u(xOznDZcGu#8g)ZZeHG1Qs7(ngOCqHbuf6{2+4}WB-v&gpL+cBP(~m*i zU49VM3#--|0piY8_79(@&TuZx zejA@30wzri>^-%s>mFT{S8mc;3Yd#0m}fMuqfXev42zlt*DQ z00nv0AYM|6g<*KHylY!0`H-0%Mmo~Lst`bF6o#92RCvszs>gGq-84^VYT|GmmbD@g zIlc7Odpd`;VodFLBwzKj)dr#WwURMOp0(UvF^QyM!yU!))35&A~jTBK$e#g%soneTbj zCFkf>+>CO%VtpgWs8VuY=K3?%Wu&yKdF zZu0)7VP0$4*+7op3YRlAK69~YB@8+7D>yR^QYnr}k_dM<4lE-=W~G|q%8u%^nm(u) zL#g(n@7c@A-~r;t;2ttbM}w0ZIqJgDycI?Tp66leGVM8T?uDn}5SQs}{CGoOD-zzB z5j$VFvtx}rGhg5pMlBKm;EsJFSh!>7M4D9zM)Ny8Ue(#d>Az#$Z@`8gUxYMH0Hl!i z(1qyrURN2!cU5@-*l5+;|Bvn-%Ek2DC2^&M6F)rjG^l*9xJEnE!Cy7E*$0=n>GHuM zGo;71d~D<<#0J;Q2v4Eiy9JlpOal+}uJGct?Rup{><(jy4@du40ONgUlqP0+YJ zF?JA;qihP$gyF^i0&)SS*8j8q&w!i?c3hzY$Tj7psfO83gb}`~hdC$f3vW`BYiP;L zDeSt`%&|a%SHE{bS4zoQPI^>dqB&xs_wYl+wo*hCkpn?^koVkKe(y+86da%6{r|_O z`#{UkYFfR7#EtgWnbXobrX0Qj4MNpg*Pb@mIR!F13bI;$4%hj@tKnBKnQPK{%Nw~|+{lYJoeapgITGO@omMD8Ydyxbm=o*`qD=C`!q z@19jCGFIzY;U?72Sn^e4B@By*5pa?FK76Yfd^${|&Tt2$m@Oh^Hc_I25r<={YHP(p zmKm<~$g78Zx-Y&5RVk8N63!ZkQ? zn*=G*+2<%H=SoB44^SM>P|5KWtb%H>GdjbYiUDG@<|B4Imtpj7p|BF4O< z;yS9R;It2$5^01BVY&;(@w&$&l@TN&PSFX^a0*U(`_{pG`&=ub=N_BfQPCyGvT3e{ z{(lUc@m$h+rqkLmIK9n-U{K`2%Tf~t_PdzFDK>P=whvblJX`cCld^MV`mVWZ`yEgJ z3Py(HN?9u_QrS3|ULkX>ZjqWCdl05^iCAWAe_}H?s0vo-Csg#&$3=%XdD-rmh zuGSD05m5H_CHsshdhr|!HadVy@lB02B zVtSSNwPXB8L&J3}r3LN;9_JB^W#na5v?ji6_T&*Jg1ZR$n_X4jd*u>~Qs@2QxP=Q& zWkz7b2;IKr3}MX#qm)WJ6j}0yWU7012qKgArn>7TzY^^CEuAaqvC{ou@^^>Y4u$NO z&n=;kV%w9Bt|BFG?xr7j+aaA%+EVF2HY`j@3~l-jCr$!RDojr9js_@Da-bifs(hsD?_b7DvD1C$1Z;nkGsIERJ_%@A&-!p{TR`i0oJPVh$hvQS@jSz0r$Mq7Rv zDWA3js4g8WcUguaQW$7aMfA18Y^X?|QEj?6OJwe8GY*3i_mQb-a zaWeb0oy7Yr5ir;kCDNpK!aVxyo<>Y`7`umV^Q_4GhJ+0Cx@pqiV%ubX%|~P_Xfx6p z%h03}Bq)Q~6U@sZLH07&@fEDLGywll5cc2?q9{DE>%WbX=9m##k9ci5^?e9dD4o2; zIv=4E^Thgl8^gjvcChB8E!p*D@WB5DQSJX(|7QSB40^&G4B$2$VJ)|M{el9Y*5!!T zM>?v*ehlCivbCdiJQsI*mf?~*4fr4e+767vYE82yWdqzyXHhEA5R{Vh@2g>Kp{8I5 z*{AYV->L4|8l0i4Ik|?a;LL1Lcad&w4@%;#AsqcCor@YDzLUacEoy-G(LDRzbB(Xk zLX?r2azxQ&gMAX6wd{h@tL0#_sRNT8y%sRPf;Cw&(iGR1cW4|Z&Pe_yt-s#6SGZ0y z#ZYKhF-P>(XRtLT^?6TU_dDHIxM#^+lJk4oy{L{Gp6$Ra`uytrJfxXPZm1bFN+*tS z-x&5ulDstRtGIMsi*%%N+gqswRZ&~Jrap>12xgM#qwurH>@+-?lCgk)SF-mGlI|Mu zEWwhJc?Z_@D+ukumy_>$SH2E~7pG;C8{a)|rpr@o-GnuR0LCQ{*ZVCWTI;w@no-FU zUJ_-(S z4D^UpVY^MSK6ro>Pb>6iQEY6XIP6t@(WcvIXx6$+%pyBMNb-mf+BAqb=bI(IEuASE zzNAcn^Qz&-qV*z!xAIXlX<`k*xQ2=%r*{vxGtxlPKgiC_^aMN%mn9^--&PZ%pVRfd z$dCZ6MoO9v~ov^7MhhOAHrrEN?VHWYFJ4z#Mo<#Z$*QlFzHH=C-<~vpP9-F2BfA8aI6gGC^$IbWmN($GL~ce zeHE>}N(w<{#%xeWrb3VLk{l6CE`|;Pu`@<*k$fbE4qXdZ}6Z@nfy! zg7ep+!sAIh8q>jkSYJWNQ^{U57dc2i!;>q zIF5{_njimeg${z_4&k_o2Mcwytxa&FYf0Kfm<8?w>W!V~mq6%i9Eaa>Y5=9<5{etR zn)=G4=MbRo3U3tH2rQ1usS3rtFL6q;Fj2lsxzE)|%T=V{4|!k^2aV#rFDv=DOyZUe zC>huNctR&=V1u~ze&VDL$}2)|_{o75Pa2_gT76R>j?|}!kem1&oY2X<0%aSUPKg;L z-9uJWc8usDF`LsRd*O-vPU}z`)V&rzp72<|v;f{B2s7*iXw2H>o2wCs@-p8EvSJHi zR@OapBjV984nf+!igtz!RAS!Q;H54*M6xGjnt)guCz7BSt=2#(|!F~F>F z7~zI_P;)|7%l(M~%jycG@{<56C;ZCPMtXPdn=*<;YUBypj__EvdqR2F3|uyEFemwO z6k-A|@5kCFi9>H)4Qd{QC@r%D!pQ|}w5KoGpSf?pq14~k{~3& zG$NyxtGh)}V7+30VeTX?;jYI}(Th6|bX6T!myRwuUmI{WeS)@6m@%{>=+}eIg8Rj@5I8mGd)bkk+YrNp>uZ2fGQ$nHMy&1 zPk9}r+MNlvW&7tb4t{EML-k6R*h_&jP_>Uej9O@Sl)7~a#}AhSX3$E~8V&g64F)l5 zkmZ(;4^LZ#mx$J3Oz32P1~n@{K8YWOmxWY@I8)*Ghc;TNKH7?(MGk?#m0?m}?y zgqkD$MHc>1CPGj>tt32>FvtXrF3JkFCOxjb4dBL{VM|HzIoV<5qj`o?nY*G1Y0?V6 zjZ6XH);Bvt1K+5{jia_AY=TSqE?A78)WDW&y9Q=^g~f`7&%I1b;tC$DH`m{_<@lkx zA`g1!?|EARe*D9f^jMu$!E+tG5Y`nfKjr(Tw21qV$ncxxaSxOZz+~X|z`RUH6bXO> z+I!ndNeU+}qY5^HNiLJo;A9fq*PR-0kgenm!53U=5TsFlCUyVhg$(WJ-9P6hD~)__ zi4+S@-*)U1SN4^*N)2FWf)zwOO&n>*3B47kzB3PW;vBt;)?CvWZXCTul@J2Moc;evh{3h|uIFX&gU>ZkYO2m+N@& zo2uDlsb&8|=|0Y9wfkm4i^pbl^H&-pw+#d6S*KDZJ!(4E8Y&4 z^D&$%In0vp?$YmPg!lf-v_te7??*(BaET}SoCTc}}$jSEYn zH=O#r*9XqhrdfhXbojDfPbi_3#q)ruhGig?Vf~8~49n6wY$-G3h8lLqujxvm3c8K1 z`5gY32Topgaogj)QH*hp2o zAkMbKN_QB6YaM1d8pSC(Fw7Syjj%Ln5!=vH6vxb`qq<>4H%RXMDlb?;5%l-oe}5h- zHJv$XAn-3e?V!xV_hzW!(Ah6eR)PZ^xkhwUy{_>cbIwMkT*C}2wv(pQ5mBuz*OS<* zvv*vZSgvhGgE^Cs`_)~6IT*||-tJBhP6-5r&w3pj0eQr;21 zGg|us&6k=(gC=7}kG&U&Tq)U|p!$d+e^t>NoO%MyHbB8zI8EBFvc~9zkJco_6+?lZ zUa}n@1glDkgW+>_$+_BUMHY^bUTj6A>DHucsL=5rV?nooRP2MpihL;p+->vn+mGkKjtN!N7P_6(Fwyy<|U39Qt~TKudmFYyG3TW zPJQbw+5`ZvjjN^d1DXgVp3X6Fq&BR0uNn6x- zQ=rzT+EZ-fjR7}ymv5t#=18N55Q#R8Mn`De%E(QDsEqf-Do#zx`|8(UE)#NOrqX^J zc#F+$N-;XEjXLkH`|nCQPLb?6&BT%~Hd)0td9sGnl3^xh*OVH|97XI?d+gz``7+;7Oz7 z6!6wWG53JqXK6J^nsfF~#PLcgg}5Q07&mOGm3Q6fZwz}>#K&n$vsBpJQlrL@Koh5_ z4O-!JuzyFCO&6<~9{RbFs7~Q`F&`esf3#S0Hcr@|L~f!;gG1kh7lMeIlCrl|Wx~!2 z^j^6LQ>LnIGT0j?vWL8lt?5F8u}tovF&DTPsjC?;@b(`3R+27B*kE;b95S%-#cm;= zbN)BeDf=8^3OtG!-*9z`+@DNtdq-e1dRsjlmYAWucNGswb}tkPVV9^B*;XC%t-e)y zk-Up2(I*rI81QMM_%5;TEu!+bv);6O>~^gckG)4MqZDHM3XRY`dF!9fjPJN?I=sk) z&r#U!a&Q8|VTjcdd#&zGe=9H8AvT;;Aim`h93shtUT?2h%M&;zvjLj;TYP>&IFxZl znM$#w4ucT2Imh>wi*4R2=&!o3$TBw5OQl6x7Z3=p_KB-m(%3d14A zHDo7#v8r1RhAZz3cO1F4%FRQixyh)_1%qv{Z`X&DfJ?slTHLwgMb9 zRv?qtqi|lcTO)A$I4<&+_|I=Q7uQTq3_-1fFa1ukeZx=^i(YqiWDZ3tkp^uwM_v`r zKJ58Tm1A(0MoJ2J9hppKZ$TL^A!H2Ok+&`0G-`TJyBMXEB$|xDg z(luBTSgRx4OXLPpPtY1E9W3M4Fs8#G0M(Qc!)>u_kiAxeGVY@_adde}SbFP}am_G7 zZo?Pprq*k%-P*UMX9EF9qXCUii4Plk;Oh>rON^2p&kxpAY3=}G#nWo37hqX+txGV} z;)sTYD0-)3Z;ZLGgr{Af$7BwF&MUzaMB653z|+4O+`)lGmw|DtNlgmFG;~)U(+X{u z3lh9RXu;vln&k_D$5;1cck$d^?kF+VCNX4VTOFl)dv^?1adw+oPC?O(B#8GXcNm+{ zVq=6Hsq8n5@4A%*#{xQRWFm?iX9mZ=Nm-B{Afn~o+f599o6HC$&Xte+G?5q=$rQe! zU8<2TM<&G0+H{E3CL7C#Sxm};D@BEV++~4bceD1ru<)HkF#4CdO}_vuSlJh)jEK(i ztNHMtIqI>^h%;+sbBbF_26#QKC9m$`K8hSUo)A5~qSV)OI@E*OY&|QG!G(cT?O93Q z=;!HyR;rnx0A<(+!^Yg*goaMqj*$%`Wb@S(XjF9l1q5;Sw zzTPWtWV02yw@j;lCw)%01UAvGK;U@qNdP2e1j12)@A05+@uPWcQ6?+pDy#4OaddWc zSP?9~tK0LhDs$I3?mdFx(Q_c`@TC5PuKI)li?Zw?E(ph+aPATcW%uUDRlH=ciSJ;l zT?FpX4(o}l&}AP=JC!ef@)TBqN>uQ$XyPTBNAT>ggw{ip=%|T#ao<-j-L86N zg|=IHj@M=!%ue1xXksl8u;M%_KG`elYg$&0sxw8tgy;5vYgn{K8n*_1ky`j3-+@s` zji9#Si52_W-ndj-=rkhJ8XsQtsMT<-5T0UMc_lcoi3rI{vu+5F)reT0>tLzq{Q`$s zLP3nms5N~gUQ9x_SanRwASiiVt_HOSD(mJ~aYO(+01=}F zeR&-Y;r(qvIsXJxe_8xzC{EBFi#Ve=Qa+p4h2oP+*{kILLp-FmJiMgiMuu$HIvVj< z$3C$t5>Q+-SP#kv?* z(zz;g`<5<$=)wm-{UTJ%wxyeG5L=a(`|-$xzv+< z#`j=ikOqju$kSepw2>FwOeclz64;mi!lbkkh+EjCCz|RcB6NeeUP7}6&#fx7Q7EoN z&zE&n_^2J&jj$cwvCi9!xO?h`{{H!Q04*J$_F*2mZuS-+4&7bNhHa?0;BdrkXC@*;I9d-ixV$_je6}V+6Et1VFL|uGMB)&j+6;!D zLIiP;Ghb@X%r2l$+%zw6t$uyi#atRqG_8eHw4bC`R&sWxCIA$pCFzy#g+;!A*(8|% zCPn$7=^lj1cevP<*c~tMH7co4nd+K$j^w}xGTlmaJnFdBKCYh6Srg@qkxMV zD2T^&=?IWH$}3e}I?}JNvgK_y>hG^=?bGY}SO3I3etjCe)_-$PMY-PJ{|E%fX+lihAY=`vK3FK@Y zO}UCqXV6(S!_hhn#U^Y=zD3Jv5K{}3)J3$as6e5;3{EOxJNRTDN-2yj94OaMY_ei5 zLgG5YcFdzfIR*iW7))!L)dT)9YI-oQgamq9Bxv+CN#3i%c9#m!U=2T29Xy)RWtWI` zU-}tug!b0j+q9_XSZ}K>AHMF}J4t#7m{g{`{HvFJ=n)PYhQz-Bq{5vJnh!+JhoS>QvIFFxjXW-}zthLU5$I4~Jt-M)AA<=p6a$+nWz3Wj zKVM;*jvdiQ*e^rD4!|dztlV52T$4f6ftpCnqkew>?GsvmHXAMr}SUArYFGRZ4HR{7w*cqz~tK2V8!e$tHqZNBkD&`!3 zzTU0>jR~_O4e)(C?zuZct)<-Vp-4}~loCfeyB%wo(Dr01b!1&93{%2UhK7qa2CM2G zU_9w)a$yo2KedqPSJY~#d^J7pSeisYY|$$UM_AvxMjwG~#Svyw#lI-{1gcf1DX-~m~h(m)ug>}ySd9=}6C>hMaU?jV)^;z&n}|SH!rxtk@FUuDbC2~zN&%q1 z>nabmBg~p;RIG~ll8<~DU!L4M7IzGe-t9JhPLg@TIxRgrr7R=IF2@bI%`>lh8=)1@ z%mNFSN?>Pd`_#Ik)MW1t`Q|-Rku!sQmq$P#>)j%ceCXR^XC!b(s8Ng0gJBGgZ&m9R zTX`KE%gSg9edzM*_(|gw!N`=G(xekKd-=f$r4V50sR-ThFqhbYi+ue1Yd9lubaSK} z|J`{~c};U^4=2$)S$pHnAVnkc`tn3?*Pnzo4 z{iqFGuTmwm)|Ow0xSALNtL#${d_N96ct>M#jXUHoBI8l1-+F{?D_vfpc3?hSy1d+> z$~C(JAx%rO6Q(@;FrC2D!cIbJQ;8D^4ZO}{oT6171p=Be9RN!~aCIVU#bpFjtOR!W zwlXG1l|>Dgzz#z@qVt$%l^HG;m}HPNYeFVF>`tReQUpM~yzjMy*#^(kevji8BlA_G z^(2*Ya=a}uG9kv^RIt5QpE0=wb>n;rHl=B73F`2QIXP@Y{KhecO9oaA{`~;BA?M|0 zIzmt6HT1Xew>^g`u|BB5+}WE_NFLo5~w z=~uJ2#Jrr0+j#`CB7EK>p&4{$sdDBKY#ejv<<#51NUb*iAL&c+lC; z8K|DkylLdXE!jD;Z>=dYENMiw#Y0v;U5g1NryohL|v zkiT-DrU>hvGQD%i$JkYJ47Q{~aIYeZV}sXi$@^1g5T%FYx=Y8^jdK(a^yAjz#qdyI ziQ^y)me~}RXJiVE+cDw$9VYi-uD>q-Gqk7hb3nG?9Fy51Gvk@^#UA`?mtMB<{G$qdGaOnt(=p9Uodt2C6 z+;IA)_3?m7IpH*Iht*-^Z*p&0DFIzG(g zkrOmIy|kj{bCC0>AR6bVBKP_TH$z#AZQUrCWdm8#kB4?7JSew-XK2LOg)uOskt4WA z!yvs$z#A4b&$qjs)Sf|x6i*Yk+|}9#>fT;Z?OXhwnG!e(3tJ`x4ji4;_RySC1J|Q2 zxVLfaHjWZlL2DtrH%YVAdR5zEJ0`r`6{&wyVspj7SxJ?%GZ+CPe``tyJK*H{+menC z&`Uv^KR>RTn_c3W?)HbwqLEKE;XQn3TH;J79>aFkZ|kimzt{Wf(0pZY{a)0a_>i=U zYdh=)zwslQ))_$r7d}>x%S@>_tq*xSM_8pWdAUn=)x}ZYCu17k`L>mwE5q!XZljo& zFo^KXW7iC~LkwEnJikyfbHc~(B!TLvcDXYre3Q|o9m=5`8f9*UTuPh6#VIEkoX}D$ z=h~M}eB*^c-`Q+eISFAi+#BhoZ|3Dn=S&XbgO>%&%h@a??>1{$$DV+DM016v#Cw=1 zG^a?iEpiLAZ73^Qc7Mao6{&2mva~d@!(hzKA!cn$ehzT$I7B?)gOrB;-O1JjHhk7i zn{+z?yH`;3OkDxB^cl91Yeu92-Y!IBn@71a9fpY$c_YoZ?wu)NdU=T3IpQaxPg`*y z4vMA=w$zZUt@yjNe+Q-k#&0DIZ)G3F13rYi-VR|~0a+j8cL82v9|=1Hll(<)VZEPF z&dMK|fQqg4(t}^6e(P4mYlE!_9WQM!yQtb)zcf<5>;g9Es^3#jbTkwo-kiIRW7Ku*nE`26m7Y95`Nj3|C=AF2yt=f5sI$24u{_k!_@0+M0YpEPB#n z=I>QwpmDKb=}?Rr?-5~QsKYk=zCGua+-$=v>J{Vip*MB&6*iu8u#E71nz{*<(O;Gy z-%^>#KLwwm8|!c9?ec|&12!U&4O(ooTMT#Y;sq0*{_UhPfTq{iF<*;sODYxtJX`## zFbJXwZ|b5edlZj;gWgRsVhx@&rnh~zFy{<@p7*!SopzwuNo_?X!RcR#13Qq$>EZ7+ z`iP$IQIs7*QP(^WjRNzg0<5ZnPy=dn7IhUA^1GynnDJb~*U`WZ*OX=YkQkjr$=fQ0 z)3am(M+-*;No{7pTjH0e;yq#x5(HVXpBHjts_25*R*$#vJ@gw{6tqk2@Gz4}oOXY!-iZ=o1M!z!1`kID5-7H?^wf+qKPou_POPqCv6TmnUyzgXiy7Xz=dX>j#_ z1Qz_pTz_BxXLt`z`k|IK-ot0>2Y`2W8ZsVu}9=hbbqsZW}K=t{vM=Y zVzeoaS`Z^Kka*}MhKfj%{FOyl)OAzlT3adnhhx+Y&LMh-vA|WHpp<-Kn3?PWj(K-$ zF59zE^?F>2&sbMrWzc&w1`56w%`=aa`;J~U&DbvXk)Byb1}#dsQ~h_RI4QMf$=BKY zmT8^uQLbsF$B>y$kYy_#n-Pbqhy!W!-jzQdiyWQtjJYI+ZKZvNf70n~Y4aM4XFL1R zu$YX-xl&LuT(!e^drzJ$RNxi&gm!FqL;gN0b=<+W7o;M|L^wc_{%Pv=y4UfU6dd0m z@9hS9LG`meCIv!J7r+yy}5Lhst zvHmI$4p5Xt=Putvw!~W%HQ?&M`x>KEsa4ql=rP|G;1Mmq2EV8)z=yi3Iq zbM+Hrzm4<^xk-~jPPZd~&9b)!YFwyMBLxGaAExY{<59I4A6`j@x?KrzXR-mm!l!Gw zHo~CE9Ni%R9A<>hs-86&o%9XciHK~}MzKqUmh`H`=NE>JO2bBnR;0}(J*<~XpKoqf zVTW#HP6Qq!SHx2RyK5tiq4ALnt^h8mXbqUyg60ywMag^N0Be1TEHwu>unK5A^Y%8A}k5Tim_akye* z8bAM@l5i(e?x(J16Fb@dK{RTqUYR~=LfYeGqNIcg*Yq*pz8cx^m#S$9hBsBvB|O*U zbh9=0Th6L;fzf1B44lW5ncTgT1qmM6#)rIR;ejdJ2*L2;*yxt^4jDf7l36lHkMig^ z$(5Uq2B2nC-EMkN#n@$R`ITR&20a{Zs>xlfJs>sIjNl^Y)JTCAz<&w+dUP%+1z|G@ zH_|w*wmG77ESSBBvs_Okz*1=z)jqsGID@#*1n%KzYKInxuO$oF1qX5K{d|XT44+J= zZW;&zv2GZJu#I%ALe%ehzp;)4eDAClRT>`@RH!-P+k`ZBb3I!P5*t<Za{X-`X*UL$$#9+*s2`nt z;$k%$b_r89TGX`rFu(FmRCs8Y^(Ol~XH$+A$pWkH?1l|&3=7NKT8HF%m|B)(jJ~21 zxXm9L;n5`CEL4RnQYV3QD{mruEX+T3Y}Q$sJi%tfyaB=sDaXn0eedX|q^$b=_L5R= zA*LBspzl2)EuJ+9Br+6lI4!h@1V^lnk^T_oYa~5nU`Lnpo!v2`hX4!ZJzQaq`D(m) zfu^WLOP(uGUu1yzOC0Ks?S~6WI)cHiX28}ER15L-8T85_p(nsiPRGp1JobOb)T;_) zKB271NI#?+h2T9k<0DL=t|8i=O z`{Wo&ssn%sU`8XGaM&esAd|m&!#bx>t*daCYxjVq6IC4MBgS4lP_HaGOz9cuUX z{xEN$D?o;}H%DBTKBr2$U<$Pp!^hBtKvJTawDmFxiP;=#Er-ipkH2biAM5)QB5tDX zZoMWn+GHyk@x7vb1(#7No>(O)g|Du_rK(sy%N1C#`Zdhsn9Z*rvlNRpzpTG{M@E&5 zzfkUvSZBgVPZN@8J5JfuI&xI~$8{pIuphoARe7;I4n03heWw*P8`||y1aGXrSEnm? zR%tso=9%;gB?XdSHrmQ>PKY_3@!mW0%10M{K%iPJvN(ftEcy<18XZ=bl#dnq?y3-V z!SQyiDCB<~q^$9HAi{w6NNh##k@3EiE^{0wUT>K@WAV_* zI*E?CR!NfaD^FW-iZP!y0~JZ|)^JaK!WmHr#(v+ZxTo7;0`w4l(b6hensPU$~ zPp$ckcqcn}!1Bb$I+-cntvzt|l|O{C(CHXp-0gKliM;rl;vx5nFiTpY5kNL%d41DM zlVd=R8PGs;Pppa^CwWAX*(=1*l>O*xkLiA8n_$OVN{muW>*OC|uqUaQYEr?6AVZ3& z35hE(-6=8LgS@}w$SLw<>mi<|%8_IX;RTF6Z|HIvtu1Mz3^qa6DE}Md5;R8Z@obJMx!R_N9z~SbryH#G@kc1Zc(j+jxf8 zkBk@fc@z|8PepNZHtt3&(us@EZhZ<^EyWHTSNjxMV9^L~9jGp+hvxqIi+xEUgBuXsFK89b;x8e1gWX=Yw zVu|_*2gud*k`t{QVdV(70|nE%hxpsHS74AHWKQ`@%cPV3+}peT<9OB3zShKVmJpDF z^p?^m4&B*V0y#8{nE=FWb2zky8Vu*GZd|C?!bmnh8lK{!ia!-rUm@KimU$@6r^tZ! zw4_?Tv*vo>hj*iYT(hyoZiS++$*=RrIEg$9W@B`1-={PfxI(oM$~ZD?!TqY4|H5<> z`Ja+JMqC)Gk|G-+<(HrE1yTSQMTg?c-_bZ?JcxctAIzul3GD zPMRE|5-A+WK>xIk?*J|eDPIy1hEM5~pXM<0=oY)8J1lT&9#<679HKJCF?8`VE9U$? zjApkOkJzxVUB7qT6L%{Opu1VOSH?&C#CT^!*Zro-SJ-8(Y5#K!<-)jAqFHnpfV@HI za^{4f5Ir{NLp|XcI=qs3zqhRPbztKAMr9^0Bcl6>n@6G+w8EnFy|FCG*Tljl|8-IOwb>+J;C-Q|5v=!67qCojD!--2-N||AXE6!LPrs z|1;>P7Qy{;?;50(rS-*J=f}`*4d>WFcrT?SyAuw7^*38sP?*IDy{gH0M8l^NJ^};E z#=c^APATz2w+Ay{FNi_5j{!xz;ezV>xI94~5;7H~B5(*KO`QHWKP>xCjaqEn2XbMv zZ=M2@_5As2?)OKBMWTC+2;3#H^ho5lWd6QQNP57ps*xtjC)y0#YES_pa4_fdT>@hy zwmJha8PH0U{L7L(%D8Qz>GCbRJMed_!8C?zVyn8Q^LF2ZVzvc}1;rzuUE0*DolqKBP zYY=ykxgUB5%~}Wcjg#v~1Xupj+wYwj%kQZ}EJcpm2@fpS-|>pDh@<(v6E>?8Y}~6V zFoEc!v5n=J7!RD$?6wVM_y&NIKWyJ$R z4_+uc(y*^t&6E>EF$qrFe$PataACt0XkYNvm zjIuOlFO=wHUnmj7XDr3UyKZODAg>8sRMgzM2CM6&)mzvLkr#Q z0i*5KlLzS83b>?Aa@r~7jrszCuH=E@X8GV>poAlSD3gye(!7P13DJ9^g5EOEe)uo; z-l6OUm@fz#v!884@!AL?Qh| zdyMXu2@IsvmWLq70%B7`%%OJlFA;~la3p_*6g=Ndufbq&E_x^b;?3@$5^l?@*HIri zXLqy6iHtBK4%j!li%R_}O|Pr?H*~qu)c2N#%*YrYPJ@HQND}9b*l-QYujmZY=M5+8 z=I7ubgkzR?pRujw(E2(mh<4>vpkMNZ`FpBzySl_FyWXFp4&~IQwO)%2;`DW5`^EVS z>#Xx4N3I}KS3Dj)#4_$TV!X>iwa~C{hQM9PrgU^4P5tvJl)oaOAU}5WxGm?Sk2doJ z#NA+~_ss?`FRXLUYYOfV)+pXpLchh^`a%mAe2FEYUld3CzV^W-k-JI~!zud#!~$Ki zOG1OqtNDu*?ujY1V24@8Pq_}K1pMFq>YCis_Dan>yZ5#4ZX99<_i^qLP zl$Cf06l`#bo|O{yMX?Dd!`S*9Um#15mE*pb-AE;*;3IZ)jw8QZR5J`Btmum?VotA< zLFLUMNzBRk8M15QkjMz@NzC|*)ML6;Y^%?9?MZ7>R-zKtVZz>*CnN6clxhkJ2yUMq z4~qE?QC{FCpksN&`VOzebG=EMeC38sTEuQS!0R3qv%zBtw2k_J$v!`jzQ#kPDHl_* zZB~y4$jXEV8R4|?02|977C4T1NjeS?R znn*$`HHQRF;!TKM+p{YyUelh<3d=Imnui{4QPP}DRBOrPbLLl3vTQ$2bL3byo|;mw zELSah^FvUaH*Yl{{w(Kp^+~qsezpM<$pqV)rt?fHc(0lK(?u4V7QKoZKaJ8*^7X1d z$B^^w{*$7BM7^i-uZ=WrDUy4MAzHNc&&TXM%dFc6dh)_G z*`mJ;)4z%qet6jvW4ZLTqOBW7j0yGA|J}O*KF5a zj~x&^ORV~L>y?>(N-2v1CuqhZlD@OtM;&eD$`7;=Hcun;4tIMRMSSUY!T>6+r{z6et{44j8JW=s2 z>rp|QV?$Ikamd8yAZHWp$uO{Y6F4g-7i**<@QBW>kAe59bm7E-Q|ig4O+L}5@;dNW z&~iMXISW0?Wg<4ADKFLM03qMk>~lqhjhDq!G43{?At|+kw%N}h5Z^FOFyn&7$E?>* zr!k{Y2*&xxnHENYMFvDr|H?_&0t#dXZEYyMo6JYQa=xmzf30je_JFXr!nI70H@`g; zD5B$3|D#}b=>iizuBNe$e_-DH^K7D4S#QbHc5eqg%F=~VUbCXMuainXJh@I0;gfdO zd|vl~J~csUYUobCvx+{eiVmeW#5}M*4jw3Nm`Q-KN_(8W*Z@8769YQIs&vAGsfCCN z1gLl&Ue8om=PhC)r#26P0x9;Qy|=qx0s#b&ipUt=M8Kcncx%9bhU6wGVYQa-@<7O8dcRNiPkQe2Ad2MRmgvx>)h$ zx;@42NQ2`EA1-bI1Q+(Sdov6@)(OZ1b#WlC#|q?F80vfIyeFBj=jY$fZFg|Pee~bU z%RLl053(VOtLOKh(5-Fmd1l6VO$9Tprqi7E!+jb>hQ-*P2?|#?Q74+Gu}F$4Z*;hWJ>H2IW(=>fp$EfJ1 zd30eux%1`fWh+3Cmlvm)nJ*&^lx3M8E#5D%FD^rsnPIWZUC)<2ZdqL>eV$Y6d0g<) zWtPoc1V+*yJK(Otj~w!GGd{WbpzN`KOFR)fV?r;+iPXE2c*7F+-o^-Bk{_`<&vGp& z9~cn)cBH{X#HDp0LeoTpr|0yX;uoDfO3t&>h1-R&K_LYyZa^9_$B?qcbKowIwkBBH zv%;!S*ALg_(1;AnI5dQHuFibNE?^)Z8!|&|YlD z8V+Q%O~cnP@Tz~yDg=H9(jwuF@_hTRt3+Em&)Hxc^v=(Y0>RY?g=V~lpaP-EXPb$~ z<$;{WrD49DNlzS+b0zSt1U=XSW=l%7e5Y<*>zfjm>j*pL8fN$zb3!hwK8Ge^cYF;9 zhbCfL^Hk_Z*41#|4s0HtD4xsxS*WAhn|cD{v~<=psz5cGtIcF-=bPfCT)gWrcRZ%7 zS7G=J&RfEca4?q%X9|R1kCsq2wzagGKw=4}+}QDnAenznqSJ;G{uqy%I!a97ReA`m zS_0*N9u#7ftjLI>a(;exFHo`!9UBfwFQfs+9`9jC&DYPT)uPoc=BTQlp7S0Cjuivw zA(Gchvl`|t3YpdfF}~{Rj|;kK^Lm0f;Anh~l<^yLg7`daro;ujw0NeLG>6hS@SJKZ z&^3ibjesx$T~-RJOaCT+Q2J<>DucET7wsUdW5CC&)rNiQrFEyQUNRgbL)F&|1vJ9G zp}yrI*KXx{S5_kErXn--*O7N9b+XJzaq&F44hl!=fF00C{+s^3$Cg|jlvI`v+&*lm z)SRn?(L%!BA?3wUQy16%_P+gc@ByBmTb@YyYYFH&>KSw0KOSp=gL0)ana}Z)5k9_L zT`g&>;O=AF5{v@_wQy{R!<>`bqRv06mny2!FXxK)C|(Xj^g!t;T-*$Y@S>%diZ8#$ za};GS$M=KCw76>PagJq8ZTALTMf^NT8F8AtJw=;!%agD;C(57c;TH7} zQ>~RWH*HE$adu-Vas}2?3B*?vltQ9&=GRheq?$6W;});92Zg9EadIF!v@)r3T*?Hb z%3&RoVK0+tI9B(cm!587Fh_Y5r%j}?i-V}>CGN9s^{Y&?t zO0MIG6hwmf1?uy~V=|WLsT;!_7B+=m7c-o;tHR;oGKCZb~h%KntRLFXGj*5cKJRp zK~kaE4F|08Vi|aJ;b}98Dv-r~o;bz-m^=`6 z#adqK8(dJo89+vC?&^bvC654-9(f(VL7)f-T``^(B?Pypzuvmya41t~v+C^OjN4sP%zy0QLR6Why>OQ&n4R zFloSqFlxb5Rq$EtG5cjl?CU(TE*~s=iA|k-6`qTzdQo|&IVeud3>;N+BHS?Pfx~Y* z+?{bh)%I%)Ay2rOch+&L{beI5{>S&lsh^(0LCk5pVh3sT&~kos1>Ea<&GAgiT>y*l zBZ~v~7>yX~f}giq1jEVDd9#|1uvv397_Wf;U7QQ=Y-yw!o8It-T$LHGy9gtc)`~Z3 zl?lh1Jn*|;HwE`dSFf%kMp#c1Uas)a^9u6m&=mWdnDDmR=f^~W*u9057D8s9J_!2< zlnLQ2Vx)aqZ85q5CQ2kOvwwWkDaRbZ+&=9;P^4+459HPVW&N)KOc~8Vhcv>ZEUsRU zXU49x(u2w&gcqcA57LJP<6;>?%8%+XfhQe$Cf&Xeae2~ARD*Z?D`fADsqV8ffRZIb zE^UYIupilH9=Z59*X)}=B4idWTnd1>ZvaV|c=91ZZ2z41h>6p96W$n17FA>LX}8>B zFem5XdH9l8`R>@qwzKw>?|bY!%Q^HH*^q&xJc_BPc`3%6?v!X7T8b*-^6mGsOI*jE z+w{`iDEB_wdge~kA(}VJ(EgF&4pMIc&qFookq8^-!L+4CINyz_oo19)k6y1Dv9&g+^FZtu-e`%AbL0X!^vN z-{h%pO`XN(nrYie$P`F!s4a*8WDXTIuq_fTUd8&9&muIQ9p0`$^!Uo(M@5al20V4i zK6-!j%r=TbbUBpc__FV**rivA3e1#fLVm->_Ri>gSi#sKRe9hA6B`8;_Rx|SXSuj@Vc{fcTPX62}ZYowXboB13Ia}R| zPNA5nI4rK5`!VDsb+2h?8He!;w2w23-X;%&$`@4s>XFnY&4>N%QN0(HX{fL_~h31H?6;l zIg|hWx!Hw)QIAESNvc=b3Vz*I;5*2l3YBSn|6!05c`ficr8&#j`N9^q?F`S^eFXKu z6C#Tag?-w|06zOoTNoPpHK9?_@WZpAA=0M#kn~lLM3uk=II5P_VONTIYKG|1p}V;Y zZhPi1+6q{bo2exCS1}HXn>a~nWjG+zzm z^sd3__$uVSc9}WecjOM#SKvmXUa_Lr`eM(y0Cv{zcHP9O#vGD{0H0q+1_o>TCBGF+ z5N6A-bLBD&eTQ$q%4<5yqIPLe3Z>!BWJn=%Sn`k&TDU2b18J;Ai(P1S^aL+VJK_yL zp7VmiU4*i&j$R%QIG(x$ru>m&inzCfG~j3P9uRA%^($oc{w(1ay!WOtCvG0L0ucv# z?DWPV#Mg>A^iP=kU5z=(_N*^>up@>zf~Lr+jS&Z&b5ws4L2e#4Pd=K2OT}TCL-Cth zU&>z=FeR+O+(~u?RU-nXaqMO!wuhE{WsvE{jLNk&tY^Fdg-k1+v~SLX!SgmSjg8qC z8RHOG)h4=Q`1R#Y+(5I{!_2y${R^kCa=FzXt8NxEqk@K3-A!xpY<-frG3|wlk;-{# zgp4QvT!N)>v1j?<=VI)u=3dnQWjs9}+LYrkizvTqdH8dS+veusy3c-84qIot*NANN z8!3YQ8P$n@Q0Ip3yiTP@d1Mtab9B&&Djx99!6q>5zIG6&#&+c5FCrFR!wo`e+WPxEax*!g$CjMu9>Z zlqYXpbjw?mRTM=DKq*OzEerv0$BZq2DOQNkCWq3TEq<9&l|bQ;MIxjPe-7Otdt@m@ zwx@Z3(?a71J6M|pjryE!Dqi2i!1SOz$}It-Hpqn3i82<;Eu`Ezj7u4dd^---*W#uQ zqEEJGs`gzI-w%r#GNJwVu=maDlXDf(w?E_6s7`kpUD6$@uV)wVL_fi$S9n$tov zle=b%yXOrV?A^#umCa0C5%WTd@XxBrP3;*YXiqXGz8+SlcfiHbX3*ImVoTk0+!h7T zx14jRX1uj2Gn}-5u>yAXBvf!onoPVGxdT%}Ap^9wuN(#2^V)L;ug@D|ys{(E@$hJqXbv4bED#&odDBi7Z$);!49 zV(7KcY6SIyFLj*5-cMD%*yfX4a~_3{$=&6+HXRqQ*=OxnHTBT|l>=^PErn@Y%f|#_ zzU4&Vk5zWs(bi#$0$%(mX>7xajOnJ~ym)wyHesT;vg(j=ec9>56bIvSB?x+&CKE6F zac5cv4bIkcP#TZJem?rxP{`(~sExQD^NyS%@e<;>-er`>rG>haA&ZxwGS5SYYBG9O zFd*TpdY#gt3fJ-0Q;*Lqw=uE;Hxj|niW9dSBRsW;Z9X%Mz**^>)aO-Jeea z;3T3^FcuWJp1)}v?oIHPM>eT|@^FKg&}DYb9I<+qxpDC29R$brqPe|++RkYsxmf#S zweq2RrV2C8DT~Vhg6OyF7LIK-U9d%co#Y&wd|PW;kTN8QDexLK+f^NI(&bR zj(g4Tj}uN2?xjmX7SYUg;sB3Mdcw(CetNm;A?QEOn@nKRSj>E4m_^Srzaz?1t7tmu zmNkD;yjuJhsc!JBdGp!Dd}^tx;X#{k;7ZOjb7AaVL{!U5e7osiOMLqKS;bxjkLtb?QB_Q)#YCYoj5hmK8?*%y(e>XqIoC z|sfJ9WBe0;f-#?O*>v>)=2ZZ6YC)v8Qn5N!hy;ZN9GSEXCQyY z6f%7@YpOngu|p&^Mx_HK)N==0$@x>mJw?Xa8^H&5F@^eVp?q_{vf9Ju>@4Sb=UY=M zvNeyT<+KzBMG4>nW~i*~2r_|!%>R2H zG=0h_t4SY|XTk8yhEOMba8|Sq^xCoBE>EKwNQ^bupNXN}J^9Jw7_}2u^r60?0k3@&`U&HVT zTkUBuJA&qE)J~4Gr9QMJMHl8`R@_PrSkZNE3sJX?7hPwGNT7!nsc0{jTQEkzPjcFD zXj;Q!Ad5d$F?~Arf()W#_o%np`6s^3_`9$06_K~-U`!}@e4?fs4U=(Pc}ipezhjRm6s zX_9OLy{nINLDo?eMZr|4jhss}johOsuaSP=vW<(t;I6HC#<~L^s0tFKY_b!VZ(&{> zmSNmNcI~i;NLSH1&wD$m%p~kkcZ1=lapb? zN?O>|tGkgMS=w{+HeO1;^v+!jtWWv(RDhC%m0b*49{M zWDDvjae+5oW0=|#m>oM}gDWwS?#UZr{z^UH?3bbW@5*O69#o<0j=yzpnF%AuYPp2M z%-P+ul&RJYLmB%v#`EY#i2A>pqJncTR8X(;4sFj&XsF!le;2m}Y^}D6*?_inJYTKY zAJcRaHKRKZ4&fOxuY@y{N`1DBTIH(=k%lVBFP)fboB6vqi*m}!9SPvyoSWWCOMz{d zzYgwi%wLHV_n#9FB+m&kD95y4Bvcc8i$;dN$Jad1yn0`V%{BssY5XLfM0hM4ipFl0 zcNgNzC?d@=XRX`m*Hfl?w@u?&`oivOB1RvI**KEaTA?bd?gnd`11Yw$Ro_?^hXp`A zbdEafCk>%HimeX;F(y;~lR}cJ$UyPVv%(#UA3KtMqAtRE+v8e!#IrvdR8C)o{{plI zoBzK7?0+o(HJA(Ku>mU*=Hlquv>uner-t(7D^*W}1FbBwd#YbE`teSKo z;#JJ?E9HTvcwD%S9Ok(W4vHRk6utm8i{eVorwf_HD@!K=%4N62E_6rw04;gnfwb^~ z*bhV#lZ(HEpQ_R`Bm|97oH}ZTpsLOo9N7a+c?K(qlE~4|u7Akfg>fwmAZvw4cOuPk zsP}{H&lrOp5-(==ijWFht|zI;l^L^`O7;Cc^F?JK(~7DuM%HfDbbe(tbTOp$Jcv{T zovK`LY{}9;6M-(;8*?`HvL85Tj22EY$73*Zdw!c#?XV2!o#F=gsFc*3+eG0g&fKdI zLLg1~NMnl3-vDHSZq2 zYKj<=%XZPW-(D!kA@WP48`Aa?fFWxvnh@jgcF@TD48X|7lkSv`&Mi5Uo$8E&Wuf^~ z_&qEe|68~rvJGumv;H1VY#4-@DC#i_sIo1G6;DLO{##Iyd>0gR_;PolP;JG9Lw3Rk zc)n!>9Lf{nX==^^U>$)4A{c%&nGD3;7daUOhZabt{r1^b^%6|OmYLG*lvn?DE=eRRJ^pC*K+HL=P+bW z3mZLOz^%~o9MslTUQ7>#1MbXbI!0M({sa7q(KNxKqY(Eh3IA8QOP~>6%;T6bkndbu z)3&}O2J|h5lu%{;!!(R>OMSA0MttNJ!i~SLxt~E?XfN0>ioBd%Y8)_%)SrOt+EWf; zyV7nD#4WVipK2FJP-`NizP;ZBcQF1n!8dNWyMO4?<29X0sb%VIiR#v)aE;;cmYlBz zdUq2U79?Blc^y;eo=oAY@@`jplFOT?NV!R#5jhiiRK-`}t3~Cej+_s3G%ea7v`+Nl zviB_2-@sm_;Rt>W$ujGiGL~g*rqj(GR~I$8SqD!fQJBEIOK>_LU%&A-k8j*9_@qUh z6|>sab0_M;$Qmm>7X_%2);-6#eNx8kEOq2^tc!E{w5Wo@XlSaSi%A%oxsFxd$_Qn- z__%KvQp#?4ibE_#ZcCF$IEYgj*3!G8Bpq4UVNqaRE3+5lWLb`1CvGx;`ie$QGmBT_ zurs}Ujx=2w7O#p4qxA`7=Dg!MhR~C+mv$6$F9n;lOzu^#IT{u_7&RU_uWNd>lK#LZ zX67X==W|=8^k_=|Oje3^6uq?^F!h)8>=CMT)y?@bqP?Fvx~f*MnpQeYEJ{+ zBFEn=)j@U!nlj+Mkj(bX^bX!1xzDpBV?DA{h1Hmvau?j60iSV^!ZEY ztB+J3h4?n>;mozvt`@Zz<)U#WLxh7f69>>a*8+{ju@F!Ze29>snx@TiTq^kj(uj^K zQLR+g$F}rl%1YX}QGZ`V)Kiu*2X@VWHtIDQ*``Z*!sPxPSZwnH5SCw`lw05}(&2X7 znkyPxH2{RRja=8qm7xP$;e0nJFhUvxPhdc?h|+`{0=O%_2Q`FTRA zi*xcm+B=>DxYpn^FsVm=+1javBUBONXWRTi2|LqPoQfn*^@bx@uZ9=Aq-Upd@6xVJ z>p%hUW99Ef^h4~36VfsA^V1KbZ74X5@h-6Xys zmCVh7jwG-3*IztHY3)2T({Ws$;Ac>^Sy{g zq+csav1g7l>6!{dWJWoVvj5zCji021P4Fi+(@*Kz_A-ox$=OQ=W+`otc?;{D^PY7o zy+lJcfyvvVrF3Dss(>Tg`8L>MV`K(t#;BWNz?qDqj*F?CXLPnBT6O9nUAVAlx$UrJ?SD*;JyF z6QGLXx8|cAV zow`!2JGb_<(~C)|} z%k>BA7>dK>0zt&}_K3GrG>s$ECFj~26Lw`yv~*AmoG{LV?}dn=E&ej3xB6WNrXhA{ zjJoGZi0K|Rs(fa@@jEO^?+R4V+_1|Pre^?;=6A{fXDoq(NPFsBm@*>jQ9mDZC&hP; zf0p?#qtUi!nm2X&_cWF@CSiVZ^KrxE5`=)r@#K*sY|Ip+X$(UUyQQgQr4+Ft@K;)- z@qHmKQKU2(bFN1+z-cWW!Q(I$L{hew-Y(qbvy1WFT`4k`N8nDbGO2R)g|)DMV0=R_ zhAp+{9)Mn=KYLPwE^^O6TMUF(+I_~H(_4dNDtjd+_5IdIIhm{8%)C?&%7(qrVHCgHjjI%M+MKK-TJ`LjJ3YnnYzUyD?()AY4g5jt)D&_u^XG0wWWmB@9sQ%( zN(!q|FuFdcCXZfJD%zs{cWJHqt{iD$nXs@P#a8-H(fO!K!xJXo;3lmzv}t$>0j3YB z-L893k=40Zj-A0ZTEEIi;I6CL+cMPxs2sbCjD;CXt&-lnnzC*gQ}OOjUpJg8qj+Tx zV1|z&%XrR~qsh}r4#GDf@lE2BPk~8W1JbgAAS-_5IsFLq(fA91o}-TDQbea zcnvr|mGuJ|l<4Z8hd+cKF1tGgn9mq{Mj>h} z)l~s`{tF2Qb6#xkj>`#25P_J(5ijK>tV0b&w%Lr3qvFVfMcOilz9R@3v!nS2z-tSe zfRF<=r7w-5(WVG2Y_!kB>4^1##=L1dQ`dMv7-+@EGa`;x+7Ra|0U7kpT)1PW_2i;t z@ND~>$ANG^4J@RbVY4Qr!g_ZB!munvai)UEau>uHyK-wL10kg9Myf!HGnOgNXv5nB zy!5y@cpF!_TVxwogS=W^E^(9UZi!TZzvQ;*K&$kK{rMCNG7ymC{7kb$t#^A(=%4Kg zY$?U-5v@uIASLI#RBD&Xjy@<3JM97L*=2_;`BBYxi=VYDkLb$&tJV|<_tRl=JSQe@ z<;}avTmYD(UbwftG4eh7FLd5Jy5OBxpOnGwPJJU<{@pEFfC9p_tY=Ln^ALqjv7Itg znW;5yiuplHhh=YHC!dA_sSwT(V}?eM{hK3iWQSc-iP*Brd2yl46BtWKy>P|{oZ}sb z@R(DNRF|s^pYrFVJzCN}d)wjYXr!Vx$ddw45f+bN&RTA+=#A@+q(Dc7M&*<7f(t$3 z8GR;w<4e!DB^{uZWUbXCAJO!qGI#bssiRqAVFx$$`OVfgJv2Is^)4`*g#V zG=?VgAIw>!(lJUUvglY8dSnlpUPtHn;1ne6M5({X80O4)9YKeP|6_=!>>wrsLY#52 z&!5N`oUOM3Dny3=as>WR>;Js=*T6CsX5`L2v|Ok*w63UHmj!x(r7M*KUNL2H$l<5m z;japh)~ci_`H=>mM;T)+1IN(<)T+;cjhMOLoLxmsEv`JO_wnpV;{DUhb2yOieeNZz zi7(9!M~mxk*`#m5he8hshwyXMjNKARstlT86Pxe{_H1KW1stb+>(6_okw(>DFUL(7 zMMn)eIp_l3Ya@SULo@|;OYOVlW%7?LgfSf58XpfQnExY{F2$N&tF8!({s@ueUGRiJ zxSZEb1ExrrUeG#(CcS#{Xlc(Jc`VA0v#L+vQXEeZQAorrv4mfxds7IA@}hPxAMKeL z)iQI15QUz&;MkLgGPNH$`*<8oM|3#7s*QZWW%Gj-$rfA=P@k}sad1)ertT0{@16%E z8r5)EX<7k@(m@!_)=?J#b;LT358H@N})eZw?EW8`?o+xIyWPJ+kC9RByAblr+r2Dw$ASNsjAWjLY^qlW%21ImzM zhhqF2S6($d9;pd5@;hlc22~std$-n?;Irp@RU9>k)|WQ9mtlF*7Iq$ce9463islA? zLzQNPoR1WWo8hpBDZ`KTd5*>YRUJulZwA{ax?Uq{5v6Yu73fY}(Z*mm#txPi-!kPd zw8CUW+{ks;I+v_LY-pNGmqf%+Q7?UCkTPB}<>lRwAP{s>FarV&zJr`Z+< zHps*>@7eC`p6+n!%weh`q@4OJO(RA(9U8s+>iu~J;0-6oTIQ15ScJD@D)3Se<#y+` zX&9lvcG(B7#HCCq3ql{^pLNrCV2Fc@Ika`9T;QHt?;(ZKW=&BarTY@?@*`n5co;iV zqwo%;M4q-HF=GMW@+826K!49ZFk0qLBRDZPy9jx&@1Pl^EOg<_298>JFwG;j5qOov zXivd@><7BmkWXZ zzUDCxS8XbxQ+RgUo`xe6CmaTlMf%(Jd5rX8OpU~kM%>Q>8T@6?9bDDZ<6j6DXsVE2OS^7^?a{>dVN!4AA zNrU7#Bq@TLAW3!>WH?+jGpD$P4f-^v2kV?;amk*0eGbC$onbNHg%lfpq9{57lYs>C zVEoHJd2Q7DSHaQSGNDIGj%%}(O@@zq#u;d88^saF54{#y+ZdCMBg1x%6Wm&Iwyd5h z%_5T0pmH0MisOSdHs=#&UAN`>MAQXBMj2kl&E*9{m*vYS;4!2{wJ3HoCUmI2WoTzI zd!$iYodw31*(l!c&jg}ruf3(6V-qz7aHd^$K779>U0VU?+1?8n(fVu`sV}i;5G=7w=!m$P*rpgpLILqgG zPhW+HsgT0wGn0TIUy1=mWxTHp71hpE*Mj3 zN(8Cck`N3$>3XS3E{xN9ZUD*-G@&|5xeUggQ#y_1p;f#;C3|o*rZ1x*X&X<5O~=!x z#x!_u35dNUoj4Sjptz?xTyoG6#0U)lz7-MY)c7eWHN;I*R->};kEP)Vpm6La=T&{! z87XPAX))I?2g}k(1jFQ+ z@}#*_)}LOu$YNN$>je?h^JG-5Qnsms5$|{=S3;ImD1iEUI(|#p&l(K{IK}uH6m= z#VMGNT|WCs#)M)#mSoMyGDn;mPwhOW=33(V)t*5>VmnPyZkcvG=Wu=roH!@@)I0p{ zE8TXX`ZxQUHb~DW3Uf9Ho9qej=)aJsK!g|=aPTs#5f0&^gTc2mcRm^(LL}Rbj)@d;e602byF=U?NFl4rf zD0H86H@1zmm_}4X@5Y2=0$@yd?z&XS7n%e0UKWrH&J@c5 zKoqme@X>1q95o1*Z!TJgj&k=>s8P-Zg2T+}t%}h}Sg)NY*-2rIx8#Ao$wPQ%A-REt*uL z<1S7I7k#uUZ4+2cGIE+bEA(7D0~R3d)`Zn$(AoNK$~^c@>j(n7E3~ z;X)jDNzQU362{KQ8m7^3 z-MAb(C+BjfiZ_L>D?H>o94f}lHGcnAiY)!JX6ZE0k$4nNCmx4Yok0QwMd3l$nELFd zlyE76whLC%;UA?NZZlDP$#77CIT?At-6NBpGeq+l=d*PzKtv#D2j4`Tb z2xMr~^N94g6Ska4&zjN+g&~w7%C<&MpFACJ=qp$q*SOwC_qXfDP!RO#IgWqf?$1qgyv+jb-JM1CMIX0iwbd>6zH{vdLGo%*;)D>xJNZVfEw}c$coZxuX z@?#3^M8;wQYUKU3$8ow*;y&gwaVsZJCjEKB7v6Nd`X=oD~_OKb-{{xO0hg~G9C z#JE4tNoxKCtTh!qa>p)BsV(5x)7pQ>6+Ljf{%!HEq3SBJ?-yG;7==u&Z~7VfvGQAl zE3Ea7X|NmoaA_Qkb>UmoR^LQA{-2o9S7DJE>wv6rP2WS>$;aoFJ=CiljWuU!Bkj3( zrlwp0u=K;3(kL0_Sz4#@7}bo@6_?A+SGQ(%x?TbJ;UORbyI^#>XRFT45B;jTq&AS=jJR7uB~#Hp}Sx< zlWDZFl9X5BP>kZVm(YT8DpmdveYc(j3>3VIz64nlDeC;!X;v!C7UmCeBIiJGX!1wT zv;jQl$%$aYrhs9TqK`=CGshQqdc`_Ymcyj3Z}?oOiHxo3f$leDCZq=_UN|j!A{98q zyTbPbCX|uNI8B)yNF}oj!o!SawT)9I0M?u7ew-Sk4bD zqrEn^hTCc^&J*V?*^nNS*2>f45dpdTEKPf=5$0;Yh#c{K&8pmL+h(qwm=e6=;9Wf{? zz5kKV_YgN*{?msfq59s3z_rw$um@IBE7nk+$FY$uT!TykgAeXtRcY=rRkW+~YGx&> z-1x-)vX!puK!CM24g+gt78D6QaT>fkqk1iSQPyo&mdbi$??Vpb5wK?D;8v4%Dd9_5 zN<)KqWba0Y&g#@S8q+$Of)DfeonltEFQkLMN&r)4Pn76}f*3uUiz_xTDz&GBj>Cgm z6!vf+*9?7-iywSuvykQJ^fTFeG3hevn$DMzuR)n-$yeps&s^_KAg#x}y_{^GOQ%5@ zB*1#E=*#~oMG3Doajt>nNab~u4KYJB?=9+*x`8{D5G{C)yyB*tHzATZf2?1Xma*r@ zgS>9nA{H9`Wf&f=#?-pvC*Gu*5_R}Pgt|VPuedpyzcY%@8I#U%m}E!aom+OE*qIZV zsU`SlpNy%6^nq*Nbq|45Ue`=0&G%fsmds+)PKMoW_T;0(B68)396f4Q^)!y}$j`HC zB)YO{!_X#4GcXgO)7yg^F3NmFMur@O@4{LrB2t?77`2EP8dX8Z%O8(oq;hv89mobb zlj@~8Z@#Or?5OolT9-KTz@UGbmO+ZxJDd7SOIhGOK%y>n+DLV)^kQsCE*)z1g0QL2dv zqz%xl0ztRBq)g}FlnIKF-X0oqk$8@0)bgK8#>mtF7mGVfO~fc(o!C&4Xx0AkahHXd zCD8FcTmwcRSZuXj5@^0FPFndqDaI+PZ3+W*!l7DhM;P7Yqei_0&rf+c7} zcoue_DT5;0#pP#qhLS2ff-pUXvXJS(#%@=hMIk4A@nnt-Higu5D;C3VAS7u;>v=)M zPgh6_end0#KII%y#C>wS?sS$6Xd7Ae^<0r$z}%BjOt&>WsV42~892hsm`2q|j?zH8 zI7_P=RY%2<{a7WZ$hZu1+bRL$KT1YuJPZbQ6zSRTg^fDrF%Ts3-Th(2DBJ7`g<6*K zq3u58Qlo4Jq-;J`k1P@N_mvIO1T$`WQ*9|6%Ypy@Cpi7Vz5l-c*DyC;uZn6;%pE_I z_XSRTdzXTuGU|MKN`R3LEE57E@Pn8^ik~OVe68MG1f~P-f!ctwArCkMSsE--oIzBZ4cm%`l?B zS+IQ-o%hsJ$V>ST*>VbQOS|cRmF-MT6Z#(am76A7i&Majh{G?5_QZC^DL@rKyNj!{ za~*;mKzZs3y!rL9FgfeCM*+70Oia2s1iC5Uhav9!d+Bwq0QY#VbiFDHei?9+Xw@E` zC+ZiUGJp@$@%M8v#Ngw}N!!!22zM9o0+4L(Vz6hx4J)LweS^5;BCJH*s=?HaV2pA1 zo7^MUV-_GPA_f+jV^zgQ*$&+7aPA)zhe0UMFiO|wl1v6M#iQ$)M;C|#g0tCf(WRx{N&Ii7MSCAVXL|Ts#F1rY< zYxekaqX~D>>AWhE1ELU1M>0k2YGh4{Mr@f$GQZG9_c93_H&r*jjvQc*^K;@SW$%T# zS6skhz)i$S(rvohkzh)?;JAw#h)c#vUNg`J-M8_!WFjKxvaNnxp+b`YD<@4UiwWeW zjelXgsI2+}-0G|xagL!i3{MedZ$ZYEVH_5F-tr|ce5&Pm!^VCSZoD6`BZg~9cggx8 zdK~1532nyv`5eYL_zod0pwnVN`j5f|tMk^Yl1xYXtf5H3xD`}P;@=rQ3g|8}ncT6? zg(}@rFANj0xjI^pYfxMSC@+Z8pJim+>8(BFjk>4TiTQHPz$ti1jAR`*{}iMlqN9do z8Ph{cs5uup>>s`))w_Em21(Wfl*;qr}YgESZ%+ zGqj_8d!e991E^7r#fe?}hGc_!X{SOXPEuoQJZC%S1}}4&VjujI(K<58MFB$pF1?+o zgYgTrv;Jxhc9_b&P;{(lGB>FRoJCRU4=0~DETxQ(@N>NEW3X`6QM^nJu}_BB;f2%g zXJr-OK@n(FMyF<86`dZ<-e_IY%IKeg*1qslTgvtm4i3qts>2TA1Ir(n$lH^hRFW$m zse9jLyKP(t_eiogg`G5Rvf-Z7UN{1?O`uCr$AQtN!7^fZ`q%>FIK$nM>tyfpIkc|( zwTJMkq5?68@z9&0S+0+x$PZbkVDQ#+eO_6xY79_&O>o`R0@5+ec+sBeEVn97j%ZIi zt6shieiYMe@|E2`eR~|jmx==3!uEdbv==$n`_SZGhoO+fZV@(9>o)#eOl5G$rVO*9 zckwZfvaF5%%YH6vBmtl;M+P@vs%M1>>nq%y*^3qM19~kxS2O zrsyaY2n=g==govqfuim)tFW`zM2>)!82F`6=Nw(Dq)DF*h=e-U@BtkG}dx*U% z?FXt1Rw%R@f;xh~}nxLQi<<3d4<6w`5(Go{qUpKsQ8HHbHzkQs?#_C}5^~{o1p>TvezGkA;q?aykN;);uYvHP z{q~b$N5u_KlJ$+DlH2*TM-=nK`oL)JDcJAxU2Op!-MwB zv!bqnXV0BGcp`rU=F%}*QS9t?^(e%BF(MQYUv(ryR|Z~(GtX-IvHD|oWa)HH`+D`- z5L?XmijEP?{UWE&^ZBmDrNj{eu49oQfhi5DY?n3KQ+0E~^J*ihXlK?S(aI!Y6z6cX$9%TVfDPk(}Ai3cGJP^l&xPqS*HtG?n zsfKWYv`+MryABYX;!V*+d`McBBsVx>my9UZ=R76tPUR3pv8DB!B?caS3@};5h1cgH z>@OOl{FCwOr78H8_Oa=w(o8(*uzHo%N^_Qy^dVBiEYV4p_N*;= z;K8$%b}#4QLx@Sz@L4l88bd$&+%M^@xJ3>+2VhOpG&r%1lj&A=g`-02z!TUwd5#xY zthBADT|Teid79WHke@SlbSk2%$lVO45NtVW3y(!_g%rzU_2$lNF zWNgNlouW8npyRfg(?Ey15VoUHISj1!xa62oh?7pb%X)TYOp;;MYE(|dUTUkSW6ar* zw^X9{sikWZRAE+LI?*P-oCY6+4p7o*oxV|Xd@mb*i00y+1~|6a!wj25$X@<)WiV@! z4Gkg=3ukIoNpX+Xt%|%W*YW#<0WO8tbx(a&IdmGFs{*!t3hNDU+!dbH8K$ncP9)cs zi}<0b^8P-~LUGdQ%(ZDRw5lBPp>rP`(QKrruZaStD&iws1eHywA?b2_u zew4>GH1{keX%JHDE2p)}kv7Q`RAy@mwofzhy{_^v?*gE1>>!gWOY;&;@NBKm)!X0zSqTKu}Mc+cghf~3^zp?@7q~# zI`qqdNE1ZjL~hORPpsu&Kp^%hC^z%lCq?O=&d4fXz`)XgMKMq!x6bK)1mc$3#Oho! z>`jli$pGgPm?fhpJgW@e0S+pwL_i8?R6#lHs5>B2!7H8yWcaz9zE$JQ|3fSe@N zs^x&7wLNG~A*pMrjIEhMJ8*Opw_0_`%fh7oiGM1gymQTxKZtpB&r2W0+sW#R1`vFe zi+v=fj;h8sZF=$~G*7R^JX@u@6et#EMx0~LD4jao2A3G@0c&mEIphm-+S-|wHb#bH zQ6QuIbcR>C837H|P6a-lK^&sQY zsGJTwu-tFv%3$cNmYJFv6#emD^+!90=L=Vbqj|k4I4mRibWh2!Z+WUyqC~*V7)iC` zVS~~XN##t!&e<zZD0Md7<*t}Se1F!1VHkoyJP{rCBRykgfz$;)17^y` zkS?=eL!%pxTIN2oHO4m65z^rF`ncbCj*^p1Xg7EA&5&t{4v)q$oHQ8%eBHz|u}j@a zCb}SVpCY7H$)w$GVbC0>5ICKN7=6E;>(E1#by+C+v-?91ca>EhK(LWr*>fH9MGjit zx-+(am#irnkO-0^y!YcLU`@1=X9NS|(_BX%JWTM5v(I@BVxapu5+N{(toeR#;7nzr zGzqBhH^Q$ltFQQmgZA*q>&f0p*}`C8rIg8mDobv2Sk|7}vVUSeV|Dat{N`ei-F;lb zK7|!WBiR4$#VblCOcWgFT0TkJ22Yh?+n{*b>wL3x8Ci_Xm~Ll1uzr?Kez_9G0a>2~ zL0PWw>88ai@9PW!avY#X&5LPngdQ?eRjCz%ytD!aE;awdZy5;>M^?7#CtUR=EV5Vct@S9gi5%$~}eH)lD{LDkM{GqeEIRKFd2%Y?`eLe>0D<*&1$T z;6Q;=ePi>ssw4or3)}`=pSdny#HRT*u_?tqNsLbp_@2L~tVd7%^VmF)83lP|`yZ;b z{&8Rz)m77a?6v7t4!GIS(O9k{^9|I--O3zfy|lE-RXRzf&F{a*0m8bu!mI;6MRf-4 zFzg4uZ6v^2r{(wa#Nogxxcc$~`(iWOk>bmHqbky8rL(T6_=-m0;*iB;TeYHukTr9N zzh3w;4%2pLqW}z{ne@dKX^|}bzKO^?I#G{xX&t6~$aGHTp z8Xgm@)#l(?sapYM3x$_HuUTjhwr0bFX(GiPVq zn1NjgWedVXC_+t%e!qXxUtIphq7=o0mx))11I%&IP6O@lmxkN0@;qo4{CQ;cCA$u} zb-+gX<9dcxpo#NNSL6>XeG(=pAb+l{Mnp14nOMbn=M+y;y0mUn{a+d_NUMIvybYfA zwYEGCDBGA-5g$><;MultVSAAJ#=a<9b7f7gZp_PNR;nsx1-Plc^@G^Cm_H;Y}zxY&h|Xs zpuxcO)1Y1U>5n?!WP)K&p7`|4@W%S4;dVnk&K8@!Av$52wjfKSx_Cf7Y7I$&X{Z(D zaGC)Un-K*rRZ6WZiSt#yxyt-%*jA>Xol!1Kwl12d#IC#m6h4kZ1IV{gjt=z~)^X z#(NpedxxS5ABrAcYGbDld3cKlH#^JQ>IQ`Q?J)cq+_GHo+6jVNp! zBR9Jvhb%XwoCGl>Qil{uevRqwun^`tb{&txaXDyAXsq1loz`cHA1E9qfpLQCx2>ch zz+NGBz-sQrxm)v`iHd*}9nfLy!R`jClgvS5Fv;lB{B=6z_~CnwOy+UY#h8E3%%Z`S|fV}h-^7c`|1F;QKg#Fb`aniB%|%?B8n?%JX2&@AF;(A zgZaQdc~_YEU`BsMup?W*LwZSqmxld%_0sWBf4`b$2fTX3m%sHsm1!vVIeblbt~1}z z+`TEv+Sgq-9p zHY%oVa7EH0zT1$cDX%7;l5{)oNT1db(S4|H+;1RHn(A?2tlr_1j}OHHFcYdfjS@dr zz}40j!^4wQU*L($b=A_$!75Er zzbsqcx%3ujpd;?w`7W}VDWnKv-tNJwo{eHrIN$i5+1P*QHDt8%nQo>lg&ukVYlx%Uv_fiIbswrAX#`%w;M4hrvgy{ zh*4?n*X@mmyjFA68;*}RPZhX4U4!Sw%%$cTRL}wBOdGkv$TKTG@-Acc;xJkWlEe)* zpfjw~?XE6$o03$4;7C@FEq7_Q%31DcJ&w$lT6D?Ac>OBk%K#|;SF!tm8g;Zj>u2Vw z#3%YXth0&R_;t$+jVU{S{_?8mL$9kGn=1I8T}tJ)?BOrjDFr-xr^h=WJo2NWQ1oss z!aO#@Q|m;wm@i5ykz=^IG|DA@mDeOH>?9Ll=9IchLBf~8uK8Ync?!GucK4d6kL|*I ze(LmcQ@@W5oms64TW_Ap%ULiD-qdGTS~->68lLRa=87V7XOP-SdnfDdFxw>7$Qo>`J z3zW>2H9jd5Gt>Oy0kvHo!&HPKLk1FoR7%=bv2Sk%8%<6db>*Z{#XJLyrf59HjQk@F zZ;QX??|DYYeQC%_f0)ae-}ql9l&4!!^f}9X*Y*6}23o7FSv`%P_Nei3QJ`|+ABVL{ ze{%FStpvcn2Tu5xfsKEHGaLu$g@){s^v{fZ+^6K6mknazO2m#&Kume8@Y2NIqumSn za2dr`nc?WJTDpNw7FOt!AAF4+DH`P8LiuGFSzIE6?Ta3AOlflFK#M^q>TBf&t z-#V$KP}-Q`GS}((eU_aN6v}amA*EUl6W0+L-Qd$(-*q^#3yFMx$sdk8wqKF>Ku!_7b+%;}%Y-V=!Krhr{Rx4Bmlprg?uHvO5E zDI<5h)~Dm0*4^J;SRsO%I}h=|zZZ9p;Z$Of{#ohNhaJZd0bYXQvOPwWlxcRw_tIL9 zay3mzWcV%C#Sz2EPNP$!gJnZ*7^2TxQl_u!1xjH~{((pHN@kTP_bPSaaqZ;}z+NR& zQ>3Oo=Xea26ru5Re3%EjBG#JG%{Et(d?I)8cvhughlf(UhdEqLFmPy^n}K`4z<5a? zil*cCU!?l;2X(LiW&N)qeunG?8=FM@t$Kt`opDTc;yD}m_ie57u05w6bZF{LK&p6Z z1Ylkq|GJ_WjP3QOc4{awxS&kf4alj}7qJZbDfspFSDLZqBsC%mZC5Ljz*HH%E8}pr zKbhaL^NAY4t2Uf?uk0Pvm^O^(7;v$LiAYhRl^FQaC#w);JR!d+dF94q43WV|xbC%n(IP%6GP%Qd^DsvuGwy+n-p|S0BmT$pO1m^*-t5{w z>#Ve0L>4rXJKJS9D=!eXJ<<8zXmjCcZS(dT_pH7-eY{e1JBHZfGe@&fyayt7yNh5F zYqW*^!<5z@8|azahOFMYykpqq<95#Se9O*Sqxw{c8abKvG9q8tIuE(TigS@8`L?9$ zzH+Ubi6V=7!id<_b!wRw=h6FB3<=p~GY!xffxFz*T(qj{OVoTCG$En>y6k-;RNkdT z0QF;;VR%M8NYBbf?eQ%~j_{c|2zG$_l>^ywJ$`)IM*Rfj-1qm4CC1NPmOgT_Ka@gK z4El*2GsA(8kLpyGx9X%PAEL<)tBYWW(ET=}(I(!wEOD^Tjjh4xk2oV(oK4dZI1Sc^ z)6ZoOubQ4PxHyl=5brLzHB4Iw2`TULL+@j7z;K4R?#H0$T|H=qImDx%=PeLlS^m=i zv8FkY9|u~H8X_rQFlXB84QZq;Tm4qcXDrx=b+G1>_tgV`sA(FFZEfp44Hgh}$ukpm zI|;Sp$wRQ5U_!mnU+qU~p&$}}nfd)#FJU3i-r0=#vC(iZ0GDjC35EIbityDG#fAq4 z$lr*nc>xPd0+f5aY~yjM8sE_l$TDq`@cH*+zQasc1oV z&+lc2zj9}r@RYlTo>88q%>-P`Gg>#_nOTl$1{7jfjH>1eeYycmLD%T$ORr8d!q#i? zU@Rm@)~f@2slzO{r#Xlt&JbjTk8f5vksWico)8ljoevhwKN%`{MjgNQ ziv-zQR+mh=nXH(~PK84nl2QB~4(t)x2@RA{_O|Chd?ftXYW(ql)>c0ne$>n` z8u)l3s`vBfA%-#TA?vdjH=ZR!Jfh`R4_oJW3FMekF8^BQ@tFz>MOOk2E>7&dDMD55 z8-J!Q!8n<{B1(rjn?ech+-oARGjZhxfgZAtscFIu6bwKna^9f7_p7%67?BQm> zR?(ioVIKx)Y6dV$`(sVl=;N5TkDr%8KSLIs3p4`)k*9aQa#cmn!{QFt1odDSgM3q%5xu0xE9(!^4l8x6N&0G+Q6$Cr4eO7f9jCc~gCQHEfOYgbMilINYex z&9thtY7Fv@+JjQtU%g=_2UJ-$Gc2SPa9T#c1Nm?4a!URvVn2PvdYrm6?VrpDc7M}* zI-SMLGQ?q43jpnHoZmG#>aTUMwI{%cZ?eBwsgge;=?tsSkhrQ=epol~>0=W^@X$GV(L%gD>4AozM%NAEq@gebj!T`wNj4BRUm4ziMCH3d|m`<7rfTR+sB&zyU0|v-A3{Q(Dhjh zknMNH+mACoeedD!~OYQUY(yXTIdhQ%h{5l!b`antlV)T>M8W0-x<4Caf&(7gxO9z(jDFpK7k7(51+@~$C9Qda1lpDZI+s|+v?1qfb5^%GxE{4N*B5V>p_TO<5(oZzd(5l#Q)6fZ|3Eh|3Ggnq&dN;e8+`-%&C3|fgi zu`Mlmv9Rx(KyJmi$_FS`G+T-G6dh6BSh}x!+ZCTK*5Ju`F(Eu->}Cu-PqFv^e~IWn zEdKB7f2j{Jl{1E%J^KKp(oU~eA~R~%DrmCfp%I_&#;NU0HhfMRvOf6-5(Z$zFG)0y zCr~Q@MR|scgP@tA`Hq(g90V~3H_v$4Bz3M|w8>&|En)v|adZ978XJ7}Ul zhYvCoy%W?^W&+buAGTQAn&Z0tqtNoJ+Ef8PAG7)hMB$0TD;n=g%PF3Qy^O~cqqt^v z0T49@VlcD6=8Q%GQJbi?40f|^g%X;F!k~wYHcHDmz8r6hT9f?8mf%r-<;c^tf04}L zmV^wSc-G`3LQ3^#0}sQAeNeexc&2Hc7?9r88>q@F`$+khjG8NBlY-&No6yFIr(h9A zjZ_t$7;o?IT|IyUj5A1_N-UFLi|aRhsLL|FDprH+(I{w5qTo9a@4nRnK&Sn&>={~Y zH>w+xXS3|Fv~TP?v;d;;Sm$A1Sq5hd;9Q&Z8beEjuMWWLRKSgf19#m4h_c1pjfQMQ z{*cO1eV9*azk`2DMmgoQl+QPr3-0YOnU=moDnoWx))}%)Ms)rCJqOhmpD=FzPSyhb z)M z3!%@!uABU~mmvUVl^v79uJ$#DpSs0Vo@usbQx5?C ztl1UI^Sf(hJ;#%uLJoMcF0TWk(Pr9-gI=~&+QuX|t?5bMknbc2rs0;ma{oG{3mi}V z=i3I=s={iQ7Jz1J&#@i@X6CNEq4TMAuIA7et}Zdd_d4fGt$}rI9S^msCbb{?X8+WDVSx}DpEOY>5reJOuTHmdKIuf#8N{;=-QpcVQ)VkWvgRi^b zIoE^vIkSU-Q(k=L9!AT}F&1H$kR#!UZv9lKk=ABh+0Ww6Kz{*i4wt^To5W_+eZ?TV zW}+^8?}hj!7D9^jrdmGRihjrrP9mieEYN4WJ2?BMcXXTX7TN;gWF10RAfDT%#{lpM zRs83!0PXbAvRhCcsHLs|b*%OOX)@xjz`!HGA$D>?F@K-N^On?{Q8UGYM{GC~X+D9^ z1m3(>4Pc;W&lczdIssjugSn2B_3YZKBnfumswyDf(sjiGeHo*k6#B$zx9)BECDV3f+*xNzlm%c5_?S^An;^9Su_4=Jqb(l zN&A^3u=lh*A4H&%#@*Zrym^nBql{C=o6pAkBJKda(X!4P=aNY)$5BkvRvN_7w~60M zYiG+sWPYJ&@QJshLZBkeXX1|eXwtukpc%11Zuji!Fa0OURSdv zzWVS84qATu#&mXJ3}Na(ONv0#R28_u3AGWewznRe1w{v%l-)8iUKFmz4n)HsP94Ag zd_D}W;)VesV^%lt##NHeL>(YW&VNt;;-d0#$Dr=@{ah+9B>h_s>LrZ|miXUI9Rs>f z>GaQ*q8tQumzg6y{eeu^96eWCeYSv2`snNExmD7SK(k-DOp#bnd%K@QKlAPCh~H7O zPobAv9W<$XPcjGf2qNFx>K6p;O?{1Q+2lq^zhJND$$kmG=rGE~Cu0PD@{Jgfgqz%_ z0-YvZ=SpG0et|L;D{KqvkxcBN;vaY0IGa*Yz?Y~>1gBQOjq=fcumnPr3>EjZjIiG{ z)-`q*^7Topd0F=6Oz1t~Bp3o6li1qHu z2;~5oW1=|oPL2!=7=qK9zZMJyX0~1->LIXk^w${~!ACKQX=Y}q$8v7gFzfEjSaeXU zWlU^|V@u3|QDR`kG;5)|Q0_4f+<_93c5~iUCz8RJM+%I6(A;v$COY_(lbQ!P;O79deu_pb10!zISSNgLDhP z6yxZ-;*Zl`w?Mva{tfZ?dZXnPq1ATXU0~9hfkBR3I(Y}gbNsnq5Z8Z8qQUIEXZ9U! zCHZji+vCBW>DE*fvP%a5876UhCrirRl4n4!^2td^k(^q#mG0&d+=e#q{Tb{4NjMKj3|EFdV+wc$JG6TW4;N{WE}=8 zc~ti2Bbm}5j!qDSC+}btWz~m*Hc>0;kd8ru>(8iZ(x)GmP{G=;3mUQkntkdR1W3t* zuHi64ak@}iq)|T8-K|+14Fl#v_vyc5$6y8o4dk=GkzX9v5^fm4Ha(BwABXmqf`Hnv z+xu1|fGGQ9+ehh{v7@5G7t#Ic7!ah}zhQqon5h&v(}PDK^d$S*ygATuLgDtbeUokgh*cQ^jMiWz&FAJvHBG5ZZwD(lzdnQ;k`SkKs!58iU&AG7InHCl z2-r=Br2?bLCLinBYc8My<(b8H35T)q^+i~YXH#4?(^~S)e{L_5BFA*Cv6WUI>2~wO zAw!G-UQRbJFy?^?+vQ+JB#1X1YP~3fnzPym1KQ7Bl+j-maDp&$UN@Bxo!t{?oz@?d zfXJP8(phh`^$h)@^u0B+&heM7xmVM}8D{<8K^9x??HKEoW52nTvT&FLgQ!N+`{!Y* zuQNhkJG_uKyJK)~HRHjtfc3Koz^l<;bH5xaRb3tNuzuFU z+Ed?CCWm7*H!x`b&#b>RnY-CGS;L@POafF!y2yLBmC^C^I~tsQ_iAc#*qivb_vsd} zXn#RVacbXfeZpw{+&7)7q%RJ~4n#riq8l|?rTuM_!P;%VD2o6}A14D~(c%^c!!mrS zyI3v+&Lua1`t%}~Y#LSF=Mg}eVy92|>7yiQuv(gLM!F%3QK3IK>c|* zs8l^$WzLbjM41HOt8LxSvTLq~k8#yTx_)ph7zIElC^8l33P(--u$n{W7^w@k+(Kg( ziVGZ`1?+P19NEDe+4s@3UH#5eZu@4f0UMqFfz^BdxeE*$gYuL`PWnsBwr-_{9F9g$ z^MD~9JxvKhbK{-gZ&ZxJONpVNtJ&s5igdQ{PUK~wvHkh<5$txvA8T!;BAp`%L&huD zz_HQDwX7gn=e1C!I|Cr^O1OZ_jh$IhGu_9?=YyDXyVLYBvW=_0_$z$%V?yQJ$0 z?;?0&cr}W@Bq{`P47N12jHz;6W_)rzV}4qvjml+0P_$PLSzbiiiFe{*g;Sz_)Bz%=blPox{b zP1^bcOyEv!)(zkw?2W6*NESPHdF96;>$V0}?3DMGn%cEyTeE61i67}utx)fH$$G;H zmcUF(RPVctE~vpxqHpCj(5YQIzU_jsP-(r~WeX60V=sc@i>cqzX{FbwT6plH#mR6NdGfv|M&I3)-V`y2|KS}z}&8DInMi3IRaU>5_PArwDqg< zg!_6`UqC+dx4^UvMy9hM+7SN9Ci3_cr6+kReYc@ApAPITO(iN{NGfQ|J zg!S51z`4NJa*j%-!psse3hRE&Mu=16n$%ELf-;U03#FEHQ)b2~cTmd`+P-PrPwrF| zt3m!*qZ?Tx5{bQ(cTVz{ZW#$?T6p_c%V`>&EjwtVo{)bT#Dmy4(%~K@I>*A$Ylp9r zOKvm@Yg7kjFrw*ytiWVcEua7Ua=V}yHF%NQ0^qfz%s^%j|BtpaNp>X3mF-rzf-lxL zdy4&!KaMJlj7*VNvz%4AMDmjE=4OCG8}wabg`_p8+~&9^M~Eb@8KwYFHq8Qg69g09 zLwT-$aq}h4P=a>uf=ZG>4Po!VxJ!%VvvA*KitaSIxeMrRq+g1|r9>4A&0{ zfbH6(QE*d4l=xs{)aRbxGP+P)ziP>{i0}aLS9G)ZPu6*c_49Upd9fDf%n3cy4*~YJ zp*=}cppzX)%!C%eNSa?_KyS>X1pdTY|F-{>3ZmDc>YOP&=k#a&I{p@ z!3Fqf`};Fvz`f4NI&+w{#^p|!g1~~!&D3A5a#@5)#?v{k(&7fXCE5Hj@NZ$RS2nZ`FCut(60^d@Y zRbxu%sg3w?uPB3gi1<0o_DEk2nuVwd`S)AyO#S%`61=Xnrde%_svx8m`q`#%7@vY?tqv2~^JKxrX;mpSZQ^%LXQ>r)3RVdDvz9ubJUrErR#A>!UkYVq*2@CKx zL4R`Q8{?Xhdv#awZNUJ}gwOvUOQc5^!1~ghGSmiaxt7R(596kdgnObPcfXDY!u14W zHTC&&{qd>=FNn%k=6J}T7aO$BGTCBtAXSYvnM3M2(5~W6tF#+4op}ZW2Q->-y~v5} zK4+eJMTV}-fb|^n#2r^8Ev~~;Plq3lWtk#u4LQ=x2#L2MCAd5!%2X+V!kZ52-`6$L zhZywz7*{s1fn;s){;K5~Kq#cOe!peX1&O8^%XcAvl`AK`XqGnQUHF(`fV1A--Qk)VmYo-4vS-WZ@5RAhbaw?vEiQlB)3kd=T*sLNd3?O-ca*7Y0N>;0(eX=N z5(mEH$=AgchQshZ&fK^cg_yVR>8F29Edwj;os^aUL^G-l>#vh_<@JNsc79J{Lk{Q* zvDf|`+$XQ2pwaQ4$Nb3aWQ*wdcUf@X=ZI5Ue`Q2}pTBC)8HLJ@{k{(MyGU^n|~Pp!;r3{7`6wSv1{uC*`pCEwLVifbT%QDc3*-}sXO4nd!aq*7^k+ z{)%($KgwY_8N}L^17TLr#t+z<_K;c1oLRF07{jnZ_}7ew&f;>{9Tn zF7xTX-stV7(J71D?N;isyVzsv{dHcC4F-QF1s95M=lk$>oC$aTHOe+D zz=dkyf&A^OpG^>1pnd=P@Sg|aKil^DKd%30kiio4ct>IeBK2=whlu2%`((zT@{KIT z?T9YO?FWULF4nozyD51~`uaEv*u`K-)Wb2(ZDT0BpUpGIEV}uZNzH=`MBOusW48Gn z5P@6>^Z~8R^h;HUaq4zQA?){tQc*TkLN=qAEsfhjAQ=SB6fY1$qkoTUR{X_j(!l`m zGAf{hn4b#iU_okrc7w6%#0=u`mkjmndefKkDGqCGXSg^>n*dtL6tJvM|3EaOBDs(T zbc?YUNW_D$wj4hI7-zHq*U#ew5KWzWeRD@fENoy)DWqOHN*#++HDdt_Wc?>R0L`VbgQL3q=b=pNNO% ze7EK_=(@-|*V$`*85RichvcC69{A?uoma?TkxK0RAe;%~8o4PJS`YErY$(fF&~fYg z%SFVhq1bA$yrgVf91bODL--)a@|ji;C9>>0P~refWJ-M6);;xt=~AB)=Ga9r1#z2z z$6xz`sXdaZ8tkC2)8@f)x@ic5Vx}HLKE`Trn)ok0AsGcG$OgVi99vx=%7JPv{Z+`+ zwWf$jmYW-L790YEhW7!ZD>eYI5h%j&Ex)M*Q%rpf;|_i^4|ruT($hE)_poPJIIZ3oZSBVvps7a6jrp``8AW2Ibd!Q=lgz^GaIliDjTWiy9-Go=pqb{_PcAo zE?WcH6y#kt6Td1WUdYjVDjo)1RHa9vjC_h8a|-~;r5pL{p-&ARh%foA5ocd9(!PEE zmeki`tK;4JTY|1+mt&>RcgcFP#_6_YkM~x%a{-qPwD<3gXjyK@Q8bc;1HsG8g*BDd z#_0dOagSLLzuat|d_!B7|FHqt)*#>L*Df?zLHD--JX&+Z$aMbpi${Zo0tf2w_80$q zu;Y6qRPcUeeF45wOU-<4Ugen+Mp*?x;q7&9z5vxA`v3MuV+9bIuEZU0FMSLG+5-8x z=H9Eum;By%JJ>JYUhUSA$Tf|zzI*#u6pu$%`<(@k`i?D#2xvY##xn!N?QZtpQRC|h zn%TdD$=$rvP~!8ygUszYqkp>W-@*6V>L?HiF?i?X>+%U@tiN;BO*_6^X8yfX*q@HZ z&zZOH)INC~*7@GQQ-0<3Wgp&eRq+0Ov_Vok{9Q%p^KZQhG03W8zwa}*h?H5S?ELn( zC~4u9G%bJY?Y4z<{Zsu!DCLIymcI4U(?$R%L$7@G)%xqs&-<&#Mn0*daEpIbZ*o<{ zw(0(=y_pLEuGgNw;_!h8<=S#Si^=(X5@X59!}}GVMg_EiQv3a*Sd|}QycA3dUvc~N zHXIhXAiQGOr~p0~Q{rFO&Y5~ZQjk1FUadVIX4lNw`qt)_5fL>xl%(}{Ef3?MplDpb z+TYkBUeJuwzrBK;W1#O~%3ZU!I3+_*Fk)Yt+rM7KyHr(>0U*fVt;^KNv5R({ozBS3 zF<$wV_HOEoX6~gcHtF{5q*i%*Zzn^w{j>7|Ex7Wj`Ddrb);@}2$zEe;mKoBaKIiy0 zg7Y05H6CL5t8p|~Aiq#fmwz;xfCY#r|L#j4Sb$z~^hTB=DoMB z#~Y9{AEIgj5{)dxD$jJ}Awduxd|Zcs=9v#sV21z`-O$*f-9aj+)sO9?NpAX>>ASmptL1w5 zR548Y4jv#~Dut=3#m7wIx-TAr$~hn`8{?9jLQmz6J%@ub7xbI{B`6;p#+JKJE6{hu(a#N9XwyvHG0gE`9cc z_}O1?s+iulmo0!@v9e#W`=8lBqA*ZOnAl*^)79h>aGP&Q$r(;j`>Ef#orqQl&y7ua zKRdyK5_;PLrxLFI$w7Bu%LR8yKK#?H9ZjPi#$ntR^otI_b+Kx`w=U)j^)jJ=XdUVZM`jtBqK*7pS*|Ote zL?SL@Qj7#LG#fuatvzL&hbF{VMkj>C^ZbRgM7dc74(N~e{x}IdLD=b#z2eQ<&zcb` z%dl5ri~pV62A=Iup5BoHwta&Xu(MG`ST!-expb(VX@GI#LDhS5siEBfWZ>1>83V5I z4X&U^P6aH41hW``$io%!0VzH6E&VuB(SRU6*yW`SO7)D+IK>A&8~9J4#}9?NMRNfqv$L(yaRTjxi!pi1nO;D z5=7y7%X2-9N{T|3;bu9_iaal18%0zMN2>qqA#k!N;~fUePGd|Ce`XbSic?C8?OYj* zD14wfr*Io)kh7p?^!WA0o;%+D%S5#~2ru^el@12drN7osN6gDPs8@p*&70%j`z)=R z@sw@dJ-O6&A4GS7{is>=v4s84o3x0lFEzAr1gDt*StqFEvjMJlg#|U}Xs+BZQ@*=j z#<{vF-=6*&e^0X#ad;tW1K5D2-!elHSrHK>T&JbJnWKQ1%nssQkA0@tuYqTax{+Bw zgYN1O2-s#E^+LtfXvNBf4LV*Eblxf?S6#@yij*_u_)Bssi&zos>S zSFtcnFoS=VK^WWu;v7Iy@ovM%6wgki(eJLcXE_DX&NI)O>`4*az$hF}G8lTMIZusu zWpIl^Lewo!mK17E)`4^)OyFnMmJs&D6FEHo9IvYuwQ8lZrFcnEx&nakHLpWGR#v)E z9Kz}aO;G$^%gUIOSlI}gFE^L2cCG|S#ft-Nwug5NTGh5nqLUHtfChwVR=sRp0ZD%( zJ;r?%;t@i;XhZ6EVz~9nHv0$H?|_k5&@Ju4J=3&$4J0eLjCcpAMbpA?$uaDBYpEEs z8Um0ii`fUfgZQ00h1?9nm5?rrM0!=XNSLn_TmZ2=*vv9tG+`VNUAYL|ZNFQyA#+%^ zWLYFOpUw)XpO_4!?yK$lcmybzh2z2tNJJkVK~!)U#WmD7YuO~37Ls5junIJyBYjQ8 zd}q%&_PBwT^{{~klh-PR_-!dKXmatI%_;?yc)t#qyd_5>UQQ-oA9C@6SzoS`s2&b5 za7D=|pV(q^NWb2&N9G3fv}PpW*-0tBDrypfMHTCoqkx^uvbix90apt*K#%BAA;E z4y6sk-0_3tt@oQIl}%9u+#WK);_tKvG>j^2UUAQ3+P8|^&s#RkGKk7y&Ic&mgNdVz zsO|$*1^rAlO+z71cE6 z7|Y8Ben)AK`nwaA;Vzk^KrMTOKrFB;*jpd7kG2xj?1hFj)0>Qjs%1J$Esk`%tq{(1 zuzVG85WB6P7H%u}GQsfP6810ShL9l<)7$91_G0oRf`xSybfoiTrq~z3!kF@8fwYg( z!MnK76nwbUfyI9_pTEHx_C3G>_oNRMdWF~`C7s3wKkBbU4)8ZX@8JM}K5cN0o^5B| z!xeLW8TY8teV<|4z<$}*98PgG9W|m|`3>{&<>0@oVWv=NMiiCd7dyiBXq}<1WqqQ( zAwf`MjBiL98Q`mnceomC+;e@lZh6fXAsJgT{bf2qQ*wxi`deK^`57Xnl|eT4^M73b z&p-uC7oiL%sDMjw>AF4vdtP}H|L2H8aRs$GRf;6mEo);Y33MXXfDAmw<8ur`tk`pw z%PnAcnpxe`DR=&lL4`{FuScLF-`a%B@kL;#{FI>FwX6waGb)JIUGD^Va8M5XDWEQ=$^%yldcN5IZ2Ku0$>rpXMfCgT2c+3h}<2XNZQ2 z!@g2ChY(pb{Y=k8W8d#(!BJ z(;$k&-ktigNve8`?uJL)aY_v8ayMbT%B(3xB*NuQS36D?rFQEn$HwP>4p6K{aEK`P zQVXzftH_WfM#DcXy#`rDRd<0vT$-CFHQ?(^GZ5lzd**xcc|ajW<3cK1G7}21@U$X4 zX59Bp#I7QY@{g4C(-Fjd++oM#U&{aOGF%uBHz+DPg(oz=raSLRH6p$~xNqr(ExYpH zC-+6^cnL{hF-RS>s5{2@O6xT>O}u3s)g z9D2>!2S6(AtLLbiFyed&=+T~|W4u-J@mH2@%eB*#XUS{OlxXs@N13`X2=A&Q6(9H5 z31x4&nQyroKHz{Pk|Mu;8nVYK=AJO6f#ty2d20Wz<$>kdRB9N4C6h7m28~rH$#0i^ zX?g4f+)bRuXxrQTb`dw>g*y{q5FJWF$&XlXrE#`ff`^(>Vw9nqE#qEQOb$UZYapN3?}Gk$$Yo0 zu*<@?CQSgfp&NL%HIygnqtPJR5J9MF!$p$5yCZLZAp7ANx_>XElbCG)?_7MED2OOe zj{mH(GLPv1MfSh0NfxD+XuQ?K=`=HhZA!e?)b)YCgli8a%d-1&J#M=FF{o8wP2x@{ zgY1>wK1_-_>QnvQ*s+eE3U;uKw}#6bBSe=@@;?Wj&Rl}`{`kWHo8d4zlo_&qXnE3a}Hz-OgMlB`tzSkbeie9-0Rbqf* z;jg{Ql^80Wd@*MX|HCNr7vuAO~1{98NNHz~J>`JHsDNR{0(Zg1pH6ALt(h{CGn*{L)E8H}&1e^lK%ZNN%!*49G zlza0q241RW%dFT6Yk3gWrd6G?*wU!^NgU#JykaLnDr(i96X4tcyw)thrMEc)@+<*U z0ux{t&X>`E+x2}kgzGd&SUhai490LFUC$ZzihD4VA`E%iCIs-T82>u|Ebg{XIMEa0 zkHd&2S-B@wSEi`=tsD&?JBHPdo*&?Y#z@}6riy9oOU>n+iA1Iy&8u$yA~iw zv9zK~-2?Wku)X@sTZt{ZwtA=Th||Tlr^#J+)sqH-%_IA%(QD7JVn~Ik>CIcY`P4UxiuvRfc^DMU7&si0I9luWuvI;7+Yy3 zM8h3D&+hL)Ck(eNH}22a>f6xoUqiqC$MydTOaQIh+C>c}#0DHYEtjJLHhWGC%gM3( z;pVb!t%oJZLF(#yTN%$I1y3B2v*{;9_fyhL3T~lj)w-qVXl;vVpP;G-bK$q0tnk)a zRR)xV9*NiIijX0FGofU1e$=cW<7GyW!$OH8*THe}(Zj&2W=3SokVpX+r=)#`?AweQ zuxArIEEo)yhUvdbVRf#d5){+6fJ$q(v+VM**?yi<80zXyP%dt$U%UfC>@CorVT*`hro{1vJl&g!B zQRO^~yy@VuVW-wnQ|Y83H~s`pf{_)XXRCPrR)n!6FEALH&#ZnChjx^_Fr{w&{K?q6 z0lGeHxb;A^dKUDO=btnp$3U3tq*lAG#mkUlnDDK_D1t&zw<~bzSXM7!S ze}JG;6ZNS2xm?Dw4Wpcy*CF)5PGD>S_Pz4@-O{V`An4x{uAq2=w{O#D(CLS6#P6Bh z9?bTU?autU!>j@B2+*84JFp+d6`sIMzop$H8jAu$!AT0`?DCu)n6yx#Uez)CzNfX~ z(3L7xd5HTfj)>l$iEUGVa2yLQH%DIBp%m|^L+95G6X-{Y3GPtVvtDGK5_N!gG?uMi z%=k=AT05mCZoPkh?Am#SX;J~7?`Xc;YuW`fkeoa9fe1&k7Ygi(iGx}krod~eJt%JyGfRUv-OmIip$8fH+|k^CWf z3`CI_-GubiD7z`7u6W6RM3;&koTN0SsHnFrdm*+@mbZ*t!EqcKLnBwfFqzQCp6q3V z#28FM8uLBm#O0loc#lll1Npa}fqhBIdCFAZwn}B6j^Bn$zhv;GJC>Gx{lvGYmle-o z8o-dBYOMHSqQPkC^TxSBIE9!4*tAa@d1%r!<$pmh+n971NoX9`TP;0%b6Y9D+sdVv zZoxQpeQv-}0F0dwz|OYGd_BA&qjkr@1gh7^Py(zOfELtgW7<-4NGIOd0junBkMBIi z;f+-Z5(48iUdCz0f+(}H3FH}%>83$Yf=o`i9Cy0rwBis6iF%RivClo>f-L86ems4u zCkd#M0rm84;w#>-o}o;&S^TQFA?eU?<(xXE0gT<3GnQqR2q(SjuEC;r@5}H<=%jcO z(VMt8RYr%1=l~C~6WVeCAOVS>5aosEcd}N!)B)fNz1{qyaN`y} z;KCQW{rW)>R25niG1toenWJz?B`$x)dHssWR{Rbv5PX|k-}Cv3k!piGChgA5g@X%O zA<(-?{Sc*7%5u5g#JgJ$6pJ?JXi&wkBu}Ux(8(FS*xH4tl$%&)8Spv9CZ0fFN=4np zkAwyT7A>g@&AAUAGb-kSY6Z$dtV2I=^)E|X7?g#Mj`-W}z>>RSPr>hY!R-MtixjpM z5r*!pi~JpsTs93P+DwasrC=slSQ8e(ne+8)xL|MR)F8{sz(K!OwCCouw zvBiA7Zcf!cE;+^u(ARX^&1T##NJmmRD8cCC<}_+cMxdx1?mYEtHxSz#OdaJn(k8me zWz1h?aUg!<-0e;9337#!rvXN@s*9fcXyC>nT9`4qt6s=f@TN7A5c~ekk8espSVj`0m3to#795K~ zgD33#dS0iST25Wqju_6bS>&joJRhdUCw~@>ZB;;mCWJL_LL4|^LmtuA&zJTP7uZWd z64a?gl79C4gBu za`IDt;1E`lF$#c?QPws?2^q@;Zb!eZNuNe*wyBv)Zo52Cn8tIQk$Q${uaWaf*x9Mb zQ=w7`FklN_5;ffO+1{({;DJ3ce zo9weYn)@MIEpULN0KXgzyhCTbcIBh+Ox+xPj`X_ekN6H6y2fsEKX?v=ALTiQt7Tup z3!-%QFvy-iWw~vSdeQnMehMfa+yfG(;Y>Xkq1(8V>y%OFWgn4ng;j!9Y#k|FVEhJC zfs-J1^Y#M~%shCF{J)tBe_#L4K!h%fq5WhI6XEaFb<{TV=`@KA;Q?qzUv}~qMs^`) z={h&)8)D7sj7C#;0?wz=1!OFw&j*c|EWnU_I9aE|4s8v({v8cD<&e`Kd2ifyfphJtPrzIJcxLdwNs($P**BPZ$1_ zyHgrD@f2cv_S{qfj|Xa}^rIjbp55VJTNE3^xQ;ocH48W*EAs|h5r&ZC5slg1rDeb| zY}?A1QDQ^lxt!1dw)wOSQxie+l1?7E-2w)=t5RT~Blu(|0{POkCxwc6oC@Y3GZCy? zvC4Lr2|v5b{YvgFh?`zk!ioy8+gp(tr`tegbXW#Dt(M)GN-%K8)rsyDHMVE z9^0>iv`m7>$#~GwfFPicPV>W9n3FT$gH>iD2jiI*To(*Ol*MBNVYO`c5LvV)q5{cx z0B=SRkcx7)iU}A+?Mi9@Zm(0+fHm}9IUnsJFmxn#CHQhC}dcUypHac zKqG*iJ*{o+ax+J^DF^}6b+7TN1>=-PW(;2{0o$1ZG8l!#+g9oqxq!l@xd~uJeEqK}?g!H)FEN?SbksZufld3dAVwl+qn{~7WMyJFP+ZH#+jbKT z1BAw{Oto*EUOu8(`MWa_QmsroI^LU7F;_mWt^0Wh!ayJj`-NH@b$I5JDt}1v3f)Ll zrlK^yPlJZsH286pjA9x*SfVxPJRffiqVRFbz&${xZ9oRf%i0{|v>x=121b}k<9d0W zqIgEaZNxA^m$p4z`zkaPtUji4>_m^XMv*rG2^+n*GL0R;D`zY!3`-VpF!Vb_g)~GL z=a1gZbil4(QQ-`UOL8{Zs}~84h6{Fk=yvsqtB`=A^qq{~)vS3swOPyn7u5H5l7 z9#%!G3=;-;vQdaZV8Cxbwi%B#CS=Y5p|6syu{5PNiV%0WQ+*5yaNo5fMf38f$Inh*NaYcc$gXeM^FWcEHKs*NzbRI4 z`HCCxjx(ZxuIFoD9R(SwSllwe#`@F^#N1aw4)Fl}a>6&I8wFsIL0dgverntRQB5eT zurKv>Iy*e`g)J;+;{8$H0uxa=Ot4AbJ04%QZY5-aE)Xe~>INt)tIJRW7Vyf!ojE0V z90G750&~3$1!;9XacsO=!UE(YGgPrd;~@a}Wib|{_*GaN0J}r7nDzC$Lw~MKj+yfAlh>pClv@JZShuEi zb(t2k!e!jE)=YF^zzBy^D%ARBIF>$US;YXArb4Iv{@INLQYB|w7Ek(XR(UAL3yqPb ztsD7S1*2EN2r&D;^a%CRT`)r92$^};8b{+XjIiJLM^&+>B&S^lgXftv9Bzp~goP;S zIZteW+GTMAQEfY)`D6lZTZDa7vtd2iYxjEou+lO?`QDr{ktoaeKFnn32>%r>hB zj;J9jva~J6EkSU(#utK~E!BhMVa}HUSYzJEBwlsE%3Q&#cz2otjS`L}Gq@;B{ARic z!*PJr{&E{|3r&LYTqo)H1Ov4>G+7*WV=x;D%jE+8!(p+=tbZE`3@WJ=(28w8T*bNc zt-&Qd_Rf#zppjuD#KbagX2r1aHL0zkVLMOSSSo(8&1Up9{(%K;6Epp;>zCxU<7ht^ zU#BWDc!=?(Ttj2Kgp(FW@5Re++A)kWB7kLg2dq*p^8yf!zmeMbj+u!~b`i3dTTL#A zJ>le0BaDBg^k6u1jO)N>Vxvv%SgIR1u@nbfhFJm8gQeOJ@cd|mE$U0`&JRU6SWR#B z!u$1&iu2q0kLjHU92c_!8OLwTk+}{DBS{C6`w=gqo}Ih!@63hQ%m3SO@$c*Z8IAz9 zf~ij82vJj!2*q_!>+x`eI1?$}k7#+tH&so(GsL~W%zU8h7=qy zy|7|+enS^jpg5Z|s%_WdSAwE8?b3LGWj#T&E0M@DawM-F<^i-3oqg>T3M&32#c>i# zl5^y9mthGSC2YnlRBr4%RyOcz){=?`EF;z{|IzKD1d>VCOJiHk@&#vwEDx+=tpe*) z{r?i_s;0T3tz{X)FQv?8^F@Jlr{r8y>eb}p52aHA7pRX(CXpuEyUOWdY(;RVCmm0G z(tJ@&0}y4<9=aYO%!+h`a{r_X4AXEd(17)(!30u;*_VKXDHyyz^FyR*GS6ki^^E`Z z-zqkT<`st$cdSH!78@ntoYWKCsnXL(wM8cj0sB!1(6V5ns8+T=1p_#RswLqF1Z6#{ zz{K3HB^9B!q%Mdw*d5)dP;GsC^33Cu+g&(9e0#$S40)Lb7)HPV+M{;9@-cA%jx&Cj zH?N}-Lf0U%c;;6YCH+9t07Zzp+w%ynLpw%JAw)bA7eyUKH7R~%UyiBgGP<~_8OS|0 zk`r=)SnX%zSi978(bJKCA|2e^r*9O4-9ZMiG);)tzJ8eb znOp#>`cQ<}6sWSRv#(9oB-{76Mx-~z+Q+&8LuUGXSq_wpN~8z9f>=QXNHw_63wVPM zZFSIbX6>(ca5M(EE76D}b*b+(yhoma^z%{6HYX@(mMu+G#S07Vzex&P=4qGSx{%3m zj8bsiTm4(7%`e^Y_qkDE?ma;ODNgcPpeEFH2`0P zsj)sxJ6=Oc3G!x;eS!zj)a|!GToYtBi6c2#<}VKCCW!Aq@beTAg$p;u>;>j$Pdg1| zf$gZusVuGG!Ro3=;&NPgwFqrWEN|fmAow+FW!f5o@{|~hcC2|+GnK@8r=ZcPXySB5 zgeFcoN$_lJUZp(8``D({hz~h}yw$3scSWKY;K+K(wXG*$&VG{O$u^f9rXSg$D1 zA$H31A_8$#yAIUBS0SSbao1E}2og8!gi>FC^&5Z`inypbR&j@m!Mp-p?W@pd`VwGX zP+t1ud^yh&9w0sI@>L*$#Igouhc-qgI0RjcV;*1-n+56w4I1eB9x%W$PtGGfPR7du z0K}F|Bhk~Z(S1I?oLf;0NEV__+3$KRNO?I?d3A&HOEC_y8y&$51^9fw>p;TurgMR z>g;Xq8GQvD2xRneZ|dVZ#Hxjb#WAws{Jdv^!i5S8Y$vW77r+~Gsm51CLm6MyL?;;B z@B;3EFD~N5e<&FQyyD`7V!J_`o85qMV!UBDBuJ@dv% zf_4>QHx})3f(Ofj&iaVp8w=#+l~#l=(0qn8D97|_@Vsi%F~$FO&1Os^f`*Kz!V-aa zrl$h@GazLR7txB@1d_cy+9_xR5XWu`fRRB&g{`!EBxun>XId=t5Jfpk*06^Szwm%1 z9KAVlp{-{bOZA17v_`26oNZ?aN=OZLtPyYh+TuY%`Kwe*y6>6!serhfD%_*pyPKt~ zfW8H9OS|J8c9a*&i`8ZoDIJuxJ)hkUqeNroyL!SDQbCv4>n&1PX(vQ-L#)PXF#-XQ zmO4=2wr$SA0Z?$B5I)5Wojv_87;@#YH?{&m_%CPsN*x5$U^OoNUi=7q8_Bx{!k;>A zWXeaNk#8xAZrwT@(c-8d z)ntcw>+R`C4QaJ7*_e{i5?vlZsybW>J$H%62^LYZU4&gVV?U0&h;iIY{KIvYhmRUu?Y z;^CTV?T$yTylQEt#_3PBaL}s`K?_i+?pL;ehM&!v!|o;_13#XlaWxOWMpgYaLzL+^ zki!snA-M=tT!UZE(?^R`ALk$*?2^MT*-JOoAyhB1vBJ;eU8V zyfh3N5DlMKBp{*;xba~*$rcc*e7cZ_DpS4jf-RxJN-C>pp!sF8AXWkyK;DTu)+~hy z|ASao>=EL#9HM4B#|tP&EvsSom%V@%$+a&n`glAXrOHm%${^wSroftKm_JMlwdO_n zHR_hA#K%mf5JbO*)r(yfNhW_RqNAax3Vj3;ei4b;EjYKD*36LF8-Ozrn;QuxTxK1K zr#i~$kBi{56%y2NPGl=~!Z)b7jYh(0C`zZyj7Cs1h@nd&@pv+|KY#(JCR$%k&Zs`- zi**1APQwFbk61SbiA!-GBAbhB{7Gzg!h@HS|Dtlz8KL}Lf&=Vqa1agW_D-DHN{2&2 zy=EQ<6HBpfJ;Ev$R1P_$EafXOT$^d8#fB5*4(*SG0ZUeph8VDM5Hx@n*z`LG#DKiN zxr=Vl3ax8EbA*^zT{mCMdIX4jd$G~cyw~x(2WAy@i>dxpDvp~5Icr5jHFTNm0na2B z&!SUuR9GrAy-5|gbSUt-TtGoxd>9V^10WGBjz=GgYOaLh>-t#B#t&NuJ==7Zjo@@U zJ7hjl*Yb5({5E(vl0*650|-7EM?BqVZP+d=1N(TkE^g#zS6c!hkbxXIP(+cfHL;4~ zGnxY)oL4f725MoCDpe0d3BNoPEFjXL@rYU{Bm^9JJKT1P#dA>O%0B{Yz^8-&!qnnv z`1rZ~m7_x3!{T@gcA+PQ$V6M#Aj{O;U5(eMe{I-6CZ;J2Vj-eR7v*6!KSaiNq*AbU zFkPzCof%Syc#S!Hc!#KzTwU{yVv#s)%)mKekOB3E=4*ft%yVqaz&knwCa1ZH(QHTz zi^8|2bRxROXXsWok!EsxEO(`&JpON(t7?lO@?gKXI*|Ko?14kn)jOKuJB5%|Cgf@U z&sW1j&+#)DSvp)%qx`vLAcKPqG`^292K?|roB>_G9ERrnqoFLx9UJ}p+V&rfyx}&C z_hXk5hX#``0OTkhA6Xt_SO$)wHXxFFR0WyB54-i&>@j4ONYMaHK(oJkg=YiYuV-ReVbjNtEJpm7D zNqO=zrlRKd&E)g(>>8p|;zE>=hjg;cvY3w5r6ekUPvEI(!6z1SK>FXB=syLjf%Jm{C?YTI6Q*9vO9G0;y7c<6(!%~Qb zv*I%i8BoTnq!3%h%E$1-mVJ&`3>>tEM zKB5ya2a8bpqV!>r7|0cVRx8Mk)qUs$aG@>~lauO*#Q=NM`{vf%fMGJ`3E+N4CB#d! zv*ppuFwG*^)T3sTxxLaZlJ~&j$9u^+0-o-D2gI?e3slQHwzWjkNNiPmoGGW({REP&t{Ok>}2I|Y*e(#mja(KH$SsuypJ^{j5# za#BHSQRPEpA=gtog}1B`d)04P7xk6kiWWh(HAz8MZ2_=aOIRD-CI^Y2!%KCs(NCO zg3JoV%H~3Lx0OSyX?LXv>bZ;gE98s1W}{KU@2p8ZvEtD4xT{DId$v_Jf|t!>m=vIJ z;1N(nBk1qRmR4l$Bzi-;=|8WL+g{2Z>4+DT?@Q5kM8tx1NG7u-%w0~y!+wtHCk-jk z-%ME+QmxdUhHkk<8kbcFfwVwn%3MX~|n0I8dnzw#MfA7wX zETiO5nDQh}=3-MDhPmcKG}JX{?zLS{jNhMqVqv0Wpn+%5K zV5VwdUwA?n;IAN1nQMGvZC*^skaOinK=K46zVXWUy82FN-0Xe4RgT)H`ei z+Z>aTkqtbjO@o|mTjZ7$4@g<`S69YI@e<}gAHrDVpM)zz`ge8Nn^{!}Y_w|9{mDte zN8ngJc|1Jja%{htk}LNR4Qb1d$H{_P0#+p^Y%{Olc@%lky#J1eV#L3|v`uLiCl5L4 zMoHYM8p8B@*FzuR-J#^rCtfGM%K+QFZe~2pTE9w*HMDQaYrCfd7Uk6x_h+2MTjtmsgV8AnF_`CB(M3chp zK?A0Ewm<2UIw6x`w;1PC{f0wqoP?M73fTYNXR`o}K`;Z%>sT+=R8`0YC_?NHWJ^12 z79c&#lb-usTK~q(RIMG^D)wXRT9$Q*?WQ?dkAx4?bO3zfpdw}Q$}QVhtUo0alcX+W0Lzf947HPF*0EE1$ zQIY^8;M3vxfVB8W{Q9LB3{w>piGgQ^l>}2Wnm-CC-k!kH`5p#2rZ!Abs+psMzGGqg z@P(*XnPREqo{Dl$Lf;n8j*cETJBtY>tqD|r^^tPbC%<;2?4{!4(UhC3Wt7`B+MskDM&pu^mEF+JpB})@0Ym@n_%#p8VQIc zqX@rXn9%!u4Ar>fJyD!!+`2smA;ym;M@Wbwbu`z4sO6fSAE|A|$p}Xj-h`2Pku(6i znKkIdr_YNjDw4Th$=XPOu(Kp7j~@5aj4`y;nq?K;7XeXC1OqI)J6(wp83SyQfl3Go z9&FFCF?K^VG6Eh>ChMVLCiU`Vqpmc@Me_{UR4hEgZpS4w46dkyQA0>JeBGW(Q>{2= z1y;t6oZ<;s0EHf*DJ*H<6g?D4Oc75&Cqp1>-~s<$ZS9b!;&pVlDQm`BWu%KlzHO5# zmLp#&5#VN#5@p#yk$pSk?F}Y!ot+MkvZdCEinK9k7 zZ~0!A@21!dlw`?8Bhf{k;!?~b5k1!y|tGy8c08gCaN=2 zL{^APgf{8QI7e1{xPVZo!?2ihBm;?zJ2bqBwn(=V%OLY>*i^t9HAx#qJ^vpGd*W|# z^hi-x(u4)t!vKRn8q+Q4VFnVAT3693h8zd$Gk@H;J#0?_(eawyAOlaCQL=5K825_{ zl79g;c)A86<6&9J9BdbyR%k*ckwv*g&EQT{hQ z_bG%i3W-F|d<;)d>9kdAhz%#lcU`BqZau>wFFvL=XHcQMY{CeuBk^5!@j7Ly!04~7 z%%DU?KpLU?x`EfqV>jGF4ysl3H>q*BgH-I}oF>5UGr$0C=xF>+@w#WtWC$eNoo!R+ z5tD&;INhs5kv0~SwWpq-HIj@0`>$(CXv!znO~7ELq*~ZY)K7@|v4Jm{JIa|W!^~{L z3$W$K^usA*SA8+YiZ2%eZp3&!{;(_gKin3+z5oAx{lCH;WNn8vLE;WLkmU8K*gP=S zA_i^cw~>PI!oHdFQFB~fm$$q5qGaZsDxHJ~eTIZ&Ytm&rF9!|$7@pb{4R zOOJEU+}q3t#yy4?WWyzj0Ec}v?qADB93j(cBz}|~!k7et&B5$PG}T551em0B?3$gg z61BSp$QY%djjd8u#4_Vd;3WOEAgK?E|v+cJ4MMTF5<1MV-tmc*> zy~OL{vGm-VMWTx}rdS#rv};LkM#^gDQZTf5yRA7N;u=8Q(&#mM4gc$^;6=sjLJYkR zGT4eJ%dj2B^XqXLsu(d2=V8^^Z=vG1b{qmMbjibOWL!A62v{yRiIN(E%W+P~0|bZj zC<}LQ6C5@(d*czsGm`dkJ5vlFcm1ORJVa$? z0E3pks^jR=0^bz6V`_!`s0w(1i06^KD6uHu1w3Fj=bUDN8A`q<)Lb-RjtsJCqpHUR5e&n_kBSU@x>J=S@hi6*UoY+ zXy;8SD<#81k>w(qX{reOocn9L880#YCj}%+HXpmp4siOR;Eckyl?QVb8(veO#seC; zW+$XYX4Dk4wU|LAix4~}tE3VDOusObDwpdf@5Yj&`Yv}l4i*M`w0LRTfOD646+Nww zZ@!0hrE7a-0KW3AMOQsFV?5rR|43I6$F6+OWjV0!S66YPt^`gInwB@7Q9DT;RaW%& zdHmySnYq;%P?l8&VPMzwOV5}_oIbr#dka+F0yt&bn^7~ycFWc%vH}#JhduE4 zbe;1g9@NNlgAx`vMeS*Sdb}yh*VNQ~VFP1XpS;d?PVZ6P_?Y3rX11l=Z$}>W(Vapl ztqB^ClJvL@g$bF#fl}`JavKIYBU~pxW2NU2Mhz7XRAq~;&GiwxbF}m_IH3O;D5gHf z9&kCvLJ~SZ_Gvb405+AxmFu+VnSKrMjWkA=Veq{H2}WJ0DnPrg3O8d9u{+6Z5%e1E z()>K4ryOayE^8*0P0kqGS3hbHt7J$5GS2~5sIog9&BlQeQymdVjHsA-uas));4KIP z{X}vbNFX92T2KWEf4;m_xi=#fTfs3OBM$?=<|&B^Zs?{q5Wz>rqa85jaKId8r*@7I0G^VrL+kQu>1z* zU&80;te;|}yDZ49ZngL`UM=lS&XGT2j z#gWgiOdfD6Gf_e2u8OOy0NLgEo~fl<+Kj5KIp%oci8__qBtID76ypop(MX(bYSz=Z zmu{*M7IH-Ks!c(wmb7zbitzwoP)17KsTGKX7K04_ZGDD(W647V%0qmGGy))K2uZ#e z59A4~r_`UQ9-LxXdLoiEo6?*dQyxe$@i6;1g7t{<&@>_axS7S;rf*Rmrg$ZvY<@xI zt0)f)U%oZQ6 zcMugz^@Jaa@t0x8RGC7ew!h{c;G;Fgx9t*SjJypH?>e!^AEkWl9O;{nC#D5f8vSKk z!byqSgE=E@;XUbA2nndedj3$kwwElsDPA$btTm^nBvZx41LzX16KJHx&9;9yEooEW0x? zV{9_@OLB?oN%3QZOpQ_Bidy7Taez>suKHbm%8vnbD2`F{a;02mBG^5a`emD3tzAHe zam(|Sgd(jlEP)O+J$-=fsHjV3!x!PUhWScS_?QO8ZQ2A~-YEQ?->6EG1oF4FYQX%R;Jk z`jfRRQG+JPD`0gxZhGE(0c)xE9T}v+<>)J`-Rdx{+zalIEWUyP4*h%$p2>MsC~v?-4SO)nA6huK0kdX@`F2 z3C13B5kW0NlTWP1zq2A<^WXl*_5Tcb5Kk%!Byb0SXks>WIbLbU07wFK*kwLqnT+O1 zE2HpBSLf^fJNsdSEW(wV{L?a{947$gvd8en8Fq#mrXa6lm;#ExesBa*$!$JG+(IW! z52Xocwq$C_=_$XhS~j+vz#8i%OH7<>?ICgJbe)e}3ns=kc!AZwe{2zVZPlLZaQ9^P z;$hFcO6xWb$YjTx9nnnFX|Hagw&s^8=M+BUi+&KpvWR;msnN0$OC!UHdqJ{>ijiV! zeGCF*3ei*^x99wxc9 z=r-dXxK=oyVZ>}Egf!7}8@_-p@(2<{{9dCMY(y4@0IIX|8@-6*bUYb6M~qx>?*B6+ z?bePYU*WrhJtRFqz7eR~dO%$}}ab~(ts4i<|eu)-@xGiUd!I3NPsq`-D zeX~r_0tYl%V<@GPA>DXu1fK2?TCn90Y3;pyBna+vN@eV5_q(R#Q8FaMhypMZT17e5 zKoc28$3W=|tVxRP9JW5sFU_K<=xR8u&J4wnq1RUIBzEh^f@M{PZHYSFRV)8ML5!7{ zY|=pyR&D;0q=6X0iXZW02I!~aaGJs?F!P9t=;0S-DHE&7*SDP9El~Eyo-{QgozVVt zeF=`%uPx1s#qtbzz=R-}`c0;okquT(k(oZzxb9Y2!rd#ICCvIo9u%@p9I5{M2kM-j?JnaD(7rVYCKw_|yJ^u$pzmh8e zP4|quM4W+tRaHw5W&6Brrud#bt*Rd2_4Koft_&MusG@c4&X&81{PF4#PvaWLS&F;T z{b4(YqGeWv!Wxj`R|HzP;Q0I(mlxeR*JJN=Ot26PP7Ga+hhdlnS{`R97wJdNqfRhQ zfe3bv}K#Nh9^i>Vy1G_4A>4Bw1vBV$+*Bv!^Rt> zr;r15KK`f3HA6!Ezpqz?-Hs-aw!3)^&oi!1|k0JJ-}55)iXZ>6iSJuUBYWsc)%CrVU7 zA5E4=Nmo^%Wi%loQ-MYGnSBjk{+{gw49RQ^YpBncT`nj#jM*2}HxOqY(<#nOQw3&1 z@eRQXm|_tA?LLcBxQbyw%U_D6Uy#;ooEX3$8g#`0VSWV0$T*anns&}e-UO?A&ZM&S zarS=v2nhbl8J3D_?`J?*IgPr^BI1{{{rC}=tm7uLh>0JPafBiwQgI&gMiOW|qA5E3 zSRaVm$ep$3CoF&_!-ADTonY5h@iXWTp#j^lpi@x@;^aJrJz)3(TKTOOY_R#<2S#9l zhzX-Yue&3$VrgM-2#-q+&n#ub3yks#E?}Ho@EUwG2c*K~3`~fXrTgZSjDV3{RR;E| zY32YC6NI=4z36~oGynM^>RR9h6gz_sLy1*zO&qX(+?(<(<=KA)UNG937BNzo4mDzPK>bo6hBp9VkmdH&p<}z)90)eBm#^*E`K6PtrsH z7*U&{wieMYy)FSHiE`3NQvjnSt#X&ekb7!0iiXs@uOo($_{$q3o8nk#g=R8t8#c6S z>GL!t1H^tyquTg6enWAKC_>pdEhYv?-td^=$?R%~>9Ow5j6zkR8xc$zH&|9{)q zN9ltdCzo<}mL6fjPQ+{sP~qso4S%pdoaa`CHQ=;^$8sL~A9LK>g8m==go6WJD3UGvjIT{P*B;$zIu-5lVvH%j0Oo`!y-q3AT-0K1#9)i$u(mEr>_(54m0&+M%yvE#LcZoG>L0D;nz z`C!XkzI*#o-U}5eI50G{48*`7dy54o&x&Ml(?aj~Wz~+D@f_<*FQ8~i%L+0h&vUGV z-2v>aK7xJ!<3^SEZSEPQg8n2dRRTwC>RR;M4o31sK<;HD7&AbrE@y6bZqZ!<(IN(_|%#r&of*~j+ zItsxca7P(ZWbQQ|#DQXRGxG%b0zgrn!}WsQe3jx8>GJV)&H!0iD9OlD60XK!xTGg# z_(AIJ``0*kOld~qs5DoHPls%BY?XzXl6GCWbsa^-bV)OtjRXa(ED5-~IBYYWK_rZ% zoE1tD?LjJDRKa56Vv)=2X~e;%1od9L4Ml^#dmlRxT?Q+)HmY`%7kx~XTAU?LbCPNKyX+( zX-uTSuRaHf!0AC0SxH&L?#SCi3}6^ z0ddQ(Kjma2T0pM&FwTv+(m+n7Y{<=WW{|rrZuO=&Ii>p7PK^1cK1HTH^`x(E#c39D zK-GGwem}`)gaxzJUPZm0xuT>QR0aOhj^S!rDVMnA!7S_>OjWR6&>lJ z*~%GtN1bYiF749%sVN7;!c@ck*tFW_bl?HUiWd(dmflX2C61`AKul42XL@T&4NGXchKK(c0*j4(U5`6Vqe zIZ0444jy_?JL&|BrJKPhfm+~UYq=YT#1u$(l0?LhI2+}-S#%VcbivqsFkO>z z=bo}uFn0qcjuKF*9=E+YG*`r|$C;xYD=U+qr6z7laHYuYHt3&J9QDj8!4wV>P@XLsLC`$(J-OfCy8meIN?|TiM2eS2Q_8gJ6(zr*$$?AEkLYycByCQC3PiwEvG2&qZ7)KTmi?xj zWc8N@$uJZ?iP(Ly-Q8paGU^#mI*8W0)g0 zFQRhLMdH+8Q4I%1+%?EEdJT%l$;-8pfDSo$VA=dJw9q`u)Ci#9=kYN@K~fEb1{LAy zTB>RjnN>5cco9&ZMe3KPxt9OLKr(qkN}&QDpZqUccDOP-1UIe8*omwLq2tt1Gy( zI}vf_^>~})W1*g;rpg3)ax_0%@JADEH$fEJ-h+PNy3ih`vlg9|&<}E#9F;NT6+}fQ zU!1h~0TkhorwF==4*7a;kZ+URjW{n&b`{fO2_XhQ$DXr2t_PM8-HB|mK|E;-(SHrb zAlS!QN%~dvY9%SjZfdc<3_>VCUg~wHFcq8OEQNnvSxv&wsoldjv5)|OkK;Kp6npOj z)L~Q+@Z)e*TKWDg{F%B(lTgP;zHiWYl$0U5W-}JU{C7;D4G1P@wc|VQbGZtW2mAoP zwDT~u4p__Pg>$C4k%zx7hP#-4`=*BNC=?9y1dfYMl(tQ8!3+@~8BNzFJ2HkItKD+R$?hK67{MX3p;0Ot}!ZzlLHc@!;2I3V@S&}T_xdUXKh zRE?<9W=h1IHWLF$!DE47vrx_6h;7X7w8Bmpc-guE<+S6PAlSvTD&`Yg12o<~4Tvz9Vo=<(UpO!l-z30Z1f$3olX6d4Z6&;cok&u|4TvqYeFBMT_Dlk6$i zmMO9afa9otxnayNY%%|jYyTNqvXuQ93)yH%At;US$P{U&8~IX10k)SsoVrGRq!7}y zx37cGCn`d36a~3|>R35Cdy{T{0v<-~a8-{vTuG5>g5kO&NE%NyI#G8%kmJIn39kJ7#MtcKW=K{tczb0F;3~`%CBLv!Y(ZIPpTH zVH-{W>LN=oIRGnJPwl9CDFRNFI?}~*cZ2R+$+fVtl5I z=#CsNg5)tV69{u-XGZCQqG=^VcT{T=mJ(;0K?Hxo@x7H#wvf)b%=F*db)&%HtXaWOdvoaKs=Ea|=sp z5JTF>um-*ofFs1z!^|^GvG6jN74nMIzXRWNlb63M@o z&~(%>6x^gH_^!d%pA_ib<_XVU)bVR8Lq}U$Nih6~bu=A13a6<&u@R9&3W*b$-PM%D zG>+?1*j!Xr<=KnUM&Nj{t~mGSk&Qshp|6me#R=5jS}OvB7&p@M^|v(XhoL{CPKfjE z>laGW%(c@7h@96N`yeTb9)C`jvO$*1e$g@+1lS>ScoEMcia_v!dAK22fz>)qTT|$J z2A)t?V>)HyPBv>_2JOJXR)QBaE`|k}x)=6VDPH0SCY1?lLTnb2yr6O^-hHKz>8edc zsc-2%)fG%VQQbhnZ%SYP7$J^gnpcAE4ua}<&K%LLQA(;CyvrI8c3CLk!`&mA*MwOJ zq(9U+z$Vdpq{IvZ99XhW=!h*gU70D-G;n0_j}@%79umxsHEbwZkPJO5rUjwnNJTN@ zEwGjZ7mgx#Huwqn)$ON*ArVy!5I*OoW`qQQu9FtF#H6Os=R>nwX2K|9Vy0mQNg}`m z)d&M41YcKX4EoEeo!Bfs2}#wV#bq{(?$AvILwBr&;yOa8lc>y+n+y)tm2W`SkZ}|E zIs%?+SM!zj91=8Pbg%1iB-SrS7B)`xi3aU>0(c0CQv?xMUAHV2=?fSE^H&x-w|JXB zXTEXN^kW-liBiVmYNl>A{&LEA`ZB$r+6N~g8K&TnFfCJc;XB(g^91s+McuL}EYh%m zvEqPWdNqJ0`-N~j=w)V@zWXOXzl!6{fZqDTMz#((-FVMLuj6_CwuB7OI;=PdHg_^4DOX-+m z4QMM836~7ak2@?vfijDv&w3xvzGIGU9toKS78PJuO}fQ!rqMW7NyFpEhzpM(oV}xm zu^a&E(h;$*o79k5A%~5Q{{tm&ep4x{4o1N!N>S_25#e~d>;NM=l#he;VHhFNDzMpd@CRo*wJz+fQcq#6$qEU}RK9e~h{84U4O%8o4 z$uR^J_pbaYEaV9^dyI>Xv86{2pdX19Oi{(=8&MQHy0$(culkL?#}-1(*8wMM(`^s`us*h(4bR z;b`82k7s}16W13=q;&006VLBohvGuW*u8z_=P*QCoZ5^k2R;Q4V^KzAltxFP5Q%mm z%Na7_>)K@$h?4A^A-%n0N=r#cP^=0x8WHkNx#INz&AW+#%#3!KT`G={QLiCof6d?+ z4D=QltHSMetr?|C(@sYrzQ|f%Uk-+FOImk@mG3iNOv#+GgdL{VIKoX>3Nz-aQDpp! zW$F_OFipr6=7%4i={;5K?;*kn5O~_`K`_DJ1ue;<%O5wDXE110J~PR!#ifxlP&sTZ znWwbKG~%huH=H*25QJ-}_R5o}YfyXi7JF~R%sUR)mezr{PBYt1)9|m^YLF=13_FF= zC&4oQ8?d&$J<`ZjIq)j31h}S7>IJ$qO=?bGQS|(=@NXJ+#>e=G zXbyC{W|F{s{sR4%JVZNZfTZ2WJQ;Rhl&}Rpg9ipoK0CV4=}j>KbXu9%C$2dlc*i+i zj0x^?{Hnrwmp5Q;Ee=Wjd~7k&idnOYbepRhcc7TFo#v5o1NJ0zdFQT-M^zI)@_H0c zY1a9-o+e?9|8@O8gH#Y?0|KPMM{EJ*_(r#p?n|hJOH5SLBE-{g`oSa<%zPA=AvrjWhnB8}IDS-`w zj@hvTxAv(LMKE5i7SM^pw`G1VMcFZfn8_)=?Zb&Ga3$OiGV(qOa)6pb+^-Q2&HQNqnc3n*Wi>+=8U)UwwANeFCPd;n1{Ey2sI9KsuPSJ$nV%S6 zzyX8O%U+SRh3Qi;J>o%}V3NM>5AmpKe`WK9!BR0W1D2>_A6GD}ev>Cc_OZ+zJ{0JBNel{aqw!66|a(=5_Nr0y5@MN-m@3$nP)m?Gan}z+G+O@U^9wjl!gb9>CYU9qImku^WPZLHDHQDqovKV4HS8NWD}D`J;;p2}Myz(H z`%3;8N$1_JrueFj$5o=$R(1*ieEi;#>k9opGg!Gc)Re2hg(A>cA*@lkX8tXPQP60r zEd9}bru+=Zx%cJ>fMHR)QAP^HV*xz_9xqQwDR|cm@l!Ypy$L{5XP9`!Pa%)nycl|F z+S4h1O1!Z1o5Au%xg>-~Wj9|M5@if(9$VwsMih9+K_?LODFo)jTB3+SRD+91S&8J} zG6Y(E)wNL;)#pYMZ!Ld{CT}S-`eWh>IZzl=Kv-X?s$oBk70cmYt)%Lv%OO9k!|n_E zX1T{G+d6jeYUk0eXtY0yR3XSxDH^1+W&}7dtU1t%5{Y-$-~jPGvAX3n(I6w6cf*E& z#MyQj#Ks$vXtLtpvfCgwV^%{RvfRhKUtEhQxYLldlkBGAOcalO(*_+H!)7WVjN!Hy z*n-@77a=o%*f*6_62n3*h>pB#?6G|4YT+HYrWMcJ&dc~QLnZzOL+Pq8256BVGgM+7 zVTWD2@c5e)6{VWu*T?mWFOe-wdH*z?t;mnA#dE^uWdZuVY}(D1{T@i__hX)_d6hE$ z{f0$D6j1A`d-lo zxHKkT`}ayeD*?70e(u`>+(0!^efMv}Fwfs4d!XgFzt~7b+vzyJ?Z`|NdLRb(zwPS> zxNMH9?{@bPmw2)$3cuT=LQ;Mp|SE-!5Ec^QNEo}13^GL27%3dL~@<+uh zsYtuO3ny*@b0uiKuh8;!=f>f7l7-oPuoek9xR<;_?!ho9eksRa;r9Y$U{b-h_`6V4 z@C(U!?N?Ynp%0cj>sN>-Yy+8dP`$mv)$ks3$t|DKSLZ%I)k5Uv{nf?(=doYh%n@)I zJ)bn~svOL!yO!tlE0N8&NH^BSWGSAKY*4ePe@R8Fi>Li<0_-n5B>)sUvtIIdzUFN0 z>(^wo+!nCmKjYVwJf_R>cJZ2+v`1wH0@40@9^=1LRTyaMSC0gE9+pnkkB+~`L z>HS9sCNtGzr^D>m4DulEKns6xV^Glvy50Ift(+(@ei|;`2|Am|9$yCgJA4hTTVhSa@#z*zCDqp{^FJE)Nx#guCN~j zQ{op-?$8l&C{5*#Qu0vCD3NiE^)Q(DIgk$dY5l$+y)Kt-sdTv0q*$5O!gki=c8cNy zGcHd8sVmVWn;wJ9p37fo9?B?l^3SjVn>cp_0pZYntvZ8wE5u@9R*OYd_k1tYur#gNw!OqJJ|_>BxfN=y9?SgimJ z)?7S}$3>Bll%~kSvz0!!V8q}7nf0Y)rjPjwB_SskES?7Lxwm*Y7}KZ_+g?z@TJYZ3 zIw}WdkWcUvn?x(dU{I;oXM&1-I7CL!?wa<9V(r>bNt2RkI<%xW<4OmF+_@*S2dJgn zdj%#{l*{%m7K8yVHJtyBpNs!JyxOhw7!t@y$nw9(+CDb_CN6EQLV>u>a&)0m6ogeq zUY^V&s*>fdGM4jtJehGaiSEnCqN(1jPdPX~aaA!TqPDu@#p0Zc_FKp{9UG`C^hYjanO zd&d`JeQ=@-RR6ml`sq+E_ps{*4^c4;~Y8QsAr{s^-@V?^L%k_@>%-2OyLlsb!5#AG>;()^&E4~gKpR=89 zD(i5jrc>A9^;qB}W97~0vnu*GHwHMF2UhFS^>xzmKpak_Lrvcw-l&C7WVONa@y~_% z(~Z9jyj9SSRh2<`urjPefU=DT#U_>^hL~|gw+U#dB#)c3Nlp*glqUQzL3*O19z`iD zALdQJ>FHOMNtm>xs6}#cOU=0C5&&G&!7}Zq0vNa12IYM_$4-wy%$I1R?DUIakSC~H z;$xZ9k^y;~TBYEG;T$IhI3q1X)Ejigjw}Brww?2MFoeakX1CT?4tmiJbvafe$|DfO z--qHM{?twXqH9o$hKFFJVe%Sg)RrdU5f>|8*KvTjJDpQ(zCTQk;~?J8A*Dr~Co&z( z)a6_W#cp;5`pIeKI%{buuMIJ^OrJ1@O{D}nZ9?&c%f!c=G)N)FwiDhaS>^H zw6NeZ@t-Egp|KXawo$0#_(IQ$$Di8L!Sakkb1Xi)lPjz{F!$Q|<)cl!%Hnfce0@K*ZB<#y+CJs6cxXnL2Pv>=ulraw@f8ifz<#<3 za6zW&NHPWPQ>#6b7{)9B6&IG+Ypxgx|QqiLQ$MzbH^Xb_n{%BB`9o&efZ1V#UB#uLbjPcQu#%n&B$tq zS`KgEYa=9AUh4KD(MV?Na&NXqvp9-3`PcrDP0<~4mlM@}rJpx%t;(S-a!mY#T*eg5 znBokZti*qqZ#nE-&9nXVQH}z~mE6|y^%SXTi&i6eskD{F zLP4L`wlR%`QtxEZ5nH_SUKEPOn)>_&%d9VEQvdJE{}oz8oCD&-m&6+!Pe_7H|7l`P>y2E*1rRD_ErGyu@ z!-&x(DE@hs7D3O8NO0YMH1P0=o6$9F5^7B^@Vz)))0w3ytuRGrvEyejFhduz zeJo|#ss%n~oex?}i`@`>xU1nlZ`jwiJdXV#i8RprmPKwr zG#F5CfhEq@PFp+G<0reU_!KlwvQAso&@iR9JnILgsV?av}4VRLi}u8DoU zf2ksr)=)ykV%etfh;l+W`;prC*5qh5A45%=rKpZtHd;bRfDt_r0-4`NLW+hJ#i7C2 z-K>+>**tJY?7K3kgOWOjW5c*kYAk;jgaL9<&FeS}T;=^mn{)NbaT)h< zv`N&yWGB4q@X9f?BanUdoq&qu=yVL4#=#)y`LihFfv4muI;=+(47KM_?BSB5-E8l+ zb(B>$zFB@FM98rNI{)R^#Y8}%Whf7-(t$ao&(FCRpEgDG#EWZ}4J8kasb~r8bnaM> zcf&>^^IN>r%l-1L4zv6zqnBv^+Jg)aPDWLvcbE$E`NdQ`x0gL`r%3XOLO){v~Q#-2~f)Uca73gcm_Yzq~fC&c<~;=A_!6*5)5V@}s7 z9&+=TNs@uQBafn$WE>dmpsz%U5^!T`O;xX8pk`fB%naa=6;_sjnt|fTHn|wO6us)C|`fHi3b`mnkgaj4&p1I~T5Jkw)+OtUQZPN#u^cDac^1|~B{P6lN( zb?v1gE6!{FH^UAT34G5cj}4DZG_;h)3m!)F#P)R`>`R^Zw@SZx(+)+-D11ocI&)YH z*Qll$l?keW!hdFa6Py-{0|bOp0c{1Blawrv(Pei&%V4Cc{Z6YZCO!SdJ z0@(1!=k1r;1HOuc>7UoPq$cb4F;Dn?0Ep-JuNDu`sFOQy>Gxau`WClVxK944Ct+gr z1I_2%gO(*?8Hxq@-m_j#L{7Mwj#z>uHWkkf1P4oHf4%(`nRrqBmef5E%fqZ!#F`ez znHyyV--%k+>;>6#(2u9lTqf2;gW$zrD;K4RHIN@`1EI-aAHznMrevAh%VY#bq2kZ( z|EKLuk|fEMWy`Jj3W^jxu&2!ZPYZ`xM9n?xMhuGl4L;F*_?{MKs(?TmZpQ1Xa}NfL zL^|qtwwElDQ7TfWU0!=FWIdQ;?-}&eT3@{uZXSthR-LdJM!cPRpbin7*db4JOPEm& z$(ZBj(>x4uHwNJU5|61q&-3znusx=E!%cs$P19~LfjkS+770lYrS0if2=)}*WxVff zx!iLqa0?W&dzF>!t=veVt_V5$vIgZ;8Yg9T5y@w@M%SeHL>(GfEyNrvd9r*HC6HoG zqPrvdLR~ikd}PoY_+-vl#{gNQBw1bsFh}Z2gea-_-y19XQJMlCv$8k+#cb)&R5D8( zJ#_@#;-iP1!ttK4 zq$9}&QM0OH5f%!z42s-gtC^|n1H_>CdnS_4?j;d8@cf63B+2(!d3po6Gec@-w|Ah7i&1{w8oEx# zY$+;({2oKsVU|G%@JfT@QRx7%blAB8$Q$tt#11{nhA@Z@IPr;=1Qo9E!%1PRh=eQ+ zm@)o#mxI&;w861nB^R*64K!ke|24jb%xE!~Er1HuzBsUG)~Bcpyo+W7VfcU!qfCY# z>|Lf)-9u@v#PM!Db|v)MsEf7xeQd{obEXx#wwVBUf+m|0CnAfW2T2Y$yRvJk|@ zXs4-9Qu;SHGnu3Vmmt&LvllN z=JjGF5mpbFcJ)5JOYR=2|?6I@KZ zK&u{f7+#zqQy>eaJQ2@|@)9s4yu)HItb0$t8ZmPZHU1tz5xaT7%+N~L3v)YM*9_^H zkR>NMiSk4sbuL?Y55Pe^WJKV-=v9U5s!bQpo`W3^i+Pye8DvLbcsC5Xd-41vV~nh zLnOnCuf{7nO78`35tYG-kS~YhQ)L1_Ag;}rj`PNkL{qzd$5>AmwcWz4NOf)H%@t5>=rmmxTVzBbW$P88Yi5 z)lOCu;9W2qdVwjXA{Al7Z0K14Pe8E0o@^)(=a1Sp;7(dHg{tfZ)VAs8v3*swd4qKP z!{4uGyXB@Ij3ipPSt^lNy9Ie%ITqn~r}%;qk7T<{fWm0p?GRc)bgYIQms=>%RteHc zO`7Rd!{1@XdTEjo6O_XC5ng}LRUTh9rb0F$*Y~cnCs_11tp2CZzv=fG67EGTBDzJ? z`m&E!JMUi1?zbS7RK!waws-S`bWlR26b!Z;izYCI6OZk_CgAcC>w&;k<1yc)jCO~h zJ0j`kTPd({V>UUQ9f@F7)dpdf3A)FRnRmDFU9^~D=}%3(&LPP$gdOk6*9n`co8$+M zJdsa=x&$*FQs})A#UE1y`;qW1)P`qHrMh}I>ia8> zG_-H$v~vkUQYQtyCkgsd`vytjC-uLlXyvdd4$^>LmWKg|B(!5T*K(?k?3s z17{;&Heo2HBHt4hZ5&bc){6`uPY7JKwvQdURz28 zfB9Fs7x)kz4YF_QA&(URY4yhGI#R`C*!qELC;Cq-3-FwbRSZEQq zh71VH{r?N>Z*%JtkVchpm$92j^dj9P2#buR$CE1g;^5uCM-&A}TB_=UHiGYkghWl* z`=Qu?PD6pqHH-5*W7j9eT0yIJPrpS?NpDq6^9ey!G*`7OpUDPONJC>oG&BLgqCl%< z2>AVv*yA|%PXG0NYbFZGEALh!klSb~qTFPiKa|@UbnDC9?9#wF?z=5Uh`v1clzU$1 z5&g`+b%Go-CmwB!E{7)RJk2nZB>Qgb2==3_#<&x1adUEc^cV)2C&V2z)d!&4b1${( zSuX;zSDFZ&?TZiML#Xo+M>ZaL2NA!YtS6IR)Bd z+o>bNR43wiTy?5;iyf^Qnv9Hp5OQhiT4JE)X3~^h@)I`UIHA{6=&eg^3A&<4L0f`y z9ZSR)*?!&BFMX6HDTL+;w$9_k@kb^?8c17;+vwf+scAOFm61=ugsPf2PK|hP+^(R;KyL=_MAo&H`xN*M(j7AeckefV zHVFKtf;)LdJsvqO0>1(J;=-LVm0qdfH;0&+5;AK_4%&jgd+$`%J+g|fL-f}j`n*)@ z(u}B>oZTSnI-h0$iXoU85dnMZ-roO|Kn4Kxrkr&rXr{3-ERJ@QZTA)qxe?YwN)YIq zW{-lL{q9%t6^J1Wb<$`ZPl(z*2$}#KCh_)=`cX%^4JQ zGpBPRV?{2o)W4x)5+o<>BI)Nr<3Q24yz7k;g$@n|Sv^0e-+L2!I9JFH=Zq<7!skd2 zPhdLF+4(*s7tp$Ohum*_;%9-%hIYNgakGVkIze?&(m}30xZft^=Wg;LJEJB^tC^Ue z3Os=sn=E&FO*Yo*;u6}Ww6*z)?sSbQC1h4xnmSGC=L>%Wt7DB2>5&}pE@5Z1_j>U< zc&LpfxkCV*Bkh$s*O$~0A+wk>hUni@mwGq|fz4>9AW~4E2Md5RAes1MXqXo@S-Pfw zp6GpN}+io0CeBRD6L3~9Wa10Y3!a#E<_%KEwV$)NdVTqWOIZ} z48Y7UBXe$^G-X@#$SvC%(T^yeUF8cR>Mc-F)K*WSL(MfJN226Wai>XIv*~p?o~r+b zuYtNa4=&y2MKPT2Tn2P;9%}tmBrm{HimG+|5#1$%9lENjI8Zks%cyXA>jJ!d&_l?Y z6*ZfCDKTcFi$l#9T_0%=4GEa?Lc6O+Y?KCFkq|;f1IE31`Y&=P9r7BP?d|d3&lwD_9t`W>+RvJy zz0#`DhUz?VqZ{ji6}9c5IUsuC^b3U2*>MwZFhRo&7>Uhk9a>^L(WXFDG&KEXFk(mw z5Yu*oNhKj_~Zb6gq*hq?Ln$$T(Ur$jLi{1dAZ2LVjCCigrgPNaTZRJ@w>dX~;{c`?J6Q*Z9M8hR_i^l( z8$~;E+fHp_=Hsr7MB;a``x<`aEeGh>ZPW258!jUVOcWjCh+xE+t*jVkQ%~H&bA*c5 zP3){I0Tk=*gDPC(y7ikO3iNHcD3|&<+oA>kSi*Nn@Lya#uq#=M-W#Y3ozo?<=4DY9 z(4Udhbn7M1hA%vW)72!P7rJ!?Oy6??-NLk2(~lq9A= zu`LF#N4=cY-4~Zx5iFBt3{FQV;mbW6D9gjWoSl-{bO!)Wl(1U57hK54a8YQqVD;&f z@-+OrmZwp}p;%PVxtBOf?w5EdL30D&dwM_Ulk+&-%VCuL@ZE&`qVZzr4C#~9cw|3) zFP`DgL9B=;4DNxErd5N1Y~5Uu>`eZd0*bIsC_sHw$mODvAlA2x7ML8DAX05LNcB@` zDS6y{Og=T+XXf?3v9=GUw`6<-|(p7v!b(G!9=>IZ=W5s&I#vcc1$PEd-c zL=^9fC);1`k@BcSkz35Sc_Wy{$axxL$??kVO!4unnq|*9@B5y^2zE(~#|r^-#W=YO z@yMPvd>52_I#B!)+ zy1)xnPTzK@-@I${WIGWV>?hD zYtSS>vL7z1#)F8is8=O$lOxeGdRt>7B zXyQJKF(W%Q%n=|`e@^V4HCOKglPW)@i^q}HB^d$>Dd?#ucHg5_4a2bpk z+mn(ri&CowN5jV?K2q{q3IL_!nK5W6iOd0iP}MkM8sZV_qd!OLOkJ-T2GgMa!Cy5s z&o)g}6R2jo!GrIi+jr6r1C*6nZFCBZUt!X44_ynzGZ6mXDCYaweqJiBF2*MuK?2ico8mN8_)* zWlgh(eXZ|Cd`SrOZ{UStf^wgNy`wOgy$=?3A6Zxzr%=M#OokTnm%lYz$fk;==67-g z=w4Bg(Vm6%rxp&zan@X+;-j56)xtrL#tnv|KrlqCVgk_vPa2!5mz~EqS8FtBl zCM9+*49-n9cZ&BiP!KkUrfr!cX*`%$3jI0Nh_ls{HDD0nkY8Zi))X)`X?uE6R4n@U z4qem;Dj#TyCsbmGTn!j~GwcEzF|$1au;K^;``l~EWxIeCj1dHx#q+}~A%I_~>|4O* zzQF)R4f(l15^N%Xmh75rl|x5OocnrgH?C!C)`A;vsQc!}Lu~10bdR)4*FOu~>_|!Y zZtxRKDG()+Jh9VceWKYk`9GGFgykG#6-zaP&_yn4;;4n}mJibSbh1dAr=GSS<&6nP zbG1V@*rUaDlm0=Cp%xBc`zLjI@D46ZEu0QaD}{D$P~)r7!oj@tNjMLa+Hj;UINBsR zj!um+j&B*)us;4L?^k%2E@h+)l0H=Ap5D5R0n7mb#OKc`zf1K1pt-Z23C$I z)vsYGOV~yn;dPR81yvth3XrW5vLdub83c<%h0M;e`!TIlI1p$hOc1(rho(1lbh+%& z!PzZfe=@?pX|YO^q9(Fsi@1)am2ej3h)+-uANi2OWtI@y>DDa-pL4pLPXyecO<5vN z-BZ;c3kgf?#Vjfb8|W!Ba7{BJl3RLaQ)H>TkF8D=KG?EYqVL`97798?25v{={QIv& zgGKndX`dNN8bdKBrqvJ=B-Fu1bXT48P=psj*n@m?XV<<`&yA1;j&}~17G!yVZ924y zbaoO6Nl1qy!&luvJijJGYSCdvATjAy(*a-ErrB=Oh#-ZUp#T{LJ2_u`Hj%BN+tPM? zK0wt@{c4~Lh)%fLOFj~|37Qr2u_?vPBiR!&{R@; zS(8ejh`Rj?mWFY~H}8g?!eeS8T^1iHzJR{`dvoSY!PY(1SklWVyDMyL{OHIZ=Kj z*HfB%I_1WB3pyN>@Xj;r+qI|zRZ7980H|Qu9JHS7z6@0I2uDamu>s_NWo?=TkeCD^&`(uDk>odHgWXdEeklB(UDg;sLxlvJo z8-1~m|K;M=`%yMZljE(JZpamk5S5sxL`O&dypYq#c5i+WQpfV}DDoqcc0`YXwe)L_ zte}_DrYO{SgYDh7J&+#SW{^x1fd5gC_-K{B#?o2+!{nTE_DGVYD&G(jH&9~;9MN|9N6O0^kXl! z7KnEm2Q<*aNPy1g%4W=ctk`P9?%c<3oJI!%Z&Dm~cKN*hlBupY;4f@4TdvO6%yrkcDkwP6RavSnTKY9jAox{RxzjcG$kq0x@jj=kr|U% zLz(*7t&@MmwgRp^EglLrAeuTblDoWP)L!l>THGYKBu*4$<7S5uHWIiCgjjgdE&Sox zcjZyTWFcRrd6~P~&(+*IA5Pk)HxmMVhs%CO?T%mW3!&R8a|Q2eR~+!8Z^}?vLhrM$5*3O_O=kHar4)hO#k@n|m(r%R3UbT#=zs z^WUd9^)nHbFrIizEUl<51b44n(M#@#U9}8P@u8RJfgdT;qEMkP1YjZtq z6%2%*L=#C6n+Gcp7dS|a(gzX5rr}X$Q3>k*2P8u=w6ljvwb~;v;?vU_%;L6a~>CiPUZ(bkU}35 zCi50U>eeyAoT6)H7Y3<_`M!-l%#yHH)lA|BQ&-1~t1Ez|D&NEYs+!Cx_4pyrTemsu;V_$75YbTD|)n3a4HlE}DwOg#q5SY)jla zT)b;Rh{@}|+}%h*~t0i5Db+$`Udxjpu&X3uVfdGeYZY?qXxV0a19JPTS zyBPB=4}Oo+&6yfzj`~$hW4fC&_b5I26qrqc174aj>;NFa+PK%zRD0&0j2fLTb`%vN z-5D%lqidr94-FpyZ0@lg*|mWm(haaVbUOXd^7W4t1enpx6H3+{Kt7mnb!YCYnme_i zZ*Z580%`&~tas!_1sT3b;pRT>9@^1p)-vG{OA0K6Sx;DNfqI_uH@%x-^>m%O*)Y=~ zSW+~9{QV&T9vY%zNo`!gb$o8jJ{M=&c{7L3Q;mv9GrTS9k8wDp(bwwb7UbKyxP2u6qyQ9qcK|zw+41h(OPD`L~gXZqQ7~;BLg+@3Sq5!=7chV8vi41R;F`nIjB{nfgxaUeTZd`?swG z%LO;z1`WlOJ2C9jKy$LGC_&VT={-!pM3aG0V6~G$xoV=6BzMq@QWNLiyiay$Q1<~h z1S%u(jRM$g`&3yX&PMM;xypW`8KbdSoPfmds9E)2zH^v873IWLp zK0fl3kYFURKT4~4WB2>o&bUk2Vlckp&9D3F?aT%IdQbKEfE(WcXn+k=7=}#VS#a=U zy~5VzPGBd(F>y(N5AjU{ig)gFgSO|<_t|4oSnd3c=9y=%Ebd1M2ttZ1;>=YYZ-HjkK=VdUPd5Y#+WBuTd;K#$4EUIh(cL*ExDx&QyA*~)M$4z zuo0vr2~|B6G;SGyk(}uDmTpE_{lwt`|63bL6r210- z0~;gR2O@)b5*A~W$*{r=x%js3i-yFMpg=r@g&DjBZg|Gl z|KZS*BTXsX+!NqarREK^Dd)4Z%zP&}aZnfRCAZs^$R<$42-Bbh)x)+z&9|kg5I%P4VA=AEx4}zhT9Bv6>!V(X*i91?l4ghpX=awxs<)~6*)jS+4 zXkgy2COKm891%h2$~_|Lh&Og-O+}oJlj~4XhAWSQNSC4z8VpjinPdzRxn`Gplcw@F zCkpi&3{MxnmMRkWa8DlWJ6y5hp+E42mBvyeKc+*;;?yKn`R)lLaQ8RDPT|w1IVf#H zpfoqemQb3<{OwfHp#=Fz#rk3X;tZ|XMA%9l74;xn7(H~nzKjMXg|(uJ41-tPo%cPv zFF7v-9`*D#!b=p4X%%1tFvHv)E0cSI)T3EKMDI8we;GdlUWa#) z@2E!3D+Sy0^PPs72eXyj16~$}dw<(8?oPnh9e~K*4OSzQrIaM=8wt z4?*1IweS`7y=2=yw}`$wu3L6VeQzE22?TNi7?PKi;TJ&owsec$OKrsZmY(V764Z~v zb#2hJ`COVO*X73j-mxb>2C`AD@0D!i3%J-VcG7!=&scw|%;DZEKfit@JKCQVp~cUY zV9x%e6g?h~oc8u71$i+m8-(a5Wl3yGwYGkyIQ^q!qqmYNQR074wHFTA36#4Zk3{6k zdGoEH5m}*qezLPvj_D2%Z#HL2ndY!ar2feM*v7C!1uBVbamTiw*bUaqEBOG8uTAEHa%aA?A6^29s;5hZ?fwqq5G+5pk!{WL%xB~qgwlB(k2T@^AkOx%)EU# zRq79JzBf@fqy%u3B+=fy-cm3q*_AoIl>zR!iZWeCdCP|I$}UvjdTLo_q}DiMhxpWF zRbmJVpa00TH>(&U^thlL0_W$e>)T38WWP6m}rL5nE0O!i+}#O{)=Bpqo<7@ zp}x}SG>+6Ofjac)TzB{<$Jv2+;&+c8%evBxHZ_|j$`QDf6LzRv4Ro2>EKLVPZXfQs zpyhr8sgWN&`CSk`p#^P|h3d3OKCKw}PgvMzGL-Y*7hv6TH>Y&J*-7M$B61@%b zwD9znq{(h=Me{7o-~Y7!yYE-R{a7&xkChG92Iihnk(eYy7 zInuT}u(F$tB4w#{3l4H62A)hYRy@-C3WgQbI;wyM#|csK=sqRFJ{EwG>)YLff}Ke) zuBA#9L4zQ`Ur?Qy@Hn6=o#l?{T*1o}+lSIc#BoIRw_( z-I!7It)|x{0Wa6kl&CxRrwrXu%5x@%lbrW% zwHe3`&>vlf^ptM*>M~e?+!isDD$Lu4)7>Hrbk{8)=T;C0C6RbH&oTgS_UYCm+ht@&h3&^wZJhrMlHT0ul0d#;fLN$k094NhI%Z8g!oYXeHsgK3);aTi3 z#gf|ihH+&phZRj_P;?c6C)3Vb4>B5U8Wbm{QdOMO+=t&s@H!zk!F{A~I-J+8=~0p2 zoGU}ncvAPWg9KEZ0ETu%PKJgKG!@~_e3>uis#)l2Sl)?5LOSR;p~hd#t+GY+r5!H7 zXq};~|G(FNbuTlh0OL8N2#<^6y(9nCo`u|mI)r%neYqb63V4a-*d^G9sc3{kY%i%A znQ`)cUl^hBtYUhqH#%aP*!Yn_Qx~M!haMX~v;=B%NO5 zCQxb4m6E(|Z1}1@ArCfruX{r6MJRlvk4x;HZu23KwyL6L?2=m_Gdr?EX0!fDlWEFw z7AZr^U=HJ-GSINHzsWr@9ujTYMp*XXnJDK_=FoRRh`#)DU)lC7he!^u=dn2 z@oH!t?`li)iP~724kNPrny$Fn+8dRZ*F#xET?T~f3{YmQ<&T*vV;(68LSk74ILL_( zYu#n1h*RV1Q!!gvmY;>ofLqbHZ9S@zi5W9wq`^7YB^Mcu((mgr;24S|I-OI(g3N~e z_kURb-R%!7tI`|ceyhMl8`~eVp(FMuOc|W2BXfH!LO6^gwq}QEGvq!(T)^Ne-pnZS zD0e6QfGQG*LEEr~0BuJ{;6$h$G_0q(6c|SKyaMrC8$wt^T{7qY48heUQ35`41lSq( zgl#cGB$Ilz(~DeN@6IUVw@AT#MzE5RiEUCvO!F?3xNHT$y(Nt4-XFX0=Asse1iC&f z(=1h+Ar6IkT$h*XZ7qNb$N`Xp0O_Iql_h+j9OY+)mC-cf5qyN#zhm`JX8X<8rn!}ly zjumqR^u7PK{;Q|LehovCK^*w?903+k3_DAfUCa)OR61NjsOGc{$u8BfG=h9X3CS8j zz&l!|p7%Y4)ZkCtJYWcVUEYat!T(h_)b?lx_)X9k#+aZQkUDb(H1r6=>?gq{qD7>|+AJ`TFw2 z>mDfqrU>9SUWSsOqJJ0E2?L%Jly$!5oa#_W#XFeq(vJe9&xLmX`5E$syv#MjUwtDb zoP>DV5~P20gL?>xvk&iotOo1`npaosPg;yO&vAu(ub?zJZ4$pE;vqFu0uMnRFmSok zKRerLDdKuBT4r&4d4{0YN2U9)p&mHKJdEYFKBUksaaU$&J46alwL$v8zGbk{o8?19 zr@1>=&lou>-@I~fJI`a0*jrO9!{4hWKr&tCcB70)JDpC|SFG=PgP4EqAJ%{O6b<3L zhK=u_VGl90aF=?}c((w^E$duJNtS%W5FmF44h0&)v(?*gl%wQh&Io5{s| z5fah87I+ro=M}eMn*}O(Wrnr)AUy%NUrKV|jaCl<$yx4aIB|Pa9(qcySsNO~YOv$` zv@)q6EIlr%PccZ5LosgR-)ww`*;xdCE>eat!VBJeF(_3CIox}9`jFOS0&4psLDEI? z1Qg@lEFA}_XyNK~Gm!9g0b6zxn-#jjC(uCTrZoC$ob|fA-@0ZO{+i&XmW8F+&-V*p z+SR3t-VJ$YKi?<}g+u;)&^Au&XKE6ZX6BKAM0}3y8U(>%?ss}P8mq#8gxC@Lyad9B zVxl7`*JT4d`YWjl>mcj`51=J)e~j-`YSAbiB(ur>fa^GHMgFu@epNEfw&10p_Pf)v zr`;$`KN#nq9@bej7LM{i+NY0%Gqlcyyyanq&E<$h0DJ|0Y$8<+@ZRhEdHHvb99k5( zpnh=*koY}vl;hkmF`K^7fURbY%t(gkRzTM+PdH?1Fk}!#4hJi&y1K1wJsoM#8F!OA zHPKv6<4{ib{b5fe{#+HZ>z4gG8@0q$1Q0ilDD9AwXX{b_O$5uj+nYh1s_I!Rk*#5b zGbIcHhPCnT7TTHk+^~40f`kTZU?8O6UCA_Wf8z7G>CBJW8^;jY5KGtshpsXGTUOD_Il-yeGeWdyH z@zlP(25Lvw@ld>Ds+Q=SA~GGy8tTg5m=!QNV(VczMr~c)=og)<>H0%d^~T(i5F&`( z>@$=)ibUrBF)0lDq9Jx8i20RJq>YE53yt---)IRc`7Uq*U|<>|$83>?-1c!m>}>pH z{a25oG_oXn1i}-V=Tc>5Ck6qnF~oSPNiGs9xR(r%=#g=+X{xjfX*bZuD%LpjdxV&D zWOFHO4=T8BG|4tmy;r!sE~nh80p=@}gC>((XLF=#sHiPfbWChqM8P0rae{_!Nxt}s!^Fp-8h^j~w;X!sf&s=TYC`h`XCBR^IDwhf-W!5p1nJlaz+ihCw z*drY4?UUha4e~Pd)&g*y{lAoSw& z%pXlbltxROqH+Tatt7d=m$cQ}K+WiCcX6H12<|ZMHA5M5k$!S3DZbCO&r2y3Yq0|* z8#blSE$%R^uLMm#&iG~RbFYg&{<8kNr&Pd95rhDe0UcA0N+tlOvCGW)CRHms5l1ox zRaBSzg+f*Qk!|%O3e3=~=*g7xNP1CN679$xIp@3u0`UzQrB+5*;Nj?`eo2uYgOTse z&fhxI>h2E5D>?{xJa>ano_nHCGU^Al=9J$MLyNbJ& zBu!4eAfA3a*jCu!5aR2=!&{FN+GhY`@v4%x8IPYPuM1(>*b5G!=GonmrhFr$0+!K= zh&Q8|;XaCrxl~luR=EGx^xt!^rzCsjST|jKf+4$Gigqgd@t$`>^EhCDLioMN;oPke zNO9U{hdNsAV%);N3@4U>5WV7idDxK#;2I(@0Kef7m0^P~1H$3^(O(!h1*wV4){ zVYHz8H2$*wyN4HHs%f|vJ>RVZ=KGZs&knB&}f3sX|TjL@vq8D%#dlrf|) zd2?E~|0KI7zg#I2J|pae8E|j4Ef@&lG@U}GH+xYu)Npf!fU5jkVK6HMfDMhV2;G$% zVr?OIBSTbZ0%!mf<+`sxn$5p>gotR))DgWenWNHStCl*tVLkLv5rrVrtXdyR$>WG} zoVeB*jP_aHN~|()TCv{uNOcQ@mngnv+54(q0Q;EWC6&26J96xzQK!{C8A?CigWQ1h zPrK(V_~nMt47r8M0yP6}Md|uj;BsM0yLDm1;D(0!U>vH)$$Ton=+#C;CL1EiGSfqZ zWR%~<;I+%ZCyTKIY}+H0aKhwLdk}y(C=gARlHMiwP90^86Z4lHM{W+u$jUhGS*Cf3 zg#ovFEBh<=M}6ZxtLD6?{adVHM)&iLT^xBx_NEn>vA#Wa;@AvMVAn>Zf$)3&ele_ns zMcsR9juDbOFix?h?^?d4>SLP~X674JOogAa138Im4IN;b!K@QmvYMoKtQb$G+D2Tl zkmI!BWXnanYQz=Gu(SDVQtG=F2K`m6($CLg2$vb`nBrXV8189Y*+;zBryQLR^wSaR zk6bRAW9>w%y+%r^Ht5o`zu9AbG9`WPwJ8=-m0|QuPSh=1iwv89fZnLR;qb(US=9SXhnmC?CkW-spnkEa=)Dy|xoO(%_j{rU*ClSapm&VW0JkAAphj*veFh6Tt1=pha;&*KVRVivmCwj7)c1yha; z$7$;=4l=DCCp$>soS1v->=2kD3O79-GAHiCSIOCn(3RS9c1JK#m>h@_w?A#kG|}mNq`!g&L=tY1@>()C8z-;_yNI|gn&b0XhZZ9DH$3xN#)g{=l2HI`f%Y&WW4T`i*=W3O zZY~(1?GNj}8v^hes<@N#){iZS|24F(2{bBI(OWQB2F5_7W)g#j3! zGa1jP- z0B#;-HN8bm`L1uDxAKA{VycDomCSoDd zk%DwvYB2CW#7mCVg_QtC-D1p@CzFGX_>tIOG!lB|7>~hH>fs|_9m`Nxk9Fkk6R>_j zP?QnkRW^p*?%NfFu^;A%%{-$&EdOp);7Vyq3<&N`0D*rEtlh#Z2y%lnp%Z{3jt)uE zV!kv(qTt8_m{eMq`{?xrFLs1zrq`b^yHThanB{35>G&+<>pjm$|LU6IMlDCrav!C? z%?3l5&1ONglw?W9cjQ9dJ^l6cfkHA*>YHr;#-cislsv_wXeJ6DSu9<^KX zu<1zBPum$1+9O^nhY)q#oqe!AWx_0dzP?hVQo4zA=S{gs6txuPxIc!9Q=2ubfSad4 zrf729xn)LX3m|+*y{foTc0v)G|E}t4MJ6?DuvM%}lT%U@yR^)?G2~v-dF<;|c`T@P zY{`b-Eb8eg$AAnxc@f=9Ws3PBH*?{uOV>>Y+h65DrfQ2>+QJiqG3y>hNnsFYlqdILJ0cpnr{`xXNuS7mCGk^&z zPX`X$lM``)t{-n~O5``{jv;j)ytiG-&9}b?rQy~fR21i_VYkY-bW$t2!W${*+SE(t z@#-MrzZ7AC6E7PY28z7~noc%F5UP}xAXk{ciMz=VW0W-ItbtcTYaGm?h03rH_c>?4 zh38w-eJB`YiDZE=T;e*c_PCNQH0Gw(L3{8(b^wq#^O98R1OVqq4J`J?mN)Tk;Vv?)}LnY=e*#CdC4Q{0CGNz0Q**1hbxF!BzA}oo`4XUXK7LS1OV0 zn&XnI1ByZ2?)!}*t(a|%l}tU65>Q|C%n zc0vxqB~vFIJ88#2p27h~qVyjP^p#I->LV*+$T9+nhkuX4k~srBnnV}eQe$E#hFsAP_0FIaZ>`Hbh)_4O^@Tw zfd{3diyB`dzmU{mo8Oar)ARNA7b=&KGubxf4Em3dTsPUqWZ+`7U~ z2u9S9w-pB$f4rU(yHRA3B}k(%@?UNzF1ery0d}9sTXWP0RGEzIAvota9Q6W5G$5p~ zIH?gvP_SyQSts^2sU3{{WU=tU{a>pjOazYz9bKtfmRAM);n^(Rt{4hOw;mK7d>iG& zcQ1Rg&X7R5qfJK_hl8DyZvYPbTAWoXNZ>CI>y6KA*A&{nn}DS|t+(U2g|LEZ!% zwRCpzT-&*h#wll%cIY1VqviiNkCeI;RqE?sPrZOTwB$0`L!sR)lij1UUS*+^ACK(C zlISK$o@WOVPg!7B(YiofCOQDLg*GHY&N>aK&;q9kyAi%Z?DM9s?=-Vl!PK$XoqLow zSkraKFGi-C_e5rgsE8AP*J1x9x}TSOQ&!}Hq}5X+4@Wi+mz^!i_d8S=R!R4nGLlH^9G>U0^g#hDOo zL;$%IK(x&s(2u3Ae{H^|?+&X@)9?FOSP}ZHL$6K9HS^FOXC0iWYZc5-JKzBw_8#bk zE)axTgWS^K-yCA9I63t0V0pvX)eBfM1foJGU8d%CUjx*9Q5uc4&8)U#QUil|6|V`f(mWWci@N?t|Yfm*y}Mbg$8%C7Fzz`G(qe12r-3XM&5_Gzh_qy1w7rZ z0{Nd9K%hQb6agM-P}n1kIffK>5Rk>oYCR*(=r-fSru-U!+DQ3*oW9gB2cod!l3;|q z5kQs#3>_;sap+_f3Cmk6zoqIrpxTYvyGDR%6QryEK7`d|TC~B7Witi+2npsslt`=R z-;>7OKUV{7tk;{dphTZX-JZYtYw(>_C!L|e$I9`(Zv@Gv7|1!EA#SS6Qm2TCtz~oI z!BnD1WG9`Wg^Re^n3RO49HwigeE_PfwR*(Y>G3dusK~*Oh_PdI4u@MQM^Kng7+4FfaPE%?e}d67=%9DB)D-V_fDX_tx8+dl90a7 zmFp3UAkSgVx>ZHv^X$@Ks?MS`7pq|os{}QfT-Bpp!{3RQrHn>HZ%auw*U>qD(Dc#t05`xIacav&uP&X* zAiEID9yMr{y+5I8s;p(9mwVUAz(>3>=O?S?84mgOe* zZp^`=pIWIzzeG7jgFUA#__au^ylVOt3Int``dJ=C9S^yhTT5!^Lmn+VtmJ5IaDo_+!-{?59fU6j0AMvIp_*V3G0nvU@F6t3f8Tj11b{(x zke}0$f3zkkHgr3`=S@#Q_E%i}PKz#`nhPR=Nj(t#=M?)rSSwGZ2KN=)(}XyV|Hlm< z)vaH*gjG)7{IPA>%pk@Z>AjFFNIky=D`nufK0iW{K#2CVv})17uUq1S%hQ89PRJxzZ+#}Rm(e2 z_+iNYJ%+iE1waU>7ZD25UGu@B#zYIDw8V2jz#CCzU|MI4v`ltqb(x{ot|Lt)uO=UE z)?u-Y6MdMWC!@%5-*8YV7rtOP@p^8Ch_oBJ06pZhq1$}i-Tl(6`JPk#J()BZ=rPpX zp+Z=Kd<5|UWhDWu1;oGqP$*#E9b~a)B@W|BAQ-hhGz(=8j|(HGJ@-}xNUa{-4bjG* zA#7jptW$*8nDTl{RP`hsATXHsjZZ%Zw;$E~^O2Liv!P9)*5&SmS*HRJ~c`_!W9OCO@#ny*GLW$F1S@`K;zy`S{~7gJ_gh$9NkykqzLBd?}5*Z zcW^!Au}citTjUw9)79gz@qW7{Qk->8&ZK!!g`&G}u)cq9`DElRInwq0eAO1j0LV5q zzl{JzRWab)Qsktu+kN>rZzVaXt0b54h9ouWlpeqcHgKqFn5$%>$T)b;1izCC6Ed(^ zyD?)XVvl^284Z2p6L>=!We=K(3Jpvp0_Y3cZvz3V09heruDGC(4Z=6+h-tl((8S%kbT!z!95HEGnS#y(ZX;&V#Y;-46*$}bX=DBve9nE$Z;+i(#&YoO%X zmITM#ff$=xa~u@~fC8-GqoQ27eM6wG_t)rZ%k#;N3B*%Op?buCC3oOWmJ-k>(5TQG znj!|^1vdkhI{c@2(mu-!wi=~1x-JnhZZz|=L$R$ivRx&zh#k9vLTPO>_@UOI?-1Ny zjs^4`wGXSkRULWmE`I2cA;GYx4WS7=_pPFmN1JfmAou1zYbY`dgkFOdO}#b9%7odc z!QWy-Ago#Bn#>rqCiMeb(QxuPOvhVT=AvX*$ zrz?d0c)G%NhIoqTH*gNbXB=Vpqh>u{@UZi|$D-Dv!`r3u6tWUE2oOVVMip6~B+B13 zNtFOCmJ{BTRGEq?#L>FeKb_7G?D@4?;{wG_~{{#JA{ z%Jg%n>ia^eB| z$iINt@T?J#LWvQ;c&LJLWVD8Y_VgyHbcPo@V*^v*!B`B5=tAX_WW7D-J{;|a8Cc2ZHg27yXF7WIyi?4*1TkZV$p2VH{n z0=Y4Z*e^)My?ve>Vc!D7GeP8dh7GNWN2uA6lE~C~$M+dnQDSvOBoT=GRn9*yKxE_S z-Eho_b*u4)h2`uE0ZV+hoM3>2C<%{YsH8%JdnM{BCIf`wt(GDT)Rv~N^HBp@nZzDe zBr?VTazKs0uJSv`CFqQfbP1SKmn#SpERJhLwR=>nO(^GqgO>+r%aN$I*Eh-Q^%0$u zegY3{=3TtOazsC2-dM2nj$TLI92oi-WVQTzlXNP{1_EC*KOdsdQOW>KrKY;beuN~T zoWQ~NB?}D5WLr%LE&{jMnvC=KkE=ZEhh2vSD!@zrK4f~b&xzEUe0>XBK`yc2^}U0D zN2(Dd6Y$^sd%MO*pb*M|Y&v6Iv%{gtc(D%pxX_+5wQG-m4FAZBHC z{%6G)Ls|)sR0RsaSu*AIm-XLex-oYXLfxgHV(P!vwj2obYGArq_;668hqkr1Tr1pW(LU#DHu>;s-y?6Krmj6&*Xn7ZS@lo z3_V#g8}{`GLK~9`Sxl(<0CVGEL)S(n8N_z6lvIa67pqIzP=>a9SW$zlj1xf!VEVFx zhttv3>&opw`uBVUx{GOqDrD5RaU;=qP=g8?%nMo`Q82Vv62L9RH6uR}!gVz=@N?XbB+?u(jrB5HN0uvA*R7QUNYUSf5C2 z082JO8wnVNcb@~xG4XM@>rL&S$b5AvgB~YfAQ@NRE+O7&O92C(g0n=bQfpr-Vmt|p zoK@B~%cd@ipyh}`ZrD`a01m5wcVok1)2T?pb(6XU;70*kZ#k6Srx`^Xl!qx&N*VNR zf;hb4j(2@bH$k|kbTN<$3{Y_$n_}erdHuIZwn(EK=P+n~S81Wi7W@(I0Hu*zc-qGn zWhsP>9Abcq+V+?9tjXR)Akv9gaO6U_5LueA3Z~p^Qs?hEhUlqrA}xhfE{mXekE zw73I#cC=Nik`=C&86l~1adZt#4KDKwxSs?qlzzzFjLyK|Mn0 zCrhm{u&*+L2#au0nvkt*DocPhc=&YJxun&C5SMVy{Ci5sZl@S-+WLOH(@k3ECrnu_ z6+&{MECa6L&aaP_^xc6)>1hjHxgoARNC<)k-RYfaD37g0&_M7YfmApqau^93Fj+c3#JJT;04kyGlSsica+|3;+pVnCYsaD^8=vJJM?*`tA6B&N9|27?cHI&ZPS zz`r?)0jM(EfS+2#9UmoZ2+4IQh{N3IOv_%Qzu#mYjt1`|y~;l>|F$*m^snu7UM(~+x)oK25-%(^SxVjgcwF&0_%phyRLQhp`D09+LS>UDoG_332#b`)CK_q zhrO8$*BieoIR@$d4n#S0p(O_*T*>Yu?oWz3!+W9+(`l+zb15Y#)j5ZE9htoza{uFLbc656*O0kv(mTydj(&ZjjoZrTC-iXpvcTl)^lGa4^s-#4c2FLFODG9V|jmaQ^kNaRK zR*vedm-=SZ;2kcB?$M+JWI<_}nbWdAYn8@GwE~2QoA*Q1L2XRLf-!)t zUy;@!h0H^4lh<6Kwc_Ms-XHj+X17eKyKL_JJqDpuMj}Vk+9T7Fwzo`YD-CWU#w~wS zrc;+IU!KQ(?|K)s1l=iJoFekTo-TW2Jk}u5(c;`8mc9g7<7#6lg5PpWhA8b^u3V8z zhb;v7?pVR~sut(O`6{FJLmF~30K|6h3lEL8E`G5r{5ae#Ip~PvORu6VF>pc^c1d86 z@i390!^ZKq7qwGmlC;M`wMFv#+-~3O=rutQlw+Wo;Sn&!xp4MHa{<%@ zvz8!i-RCT@XmdlFHf-xkm}$A77Gakm!UQS6*O9S?d-8u+{$1Tocuy+1nE;)tZ1P_T zLwE59Er7_5m`AlQ25J(U=X-40ur6&j>I?UAYa4F&xi#f#46-ZmF;jC? zjH_lgogP4f_wQkP+&nk1)Q<{R9s=V3qehzt;Rl9XL!kk)q#nzIe|5WMK?|wHI!eik z4D@FbZceE{-aBIY@vM;&ZVwQSp`-x;sgh~>t!MCYT|(Biz(*Ci4H5w&xR3a;H;1D1 zD@#()iL#=fPv^Z%X3yb5-$Wav)K&l(R3s~&{5V1$6ohU;HRqeUzoT>qfLlVBNPZvH zInPl5fT=j*oD*aDbD?0vc|}(fv2v(i0ZB9}i6GOHFjU5HvH6Pfv(jMUSHu5hq_Tu| zEA-Om36&2>^^5imApspqi#|(pcacFA84wr*%E_5>3n*261~(FA$+%?+RM3>0)l*5` z`>0IbFAm0IwQ$d+;ft_Z|AKb`_O$5P*sL0z^R|0iYWWfJ90c{1apSCQ8)YTaPd76U^Kw7)d(TyG{{TJ+Ztu$jr|XPAsnZQ^IoS*pmY{ zZE$uwRkWGIcU-7Fn!NY^yAC3aUM1azRYys01NriHUFZM_pL}e`;Myh(ghC4t=e-Ll8`{ke%i7 zGWVKknMK}gvufTbh>|B3Z1c4m0FGj5z|zxzifzR)+CsgZ*#8W$nOhqLS!Y}pC=Vm6~_dnJ5(ML{qcn~Q^Dv{3tX3sd- zqXw9qhvcsi;&094y^N(V#?)Jf7Y|%}p3gu0d<1H3h~MAw%Y>e4!xO20a{ScQoNI92=II8R~MZ zUEbYe#;K*s!y=e)jOxf#=6w_0Of%@2AJ^jhravR^3AqX`UB^4zqABv4Y#W48K5f72 zAd-YQ1UK8)$VBnR6DBX3`p@1Ys=<*5U8gh}#i5?-H$NIWwM3B_Xc}2tA{#>&?IyNu z_xPm@_q&JqH-TAUJbIWdD@&(Z1{2Zq{D4j(kER#KXL zjng27^IlaillC7|<@CA>Qb0O|OVIMz9`_z@%X#r330ZM*+)V=@zld5rN_aL8tn1hl zMZ~FUs07;*WPJ50yk9t6cfko)wJ@b_GCa8I61gKSD{_2%jP#P>HwX1TOHK7dEmKxX z9cJs7-gobD;o8jm24T8F;Dh#`mw)%vQod>LfT0BF(3OsN%2Kggq^@x9XO|fqnN~GP z+ak-ECq|Ik5Ts1BtRXHg8_`?UlZQ@8LiRl4O!!*WSnq*n8`^X!=yd-3DUuub1}3M{T8KRbGnATvOm8tljP;v33TS{hF$2LJ z>DT@0-~=gu@7)&G*wP-Y3{iA_-c+EaKV$>E={gr)+s?m7#xW-8R3|If&k@U&J~yO_ z*JtmR-CR?;CwH5HgP|EN(hDc?Uf^+mave$bT3PO1iiUnZ0|v!Xhw9#YJTaSHH{XF? zE8rp{rdzl;^maMtaVj`-cOyPK4;L8-=`4rt1`i)akveJpar2=R=|Cmlo{jh$le8O# zqiaK}=KiSr8xI!^HiudUAb=UHDh}Zy+{iPv(Ik)g zL<)zo#@&w9W$1lFH4NL)kcX4%n~xFf$#v4+sk~J9!b?XgRv$2(od{1KBd=DzVFi zoEwS6@t%wr%nIIFVSaFF-OSN?e_afP(R69S{F`<_<@`uM>g#N`6@A){NQ3uNj?*Ro zG0=nO(9J^Vqu#$baefetx{sSlK&#nr`k%|cd#omO>@6u20)&Jo{?%3dFqrXp8m@8t zF7->8U_liu*pBEI++&EI34ad`w`{xM5siqSK=ZrQc%yA-YeIBu0m9Pp@{s^ydZ4(u z7F-@4@p3!kY{ok%JuHicuovc(u0WK05v$oF;Pa|dN4||)4-&TmwxgLX8ZB+-dX*m< zN#YG6(J$+Oc^)!M=qE4|-ha1)CUUI?HRt{N!{9QSr}NAVI*XB*MnyXxN4a7tm5$7m&W4DbB`nQnApqkeN=og=w3!`@K(q*nV(>rvx3+xqe8R@ zn>!)sea+nCR0UI4N~gSNvBxV09aVSAm?q&e5gGOvpvB)xyxS>lGy3It*W7z`=H6$5 zaGyP@i~TWQq^kyIsQZP2Ig*b0sf_LkP5aBEz3#yKzn6dYNKA=9h`xm>!c9Q7l0Myt za+hX$a!X*37&$_#s--%?NeXY^WEM#RdX+UmOk!XTM8_Ii^Ak&_?>(B2-=_cSHAQwOm ziiFcd!Ff&K;_E!5T-s|m!MuY8xf) zc`(oAOZHmR>@|$d;R@cm0!IuG;Qi0bzq_A6HIyx#vW>FNGQklskXwVWpG4z@&>lbQ zL1NMZIxG97lPiZnKwIZtu2wN-nWiKiK>+x(M%u`q8_`RnbJ_$tK3(~~(nfB-_?-I) z0j6xl3ciakD~gc=`a+i&ZQ7Pkd0~lt?;nsLVE`bfY;akHp&m>}-{i|=|Du;d{b)Iy zRRs9BDd&G*%KupY)t4ftZ+esec`3Le4pO!MycFyJs_ut;DJPa8(Q=>scq>aHOQpYW zrRQJYb2|R>O8D#v;_g4Mgfe5xvjF&p+=Nr-J3Wc5j zz7g(&{{KBD|6}=g-^jKPdH+w?75JxC$?$v+yCm`E>AhiBUzJu-70)xnuFgM9m1jxa zCd01Ru{XMR(fNek8tWKJm2Yvk$2y*(T-gzKy+QcdlUEcz`+c5SMc6)xEDb3P1 z?AG}9m=*SKVYkIP0xBxs9C*DK;NpOw-=Dzib>`hgUne84_Xxd>O&ES7uU|0J6mdW9`s2)#qh+I z;gQYx&(srDNG|O2$vyonw}m6>n|taPP;<6pjgv?{^@z#GH;AS;_4K_Yuhu4gqDVbQ zEYsSYpVZSAFtPx(JerR=^>qG#R9I^ai!=4~4&m>M{^K|GT<_-}SkrIn*<+pgEjuuC z&lO+)J~d`5nS8nk1Sm7^XO=hlH0gsc_aJxtNj_IRwHtb*ev-+jelG>^{SNb!eER%Y ztQU$-=AL=p(A6E^a?cV60v;+o^-Ml%Y~( zU;oKH|JUm8?%2sdpa|Uhy?=mIfXqYQ_CbqR_&{~vZ~MS+kP+PyjO9o7Ko)#^3riZ^ z1Mfie_!xP-%>#crs)r)Syv+mN)ZGKXU!|{_-Gica#_XzXfv!ER-u6rmg^2Ef&L`g!T?xwX=pHzFiA;eL`lo&1 z10lt4{;_NyoP0X>T7bim-Gg|T$0rC}Vtj2Q^~Xb5G3uI@vtPTkrl0;KQTjo7FP-&{KKpt*)iu}YD$t|N zPIdgVtID?WZB(yVzqe1-`EjFq$B$z8R!8=!O)}9#xN#v0N%g6BJTq9_yMFrA`HT^x zXD4T$+Q+|XC!hIgRQC)clzX2(b%|F?q)`GCjp`L!VR6VyHmXaUPDaXS{-;e13|;fw zY*NoSgD|$3MP-wE#uc_LobjVeE$hU)BeF-mB0=kh2Sty%=b1vwwe+_cJ^#G?yJreh zDvjsgDXg-hBMWM@iQg$~%W#a{dihLYN4!7!15&e!F>H^0FzD>JcMRKi?(QY^mUj-T zeN!xW!sq88R-c26NSNmwt4`By}y;tZw_H|nU>c4%wR{XKZ*iBXRv(sjjvCyKWDJ4OaG;R zX0S89d*vqoHiONdT7@6^%wY4;ApbJkX9m0CQSRsHj>#Epk4I1JjFgTUY{nZ98Gj|ct- zT8N2Zn)#G((2^L#Hw+W!YTwKZa$jPY^5q`n1olr16Px75OPGf*hN;IUjD+LGFzN5B zT$JcLC4@1ii9%5TVto!A1CL^U z0E!1lohsu03n(tJj-1)kK7e99AM{q@mPp7rk+}xQ|L#Zft2K0mX5uk(NM~;=F)j=L}@i1-@wjisjPh z=zvKwPb~q(S%lvg37_Rf6uaYyh!DW-7dzbly!^YzTBJ5+;XlYiI=*CQ`zKk5Cj_}X z6dpwuTA38$u-bl-g%swu*s3pCXv8t?sHU_JS!l(6Kn?fVKgmKmj%0K5Cs|0x?pVm} zJ6UMBr!&iX*+N=92_%2HLi!XU0&=MJCs$|y4Z)_mf4D+A6*3Rq`#V?2>qt#Ci9!Zf z$h#Z`3MjtqLl)|>j;eY2kcF1N4}z8BNL$%tAz?T8d$h#*dC5X`$w zADn}NE40tauZc7wQ%-Y*iZf{>+a45jKU|@B3gFJ>%M^0EK%#V5nZ8UR*B%TYnmnG9 zDO4RwP^H+q8qE}%=VZiVi148bJtsoXezZkis!)loaPuN18m0=>2t5xWX)E71Rj6bh zgCa|vFI6aR7DO8%WWQ9QI%CTsC!tc@RH2o1&pj$!KS>pG=m8wg26(ALmO)WN;t}=r zr3$?%?Sn(ef2cz6z>9_#$q8zIUjE%6fYw&)<--_u4A4Ypq})+5hIQ8O#oFsn#xOA$ zE_6E|%J9te75|t1p$z*)7FCb(nhDPEh!>AY^!~;fj{So`Y;PaRaEX0*%Y_|0LJ-6) z&nOPK^TQZ^&(;uB;0I&)CJKV!Dz*Q{7#=riMM`mhV+?Cs$u*H1|HBy8-?QhzrJoOD zSlj=W{}VaP`e6+FbGXJHDI_IhxW)R7a)SN_W7s$Epuyj_Ms(j8!&=9Zcl=}w>vJ^1 zcp1aKqp*=12q3+bVVCy zJNocEiP+%4f-~&hgP+P-5>5%uaLE`s49ri`u)oiJzY{O3`XLR+ZXo&)^MW%R2@A>E zgGyv_hI`x}lZIJ+DZ{S+8YV=RgbT`W%aRLQrceziJhm0-Xs40-jWnFik2PSle@Me4 z(%}1{Ojm<699$a;wgRKlX!(?n^2p3} zL>c!-d8EbX2nIJ_<&pS%Fkij2kMc--%bSsu`Ra~1(_-J`^WBy6cZl5??}GaN(5Bs0?f zy!^XSgxhtIZhzN7ql#xL^&c6uA$uJ`SiZ}k@p#rfc!Z+wGH5)`8}TL3lQL)}V#Su0 z>Q5cCAt@Y!=0 zXkrW5GgZ*MUXgv#a4=NRR<55a!^o6Da~8eOD!s3yzB*{yYGYXdb(fD0TK@e#O=?+M z2Fdp@?7>Li6WOD3ih&rx02^ z`em_{j}V%#4JHz3<&}>RT91&4fjfYw5JGddHa)FYfUyu-gkGT0q6&u&TI?uVWfg6L zR|l=;HFHxnWhvG{i{uV{uCgSx8aik*cI^FGqt1^G+KL@sA*Qrf2W_{=cHoVbj|`fZ zn+#7xGYc8C@~sqlMbOM3KnzCa-l=xB|G4_QF=R`b9JgT0wJH%2#ZM}!82rb)5Z8u!d9g59TBtJ{pC zGpGc4>s(-9s3>?u4jMbT1%Xt=|TRh*Xr{l zd*LAqtI%uJ(?M4BZUl)hhF+_d@sVk!Xj`t;T~FQkOEL=IwZ7|Hkiu82b;dd)<+)$6R#)zPdQmeg#aiF>wqF;C zdxnP(vy{}-s|>Byh*7%D*ZQW`nhys>CJtMuwdyxXf_)&Ll47k90r3VnbDfV^>yF3> z?QeX0gaS4vaaXIg zmfW#e2hpYowN_W*L)~W*tPpGUo9%)d^w~aQt&tdUn*huYt=5tC)!l=1xl^h&r=ItH zt0)agRx?lju>Pyz1sMYH8~dX}Uld?$t+eY;9eRT1eQag4j}Cpt*n4vvndyWMeHNxz z5Y+n7q2KZ3j@?^d9r`zv+=_ngj}Coi#Bg9F-|*3)=LWh-6$w=8&_{7W+x3w#a0=0v z*gv<-5Rf>O=zHGJTY}d=l;{Zz_b8Y0Q;D9vkB0rTUM2bn08n|h9k)Y?ULV6(D{8L2 zO7z-Qn`*uSZ2X}_KhRgNs1*EEq8|XiwnSlGC3-Ex*j;ogQ;6Ol!>H-T?B{%h=y$B2 z=4MR_(Q6sdD!M%%9r_mQ&9kMDq4%TY&!;bm(4qG;)2AcU@X?`fu?{pC=zHqW*ZB7L zqJF-~(C2TR_{+DC41JGh!!wggv}Ndhr);ZFob}4kyPO1(V{6V-q0gu}p(plKp^wQG z*wK6N2y3B2AMxuxs0tF}RiXDoTO8>n&D2z(|CS-re+m(Lw{dl2HBsOUNRn^4)zlxd3VoDt?Bjv6OsddlB89i`ctz-2wgYJHOWYzv=smY3B&y5t%FXY; ztp9G{p<^Y;>Fd3-6?hKenCZX|?;VW}?*R>Wuh)Br7T4OUeSdiGsDswzah={fB?9@R zMX-N*?>IN5lm7AE$rQIQS3%*uv*LYmy^GKj);lFKbp8)DcEWn6#x{ZQD?{>c);nyg z<$m64z0+cQ!pK@5=ba1~5KqA4es|vCP#h%BXFBinlM&!19xVn%G(nvygMYy*;`}t< z8F*I?%BZIP7;kS3PuGyP82^zvH`%3+!HU?VJ6MpPJ+asCUzT$6Ne(6n{qA?-=7f z1b-Nsk%awD#3~F+YH9ta{f9WDpzb-M{WTHLh;F;dlGk?|3A{hJTD2vCYode_8+C=tEgup(y@v z9HcQz6?^K(aWEU^H*ce5W5>Y&1wyXxz|B9FgYMJW7I@Xya?nrW{<6Ug^5ZzTvL3=! zwtXB2-z)|O()>6MW*-2}y7Ms{+<6yaUQvD;4h~5(KZ{vW8V>99;2q$gNNRI1a|MY`X@^Mt*}U9zE^A_1X=36GNDq?7y@dG?HFH{}!SO zQ(-sgzaP{Ib9}QKta;hgC0c3N4LWtY86NDNr@nTBo=I-HP>+d|_8W9K-Ry)%m>k;; z`tBez>k__5yFmwiQmsCa)P4;I6Knybz0KEH&{yss)_*tb$hrb%(rd9S+!#VJyYeVr zi)ANn{Hur7_-nB|BcW4n+a*w0ckAq`6EPMU_rmn5`IxMq{ zN+baI{u(UnlACn$Nx{}@u&mbUeP!I067EZbWq%I9Scsjkzp?@YDeRKlQTi+ISjI!1 zNS*%53U>&G-rf5Dwss~tk|fC$-PbAN2s#g2-hgN54MB9Rd40UrpotpZt~e{YUJbkHPZia-awFkHd1U@9OE` z+>gWZZl7O^lks02mbp8C_h_&^hvk)b69?pVe>g1rchQwT0z{?5a)$TKz=8hy$71;t z_SY1GEiINaA%xv9uvL8)%kz^c;vBL+9?Nc@!We;W`@>|}jT>chRT`SlWVz;v*vLft z$7K0aT|#_BR>mgFAIwh@c+*PR9lu|!e{bZG{}$8^yeOO7>VGEEae)7q9W8x9mrvs6 z0%^q7wnQ1`ItjADy`qkE4{$u?MbM^6X^_Mz!a$bmobiPbqcSJ3qWv}O5NDMCA!tQf za0(?bk}rJ|jm&np#S~FKo^_iZ$fE?+Uk;<|91c~q4^GAy66Jans!;BB&KyA|q9OSe zDOE3Wad5hVITSld)bp}4&!Cx=-mA#ZT}#+=!p04o)(6I7s=k978LMUFAA(Fy9BL6A zSC*{t3uE7vw=wXhW@rZUt~l;5rNBcLg=YGnGjjhj>nfRS!PN6Q>|l6`GVk|ajmkIbE!o6_ivW?EHxtQ8lD2B5&nKo%$4;E7 zZp}Z->$nC}Es9I@51ZGU3{i|^s;k$`L=UW-l3H|t^2>Q4OmgQWVHgXjMr48`$NwOj_I*q-xNO{c(8g-Yxm@( zNjG6kP2be@v$T|g$lR0xz=k3Ms3}AYxe=JhNcvB=YOAY;%^O883gpFkZ&at;r0%2P zvrfL5Q>7MNp?EP+8+LUA#)?+6gVaE^pueclnpg^eAmZd-Zv%}X!JQ@zigQQJ?MYaW zf9s`%VBv|yE{j`yToTfK@Gj>#tJpKqWUq5rOn=eY>!RubR@y^u2eHl`F3XN=M%ONSx`xy;X`Fmb_t4y*mk(wWi8ZOY z`u->t*#1LP)8V_%R1(l4Saz|c%>=8P{1h2^Gs~&#oudB}F7Hp703+$kR2+^-9P)g8?)Na$-;#~*s6Q?m5}A|X!y zBkP}F3urdn+uezwazrN1HjNQE?efEm7zx-Bwt(E`l{mETDgH90iW}mvB-AK2!Ahw% z4CfaICR0<^CEYjg+mLYJmavkTf;txh)((hZsxaKl5BxQ}hqnml)F4?57kVJ;qmGr! zJ+c<*W4o-tE%Vha4T|jPbh+I3;#ncSsu?$62kUZ{kbgTbhpYjG4n;8_a;`_kvY_Tt z6l1V+SFYo|+Ov@C)twvK0%wS_DJs!6PM&puKTBog250#$eqvhC6vQH1IL=`h8&)bt zfvXM<_BU_ZrE3ijBr2eux26jpK#1uA{*}CTz~rDdEO`Y?zh!6xd!oKPJougI-4=kK z^P|zOJaz@=T#49Mift$A$l8GO3C-j*xGs!?UpoQGy5W9wx;Osw>UT#MUT?gDaJJvl z=X7*I3@{!cUf_{RB#IiC%u;^=)9eAf>dQ?S@T-&_Xe_ha9CU!HQCKKQ-AZ)%a+fy} z7& zpFsUC_spRM>0IG0DWvlB%rQN3okie_6cBtul@a*K5(BcCPA5_=e#hrj?;^k}c*QGy zonCh?0W6Yots5zsvvlx2M<^);ua+*q+K0nNN(}v+3=EHC=P;75m5DHLhJ!AMu97zmF9CPtNe#!!^#P;0iufII z&<$ORE}s_AM=v=~&-G3l<9Mt%kJO^eVU+`ksGWM}WZXDD1euA1h z(h6UIH~eSKUMqrcVT-#B+EF4ZH^!#Ivn1H#it4;}nn}e2I=^22?f?UFmVmLUj+${_ zfEnWT%aVH}tS%l)1Gy6KEFk)wTIrr)W5yDJ1olyTWEgIzyecAzX5^CawuQ~k#P7aK z;-)6Sb4wXWH5I&=yOO4XMe!0$u1`tvSNC{m%wszp*As`3S|P8ef=Wqo0E7PG?295r z2X`0C^}Nn1JrA-F$FBt|CDW8C$r^>Pg|>d?r-<3A<3vX&P1&i(BZdNECVX*2od4o7 zJ%!*Pe4Pb=H`5U)-dGNxa}(?dO6dgG=33-LBFSFa*Q z5o{YS$gg7PCJSD;pm=2DT|g6!qz}S2+KawBamFEtcQtLqBPt)tkQ0_75|L;149pD$ z0!2c4COCQY_i%xP3?WC+JIv7;oeoK@3uH-yrv7IAyBjV$ULDE|KYA1?gKeCdNne>2)AI+Teu7 zI-`qnKe*C}WEk@)=vgJ*Q|1ycA4Szd#cJ8bnK-O^%u$RcL3tRFT12c;b_QhZO@eV& z$?S{`?$nqW0%30{iq$suz?O|ra|s!DtmeL8`ZK{VQ9|O!(cU(lMfw_aya4_C zdMG-W$aE!VaYu6O1+R$t7M-v(8P#)6Sy-K?-Ata5(K%~GMaKczSHpZ z(Td##maJ5^xi3{RyQAfLd}cqL4GP_v>&#}zhtL@u%`)YDKef>{8J9fCVPIm=F$JiU zN&B>pAwLTv?PT|#w|5xG{RCvac%tWC1u1@eGV_e7s4v6?)@2<6lIophcr zx*1(9n#g}FQ2VR(?;ZplRBhsxg5&A%Ub0V%{|Pw=^HH2(dPa@L>?^jZSTbw&A1&np zSA=ya<@;0Rbh&D2{V7ZmH4qi3{vO7!^HFA^1_2()-`%S}P%9X(g%u?01$pL~NysUF zbD8j$6vh{*DryM25YUxk-;EFCY)Uw_%ipTl)kn?Ocv+jHA!nSAWr*shGkPJs33xs; zZXmbSr^8#BH_I0JCs55S*%_I7L)?h87z!*o8iEmyR*YTGbk4=zl>4Exjo1z#=@iA* zv1_0U`9UhLTnsDq_EP62z5~VNwjP#_FJRbHQEb#4zmnf~H<(}tGjM&m12eBP)$T%# z%^eqcj}+*9>UUveJoEKu+mWK>%yQ2c1scR5MX?$`u&ms64dl3^m?#i$n{xb2cjsY* z<~k7;_y(2aWIW(q$^dU75!U5U8n58Z^*E7LuQy?rGgG3Ax77QGDJ+3}kv?BbUV+Aq}N+MYX8J&zKn&;=IxKED+siW;=tfBC|&4awuWG$~;a!?Fo3!HI>20gCkj2 zI3hVi!{~gf3Rw6=FZ8)Q@fi|SnZwa5a;y8Y1K`Bn!K*U0dB-cg$?i^A>{|<{>zGDR zU@CZ_`{ZCZbw;45(v`Rvh_>{nptUL20`BHQ62>XeyqU?CVEC-_iZIVrnBt6bn8N2m zLf>@dX>he%jaOD(c357LIL~$F{?{qh)4XI^5VPU778tAhJ|5{DvqFFi_%6J!M;McH zuZjTUB3>60kwy(H-GgktGt+9~W|Hz0W{$7tf*wB24<}v5j{a)>yV0_|JRDB&BccxI zHDPOL5_3i$^|n{4R8*a8gic|RPs$;T>%o2eX7u6X{YYFaxkqI-)5Yl+sZPSH+Eg#} zBWc3=@W&J>RjU{J%@2r3kwS|YF~tv3ebFM%A=VLtH(XKqGxa9RP&9J53u$oxKh($L z@%j|P^Bd=es`c@_&jE_TL8qxBL}Po21jG}`vgqQMDaA`VqW4fffwPT=(BJTt890># zp{(s}lEZ?RDV*+EWbz4};$6Lnd&Ih=W=yN5(umtiRnIf2QAd3S2uHrBJi>{So<1)6 zgw8&ZnyOK{#06*!^nhXXQ3ssNXzxJ9op6VSvdb7aC>@E=4q|g21O12#wTe2VToaRp zmtLRi2^0M7IM(t&hkj7dJ0z+_eU66v+f2;y zuEypo6~WGfbXb`ky|hN_v;&m|MIM$xc8TkEvcVLgqh&(U)In}8J{l9W_M7$ZX6wXf zLBg=3K?YopMr88n2p}`U!~!$*ie#0|MZr}iyKms?y=v9QzhP*d7-2**5%Z2W1^CM? zNe^8jXU5`^Z9#vuc7T7tP_I=1jEaS09D9?%psFyQxACT^EW{hk#Sj4E>ARnaZ2=Ot zU!xRReK=8($fWGKS-%Q>+Ue{SLfinXe#-oSv%3l*EyoY?`B62#fdj#}P&xQzh7b@n zaIadYCh|Ic%kE8dJ?ipChj1_jgV3*9%^=++s<)(7xeEvu=lqlAeB}5;cMSoJ?2<1{ zv2@qa`MKr~lQP_4>@jnGi1IIG0Hk}j9u=J1^@a;o!cVbI1LdxqUC@HNPUQ6TTYtqw z9L015c|`#0oEIDhZHlhI7XP$n5rAk3qXq>wbyQ!EKyB2f2o@2lmrrnr7nwtaG_-!U z1=cLF8=TGd^{EZwMd;mSXdEad`NMvBC#AWYK4z3!Q zWK_oOk-Ce7y&nfgLq9eniYNQ_*KUkAng7zrF#IjFs;JaCGcbufD-Ttm10` zL5|OjN5(=&H8S9#L1HuZP&^gfLgF3*j)+IrUf&?Dl^lX~q(YK%0WMpBFV@i$bZ#td zt4o;kdRlWc{66u!2tIrd_^O?GKpZo)wONmoInhv{XCv7fN7p&QT(1`f_5{1c?~0Ek zo{)n3sBIWe0c4T=K$pB^(ZtsM+31Hp{6ZwD6z<$lY?bn8Czm@YX$;BxPkStB2Dp{W z4J;AHeFIWyOGh-&bBu2p{q-6sMh>5co7ZQ1oyaz4MnmQ>uhS6cq()Y-@ya&;pR;Zf zYpa4=#s8yyy-vf0KqYcrvCqen$JS!t!ZB2CF_D#+v7A{eCV^jnl}5aSLs=41mJhxQ zN|pn1_V{~Rw&*)QQI>pp(r?zd|HlNzIr<$5mTT|P% zZEK3BwtM@&_xskmf9|jBeNK{{Svztr@+_~H%< zCsLUvbNu};K<2Xqy<#8sXHWby^KSE*;$J?3^La|6jtajSA-mLJezUF*Wt6@Z$K(45 z3ZpK_GT%Ui+0ITcxkdY(5!HZ>DXW`e#@u3VD_(@(Ath$$#y?PUNgTuf#7xcetd5qn zkX&7w{lG-B#mf>X$lFp=`P`RAkNcsme;nV8wKmL!2lLHaGW&d~OBWodUg1z99J}Ez z;3T|$qlN8Oa@Aic5>{CCD^%^Ve8@MJNa_9LsgATJeoYAaF4dqHtbxCX)+2SvB!{9% zX16);dLL(0;Ro1&tXPvv#c(IhYj45NX2HC;ZE2#9La>>L@r6z!ku#(nF!0ft$|&ZZ zbadIDd(k~gCZ&s7iGPPGy5;z~3zqT}F7qrA__meg9$Y>l|7^zVZW$^9(#O^b`Sz>! z1>5>S4;o4i9eNUFX~<0Q@QOZ>VzneJ(D3$@alyujwAUI669t(!!thQomT>*fgMSxn z?53I@Ny?2*6*}1^B9p6&*i-8i$1kB zB35;;H{U7PqG+KcwG#z+%uTxEvsDtIgAlTBIjFVyLn=W2hai1+YX?X@dp4QreyJU` zyDx%?u0v8?sS|ey(%-a#+~n=aO`Zypy<=(zJ9$piUUZesAWy!8=z&`PxR!XBWOcxQ zzKCEBqMA)=Klg+5tH1DVQhUN|k)73Uwesa;N~R3u)16A!l~C-<=80>3HRlL7Z~3=7 z_e-58VJPKC-qHy5PN`$Qw-yr1{8h~wm(5TT4?=!U8W5ePK;nqNx_C0(ZXqNw3Q%|^n3 zLzv`uFmlr{t(G!2DzYGy{c+PAOD(crIN)-u8TxgvLP01 z@`D?_amc;v>ZIOoc}@S7Q=c;cui~q`Q5eP*Im4fU<3941z7-H_w8o2zu)-M0b6;QO ziR6QHYXXSant`n~Tz>jB>3Vik(HMDf8h(GHB7ihYA9*(r9qRfAYBgR29Mhh!(te?w zfD}L#usbag*O?>jTZUO!O~KegqEW~yf>uZ#4dE+*$Lc`Zhhw)PdC;w7Xv5ClwbA}~ zwvYa>BICp}o4fberS;{DeF>7b8Y|(Mh_Z3BA6I5%(5}Fee=5(O4NP_Aks25v95Xi% zHr)Q4pNtf0MSy@1UMv>7W)7HhosQrWBj7QvG^VmT;j zci(sd&~E!Te{}9`Cee#|SN+DcJ-5p(-9gm-wpns2h&VKH%efkr$O!aiAmip&6A7g& zxTBbs(aA`c0P~Dh%?vAN__mN2>oefS)O>_?Sl9yp`?Coi@-Cyu7R|E69m-Z9ph_ba z-%rZBFSRz&W2r-ZVj$Z=JO1fL!>j45{ODEVcm~$z#mX#)*m20DX$*t&1J~BS&A$GD zO^gu=AZFoS!vg70ytfK5uNUVJ`8OufKkxCdmj-0Amp*zNi(3yO z!G^X{62pwgkT?VHrlcvmJmI3>a>UfbM%h*bf zrUqOOB6RPL=J$AP8xr4J4hj8#W_qg1u-0b1%zwLdNlkrF3mHCGp23J^ zl>_M&+C$Gv9BuGzL;WBM=N1e zom22$?D`V{&V22Ahfv8K5m#Xz6(X412i=k)9;#{wY~);{n8VkN&7>&8^U?R!nZoXlsc@8Y-d~0AK?1Semp>S1P18AV6NjpYoroG?3JYEpTZT^rgnzQvtxNk^^)F`E7 zYtjg(_z51$_6xNPczMLB^3$4-zkp(d#9Dg4iRO{T4PG)sH6PN{L8zDt%7p*kP2I=> zJI7oTgNb&XUv;HqD(crQTykRA(5OV=rb|SzP#RhsE;lEGz=`?diTp89n4wctD^(|qBwMh-9RmJ15*b)y5>DRM1W=# z{x0VSUAF#NMdfsVhlS<8I^sbCD^mgs$S@ZExiSl6JOPWHU;39np%Mh=lA}0!z=A7r zwIJQYz|`LXC#^_5m5nh`-iUvXNlIPEigh~=5yfV`Y2+kw&H3@^wU=);cQwQ=;*u=l zV*jwJZ$jPStV=A}umMgt8pC}KJ8GBCo>iMv$(Bhv+=VZe>Z4&&_awVDKlRN;J561D zEi^^<#6mvjp=VB|#(<(5;r`?HN#gjAsCf7{fo`>hN%w(*kr+o~!`rv83dO12cS*%o z(tl3EoCy}#=HheVDht&+lV*mWRs!*9=k8)m3{w8#C`%Q`)4e`78t|_G8OsCcZhMss z=qRWZx*Hv9%r&4I@W-0{WL~b~bk)i55h0az#pbG%KgV zsFw;WHIgw_V?ovb%6?#fud9xik%nR(TYG5Q13ENywX7rD%)VV;`ZlWT}AKrzDD!p`gBNwSHr09cUxuMVE2OisM!Ge?mqz z@*i`rklLF!$r~Nt?mFP^NLU%4>coq?*?@fXbS@`~+U!u*QMfl4FIC}&E{riM7)9Vm7i5xJ_+CDg^Ou1O1%h{g+^OD;PE+NDNlt%{*u z((RYNzEL!9$cNTAv-D$P0-|QY3izaHPHcpKg80hsn5lGqIDxc0CKV6716-TjtV$ig- zZrR5QwPvzVI-S^mxzPq2^fWCzyAnIa<`CGTeR<`eQ(S^s)x;oB)ybceKpZi_!1cJO zfaylupq1kO6Mv-Bul}R*lKJKbRC+BuSce#C{Rj_1vmQQv5RI*^mTNeY--eX1ggsE{ z_s)@ROOEncLPqrw176s=dLL|xaWNJnNogO6${JU^wbv-B)q_iR977E2$XMu2aa%g~ zb?8uzbSlsY6ZWybMQ7gvR(;>4Q?n*S8lIGWF%==h1M-o-*JITIy!2xam&SwUkuYE~ z61P`fWMHyZR~kF3iZjb^LU>-QDAK}Rlh6ubC;!x)WFqdJa;R1P_dg9P0xpsolz$GC6jbk`7-lt%v0SwPNPG(u5W*iPT{ARS%V4 zgF4;!&Qfc3?_UX&T@gQ&mEcDTb_)wt@g*HpdNkMut`)W1!divvlgjaof&`YhW9GRY z^d-zv)*p~%D*m0+Q9d+dGjz!FsuzXgyAtc}tR4gl9!LY@M)zO9FDnq^}trGRAHfQ$7 z31>8n0b8Ak_XD(htXOBCzM~WHd~wA77p$IgdH_)SNQLv7DolH z^v@4ESHGNC#p~+A!KGuhA$>VMfBk8~XEE}Zd=Hv^)psKtO0lR?LJ%wSPv2f|v7R~} zw!3v^rZe@5m2j-+YX8;tE@?8D)t4X(XzLsS3Osh~=WX@d*k{}=?sG2A51<~Lh`i-Fih{}V)}#n1IHsBYxTj;^n=LtA&m|de^R93Afj;yvM`4f8o&o|#{$4a6 z_rw10*TeqDP`BQ1+XnFf|M%%_{ev8XE`i(bgG?pAks`dSfRI3N*1d1%6HJoorP-9e_kkL<|y6_O1>@Y@AO5CH)t@xvLY9mEOVBjOu@0OWB#(i&~nv5HT~e|36fUM&>|y zS6kz+)xOv&1D)+%olJnvME{XZ%)>=O#pO$a|IUP%{tHBezNi`gE64wXz+htZMbFPq z#301{zi40l{=aDd!4$W*bNMf>IMbI<9RF7+apte_|5fWhIEqFtUxu*z588jHPWC1$ zK$kCrF(`_PfAI%;xDYW&*?uV@{6A3Sf1uQV?5JX4WNK+={=ej!3dUBzFBAMnIdLXB zQJ|HPx~qzjoim-SrJbwu*UDV~mEvou|E#9sYV7hKd;iz+|EtXZ@?ek!+L^mp5V5l` zvax)j!~f4$_Q-7Ll$yVja@ugeR8W#Q3BYV+keH?HljTTYq?5pbQVwCGDlkOr?s_{y z(XxL8umnV927=9Jm6n`#n-1;m?kWlRzskJ7y(&DvRen5n`<)(D-*ta}q~`m-#&&12 z-EDWjbRX%zlq7t<`@i3ecfTGod{X${UEW1>zZ9i>6jV)H30UnTnSajSZ2L|6XOzE{ zmP|V~Cgpr?YWtc0zI=OZL)4p(EhwL3sJW4`ewEO9&wO|<+NPbnHMw@~eq-63^M5}S z0DY!R8=(0r(3}tRy=Yo@Rw{H0*y)*1Pj|n^cE8nkf4m)b?~vqlf4Fxq+?!1MT4lV< zcYg@@KNFtD-U#@8yx99c=X`2!YxpHS?2h_;3i($He0=p!ks=`8T8e&LYufBWmrBQQh>O5rpA{B&MC9DcL! zI<1|KZL9vc?L6J4eeYHKyl@KT-`ug#wIa%9Z|6#gFz<1Tl?lFaFitat9Zt~Ipm4CY2uHYT3 zB&xkzu2Ho^Y*#XBeVaV>&40T_{Zd2PS;uaZT-WH^@+)+3Vr*# zyZ2ffzwbH$=&j={N5=o4W0}x8s*2|F2FH3z$E9U#x#}&@Xw(2lPr`A6XZSJIul_Ff zea_;2ctK!mZTYm@8^QlG_2Nm1oABdVMj-WL)_@x{ywgC>_4lRS_vX>ha_WA+$?e{1 zi{ahugz%M&Yn`z3By_Fg_2Yu*7q&_28`Nu&2Z{44}+aHtN zFXjFZ&&~diG>b+!E)LJy*FM4 zmd@*^(s0kcBxK+BOS`0>a~3bL`8dY#yuE$j{xrHh$FJWN6b#5MzM34f9gmq3`s4Zb zENkAMIN6zK3H+sKe{*aNC~B{$06mVUuw1o${DP@#oLXLP`O`Oa@dD<_@I0s`aY*W> zSCjoXQ-JOL5vOPO(GfEcyLE5k1^v~j>f^(KOK&-Mk$v5q_RX5lO<3mX3GZbf*%>ADYU$^yZw+*{ZV-UGr6 z^0IfTWQHZic}u!9CS3=`3r8c+_3~uAfEt(Qv++sqdg+eSG9{AAPHGsrQVQGOH+f7g5P7RMK!}YF;v-_t-uo1+L?Z8#1{AP%iB_Gl{AJA(@k7t&b=^jz!hGD zH|-Zkxd@>WeIZMW-HE4%%isHK0k6;-5)C*B0`_yybIeLm6bN!4ae0-NIYEPit?5xB zTZ>($b23k5Q)OsUB8Ot%wwNxrM^j>u!_{DW>&Yx`%? z{u^_~QJu)ER{E&;dFiC1?RTDQr_XullONv!NmwPQj2jUi-Sw%1-k^emXgp6;h(RVT z`<#2Wa!Y;rCNA${{nEiEi$F_?Z|$_F*!uFI4V>)|KZm=~0Epu&e?aPT`G8cBn(y1- z)R|h(le2x$PC?6)qWVcIqh~v0_HCHBe$%CLjl}D5t)^gb(SWwtZKcF2_2%=E!}nAf zHcvy_w#wAl#Mi0$Mn*fezPc77%&wNu(}15og9JARsS>1`Rpwu21I-uAHP2?Shp896 z0Zj96_k$HaAyHCR`F}5CM8G5w%ls_LUc7>8zvv}XE zMCe(9&@c>eC$R`GA+fIpNP@6zwRSK2lQ5T_DSpwE5M(G5d}OLA1uosk-uORz`fS>) zNvaVDUq{f&*fp{<-Dxj_GzJ8Wt53Y7i8*G3=Dt}OU9XZjjjol(tV~g}r`b?#8k<{l zQxSF$E;SO~*G)aNP2{oTg2LY9uH}4uxmW}kF7wT`JWsSW@I0#h)!F6qWYQedm?i4c z^|!YS$Dmp&3x;R*UnBk;z>hcph3@N7mQOUTmXW)!SE@cJV^VC&?aHq_v4hDd2)#Ej z%s65q>t2iYHGHz*`(1uZXEgFhP?+0<$uQO-N{Cen#!7{8EFUSA4jkP}Ha*OZ-512( z`lK7v>Rmm0Hw>d?S@@2yo#obzf3A%=08;&$NQA zjDePK@e*C>TV=zjc*95(v^d3>+io1_2s8AH=*7&@2J+AJZkY(v*leMHBI_MSmsIbF zeL4PQ5`LQC0!KW&QJnF(<3FxnHxt*cU)(xRsXxj5>2XuqC9aDerdd>5pV8q7KI*$e zD?6uYbmQhfaQZyb&ziPutECuYXzhI4rLPg2i*5_?3L10TP4R7dQv4UzBSk7T^`cz-#!eh`BCAb5&|d1QXCAxGz=h7WzY|58xl~R2>*@HVI?uqA?<_=wK z!CPlzP%5wa+EODgXAh5y2*rRrOR+v`6xnvc^?pCsGKaB~nE5LWz^5;Ux$ZfSToH1= zS$IW%U_d2gIha}LVG`{hr1Go=Ih6&Em>ApKP)mioaIJaBAsGa|UyG!aEyOQzp!5Q` zHcsg>h=`sg_xtX+behP#b0MXsWI!zxT4(33o;FcMO&P-ZaCfC@SzcmeW6x+w*X1;O zS4Aq-JGzc(OW%nepIY|BHXAS6O)znaw?Jzblk2L)Jn?GxTn0Dav4ERK%dPiP_k*f# zPj<}pS+|~HlPKdiDx8u*O4#>6P}f~n+gRnkltuN^;azi;LqM=(59R)5=0c5Mq)o?# zbjC6Dwf}fb5L~XSsU)&>)i~m@N@PD19_9$k(%~!OYzKcHjUGj{a;z`Pq`8H%_|_Rt z-Tcd9@UEgXhWoEXN>himY*Qm2Aa4U0`!_TApB;9;FR`JY>HpCA!=GMnMeK2E9fRo` zhz|^Oh~S6Of6{-;S1iuPvBy(Hp;XsWp?Dlyr#ov9X5E)mz&tc*3BPX;#;8ILKx1OZ zq5LX&TL64c`rA_O*0S{2tN$nzdSzqrCnzTwMfERBXBDIOc;pI}?VM_` z79=ir*OoFo7h0o*J#{x3p4#z#Do?~-B;UqPk&5<}(R5`^)Wm zBhG6OmClYzK^WCK78u{i9O)jo_Dth(diABH1L<`lq0eB%idatKa7UQ#6LLI<2|a3! zXtsKZwmg&p?(8k8`8?{pObt&)8UjuGeA5OAN=qf9?~BChklHSdVboM{ow511Hu!U5 ztvDRPB=%C3&$7=0g0@|<2dV`7Dh?veQ zJeDRJ{gZ6ZXucDYwIlhz*T#{t4qQVucF!l@LC+EHjRJKKz>bnE zJX!^|@ecWk75i_H{XX(q(HS~IxPCC6)o(n)ea|r7U=&VZ4pKtoNL(&Uo#}Iz=72eb(;eDZz91MnEV5<*TJcQ%PC4K9vYQzng&-l#?Y2V$b@(2%z zp=2d06H_kYVf}CeT_9brMFP!PK8p2Pr2*zQnbx(@hu>ZMH0U^%U015Iv8&Ak`Ob8g ze^){cGrU$+SPwors~$p@e3@x#7qWw1K}Iy!y*$U(4aX<;23lETh8Bv;WI|UXH#hZu zcM84l&g=H2(ZI8rTTxu;vL7kA*6kLf5lMIzB z*p3>WI3A|u@8+GZm}QOttyt0&d>TScv@^Du6FvxcqcHoAL+&5yYbZvk2EP!=R&wMs z3HJ2Bj8yuFzj`Q7{+kFM$GC)K8aQ;aSi90+PQh+sU^Z4o_+d#AJtqY70RF_s7DXE> zq>!Q^lntmc^)6h=z;CrbK>xl^z_>y5BVNyqAm69Er4SYYCbKiEiL#;t5lN^tEb|fS z7ev=N#Vk9Y$Y9Kvk!iI5F}T^frRiY?H@ZoeqfzOc`na)er_v025ya-l1{)?eLY=r6 zUg83m6$cT2BDY#H-M(XJ+9FF*PAPW{`X!kO>S~Ew2SLn@2QaJ$u8x|0&r5Gjr4ler zHK!!%+Ra9S&A!8;_;qr2Lqxc0Wgzfbsu0yPeP?s8VCbm>*5~OF%Ob9eaP_D0XE;L#@Ec5nTU@!H%`%>&z7xG5r|o`xtp2bWjOq#kZ07wE4V)jx zN^yG|3c5un>TiI#DhbOG-%F(;@}1O?fjP%J+HK{=A@HOO=bCri2&Em&TPpDyucXM=;`g>>r;PJe}i#YQB(mA*}6eUkZvV$$iC`mk|YrWvDWw5hpL&vBs2JhPKnvY(UIN+tEG7+G6iA@8blz>I; zCBB-b-(d-G>Tv_(tLHzEi6#D59+tdAaOKzE2G%udEn2e!ir+pCG^EK#($1(R1OPg8 z*y#%dE6QzfGLj>IK<6E)sF>BaN-O?p%x~&bQ6F*hIJ`WF)m>HyqAbo^Y5jZU=;V~G z=NV3juH|rQ9;QE+Zz7s>ceeBnUZlh2_Gx(_uHP92Z@GOL{ga6{Is0`!9J)s;tpi`g z)yM_HXy54qZ0Vyi8rrj6wSW53_Jx#F<#d$Blb>h_{eI+%>a;3XO}Yf!pyO)z2Q}bMiwew$ljJ zK6gV32!Akr@pmQl_dLhU_)d^xr?P)@=kH!Kv}joZMm*@A&z_KUkpJSMB0LY-4(B^Y zyb#-Rh_=mlN-HV?um&XnthSOp?YQs>T(G|yCaeq`C!*nj;Vriq!F%GqNdWzgTNlBU zSf0zVE4Brfx*=a`%~u4p%HW)ZzZyXh4!DEsRgrmh;i{VxbE%UWcv?q<4E3**uG_$q zALZ9lDpPikq*iJevvCt_g!^~WN}&KvnX2r$^1l7+&W~~udjGWu-el4?#PK$E0u-vd zNH%ns7#~Ejf1UvgU^Uyxuo>AI3UFlVoi%I(ZKEkc+>qjvlfU>6eU{ubzNBjoRhZ zI(ew^W^`%c?{SpAP_Gyl9L0xVwj=2flAQAkRv&00XTL&e^3|r-NXHSKSm^#|GvYA~ z-5e`wC^y<)^+wQDy&|4~&zptQb zVbLaR>mw?k%c5yd_M|XE-VZ`Vex#2Yl7@qz!;>6kj5U}c=zb^cz}9h(Yii_WVgu

eorNKR>w7~;uaOey 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 z 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ĸwtBxND7J%vXfUju%7h0J@ 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�f^N~!?NkPn*V_7n4 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

YoRgl&kk>=I(<9y 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%0ALou`R#ZS*sRSRcvfp*xcV%DZQ&T|znA%o$W4%P> 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

  • nBQv z8PKt|Ln>|dd$MT8Wv%U0(X5z3Fv+~TCK!rRQ%sleSeCTYW%D~ZYhPVK9Lb7F4rE|w zSWyObOJB*MnBQbsF;QXXQWE)^N}|s8T*4W1}oUim2T~;Yi5pc3kD8nG7%EOG$O3+6wYgk zqM5l)tnCbu$q2=e&76ytb}AO1?we{ZDs87b6uJhgE;1R0nXx?rX1b@AaW#l0`g@wF zvGoIHYHn*^(O^12Q$(4rv!+O9{$FcfMP_@h8M+y%wzSh75F8W}3`UDC3QX?m&=qu@ zbu2v_Lv=8o)K$UsX|1$iLny!Ks$wSAChfRR)>WP9P+c|5(pA>Jn!xnFuJQH5N|~jb zNMBW<=SbIdCfjw*FiVSA`|1L-Ep(`4$}hSuGak})m9Gm3WVGl8Un|4Gcw9HQy`dWt zpD)YA8#>I5aYebF zEWsn7>jI3;SAy7O^HmH^vtm#=j&vCUepB!EE&G%UA@e z-(Vg%sICA8$A^v!(N5O|FSj{;ia}+k49(4WLxyR=#(=_Pm=4iFX)zqsW{_n=rZ$(X zI2_au0H(1stqA<=D}v5s6R4wd4UVb8$G}H5L{7?zY1ol@nDURFBL#zS%wRmEs3O(p z*bdJ3ie^xI1A_{@uWs=5GbFZe*j_dd6}A-R4Y*8fZmJ+t+Yt|4MJ6LuOoOfgrc3oI z9BgLSnHcq5fN5s+E6aIPQ4)uqK@|stV+!Lx6)%RU+)x#P`m1Z!?V6{Lut$d#s=55x&wwgp-&fJp)#!KNup&hb-`e|Ru?78r%-P?mBmm|4r(7L zlFZ~4q!sfa6a^}jtP5Ow1b(bEEAV>EBDN3GtUzATxhYsb>gT}`cTgWp!O~M128k$A zT2w({cCo2a=)QpxNDeD~Di(qIx+*$TpH9^vpJ`tMAs!-g;NUPj76uYTrFC3Qltn5J zG}!1=4nYtrG@b*D`L)1w%99$*cB=PHjM_BN0D?;P7Yd5gC*w6C*zOIG#>R4 zp#Yc;0D#HSzNW#(Feb-g2uM`NLkVJKXkS&PIsok;uxLBT95y!y7)GDYcnxCLLF25z z1m4$xXGX?_0F?e7im8Zap>U=$TrZw2C z)ISHt;y%FOn9=zv%&&zc(P-=ofqLdcV22!Re>KPwItJVdc8-AYz5BIO1;aw`5z(ELJ)87*e8bj6)uVd#I;U>1{aD}MdgoqYIARWWB02u~rg<%Gj z&l)JEHoB%mC{o@Sv!NpZ4r!Rz5y`&C1b!U zp)q~UKR;1RVQUI&m(9Zv3>rVcC64*(#G*ril|Ua<6tRcU z4uN#q7a>c^2XN`AeuII@;v2wNYzY|WT|<_rO`{pI#?GL@@BOgh%nk!q!rH3>wGT9? zLB5wNiwU9~P6%BW6--1i4G}DcsniG43{Xh<)PSmBYme9x<$I`UYReae`5Ao(A~X8H zyo^31bw7w44uMP&5oPsNW4S&f*ckV2IJaU`aMEY)7(3x&uKxqI-ZbeF+S~FFFP; z;K*J=d9b@3U`(Ext_D4CraGeX3Yb7`TVN8^@xY*MDSc3^Y+c~Q625|qqf)*C#(Z(8 zMg*Yg7}#>QF1U1HYmc8}eQ|sleFhFN9m8N}6$TQE7Xy>1zX}XN6!Lq5fR+p^s>1T1 zjRcpD*}%Yb#?SD;*m)ChAy4;15SeYE3lf4Eloo_a>G_2@MD;5AviOTG@cThv2sF?! zkT8Jm2f})M3|uiYTHuzk-&0uJR>#u?s%vp0$Ku|=n5_p4Af*`rEP8$gh&9#@0T_<4 zJ3d5DA+qQg&;e{eaKF!f51|&eesI}YI~W{{*KmK%<^g5Pe$Qa>PJ|C|NkwTk(3xN& z#5mm}5urXhU%2el|9}}QP`}$WZ6CBdhYpVF(?52wyP4J?XkgDl?x4v%!o7LKpg}|3 zF^2j74t)|(?gLhL^PrdA-*^$1)P@!VvpG5jf!7!)TN(dI(X!mr5JXM!eNpXUDlZ7&Ulk(UUgweq2|ay}Sa#0-gT@cHHi# literal 0 HcmV?d00001 From 9f1906f688d6b160920a9e823d78c4b41d64f880 Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 27 Aug 2026 01:21:10 -0400 Subject: [PATCH 07/30] InnerLayer.SLAYER - BUGFIX - Use the shear magnitude in the layer timescales and widths slayer_parameters took sval_r with its sign in five places that are magnitudes: the parallel diffusivity chi_par_lmfp (twice), the island width Wd, the :lar critical-Delta, and the Alfven time tau_h. On a reverse-shear surface tau_h came out negative, hence a negative Lundquist number, and tauk = lu^(1/3)*tau_h threw a DomainError before any layer quantity was produced. Found on DIII-D 153072_3415, whose q dips to 1.855 off-axis. The layer timescales and widths depend on |dq/dr|, not its sign -- the module's own delta_dr derivation already states the convention as (n|s|). abs(s) == s wherever the shear is positive, so no currently-working surface changes. Co-Authored-By: Claude Opus 5 --- src/InnerLayer/SLAYER/LayerParameters.jl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/InnerLayer/SLAYER/LayerParameters.jl b/src/InnerLayer/SLAYER/LayerParameters.jl index 28976e6d3..638f456f9 100644 --- a/src/InnerLayer/SLAYER/LayerParameters.jl +++ b/src/InnerLayer/SLAYER/LayerParameters.jl @@ -146,11 +146,11 @@ function _solve_dc_tmp(; dc_type::Symbol, dr_val::Real, dgeo_val::Real, Wd = 0.1 converged = false for _ in 1:max_iter - chi_par_lmfp = (2.0 * R0 * vte) / (sqrt(π) * n_tor * sval_r * Wd) + chi_par_lmfp = (2.0 * R0 * vte) / (sqrt(π) * n_tor * abs(sval_r) * Wd) chi_par = (chi_par_smfp * chi_par_lmfp) / (chi_par_smfp + chi_par_lmfp) Wd_new = sqrt(8.0) * (chi_perp / chi_par)^0.25 * - (1.0 / sqrt((rs / R0) * sval_r * n_tor)) + (1.0 / sqrt((rs / R0) * abs(sval_r) * n_tor)) if abs(Wd_new - Wd) / max(abs(Wd), 1e-30) < tol Wd = Wd_new converged = true @@ -160,13 +160,13 @@ function _solve_dc_tmp(; dc_type::Symbol, dr_val::Real, dgeo_val::Real, end converged || error("SLAYERParameters: Wd iteration failed to converge") - chi_par_lmfp = (2.0 * R0 * vte) / (sqrt(π) * n_tor * sval_r * Wd) + chi_par_lmfp = (2.0 * R0 * vte) / (sqrt(π) * n_tor * abs(sval_r) * Wd) chi_par = (chi_par_smfp * chi_par_lmfp) / (chi_par_smfp + chi_par_lmfp) if dc_type === :lar return 0.5 * (-dr_val) * π^1.5 * (chi_par / chi_perp)^0.25 * - sqrt((n_tor * sval_r) / (R0 * rs)) + sqrt((n_tor * abs(sval_r)) / (R0 * rs)) elseif dc_type === :rfitzp return -(sqrt(2.0) * π^1.5 * dr_val) / Wd elseif dc_type === :toroidal @@ -318,8 +318,10 @@ function slayer_parameters(; # Alfven time uses minor-radius shear directly (sval enters the # b_l = (n/m) r_s sval bt / R0 expression and cancels through to - # tau_h = R0 sqrt(mu0 rho) / (n sval bt)). - tau_h = R0 * sqrt(MU_0 * rho) / (n * sval_r * bt) + # tau_h = R0 sqrt(mu0 rho) / (n sval bt)). Magnitude only: the layer timescales and + # widths depend on |dq/dr|, not its sign, and a reverse-shear surface would otherwise + # give tau_h < 0, hence lu < 0 and a DomainError in lu^(1/3) below. + tau_h = R0 * sqrt(MU_0 * rho) / (n * abs(sval_r) * bt) # Resistive diffusion time τ_R = μ₀ r_s² / η (Fitzpatrick 2023), with # the selected η closure — neoclassical by default — setting the # Lundquist number. From 6781b639f5b7c7e9f94c0305ec7c6ffd55ef722c Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 27 Aug 2026 01:21:10 -0400 Subject: [PATCH 08/30] Tearing - BUGFIX - Keep one failed surface from aborting the layer-overlap scan The per-surface guard caught only ArgumentError, so a DomainError from any single surface propagated and killed the whole scan. The scan already builds surfaces one at a time precisely so a degenerate one can be recorded and skipped; this makes that hold for the error type it is most likely to hit -- kinetic profiles that stop short of an extrapolated surface, or a fractional power reached with a negative argument. Co-Authored-By: Claude Opus 5 --- src/Tearing/LayerOverlap.jl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Tearing/LayerOverlap.jl b/src/Tearing/LayerOverlap.jl index 1e67f7e5e..98f03f2d8 100644 --- a/src/Tearing/LayerOverlap.jl +++ b/src/Tearing/LayerOverlap.jl @@ -294,8 +294,12 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; dr_val=0.0, dc_type=:none, theta=theta, resistivity_model=resistivity_model, lnLambda_form=lnLambda_form) catch err - err isa ArgumentError || rethrow() - push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): $(err.msg)") + # Any single-surface failure is recorded and skipped, never fatal. A DomainError is + # the common one: profiles that stop short of the extrapolated surfaces, or a + # negative-shear surface reaching a sqrt/fractional power in the layer parameters. + err isa Union{ArgumentError,DomainError} || rethrow() + msg = err isa ArgumentError ? err.msg : sprint(showerror, err) + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): skipped -- $(first(split(msg, '\n')))") continue end From d4ce058ff4d9706d77f755ed21cb6a3ae6677eb3 Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 27 Aug 2026 01:21:10 -0400 Subject: [PATCH 09/30] Equilibrium - BUGFIX! - Gate the edge q-law on the log-vs-linear test rather than an absolute r2 EDGE_FIT_MIN_R2 = 0.99 was calibrated against the synthetic TokaMaker deck (r2_log 0.9957, 0.9989). Real EFIT/CAKE reconstructions of diverted DIII-D plasmas carry reconstruction noise in the edge q and fit the log law at r2_log = 0.929-0.977, so every one of them was rejected: no surfaces were placed past the equilibrium grid and the layer-overlap scan reported "no overlap" on 8 of 9 real shots -- a silent fail-open on the exact case the criterion exists for. No absolute threshold can do this job: the limited a10 fixed-boundary deck sits at 0.972, inside the diverted band. The r2_log > r2_linear comparison does separate the classes (diverted 0.96 vs 0.75; Solovev 0.760 vs 0.9996) and is unchanged. The floor is lowered to 0.90 rather than removed so a fit describing nothing is still rejected. Carries ! because the gate also controls the auto-grid edge density floor: an equilibrium that was previously rejected now receives it, changing its refined grid. Every shipped deck is unaffected (the DIII-D-like deck passed both thresholds; Solovev and LAR reject on the relative test; a10 rejects on knot count), so no harness case moves -- but a user running a real reconstruction on grid_type = "auto" will see a different grid. Co-Authored-By: Claude Opus 5 --- src/Equilibrium/GridRefinement.jl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Equilibrium/GridRefinement.jl b/src/Equilibrium/GridRefinement.jl index 87aee692c..b5a1accee 100644 --- a/src/Equilibrium/GridRefinement.jl +++ b/src/Equilibrium/GridRefinement.jl @@ -60,11 +60,13 @@ const THETA_STRIDE = 8 # --- shared separatrix edge q-law ------------------------------------------------------------- # Minimum knots in the edge band before a fit is attempted. const EDGE_FIT_MIN_KNOTS = 4 -# The diverging model must explain the edge q this well in absolute terms. Measured over the -# shipped decks: DIII-D-like 0.9957 and 0.9989 (diverted, q -> inf at the separatrix) against -# 0.972 for the a10 fixed-boundary case, 0.9035 for LAR and 0.7600 for Solovev (all limited, -# finite edge q). Rejecting is the safe direction -- it only means no extrapolation. -const EDGE_FIT_MIN_R2 = 0.99 +# Weak absolute floor on the diverging fit. The discrimination is done by the r2_log > r2_linear +# comparison below, not by this number: measured EFIT/CAKE reconstructions of diverted DIII-D +# plasmas fit the log law at r2 = 0.929-0.977 (reconstruction noise in the edge q), which overlaps +# the 0.972 of the limited a10 fixed-boundary deck, so no absolute threshold separates the two +# classes. The relative test does separate them cleanly (diverted 0.96 vs 0.75 linear; Solovev +# 0.760 vs 0.9996 linear). This floor only rejects fits that describe nothing at all. +const EDGE_FIT_MIN_R2 = 0.90 # Least-squares slope and coefficient of determination for y = a + b*x. function _linfit_r2(x::Vector{Float64}, y::Vector{Float64}) From d10d8b4172646b9f58143de7a64afd4c353e6909 Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 27 Aug 2026 01:47:39 -0400 Subject: [PATCH 10/30] Tearing - BUGFIX! - Cut the domain at the last clean surface, not half a layer inside it The scan returned psi[k-1] - w[k-1]/2, which drops the outermost surface the criterion found to be clean. Fitzpatrick (2025) Sect. 5.9 retains the rational surfaces in 0 < psi < 1 - eps_c, and psi[k-1] is 1 - eps_c: the surface itself is the boundary. The branch's own external check, runtests_layer_overlap_fitzpatrick.jl, already reports Psi_of(S[k-1]) and matches the paper's 0.9985 / 0.9952 with it, so the scan and its validation were using different conventions. Measured over ten equilibria (the shipped DIII-D-like deck and nine IDA DIII-D reconstructions), this moves the limit outward by 1.2e-3 to 4.6e-3 in psi, which is consistently one rational surface. The symmetric alternative, psi[k-1] + w[k-1]/2, is not usable: it exceeds psi = 1 on four of the ten, and on those same four it also overshoots surface k, the layer half-widths there being larger than the surface separation. Also refreshes four docstrings left stale by earlier revisions: the psihigh field described a "smaller of the two" rule the code no longer uses, psihigh_dr was undocumented, the psi_cap note described a finite-difference stencil clamp removed with the analytic radial_label derivatives, and the finite-width guard cited the same defunct rule. Co-Authored-By: Claude Opus 5 --- src/Tearing/LayerOverlap.jl | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/Tearing/LayerOverlap.jl b/src/Tearing/LayerOverlap.jl index 98f03f2d8..44cbd7039 100644 --- a/src/Tearing/LayerOverlap.jl +++ b/src/Tearing/LayerOverlap.jl @@ -60,9 +60,11 @@ dimensional error. strong shear near the separatrix forces every layer there into the DR regime - `extrapolated` -- true when the surface was located outside the equilibrium's ψ grid via the edge q-law - - `psihigh_delta_s`, `psihigh_visco` -- domain implied by each width channel, - `nothing` when that channel never overlaps within the scanned range - - `psihigh` -- the recommendation: the smaller of the two, or `nothing` + - `psihigh_delta_s`, `psihigh_visco`, `psihigh_dr` -- domain implied by each width + channel, `nothing` when that channel never overlaps within the scanned range + - `psihigh` -- the recommendation, equal to `psihigh_dr`: the DR width is the criterion + (Sect. 5.6 puts every near-separatrix layer in that regime). The other two channels are + reported for comparison and do not set the domain - `first_overlap` -- index of the first surface that overlaps its inner neighbour, `nothing` when none do - `notes` -- surfaces that were located but could not be scored, and why @@ -151,10 +153,9 @@ same resistivity closure as the SLAYER analysis itself. missing an overlap that lies further out than the cap. Inverse equilibria ignore it: they have a prescribed boundary and the search runs to ψ = 1 on the real q. - Note the accuracy limit here is **not** `psi_cap` but `surface_da_dpsi`, which clamps its - finite-difference stencil to `1 - 1e-4`; surfaces closer than that to the boundary get - geometry evaluated at `1 - 1e-4` rather than at their own ψ (da/dψ = 0.348729 identically - for every ψ beyond it on the DIII-D-like deck). Their widths are therefore approximate + Geometry is evaluated at each surface's own ψ: `radial_label` derivatives are analytic + and valid under extrapolation, so no stencil clamp limits how close to the boundary a + width can be taken - `extrapolate` -- search past `psihigh_safe` on the edge q-law (default `true`) - `theta` -- poloidal angle for the minor-radius chord (default `0.0`) - `mu_i`, `zeff`, `chi_perp`, `chi_tor`, `resistivity_model`, `lnLambda_form` @@ -308,10 +309,9 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): del_s Riccati did not converge") continue end - # Both widths must be finite. A NaN delta_visco would compare false against every - # neighbour in _first_overlap_limit, so the viscous criterion would silently report "no - # overlap" and `recommended` would quietly lose its more conservative half -- biasing the - # domain outward, which is the unsafe direction. + # Both widths must be finite. A NaN width compares false against every neighbour in + # _first_overlap_limit, so that channel would silently report "no overlap" rather than + # showing a gap -- the reported comparison between channels would be quietly wrong. if !isfinite(lw.delta_dr) push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): Eq. (100) width is not finite; " * "surface excluded so the DR criterion cannot fail open") @@ -348,13 +348,17 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; ph_dels, ph_visc, ph_dr, recommended, k_dr, notes) end -# Walk outward and return (recommended psihigh, index of first overlapping surface). -# Overlap at k means surfaces k and k-1 are both contaminated, so the domain is cut -# at the inner edge of k-1. +# Walk outward and return (recommended psilim, index of first overlapping surface). +# Overlap at k puts the inner boundary of the overlap region at surface k-1, and the domain +# limit is that surface's own position -- Fitzpatrick (2025) Sect. 5.9 retains the rational +# surfaces in 0 < psi < 1 - eps_c, and psi[k-1] is 1 - eps_c. Deliberately not psi[k-1] -+ +# w[k-1]/2: subtracting drops the last clean surface the paper keeps, and adding can exceed +# psi = 1 (measured on 4 of 10 real DIII-D reconstructions, where it also overshoots surface +# k itself, the layers there being wider than their separation). function _first_overlap_limit(psi::Vector{Float64}, w::Vector{Float64}) for k in 2:length(psi) if psi[k] - w[k] / 2 < psi[k-1] + w[k-1] / 2 - return (psi[k-1] - w[k-1] / 2, k) + return (psi[k-1], k) end end return (nothing, nothing) From c9569c0ec821a35ed7aab5cabc58e472818b3ebb Mon Sep 17 00:00:00 2001 From: d-burg Date: Thu, 27 Aug 2026 18:47:38 -0400 Subject: [PATCH 11/30] ForceFreeStates - FEATURE - Cap the integration domain at the resistive-layer overlap point Wires the resistive-layer overlap scan into the stability workflow. The scan runs whenever kinetic profiles are readable and its result is always recorded under ForceFreeStates/LayerOverlap/, so a run shows where layer physics would cut the domain whether or not it did. The cap is applied only under the new opt-in ForceFreeStates control psilim_from_layer_overlap (default false). Architecture as agreed on the PR: an upper bound on qlim at the top of sing_lim!, so dmlim / qhigh still select the final surface from inside it and a bound beyond psihigh is inert by construction. Nothing re-forms the equilibrium. Profiles are taken from whichever of [KineticForces] kinetic_file or [SLAYER] profile_file exists on disk -- the shipped DIII-D SLAYER deck carries only the latter, so keying on the NTV path alone would have left the feature dead on the one deck it matters for. The scan is driven at rs_method = :flux rather than the SLAYER default. Eq. (100) is not covariant and is anchored to the toroidal-flux label of the paper's Eq. (30); running it in the midplane label would apply the formula in a coordinate it was not derived in. Verified end to end on the DIII-D-like SLAYER deck. At its shipped psihigh = 0.9995 the overlap point (0.999695) lies outside the domain, so the scan is recorded with applied = 0 and nothing moves. Raising psihigh to 0.99995 makes it bind: qlim 8.536 -> 8.000 at psi 0.999756, dmlim then selects 7.200 from inside it and the q = 8 surface is filtered out. Co-Authored-By: Claude Opus 5 --- src/ForceFreeStates/CoreTypes.jl | 2 + src/GeneralizedPerturbedEquilibrium.jl | 95 ++++++++++++++++++++-- src/HDF5Schema.jl | 27 ++++++ test/runtests_layer_overlap_fitzpatrick.jl | 45 ++++++++++ 4 files changed, 161 insertions(+), 8 deletions(-) diff --git a/src/ForceFreeStates/CoreTypes.jl b/src/ForceFreeStates/CoreTypes.jl index 98d4807e1..cbce9f841 100644 --- a/src/ForceFreeStates/CoreTypes.jl +++ b/src/ForceFreeStates/CoreTypes.jl @@ -135,6 +135,7 @@ gpec.toml. - `numunorms_init::Int` - Initial array size for solution normalization data - `singfac_min::Float64` - Fractional distance from rational q at which ideal jump condition is enforced - `set_psilim_via_dmlim::Bool` - Truncate the integration domain at `(last_rational_q + dmlim) / n` rather than at `qhigh` / `psihigh`. Fortran STRIDE found that truncating ~20 % above the outermost rational (`dmlim = 0.2`) avoids a numerical kink instability in δW that appears when the integration ends too close to or just below a rational surface. **For diverted equilibria where q → ∞ at the separatrix** (e.g. DIII-D geqdsks, the bulk of production use) this costs negligible physical domain because rationals get arbitrarily dense near the LCFS — `set_psilim_via_dmlim = true` is the safe and recommended default. **For limited circular / analytical equilibria with finite q at the edge** (Solovev, LAR scans), rationals are sparse and 20 % above the last rational chops off too much edge, so set `set_psilim_via_dmlim = false` and let `qhigh` / `psihigh` control the truncation. Multi-`n` runs are not supported by this truncation (the "outermost rational + dmlim / n" depends on which `n`); when `set_psilim_via_dmlim = true` with `nn_low != nn_high`, `sing_lim!` warns and falls back to `qhigh` / `psihigh`. Default `true`. + - `psilim_from_layer_overlap::Bool` - Cap the integration domain at the point where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9. Past that point no surface retains a well-separated inner region, so the matched-asymptotic treatment is not defined there. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it, and a bound beyond `psihigh` is inert. The scan needs kinetic profiles and is run whenever they are readable — its result is recorded under `ForceFreeStates/LayerOverlap/` regardless of this flag, so a run always shows whether layer physics would have constrained the domain. Single-`n` only, like `dmlim`. Default `false`. - `dmlim::Float64` - Distance beyond last rational surface (normalised ∈ [0,1) in units of 1/n). Only used when `set_psilim_via_dmlim` is true. Fortran STRIDE convention is 0.2 (truncate 20 % of one rational-surface spacing above the last surface), retained here. - `sing_order::Int` - Order of singular layer (Frobenius) expansion at rational surfaces. Default 6 (Fortran STRIDE convention for Δ' calculations; lower values trade accuracy for speed). - `qhigh::Float64` - Integration terminated at q limit determined by minimum of qhigh and qa from equil @@ -172,6 +173,7 @@ gpec.toml. numunorms_init::Int = 100 singfac_min::Float64 = 1e-4 # Matches Fortran STRIDE; required nonzero for the Riccati path. set_psilim_via_dmlim::Bool = true # Safe default for diverted equilibria (most production use); set false for limited/analytical (LAR, Solovev). Auto-skipped for multi-n. See docstring. + psilim_from_layer_overlap::Bool = false # Cap psilim where adjacent resistive layers overlap. Opt-in; the scan is recorded either way. See docstring. dmlim::Float64 = 0.2 sing_order::Int = 6 qhigh::Float64 = 1e3 diff --git a/src/GeneralizedPerturbedEquilibrium.jl b/src/GeneralizedPerturbedEquilibrium.jl index f2ed4ef65..001f49f46 100755 --- a/src/GeneralizedPerturbedEquilibrium.jl +++ b/src/GeneralizedPerturbedEquilibrium.jl @@ -241,7 +241,9 @@ function main_from_inputs( ffs_start = time() locstab, ballooning_boundary = run_local_stability(ctrl, equil) - metric, mats = prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, kinetic_profiles; species=kf_species) + metric, mats, layer_overlap = prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, kinetic_profiles; + species=kf_species, + overlap_profile_file=_overlap_profile_path(inputs, kf_ctrl, intr.dir_path)) ffs_result = run_force_free_states(ctrl, equil, mats, intr, metric) if ctrl.write_outputs_to_HDF5 @@ -251,7 +253,8 @@ function main_from_inputs( inputs=inputs, forcing_modes=forcing_modes_snapshot, locstab=locstab, - ballooning_boundary=ballooning_boundary + ballooning_boundary=ballooning_boundary, + layer_overlap=layer_overlap ) @info "Results written to $(ctrl.HDF5_filename)" end @@ -479,8 +482,50 @@ function run_local_stability(ctrl::ForceFreeStatesControl, equil::Equilibrium.Pl return locstab, ballooning_boundary end +# Kinetic profiles for the overlap scan can come from either the NTV path +# (`[KineticForces] kinetic_file`) or the tearing path (`[SLAYER] profile_file`); the shipped +# DIII-D SLAYER deck carries only the latter. Prefer whichever exists on disk. +function _overlap_profile_path(inputs, kf_ctrl::KineticForces.KineticForcesControl, dir_path::AbstractString) + _resolve(f) = isempty(f) ? nothing : (isabspath(f) ? String(f) : joinpath(dir_path, f)) + for cand in (_resolve(kf_ctrl.kinetic_file), + (inputs isa AbstractDict && haskey(inputs, "SLAYER")) ? + _resolve(get(inputs["SLAYER"], "profile_file", "")) : nothing) + cand !== nothing && isfile(cand) && return cand + end + return nothing +end + +# Run the resistive-layer overlap scan for the run's toroidal mode number, or return `nothing` +# when it cannot be run (no kinetic file, multi-n, or the scan itself refuses). Reads the kinetic +# file directly rather than reusing `kinetic_profiles`, which is a `KineticProfileSplines` built +# for the NTV path and carries a different field set than the layer builders take. +function _layer_overlap_scan(path::Union{Nothing,AbstractString}, + intr::ForceFreeStatesInternal, equil::Equilibrium.PlasmaEquilibrium) + (path === nothing || !isfile(path)) && return nothing + if intr.nlow != intr.nhigh + @info "Layer-overlap scan skipped: the overlap point depends on n, and this is a multi-n run (nn_low=$(intr.nlow), nn_high=$(intr.nhigh))." + return nothing + end + try + data = Equilibrium.read_kinetic_file(path) + (data.n_e === nothing || data.T_e === nothing || data.T_i === nothing) && return nothing + npsi = length(data.psi) + omega = data.omega_E === nothing ? zeros(npsi) : collect(Float64, data.omega_E) + profiles = Utilities.KineticProfiles(; psi=collect(Float64, data.psi), + n_e=collect(Float64, data.n_e), T_e=collect(Float64, data.T_e), + T_i=collect(Float64, data.T_i), omega=omega, + omega_e=zeros(npsi), omega_i=zeros(npsi)) + # Eq. (100) is not covariant -- it is anchored to the toroidal-flux label of the paper's + # Eq. (30), so the scan is driven in that label regardless of the SLAYER default. + return Tearing.resistive_layer_overlap(equil, profiles; n_tor=intr.nlow, rs_method=:flux) + catch err + @warn "Layer-overlap scan failed; the integration domain is untouched." exception = err + return nothing + end +end + """ - prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, kinetic_profiles) -> (metric, mats) + prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, kinetic_profiles) -> (metric, mats, overlap) Set up the force-free-states solve on `intr`: integration limits, the surviving singular surfaces and their GGJ coefficients, the poloidal mode range, and the metric plus @@ -492,10 +537,21 @@ function prepare_force_free_states!( equil::Equilibrium.PlasmaEquilibrium, kf_ctrl::KineticForces.KineticForcesControl, kinetic_profiles; - species=nothing + species=nothing, + overlap_profile_file::Union{Nothing,AbstractString}=nothing ) + # Resistive-layer overlap: locate where adjacent rational surfaces' layers run into each + # other, and use it as an upper bound on the integration domain. The scan runs whenever + # kinetic profiles are readable so `ForceFreeStates/LayerOverlap/` always records the point, + # but it only constrains the domain when the user opts in. + overlap = _layer_overlap_scan(overlap_profile_file, intr, equil) + psilim_cap = (ctrl.psilim_from_layer_overlap && overlap !== nothing) ? overlap.psihigh : nothing + if ctrl.psilim_from_layer_overlap && overlap === nothing + @warn "psilim_from_layer_overlap = true but no layer-overlap scan was available; the domain is untouched." + end + # Determine psilim and qlim (where we will integrate to) - sing_lim!(intr, ctrl, equil) + sing_lim!(intr, ctrl, equil; psilim_cap=psilim_cap) # Find all singular surfaces in the equilibrium sing_find!(intr, equil) @@ -594,7 +650,7 @@ function prepare_force_free_states!( end end - return metric, mats + return metric, mats, overlap end """ @@ -776,7 +832,7 @@ function solve(prob::EulerLagrangeProblem, alg::ForceFreeStates.AbstractIntegrat end locstab, ballooning_boundary = run_local_stability(ctrl, equil) - metric, mats = prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, nothing) + metric, mats, _ = prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, nothing) result = run_force_free_states(ctrl, equil, mats, intr, metric) if ctrl.write_outputs_to_HDF5 @@ -1051,7 +1107,8 @@ function write_outputs_to_HDF5( inputs::Union{Nothing,Dict{String,Any}}=nothing, forcing_modes::Union{Nothing,Vector{ForcingTerms.ForcingMode}}=nothing, locstab::Union{FastInterpolations.CubicSeriesInterpolant,Nothing}=nothing, - ballooning_boundary=(psi=Float64[], alpha=Float64[], alpha_critical=Float64[]) + ballooning_boundary=(psi=Float64[], alpha=Float64[], alpha_critical=Float64[]), + layer_overlap=nothing ) ctrl = result.control @@ -1173,6 +1230,28 @@ function write_outputs_to_HDF5( out_h5["LocalStability/alpha"] = ballooning_boundary.alpha out_h5["LocalStability/alpha_critical"] = ballooning_boundary.alpha_critical + # Resistive-layer overlap scan. Written whenever the scan ran, whether or not it + # constrained the domain, so a run always shows where layer physics would have cut. + if layer_overlap !== nothing + lo = layer_overlap + out_h5["ForceFreeStates/LayerOverlap/m"] = lo.m + out_h5["ForceFreeStates/LayerOverlap/n"] = lo.n + out_h5["ForceFreeStates/LayerOverlap/psi"] = lo.psi + out_h5["ForceFreeStates/LayerOverlap/r_s"] = lo.rs + out_h5["ForceFreeStates/LayerOverlap/delta_s_abs"] = lo.delta_s_m + out_h5["ForceFreeStates/LayerOverlap/width_delta_s"] = lo.width_delta_s + out_h5["ForceFreeStates/LayerOverlap/width_visco"] = lo.width_visco + out_h5["ForceFreeStates/LayerOverlap/width_dr"] = lo.width_dr + out_h5["ForceFreeStates/LayerOverlap/extrapolated"] = Int.(lo.extrapolated) + out_h5["ForceFreeStates/LayerOverlap/psilim_overlap"] = + lo.psihigh === nothing ? NaN : lo.psihigh + out_h5["ForceFreeStates/LayerOverlap/first_overlap_index"] = + lo.first_overlap === nothing ? -1 : lo.first_overlap + out_h5["ForceFreeStates/LayerOverlap/applied"] = + Int(ctrl.psilim_from_layer_overlap && lo.psihigh !== nothing && + lo.psihigh < equil.params.psihigh_resolved) + end + # Write integration data: the ψ trace and integrator diagnostics from the raw ODE state, # the ξ profiles from the solution. Either may be absent (Galerkin has no ODE state; # Riccati has no ξ solution), in which case the datasets are written empty. diff --git a/src/HDF5Schema.jl b/src/HDF5Schema.jl index 274f54f14..7944909c5 100644 --- a/src/HDF5Schema.jl +++ b/src/HDF5Schema.jl @@ -134,6 +134,33 @@ const MAIN_H5_ANNOTATIONS = [ (; long_name="Glasser-Greene-Johnson resistive interchange criterion D_R", dims=("psi",), attach=(1 => "LocalStability/psi",)), "LocalStability/ballooning_Delta_prime" => (; long_name="high-n ballooning Δ' (distinct from the tearing Δ')", dims=("psi",), attach=(1 => "LocalStability/psi",)), + # Resistive-layer overlap scan (Fitzpatrick, Nucl. Fusion 2025, Sect. 5.9). Its own surface + # axis: the list includes surfaces extrapolated beyond the integration domain, so it does not + # align with the SingularSurfaces/ axis. + "ForceFreeStates/LayerOverlap/psi" => + (; long_name="rational-surface location scanned for resistive-layer overlap", scale="surface_overlap"), + "ForceFreeStates/LayerOverlap/m" => + (; long_name="poloidal mode number of each scanned surface", dims=("surface_overlap",), attach=(1 => "ForceFreeStates/LayerOverlap/psi",)), + "ForceFreeStates/LayerOverlap/n" => + (; long_name="toroidal mode number of each scanned surface", dims=("surface_overlap",), attach=(1 => "ForceFreeStates/LayerOverlap/psi",)), + "ForceFreeStates/LayerOverlap/r_s" => + (; long_name="minor radius of each scanned surface in the Fitzpatrick flux label", units="m", dims=("surface_overlap",), attach=(1 => "ForceFreeStates/LayerOverlap/psi",)), + "ForceFreeStates/LayerOverlap/delta_s_abs" => + (; long_name="Riccati resistive layer thickness |δ_s|", units="m", dims=("surface_overlap",), attach=(1 => "ForceFreeStates/LayerOverlap/psi",)), + "ForceFreeStates/LayerOverlap/width_delta_s" => + (; long_name="|δ_s| expressed as a normalized-flux width", dims=("surface_overlap",), attach=(1 => "ForceFreeStates/LayerOverlap/psi",)), + "ForceFreeStates/LayerOverlap/width_visco" => + (; long_name="visco-resistive comparison scale as a normalized-flux width", dims=("surface_overlap",), attach=(1 => "ForceFreeStates/LayerOverlap/psi",)), + "ForceFreeStates/LayerOverlap/width_dr" => + (; long_name="diffusive-resistive layer width (Fitzpatrick 2025 Eq. 100) as a normalized-flux width; the channel the criterion uses", dims=("surface_overlap",), attach=(1 => "ForceFreeStates/LayerOverlap/psi",)), + "ForceFreeStates/LayerOverlap/extrapolated" => + (; long_name="1 where the surface was located beyond the equilibrium grid via the separatrix edge q-law", dims=("surface_overlap",), attach=(1 => "ForceFreeStates/LayerOverlap/psi",)), + "ForceFreeStates/LayerOverlap/psilim_overlap" => + (; long_name="domain limit implied by the first layer overlap, at the last surface with a well-separated inner region (NaN when no overlap was found in range)"), + "ForceFreeStates/LayerOverlap/first_overlap_index" => + (; long_name="index into this group's surface axis of the first surface overlapping its inner neighbour (-1 when none do)"), + "ForceFreeStates/LayerOverlap/applied" => + (; long_name="1 when the overlap limit actually constrained the integration domain; 0 when recorded only"), "LocalStability/ballooning_psi" => (; long_name="normalized poloidal flux ψ_N of the ballooning α boundary scan", scale="psi_ballooning"), "LocalStability/alpha" => diff --git a/test/runtests_layer_overlap_fitzpatrick.jl b/test/runtests_layer_overlap_fitzpatrick.jl index 21b1efb50..d875d9a2c 100644 --- a/test/runtests_layer_overlap_fitzpatrick.jl +++ b/test/runtests_layer_overlap_fitzpatrick.jl @@ -127,3 +127,48 @@ # The overlap region must move inward with n, which is the paper's reported scaling. @test psi4 < psi1 end + +# Wiring of the overlap cap into the integration domain. The scan itself is checked against the +# paper above; this checks that the cap reaches `sing_lim!` and behaves as an upper bound. +@testset "Layer-overlap cap wiring" begin + using GeneralizedPerturbedEquilibrium.ForceFreeStates: sing_lim!, ForceFreeStatesInternal, + ForceFreeStatesControl + using GeneralizedPerturbedEquilibrium.Equilibrium + using TOML + + dir_path = joinpath(dirname(@__DIR__), "examples", "Solovev_ideal_example") + inputs = TOML.parsefile(joinpath(dir_path, "gpec.toml")) + equil = Equilibrium.setup_equilibrium( + Equilibrium.EquilibriumConfig(inputs["Equilibrium"], dir_path), + Equilibrium.SolovevConfig(inputs["SOL_INPUT"])) + + _fresh() = (i = ForceFreeStatesInternal(); i.nlow = 1; i.nhigh = 1; i) + ctrl = ForceFreeStatesControl(; set_psilim_via_dmlim=false, qhigh=1e3) + + # Baseline: no cap. + base = _fresh() + sing_lim!(base, ctrl, equil) + + # A cap inside the domain must pull qlim down and move psilim inward. + inside = _fresh() + cap = 0.5 * (equil.profiles.xs[1] + base.psilim) + sing_lim!(inside, ctrl, equil; psilim_cap=cap) + @test inside.qlim < base.qlim + @test inside.psilim < base.psilim + @test isapprox(inside.psilim, cap; rtol=1e-6) + + # A cap beyond psihigh is inert by construction -- the bound never widens the domain. + beyond = _fresh() + sing_lim!(beyond, ctrl, equil; psilim_cap=base.psilim + 1e-3) + @test beyond.qlim == base.qlim + @test beyond.psilim == base.psilim + + # nothing is the same as not passing it at all. + none = _fresh() + sing_lim!(none, ctrl, equil; psilim_cap=nothing) + @test none.qlim == base.qlim + @test none.psilim == base.psilim + + # The control flag exists and is opt-in. + @test ForceFreeStatesControl().psilim_from_layer_overlap == false +end From c02a3c43d5b8890877fe00d47e99f3885ccff29a Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 28 Aug 2026 13:23:51 -0400 Subject: [PATCH 12/30] Tearing - BUGFIX - Return an empty scan instead of throwing when no rational surfaces are found The no-surface early return built LayerOverlapScan with 13 arguments for a 15-field struct (width_dr and first_overlap missing), a MethodError the pipeline's catch downgraded to a spurious scan-failure warning. Also make the JET reproduction fail loudly when its alpha fixed point or Psi=1.05 bracket degenerates instead of proceeding on a silent fallback, document the rs_method and max_layer_solves kwargs, and compress the investigation narratives to the reasoning they support. Co-Authored-By: Claude Fable 5 --- src/Tearing/LayerOverlap.jl | 67 +++++++++------------- test/runtests_layer_overlap_fitzpatrick.jl | 25 +++++++- 2 files changed, 49 insertions(+), 43 deletions(-) diff --git a/src/Tearing/LayerOverlap.jl b/src/Tearing/LayerOverlap.jl index 44cbd7039..1aac9e572 100644 --- a/src/Tearing/LayerOverlap.jl +++ b/src/Tearing/LayerOverlap.jl @@ -17,11 +17,9 @@ # Surfaces beyond the equilibrium's own ψ grid are located on the separatrix edge # law q ≈ -A·ln(1-ψ), via the shared `Equilibrium.edge_q_law` helper that also gates # the grid-refinement edge density model -- one statement of the model, one fit, one -# limited-plasma guard. The log form is the only one that survives the -# extrapolation: a cubic in ψ (on q or on ι = 1/q) saturates instead of diverging. Measured on the DIII-D-like deck, extrapolating -# from a grid ending at ψ=0.97 to the true q=8 surface at ψ=0.99976, the edge law -# lands within 5% while a cubic ι undershoots by 18% — enough to miss the surface -# entirely and report no overlap where there is one. +# limited-plasma guard. The log form is the only one that survives the extrapolation: +# a polynomial in ψ (on q or on ι = 1/q) saturates instead of diverging, undershooting +# the outermost surfaces enough to report no overlap where there is one. # # The extrapolated surfaces inform the *choice* of domain only; the final # equilibrium is always re-formed and solved on the accepted domain. @@ -137,27 +135,25 @@ same resistivity closure as the SLAYER analysis itself. - `n_tor` -- toroidal mode number; surfaces are q = m/`n_tor` - - `m_max` -- runaway backstop on the poloidal mode number (default `2000`). This is **not** - the physics limit: the outward search terminates when the edge law places a surface at or - beyond `psi_cap`, i.e. when it is indistinguishable from the separatrix. On a diverted - equilibrium rational surfaces accumulate without bound toward ψ = 1, so some cap is needed, - but it should never be what stops the scan — if it is, the scan says so in `notes`, because - "no overlap found" would otherwise be reported for a non-physical reason + - `m_max` -- runaway backstop on the poloidal mode number (default `2000`), **not** the + physics limit: the outward search should terminate at `psi_cap` (indistinguishable from + the separatrix), and if `m_max` is what stops it instead, the scan says so in `notes` + because "no overlap found" would then rest on a non-physical cutoff + - `max_layer_solves` -- bound on how many surfaces get a Riccati layer solve (default `64`, + innermost kept). The first overlap decides the answer, so surfaces far beyond it only cost + time; when the bound bites, `notes` records that a "no overlap" verdict is inconclusive - `psihigh_safe` -- treat this as the outer edge of trusted equilibrium data (default `equil.profiles.xs[end]`) - `psi_cap` -- never place a surface beyond this ψ on the **direct** path (default - `1 - 1e-9`). Purely numerical: it is not derived from the contour clamp or from any topology - test, and it stops the outward search from crowding indefinitely onto ψ = 1 where surfaces - become indistinguishable. Loosening it is cheap (1e-6 → 1e-9 adds ~5 surfaces on the - DIII-D-like deck at no measurable cost and does not change the answer) and guards against - missing an overlap that lies further out than the cap. Inverse equilibria ignore it: they - have a prescribed boundary and the search runs to ψ = 1 on the real q. - - Geometry is evaluated at each surface's own ψ: `radial_label` derivatives are analytic - and valid under extrapolation, so no stencil clamp limits how close to the boundary a - width can be taken + `1 - 1e-9`, purely numerical: it stops the outward search from crowding indefinitely onto + ψ = 1 where surfaces become indistinguishable). Inverse equilibria ignore it: they have a + prescribed boundary and the search runs to ψ = 1 on the real q. Geometry needs no clamp of + its own -- `radial_label` derivatives are analytic and valid under extrapolation - `extrapolate` -- search past `psihigh_safe` on the edge q-law (default `true`) - `theta` -- poloidal angle for the minor-radius chord (default `0.0`) + - `rs_method` -- radial label the widths and their ψ-conversion Jacobian are taken in + (default `:midplane`; see `radial_label`). The caller wiring this scan into the domain + truncation passes `:flux`, the label Fitzpatrick Eq. (100) is anchored to - `mu_i`, `zeff`, `chi_perp`, `chi_tor`, `resistivity_model`, `lnLambda_form` -- passed through to `build_slayer_inputs` @@ -252,17 +248,14 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; end isempty(found) && return LayerOverlapScan(Int[], Int[], Float64[], Float64[], Float64[], Float64[], - Float64[], Bool[], nothing, nothing, nothing, nothing, + Float64[], Float64[], Bool[], nothing, nothing, nothing, nothing, nothing, push!(notes, "no q = m/$n_tor surfaces found")) ms, ns, psis, rss = Int[], Int[], Float64[], Float64[] dels_m, w_dels, w_visc, w_dr, extraps = Float64[], Float64[], Float64[], Float64[], Bool[] - # Overlap is decided by the first crossing walking outward, so surfaces far beyond it cannot - # change the answer -- but each one costs a Riccati layer solve, and this scan runs whenever - # kinetic profiles are readable, flag or no flag. Bound the work rather than only the m index, - # and say so when the bound bites, since a "no overlap" verdict from a truncated list is not - # conclusive. + # Bound the per-surface Riccati work, and say so when the bound bites: a "no overlap" + # verdict from a truncated list is not conclusive. if length(found) > max_layer_solves push!(notes, "surface list truncated from $(length(found)) to the innermost $max_layer_solves for " * @@ -309,17 +302,14 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): del_s Riccati did not converge") continue end - # Both widths must be finite. A NaN width compares false against every neighbour in - # _first_overlap_limit, so that channel would silently report "no overlap" rather than - # showing a gap -- the reported comparison between channels would be quietly wrong. + # Every width channel must be finite: a NaN width compares false against every + # neighbour in _first_overlap_limit, silently turning that channel into "no overlap". if !isfinite(lw.delta_dr) - push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): Eq. (100) width is not finite; " * - "surface excluded so the DR criterion cannot fail open") + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): Eq. (100) width is not finite; surface excluded") continue end if !isfinite(lw.delta_visco) - push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): viscous width is not finite; " * - "surface excluded so the viscous criterion cannot fail open") + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): viscous width is not finite; surface excluded") continue end @@ -349,12 +339,9 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; end # Walk outward and return (recommended psilim, index of first overlapping surface). -# Overlap at k puts the inner boundary of the overlap region at surface k-1, and the domain -# limit is that surface's own position -- Fitzpatrick (2025) Sect. 5.9 retains the rational -# surfaces in 0 < psi < 1 - eps_c, and psi[k-1] is 1 - eps_c. Deliberately not psi[k-1] -+ -# w[k-1]/2: subtracting drops the last clean surface the paper keeps, and adding can exceed -# psi = 1 (measured on 4 of 10 real DIII-D reconstructions, where it also overshoots surface -# k itself, the layers there being wider than their separation). +# Overlap at k contaminates both k and k-1, so the limit is surface k-1's own position +# (Fitzpatrick 2025 Sect. 5.9 retains 0 < psi < 1 - eps_c with psi[k-1] as 1 - eps_c); +# offsetting by ±w[k-1]/2 either drops the last clean surface or can exceed psi = 1. function _first_overlap_limit(psi::Vector{Float64}, w::Vector{Float64}) for k in 2:length(psi) if psi[k] - w[k] / 2 < psi[k-1] + w[k-1] / 2 diff --git a/test/runtests_layer_overlap_fitzpatrick.jl b/test/runtests_layer_overlap_fitzpatrick.jl index d875d9a2c..aaf0ea198 100644 --- a/test/runtests_layer_overlap_fitzpatrick.jl +++ b/test/runtests_layer_overlap_fitzpatrick.jl @@ -26,6 +26,7 @@ psi_raw(r, am, ap) = quadgk(x -> x / q_any(x, am, ap), 0.0, r; rtol=1e-11)[1] am, ap = 1.0, 1.0 + fp_converged = false for _ in 1:200 psi_sep = psi_raw(1.0 - 1e-12, am, ap) r95 = find_zero(r -> psi_raw(r, am, ap) / psi_sep - 0.95, (0.5, 1 - 1e-9), Bisection()) @@ -34,13 +35,15 @@ while hi < 1.40 && f105(hi) < 0 # q_out turns negative past r = sqrt(2) hi += 0.005 end - r105 = hi >= 1.40 ? 1.20 : find_zero(f105, (1 + 1e-9, hi), Bisection()) + hi < 1.40 || error("Fitzpatrick JET model: failed to bracket the Psi = 1.05 surface before q_out degenerates") + r105 = find_zero(f105, (1 + 1e-9, hi), Bisection()) am_new = -(Q95 - Q0) / log(1 - r95^2) ap_new = -Q105 / log(r105^2 - 1) - converged = abs(am_new - am) < 1e-12 && abs(ap_new - ap) < 1e-12 + fp_converged = abs(am_new - am) < 1e-12 && abs(ap_new - ap) < 1e-12 am, ap = am_new, ap_new - converged && break + fp_converged && break end + fp_converged || error("Fitzpatrick JET model: the alpha-/alpha+ fixed point did not converge in 200 iterations") psi_sep = psi_raw(1.0 - 1e-12, am, ap) q_of(r) = q_any(r, am, ap) Psi_of(r) = r < 1 ? psi_raw(r, am, ap) / psi_sep : @@ -171,4 +174,20 @@ end # The control flag exists and is opt-in. @test ForceFreeStatesControl().psilim_from_layer_overlap == false + + # The no-surfaces path must return an empty scan with a note, not throw (m_max=0 with + # extrapolation off forces it deterministically). + @testset "resistive_layer_overlap: empty surface list" begin + using GeneralizedPerturbedEquilibrium: Tearing, Utilities + npsi = 8 + psi_grid = collect(range(0.0, 1.0; length=npsi)) + profs = Utilities.KineticProfiles(; psi=psi_grid, + n_e=fill(1.0e19, npsi), T_e=fill(500.0, npsi), T_i=fill(500.0, npsi), + omega=zeros(npsi), omega_e=zeros(npsi), omega_i=zeros(npsi)) + scan = Tearing.resistive_layer_overlap(equil, profs; n_tor=1, m_max=0, extrapolate=false) + @test scan isa Tearing.LayerOverlapScan + @test isempty(scan.psi) + @test scan.psihigh === nothing && scan.first_overlap === nothing + @test any(contains("no q ="), scan.notes) + end end From 6a75d0f50792bac9991a639c9fc73413049c9bd5 Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 28 Aug 2026 13:23:51 -0400 Subject: [PATCH 13/30] ForceFreeStates - MINOR - Clarify the overlap-cap bookkeeping and scan-failure diagnostics The applied flag records that the bound entered sing_lim! as an active cap, not that it set the final psilim (dmlim/qhigh may truncate deeper) -- say so in the schema. Carry the backtrace in the scan-failure warning so a programming error is not indistinguishable from a physics refusal, and compress the edge-fit floor comment. Co-Authored-By: Claude Fable 5 --- src/Equilibrium/GridRefinement.jl | 9 +++------ src/GeneralizedPerturbedEquilibrium.jl | 4 +++- src/HDF5Schema.jl | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Equilibrium/GridRefinement.jl b/src/Equilibrium/GridRefinement.jl index b5a1accee..a600f12d5 100644 --- a/src/Equilibrium/GridRefinement.jl +++ b/src/Equilibrium/GridRefinement.jl @@ -60,12 +60,9 @@ const THETA_STRIDE = 8 # --- shared separatrix edge q-law ------------------------------------------------------------- # Minimum knots in the edge band before a fit is attempted. const EDGE_FIT_MIN_KNOTS = 4 -# Weak absolute floor on the diverging fit. The discrimination is done by the r2_log > r2_linear -# comparison below, not by this number: measured EFIT/CAKE reconstructions of diverted DIII-D -# plasmas fit the log law at r2 = 0.929-0.977 (reconstruction noise in the edge q), which overlaps -# the 0.972 of the limited a10 fixed-boundary deck, so no absolute threshold separates the two -# classes. The relative test does separate them cleanly (diverted 0.96 vs 0.75 linear; Solovev -# 0.760 vs 0.9996 linear). This floor only rejects fits that describe nothing at all. +# Weak absolute floor on the diverging fit. The discrimination is the relative +# r2_log > r2_linear comparison below (no absolute threshold separates diverted from limited +# edges); this floor only rejects fits that describe nothing at all. const EDGE_FIT_MIN_R2 = 0.90 # Least-squares slope and coefficient of determination for y = a + b*x. diff --git a/src/GeneralizedPerturbedEquilibrium.jl b/src/GeneralizedPerturbedEquilibrium.jl index 001f49f46..6bca04ea0 100755 --- a/src/GeneralizedPerturbedEquilibrium.jl +++ b/src/GeneralizedPerturbedEquilibrium.jl @@ -519,7 +519,7 @@ function _layer_overlap_scan(path::Union{Nothing,AbstractString}, # Eq. (30), so the scan is driven in that label regardless of the SLAYER default. return Tearing.resistive_layer_overlap(equil, profiles; n_tor=intr.nlow, rs_method=:flux) catch err - @warn "Layer-overlap scan failed; the integration domain is untouched." exception = err + @warn "Layer-overlap scan failed; the integration domain is untouched." exception = (err, catch_backtrace()) return nothing end end @@ -1247,6 +1247,8 @@ function write_outputs_to_HDF5( lo.psihigh === nothing ? NaN : lo.psihigh out_h5["ForceFreeStates/LayerOverlap/first_overlap_index"] = lo.first_overlap === nothing ? -1 : lo.first_overlap + # "applied" records that the bound was active going into sing_lim!, not that it set + # the final psilim -- dmlim/qhigh may truncate deeper inside it. out_h5["ForceFreeStates/LayerOverlap/applied"] = Int(ctrl.psilim_from_layer_overlap && lo.psihigh !== nothing && lo.psihigh < equil.params.psihigh_resolved) diff --git a/src/HDF5Schema.jl b/src/HDF5Schema.jl index 7944909c5..b9d9a62b8 100644 --- a/src/HDF5Schema.jl +++ b/src/HDF5Schema.jl @@ -160,7 +160,7 @@ const MAIN_H5_ANNOTATIONS = [ "ForceFreeStates/LayerOverlap/first_overlap_index" => (; long_name="index into this group's surface axis of the first surface overlapping its inner neighbour (-1 when none do)"), "ForceFreeStates/LayerOverlap/applied" => - (; long_name="1 when the overlap limit actually constrained the integration domain; 0 when recorded only"), + (; long_name="1 when the overlap bound was handed to sing_lim! as an active cap on qlim (dmlim/qhigh may still truncate deeper); 0 when recorded only"), "LocalStability/ballooning_psi" => (; long_name="normalized poloidal flux ψ_N of the ballooning α boundary scan", scale="psi_ballooning"), "LocalStability/alpha" => From 14d60b6b9ef0ba4b83c50b711d8f7be7ceaad91c Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 18 Sep 2026 14:26:09 -0400 Subject: [PATCH 14/30] ForceFreeStates - BUGFIX! - Keep the dmlim offset inside qhigh and the layer-overlap cap sing_lim! moved qlim to (last rational + dmlim)/n and then stepped back only while it exceeded qmax, so the dmlim offset could push the domain past a user-set qhigh or the resistive-layer overlap cap: qhigh = 4.0 gave qlim = 4.2. Step back against the effective bound min(qmax, qhigh, cap) instead, so a bound on, or less than dmlim/n above, a rational excludes that rational (qhigh = 4.0 and 4.1 both give 3.2). Because the overlap cap lands exactly on a rational surface by construction, the old behaviour also made the capped domain depend on how q(psilim_cap) rounded: a spline value just below the integer excluded the surface, one just above kept it. The bounded step-back gives the same qlim on both sides. Also warn whenever psilim lands past the overlap point, whether or not the cap is enabled, since the matched-asymptotic treatment is undefined there; document the psilim_cap argument and the dmlim bound in the sing_lim! docstring; and record in the psilim_from_layer_overlap docstring why it stays off by default: on the shipped DIII-D-like decks the overlap point (psi ~ 0.9997) lies beyond every deck's psihigh, so the cap is inert there. Adds the first dmlim = true coverage to the cap-wiring tests: qhigh on and just above a rational, and a cap on the exact rational and 1000 ulps either side. 8 of the 12 new assertions fail against the previous step-back. No shipped deck moves: every deck with dmlim on has qhigh = 1e3, and every deck with a finite qhigh has dmlim off. Co-Authored-By: Claude Opus 5 --- src/ForceFreeStates/CoreTypes.jl | 2 +- src/ForceFreeStates/Surfaces/Finding.jl | 30 ++++++++++++---------- src/GeneralizedPerturbedEquilibrium.jl | 10 ++++++++ test/runtests_layer_overlap_fitzpatrick.jl | 30 ++++++++++++++++++++++ 4 files changed, 58 insertions(+), 14 deletions(-) diff --git a/src/ForceFreeStates/CoreTypes.jl b/src/ForceFreeStates/CoreTypes.jl index cbce9f841..d6d549f50 100644 --- a/src/ForceFreeStates/CoreTypes.jl +++ b/src/ForceFreeStates/CoreTypes.jl @@ -135,7 +135,7 @@ gpec.toml. - `numunorms_init::Int` - Initial array size for solution normalization data - `singfac_min::Float64` - Fractional distance from rational q at which ideal jump condition is enforced - `set_psilim_via_dmlim::Bool` - Truncate the integration domain at `(last_rational_q + dmlim) / n` rather than at `qhigh` / `psihigh`. Fortran STRIDE found that truncating ~20 % above the outermost rational (`dmlim = 0.2`) avoids a numerical kink instability in δW that appears when the integration ends too close to or just below a rational surface. **For diverted equilibria where q → ∞ at the separatrix** (e.g. DIII-D geqdsks, the bulk of production use) this costs negligible physical domain because rationals get arbitrarily dense near the LCFS — `set_psilim_via_dmlim = true` is the safe and recommended default. **For limited circular / analytical equilibria with finite q at the edge** (Solovev, LAR scans), rationals are sparse and 20 % above the last rational chops off too much edge, so set `set_psilim_via_dmlim = false` and let `qhigh` / `psihigh` control the truncation. Multi-`n` runs are not supported by this truncation (the "outermost rational + dmlim / n" depends on which `n`); when `set_psilim_via_dmlim = true` with `nn_low != nn_high`, `sing_lim!` warns and falls back to `qhigh` / `psihigh`. Default `true`. - - `psilim_from_layer_overlap::Bool` - Cap the integration domain at the point where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9. Past that point no surface retains a well-separated inner region, so the matched-asymptotic treatment is not defined there. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it, and a bound beyond `psihigh` is inert. The scan needs kinetic profiles and is run whenever they are readable — its result is recorded under `ForceFreeStates/LayerOverlap/` regardless of this flag, so a run always shows whether layer physics would have constrained the domain. Single-`n` only, like `dmlim`. Default `false`. + - `psilim_from_layer_overlap::Bool` - Cap the integration domain at the point where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9. Past that point no surface retains a well-separated inner region, so the matched-asymptotic treatment is not defined there. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it, and a bound beyond `psihigh` is inert. On the shipped DIII-D-like decks the overlap point sits near `psi = 0.9997`, beyond every deck's `psihigh`, so the cap is inert there and enabling the flag changes nothing; it binds only once `psihigh` is far enough out that `psilim` would otherwise land past the overlap point. The scan needs kinetic profiles and is run whenever they are readable — its result is recorded under `ForceFreeStates/LayerOverlap/` regardless of this flag, so a run always shows whether layer physics would have constrained the domain. Single-`n` only, like `dmlim`. Default `false`. - `dmlim::Float64` - Distance beyond last rational surface (normalised ∈ [0,1) in units of 1/n). Only used when `set_psilim_via_dmlim` is true. Fortran STRIDE convention is 0.2 (truncate 20 % of one rational-surface spacing above the last surface), retained here. - `sing_order::Int` - Order of singular layer (Frobenius) expansion at rational surfaces. Default 6 (Fortran STRIDE convention for Δ' calculations; lower values trade accuracy for speed). - `qhigh::Float64` - Integration terminated at q limit determined by minimum of qhigh and qa from equil diff --git a/src/ForceFreeStates/Surfaces/Finding.jl b/src/ForceFreeStates/Surfaces/Finding.jl index cbe7c805a..10efd94c1 100644 --- a/src/ForceFreeStates/Surfaces/Finding.jl +++ b/src/ForceFreeStates/Surfaces/Finding.jl @@ -93,7 +93,8 @@ function sing_find!(intr::ForceFreeStatesInternal, equil::Equilibrium.PlasmaEqui end """ - sing_lim!(intr::ForceFreeStatesInternal, ctrl::ForceFreeStatesControl, equil::Equilibrium.PlasmaEquilibrium) + sing_lim!(intr::ForceFreeStatesInternal, ctrl::ForceFreeStatesControl, equil::Equilibrium.PlasmaEquilibrium; + psilim_cap=nothing) Compute and set integration ψ, q, and q' limits by handling cases where user truncates before the last singular surface. Performs a similar function to `sing_lim` @@ -101,11 +102,16 @@ in the Fortran code. Main differences include renaming of sas_flag -> set_psilim removing dW edge storage variables since we now store all integration terms in memory, and simplification of the logic. -The target value `qlim` is first determined from user-specified control parameters -(`ctrl.qhigh` or `ctrl.dmlim`), subject to the constraint that it does not exceed -`equil.params.qmax`. If `set_psilim_via_dmlim` is true, `qlim` is adjusted to the largest -rational surface such that `nq + dmlim < qmax`. If `qlim < qmax`, a Newton iteration is -performed to find the corresponding `psilim` to integrate to. +The target `qlim` starts at `min(equil.params.qmax, ctrl.qhigh)`. When `psilim_cap` is given +and lies inside the domain, `qlim` is further capped at `q(psilim_cap)`: the resistive-layer +overlap point of Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9, past which no surface retains a +well-separated inner region. The cap only ever narrows the domain; one beyond `psihigh` is inert. + +If `set_psilim_via_dmlim` is true, `qlim` is then moved to `(last rational + dmlim) / n` and +stepped back by `1/n` until it no longer exceeds the bound above, so `dmlim` never extends the +domain past `qmax`, `qhigh` or the cap. A bound that falls exactly on, or less than `dmlim / n` +above, a rational excludes that rational. If `qlim < qmax`, a Newton iteration finds the +corresponding `psilim` to integrate to. Note that the Newton iteration will be triggered if either `set_psilim_via_dmlim` is true or `ctrl.qhigh < equil.params.qmax`. Otherwise, the equilibrium edge values are used. @@ -120,11 +126,7 @@ function sing_lim!(intr::ForceFreeStatesInternal, ctrl::ForceFreeStatesControl, intr.q1lim = profiles.q_deriv(profiles.xs[end]; hint=Ref(profiles.npts_minus_1)) intr.psilim = equil.params.psihigh_resolved - # Resistive-layer overlap imposes an UPPER BOUND on the domain: past the first pair of - # overlapping layers no surface retains a well-separated inner region, so matched asymptotics - # is not defined out there. Applied as a cap on qlim rather than as psilim directly, so the - # dmlim / qhigh truncation below still selects the final surface from inside the bound. - # Never widens the domain: a cap beyond psihigh is inert by construction. + # Resistive-layer overlap caps qlim (not psilim), so dmlim below still picks a surface inside it. if psilim_cap !== nothing && psilim_cap < intr.psilim q_cap = profiles.q_spline(Float64(psilim_cap)) if q_cap < intr.qlim @@ -149,10 +151,12 @@ function sing_lim!(intr::ForceFreeStatesInternal, ctrl::ForceFreeStatesControl, @info "Setting psilim via dmlim: initial qlim = $(@sprintf("%.3f", intr.qlim)), dmlim = $(@sprintf("%.3f", ctrl.dmlim))" # Normalize dmlim ∈ [0,1) dmlim = mod(ctrl.dmlim, 1.0) + # qlim already holds min(qmax, qhigh, overlap cap); dmlim must never step past any of them. + qlim_bound = intr.qlim intr.qlim = (trunc(Int, intr.nlow * intr.qlim) + dmlim) / intr.nlow - # Reduce qlim if above qmax - while intr.qlim > equil.params.qmax + # Step back one rational at a time until inside the bound, keeping the dmlim offset + while intr.qlim > qlim_bound intr.qlim -= 1.0 / intr.nlow end end diff --git a/src/GeneralizedPerturbedEquilibrium.jl b/src/GeneralizedPerturbedEquilibrium.jl index 6bca04ea0..568228c5c 100755 --- a/src/GeneralizedPerturbedEquilibrium.jl +++ b/src/GeneralizedPerturbedEquilibrium.jl @@ -553,6 +553,16 @@ function prepare_force_free_states!( # Determine psilim and qlim (where we will integrate to) sing_lim!(intr, ctrl, equil; psilim_cap=psilim_cap) + # Fires whether or not the cap was applied: past the overlap point no surface retains a + # well-separated inner region, so a domain reaching beyond it is worth flagging even when + # the user did not opt in to the cap. + if overlap !== nothing && overlap.psihigh !== nothing && intr.psilim > overlap.psihigh + @warn "Integration domain extends past the resistive-layer overlap point: psilim = " * + "$(@sprintf("%.6f", intr.psilim)) > $(@sprintf("%.6f", overlap.psihigh)). Adjacent resistive " * + "layers overlap there, so the matched-asymptotic treatment is not defined. " * + "Set psilim_from_layer_overlap = true to cap the domain at that point." + end + # Find all singular surfaces in the equilibrium sing_find!(intr, equil) diff --git a/test/runtests_layer_overlap_fitzpatrick.jl b/test/runtests_layer_overlap_fitzpatrick.jl index aaf0ea198..321f4a6af 100644 --- a/test/runtests_layer_overlap_fitzpatrick.jl +++ b/test/runtests_layer_overlap_fitzpatrick.jl @@ -172,6 +172,36 @@ end @test none.qlim == base.qlim @test none.psilim == base.psilim + # With dmlim on, the (last rational + dmlim)/n offset must never step past qhigh or the cap. + ctrl_dm = ForceFreeStatesControl(; set_psilim_via_dmlim=true, dmlim=0.2, qhigh=1e3) + dm_base = _fresh() + sing_lim!(dm_base, ctrl_dm, equil) + N = floor(Int, equil.params.qmax - 0.15) + @test N >= 2 + for qh in (Float64(N), N + 0.1) + c = ForceFreeStatesControl(; set_psilim_via_dmlim=true, dmlim=0.2, qhigh=qh) + i = _fresh() + sing_lim!(i, c, equil) + @test i.qlim ≈ N - 1 + 0.2 + @test i.qlim <= qh + end + + # A cap placed exactly on a rational must exclude it on either side of the float knife-edge. + q_of = equil.profiles.q_spline + lo, hi = equil.profiles.xs[1], equil.params.psihigh_resolved + for _ in 1:200 + mid = 0.5 * (lo + hi) + q_of(mid) < N ? (lo = mid) : (hi = mid) + end + psi_N = 0.5 * (lo + hi) + for cap_k in (prevfloat(psi_N, 1000), psi_N, nextfloat(psi_N, 1000)) + i = _fresh() + sing_lim!(i, ctrl_dm, equil; psilim_cap=cap_k) + @test i.qlim ≈ N - 1 + 0.2 + @test i.psilim <= cap_k + end + @test dm_base.qlim > N - 1 + 0.2 + # The control flag exists and is opt-in. @test ForceFreeStatesControl().psilim_from_layer_overlap == false From 0b7ab1beb98e2cff2b8a0a4d3814a8c0673ce4ef Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 18 Sep 2026 14:40:48 -0400 Subject: [PATCH 15/30] Examples/Regression - TEST - Add a truncation deck where the layer-overlap cap binds Every shipped deck leaves psilim_from_layer_overlap off, and at their psihigh the overlap point (psi ~ 0.9997) lies outside the domain anyway, so no deck or harness case exercised the cap end to end. DIIID-like_truncation_example reuses the ideal example's equilibrium and kinetic profiles at psihigh = 0.9999 with the cap on: the cap pulls qlim from 8.35 to 8.0, dmlim steps back to 7.2, and the q=8 surface is excluded. The diiid_truncation_n1 case tracks the ForceFreeStates/LayerOverlap outputs (applied, psilim_overlap, first_overlap_index, width_dr), which no case tracked before, plus the final domain, the retained surfaces and the plasma energy. The deck runs ideal fixed-boundary stability only, in about two minutes. Co-Authored-By: Claude Opus 5 --- .../DIIID-like_truncation_example/gpec.toml | 46 ++++++++ .../cases/diiid_truncation_n1.toml | 111 ++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 examples/DIIID-like_truncation_example/gpec.toml create mode 100644 regression-harness/cases/diiid_truncation_n1.toml diff --git a/examples/DIIID-like_truncation_example/gpec.toml b/examples/DIIID-like_truncation_example/gpec.toml new file mode 100644 index 000000000..65eb7cfad --- /dev/null +++ b/examples/DIIID-like_truncation_example/gpec.toml @@ -0,0 +1,46 @@ +# DIII-D-like H-mode equilibrium — n=1 truncation-only case for the resistive-layer overlap cap. +# Reuses the equilibrium and kinetic profiles of the sibling DIIID-like_ideal_example (referenced +# by relative path; not duplicated). psihigh is pushed past the layer-overlap point (psi ~ 0.9997, +# where adjacent resistive layers first touch), so psilim_from_layer_overlap binds: dmlim then +# truncates just past q=7 instead of q=8. Ideal stability only, with no local stability, vacuum, +# forcing or perturbed equilibrium, so the run is dominated by the domain selection it exercises. + +[Equilibrium] +eq_filename = "../DIIID-like_ideal_example/TkMkr_D3Dlike_Hmode.geqdsk" # Path to equilibrium file +eq_type = "efit" # Type of the input 2D equilibrium file +jac_type = "hamada" # Coordinate system (hamada, pest, boozer, equal_arc, park, custom) +grid_type = "auto" # Radial grid packing type ("auto" = two-pass measured-curvature grid) +psilow = 1e-4 # Lower limit of normalized poloidal flux +psihigh = 0.9999 # Upper limit of normalized poloidal flux (past the psi ~ 0.9997 layer-overlap point, so the cap binds) +mpsi = 0 # Number of radial grid intervals (0 = two-pass auto grid from psi_accuracy) +psi_accuracy = 0.001 # Target relative accuracy of splined profile derivatives for the auto grid +mtheta = 256 # Number of poloidal grid points +newq0 = 0 # Target on-axis safety factor q(0) (0 = use input value, -1 = flip axis extrapolation) +etol = 1e-10 # Error tolerance for equilibrium solver +force_termination = false # Terminate after equilibrium setup (skip stability calculations) + +[ForceFreeStates] +local_stability_flag = false # Perform local stability analysis (Mercier and ballooning) across the ψ profile +vac_flag = false # Compute plasma, vacuum, and total energies for free-boundary modes +force_termination = true # Terminate after force-free states (skip perturbed equilibrium calculations) + +psiedge = 1.0 # Edge dW(ψ) diagnostic scan band [psiedge, psilim]; set ≥ psilim to disable +qlow = 1.02 # Integration initiated at q determined by min(q0, qlow) +qhigh = 1e3 # Integration terminated at q limit determined by min(qa, qhigh) + +nn_low = 1 # Smallest toroidal mode number to include +nn_high = 1 # Largest toroidal mode number to include +delta_mlow = 8 # Expands lower bound of Fourier harmonics +delta_mhigh = 8 # Expands upper bound of Fourier harmonics + +eulerlagrange_tolerance = 1e-10 # Relative tolerance for ODE integration of Euler-Lagrange equations +singfac_min = 1e-4 # Fractional distance from rational q at which ideal jump enforced + +# Integrator selection and domain truncation (see ForceFreeStatesControl docstring for details) +integrator = "forward" # Integration formalism: "forward" (dense ξ, needed for [PerturbedEquilibrium]/kinetic), "riccati" (chunked propagator BVP, unlocks the singular-surface Δ′ matrix), or "galerkin" (RDCON outer-region singular Galerkin Δ′, with the optional RPEC inner-layer match) +set_psilim_via_dmlim = true # Truncate at (last_rational_q + dmlim)/n — TRUE for diverted equilibria (q → ∞ at separatrix) +dmlim = 0.2 # Truncate integration at (last_rational_q + dmlim)/n (used when set_psilim_via_dmlim = true) +psilim_from_layer_overlap = true # Cap psilim where adjacent resistive layers overlap (the scan is recorded either way) + +[KineticForces] +kinetic_file = "../DIIID-like_ideal_example/TkMkr_D3Dlike_Hmode_kinetic.h5" # GPEC HDF5 kinetic schema; here only feeds the layer-overlap scan (force_termination skips NTV) diff --git a/regression-harness/cases/diiid_truncation_n1.toml b/regression-harness/cases/diiid_truncation_n1.toml new file mode 100644 index 000000000..ff708a867 --- /dev/null +++ b/regression-harness/cases/diiid_truncation_n1.toml @@ -0,0 +1,111 @@ +# Regression case: DIII-D-like n=1 truncation-only run with the resistive-layer overlap cap enabled. +# psihigh = 0.9999 puts the overlap point (psi ~ 0.99976) inside the domain, so the cap binds: qlim +# is pulled from 8.35 to 8.0 and dmlim then steps back to 7.2, excluding the q=8 surface. This is the +# only case where psilim_from_layer_overlap changes the domain; every shipped deck leaves it off or +# inert. Ideal fixed-boundary stability only (no vacuum, local stability, forcing or PE). +[case] +name = "diiid_truncation_n1" +description = "DIII-D-like, n=1, psihigh=0.9999 with the resistive-layer overlap cap binding (truncation only)" +example_dir = "examples/DIIID-like_truncation_example" + +# Layer-overlap scan output. applied = 1 means the overlap bound was active going into sing_lim!; +# psilim_overlap is the last clean surface before adjacent Eq. (100) layers first touch. +[quantities.overlap_applied] +h5path = "ForceFreeStates/LayerOverlap/applied" +type = "int_scalar" +extract = "value" +label = "layer-overlap cap applied" +noise_threshold = 0 +order = 10 + +[quantities.psilim_overlap] +h5path = "ForceFreeStates/LayerOverlap/psilim_overlap" +type = "real_scalar" +extract = "value" +label = "layer-overlap psilim" +noise_threshold = 1e-8 +order = 11 + +[quantities.first_overlap_index] +h5path = "ForceFreeStates/LayerOverlap/first_overlap_index" +type = "int_scalar" +extract = "value" +label = "first overlapping surface index" +noise_threshold = 0 +order = 12 + +[quantities.width_dr] +h5path = "ForceFreeStates/LayerOverlap/width_dr" +type = "real_vector" +extract = "all_real" +label = "diffusive-resistive layer widths (Δψ)" +noise_threshold = 1e-8 +order = 13 + +# Final integration domain after the cap and the dmlim offset. +[quantities.qlim] +h5path = "Info/qlim" +type = "real_scalar" +extract = "value" +label = "qlim" +noise_threshold = 1e-12 +order = 20 + +[quantities.psilim] +h5path = "Info/psilim" +type = "real_scalar" +extract = "value" +label = "psilim" +noise_threshold = 1e-10 +order = 21 + +[quantities.mpert] +h5path = "Info/mpert" +type = "int_scalar" +extract = "value" +label = "mpert" +noise_threshold = 0 +order = 22 + +# Singular surfaces retained inside the capped domain (q=8 must be excluded). +[quantities.msing] +h5path = "SingularSurfaces/rational_count" +type = "int_scalar" +extract = "value" +label = "# singular surfaces" +noise_threshold = 0 +order = 30 + +[quantities.sing_q] +h5path = "SingularSurfaces/rational_q" +type = "real_vector" +extract = "all_real" +label = "singular q values" +noise_threshold = 1e-8 +order = 31 + +[quantities.sing_psi] +h5path = "SingularSurfaces/rational_psi" +type = "real_vector" +extract = "all_real" +label = "singular psi locations" +noise_threshold = 1e-8 +order = 32 + +# Plasma energy on the capped domain — the physics the truncation actually moves. +[quantities.ep_real] +h5path = "ForceFreeStates/FreeBoundaryStability/eigenmode_plasma_energies" +type = "complex_vector" +extract = "real_first" +label = "plasma energy Re(ep[1])" +noise_threshold = 1e-10 +order = 40 + +# Runtime +[quantities.runtime] +h5path = "" +type = "runtime" +extract = "value" +label = "Runtime (s)" +noise_threshold = 0.0 +order = 999 From 9f2010cfd744794d9ab93d75c1eb7d5e1b8da604 Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 18 Sep 2026 14:40:48 -0400 Subject: [PATCH 16/30] Equilibrium - TEST - Check the edge q-law classifies Solovev as limited and DIII-D as diverted edge_q_law had no direct tests, and no harness case runs a limited equilibrium on the auto grid, so its limited-plasma branch was argued from measured r^2 values only. Assert that the Solovev auto-grid equilibrium is rejected on both passes, including with the absolute r^2 floor disabled so the log-vs-linear comparison is what rejects it, and that the DIII-D-like equilibrium is accepted with a diverging fit, so the rejection cannot pass vacuously. Co-Authored-By: Claude Opus 5 --- test/runtests_grid_refinement.jl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/runtests_grid_refinement.jl b/test/runtests_grid_refinement.jl index 35c350c90..98698a9bf 100644 --- a/test/runtests_grid_refinement.jl +++ b/test/runtests_grid_refinement.jl @@ -182,5 +182,23 @@ const GridRef = GeneralizedPerturbedEquilibrium.Equilibrium equil2 = GridRef.setup_equilibrium(eq_config, sol_config; override_psi_nodes=grid) @test equil2.profiles.xs == grid @test equil2.rzphi_xs == grid + + # Solovev has finite edge q, so the auto grid must classify it as limited: no separatrix + # log law, on either pass, even with the absolute r² floor disabled (the relative + # log-vs-linear comparison is what rejects it). + @test GridRef.edge_q_law(equil1) === nothing + @test GridRef.edge_q_law(equil2) === nothing + @test GridRef.edge_q_law(equil1; min_r2=-Inf) === nothing + end + + @testset "edge_q_law accepts a diverted edge" begin + using TOML + dir_path = joinpath(dirname(@__DIR__), "examples", "DIIID-like_ideal_example") + inputs = TOML.parsefile(joinpath(dir_path, "gpec.toml")) + equil = GridRef.setup_equilibrium(GridRef.EquilibriumConfig(inputs["Equilibrium"], dir_path), nothing) + fit = GridRef.edge_q_law(equil) + @test fit !== nothing + @test fit.A < 0 + @test fit.r2_log > fit.r2_linear end end From 8cfbbee7efaaa2da02e342fe11fc7edcc7a5c6f0 Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 18 Sep 2026 14:49:27 -0400 Subject: [PATCH 17/30] ForceFreeStates - FEATURE - Cap multi-n runs at the innermost layer-overlap point The overlap scan skipped multi-n runs because the overlap point depends on n. The domain must stop before the first overlap of any n, so run the scan for each n in nn_low:nn_high and let the one with the innermost overlap point bind; scans that find no overlap never bind. On the DIII-D-like equilibrium at psihigh = 0.9999, n=1 overlaps at 0.99975 and n=2 at 0.99935, and nn = 1:2 binds at n=2. The recorded LayerOverlap group is the binding scan, whose n dataset says which. Also stop wrapping the whole scan in a catch-all. resistive_layer_overlap already records expected per-surface failures in its notes and rethrows anything else, and the outer catch downgraded those code errors to a warning. Guard only the kinetic-file read, which is external input to an optional diagnostic. Co-Authored-By: Claude Opus 5 --- src/ForceFreeStates/CoreTypes.jl | 2 +- src/GeneralizedPerturbedEquilibrium.jl | 64 ++++++++++++++-------- test/runtests_layer_overlap_fitzpatrick.jl | 12 ++++ 3 files changed, 54 insertions(+), 24 deletions(-) diff --git a/src/ForceFreeStates/CoreTypes.jl b/src/ForceFreeStates/CoreTypes.jl index d6d549f50..0e344f19a 100644 --- a/src/ForceFreeStates/CoreTypes.jl +++ b/src/ForceFreeStates/CoreTypes.jl @@ -135,7 +135,7 @@ gpec.toml. - `numunorms_init::Int` - Initial array size for solution normalization data - `singfac_min::Float64` - Fractional distance from rational q at which ideal jump condition is enforced - `set_psilim_via_dmlim::Bool` - Truncate the integration domain at `(last_rational_q + dmlim) / n` rather than at `qhigh` / `psihigh`. Fortran STRIDE found that truncating ~20 % above the outermost rational (`dmlim = 0.2`) avoids a numerical kink instability in δW that appears when the integration ends too close to or just below a rational surface. **For diverted equilibria where q → ∞ at the separatrix** (e.g. DIII-D geqdsks, the bulk of production use) this costs negligible physical domain because rationals get arbitrarily dense near the LCFS — `set_psilim_via_dmlim = true` is the safe and recommended default. **For limited circular / analytical equilibria with finite q at the edge** (Solovev, LAR scans), rationals are sparse and 20 % above the last rational chops off too much edge, so set `set_psilim_via_dmlim = false` and let `qhigh` / `psihigh` control the truncation. Multi-`n` runs are not supported by this truncation (the "outermost rational + dmlim / n" depends on which `n`); when `set_psilim_via_dmlim = true` with `nn_low != nn_high`, `sing_lim!` warns and falls back to `qhigh` / `psihigh`. Default `true`. - - `psilim_from_layer_overlap::Bool` - Cap the integration domain at the point where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9. Past that point no surface retains a well-separated inner region, so the matched-asymptotic treatment is not defined there. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it, and a bound beyond `psihigh` is inert. On the shipped DIII-D-like decks the overlap point sits near `psi = 0.9997`, beyond every deck's `psihigh`, so the cap is inert there and enabling the flag changes nothing; it binds only once `psihigh` is far enough out that `psilim` would otherwise land past the overlap point. The scan needs kinetic profiles and is run whenever they are readable — its result is recorded under `ForceFreeStates/LayerOverlap/` regardless of this flag, so a run always shows whether layer physics would have constrained the domain. Single-`n` only, like `dmlim`. Default `false`. + - `psilim_from_layer_overlap::Bool` - Cap the integration domain at the point where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9. Past that point no surface retains a well-separated inner region, so the matched-asymptotic treatment is not defined there. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it, and a bound beyond `psihigh` is inert. On the shipped DIII-D-like decks the overlap point sits near `psi = 0.9997`, beyond every deck's `psihigh`, so the cap is inert there and enabling the flag changes nothing; it binds only once `psihigh` is far enough out that `psilim` would otherwise land past the overlap point. The scan needs kinetic profiles and is run whenever they are readable — its result is recorded under `ForceFreeStates/LayerOverlap/` regardless of this flag, so a run always shows whether layer physics would have constrained the domain. For multi-`n` runs the scan is repeated for each `n` in `nn_low:nn_high` and the innermost overlap point binds. Default `false`. - `dmlim::Float64` - Distance beyond last rational surface (normalised ∈ [0,1) in units of 1/n). Only used when `set_psilim_via_dmlim` is true. Fortran STRIDE convention is 0.2 (truncate 20 % of one rational-surface spacing above the last surface), retained here. - `sing_order::Int` - Order of singular layer (Frobenius) expansion at rational surfaces. Default 6 (Fortran STRIDE convention for Δ' calculations; lower values trade accuracy for speed). - `qhigh::Float64` - Integration terminated at q limit determined by minimum of qhigh and qa from equil diff --git a/src/GeneralizedPerturbedEquilibrium.jl b/src/GeneralizedPerturbedEquilibrium.jl index 568228c5c..6cb595851 100755 --- a/src/GeneralizedPerturbedEquilibrium.jl +++ b/src/GeneralizedPerturbedEquilibrium.jl @@ -495,33 +495,51 @@ function _overlap_profile_path(inputs, kf_ctrl::KineticForces.KineticForcesContr return nothing end -# Run the resistive-layer overlap scan for the run's toroidal mode number, or return `nothing` -# when it cannot be run (no kinetic file, multi-n, or the scan itself refuses). Reads the kinetic -# file directly rather than reusing `kinetic_profiles`, which is a `KineticProfileSplines` built -# for the NTV path and carries a different field set than the layer builders take. -function _layer_overlap_scan(path::Union{Nothing,AbstractString}, - intr::ForceFreeStatesInternal, equil::Equilibrium.PlasmaEquilibrium) - (path === nothing || !isfile(path)) && return nothing - if intr.nlow != intr.nhigh - @info "Layer-overlap scan skipped: the overlap point depends on n, and this is a multi-n run (nn_low=$(intr.nlow), nn_high=$(intr.nhigh))." +# Read the kinetic profiles the layer builders take, or `nothing` with a warning when the file +# cannot be read or lacks n_e/T_e/T_i. Reads the file directly rather than reusing +# `kinetic_profiles`, a `KineticProfileSplines` built for the NTV path with a different field set. +function _overlap_profiles(path::AbstractString) + # Guards only the file read: the scan is an optional diagnostic, so an unreadable input skips + # it rather than aborting the run. The scan call itself is not wrapped, so a code error surfaces. + data = try + Equilibrium.read_kinetic_file(path) + catch err + @warn "Layer-overlap scan skipped: could not read kinetic file $path." exception = err return nothing end - try - data = Equilibrium.read_kinetic_file(path) - (data.n_e === nothing || data.T_e === nothing || data.T_i === nothing) && return nothing - npsi = length(data.psi) - omega = data.omega_E === nothing ? zeros(npsi) : collect(Float64, data.omega_E) - profiles = Utilities.KineticProfiles(; psi=collect(Float64, data.psi), - n_e=collect(Float64, data.n_e), T_e=collect(Float64, data.T_e), - T_i=collect(Float64, data.T_i), omega=omega, - omega_e=zeros(npsi), omega_i=zeros(npsi)) - # Eq. (100) is not covariant -- it is anchored to the toroidal-flux label of the paper's - # Eq. (30), so the scan is driven in that label regardless of the SLAYER default. - return Tearing.resistive_layer_overlap(equil, profiles; n_tor=intr.nlow, rs_method=:flux) - catch err - @warn "Layer-overlap scan failed; the integration domain is untouched." exception = (err, catch_backtrace()) + if data.n_e === nothing || data.T_e === nothing || data.T_i === nothing + @warn "Layer-overlap scan skipped: $path lacks n_e, T_e or T_i." return nothing end + npsi = length(data.psi) + omega = data.omega_E === nothing ? zeros(npsi) : collect(Float64, data.omega_E) + return Utilities.KineticProfiles(; psi=collect(Float64, data.psi), + n_e=collect(Float64, data.n_e), T_e=collect(Float64, data.T_e), + T_i=collect(Float64, data.T_i), omega=omega, + omega_e=zeros(npsi), omega_i=zeros(npsi)) +end + +# The binding scan across toroidal mode numbers: the one with the innermost overlap point, since +# the domain must stop before the first overlap of any n. Scans that find no overlap do not bind; +# when none overlap, the first scan is returned so its surfaces are still recorded. +function _binding_overlap(scans) + overlapping = filter(sc -> sc.psihigh !== nothing, scans) + isempty(overlapping) && return first(scans) + return overlapping[argmin([sc.psihigh for sc in overlapping])] +end + +# Run the resistive-layer overlap scan for each toroidal mode number of the run and return the +# binding one, or `nothing` when there is no readable kinetic file. Physics refusals (a surface +# that cannot be scored, a limited edge) are handled inside the scan and recorded in its `notes`. +function _layer_overlap_scan(path::Union{Nothing,AbstractString}, + intr::ForceFreeStatesInternal, equil::Equilibrium.PlasmaEquilibrium) + (path === nothing || !isfile(path)) && return nothing + profiles = _overlap_profiles(path) + profiles === nothing && return nothing + # Eq. (100) is not covariant -- it is anchored to the toroidal-flux label of the paper's + # Eq. (30), so the scan is driven in that label regardless of the SLAYER default. + scans = [Tearing.resistive_layer_overlap(equil, profiles; n_tor=n, rs_method=:flux) for n in intr.nlow:intr.nhigh] + return _binding_overlap(scans) end """ diff --git a/test/runtests_layer_overlap_fitzpatrick.jl b/test/runtests_layer_overlap_fitzpatrick.jl index 321f4a6af..2e8f90817 100644 --- a/test/runtests_layer_overlap_fitzpatrick.jl +++ b/test/runtests_layer_overlap_fitzpatrick.jl @@ -136,6 +136,7 @@ end @testset "Layer-overlap cap wiring" begin using GeneralizedPerturbedEquilibrium.ForceFreeStates: sing_lim!, ForceFreeStatesInternal, ForceFreeStatesControl + using GeneralizedPerturbedEquilibrium using GeneralizedPerturbedEquilibrium.Equilibrium using TOML @@ -205,6 +206,17 @@ end # The control flag exists and is opt-in. @test ForceFreeStatesControl().psilim_from_layer_overlap == false + # Multi-n: the innermost overlap point binds; scans with no overlap never do. + Scan = GeneralizedPerturbedEquilibrium.Tearing.LayerOverlapScan + mkscan(ph) = Scan(Int[], Int[], Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], Bool[], + nothing, nothing, ph, ph, ph === nothing ? nothing : 1, String[]) + binding = GeneralizedPerturbedEquilibrium._binding_overlap + s1, s2, s_none = mkscan(0.9997), mkscan(0.9952), mkscan(nothing) + @test binding([s1, s2, s_none]) === s2 + @test binding([s_none, s1]) === s1 + @test binding([s_none, mkscan(nothing)]) === s_none + @test binding([s1]) === s1 + # The no-surfaces path must return an empty scan with a note, not throw (m_max=0 with # extrapolation off forces it deterministically). @testset "resistive_layer_overlap: empty surface list" begin From 0d73b13036430f66b8a5539fb993da6400dba7fb Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 18 Sep 2026 14:49:27 -0400 Subject: [PATCH 18/30] Docs - DOCS - Describe integration domain truncation and the layer-overlap cap Add an integration-domain truncation section to the stability page: how qhigh, psihigh and dmlim set psilim (including that dmlim never steps past qhigh or the cap), the resistive-layer overlap criterion and how the scan locates it, why the cap is off by default, the truncation example that exercises it, and the LayerOverlap datasets. Add Fitzpatrick (2025) to the citations page, cross-linked with the new section. Co-Authored-By: Claude Opus 5 --- docs/src/citations.md | 8 +++++++ docs/src/stability.md | 54 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/docs/src/citations.md b/docs/src/citations.md index 1b0df7dbc..ce62125cb 100644 --- a/docs/src/citations.md +++ b/docs/src/citations.md @@ -131,6 +131,14 @@ Combines the toroidal outer-region calculation with the two-fluid slab layer mod --- +> R. Fitzpatrick, "Response of a magnetically diverted tokamak plasma to a resonant magnetic perturbation," +> *Nuclear Fusion* (2025). +> DOI: [10.1088/1741-4326/ae4fdd](https://doi.org/10.1088/1741-4326/ae4fdd) (open access: arXiv:2511.07666) + +Gives the diffusive-resistive layer width (Eq. 100) and, in Sect. 5.9, restricts the response calculation to the region inside the point where adjacent resonant layers first overlap. Both are implemented by the layer-overlap scan in `src/Tearing/LayerOverlap.jl`, which feeds the `psilim_from_layer_overlap` cap described in [Integration domain truncation](@ref). + +--- + ## Kinetic Forces The following papers develop the kinetic-force and neoclassical toroidal viscosity (NTV) theory underpinning GPEC's kinetic analysis path — the energy principle with kinetic effects, the self-consistent coupling of the perturbed equilibrium to NTV, and the PENTRC (Perturbed Equilibrium Neoclassical TRansport Code) formalism. diff --git a/docs/src/stability.md b/docs/src/stability.md index c61ca716e..f901c992e 100644 --- a/docs/src/stability.md +++ b/docs/src/stability.md @@ -253,6 +253,60 @@ The Galerkin integrator computes the same quantity in the same PEST-3 convention publishes it on the same path, so downstream consumers (SLAYER among them) never branch on which formalism ran. +## Integration domain truncation + +The Euler–Lagrange integration runs from the axis out to `psilim`, which is set from the +target safety factor `qlim`: + +- `qlim` starts at `min(qmax, qhigh)`, where `qmax` is q at the equilibrium's `psihigh`. +- With `set_psilim_via_dmlim = true` (the default, for diverted equilibria where q → ∞ at the + separatrix), `qlim` moves to `(last rational + dmlim) / n`, so the integration ends a fixed + fraction of a rational spacing past the last surface instead of close to one. The offset is + then stepped back by `1/n` until it no longer exceeds the bound it started from, so `dmlim` + never extends the domain past `qmax`, `qhigh`, or the layer-overlap cap below. A bound that + falls on a rational, or less than `dmlim / n` above one, therefore excludes it: with + `dmlim = 0.2`, both `qhigh = 4.0` and `qhigh = 4.1` give `qlim = 3.2`. +- With `set_psilim_via_dmlim = false` (limited or analytic equilibria with finite edge q), + `qhigh` and `psihigh` set the domain directly. + +### Resistive-layer overlap + +Near the separatrix the rational surfaces crowd together faster than their resistive layers +narrow, so eventually adjacent layers overlap. Past that point no surface keeps a +well-separated inner region and the matched-asymptotic treatment is not defined; Sect. 5.9 of +Fitzpatrick (2025), listed under [InnerLayer Module](@ref) in the citations, restricts the +response calculation to the region inside it. + +GPEC locates that point with a scan of the rational surfaces of each toroidal mode number in +the run; for multi-`n` runs the innermost overlap point, over all `n`, is the one used. Each surface gets a layer solve from the kinetic profiles, and its +diffusive-resistive width (Fitzpatrick 2025, Eq. 100) is converted to a normalized-flux width +so it can be compared with the spacing between neighbouring surfaces. Surfaces beyond the +equilibrium grid are located by extrapolating the separatrix law `q ∝ −ln(1 − ψ)` fitted to +the outer knots; an equilibrium whose edge q does not follow that law (a limited plasma) is +not extrapolated. The cut is placed at the last surface before two adjacent layers first +touch. + +The scan runs whenever kinetic profiles are available (a `[KineticForces]` `kinetic_file`, +or the `[SLAYER]` `profile_file`). Its result is always written to +`ForceFreeStates/LayerOverlap/`, but it only constrains the domain when +`psilim_from_layer_overlap = true`. It then caps `qlim` before the `dmlim` step, so `dmlim` +still selects the final surface from inside the cap. A cap beyond `psihigh` has no effect. + +The flag is off by default. On the shipped DIII-D-like decks the overlap point sits near +ψ ≈ 0.9997, beyond every deck's `psihigh`, so enabling it would change nothing there; +`examples/DIIID-like_truncation_example` raises `psihigh` to 0.9999 so the cap binds and +excludes the q = 8 surface. Whenever `psilim` lands past the overlap point, with the flag on +or off, GPEC warns. + +| Dataset | Contents | +|---|---| +| `psi`, `m`, `n`, `r_s` | scanned surfaces and their minor radius | +| `delta_s_abs`, `width_delta_s` | Riccati layer thickness, in metres and as a Δψ width | +| `width_visco`, `width_dr` | visco-resistive and diffusive-resistive (Eq. 100) Δψ widths; `width_dr` sets the cut | +| `extrapolated` | 1 where the surface lies beyond the equilibrium grid | +| `psilim_overlap`, `first_overlap_index` | the cut, and the first surface whose layer overlaps its neighbour | +| `applied` | 1 when the cap was passed to the truncation (`dmlim` / `qhigh` may still cut deeper) | + ## Configuration reference All `ForceFreeStates` options are set in the `[ForceFreeStates]` section of `gpec.toml`. From 9123d8369ab9cfe9757163e796f16e742cfc4c86 Mon Sep 17 00:00:00 2001 From: d-burg Date: Fri, 18 Sep 2026 18:28:52 -0400 Subject: [PATCH 19/30] Regression - TEST - Drop the plasma energy from the truncation case The truncation deck runs with vac_flag = false, which leaves every FreeBoundaryStability dataset empty and writes no fixed-boundary energy, so extracting ep_real failed the case. Track the domain selection and the scan's layer widths, which is what the deck exists to exercise. Co-Authored-By: Claude Opus 5 --- regression-harness/cases/diiid_truncation_n1.toml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/regression-harness/cases/diiid_truncation_n1.toml b/regression-harness/cases/diiid_truncation_n1.toml index ff708a867..18d84f815 100644 --- a/regression-harness/cases/diiid_truncation_n1.toml +++ b/regression-harness/cases/diiid_truncation_n1.toml @@ -2,7 +2,8 @@ # psihigh = 0.9999 puts the overlap point (psi ~ 0.99976) inside the domain, so the cap binds: qlim # is pulled from 8.35 to 8.0 and dmlim then steps back to 7.2, excluding the q=8 surface. This is the # only case where psilim_from_layer_overlap changes the domain; every shipped deck leaves it off or -# inert. Ideal fixed-boundary stability only (no vacuum, local stability, forcing or PE). +# inert. Ideal fixed-boundary stability only (no vacuum, local stability, forcing or PE), which +# writes no energies, so the case pins the domain selection and the scan's layer widths. [case] name = "diiid_truncation_n1" description = "DIII-D-like, n=1, psihigh=0.9999 with the resistive-layer overlap cap binding (truncation only)" @@ -92,15 +93,6 @@ label = "singular psi locations" noise_threshold = 1e-8 order = 32 -# Plasma energy on the capped domain — the physics the truncation actually moves. -[quantities.ep_real] -h5path = "ForceFreeStates/FreeBoundaryStability/eigenmode_plasma_energies" -type = "complex_vector" -extract = "real_first" -label = "plasma energy Re(ep[1])" -noise_threshold = 1e-10 -order = 40 - # Runtime [quantities.runtime] h5path = "" From cd6dce306c55e92fd4dc2c9541001b770ff833ff Mon Sep 17 00:00:00 2001 From: d-burg Date: Tue, 22 Sep 2026 01:19:29 -0400 Subject: [PATCH 20/30] Tearing - BUGFIX! - Score the layer-overlap criterion without the Riccati solve The scan called slayer_layer_thickness, which always runs the stiff riccati_del_s solve, and dropped any surface whose delta_s came back non-finite. The criterion uses only delta_dr, which is closed-form algebra, so a Riccati failure deleted a surface the criterion could score: _first_overlap_limit then compared its neighbours across a gap twice the physical one, hiding an overlap and reporting too wide a domain. The m_max and max_layer_solves backstops both flag an inconclusive verdict; this deletion was silent. Split the algebraic scales out as slayer_algebraic_widths and score the criterion from those. delta_s is now best-effort: a failure leaves it NaN with a note and its own channel reports no overlap, while the criterion is untouched. A surface that genuinely cannot be scored on the DR channel is skipped with an explicit "not conclusive" note. Also guards the delta_s solve against throwing, which the per-surface guard did not cover once the scan's outer catch-all was removed. Measured unchanged on the DIII-D-like equilibrium at psihigh = 0.9999: the scan returns psihigh = 0.9997535788 over 14 surfaces with no notes, in 3.9 s per n. Gives LayerOverlapScan a keyword constructor -- the positional form takes 15 arguments in a fixed order, which is how an earlier empty-scan return came to pass 13 -- and uses it for the empty return and in the tests. The JET width check now takes the no-ODE path, with a new assertion that the two agree exactly, so it no longer pays a discarded stiff solve per evaluation. Co-Authored-By: Claude Opus 5 --- src/GeneralizedPerturbedEquilibrium.jl | 1 + src/InnerLayer/SLAYER/LayerThickness.jl | 44 ++++--- src/InnerLayer/SLAYER/SLAYER.jl | 2 +- src/Tearing/LayerOverlap.jl | 130 +++++++++++---------- test/runtests_layer_overlap_fitzpatrick.jl | 20 +++- 5 files changed, 112 insertions(+), 85 deletions(-) diff --git a/src/GeneralizedPerturbedEquilibrium.jl b/src/GeneralizedPerturbedEquilibrium.jl index 6cb595851..1f903b2b0 100755 --- a/src/GeneralizedPerturbedEquilibrium.jl +++ b/src/GeneralizedPerturbedEquilibrium.jl @@ -523,6 +523,7 @@ end # the domain must stop before the first overlap of any n. Scans that find no overlap do not bind; # when none overlap, the first scan is returned so its surfaces are still recorded. function _binding_overlap(scans) + isempty(scans) && return nothing overlapping = filter(sc -> sc.psihigh !== nothing, scans) isempty(overlapping) && return first(scans) return overlapping[argmin([sc.psihigh for sc in overlapping])] diff --git a/src/InnerLayer/SLAYER/LayerThickness.jl b/src/InnerLayer/SLAYER/LayerThickness.jl index 9a70a2d38..a07d4ea48 100644 --- a/src/InnerLayer/SLAYER/LayerThickness.jl +++ b/src/InnerLayer/SLAYER/LayerThickness.jl @@ -176,21 +176,12 @@ struct LayerWidths end """ - slayer_layer_thickness(p::SLAYERParameters; kwargs...) -> LayerWidths - -Compute the resistive inner-layer thickness in meters at one rational -surface. - -Runs [`riccati_del_s`](@ref) for the dimensionless `δ_s / d_β` and scales -by `p.d_beta` to obtain `δ_s` in meters. Keyword arguments are forwarded -to `riccati_del_s`. + slayer_algebraic_widths(p::SLAYERParameters) -> (; delta_norm, delta_visco, delta_dr) -The two algebraic comparison scales `delta_norm` and `delta_visco` come from -`p` directly and do not depend on the Riccati solve. +The three comparison scales that follow from `p` alone, with no Riccati solve. `delta_dr` is +the channel the resistive-layer overlap criterion uses, so a scan needs only this. """ -function slayer_layer_thickness(p::SLAYERParameters; kwargs...) - dels_db = riccati_del_s(p; kwargs...) - delta_s = dels_db * p.d_beta +function slayer_algebraic_widths(p::SLAYERParameters) # Layer normalization length: exactly 1/delta_n (delta_n = S^(1/3)/r_s), computed # from rs and lu so it reads as a length. Burgess et al. (2026), the Δ̂' = Δ'/S^(1/3) # normalization preceding Eq. (10). @@ -200,11 +191,32 @@ function slayer_layer_thickness(p::SLAYERParameters; kwargs...) # Diffusive-resistive width, Fitzpatrick (2025) Eq. (100), in meters. d_beta_hat is the # normalized ion scale d_beta/rs; the shear is the r-based |s| SLAYER already carries. # The paper's tau_A (its Eq. 74) carries no shear, whereas SLAYER's tau_h divides by n*s, - # so lu = tau_R/tau_h = (n|s|) * (tau_R/tau_A). Substituting that into Eq. (100) cancels its - # explicit (n|s|)^(-1/2) exactly, leaving no shear dependence in terms of lu. + # so lu = tau_R/tau_h = (n|s|) * (tau_R/tau_A) supplies Eq. (100)'s explicit (n|s|)^(-1/2), + # leaving no separate shear factor in terms of lu. d_beta_hat = p.d_beta / p.rs delta_dr = d_beta_hat > 0 ? p.rs * p.lu^(-0.5) * p.P_perp^(0.25) / sqrt(d_beta_hat) : NaN + return (; delta_norm, delta_visco, delta_dr) +end + +""" + slayer_layer_thickness(p::SLAYERParameters; kwargs...) -> LayerWidths + +Compute the resistive inner-layer thickness in meters at one rational +surface. + +Runs [`riccati_del_s`](@ref) for the dimensionless `δ_s / d_β` and scales +by `p.d_beta` to obtain `δ_s` in meters. Keyword arguments are forwarded +to `riccati_del_s`. + +The algebraic comparison scales `delta_norm`, `delta_visco` and `delta_dr` come from `p` +directly and do not depend on the Riccati solve; [`slayer_algebraic_widths`](@ref) returns +just those, for callers that do not need `delta_s`. +""" +function slayer_layer_thickness(p::SLAYERParameters; kwargs...) + dels_db = riccati_del_s(p; kwargs...) + delta_s = dels_db * p.d_beta + w = slayer_algebraic_widths(p) return LayerWidths(p.ising, p.m, p.n, dels_db, delta_s, abs(delta_s), - p.d_beta, delta_norm, delta_visco, delta_dr) + p.d_beta, w.delta_norm, w.delta_visco, w.delta_dr) end diff --git a/src/InnerLayer/SLAYER/SLAYER.jl b/src/InnerLayer/SLAYER/SLAYER.jl index 033f71eca..7f6c95c00 100644 --- a/src/InnerLayer/SLAYER/SLAYER.jl +++ b/src/InnerLayer/SLAYER/SLAYER.jl @@ -55,7 +55,7 @@ include("LayerInputs.jl") export SLAYERModel, SLAYERParameters, slayer_parameters export r_based_shear -export riccati_del_s, slayer_layer_thickness, LayerWidths +export riccati_del_s, slayer_layer_thickness, slayer_algebraic_widths, LayerWidths export surface_minor_radius, surface_da_dpsi, radial_label, build_slayer_inputs export NeoResistivityModel, SpitzerModel, SpitzerHarmModel, SauterNeoModel, RedlNeoModel diff --git a/src/Tearing/LayerOverlap.jl b/src/Tearing/LayerOverlap.jl index 1aac9e572..623f93675 100644 --- a/src/Tearing/LayerOverlap.jl +++ b/src/Tearing/LayerOverlap.jl @@ -1,32 +1,22 @@ # LayerOverlap.jl # -# Resistive-layer overlap scan: how far out in ψ the equilibrium domain needs -# to extend before adjacent rational surfaces' resistive layers run into each -# other. Once two neighbouring layers overlap, neither surface has a -# well-separated inner region, so the matched-asymptotic treatment stops being -# meaningful there and extending `psihigh` past that point buys nothing. -# Criterion: Fitzpatrick, Nucl. Fusion 2025 (doi 10.1088/1741-4326/ae4fdd) Sect. 5.9 — -# retain surfaces with psi < 1 - eps_c, where overlap is judged with the -# diffusive-resistive layer width of its Eq. (100), the regime strong shear forces -# near the separatrix. +# Resistive-layer overlap scan: where adjacent rational surfaces' resistive layers run into each +# other. Past that point neither surface keeps a well-separated inner region, so the +# matched-asymptotic treatment is not defined there. Criterion: Fitzpatrick, Nucl. Fusion 2025 +# (doi 10.1088/1741-4326/ae4fdd) Sect. 5.9, judged with the diffusive-resistive width of its +# Eq. (100). How the result is used is documented in the integration-domain truncation section of +# docs/src/stability.md. # -# Lives in `Tearing` rather than `InnerLayer/SLAYER` for the same reason -# `build_ggj_inputs` does: it needs `ForceFreeStates._find_rational_surfaces`, -# and `InnerLayer` loads before `ForceFreeStates`. +# Lives in `Tearing` rather than `InnerLayer/SLAYER` because it needs +# `ForceFreeStates._find_rational_surfaces`, and `InnerLayer` loads before `ForceFreeStates`. # -# Surfaces beyond the equilibrium's own ψ grid are located on the separatrix edge -# law q ≈ -A·ln(1-ψ), via the shared `Equilibrium.edge_q_law` helper that also gates -# the grid-refinement edge density model -- one statement of the model, one fit, one -# limited-plasma guard. The log form is the only one that survives the extrapolation: -# a polynomial in ψ (on q or on ι = 1/q) saturates instead of diverging, undershooting -# the outermost surfaces enough to report no overlap where there is one. -# -# The extrapolated surfaces inform the *choice* of domain only; the final -# equilibrium is always re-formed and solved on the accepted domain. - +# Surfaces beyond the equilibrium's own ψ grid are located on the separatrix law +# q ≈ -A·ln(1-ψ) through the shared `Equilibrium.edge_q_law` helper, which also gates the +# grid-refinement edge density model: one statement of the model, one fit, one limited-plasma +# guard. The scan only recommends a domain; nothing here re-forms the equilibrium. using ..Utilities: KineticProfiles using ..ForceFreeStates: _find_rational_surfaces, SingType -using ..InnerLayer.SLAYER: SLAYERParameters, build_slayer_inputs, slayer_layer_thickness, +using ..InnerLayer.SLAYER: SLAYERParameters, build_slayer_inputs, slayer_algebraic_widths, riccati_del_s, surface_minor_radius, surface_da_dpsi, radial_label using ..Utilities.NeoclassicalResistivity: NeoResistivityModel, SauterNeoModel using ..Equilibrium: edge_q_law, edge_q_law_psi, edge_q_law_dqdpsi, InverseIngest @@ -60,9 +50,8 @@ dimensional error. equilibrium's ψ grid via the edge q-law - `psihigh_delta_s`, `psihigh_visco`, `psihigh_dr` -- domain implied by each width channel, `nothing` when that channel never overlaps within the scanned range - - `psihigh` -- the recommendation, equal to `psihigh_dr`: the DR width is the criterion - (Sect. 5.6 puts every near-separatrix layer in that regime). The other two channels are - reported for comparison and do not set the domain + - `psihigh` -- the recommendation, equal to `psihigh_dr`; the other two channels are reported + for comparison and do not set the domain - `first_overlap` -- index of the first surface that overlaps its inner neighbour, `nothing` when none do - `notes` -- surfaces that were located but could not be scored, and why @@ -85,15 +74,19 @@ struct LayerOverlapScan notes::Vector{String} end -# Inverse equilibria (CHEASE) are solved on a PRESCRIBED boundary: `InverseIngest.sq_xs` spans -# [0, 1] and `sq_fs[:, 3]` is the code's own q there, finite at ψ = 1 (6.90 on the shipped -# fixture). So beyond `psihigh` there is nothing to model -- the real q is already known, and the -# scan reads it instead of extrapolating. That also means the search runs all the way to ψ = 1 -# rather than stopping short of a separatrix that a fixed-boundary equilibrium does not have. -# -# The direct/EFIT path cannot do this: a g-file also carries q on [0, 1], but it is the -# reconstruction's q, which goes to a finite qa where a diverted plasma's q diverges. GPEC -# recomputes q by field-line tracing out to psihigh, and past that nothing has been traced. +# Keyword constructor: the positional form takes 15 arguments in a fixed order, which is how an +# earlier empty-scan return came to pass 13 of them. +LayerOverlapScan(; m=Int[], n=Int[], psi=Float64[], rs=Float64[], delta_s_m=Float64[], + width_delta_s=Float64[], width_visco=Float64[], width_dr=Float64[], extrapolated=Bool[], + psihigh_delta_s=nothing, psihigh_visco=nothing, psihigh_dr=nothing, psihigh=nothing, + first_overlap=nothing, notes=String[]) = + LayerOverlapScan(m, n, psi, rs, delta_s_m, width_delta_s, width_visco, width_dr, extrapolated, + psihigh_delta_s, psihigh_visco, psihigh_dr, psihigh, first_overlap, notes) + +# An inverse equilibrium is solved on a prescribed boundary and carries its own q out to ψ = 1, +# so the scan reads the real q there instead of extrapolating, and searches to ψ = 1 rather than +# stopping short of a separatrix it does not have. The direct/EFIT path cannot: GPEC recomputes q +# by field-line tracing only out to psihigh. _inverse_q_spline(ingest::InverseIngest) = cubic_interp(collect(Float64, ingest.sq_xs), collect(Float64, ingest.sq_fs[:, 3]); extrap=ExtendExtrap()) @@ -122,9 +115,10 @@ separatrix edge law `q ≈ -A·ln(1-ψ)` fitted over the outer knots when the one it was handed. See the file header for why a cubic extrapolation is not usable here. -Layer widths come from [`slayer_layer_thickness`](@ref) via +Layer widths come from [`slayer_algebraic_widths`](@ref) via [`build_slayer_inputs`](@ref), so the scan uses the same plasma inputs and the -same resistivity closure as the SLAYER analysis itself. +same resistivity closure as the SLAYER analysis itself. The criterion channel needs no +Riccati solve; `delta_s` is solved per surface as a reported comparison only. # Arguments @@ -195,10 +189,11 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; # Surfaces past the grid. An inverse equilibrium already knows its real q out to ψ = 1, so # it is read rather than modelled; only the direct path needs the edge law. edge_fit = nothing - inv_q = (getfield(equil, :ingest) isa InverseIngest) ? _inverse_q_spline(equil.ingest) : nothing + inv_q = (equil.ingest isa InverseIngest) ? _inverse_q_spline(equil.ingest) : nothing if extrapolate && inv_q !== nothing psi_top = 1.0 # a prescribed boundary, not a separatrix m_start = isempty(found) ? 1 : maximum(s.m for s in found) + 1 + n_before = length(found) reached_end = false for m in m_start:Int(m_max) psi_m = _real_q_surface(inv_q, m / n_tor, psihigh_safe, psi_top) @@ -213,8 +208,9 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; push!(notes, "outward search stopped at the m_max = $m_max backstop rather than at the boundary " * "q; a \"no overlap\" result here is not conclusive -- raise m_max") - push!(notes, "inverse equilibrium: surfaces beyond ψ = $(@sprintf("%.6f", psihigh_safe)) " * - "read from the real q profile out to ψ = 1 (no edge-law extrapolation)") + length(found) > n_before && + push!(notes, "inverse equilibrium: surfaces beyond ψ = $(@sprintf("%.6f", psihigh_safe)) " * + "read from the real q profile out to ψ = 1 (no edge-law extrapolation)") elseif extrapolate && psihigh_safe < psi_cap edge_fit = edge_q_law(equil; psi_max=psihigh_safe) if edge_fit === nothing @@ -247,9 +243,10 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; end end - isempty(found) && return LayerOverlapScan(Int[], Int[], Float64[], Float64[], Float64[], Float64[], - Float64[], Float64[], Bool[], nothing, nothing, nothing, nothing, nothing, - push!(notes, "no q = m/$n_tor surfaces found")) + if isempty(found) + push!(notes, "no q = m/$n_tor surfaces found") + return LayerOverlapScan(; notes=notes) + end ms, ns, psis, rss = Int[], Int[], Float64[], Float64[] dels_m, w_dels, w_visc, w_dr, extraps = Float64[], Float64[], Float64[], Float64[], Bool[] @@ -297,24 +294,34 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; continue end - lw = slayer_layer_thickness(params[1]) - if !isfinite(lw.delta_s_m) - push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): del_s Riccati did not converge") - continue - end - # Every width channel must be finite: a NaN width compares false against every - # neighbour in _first_overlap_limit, silently turning that channel into "no overlap". - if !isfinite(lw.delta_dr) - push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): Eq. (100) width is not finite; surface excluded") + # The criterion needs only the algebraic DR width, so the Riccati solve never gates it: + # dropping a surface here would leave _first_overlap_limit comparing its neighbours across + # a gap twice the physical one, which hides an overlap and reports too wide a domain. + alg = slayer_algebraic_widths(params[1]) + if !isfinite(alg.delta_dr) + push!( + notes, + "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): Eq. (100) width is not finite, so this " * + "surface could not be scored; a \"no overlap\" result here is not conclusive" + ) continue end - if !isfinite(lw.delta_visco) - push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): viscous width is not finite; surface excluded") - continue + # delta_s is reported for comparison only. A failure leaves it NaN, which makes its own + # channel report no overlap, and leaves the DR criterion untouched. + delta_s_m = try + w = abs(riccati_del_s(params[1]) * params[1].d_beta) + isfinite(w) || push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): del_s Riccati did not converge; " * + "delta_s channel only, criterion unaffected") + w + catch err + err isa Union{ArgumentError,DomainError} || rethrow() + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): del_s Riccati failed; delta_s channel only, " * + "criterion unaffected") + NaN end + lw = (; delta_s_m=delta_s_m, delta_dr=alg.delta_dr, delta_visco=alg.delta_visco) - # Metres → normalized flux. This conversion is the whole reason the scan - # can compare a layer width against a surface separation. + # Metres → normalized flux, so widths and surface separations are comparable. push!(ms, s.m) push!(ns, Int(n_tor)) push!(psis, s.psi) @@ -326,12 +333,11 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; push!(extraps, s.extrap) end - ph_dels, k_dels = _first_overlap_limit(psis, w_dels) - ph_visc, k_visc = _first_overlap_limit(psis, w_visc) + ph_dels, _ = _first_overlap_limit(psis, w_dels) + ph_visc, _ = _first_overlap_limit(psis, w_visc) ph_dr, k_dr = _first_overlap_limit(psis, w_dr) - # The DR width is the criterion: near the separatrix the shear is strong enough that - # Fitzpatrick (2025) Sect. 5.6 puts every layer in that regime. The delta_s ODE and the - # viscous scale stay reported so the three can be compared, but they do not set the domain. + # The DR channel is the criterion (see the `width_dr` field above); the other two are + # reported for comparison only. recommended = ph_dr return LayerOverlapScan(ms, ns, psis, rss, dels_m, w_dels, w_visc, w_dr, extraps, diff --git a/test/runtests_layer_overlap_fitzpatrick.jl b/test/runtests_layer_overlap_fitzpatrick.jl index 2e8f90817..cf551d83d 100644 --- a/test/runtests_layer_overlap_fitzpatrick.jl +++ b/test/runtests_layer_overlap_fitzpatrick.jl @@ -9,7 +9,7 @@ # against GPEC's own history. @testset "Layer overlap vs Fitzpatrick (2025) JET model" begin using GeneralizedPerturbedEquilibrium.InnerLayer.SLAYER: slayer_parameters, - slayer_layer_thickness, SpitzerHarmModel + slayer_layer_thickness, slayer_algebraic_widths, SpitzerHarmModel using QuadGK: quadgk using Roots: find_zero, Bisection @@ -64,8 +64,9 @@ te_of = make_tanh(400.0, 100.0, 600.0, 20.0) ne_of = make_tanh(3.5e19, 1.2e19, 5.0e19, 3.0e18) - # Width in units of rhat, through the shipped code path. - function width_hat(r, n) + # Width in units of rhat, through the shipped code path. Eq. (100) is algebraic, so this takes + # the no-ODE path; the two are asserted equal once below. + function params_at(r, n) P = Psi_of(r) te = te_of(P) ne = ne_of(P) @@ -75,7 +76,15 @@ rs=r * A_MIN, R0=R0, mu_i=MNUM, zeff=ZEFF, chi_perp=CHI, chi_tor=CHI, m=1, n=n, resistivity_model=SpitzerHarmModel(), lnLambda_form=:nrl) - return slayer_layer_thickness(p).delta_dr / A_MIN + return p + end + width_hat(r, n) = slayer_algebraic_widths(params_at(r, n)).delta_dr / A_MIN + + # The scan's criterion channel must be exactly what the full width routine reports, so the + # no-ODE path cannot drift from it. + let p = params_at(0.9, 1) + @test slayer_algebraic_widths(p).delta_dr == slayer_layer_thickness(p).delta_dr + @test slayer_algebraic_widths(p).delta_visco == slayer_layer_thickness(p).delta_visco end function surfaces(n; rmin=0.90, rmax=1.35) @@ -208,8 +217,7 @@ end # Multi-n: the innermost overlap point binds; scans with no overlap never do. Scan = GeneralizedPerturbedEquilibrium.Tearing.LayerOverlapScan - mkscan(ph) = Scan(Int[], Int[], Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], Bool[], - nothing, nothing, ph, ph, ph === nothing ? nothing : 1, String[]) + mkscan(ph) = Scan(; psihigh_dr=ph, psihigh=ph, first_overlap=(ph === nothing ? nothing : 1)) binding = GeneralizedPerturbedEquilibrium._binding_overlap s1, s2, s_none = mkscan(0.9997), mkscan(0.9952), mkscan(nothing) @test binding([s1, s2, s_none]) === s2 From 9848fa332da68ca34a44069a7e971950edfd364f Mon Sep 17 00:00:00 2001 From: d-burg Date: Tue, 22 Sep 2026 01:19:29 -0400 Subject: [PATCH 21/30] Equilibrium - MINOR - Remove the unreachable psihigh truncation path refined_psi_grid's psihigh keyword and its _truncate_density helper are left from the design that re-formed the equilibrium on the capped domain, which the qlim cap replaced. No caller passes psihigh and no test covers either, so they shipped as untested API. _truncate_density also duplicated the outer node when psihigh landed exactly on an interior knot, giving a zero-width interval. Co-Authored-By: Claude Opus 5 --- src/Equilibrium/GridRefinement.jl | 36 +------------------------------ 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/src/Equilibrium/GridRefinement.jl b/src/Equilibrium/GridRefinement.jl index a600f12d5..898fdc474 100644 --- a/src/Equilibrium/GridRefinement.jl +++ b/src/Equilibrium/GridRefinement.jl @@ -493,33 +493,9 @@ function bracket_mandatory_nodes(grid::Vector{Float64}, centers::Vector{Float64} return merged end -""" - _truncate_density(xs, rho, psihigh) -> (xs_t, rho_t) - -Restrict a measured knot density to `[xs[1], psihigh]`, linearly interpolating `rho` at the new -outer endpoint so the density integral stays continuous in `psihigh`. Errors when `psihigh` lies -outside the sampled grid, where the density is unmeasured. -""" -function _truncate_density(xs, rho::Vector{Float64}, psihigh::Float64) - xs_v = collect(Float64, xs) - psihigh > xs_v[1] || - error("_truncate_density: psihigh=$psihigh must exceed the inner grid bound $(xs_v[1])") - psihigh <= xs_v[end] + 1e-12 || - error( - "_truncate_density: psihigh=$psihigh exceeds the pass-1 grid end $(xs_v[end]); " * - "the knot density is unmeasured there — form the enlarged domain first, then refine against it" - ) - psihigh >= xs_v[end] - 1e-12 && return (xs_v, rho) - - k = searchsortedlast(xs_v, psihigh) - frac = (psihigh - xs_v[k]) / (xs_v[k+1] - xs_v[k]) - rho_end = rho[k] + frac * (rho[k+1] - rho[k]) - return (vcat(xs_v[1:k], psihigh), vcat(rho[1:k], rho_end)) -end - """ refined_psi_grid(equil::PlasmaEquilibrium; tau, kin=nothing, mandatory=Float64[], - psihigh=nothing, singfac_min=1e-4, n_min=1, bracket_coef=BRACKET_COEF, + singfac_min=1e-4, n_min=1, bracket_coef=BRACKET_COEF, min_spacing=MIN_KNOT_SPACING, N_cap=1024) -> Vector{Float64} Build the refined pass-2 ψ grid from a formed pass-1 equilibrium: measured-curvature knot @@ -531,18 +507,11 @@ whose pedestal gradients attract knots; `mandatory` lists rational-surface ψ va `dpsi = singfac_min/(n_min·|q′|)`, and the bracket half-width is `bracket_coef·dpsi` (floored at `min_spacing`). Rational surfaces are bracketed, not pinned: a knot on the surface would make the Δ′ extraction's cubic 3rd derivative jump mid-stencil (see `BRACKET_COEF`). - -`psihigh` builds the grid for a domain *smaller* than the one `equil` was formed on: the measured -density is truncated there and the last node lands exactly on it. This lets a pass-1 equilibrium -supply the density for a re-form on a reduced domain without an extra solve. Passing a `psihigh` -beyond the pass-1 grid is an error — the density out there is unmeasured, so an enlarged domain -must be formed first and refined against that. """ function refined_psi_grid(equil::PlasmaEquilibrium; tau::Float64, kin::Union{Nothing,KineticProfileSplines}=nothing, mandatory::Vector{Float64}=Float64[], - psihigh::Union{Nothing,Real}=nothing, singfac_min::Float64=1e-4, n_min::Int=1, bracket_coef::Float64=BRACKET_COEF, @@ -550,9 +519,6 @@ function refined_psi_grid(equil::PlasmaEquilibrium; N_cap::Int=REFINED_N_CAP) xs = equil.profiles.xs rho = _knot_density(equil; tau, kin) - if psihigh !== nothing - xs, rho = _truncate_density(xs, rho, Float64(psihigh)) - end # Floor the density to a fixed (τ-independent) locally-uniform fine patch around each rational # so Δ′ has the resolution to sample 3rd derivatives there at any accuracy target (see # RATIONAL_RES_SPACING). From 6de1b8f030418787d6ca0f0cf521a13a14b6c4ec Mon Sep 17 00:00:00 2001 From: d-burg Date: Tue, 22 Sep 2026 01:19:29 -0400 Subject: [PATCH 22/30] Examples/Regression - TEST - Pin the energies on the capped domain The truncation deck ran vac_flag = false, which writes no energies, so the case that exercises the cap tracked only domain bookkeeping: a change in what the capped domain does to the physics would have passed unnoticed. Run the deck free-boundary and pin ep_real and et_real alongside the domain quantities. That also moves the case off the fixed-boundary path, which reports a non-Hermitian W-inverse on this equilibrium at any psihigh. Co-Authored-By: Claude Opus 5 --- .../DIIID-like_truncation_example/gpec.toml | 7 +++--- .../cases/diiid_truncation_n1.toml | 22 +++++++++++++++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/examples/DIIID-like_truncation_example/gpec.toml b/examples/DIIID-like_truncation_example/gpec.toml index 65eb7cfad..841cc8ddd 100644 --- a/examples/DIIID-like_truncation_example/gpec.toml +++ b/examples/DIIID-like_truncation_example/gpec.toml @@ -2,8 +2,9 @@ # Reuses the equilibrium and kinetic profiles of the sibling DIIID-like_ideal_example (referenced # by relative path; not duplicated). psihigh is pushed past the layer-overlap point (psi ~ 0.9997, # where adjacent resistive layers first touch), so psilim_from_layer_overlap binds: dmlim then -# truncates just past q=7 instead of q=8. Ideal stability only, with no local stability, vacuum, -# forcing or perturbed equilibrium, so the run is dominated by the domain selection it exercises. +# truncates just past q=7 instead of q=8. Ideal free-boundary stability only, with no local +# stability, forcing or perturbed equilibrium: the energies are kept so a regression case can pin +# what the capped domain does to the physics, not just to the bookkeeping. [Equilibrium] eq_filename = "../DIIID-like_ideal_example/TkMkr_D3Dlike_Hmode.geqdsk" # Path to equilibrium file @@ -21,7 +22,7 @@ force_termination = false # Terminate after equilibrium setup (skip stabili [ForceFreeStates] local_stability_flag = false # Perform local stability analysis (Mercier and ballooning) across the ψ profile -vac_flag = false # Compute plasma, vacuum, and total energies for free-boundary modes +vac_flag = true # Compute plasma, vacuum, and total energies for free-boundary modes force_termination = true # Terminate after force-free states (skip perturbed equilibrium calculations) psiedge = 1.0 # Edge dW(ψ) diagnostic scan band [psiedge, psilim]; set ≥ psilim to disable diff --git a/regression-harness/cases/diiid_truncation_n1.toml b/regression-harness/cases/diiid_truncation_n1.toml index 18d84f815..e1a153318 100644 --- a/regression-harness/cases/diiid_truncation_n1.toml +++ b/regression-harness/cases/diiid_truncation_n1.toml @@ -2,8 +2,9 @@ # psihigh = 0.9999 puts the overlap point (psi ~ 0.99976) inside the domain, so the cap binds: qlim # is pulled from 8.35 to 8.0 and dmlim then steps back to 7.2, excluding the q=8 surface. This is the # only case where psilim_from_layer_overlap changes the domain; every shipped deck leaves it off or -# inert. Ideal fixed-boundary stability only (no vacuum, local stability, forcing or PE), which -# writes no energies, so the case pins the domain selection and the scan's layer widths. +# inert. Ideal free-boundary stability only (no local stability, forcing or PE). Tracks the domain +# selection, the scan's layer widths, and the energies on the capped domain, so a change in what the +# truncation does to the physics cannot pass unnoticed. [case] name = "diiid_truncation_n1" description = "DIII-D-like, n=1, psihigh=0.9999 with the resistive-layer overlap cap binding (truncation only)" @@ -93,6 +94,23 @@ label = "singular psi locations" noise_threshold = 1e-8 order = 32 +# Energies on the capped domain — what the truncation does to the physics, not just the bookkeeping. +[quantities.ep_real] +h5path = "ForceFreeStates/FreeBoundaryStability/eigenmode_plasma_energies" +type = "complex_vector" +extract = "real_first" +label = "plasma energy Re(ep[1])" +noise_threshold = 1e-10 +order = 40 + +[quantities.et_real] +h5path = "ForceFreeStates/FreeBoundaryStability/eigenmode_energies" +type = "complex_vector" +extract = "real_first" +label = "total energy Re(et[1])" +noise_threshold = 1e-10 +order = 41 + # Runtime [quantities.runtime] h5path = "" From a3e7c51fa4343a89074d2b91985e66a3addc432d Mon Sep 17 00:00:00 2001 From: d-burg Date: Tue, 22 Sep 2026 01:19:29 -0400 Subject: [PATCH 23/30] Docs - DOCS - Note the solve-path limit and trim duplicated truncation prose The scan resolves its kinetic file from the run's TOML, so the programmatic solve(prob, alg) entry point cannot run it and psilim_from_layer_overlap is inert there. Say so in the control docstring and the stability page. Trim the psilim_from_layer_overlap docstring from a nine-sentence paragraph to the contract plus a pointer to the docs section, which is the canonical home. Co-Authored-By: Claude Opus 5 --- docs/src/stability.md | 8 +++++--- src/ForceFreeStates/CoreTypes.jl | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/src/stability.md b/docs/src/stability.md index f901c992e..44f9422aa 100644 --- a/docs/src/stability.md +++ b/docs/src/stability.md @@ -72,8 +72,8 @@ integrator = "forward" `riccati_eulerlagrange_integration` (the default) is our implementation of the STRIDE approach [Glasser 2018b], built on the dual Riccati reformulation [Glasser 2018a]. It -decomposes the radial domain into -independent chunks, integrates each chunk's fundamental-matrix (FM) propagator in parallel +decomposes the radial domain into independent chunks, integrates each chunk's +fundamental-matrix (FM) propagator in parallel using `Threads.@threads`, then multiplies the propagators in order and applies each singular-surface crossing serially. It is the only driver that produces the inter-surface ``\Delta'`` matrix. Because chunk endpoints are all it stores, `u_store` is sparse and stays @@ -287,7 +287,9 @@ not extrapolated. The cut is placed at the last surface before two adjacent laye touch. The scan runs whenever kinetic profiles are available (a `[KineticForces]` `kinetic_file`, -or the `[SLAYER]` `profile_file`). Its result is always written to +or the `[SLAYER]` `profile_file`). Because it resolves that file from the run's TOML, it only runs +on the `gpec.toml` entry point: the programmatic `solve(prob, alg)` path has no inputs to resolve +it from, so the cap cannot be applied there and setting the flag warns instead. Its result is always written to `ForceFreeStates/LayerOverlap/`, but it only constrains the domain when `psilim_from_layer_overlap = true`. It then caps `qlim` before the `dmlim` step, so `dmlim` still selects the final surface from inside the cap. A cap beyond `psihigh` has no effect. diff --git a/src/ForceFreeStates/CoreTypes.jl b/src/ForceFreeStates/CoreTypes.jl index 0e344f19a..2f9d4ed8f 100644 --- a/src/ForceFreeStates/CoreTypes.jl +++ b/src/ForceFreeStates/CoreTypes.jl @@ -135,7 +135,7 @@ gpec.toml. - `numunorms_init::Int` - Initial array size for solution normalization data - `singfac_min::Float64` - Fractional distance from rational q at which ideal jump condition is enforced - `set_psilim_via_dmlim::Bool` - Truncate the integration domain at `(last_rational_q + dmlim) / n` rather than at `qhigh` / `psihigh`. Fortran STRIDE found that truncating ~20 % above the outermost rational (`dmlim = 0.2`) avoids a numerical kink instability in δW that appears when the integration ends too close to or just below a rational surface. **For diverted equilibria where q → ∞ at the separatrix** (e.g. DIII-D geqdsks, the bulk of production use) this costs negligible physical domain because rationals get arbitrarily dense near the LCFS — `set_psilim_via_dmlim = true` is the safe and recommended default. **For limited circular / analytical equilibria with finite q at the edge** (Solovev, LAR scans), rationals are sparse and 20 % above the last rational chops off too much edge, so set `set_psilim_via_dmlim = false` and let `qhigh` / `psihigh` control the truncation. Multi-`n` runs are not supported by this truncation (the "outermost rational + dmlim / n" depends on which `n`); when `set_psilim_via_dmlim = true` with `nn_low != nn_high`, `sing_lim!` warns and falls back to `qhigh` / `psihigh`. Default `true`. - - `psilim_from_layer_overlap::Bool` - Cap the integration domain at the point where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9. Past that point no surface retains a well-separated inner region, so the matched-asymptotic treatment is not defined there. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it, and a bound beyond `psihigh` is inert. On the shipped DIII-D-like decks the overlap point sits near `psi = 0.9997`, beyond every deck's `psihigh`, so the cap is inert there and enabling the flag changes nothing; it binds only once `psihigh` is far enough out that `psilim` would otherwise land past the overlap point. The scan needs kinetic profiles and is run whenever they are readable — its result is recorded under `ForceFreeStates/LayerOverlap/` regardless of this flag, so a run always shows whether layer physics would have constrained the domain. For multi-`n` runs the scan is repeated for each `n` in `nn_low:nn_high` and the innermost overlap point binds. Default `false`. + - `psilim_from_layer_overlap::Bool` - Cap the integration domain where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9: past that point no surface retains a well-separated inner region. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it. The scan runs whenever kinetic profiles are readable and is recorded under `ForceFreeStates/LayerOverlap/` either way; this flag only decides whether it constrains the domain. It needs a kinetic file named in the run's TOML, so the programmatic `solve(prob, alg)` entry point cannot run it and the flag is inert there (with a warning). Inert on every shipped deck, whose `psihigh` sits inside the overlap point. See the integration-domain truncation section of the stability documentation. Default `false`. - `dmlim::Float64` - Distance beyond last rational surface (normalised ∈ [0,1) in units of 1/n). Only used when `set_psilim_via_dmlim` is true. Fortran STRIDE convention is 0.2 (truncate 20 % of one rational-surface spacing above the last surface), retained here. - `sing_order::Int` - Order of singular layer (Frobenius) expansion at rational surfaces. Default 6 (Fortran STRIDE convention for Δ' calculations; lower values trade accuracy for speed). - `qhigh::Float64` - Integration terminated at q limit determined by minimum of qhigh and qa from equil From f5c60e7797989d7a4137988eba89fcc15d5324e7 Mon Sep 17 00:00:00 2001 From: d-burg Date: Tue, 22 Sep 2026 17:40:43 -0400 Subject: [PATCH 24/30] Tearing - BUGFIX! - Take the overlap scan's profiles and diffusivities from the SLAYER inputs The scan resolved its kinetic file from either [KineticForces] kinetic_file or [SLAYER] profile_file and re-read it with its own loader, which duplicated SLAYER's _load_profiles, ignored its profile_group, and never passed any diffusivity -- so every layer width was computed with the chi_perp = chi_tor = 1.0 defaults while the SLAYER analysis of the same surfaces used the file's chi(psi). On the shipped DIII-D-like profiles chi_perp is 1.25-3.29 m^2/s, and since delta_dr goes as chi_perp^(1/4) the scan's widths were 6-35% narrower than SLAYER's own. Build the SLAYER control from [SLAYER] and call Runner._load_profiles, so the scan sees the same profiles, HDF5 group and chi(psi), with the control's scalar fallback when the file carries no chi -- the precedence run_slayer uses. A deck without a [SLAYER] profile_file no longer runs the scan. At the unscaled profiles this leaves the overlap point unchanged at psihigh 0.9995 and 0.9999 (widths grow ~27% nearly uniformly) but moves it one surface inward, 0.99969 -> 0.99857, on a psihigh = 0.995 grid where the edge surfaces are extrapolated. Co-Authored-By: Claude Opus 5.5 --- src/GeneralizedPerturbedEquilibrium.jl | 72 ++++++++++---------------- 1 file changed, 28 insertions(+), 44 deletions(-) diff --git a/src/GeneralizedPerturbedEquilibrium.jl b/src/GeneralizedPerturbedEquilibrium.jl index 1f903b2b0..f75fa69ee 100755 --- a/src/GeneralizedPerturbedEquilibrium.jl +++ b/src/GeneralizedPerturbedEquilibrium.jl @@ -243,7 +243,7 @@ function main_from_inputs( locstab, ballooning_boundary = run_local_stability(ctrl, equil) metric, mats, layer_overlap = prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, kinetic_profiles; species=kf_species, - overlap_profile_file=_overlap_profile_path(inputs, kf_ctrl, intr.dir_path)) + overlap_inputs=_overlap_slayer_inputs(inputs, intr.dir_path)) ffs_result = run_force_free_states(ctrl, equil, mats, intr, metric) if ctrl.write_outputs_to_HDF5 @@ -482,41 +482,24 @@ function run_local_stability(ctrl::ForceFreeStatesControl, equil::Equilibrium.Pl return locstab, ballooning_boundary end -# Kinetic profiles for the overlap scan can come from either the NTV path -# (`[KineticForces] kinetic_file`) or the tearing path (`[SLAYER] profile_file`); the shipped -# DIII-D SLAYER deck carries only the latter. Prefer whichever exists on disk. -function _overlap_profile_path(inputs, kf_ctrl::KineticForces.KineticForcesControl, dir_path::AbstractString) - _resolve(f) = isempty(f) ? nothing : (isabspath(f) ? String(f) : joinpath(dir_path, f)) - for cand in (_resolve(kf_ctrl.kinetic_file), - (inputs isa AbstractDict && haskey(inputs, "SLAYER")) ? - _resolve(get(inputs["SLAYER"], "profile_file", "")) : nothing) - cand !== nothing && isfile(cand) && return cand - end - return nothing -end - -# Read the kinetic profiles the layer builders take, or `nothing` with a warning when the file -# cannot be read or lacks n_e/T_e/T_i. Reads the file directly rather than reusing -# `kinetic_profiles`, a `KineticProfileSplines` built for the NTV path with a different field set. -function _overlap_profiles(path::AbstractString) - # Guards only the file read: the scan is an optional diagnostic, so an unreadable input skips - # it rather than aborting the run. The scan call itself is not wrapped, so a code error surfaces. - data = try - Equilibrium.read_kinetic_file(path) +# Kinetic profiles for the overlap scan come from the [SLAYER] section, through the same control +# and loader the SLAYER analysis itself uses, so the scan sees the same profiles, the same HDF5 +# group and the same chi(psi). Returns `nothing` when there is no usable [SLAYER] profile_file. +function _overlap_slayer_inputs(inputs, dir_path::AbstractString) + (inputs isa AbstractDict && haskey(inputs, "SLAYER")) || return nothing + ctrl = Runner.slayer_control_from_toml(inputs["SLAYER"]) + isempty(ctrl.profile_file) && return nothing + loaded = try + Runner._load_profiles(ctrl, dir_path) catch err - @warn "Layer-overlap scan skipped: could not read kinetic file $path." exception = err - return nothing - end - if data.n_e === nothing || data.T_e === nothing || data.T_i === nothing - @warn "Layer-overlap scan skipped: $path lacks n_e, T_e or T_i." + @warn "Layer-overlap scan skipped: could not read the [SLAYER] profile_file." exception = err return nothing end - npsi = length(data.psi) - omega = data.omega_E === nothing ? zeros(npsi) : collect(Float64, data.omega_E) - return Utilities.KineticProfiles(; psi=collect(Float64, data.psi), - n_e=collect(Float64, data.n_e), T_e=collect(Float64, data.T_e), - T_i=collect(Float64, data.T_i), omega=omega, - omega_e=zeros(npsi), omega_i=zeros(npsi)) + # chi(psi) from the file where it carries one, else the control's scalar fallback -- the same + # precedence run_slayer uses. + return (; profiles=loaded.profiles, + chi_perp=loaded.chi_perp === nothing ? ctrl.chi_perp : loaded.chi_perp, + chi_tor=loaded.chi_tor === nothing ? ctrl.chi_tor : loaded.chi_tor) end # The binding scan across toroidal mode numbers: the one with the innermost overlap point, since @@ -530,21 +513,22 @@ function _binding_overlap(scans) end # Run the resistive-layer overlap scan for each toroidal mode number of the run and return the -# binding one, or `nothing` when there is no readable kinetic file. Physics refusals (a surface -# that cannot be scored, a limited edge) are handled inside the scan and recorded in its `notes`. -function _layer_overlap_scan(path::Union{Nothing,AbstractString}, - intr::ForceFreeStatesInternal, equil::Equilibrium.PlasmaEquilibrium) - (path === nothing || !isfile(path)) && return nothing - profiles = _overlap_profiles(path) - profiles === nothing && return nothing +# binding one, or `nothing` when there are no [SLAYER] profiles. Physics refusals (a surface that +# cannot be scored, a limited edge) are handled inside the scan and recorded in its `notes`. +function _layer_overlap_scan(overlap_inputs, intr::ForceFreeStatesInternal, equil::Equilibrium.PlasmaEquilibrium) + overlap_inputs === nothing && return nothing # Eq. (100) is not covariant -- it is anchored to the toroidal-flux label of the paper's # Eq. (30), so the scan is driven in that label regardless of the SLAYER default. - scans = [Tearing.resistive_layer_overlap(equil, profiles; n_tor=n, rs_method=:flux) for n in intr.nlow:intr.nhigh] + scans = [ + Tearing.resistive_layer_overlap(equil, overlap_inputs.profiles; n_tor=n, rs_method=:flux, + chi_perp=overlap_inputs.chi_perp, chi_tor=overlap_inputs.chi_tor) + for n in intr.nlow:intr.nhigh + ] return _binding_overlap(scans) end """ - prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, kinetic_profiles) -> (metric, mats, overlap) + prepare_force_free_states!(intr, ctrl, equil, kf_ctrl, kinetic_profiles; overlap_inputs=nothing) -> (metric, mats, overlap) Set up the force-free-states solve on `intr`: integration limits, the surviving singular surfaces and their GGJ coefficients, the poloidal mode range, and the metric plus @@ -557,13 +541,13 @@ function prepare_force_free_states!( kf_ctrl::KineticForces.KineticForcesControl, kinetic_profiles; species=nothing, - overlap_profile_file::Union{Nothing,AbstractString}=nothing + overlap_inputs=nothing ) # Resistive-layer overlap: locate where adjacent rational surfaces' layers run into each # other, and use it as an upper bound on the integration domain. The scan runs whenever # kinetic profiles are readable so `ForceFreeStates/LayerOverlap/` always records the point, # but it only constrains the domain when the user opts in. - overlap = _layer_overlap_scan(overlap_profile_file, intr, equil) + overlap = _layer_overlap_scan(overlap_inputs, intr, equil) psilim_cap = (ctrl.psilim_from_layer_overlap && overlap !== nothing) ? overlap.psihigh : nothing if ctrl.psilim_from_layer_overlap && overlap === nothing @warn "psilim_from_layer_overlap = true but no layer-overlap scan was available; the domain is untouched." From cf85db8c59e27553c597efd7bc753ec304125467 Mon Sep 17 00:00:00 2001 From: d-burg Date: Tue, 22 Sep 2026 17:40:43 -0400 Subject: [PATCH 25/30] =?UTF-8?q?Equilibrium=20-=20BUGFIX!=20-=20Gate=20th?= =?UTF-8?q?e=20edge=20q-law=20on=20shear=20consistency=20instead=20of=20a?= =?UTF-8?q?=20tuned=20r=C2=B2=20floor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EDGE_FIT_MIN_R2 = 0.90 sat just under the worst real reconstruction then measured (0.929), so it was fitted to that sample rather than set by a principle, and the docstring already said it was not the discriminator: r2_log > r2_linear is, and the limited Solovev edge is rejected with the floor disabled entirely. Replace it as the pathology guard with a physical check. The fitted A in q = q_bar + A*(ln(1-psi) - u_bar) is the local logarithmic shear, so it must match -(1-psi)*q'(psi) over the fitted knots; accept agreement within a factor of EDGE_FIT_SHEAR_RATIO = 2. Across 14 real DIII-D reconstructions from IDA runs the ratio is 0.884-1.160, the synthetic DIII-D-like deck 0.948, and the limited Solovev edge 0.666. Keep EDGE_FIT_MIN_R2 = 0.5 as an explicit backstop against a fit that describes nothing, documented as such. Adds a test that the shear check is live: a tolerance tighter than the DIII-D-like fit's own disagreement must reject it. Co-Authored-By: Claude Opus 5.5 --- src/Equilibrium/Equilibrium.jl | 1 + src/Equilibrium/GridRefinement.jl | 30 +++++++++++++++++++++++------- test/runtests_grid_refinement.jl | 3 +++ 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/Equilibrium/Equilibrium.jl b/src/Equilibrium/Equilibrium.jl index eed157812..504c0eb5a 100644 --- a/src/Equilibrium/Equilibrium.jl +++ b/src/Equilibrium/Equilibrium.jl @@ -3,6 +3,7 @@ module Equilibrium # --- Module-level Dependencies --- using Printf, OrdinaryDiffEq, DiffEqCallbacks, LinearAlgebra, HDF5 +using Statistics: median using Roots using TOML using FastInterpolations diff --git a/src/Equilibrium/GridRefinement.jl b/src/Equilibrium/GridRefinement.jl index 898fdc474..56a1705b0 100644 --- a/src/Equilibrium/GridRefinement.jl +++ b/src/Equilibrium/GridRefinement.jl @@ -60,10 +60,16 @@ const THETA_STRIDE = 8 # --- shared separatrix edge q-law ------------------------------------------------------------- # Minimum knots in the edge band before a fit is attempted. const EDGE_FIT_MIN_KNOTS = 4 -# Weak absolute floor on the diverging fit. The discrimination is the relative -# r2_log > r2_linear comparison below (no absolute threshold separates diverted from limited -# edges); this floor only rejects fits that describe nothing at all. -const EDGE_FIT_MIN_R2 = 0.90 +# Weak absolute backstop against a fit that describes nothing at all. It is deliberately not a +# discriminator: no absolute r2 separates diverted from limited edges (real reconstructions fit the +# log law at 0.929-0.977, the limited a10 deck at 0.972), so the discrimination is the relative +# r2_log > r2_linear comparison, and the pathology guard is the shear consistency below. +const EDGE_FIT_MIN_R2 = 0.5 +# `A` in q = q_bar + A*(ln(1-psi) - u_bar) is the local logarithmic shear, so the fit must satisfy +# A = -(1-psi)*q'(psi) on the knots it was fitted to. Accept a factor of this much disagreement +# between the fitted slope and the measured one; a fit driven by edge noise, or one describing an +# edge that does not actually diverge, misses by far more. +const EDGE_FIT_SHEAR_RATIO = 2.0 # Least-squares slope and coefficient of determination for y = a + b*x. function _linfit_r2(x::Vector{Float64}, y::Vector{Float64}) @@ -80,7 +86,8 @@ end """ edge_q_law(equil; psi_max, psi_min=EDGE_MODEL_PSI_MIN, min_knots=EDGE_FIT_MIN_KNOTS, - min_r2=EDGE_FIT_MIN_R2) -> nothing | (; A, q_bar, u_bar, n_knots, r2_log, r2_linear) + min_r2=EDGE_FIT_MIN_R2, shear_ratio=EDGE_FIT_SHEAR_RATIO) + -> nothing | (; A, q_bar, u_bar, n_knots, r2_log, r2_linear) Least-squares fit of the separatrix edge law `q = q̄ + A·(ln(1−ψ) − ū)` over the equilibrium's outer knots — the single shared statement of that model, used both by the grid-refinement edge @@ -91,7 +98,7 @@ plasma with finite edge q is never extrapolated as if q blew up: - fewer than `min_knots` knots in the band; - `A ≥ 0`, i.e. q not rising toward ψ = 1; - - `r2_log < min_r2` — the log law does not actually fit; + - `r2_log < min_r2` — a weak backstop; the log law describes nothing at all; - `r2_log ≤ r2_linear` — a plain linear-in-ψ fit explains the edge q at least as well, which is what a **limited** plasma looks like. This comparison carries no scale and is what separates the shipped limited decks (Solovev 0.760 vs 0.9996 linear; LAR 0.904 vs 0.998) from the @@ -105,7 +112,8 @@ function edge_q_law(equil::PlasmaEquilibrium; psi_max::Real=Float64(equil.profiles.xs[end]), psi_min::Real=EDGE_MODEL_PSI_MIN, min_knots::Int=EDGE_FIT_MIN_KNOTS, - min_r2::Real=EDGE_FIT_MIN_R2) + min_r2::Real=EDGE_FIT_MIN_R2, + shear_ratio::Real=EDGE_FIT_SHEAR_RATIO) xs = collect(Float64, equil.profiles.xs) band = findall(x -> x >= psi_min && x < psi_max, xs) if length(band) < min_knots @@ -124,6 +132,14 @@ function edge_q_law(equil::PlasmaEquilibrium; (isfinite(r2_log) && r2_log >= min_r2) || return nothing (isfinite(r2_linear) && r2_log > r2_linear) || return nothing + # Shear consistency: the fitted slope is the local logarithmic shear, so it must match the + # profile's own -(1-psi)*q' over the same knots. + hint = Ref(1) + A_meas = median([-(1.0 - xs[i]) * Float64(equil.profiles.q_deriv(xs[i]; hint=hint)) for i in band]) + isfinite(A_meas) && A_meas < 0 || return nothing + ratio = A / A_meas + (ratio >= inv(shear_ratio) && ratio <= shear_ratio) || return nothing + return (A=A, q_bar=q_bar, u_bar=u_bar, n_knots=length(band), r2_log=r2_log, r2_linear=r2_linear) end diff --git a/test/runtests_grid_refinement.jl b/test/runtests_grid_refinement.jl index 98698a9bf..66d34332a 100644 --- a/test/runtests_grid_refinement.jl +++ b/test/runtests_grid_refinement.jl @@ -200,5 +200,8 @@ const GridRef = GeneralizedPerturbedEquilibrium.Equilibrium @test fit !== nothing @test fit.A < 0 @test fit.r2_log > fit.r2_linear + # The shear-consistency check is live: this fit's slope is ~5% off the measured + # -(1-psi)q', so a tolerance tighter than that must reject it. + @test GridRef.edge_q_law(equil; shear_ratio=1.01) === nothing end end From ce29f7d99307b02308c98a732231076e6614a29b Mon Sep 17 00:00:00 2001 From: d-burg Date: Tue, 22 Sep 2026 17:40:58 -0400 Subject: [PATCH 26/30] Examples - FEATURE! - Raise the DIII-D-like perpendicular diffusivity so the overlap cut binds Scale chi_e (the chi_perp profile) in the shared DIII-D-like kinetic file by 2, from 1.25-3.29 to 2.50-6.59 m^2/s; chi_phi is unchanged, and the file's provenance attribute records the scaling. The profile is an electron power-balance chi used as a proxy for the one-fluid energy diffusivity the layer width wants, and that proxy is uncertain by a factor of this order. The doubled profile centres on the 4 m^2/s TJ uses as its default. With it the truncation deck's cut moves one surface inward: the cap pulls qlim from 8.35 to 7.0, dmlim steps back to 6.2, and q=7 and q=8 are excluded. The resulting domain, psilim = 0.99498 with q=6 the last surface and ep_real = -1.3485, reproduces the hand-chosen psihigh = 0.995 of the ideal deck (ep_real -1.34833). The factor sits well clear of both thresholds found on this equilibrium (the cut first moves at chi x1.26 and next at x~30). Moves results on decks that read chi from this file: SLAYER growth rates on the SLAYER deck, and the truncation case. The ideal deck's NTV does not read chi. The truncation deck now takes its profiles from a [SLAYER] section (enabled = false) rather than [KineticForces], since the scan reads only [SLAYER]. Also corrects 6de1b8f03, whose message said that running this deck with vac_flag = true moved it off the path that reports a non-Hermitian W-inverse. That warning comes from the Newcomb zero-crossing check, which runs after every forward and Riccati integration regardless of vac_flag, so it still appears here. Co-Authored-By: Claude Opus 5.5 --- .../TkMkr_D3Dlike_Hmode_kinetic.h5 | Bin 57472 -> 63632 bytes .../DIIID-like_truncation_example/gpec.toml | 15 +++++++++------ .../cases/diiid_truncation_n1.toml | 7 +++---- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/examples/DIIID-like_ideal_example/TkMkr_D3Dlike_Hmode_kinetic.h5 b/examples/DIIID-like_ideal_example/TkMkr_D3Dlike_Hmode_kinetic.h5 index 2f084f080315cfd157a6c6ed58ddd06cd72bf2e3..dab58dc3f6e79d84d895b27d1bd9f117018c9ff9 100644 GIT binary patch delta 4923 zcmZ9M30O?+-^ZtAnwc|Gvo}kYQI=>?9*MGim3Bnv$(q!p(P}CQ8C$7{l1d9%lgJXG z5-LJUNQhEGMYcqiEdLYF^S=N0J=Zn!Ip_W@_xJa`&vn+7X(V=OBpRwGen}cJR*iki zyG}!mmTajxGx?cRP~L0&p%z8_`$mnUM)menc*@tc z{0aQ?ul`S*lC)h!B`9=?+G#bZhx%!Y87_&VT^*;msSmo)U9jxGe-t$}0fnNjrlzK@ z{-?{o)DTeAl21|v9#nOTng&7VQ79T}>pK1j;243QcB zKDgnsP;ajQxsPn+D4DM^I8YYmCznljoh`F*5k&S#60diSr@b7?++}A5SAWSyJ z$;ruNib;UNUoP{Jd;81eE9FXWMW{UVcbZZjst65JtdN@octy&UGE$5(z$--N9j*$q zk}1MuicpzXkW3yR_YPAA2gyQ$BjiexC0+r2iu)AG!b3?(USw9Ef|Zdn-(cnM&cQ)) z6W@Svg^x@gBv&qtl=&!peZxZ)D->ao#PS#vzV3Q{7_YTVc@Jkb8lkQd->r?UWuVog;Y^gYOUv00EoQkV{ zskfd-QxP7Xk+2|#id|a@X6&t`qW8oErbZhTbIb<6P*Am0@G)}xq-lL;9OQ6qf zr-O54V~polI;!%hb8o8%22M7o%n|fs;LwFhFNG!y$ivHjx=&zWh^d`m*E9wynrV&0 z7Bb*PWoHBiFmU~?*Qf2P87SF&^RFjy4BR{6pEP0@17-^2t#1x7U{UDX=6IR`Uyolk z2QM@5xH6_eSi^v;h0cqZ1_s_7>D`#}f`NUa?RF}IE(YdA>(fqsXF#g0S*oHDh?`Wj z&YVXe)&FMTzJ3H2I7}nf4JA-$+i(6tGXlf)2b=64M__7h+>g^X1jKm~(|s-kJ{;>| zy_rQI|He&qs|5u7Tz=l+`Vf#Weo5QsPoVnQeVbvS1m48T-m0%6@Wc6ys-S5dft6v| z>hjG5=w@aSI}->Dy4S2%kxaloZRo)H=>%x2D$3gS5ZF4=JI3lDf#?eh^hX>aurSxv zM|zxqGfmo?Qb2APalY)sSyJHl1MkgB2yAg3G*9Caf!F)@RMeLfC@F{ycdI0Y9DX1_ zaD%`uS5@|+j%os#n}f|GBCEHfL|^P_>lm@}Ww z{(MZJXj^J+ZxaDM-n>nBn+e>{xJM6uN+8j|HG%nzfK&FKrHh^uh&_IG)&3U*7)K{O zy4^STB0%9jM@2*(T@{E9&CE-mXyk`FD1oH6SpCx2jT zl1VZybA8)$lCd+My6e6s9jhyFaUdB@YZ=$aojcfueRRyN_ZUrbZf~!QAlYb||F)T| zJLC3&mPWFHoz~_=vh>w()<<$5m9}%x;4S2hlS!wkKFRW$m6=ES1RXtHYedq-de5Ar zq|$3;=M@7G)pK`5$bilfM z`fV9WMQZ1|B+{8v^9u*4lUyNGIY+e;DkNRm=K7Vi&RVxJYBkAHy)!j*k`o8*@1NR2 zfPJIvf(1$5LHUqJq}9(0!iPtbeE7u4(Vk?zt7kBcWQ@i3dCgBqYn3s@_d%aQO1{@$KITL{82>wdn_e%Jgq*^(jo~C5pf4XfVNL z)aq$zF%kZ#Cr8R)V#U)7kwGjbB04rqEoU=fc*icslh4H0yzof^5fhoM+uKx+rA%n; zckuf(fC-w14IUh;{3oV$4*-kukvSNZ2 zIRAXWBqq!YEP}61VdC%4?4kP3OjtS;hqb#hF+BAa<;)x=2BsNW9i7iasy;jAjTaMj zzUlo(`Y|D!6r)PI6T}2(YVz_y%Q)t>hKVgnMYB>jGGVjH;LXi=CgK*9{hGal zRPJvehp3kmlqUK4g+m0tp>`1Tapmi`I4pjBJ-Rfc@iuZ_`+RKC*bA{JkDhuB2E6)$% zurRJ^?}ltC3*8JwifRZ8$HtiFdYZAYT=FbF*O~>#4(f1;0}BDHlB#Ss7CIGkUmsk= zf}rzfWbQH+dY62hqY=TvmbOK=c5fu>{S}ADC9?2w)asv#-7Nf6y`gcl@>mFzCobfj zXW{6Xp8<_mSyZQ8+qk@M{-s+_*UNi1`9-Xcarnj116*gQZK?kSJ}4K2}ND z+q9wT=iX~e&DKVsgLPf!hDrm16<1f0W1KZ=9xH&I%u=TI>w+_E_;8C??ZLE-u zlo2!aD~;IjYYxixwqYanfTzjqxorIKo_Bt72ph)BH!p46Oy<4lEQ-oz!#bcUUVe^^ zFGJfng|%!f&RcPv)_|L*Sit{=6(yFicQo?~%dHV9jRUGt=uXpZw$U*5j&fu->99(t%Yo}7x z!$HT`z^RL=Tr672t6e7GqD+jMQwCfdvHO0bXA~DdtW;m3Y`CasFpSf4BrV{@#za|U0o6v=ITARlKosHG}kxy6mVgg={cHG!G+1!>xOr_^F&eabdyQv}d#y4}U+p5alo8VTw=@e#DRm$ENY8)vb8&5iY>Y|$zK8~&6tA?)S^KpW5zTIso9}_O@YTgk_o;6San(R{ot@E^1=oe%dO#rW!De7rjlx*_N?A3L+W z!gTNPQS#mXQcXJ_ZFy5C=J)cEToN!So-IH{SJi@e0|B;;tlXbrDZmz`1X)60dgD4%p+n2*x_BZ4!T3DokpRn9 zAJMu0RshYeSJNUjgn02G`GG_%M0ZT)pju-gO2QhIag&8;43`($y9+Ua9dE(*7oxKz zCghPy2$AYnNLSuYAuPlV^-)KJc+O{xoPAMC zsPoI?>f*Zn)^Tfw>H>GJz}{LHui~dAXwT5amuC^5t9*1ZW80S2wUN4*Fs~xoVw*1f zhQ*Dn-LH%4`ewJK=X4Q64YmDvQx_`v6IuPz7G2n#yXE`%qb{t=+UFZHM0j{jV5;md z!ocWjCVA!}jCMDlSz;$b@-XweH|CPuX21Jrpa>Q5@0PD#FT$dN!@DM>i165@-J&d4 zgbT~q-gXy62z0mSrPYccR8O5--YUYy{1@vqd35zAJu%R*?3TW% z7;Y+!YbuE0JtXT=qZ_$CxBC4ZA2FJri+7%1AqM+_^YQRlG4j~yL+aDT;LYN{7;{t% z|5z($;|pS(z0F_sty&B{`=0WXO=5&i&3M`JMvPjwi5%`vF+M9j4mD~^;4D`w_Uf;a zpkNk#af`78RNr^R32O=R-kDul?JPk?X#Uzx4+)H)TA6?Jl_1|-#_A1|z~z~h!e)a6 zk)I7ug>RSO=(9bVi?SpbgA|Wztg#Y_68g?@@J1u)M_}|M({fM*8QDX8e*sYtQsgE_5l%Z;H2U;YiW=Wx|+h zu@q+pi$g+XQk0$H*=!jm1%ueGe$Z5k(Y8c<%4jKeJ7*q_u#)0Q>I&zkNm5*#rHEZK zMT)Kfs*#?P6p_uT5r?KqAv<$rUAL?caqGlomy z%4BHY8ze>d>hz^g$%)fm4=;bqmLmJE!R7N*DSnLcZfEyO@Hh9JyWV>VX8*iEJ^f5V zep=(^OeL*-{*BvNcSC|O$>%3ICFFBt_gqE31pJ_1oUq*z9DlI<#F_*N-bJ6xKDtH% zV!CQ$Mf)-dH1I8H&|C?U)9UjJ?If@#=6xDCN`hzOwo2OiOECUw`IN2azFiT6u9*s?m7_^`Y0FckOB)>!piYK75~(--#Xm>vyjd>f(;)QzX6>!Yp>jq%&dHg!op(JM(>y5E&ic gG~!nXktRC3Yw|Q9R&Lv>?P?%I=%^8zOTG&5AGDx|(*OVf delta 135 zcmbR6k-6a@^8^j1h6fY1EErigCSPV|-5C#u}2bjUgz|A1Sz`;;ZlwX#bmzbBF3KX8q%cjiB4piB20iv35 OGow@h(`M5E?+E~_@f^PZ diff --git a/examples/DIIID-like_truncation_example/gpec.toml b/examples/DIIID-like_truncation_example/gpec.toml index 841cc8ddd..72ec72a70 100644 --- a/examples/DIIID-like_truncation_example/gpec.toml +++ b/examples/DIIID-like_truncation_example/gpec.toml @@ -1,8 +1,8 @@ # DIII-D-like H-mode equilibrium — n=1 truncation-only case for the resistive-layer overlap cap. # Reuses the equilibrium and kinetic profiles of the sibling DIIID-like_ideal_example (referenced -# by relative path; not duplicated). psihigh is pushed past the layer-overlap point (psi ~ 0.9997, -# where adjacent resistive layers first touch), so psilim_from_layer_overlap binds: dmlim then -# truncates just past q=7 instead of q=8. Ideal free-boundary stability only, with no local +# by relative path; not duplicated). psihigh is pushed well past the layer-overlap point (psi ~ 0.9985, +# where adjacent resistive layers first touch), so psilim_from_layer_overlap binds: the cap pulls qlim +# to 7 and dmlim steps back to 6.2, excluding q=7 and q=8. Ideal free-boundary stability only, with no local # stability, forcing or perturbed equilibrium: the energies are kept so a regression case can pin # what the capped domain does to the physics, not just to the bookkeeping. @@ -12,7 +12,7 @@ eq_type = "efit" # Type of the input 2D equilibrium file jac_type = "hamada" # Coordinate system (hamada, pest, boozer, equal_arc, park, custom) grid_type = "auto" # Radial grid packing type ("auto" = two-pass measured-curvature grid) psilow = 1e-4 # Lower limit of normalized poloidal flux -psihigh = 0.9999 # Upper limit of normalized poloidal flux (past the psi ~ 0.9997 layer-overlap point, so the cap binds) +psihigh = 0.9999 # Upper limit of normalized poloidal flux (past the psi ~ 0.9985 layer-overlap point, so the cap binds) mpsi = 0 # Number of radial grid intervals (0 = two-pass auto grid from psi_accuracy) psi_accuracy = 0.001 # Target relative accuracy of splined profile derivatives for the auto grid mtheta = 256 # Number of poloidal grid points @@ -43,5 +43,8 @@ set_psilim_via_dmlim = true # Truncate at (last_rational_q + dmlim)/n — dmlim = 0.2 # Truncate integration at (last_rational_q + dmlim)/n (used when set_psilim_via_dmlim = true) psilim_from_layer_overlap = true # Cap psilim where adjacent resistive layers overlap (the scan is recorded either way) -[KineticForces] -kinetic_file = "../DIIID-like_ideal_example/TkMkr_D3Dlike_Hmode_kinetic.h5" # GPEC HDF5 kinetic schema; here only feeds the layer-overlap scan (force_termination skips NTV) +[SLAYER] +# The growth-rate analysis is not run here; the section is present because the layer-overlap scan +# takes its kinetic profiles, and its chi_perp(psi), from the SLAYER profile_file. +enabled = false # Run the SLAYER tearing-mode analysis +profile_file = "../DIIID-like_ideal_example/TkMkr_D3Dlike_Hmode_kinetic.h5" # Kinetic-profile file (relative to the run dir), required when SLAYER is enabled diff --git a/regression-harness/cases/diiid_truncation_n1.toml b/regression-harness/cases/diiid_truncation_n1.toml index e1a153318..94688b3ba 100644 --- a/regression-harness/cases/diiid_truncation_n1.toml +++ b/regression-harness/cases/diiid_truncation_n1.toml @@ -1,8 +1,7 @@ # Regression case: DIII-D-like n=1 truncation-only run with the resistive-layer overlap cap enabled. -# psihigh = 0.9999 puts the overlap point (psi ~ 0.99976) inside the domain, so the cap binds: qlim -# is pulled from 8.35 to 8.0 and dmlim then steps back to 7.2, excluding the q=8 surface. This is the -# only case where psilim_from_layer_overlap changes the domain; every shipped deck leaves it off or -# inert. Ideal free-boundary stability only (no local stability, forcing or PE). Tracks the domain +# psihigh = 0.9999 puts the overlap point (psi ~ 0.99851) inside the domain, so the cap binds: qlim +# is pulled from 8.35 to 7.0 and dmlim then steps back to 6.2, excluding the q=7 and q=8 surfaces. This is the +# only case where psilim_from_layer_overlap changes the domain; every shipped deck leaves it off. Ideal free-boundary stability only (no local stability, forcing or PE). Tracks the domain # selection, the scan's layer widths, and the energies on the capped domain, so a change in what the # truncation does to the physics cannot pass unnoticed. [case] From 9c1937bda5433ce3039dabc0c44b58ab4542bc5b Mon Sep 17 00:00:00 2001 From: d-burg Date: Tue, 22 Sep 2026 17:40:58 -0400 Subject: [PATCH 27/30] =?UTF-8?q?Repo=20-=20DOCS=20-=20Correct=20the=20cri?= =?UTF-8?q?tical-=CE=94=20citations=20and=20record=20which=20diffusivity?= =?UTF-8?q?=20each=20formula=20needs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The critical-Δ source was cited as "Connor-Hastie-Helander 2015" in eight places. It is Connor, Ham, Hastie & Liu, PPCF 57, 065001 (2015), Eqs. (59) and (61), after Lütjens, Luciani & Garbet, Phys. Plasmas 8, 4267 (2001); the W_d loop and its short/long-mean-free-path chi_parallel blend follow Fitzpatrick, Phys. Plasmas 32, 062509 (2025). Both added to the citations page. Record that the two formulas fed by chi_perp want different quantities: the layer width goes through tau_E = r^2/chi_E, the one-fluid perpendicular energy diffusivity, while W_d describes electron-temperature flattening against an electron chi_parallel and so wants the electron channel. One profile, the kinetic file's electron power-balance chi_e, feeds both for now, matching TJ's single-chi convention; separating them is deferred because it needs a chi_i in the kinetic schema, and the upstream power-balance ion chi is not yet usable. Also brings the truncation docs in line with the scaled profiles and the SLAYER-only profile path: the overlap point is now psi ~ 0.9985, outside the 0.995 decks' domain but inside the SLAYER deck's 0.9995. Co-Authored-By: Claude Opus 5.5 --- docs/src/citations.md | 15 ++++++++++ docs/src/stability.md | 37 ++++++++++++++++++------ src/Equilibrium/KineticProfiles.jl | 2 +- src/ForceFreeStates/CoreTypes.jl | 2 +- src/InnerLayer/SLAYER/LayerInputs.jl | 8 ++--- src/InnerLayer/SLAYER/LayerParameters.jl | 12 +++++--- src/Tearing/Runner/Control.jl | 2 +- src/Tearing/Runner/HDF5Output.jl | 4 +-- 8 files changed, 60 insertions(+), 22 deletions(-) diff --git a/docs/src/citations.md b/docs/src/citations.md index ce62125cb..917627b38 100644 --- a/docs/src/citations.md +++ b/docs/src/citations.md @@ -139,6 +139,21 @@ Gives the diffusive-resistive layer width (Eq. 100) and, in Sect. 5.9, restricts --- +> R. Fitzpatrick, "Investigation of tearing mode stability near ideal stability boundaries via asymptotic matching techniques," +> *Physics of Plasmas* **32**, 062509 (2025). +> DOI: [10.1063/5.0273568](https://doi.org/10.1063/5.0273568) (arXiv:2503.24184) + +The critical island width `W_d` and its short/long-mean-free-path parallel conductivity blend, used for the critical-Δ offset in `src/InnerLayer/SLAYER/LayerParameters.jl`. + +--- + +> J. W. Connor, C. J. Ham, R. J. Hastie, and Y. Q. Liu, "The role of thermal conduction in tearing mode theory," +> *Plasma Physics and Controlled Fusion* **57**, 065001 (2015). arXiv:1410.7240 + +The toroidal (Eq. 59) and large-aspect-ratio (Eq. 61) critical-Δ offsets from finite parallel thermal conduction, building on H. Lütjens, J.-F. Luciani, and X. Garbet, *Physics of Plasmas* **8**, 4267 (2001). + +--- + ## Kinetic Forces The following papers develop the kinetic-force and neoclassical toroidal viscosity (NTV) theory underpinning GPEC's kinetic analysis path — the energy principle with kinetic effects, the self-consistent coupling of the perturbed equilibrium to NTV, and the PENTRC (Perturbed Equilibrium Neoclassical TRansport Code) formalism. diff --git a/docs/src/stability.md b/docs/src/stability.md index 44f9422aa..85e06aed9 100644 --- a/docs/src/stability.md +++ b/docs/src/stability.md @@ -286,19 +286,38 @@ the outer knots; an equilibrium whose edge q does not follow that law (a limited not extrapolated. The cut is placed at the last surface before two adjacent layers first touch. -The scan runs whenever kinetic profiles are available (a `[KineticForces]` `kinetic_file`, -or the `[SLAYER]` `profile_file`). Because it resolves that file from the run's TOML, it only runs -on the `gpec.toml` entry point: the programmatic `solve(prob, alg)` path has no inputs to resolve -it from, so the cap cannot be applied there and setting the flag warns instead. Its result is always written to +The scan takes its kinetic profiles from the `[SLAYER]` `profile_file`, through the same control +and loader the SLAYER analysis uses, so both see the same profiles, the same HDF5 group and the +same χ⊥(ψ) — the layer widths cannot disagree between them. A deck without a `[SLAYER]` +`profile_file` does not get the scan. Because the file is resolved from the run's TOML, the scan +only runs on the `gpec.toml` entry point: the programmatic `solve(prob, alg)` path has no inputs to +resolve it from, so the cap cannot be applied there and setting the flag warns instead. Its result is always written to `ForceFreeStates/LayerOverlap/`, but it only constrains the domain when `psilim_from_layer_overlap = true`. It then caps `qlim` before the `dmlim` step, so `dmlim` still selects the final surface from inside the cap. A cap beyond `psihigh` has no effect. -The flag is off by default. On the shipped DIII-D-like decks the overlap point sits near -ψ ≈ 0.9997, beyond every deck's `psihigh`, so enabling it would change nothing there; -`examples/DIIID-like_truncation_example` raises `psihigh` to 0.9999 so the cap binds and -excludes the q = 8 surface. Whenever `psilim` lands past the overlap point, with the flag on -or off, GPEC warns. +The flag is off by default, so every shipped deck is unchanged by it. With the shipped +DIII-D-like profiles the overlap point is ψ ≈ 0.9985: outside the ideal and Riccati decks' +`psihigh = 0.995`, where the cap could not bind even if enabled, but inside the SLAYER deck's +0.9995, where enabling it would exclude the q = 7 surface. `examples/DIIID-like_truncation_example` +raises `psihigh` to 0.9999 with the flag on: the cap excludes q = 7 and q = 8, and the resulting +domain (`psilim ≈ 0.99498`, last surface q = 6) reproduces the hand-chosen `psihigh = 0.995` of the +ideal deck. Whenever `psilim` lands past the overlap point, with the flag on or off, GPEC warns; +on the shipped decks that includes the SLAYER deck. + +**Which perpendicular diffusivity.** The two formulas that take `chi_perp` want different +quantities. The layer width goes through `P_perp = τ_R/τ_E` with `τ_E = r²/χ_E`, and χ_E is the +one-fluid perpendicular *energy* diffusivity, the gradient-weighted combination of the electron and +ion channels, `χ_E = (n_e χ_e ∇T_e + n_i χ_i ∇T_i)/(n_e ∇T_e + n_i ∇T_i)`. The critical-Δ island +width `W_d ∝ (χ_⊥/χ_∥)^{1/4}` describes electron-temperature flattening against an electron parallel +conductivity, so its χ_⊥ is the electron channel. GPEC currently feeds both from one profile, the +kinetic file's `chi_e`, which in the shipped DIII-D-like data is the electron power-balance +diffusivity: the right channel for the critical Δ, and a proxy for χ_E in the layer width. This is +the same single-χ convention as Fitzpatrick's TJ code, which also assumes `T_e = T_i`. +Separating the two is deferred: it needs an ion `chi_i` in the kinetic-profile schema, and the +power-balance ion diffusivity available upstream is not yet usable (it comes back negative across +most of the radius on the cases checked). Since both widths scale as `χ^{1/4}`, a factor-2 error in +χ moves them by about 19%, but that can be enough to move the overlap cut by a surface. | Dataset | Contents | |---|---| diff --git a/src/Equilibrium/KineticProfiles.jl b/src/Equilibrium/KineticProfiles.jl index 74a95afc1..4dbd7b157 100644 --- a/src/Equilibrium/KineticProfiles.jl +++ b/src/Equilibrium/KineticProfiles.jl @@ -66,7 +66,7 @@ temperatures eV, frequencies rad/s, diffusivities m²/s. | `T_i`/`T_e` | ion / electron temperature | | `omega_E` | ExB rotation | | `omega_tor` | toroidal rotation (optional) | -| `chi_e` | perpendicular heat diffusivity χ⊥ | +| `chi_e` | perpendicular heat diffusivity χ⊥ (shipped data: electron power-balance χ_e; see the stability docs) | | `chi_phi` | toroidal momentum diffusivity χ_φ | | `species_densities` | named per-species densities (e.g. `"n_D"`, `"n_T"`) for explicit multi-ion input; `nothing` for ASCII / no extras | | `provenance` | short string recording the source file/format | diff --git a/src/ForceFreeStates/CoreTypes.jl b/src/ForceFreeStates/CoreTypes.jl index 2f9d4ed8f..997bb340c 100644 --- a/src/ForceFreeStates/CoreTypes.jl +++ b/src/ForceFreeStates/CoreTypes.jl @@ -135,7 +135,7 @@ gpec.toml. - `numunorms_init::Int` - Initial array size for solution normalization data - `singfac_min::Float64` - Fractional distance from rational q at which ideal jump condition is enforced - `set_psilim_via_dmlim::Bool` - Truncate the integration domain at `(last_rational_q + dmlim) / n` rather than at `qhigh` / `psihigh`. Fortran STRIDE found that truncating ~20 % above the outermost rational (`dmlim = 0.2`) avoids a numerical kink instability in δW that appears when the integration ends too close to or just below a rational surface. **For diverted equilibria where q → ∞ at the separatrix** (e.g. DIII-D geqdsks, the bulk of production use) this costs negligible physical domain because rationals get arbitrarily dense near the LCFS — `set_psilim_via_dmlim = true` is the safe and recommended default. **For limited circular / analytical equilibria with finite q at the edge** (Solovev, LAR scans), rationals are sparse and 20 % above the last rational chops off too much edge, so set `set_psilim_via_dmlim = false` and let `qhigh` / `psihigh` control the truncation. Multi-`n` runs are not supported by this truncation (the "outermost rational + dmlim / n" depends on which `n`); when `set_psilim_via_dmlim = true` with `nn_low != nn_high`, `sing_lim!` warns and falls back to `qhigh` / `psihigh`. Default `true`. - - `psilim_from_layer_overlap::Bool` - Cap the integration domain where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9: past that point no surface retains a well-separated inner region. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it. The scan runs whenever kinetic profiles are readable and is recorded under `ForceFreeStates/LayerOverlap/` either way; this flag only decides whether it constrains the domain. It needs a kinetic file named in the run's TOML, so the programmatic `solve(prob, alg)` entry point cannot run it and the flag is inert there (with a warning). Inert on every shipped deck, whose `psihigh` sits inside the overlap point. See the integration-domain truncation section of the stability documentation. Default `false`. + - `psilim_from_layer_overlap::Bool` - Cap the integration domain where adjacent rational surfaces' resistive layers overlap, after Fitzpatrick, Nucl. Fusion 2025 Sect. 5.9: past that point no surface retains a well-separated inner region. Applied as an upper bound on `qlim` at the top of `sing_lim!`, so `dmlim` / `qhigh` still select the final surface from inside it. The scan runs whenever the run's `[SLAYER]` section names a readable `profile_file` — the same profiles and χ⊥(ψ) the SLAYER analysis uses — and is recorded under `ForceFreeStates/LayerOverlap/` either way; this flag only decides whether it constrains the domain. It resolves that file from the run's TOML, so the programmatic `solve(prob, alg)` entry point cannot run it and the flag is inert there (with a warning). Off on every shipped deck; with the shipped DIII-D-like profiles the overlap point (ψ ≈ 0.9985) lies outside the 0.995 decks' domain but inside the SLAYER deck's 0.9995. See the integration-domain truncation section of the stability documentation. Default `false`. - `dmlim::Float64` - Distance beyond last rational surface (normalised ∈ [0,1) in units of 1/n). Only used when `set_psilim_via_dmlim` is true. Fortran STRIDE convention is 0.2 (truncate 20 % of one rational-surface spacing above the last surface), retained here. - `sing_order::Int` - Order of singular layer (Frobenius) expansion at rational surfaces. Default 6 (Fortran STRIDE convention for Δ' calculations; lower values trade accuracy for speed). - `qhigh::Float64` - Integration terminated at q limit determined by minimum of qhigh and qa from equil diff --git a/src/InnerLayer/SLAYER/LayerInputs.jl b/src/InnerLayer/SLAYER/LayerInputs.jl index 252e81ae9..4aa143656 100644 --- a/src/InnerLayer/SLAYER/LayerInputs.jl +++ b/src/InnerLayer/SLAYER/LayerInputs.jl @@ -190,7 +190,7 @@ profiles, without an intermediate file round-trip. (`:lar`, `:rfitzp`, `:toroidal`). When `nothing` (default), Julia derives it per-surface from the equilibrium as `dr_val_k = D_R(ψ_k) = E_k + F_k + H_k²`, - consistent with Connor-Hastie-Helander 2015 (PPCF 57 065001) Eq. 59 + consistent with Connor, Ham, Hastie & Liu 2015 (PPCF 57 065001) Eq. 59 which uses `(−D_R)` in the χ_‖-matching critical-Δ. Pass a scalar / vector / callable to override. @@ -313,7 +313,7 @@ function build_slayer_inputs(equil, sings, profiles::KineticProfiles; # dr_val: per-surface resistive interchange index D_R = E + F + H² # (Glasser-Greene-Johnson 1975). Used by `_solve_dc_tmp` to compute - # the χ_‖-matching critical-Δ via Connor-Hastie-Helander 2015 Eq. 59, + # the χ_‖-matching critical-Δ via Connor et al. 2015 Eq. 59, # which has `(−D_R)` as a multiplier. NOT the Mercier index # D_I = E + F + H − 1/4 (see this function's docstring); we use the # physically correct D_R here. @@ -332,8 +332,8 @@ function build_slayer_inputs(equil, sings, profiles::KineticProfiles; _eval(dr_val, psi) end - # dgeo_val: only used by dc_type=:toroidal (the Connor-Hastie- - # Helander 2015 formula). Auto-derivation requires ⟨|∇ψ|²⟩ FSA + # dgeo_val: only used by dc_type=:toroidal (the Connor et al. + # 2015 formula). Auto-derivation requires ⟨|∇ψ|²⟩ FSA # which the current `ResistGeometry` doesn't expose; for now we # require an explicit value if the toroidal dc_type is selected. dgeo_val_k = if dgeo_val === nothing diff --git a/src/InnerLayer/SLAYER/LayerParameters.jl b/src/InnerLayer/SLAYER/LayerParameters.jl index ae875dea4..52ac0e173 100644 --- a/src/InnerLayer/SLAYER/LayerParameters.jl +++ b/src/InnerLayer/SLAYER/LayerParameters.jl @@ -41,7 +41,7 @@ de-normalization. The parametrization uses `P_perp`, `P_tor`, and | `bt` | Toroidal field [T] | | `sval_r` | r-based magnetic shear r_s · (dq/dr) / q (Fitzpatrick convention) | | `dr_val` | Resistive interchange D_R = E + F + H² (critical-Δ input; auto-derived from GGJ coefficients unless overridden) | -| `dgeo_val` | Connor-Hastie-Helander 2015 Eq. 59 geometric factor (0 unless supplied) | +| `dgeo_val` | Connor et al. (2015) Eq. 59 geometric factor (0 unless supplied) | | `eta` | Parallel resistivity entering τ_R = μ₀r_s²/η [Ω·m] | | `d_beta` | Beta-weighted ion length scale c_β · d_i [m] | | `dc_tmp` | Critical-Δ offset from chi_parallel matching | @@ -129,8 +129,10 @@ function r_based_shear(rs::Real, q::Real, dq_dpsi::Real, da_dpsi::Real) return rs * dq_dpsi / (q * da_dpsi) end -# Internal: solve the Wd self-consistency loop for the chi_parallel-based -# critical Δ (Connor-Hastie-Helander 2015). Returns dc_tmp as a Float64. +# Internal: solve the Wd self-consistency loop for the chi_parallel-based critical Δ. W_d and the +# smfp/lmfp chi_parallel blend follow Fitzpatrick, Phys. Plasmas 32, 062509 (2025); the toroidal and +# large-aspect-ratio offsets are Connor, Ham, Hastie & Liu, PPCF 57, 065001 (2015) Eqs. (59) and (61), +# after Lütjens, Luciani & Garbet, Phys. Plasmas 8, 4267 (2001). Returns dc_tmp as a Float64. function _solve_dc_tmp(; dc_type::Symbol, dr_val::Real, dgeo_val::Real, chi_perp::Real, t_e::Real, zeff::Real, tau_ee::Real, rs::Real, R0::Real, sval_r::Real, n_tor::Integer, @@ -210,7 +212,9 @@ parametrization (P_perp/P_tor/D_norm; the older magnetic/electron Prandtl - `R0` -- major radius [m] - `mu_i` -- ion mass in proton-mass units (e.g. 2.0 for D) - `zeff` -- effective charge - - `chi_perp`, `chi_tor` -- perpendicular / toroidal heat diffusivity [m²/s] + - `chi_perp`, `chi_tor` -- perpendicular / toroidal heat diffusivity [m²/s]. `chi_perp` feeds both + `P_perp` (which wants the one-fluid energy diffusivity χ_E) and the critical-Δ `W_d` (which wants + the electron channel); one profile serves both for now, see the stability docs - `m`, `n` -- poloidal / toroidal mode numbers at the surface - `dr_val`, `dgeo_val` -- inputs for the critical-Δ formula - `dc_type` -- one of `:none`, `:lar`, `:rfitzp`, `:toroidal` diff --git a/src/Tearing/Runner/Control.jl b/src/Tearing/Runner/Control.jl index 1a12ff7e6..4044c1fec 100644 --- a/src/Tearing/Runner/Control.jl +++ b/src/Tearing/Runner/Control.jl @@ -23,7 +23,7 @@ constructor. (multi-surface determinant) - `dc_type` -- critical-Δ offset selector, one of `:none`, `:lar`, `:rfitzp`, `:toroidal` (χ_‖-matching critical-Δ formulas, - Connor-Hastie-Helander 2015) + Connor, Ham, Hastie & Liu 2015) - `msing_max` -- number of surfaces to include in the coupled determinant (default 3; capped at `length(sings)` at runtime) diff --git a/src/Tearing/Runner/HDF5Output.jl b/src/Tearing/Runner/HDF5Output.jl index b0fc8d2e4..87330a52e 100644 --- a/src/Tearing/Runner/HDF5Output.jl +++ b/src/Tearing/Runner/HDF5Output.jl @@ -90,10 +90,10 @@ const TEARING_H5_ANNOTATIONS = [ "PerSurface/sval_r" => (; long_name="r-based magnetic shear r_s·(dq/dr)/q (Fitzpatrick convention)", dims=("surface",)), "PerSurface/D_R" => (; long_name="resistive interchange D_R = E + F + H² for the critical-Δ formula (auto-derived from GGJ coefficients unless overridden)", dims=("surface",)), - "PerSurface/D_geo" => (; long_name="Connor-Hastie-Helander 2015 Eq. 59 geometric factor (0 unless supplied)", dims=("surface",)), + "PerSurface/D_geo" => (; long_name="Connor et al. 2015 Eq. 59 geometric factor (0 unless supplied)", dims=("surface",)), "PerSurface/eta" => (; long_name="parallel resistivity at each surface", units="Ohm*m", dims=("surface",)), "PerSurface/d_beta" => (; long_name="β-weighted ion drift scale d_β", units="m", dims=("surface",)), - "PerSurface/D_c_offset" => (; long_name="critical-Δ offset from χ_∥/χ_⊥ matching (Connor-Hastie-Helander 2015 Eq. 59)", dims=("surface",)), + "PerSurface/D_c_offset" => (; long_name="critical-Δ offset from χ_∥/χ_⊥ matching (Connor et al. 2015 Eq. 59)", dims=("surface",)), "PerSurface/D_c_type" => (; long_name="per-surface D_c prescription label", dims=("surface",)), "PerSurface/k_ref" => (; long_name="reference-length ratio K = r_s·(dψ_N/dr) at each surface", dims=("surface",)), "PerSurface/alpha_mercier" => (; long_name="Mercier Frobenius exponent α = √(−D_I) at each surface (Glasser-Greene-Johnson 1975 Eq. 48)", dims=("surface",)), From 75457a1b398eb8c2385a64b059dd2d2325b12c6d Mon Sep 17 00:00:00 2001 From: d-burg Date: Mon, 12 Oct 2026 18:30:21 -0400 Subject: [PATCH 28/30] Tearing - FEATURE! - Take Zeff for the SLAYER layer from the kinetic profiles The SLAYER layer and the resistive-layer overlap scan both used a scalar Zeff, and the scan ignored the run's [SLAYER] settings altogether (Zeff = 1, deuterium, default resistivity model and Coulomb logarithm). Zeff is now a profile, taken in this order: - a `zeff` dataset in the kinetic profile file, when present; - otherwise quasi-neutrality with one impurity of charge `zimp` (new [SLAYER] key, default 6): Zeff = zimp - (n_i/n_e)(zimp - 1); - otherwise the scalar [SLAYER] `zeff`. The run logs which source it used. `build_slayer_inputs` and `build_ggj_inputs` accept Zeff as a scalar or a callable of psi, and the overlap scan receives the run's own bt, mu_i, Zeff, theta, resistivity model and Coulomb-logarithm form, so the scan and the SLAYER stage see one plasma. Results move for any deck whose kinetic file carries n_i: the shipped SLAYER example goes from Zeff = 1 to about 1.9, which raises its resistivity and changes its growth rates. Co-Authored-By: Claude Opus 5.5 --- docs/src/kinetic_forces.md | 12 ++++--- examples/DIIID-like_SLAYER_example/gpec.toml | 3 +- src/Equilibrium/KineticProfiles.jl | 13 ++++--- src/GeneralizedPerturbedEquilibrium.jl | 16 ++++++--- src/InnerLayer/SLAYER/LayerInputs.jl | 9 ++--- src/Tearing/LayerInputs.jl | 9 ++--- src/Tearing/LayerOverlap.jl | 10 +++--- src/Tearing/Runner/Control.jl | 11 +++++- src/Tearing/Runner/run_slayer.jl | 38 +++++++++++++++++--- 9 files changed, 90 insertions(+), 31 deletions(-) diff --git a/docs/src/kinetic_forces.md b/docs/src/kinetic_forces.md index 858bb53a0..d5df873e0 100644 --- a/docs/src/kinetic_forces.md +++ b/docs/src/kinetic_forces.md @@ -12,8 +12,9 @@ extension: - **HDF5 (`.h5`/`.hdf5`)** — the GPEC kinetic schema (recommended). Datasets at the file root: required `psi` (normalized poloidal flux), `n_e`, `T_i`, `T_e`, `omega_E` (and `n_i`, defaulting to `n_e` if omitted); optional - `omega_tor`, `chi_e` (perpendicular heat diffusivity ``\chi_\perp``), and - `chi_phi` (toroidal momentum diffusivity ``\chi_\phi``). Each dataset + `omega_tor`, `chi_e` (perpendicular heat diffusivity ``\chi_\perp``), + `chi_phi` (toroidal momentum diffusivity ``\chi_\phi``), and `zeff` + (effective charge ``Z_\mathrm{eff}``, dimensionless). Each dataset carries a `units` attribute; the root carries `schema_version` and `provenance`. Densities are m⁻³, temperatures eV, frequencies rad/s, diffusivities m²/s. Additional datasets named `n_*` (e.g. `n_D`, `n_T`) @@ -24,9 +25,12 @@ extension: `psi_n n_i n_e T_i[eV] T_e[eV] omega_E`, retained for backward compatibility. Header rows are skipped. -The NTV calculation consumes `n_i, n_e, T_i, T_e, omega_E`; `chi_e`/`chi_phi`, +The NTV calculation consumes `n_i, n_e, T_i, T_e, omega_E`; `chi_e`/`chi_phi`/`zeff`, when present, are carried for the resistive-layer (SLAYER) analysis and ignored -here. +here. That analysis takes ``Z_\mathrm{eff}(\psi)`` from the `zeff` dataset when the file +has one, otherwise from `n_i/n_e` with the `[SLAYER]` impurity charge `zimp`, otherwise +from the scalar `[SLAYER] zeff`. Supply `zeff` whenever the impurity content is not a +single species fixed by `n_i/n_e`. ## Multi-ion runs diff --git a/examples/DIIID-like_SLAYER_example/gpec.toml b/examples/DIIID-like_SLAYER_example/gpec.toml index db8aec602..8183fefe6 100644 --- a/examples/DIIID-like_SLAYER_example/gpec.toml +++ b/examples/DIIID-like_SLAYER_example/gpec.toml @@ -72,7 +72,8 @@ scan_mode = "amr" # Q-plane scan strategy: "amr" (adaptive re coupling_mode = "uncoupled" # "uncoupled" (per-surface) or "coupled" (multi-surface determinant) dc_type = "none" # Critical-Δ offset selector: "none", "lar", "rfitzp", or "toroidal" mu_i = 2.0 # Ion mass in proton-mass units (2.0 = deuterium) -zeff = 1.0 # Effective charge +zeff = 1.0 # fallback only; Z_eff(ψ) comes from the kinetic file (its zeff profile, else n_i/n_e with zimp) +zimp = 6.0 # Impurity charge closing quasi-neutrality when Z_eff(ψ) is derived from n_i/n_e (6.0 = carbon) chi_perp = 1.0 # fallback only; the kinetic file supplies χ⊥(ψ) chi_tor = 1.0 # fallback only; the kinetic file supplies χ_φ(ψ) pole_threshold_adaptive = true # SLAYER |Δ| spans many orders; adapt to 10·median(|Δ|) diff --git a/src/Equilibrium/KineticProfiles.jl b/src/Equilibrium/KineticProfiles.jl index 762f4c371..3d4132d72 100644 --- a/src/Equilibrium/KineticProfiles.jl +++ b/src/Equilibrium/KineticProfiles.jl @@ -68,6 +68,7 @@ temperatures eV, frequencies rad/s, diffusivities m²/s. | `omega_tor` | toroidal rotation (optional) | | `chi_e` | perpendicular heat diffusivity χ⊥ (shipped data: electron power-balance χ_e; see the stability docs) | | `chi_phi` | toroidal momentum diffusivity χ_φ | +| `zeff` | effective charge Z_eff(ψ) supplied directly (optional); the resistive-layer analysis prefers it to its closure | | `species_densities` | named per-species densities (e.g. `"n_D"`, `"n_T"`) for explicit multi-ion input; `nothing` for ASCII / no extras | | `provenance` | short string recording the source file/format | """ @@ -81,16 +82,17 @@ struct KineticProfileData omega_tor::Union{Nothing,Vector{Float64}} chi_e::Union{Nothing,Vector{Float64}} chi_phi::Union{Nothing,Vector{Float64}} + zeff::Union{Nothing,Vector{Float64}} species_densities::Union{Nothing,Dict{String,Vector{Float64}}} provenance::String end function KineticProfileData(; psi, n_i=nothing, n_e=nothing, T_i=nothing, T_e=nothing, - omega_E=nothing, omega_tor=nothing, chi_e=nothing, chi_phi=nothing, + omega_E=nothing, omega_tor=nothing, chi_e=nothing, chi_phi=nothing, zeff=nothing, species_densities=nothing, provenance="") _v(x) = x === nothing ? nothing : Float64.(collect(x)) return KineticProfileData(Float64.(collect(psi)), _v(n_i), _v(n_e), _v(T_i), _v(T_e), - _v(omega_E), _v(omega_tor), _v(chi_e), _v(chi_phi), species_densities, String(provenance)) + _v(omega_E), _v(omega_tor), _v(chi_e), _v(chi_phi), _v(zeff), species_densities, String(provenance)) end const _KINETIC_H5_EXTS = (".h5", ".hdf5", ".he5") @@ -98,7 +100,7 @@ const _KINETIC_H5_EXTS = (".h5", ".hdf5", ".he5") # Dataset units written into / expected from the HDF5 kinetic schema. const _KINETIC_H5_UNITS = Dict("psi" => "normalized poloidal flux", "n_i" => "m^-3", "n_e" => "m^-3", "T_i" => "eV", "T_e" => "eV", "omega_E" => "rad/s", - "omega_tor" => "rad/s", "chi_e" => "m^2/s", "chi_phi" => "m^2/s") + "omega_tor" => "rad/s", "chi_e" => "m^2/s", "chi_phi" => "m^2/s", "zeff" => "dimensionless") """ read_kinetic_file(path; group="/") -> KineticProfileData @@ -137,7 +139,7 @@ function _read_kinetic_h5(path::AbstractString; group::AbstractString="/") haskey(ats, "provenance") && (prov = string(read(ats["provenance"]))) # Non-standard datasets named `n_*` (e.g. "n_D", "n_T") are named per-species density # profiles for explicit multi-ion input; other names are reserved for future schema fields. - standard = ("psi", "n_i", "n_e", "T_i", "T_e", "omega_E", "omega_tor", "chi_e", "chi_phi") + standard = ("psi", "n_i", "n_e", "T_i", "T_e", "omega_E", "omega_tor", "chi_e", "chi_phi", "zeff") extras = Dict{String,Vector{Float64}}() for k in keys(g) (k in standard || !startswith(k, "n_")) && continue @@ -147,7 +149,7 @@ function _read_kinetic_h5(path::AbstractString; group::AbstractString="/") return KineticProfileData(; psi=Float64.(vec(read(g["psi"]))), n_i=rd("n_i"), n_e=rd("n_e"), T_i=rd("T_i"), T_e=rd("T_e"), omega_E=rd("omega_E"), omega_tor=rd("omega_tor"), - chi_e=rd("chi_e"), chi_phi=rd("chi_phi"), + chi_e=rd("chi_e"), chi_phi=rd("chi_phi"), zeff=rd("zeff"), species_densities=(isempty(extras) ? nothing : extras), provenance=prov) end end @@ -179,6 +181,7 @@ function write_kinetic_h5(path::AbstractString, data::KineticProfileData; put("omega_tor", data.omega_tor) put("chi_e", data.chi_e) put("chi_phi", data.chi_phi) + put("zeff", data.zeff) # Named per-species densities (multi-ion input); dataset names must be `n_*` to round-trip. if data.species_densities !== nothing for (name, v) in data.species_densities diff --git a/src/GeneralizedPerturbedEquilibrium.jl b/src/GeneralizedPerturbedEquilibrium.jl index 1d5752539..1207c923c 100755 --- a/src/GeneralizedPerturbedEquilibrium.jl +++ b/src/GeneralizedPerturbedEquilibrium.jl @@ -557,11 +557,17 @@ function _overlap_slayer_inputs(inputs, dir_path::AbstractString) @warn "Layer-overlap scan skipped: could not read the [SLAYER] profile_file." exception = err return nothing end - # chi(psi) from the file where it carries one, else the control's scalar fallback -- the same - # precedence run_slayer uses. + # chi(psi) and Z_eff(psi) from the file where it carries them, else the control's scalar + # fallbacks -- the same precedence run_slayer uses. Every other plasma parameter the layer + # widths depend on is the run's own [SLAYER] setting, so the scan and the SLAYER stage see + # one plasma. return (; profiles=loaded.profiles, chi_perp=loaded.chi_perp === nothing ? ctrl.chi_perp : loaded.chi_perp, - chi_tor=loaded.chi_tor === nothing ? ctrl.chi_tor : loaded.chi_tor) + chi_tor=loaded.chi_tor === nothing ? ctrl.chi_tor : loaded.chi_tor, + zeff=loaded.zeff === nothing ? ctrl.zeff : loaded.zeff, + bt=ctrl.bt, mu_i=ctrl.mu_i, theta=ctrl.theta_sample, + resistivity_model=Runner._build_resistivity_model(ctrl.resistivity_model), + lnLambda_form=ctrl.lnLambda_form) end # The binding scan across toroidal mode numbers: the one with the innermost overlap point, since @@ -583,7 +589,9 @@ function _layer_overlap_scan(overlap_inputs, intr::ForceFreeStatesInternal, equi # Eq. (30), so the scan is driven in that label regardless of the SLAYER default. scans = [ Tearing.resistive_layer_overlap(equil, overlap_inputs.profiles; n_tor=n, rs_method=:flux, - chi_perp=overlap_inputs.chi_perp, chi_tor=overlap_inputs.chi_tor) + chi_perp=overlap_inputs.chi_perp, chi_tor=overlap_inputs.chi_tor, + bt=overlap_inputs.bt, mu_i=overlap_inputs.mu_i, zeff=overlap_inputs.zeff, theta=overlap_inputs.theta, + resistivity_model=overlap_inputs.resistivity_model, lnLambda_form=overlap_inputs.lnLambda_form) for n in intr.nlow:intr.nhigh ] return _binding_overlap(scans) diff --git a/src/InnerLayer/SLAYER/LayerInputs.jl b/src/InnerLayer/SLAYER/LayerInputs.jl index 4aa143656..2e0db5ab9 100644 --- a/src/InnerLayer/SLAYER/LayerInputs.jl +++ b/src/InnerLayer/SLAYER/LayerInputs.jl @@ -180,7 +180,8 @@ profiles, without an intermediate file round-trip. physical field, so passing it as a scalar is almost always wrong. - `mu_i` -- ion mass in proton-mass units (default `2.0` for D). - - `zeff` -- effective charge (default `1.0`). + - `zeff` -- effective charge. Scalar or a callable of `psi`, evaluated per + surface (default `1.0`). - `chi_perp` -- perpendicular heat diffusivity [m²/s]. Scalar or a callable of `psi` (default `1.0`). - `chi_tor` -- toroidal heat diffusivity [m²/s]. Scalar or a callable @@ -230,7 +231,7 @@ function build_slayer_inputs(equil, sings, profiles::KineticProfiles; R0=nothing, rs_method::Symbol=:midplane, mu_i::Real=2.0, - zeff::Real=1.0, + zeff=1.0, z_i::Real=1.0, chi_perp=1.0, chi_tor=1.0, @@ -308,7 +309,7 @@ function build_slayer_inputs(equil, sings, profiles::KineticProfiles; else lnL = coulomb_log_e(prof.n_e, prof.T_e; form=lnLambda_form) nu_star_e(prof.n_e, prof.T_e, rg.R_major, rg.eps_local, - q, zeff; lnLamb=lnL) + q, _eval(zeff, psi); lnLamb=lnL) end # dr_val: per-surface resistive interchange index D_R = E + F + H² @@ -377,7 +378,7 @@ function build_slayer_inputs(equil, sings, profiles::KineticProfiles; n_e=prof.n_e, t_e=prof.T_e, t_i=prof.T_i, omega=prof.omega, omega_e=ω_e_use, omega_i=ω_i_use, qval=q, sval_r=sval_r, bt=_bt_at(psi), - rs=rs, R0=R0_use, mu_i=mu_i, zeff=zeff, + rs=rs, R0=R0_use, mu_i=mu_i, zeff=_eval(zeff, psi), chi_perp=_eval(chi_perp, psi), chi_tor=_eval(chi_tor, psi), m=m_res, n=n_res, diff --git a/src/Tearing/LayerInputs.jl b/src/Tearing/LayerInputs.jl index 3c1e2cc35..e7c5546ba 100644 --- a/src/Tearing/LayerInputs.jl +++ b/src/Tearing/LayerInputs.jl @@ -62,7 +62,7 @@ Throws if any surface's `restype` is still `nothing` — call `ForceFreeStates.resist_eval_all!(intr, equil)` first. """ function build_ggj_inputs(equil, sings, profiles::KineticProfiles; - mu_i::Real=2.0, zeff::Real=1.0, + mu_i::Real=2.0, zeff=1.0, v1_scale::Real=1.0, resistivity_model::NeoResistivityModel=SpitzerModel(), lnLambda_form::Symbol=:nrl) @@ -93,12 +93,13 @@ function build_ggj_inputs(equil, sings, profiles::KineticProfiles; # Shared Coulomb log and resistivity closure (identical to SLAYER # when the same resistivity_model is selected). lnLamb = coulomb_log_e(n_e, t_e; form=lnLambda_form) + zeff_k = zeff isa Real ? Float64(zeff) : Float64(zeff(sing.psifac)) if resistivity_model isa SpitzerModel - eta_use = eta_spitzer(n_e, t_e, zeff; lnLamb=lnLamb) + eta_use = eta_spitzer(n_e, t_e, zeff_k; lnLamb=lnLamb) else nuestar = nu_star_e(n_e, t_e, rg.R_major, rg.eps_local, - sing.q, zeff; lnLamb=lnLamb) - eta_use = eta_neoclassical(resistivity_model, n_e, t_e, zeff, + sing.q, zeff_k; lnLamb=lnLamb) + eta_use = eta_neoclassical(resistivity_model, n_e, t_e, zeff_k, rg.f_trap, nuestar; lnLamb=lnLamb) end rho = mu_i * M_P * n_e diff --git a/src/Tearing/LayerOverlap.jl b/src/Tearing/LayerOverlap.jl index 623f93675..061a4898f 100644 --- a/src/Tearing/LayerOverlap.jl +++ b/src/Tearing/LayerOverlap.jl @@ -148,8 +148,9 @@ Riccati solve; `delta_s` is solved per surface as a reported comparison only. - `rs_method` -- radial label the widths and their ψ-conversion Jacobian are taken in (default `:midplane`; see `radial_label`). The caller wiring this scan into the domain truncation passes `:flux`, the label Fitzpatrick Eq. (100) is anchored to - - `mu_i`, `zeff`, `chi_perp`, `chi_tor`, `resistivity_model`, `lnLambda_form` - -- passed through to `build_slayer_inputs` + - `bt`, `mu_i`, `zeff`, `chi_perp`, `chi_tor`, `resistivity_model`, `lnLambda_form` + -- passed through to `build_slayer_inputs`. The defaults are placeholders: a caller + scanning a real run must pass that run's own values, as the domain-truncation wiring does The overlap criterion is that surface `k` overlaps its inner neighbour when `ψ_k − w_k/2 < ψ_{k-1} + w_{k-1}/2`. When that happens **both** surfaces are @@ -165,8 +166,9 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; extrapolate::Bool=true, theta::Real=0.0, rs_method::Symbol=:midplane, + bt=nothing, mu_i::Real=2.0, - zeff::Real=1.0, + zeff=1.0, chi_perp=1.0, chi_tor=1.0, resistivity_model::NeoResistivityModel=SauterNeoModel(), @@ -281,7 +283,7 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; # which makes iota_e singular) is recorded and skipped rather than aborting the scan. params = try build_slayer_inputs(equil, [sing], profiles; rs_method=rs_method, - mu_i=mu_i, zeff=zeff, chi_perp=chi_perp, chi_tor=chi_tor, + bt=bt, mu_i=mu_i, zeff=zeff, chi_perp=chi_perp, chi_tor=chi_tor, dr_val=0.0, dc_type=:none, theta=theta, resistivity_model=resistivity_model, lnLambda_form=lnLambda_form) catch err diff --git a/src/Tearing/Runner/Control.jl b/src/Tearing/Runner/Control.jl index 4044c1fec..41b862a5d 100644 --- a/src/Tearing/Runner/Control.jl +++ b/src/Tearing/Runner/Control.jl @@ -33,7 +33,13 @@ constructor. `B_T = F(ψ)/(2π·R₀)` per surface from the equilibrium's F-spline; a scalar or a callable of `psi` overrides it - `mu_i` -- ion mass in proton-mass units (default 2.0 for D) - - `zeff` -- effective charge + - `zeff` -- fallback effective charge. `Z_eff(ψ)` is taken, in order of precedence, from + the kinetic file's own `zeff` profile; else derived from the file's `n_i/n_e` with the + impurity charge `zimp`; else this scalar at every surface. A dataset that is absent or + all-zero counts as not provided + - `zimp` -- charge of the single impurity species that closes quasi-neutrality when + `Z_eff(ψ)` is derived from `n_i/n_e` (default 6.0, carbon); the main ion has charge 1. + Unused when the file supplies a `zeff` profile - `chi_perp`, `chi_tor` -- fallback perpendicular / toroidal heat diffusivity [m²/s], used only when the kinetic file carries no usable `chi_e`/`chi_phi` profile (dataset absent or all-zero); otherwise the @@ -107,6 +113,7 @@ there is one consistent interface for resistive and kinetic profiles. bt::Union{Float64,Nothing} = nothing mu_i::Float64 = 2.0 zeff::Float64 = 1.0 + zimp::Float64 = 6.0 chi_perp::Float64 = 1.0 chi_tor::Float64 = 1.0 dr_val::Union{Float64,Nothing} = nothing @@ -183,6 +190,8 @@ function validate(ctrl::SLAYERControl) ctrl.lnLambda_form in _VALID_LNLAMBDA_FORMS || throw(ArgumentError("SLAYERControl: lnLambda_form=$(ctrl.lnLambda_form) " * "not in $(_VALID_LNLAMBDA_FORMS)")) + ctrl.zimp > 1 || + throw(ArgumentError("SLAYERControl: zimp=$(ctrl.zimp) must exceed the main-ion charge 1")) ctrl.msing_max >= 1 || throw(ArgumentError("SLAYERControl: msing_max=$(ctrl.msing_max) must be ≥ 1")) ctrl.nre >= 2 && ctrl.nim >= 2 || diff --git a/src/Tearing/Runner/run_slayer.jl b/src/Tearing/Runner/run_slayer.jl index 2459087cf..0b2758293 100644 --- a/src/Tearing/Runner/run_slayer.jl +++ b/src/Tearing/Runner/run_slayer.jl @@ -20,7 +20,10 @@ # reader and adapt them to the SLAYER inner layer. Returns the spline-based # `KineticProfiles` plus χ⊥(ψ)/χ_φ(ψ) callables built from the file's # `chi_e`/`chi_phi` (or `nothing` when the file carries no usable χ, in which -# case the caller falls back to the scalar `control.chi_perp`/`chi_tor`). +# case the caller falls back to the scalar `control.chi_perp`/`chi_tor`), and +# a Z_eff(ψ) callable: the file's own `zeff` profile when it carries one, else +# derived from its `n_i/n_e` (or `nothing` when the file carries neither, in which +# case the caller falls back to the scalar `control.zeff`). function _load_profiles(control::SLAYERControl, dir_path::AbstractString) isempty(control.profile_file) && error("run_slayer: [SLAYER] profile_file is empty — point it at a " * @@ -53,7 +56,25 @@ function _load_profiles(control::SLAYERControl, dir_path::AbstractString) cubic_interp(psi_xs, collect(Float64, v)) chi_perp = _chi_spline(data.chi_e) chi_tor = _chi_spline(data.chi_phi) - return (profiles=profiles, chi_perp=chi_perp, chi_tor=chi_tor) + # Z_eff(ψ): a profile supplied in the file wins, since a real impurity mix is not recoverable + # from n_i/n_e. Otherwise quasi-neutrality with one impurity species of charge `zimp` and a + # charge-1 main ion, the single-ion closure the kinetic spline set uses: + # Z_eff = zimp − (n_i/n_e)(zimp − 1). + _usable(v) = v !== nothing && !all(iszero, v) + zeff = if _usable(data.zeff) + minimum(data.zeff) >= 1.0 - 1e-8 || + error("run_slayer: kinetic file '$path' has zeff = $(minimum(data.zeff)) < 1 — unphysical") + cubic_interp(psi_xs, collect(Float64, data.zeff)) + elseif !_usable(data.n_i) + nothing + else + z = [ne > 0 ? control.zimp - (ni / ne) * (control.zimp - 1.0) : control.zimp for (ni, ne) in zip(data.n_i, data.n_e)] + minimum(z) >= 1.0 - 1e-8 || + error("run_slayer: kinetic file '$path' has n_i > n_e, giving Z_eff = $(minimum(z)) < 1 — unphysical") + cubic_interp(psi_xs, z) + end + zeff_source = _usable(data.zeff) ? :file : zeff === nothing ? :scalar : :closure + return (profiles=profiles, chi_perp=chi_perp, chi_tor=chi_tor, zeff=zeff, zeff_source=zeff_source) end # --------------------------------------------------------------------- @@ -437,13 +458,22 @@ function run_slayer(equil, surfaces::AbstractVector, delta_prime_matrix::Abstrac loaded = _load_profiles(control, dir_path) profiles = loaded.profiles + # Z_eff(ψ) from the kinetic file when it carries n_i, else the scalar fallback. + zeff = loaded.zeff === nothing ? control.zeff : loaded.zeff + if loaded.zeff_source === :scalar + @warn "SLAYER: kinetic file has no usable zeff or n_i profile (dataset absent or all-zero); " * + "using the scalar control.zeff = $(control.zeff) at every surface." + else + zeff_origin = loaded.zeff_source === :file ? "zeff profile" : "n_i/n_e with zimp = $(control.zimp)" + @info "SLAYER: Z_eff(ψ) from the kinetic file's $zeff_origin" + end if control.inner_model in (:ggj_shooting, :ggj_galerkin) # GGJ γ-extraction is future work; `run_slayer_from_inputs` emits the # warning once the model is built (so direct callers see it too). params = build_ggj_inputs(equil, surfaces, profiles; mu_i=control.mu_i, - zeff=control.zeff, + zeff=zeff, resistivity_model=_build_resistivity_model(control.resistivity_model), lnLambda_form=control.lnLambda_form) else @@ -463,7 +493,7 @@ function run_slayer(equil, surfaces::AbstractVector, delta_prime_matrix::Abstrac params = build_slayer_inputs(equil, surfaces, profiles; bt=bt, mu_i=control.mu_i, - zeff=control.zeff, + zeff=zeff, chi_perp=chi_perp, chi_tor=chi_tor, dr_val=control.dr_val, From 1ec489c6bef757ca11dc4a047940ea1fd2536250 Mon Sep 17 00:00:00 2001 From: d-burg Date: Mon, 12 Oct 2026 18:30:33 -0400 Subject: [PATCH 29/30] Equilibrium - FEATURE! - Place rationals beyond the grid on the X-point separatrix q-law The overlap scan placed surfaces beyond the psi grid on a fitted edge law that assumed q diverges at psi_N = 1. A reconstruction may put its boundary slightly inside the X-point flux (psi_N = 1.0001 on the shipped DIII-D-like file), so those surfaces were misplaced, and one could be dropped when the fitted law and the traced edge q disagreed across an integer. `separatrix_q_law` replaces the fit with the X-point form taken from the equilibrium's own 2D flux, q(psi) = q_anchor + sum_i A_i ln[(psi_Xi - psi_anchor) / (psi_Xi - psi)], A_i = F / (2 pi R_Xi sqrt(-det H_i)), anchored on the traced q at the outermost grid surface, so nothing is fitted. The saddles are found by following each poloidal-field minimum on the last closed flux surface to the critical point it leads to, which gives one term for a single null and two for a double null and never picks up a null the closed surface does not pass. The law is rejected when its shear differs from the traced one by more than a factor 1.5 over the outer knots, and is not built for inverse equilibria or limited plasmas. In the scan: - the outward search starts at the first m/n above the anchor q, so no rational can fall between the in-grid search and the law; - one rational past psi_N = 1 is placed, to judge the outermost surface inside; the recommendation never exceeds psi_N = 1, and when no overlap can be established the domain keeps its requested limit; - the flux radial label takes q from the law beyond the grid; - messages that qualify the verdict are returned as `caveats`, separate from per-surface `notes`, and a run logs the first as warnings and the second as info. Neither was shown before. `edge_q_law` remains only as the grid-refinement edge-density gate. Co-Authored-By: Claude Opus 5.5 --- docs/src/stability.md | 33 ++++- src/Equilibrium/Equilibrium.jl | 1 + src/Equilibrium/GridRefinement.jl | 16 +-- src/Equilibrium/SeparatrixQLaw.jl | 171 +++++++++++++++++++++++++ src/GeneralizedPerturbedEquilibrium.jl | 11 +- src/InnerLayer/SLAYER/LayerInputs.jl | 12 +- src/Tearing/LayerOverlap.jl | 158 +++++++++++++++-------- 7 files changed, 327 insertions(+), 75 deletions(-) create mode 100644 src/Equilibrium/SeparatrixQLaw.jl diff --git a/docs/src/stability.md b/docs/src/stability.md index 85e06aed9..35c1ef0ad 100644 --- a/docs/src/stability.md +++ b/docs/src/stability.md @@ -280,11 +280,34 @@ response calculation to the region inside it. GPEC locates that point with a scan of the rational surfaces of each toroidal mode number in the run; for multi-`n` runs the innermost overlap point, over all `n`, is the one used. Each surface gets a layer solve from the kinetic profiles, and its diffusive-resistive width (Fitzpatrick 2025, Eq. 100) is converted to a normalized-flux width -so it can be compared with the spacing between neighbouring surfaces. Surfaces beyond the -equilibrium grid are located by extrapolating the separatrix law `q ∝ −ln(1 − ψ)` fitted to -the outer knots; an equilibrium whose edge q does not follow that law (a limited plasma) is -not extrapolated. The cut is placed at the last surface before two adjacent layers first -touch. +so it can be compared with the spacing between neighbouring surfaces. The cut is placed at the +last surface before two adjacent layers first touch. + +Surfaces beyond the equilibrium grid are located on the logarithmic divergence of q at the +separatrix, taken from the equilibrium's own poloidal flux rather than fitted. Each X-point on +the last closed flux surface contributes one term, + +```math +q(\psi) = q_K + \sum_i A_i \ln\frac{\psi_{X_i} - \psi_K}{\psi_{X_i} - \psi}, +\qquad A_i = \frac{F}{2\pi R_{X_i}\sqrt{-\det H_i}}, +``` + +where ``\psi_{X_i}`` is the flux at the saddle, ``H_i`` the Hessian of the poloidal flux there, +``F = R B_\phi``, and ``q_K`` the traced q on the outermost grid surface ``\psi_K``. One term +describes a single null and two a double null, connected or not. The X-points are found by +following each minimum of the poloidal field along the outermost surface to the saddle it leads +to, so nulls the closed surface does not pass (in a divertor leg, beside a coil) are never +candidates. The law is used only if it reproduces the traced shear over the outer knots, and a +plasma with no X-point on its boundary (a limited plasma) is not extrapolated. Divertors with a +second null beside the primary one or on the leg (snowflake, x-point target) are not modelled. + +The X-point flux need not coincide with the equilibrium's boundary: a reconstruction that places +its boundary slightly inside the separatrix has finite q at ``\psi = 1``, and rational surfaces +between that boundary and the X-point lie in the real plasma but outside the equilibrium GPEC +holds. The scan places only the first of them, to judge whether the outermost surface inside is +clean, and scores it only when the kinetic profiles extend that far. `psihigh` remains the upper +limit throughout: the overlap point can only narrow the domain, and when no overlap can be +established the domain keeps its requested limit. The scan takes its kinetic profiles from the `[SLAYER]` `profile_file`, through the same control and loader the SLAYER analysis uses, so both see the same profiles, the same HDF5 group and the diff --git a/src/Equilibrium/Equilibrium.jl b/src/Equilibrium/Equilibrium.jl index f04fd34c1..cfa0ed23b 100644 --- a/src/Equilibrium/Equilibrium.jl +++ b/src/Equilibrium/Equilibrium.jl @@ -14,6 +14,7 @@ import ..Utilities # --- Internal Module Structure --- include("EquilibriumTypes.jl") include("GridRefinement.jl") +include("SeparatrixQLaw.jl") include("FluxSurfaceMetrics.jl") include("CoordinateInvariant.jl") include("ReadEquilibrium.jl") diff --git a/src/Equilibrium/GridRefinement.jl b/src/Equilibrium/GridRefinement.jl index 56a1705b0..b103fc3fe 100644 --- a/src/Equilibrium/GridRefinement.jl +++ b/src/Equilibrium/GridRefinement.jl @@ -57,7 +57,7 @@ const CORE_MODEL_PSI_MAX = 0.03 const EDGE_MODEL_PSI_MIN = 0.9 # θ-lines subsample stride for the 2D geometry channels const THETA_STRIDE = 8 -# --- shared separatrix edge q-law ------------------------------------------------------------- +# --- edge q-law gate ---------------------------------------------------------------------------- # Minimum knots in the edge band before a fit is attempted. const EDGE_FIT_MIN_KNOTS = 4 # Weak absolute backstop against a fit that describes nothing at all. It is deliberately not a @@ -90,8 +90,10 @@ end -> nothing | (; A, q_bar, u_bar, n_knots, r2_log, r2_linear) Least-squares fit of the separatrix edge law `q = q̄ + A·(ln(1−ψ) − ū)` over the equilibrium's -outer knots — the single shared statement of that model, used both by the grid-refinement edge -density floor and by the resistive-layer overlap scan's out-of-grid surface search. +outer knots. It gates the grid-refinement edge density floor, which needs only to know whether q +diverges at the edge; it does not locate anything. Placing surfaces beyond the grid is +[`separatrix_q_law`](@ref), which takes the divergence from the X-point(s) instead of assuming +it sits at ψ = 1. Returns `nothing` when the diverging model does **not** describe this equilibrium's edge, so a plasma with finite edge q is never extrapolated as if q blew up: @@ -143,15 +145,7 @@ function edge_q_law(equil::PlasmaEquilibrium; return (A=A, q_bar=q_bar, u_bar=u_bar, n_knots=length(band), r2_log=r2_log, r2_linear=r2_linear) end -""" -ψ at which the edge law reaches `q_target`; closed form, no root-finding needed. -""" -edge_q_law_psi(fit, q_target::Real) = 1.0 - exp(fit.u_bar + (q_target - fit.q_bar) / fit.A) -""" -dq/dψ from the edge law: q = q̄ + A·ln(1−ψ) + const ⇒ dq/dψ = −A/(1−ψ). -""" -edge_q_law_dqdpsi(fit, psi::Real) = -fit.A / (1.0 - psi) # Rational-surface bracketing (Δ′ robustness). The ideal-MHD Δ′ asymptotic matching samples the # cubic equilibrium splines' 2nd/3rd derivatives across each rational ψ_s over the matching stencil # [ψ_s − dpsi, ψ_s + dpsi], dpsi = singfac_min/|n·q′|. A cubic 3rd derivative is piecewise constant diff --git a/src/Equilibrium/SeparatrixQLaw.jl b/src/Equilibrium/SeparatrixQLaw.jl new file mode 100644 index 000000000..22393f2c8 --- /dev/null +++ b/src/Equilibrium/SeparatrixQLaw.jl @@ -0,0 +1,171 @@ +# SeparatrixQLaw.jl +# +# Safety factor between the outermost grid surface and the separatrix of a diverted equilibrium, +# taken from the X-point(s) of the equilibrium's own poloidal flux rather than fitted. +# +# Near a separatrix a field line stalls poloidally at each X-point it passes, so +# +# q(ψ) = c + Σ_i A_i ln[1 / (ψ_Xi − ψ)], A_i = F / (2π R_Xi sqrt(−det H_i)), +# +# with ψ_Xi the flux at saddle i of ψ(R, Z), H_i its Hessian there, and F = R B_φ. The constant is +# fixed by the traced q on the outermost grid surface, so nothing is fitted. One term describes a +# single null, two coincident terms a connected double null, and a second term at larger flux a +# disconnected one. +# +# The saddles are selected from the last closed flux surface itself: each minimum of the poloidal +# field along the outermost traced surface is followed to the critical point it leads to. A null +# the closed surface does not pass (in a divertor leg, beside a coil) is therefore never a +# candidate. Divertors with a second null beside the primary one (snowflake) or on the leg +# (x-point target) are not modelled; the shear check below is the backstop. + +# Accepted disagreement between the law's dq/dψ and the traced profile's over the outer knots. A +# law missing one of two equal X-points is low by a factor of two, so the bound sits well inside it. +const SEPARATRIX_SHEAR_RATIO = 1.5 +# Outer knots the shear check is taken over. +const SEPARATRIX_CHECK_KNOTS = 4 +# Closest approach to the separatrix flux a surface is placed at, in normalized flux. +const SEPARATRIX_PSI_GAP = 1e-9 + +# Gradient and Hessian of the 2D flux at (r, z). +function _flux_derivatives(psi_in, r::Float64, z::Float64) + pr = Float64(psi_in((r, z); deriv=DerivOp(1, 0))) + pz = Float64(psi_in((r, z); deriv=DerivOp(0, 1))) + prr = Float64(psi_in((r, z); deriv=DerivOp(2, 0))) + prz = Float64(psi_in((r, z); deriv=DerivOp(1, 1))) + pzz = Float64(psi_in((r, z); deriv=DerivOp(0, 2))) + return (; pr, pz, prr, prz, pzz, det=prr * pzz - prz^2) +end + +# Follow |∇ψ|² downhill from a seed with damped Newton steps on ∇ψ = 0. Returns the critical point, +# or `nothing` when the descent leaves the flux grid or stalls short of one. +function _descend_to_critical_point(psi_in, ingest::DirectIngest, r::Float64, z::Float64, grad_tol::Float64) + for _ in 1:100 + d = _flux_derivatives(psi_in, r, z) + g = d.pr^2 + d.pz^2 + sqrt(g) <= grad_tol && return (; r, z, det=d.det) + d.det == 0.0 && return nothing + dr = -(d.pzz * d.pr - d.prz * d.pz) / d.det + dz = -(d.prr * d.pz - d.prz * d.pr) / d.det + t = 1.0 + stepped = false + while t >= 1e-6 + rn, zn = r + t * dr, z + t * dz + if ingest.rmin <= rn <= ingest.rmax && ingest.zmin <= zn <= ingest.zmax + dn = _flux_derivatives(psi_in, rn, zn) + if dn.pr^2 + dn.pz^2 < g + r, z, stepped = rn, zn, true + break + end + end + t /= 2 + end + stepped || return nothing + end + return nothing +end + +""" + separatrix_q_law(equil; psi_max=equil.profiles.xs[end], shear_ratio=SEPARATRIX_SHEAR_RATIO) + -> nothing | (; psi_x, A, r_x, z_x, psi_anchor, q_anchor, shear_ratio) + +Safety factor beyond the equilibrium's ψ grid from the X-point(s) on its last closed flux surface: + + q(ψ) = q_anchor + Σ_i A_i ln[(psi_x_i − psi_anchor) / (psi_x_i − ψ)] + +`psi_x` are the normalized fluxes of the selected saddles (ascending, so `psi_x[1]` is where q +diverges), `A` their logarithmic coefficients `F / (2π R_X sqrt(−det H))`, `r_x`/`z_x` their +positions, and the anchor is the traced q at `psi_max`. `psi_x[1]` need not equal 1: a +reconstruction may place its boundary slightly inside the X-point flux. + +Returns `nothing` when the law does not apply or cannot be trusted: + + - the equilibrium is not a direct (2D flux) one — an inverse equilibrium carries its own q; + - no minimum of the poloidal field on the outermost surface leads to a saddle outside the grid, + which is what a limited plasma looks like; + - q is not rising at the anchor; + - the law's dq/dψ and the traced profile's differ by more than `shear_ratio` over the outer + knots (returned as `shear_ratio`, law over traced). +""" +function separatrix_q_law(equil::PlasmaEquilibrium; + psi_max::Real=Float64(equil.profiles.xs[end]), + shear_ratio::Real=SEPARATRIX_SHEAR_RATIO) + ingest = equil.ingest + ingest isa DirectIngest || return nothing + psi_in = cubic_interp((ingest.psi_xs, ingest.psi_ys), ingest.psi_rz; extrap=ExtendExtrap()) + xs = equil.profiles.xs + psi_anchor = min(Float64(psi_max), Float64(xs[end])) + q_anchor = Float64(equil.profiles.q_spline(psi_anchor)) + q_slope = Float64(equil.profiles.q_deriv(psi_anchor)) + (isfinite(q_anchor) && q_anchor * q_slope > 0) || return nothing + + # Poloidal field along the outermost traced surface. + psi_surface = Float64(equil.rzphi_xs[end]) + thetas = equil.rzphi_ys[1:(end-1)] + hint2d = (Ref(1), Ref(1)) + rs, zs, bp = similar(thetas), similar(thetas), similar(thetas) + for (i, theta) in enumerate(thetas) + r_minor = sqrt(equil.rzphi_rsquared((psi_surface, theta); hint=hint2d)) + theta_cyl = 2π * (theta + equil.rzphi_offset((psi_surface, theta); hint=hint2d)) + rs[i] = equil.ro + r_minor * cos(theta_cyl) + zs[i] = equil.zo + r_minor * sin(theta_cyl) + d = _flux_derivatives(psi_in, rs[i], zs[i]) + bp[i] = hypot(d.pr, d.pz) / rs[i] + end + + # Each minimum of the poloidal field is where the surface passes a null; follow it there. + n = length(bp) + grad_tol = 1e-10 * maximum(bp .* rs) + merge_dist = 1e-6 * (ingest.rmax - ingest.rmin) + f_edge = abs(Float64(ingest.sq_fs[end, 1])) + saddles = NamedTuple{(:psi, :A, :r, :z),NTuple{4,Float64}}[] + for i in 1:n + (bp[i] < bp[mod1(i - 1, n)] && bp[i] <= bp[mod1(i + 1, n)]) || continue + cp = _descend_to_critical_point(psi_in, ingest, rs[i], zs[i], grad_tol) + (cp === nothing || cp.det >= 0) && continue + psi_x = 1.0 - Float64(psi_in((cp.r, cp.z))) / ingest.psio + psi_x > psi_anchor || continue + any(s -> hypot(s.r - cp.r, s.z - cp.z) < merge_dist, saddles) && continue + push!(saddles, (psi=psi_x, A=f_edge / (2π * cp.r * sqrt(-cp.det)), r=cp.r, z=cp.z)) + end + isempty(saddles) && return nothing + sort!(saddles; by=s -> s.psi) + + law = (psi_x=[s.psi for s in saddles], A=[s.A for s in saddles], r_x=[s.r for s in saddles], + z_x=[s.z for s in saddles], psi_anchor=psi_anchor, q_anchor=q_anchor) + + # The law must reproduce the traced profile's own shear where the two overlap. + knots = filter(i -> xs[i] <= psi_anchor, eachindex(xs)) + isempty(knots) && return nothing + band = knots[max(1, end - SEPARATRIX_CHECK_KNOTS + 1):end] + hint = Ref(1) + ratio = median([separatrix_q_dqdpsi(law, xs[i]) / Float64(equil.profiles.q_deriv(xs[i]; hint=hint)) for i in band]) + (isfinite(ratio) && inv(shear_ratio) <= ratio <= shear_ratio) || return nothing + return merge(law, (; shear_ratio=ratio)) +end + +""" +dq/dψ on the separatrix law. +""" +separatrix_q_dqdpsi(law, psi::Real) = sign(law.q_anchor) * sum(A / (px - psi) for (A, px) in zip(law.A, law.psi_x)) + +""" +q on the separatrix law. +""" +separatrix_q(law, psi::Real) = + law.q_anchor + sign(law.q_anchor) * sum(A * log((px - law.psi_anchor) / (px - psi)) for (A, px) in zip(law.A, law.psi_x)) + +""" +ψ at which the separatrix law reaches `q_target`. Returns `nothing` when the target is not beyond +the anchor, or lies closer to the separatrix flux than `psi_gap`. +""" +function separatrix_q_psi(law, q_target::Real; psi_gap::Real=SEPARATRIX_PSI_GAP) + s = sign(law.q_anchor) + s * (q_target - law.q_anchor) > 0 || return nothing + psi_sep = law.psi_x[1] + psi_gap < psi_sep - law.psi_anchor || return nothing + # Solve in the logarithmic distance to the separatrix, where q is close to linear. + residual(u) = s * (separatrix_q(law, psi_sep - exp(u)) - q_target) + u_near, u_far = log(psi_gap), log(psi_sep - law.psi_anchor) + residual(u_near) > 0 || return nothing + return psi_sep - exp(find_zero(residual, (u_near, u_far), Roots.Brent())) +end diff --git a/src/GeneralizedPerturbedEquilibrium.jl b/src/GeneralizedPerturbedEquilibrium.jl index 1207c923c..5342ae7fc 100755 --- a/src/GeneralizedPerturbedEquilibrium.jl +++ b/src/GeneralizedPerturbedEquilibrium.jl @@ -582,7 +582,8 @@ end # Run the resistive-layer overlap scan for each toroidal mode number of the run and return the # binding one, or `nothing` when there are no [SLAYER] profiles. Physics refusals (a surface that -# cannot be scored, a limited edge) are handled inside the scan and recorded in its `notes`. +# cannot be scored, a limited edge) are handled inside the scan; what qualifies its verdict is +# logged as a warning and the per-surface detail as info. function _layer_overlap_scan(overlap_inputs, intr::ForceFreeStatesInternal, equil::Equilibrium.PlasmaEquilibrium) overlap_inputs === nothing && return nothing # Eq. (100) is not covariant -- it is anchored to the toroidal-flux label of the paper's @@ -594,6 +595,14 @@ function _layer_overlap_scan(overlap_inputs, intr::ForceFreeStatesInternal, equi resistivity_model=overlap_inputs.resistivity_model, lnLambda_form=overlap_inputs.lnLambda_form) for n in intr.nlow:intr.nhigh ] + for (n, scan) in zip(intr.nlow:intr.nhigh, scans) + for msg in scan.caveats + @warn "Layer-overlap scan (n = $n): $msg" + end + for msg in scan.notes + @info "Layer-overlap scan (n = $n): $msg" + end + end return _binding_overlap(scans) end diff --git a/src/InnerLayer/SLAYER/LayerInputs.jl b/src/InnerLayer/SLAYER/LayerInputs.jl index 2e0db5ab9..87488e18e 100644 --- a/src/InnerLayer/SLAYER/LayerInputs.jl +++ b/src/InnerLayer/SLAYER/LayerInputs.jl @@ -83,13 +83,15 @@ derivatives are analytic — no label carries a finite-difference stencil. implementation divides it by 2π to form `g`. Defined from flux alone, it carries no circular-cross-section assumption, and its derivative `dr/dψ ∝ q` grows toward a separatrix where the - geometric labels' `da/dψ` collapses. + geometric labels' `da/dψ` collapses. Beyond the ψ grid the q spline is a + cubic extrapolation that does not follow that growth, so `q_beyond`, a + callable of ψ, supplies q there when the caller knows it. On shaped equilibria the labels agree at low-q surfaces and diverge strongly near the edge, where the slab-layer matching is label-ambiguous regardless of choice. The label is selected programmatically; it is not exposed via TOML. """ -function radial_label(equil; rs_method::Symbol=:midplane, theta::Real=0.0) +function radial_label(equil; rs_method::Symbol=:midplane, theta::Real=0.0, q_beyond=nothing) theta_f = Float64(theta) _flux_r, _flux_dr = if rs_method === :flux @@ -103,8 +105,9 @@ function radial_label(equil; rs_method::Symbol=:midplane, theta::Real=0.0) Phi = collect(Float64, cumulative_integrate(cubic_interp(xs_f, qg))) r_knots = sqrt.(max.(2 .* psiof .* Phi ./ b0f, 0.0)) rspl = cubic_interp(xs_f, r_knots; extrap=ExtendExtrap()) + _q_at(ψ) = (q_beyond !== nothing && ψ > xs_f[end]) ? Float64(q_beyond(ψ)) : Float64(equil.profiles.q_spline(ψ)) (ψ -> Float64(rspl(Float64(ψ))), - ψ -> psiof * Float64(equil.profiles.q_spline(Float64(ψ))) / + ψ -> psiof * _q_at(Float64(ψ)) / (b0f * _g_at(Float64(ψ)) * max(Float64(rspl(Float64(ψ))), eps()))) else (nothing, nothing) @@ -230,6 +233,7 @@ function build_slayer_inputs(equil, sings, profiles::KineticProfiles; bt=nothing, R0=nothing, rs_method::Symbol=:midplane, + q_beyond=nothing, mu_i::Real=2.0, zeff=1.0, z_i::Real=1.0, @@ -256,7 +260,7 @@ function build_slayer_inputs(equil, sings, profiles::KineticProfiles; Float64(bt(ψ)) end - _rs_at, _da_dpsi_at = radial_label(equil; rs_method=rs_method, theta=theta) + _rs_at, _da_dpsi_at = radial_label(equil; rs_method=rs_method, theta=theta, q_beyond=q_beyond) # Per-surface ω_*e, ω_*i (diamagnetic frequencies) from spline derivatives. # In flux coordinates ω_* = n·(dp/dψ)/(e·n_e), so the surface's toroidal mode diff --git a/src/Tearing/LayerOverlap.jl b/src/Tearing/LayerOverlap.jl index 061a4898f..5c6971180 100644 --- a/src/Tearing/LayerOverlap.jl +++ b/src/Tearing/LayerOverlap.jl @@ -10,16 +10,16 @@ # Lives in `Tearing` rather than `InnerLayer/SLAYER` because it needs # `ForceFreeStates._find_rational_surfaces`, and `InnerLayer` loads before `ForceFreeStates`. # -# Surfaces beyond the equilibrium's own ψ grid are located on the separatrix law -# q ≈ -A·ln(1-ψ) through the shared `Equilibrium.edge_q_law` helper, which also gates the -# grid-refinement edge density model: one statement of the model, one fit, one limited-plasma -# guard. The scan only recommends a domain; nothing here re-forms the equilibrium. +# Surfaces beyond the equilibrium's own ψ grid are located on `Equilibrium.separatrix_q_law`: the +# logarithmic divergence of q at the X-point(s) on the last closed flux surface, with its +# location and slope taken from the 2D flux and its constant from the traced q on the outermost +# grid surface. The scan only recommends a domain; nothing here re-forms the equilibrium. using ..Utilities: KineticProfiles using ..ForceFreeStates: _find_rational_surfaces, SingType using ..InnerLayer.SLAYER: SLAYERParameters, build_slayer_inputs, slayer_algebraic_widths, riccati_del_s, surface_minor_radius, surface_da_dpsi, radial_label using ..Utilities.NeoclassicalResistivity: NeoResistivityModel, SauterNeoModel -using ..Equilibrium: edge_q_law, edge_q_law_psi, edge_q_law_dqdpsi, InverseIngest +using ..Equilibrium: separatrix_q_law, separatrix_q, separatrix_q_psi, separatrix_q_dqdpsi, InverseIngest using FastInterpolations: cubic_interp, ExtendExtrap, DerivOp using Roots: find_zero, Brent using Printf: @sprintf @@ -54,7 +54,9 @@ dimensional error. for comparison and do not set the domain - `first_overlap` -- index of the first surface that overlaps its inner neighbour, `nothing` when none do - - `notes` -- surfaces that were located but could not be scored, and why + - `caveats` -- reasons the verdict itself is qualified: an overlap that could not be + established or excluded, or one decided by a surface placed on the separatrix law + - `notes` -- per-surface and bookkeeping detail that does not qualify the verdict """ struct LayerOverlapScan m::Vector{Int} @@ -71,17 +73,17 @@ struct LayerOverlapScan psihigh_dr::Union{Float64,Nothing} psihigh::Union{Float64,Nothing} first_overlap::Union{Int,Nothing} + caveats::Vector{String} notes::Vector{String} end -# Keyword constructor: the positional form takes 15 arguments in a fixed order, which is how an -# earlier empty-scan return came to pass 13 of them. +# Keyword constructor, so an empty scan names only the fields it sets. LayerOverlapScan(; m=Int[], n=Int[], psi=Float64[], rs=Float64[], delta_s_m=Float64[], width_delta_s=Float64[], width_visco=Float64[], width_dr=Float64[], extrapolated=Bool[], psihigh_delta_s=nothing, psihigh_visco=nothing, psihigh_dr=nothing, psihigh=nothing, - first_overlap=nothing, notes=String[]) = + first_overlap=nothing, caveats=String[], notes=String[]) = LayerOverlapScan(m, n, psi, rs, delta_s_m, width_delta_s, width_visco, width_dr, extrapolated, - psihigh_delta_s, psihigh_visco, psihigh_dr, psihigh, first_overlap, notes) + psihigh_delta_s, psihigh_visco, psihigh_dr, psihigh, first_overlap, caveats, notes) # An inverse equilibrium is solved on a prescribed boundary and carries its own q out to ψ = 1, # so the scan reads the real q there instead of extrapolating, and searches to ψ = 1 rather than @@ -109,11 +111,15 @@ separated. Surfaces inside the equilibrium grid come from `ForceFreeStates._find_rational_surfaces` (Brent root-finding segmented between -q-extrema, so reverse shear is handled). Surfaces beyond the grid come from the -separatrix edge law `q ≈ -A·ln(1-ψ)` fitted over the outer knots when -`extrapolate=true`, which is what lets the scan recommend a domain *larger* than -the one it was handed. See the file header for why a cubic extrapolation is not -usable here. +q-extrema, so reverse shear is handled). Surfaces beyond the grid come from +[`separatrix_q_law`](@ref) when `extrapolate=true`, which is what lets the scan +recommend a domain *larger* than the one it was handed. That law diverges at the +X-point flux, which a reconstruction may place slightly outside its own boundary, +so rationals can lie at ψ > 1: inside the real separatrix but beyond the +equilibrium GPEC holds. Only the first of them is placed, to judge whether the +outermost surface inside is clean, and it is scored only if the kinetic profiles +extend that far. The recommendation never exceeds ψ = 1, and when no overlap can +be established the domain keeps its requested limit. Layer widths come from [`slayer_algebraic_widths`](@ref) via [`build_slayer_inputs`](@ref), so the scan uses the same plasma inputs and the @@ -130,20 +136,21 @@ Riccati solve; `delta_s` is solved per surface as a reported comparison only. - `n_tor` -- toroidal mode number; surfaces are q = m/`n_tor` - `m_max` -- runaway backstop on the poloidal mode number (default `2000`), **not** the - physics limit: the outward search should terminate at `psi_cap` (indistinguishable from - the separatrix), and if `m_max` is what stops it instead, the scan says so in `notes` + physics limit: the outward search should terminate within `psi_gap` of the separatrix + flux, and if `m_max` is what stops it instead, the scan says so in `caveats` because "no overlap found" would then rest on a non-physical cutoff - `max_layer_solves` -- bound on how many surfaces get a Riccati layer solve (default `64`, innermost kept). The first overlap decides the answer, so surfaces far beyond it only cost - time; when the bound bites, `notes` records that a "no overlap" verdict is inconclusive + time; when the bound bites, `caveats` records that a "no overlap" verdict is inconclusive - `psihigh_safe` -- treat this as the outer edge of trusted equilibrium data (default `equil.profiles.xs[end]`) - - `psi_cap` -- never place a surface beyond this ψ on the **direct** path (default - `1 - 1e-9`, purely numerical: it stops the outward search from crowding indefinitely onto - ψ = 1 where surfaces become indistinguishable). Inverse equilibria ignore it: they have a - prescribed boundary and the search runs to ψ = 1 on the real q. Geometry needs no clamp of - its own -- `radial_label` derivatives are analytic and valid under extrapolation - - `extrapolate` -- search past `psihigh_safe` on the edge q-law (default `true`) + - `psi_gap` -- never place a surface closer than this to the separatrix flux on the + **direct** path (default `1e-9`, purely numerical: it stops the outward search from + crowding indefinitely onto the separatrix where surfaces become indistinguishable). + Inverse equilibria ignore it: they have a prescribed boundary and the search runs to + ψ = 1 on the real q. Geometry needs no clamp of its own -- `radial_label` derivatives are + analytic and valid under extrapolation + - `extrapolate` -- search past `psihigh_safe` on the separatrix q-law (default `true`) - `theta` -- poloidal angle for the minor-radius chord (default `0.0`) - `rs_method` -- radial label the widths and their ψ-conversion Jacobian are taken in (default `:midplane`; see `radial_label`). The caller wiring this scan into the domain @@ -162,7 +169,7 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; m_max::Integer=2000, max_layer_solves::Integer=64, psihigh_safe::Real=Float64(equil.profiles.xs[end]), - psi_cap::Real=1.0 - 1e-9, + psi_gap::Real=1e-9, extrapolate::Bool=true, theta::Real=0.0, rs_method::Symbol=:midplane, @@ -175,12 +182,8 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; lnLambda_form::Symbol=:nrl) n_tor > 0 || throw(ArgumentError("resistive_layer_overlap: n_tor must be positive, got $n_tor")) - # Widths come back in metres of whichever radial label `rs_method` selects, so the - # conversion into normalised flux must use that same label's Jacobian. - _, _dr_dpsi = radial_label(equil; rs_method=rs_method, theta=theta) psihigh_safe = Float64(psihigh_safe) - psi_cap = Float64(psi_cap) - notes = String[] + caveats, notes = String[], String[] # In-grid surfaces for this n, ordered outward. found = [(m=s.m, psi=s.psifac, extrap=false) @@ -207,56 +210,85 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; push!(found, (m=m, psi=psi_m, extrap=true)) end !reached_end && m_start <= m_max && - push!(notes, + push!(caveats, "outward search stopped at the m_max = $m_max backstop rather than at the boundary " * "q; a \"no overlap\" result here is not conclusive -- raise m_max") length(found) > n_before && push!(notes, "inverse equilibrium: surfaces beyond ψ = $(@sprintf("%.6f", psihigh_safe)) " * "read from the real q profile out to ψ = 1 (no edge-law extrapolation)") - elseif extrapolate && psihigh_safe < psi_cap - edge_fit = edge_q_law(equil; psi_max=psihigh_safe) + elseif extrapolate + edge_fit = separatrix_q_law(equil; psi_max=psihigh_safe) if edge_fit === nothing push!( notes, - "edge q-law rejected: the diverging model q ~ -A*ln(1-ψ) does not describe " * - "this edge (limited plasma with finite edge q, q not rising, or too few outer " * - "knots), so no surfaces are placed beyond ψ = $(@sprintf("%.6f", psihigh_safe))" + "no separatrix q-law: no X-point was found on the outermost flux surface (a " * + "limited plasma), or the law it gives does not reproduce the traced shear " * + "there, so no surfaces are placed beyond ψ = $(@sprintf("%.6f", psihigh_safe))" ) else - m_start = isempty(found) ? 1 : maximum(s.m for s in found) + 1 - # Terminates on psi_cap -- surfaces indistinguishable from the separatrix -- not on - # m_max. Reaching m_max means the scan was cut short for a non-physical reason and - # any "no overlap" verdict from it is unsafe, so record that. - reached_cap = false + # Every q = m/n above the anchor lies beyond the grid, so the search starts at the + # first such m whatever the in-grid search returned: no surface can fall between + # the two locators. + m_start = floor(Int, n_tor * abs(edge_fit.q_anchor)) + 1 + m_grid = isempty(found) ? 0 : maximum(s.m for s in found) + n_before = length(found) + # Terminates within psi_gap of the separatrix flux -- surfaces indistinguishable from + # it -- not on m_max. Reaching m_max means the scan was cut short for a non-physical + # reason and any "no overlap" verdict from it is unsafe, so record that. + reached_separatrix = false for m in m_start:Int(m_max) - psi_m = edge_q_law_psi(edge_fit, m / n_tor) - psi_m > psihigh_safe || continue # already inside the grid - if psi_m >= psi_cap - reached_cap = true # separatrix reached: the physical end of the scan + psi_m = separatrix_q_psi(edge_fit, sign(edge_fit.q_anchor) * m / n_tor; psi_gap=psi_gap) + if psi_m === nothing + reached_separatrix = true break end push!(found, (m=m, psi=psi_m, extrap=true)) + # One rational past the equilibrium's boundary is enough: it decides whether the + # outermost surface inside is clean. Pairs further out lie wholly outside the + # equilibrium and cannot constrain a domain that ends at or before ψ = 1. + if psi_m > 1.0 + reached_separatrix = true + break + end end - if !reached_cap && m_start <= m_max - push!(notes, + if !reached_separatrix && m_start <= m_max + push!(caveats, "outward search stopped at the m_max = $m_max backstop rather than at the " * "separatrix; a \"no overlap\" result here is not conclusive -- raise m_max") end + 0 < m_grid < m_start - 1 && + push!(caveats, + "q = $(m_grid + 1)/$n_tor through $(m_start - 1)/$n_tor lie inside the grid but were " * + "not located there; an overlap between them may be missed") + length(found) > n_before && last(found).psi > 1.0 && + push!(notes, + "q = $(last(found).m)/$n_tor lies beyond the equilibrium's own boundary (ψ = 1), inside its " * + "X-point flux ψ = $(@sprintf("%.6f", edge_fit.psi_x[1])); it is placed only to judge whether the " * + "outermost surface inside is clean, and needs kinetic profiles past ψ = 1 to be scored") end end if isempty(found) push!(notes, "no q = m/$n_tor surfaces found") - return LayerOverlapScan(; notes=notes) + return LayerOverlapScan(; caveats=caveats, notes=notes) end + # Beyond the grid the equilibrium's q spline is a cubic extrapolation, so the radial label + # takes q there from whichever source placed the surfaces. + q_beyond = inv_q !== nothing ? (ψ -> Float64(inv_q(ψ))) : + edge_fit !== nothing ? (ψ -> separatrix_q(edge_fit, ψ)) : nothing + # Widths come back in metres of whichever radial label `rs_method` selects, so the + # conversion into normalised flux must use that same label's Jacobian. + _, _dr_dpsi = radial_label(equil; rs_method=rs_method, theta=theta, q_beyond=q_beyond) + ms, ns, psis, rss = Int[], Int[], Float64[], Float64[] dels_m, w_dels, w_visc, w_dr, extraps = Float64[], Float64[], Float64[], Float64[], Bool[] + unscored = Float64[] # Bound the per-surface Riccati work, and say so when the bound bites: a "no overlap" # verdict from a truncated list is not conclusive. if length(found) > max_layer_solves - push!(notes, + push!(caveats, "surface list truncated from $(length(found)) to the innermost $max_layer_solves for " * "the layer solve (max_layer_solves); a \"no overlap\" verdict here is not conclusive") found = found[1:max_layer_solves] @@ -270,11 +302,12 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; elseif inv_q !== nothing Float64(inv_q(s.psi; deriv=DerivOp(1))) # real profile, not a model else - edge_q_law_dqdpsi(edge_fit, s.psi) + separatrix_q_dqdpsi(edge_fit, s.psi) end da_dpsi = _dr_dpsi(s.psi) if !isfinite(da_dpsi) || da_dpsi == 0.0 push!(notes, "m=$(s.m): da/dψ = $da_dpsi at ψ=$(@sprintf("%.6f", s.psi)); cannot convert width to flux units") + push!(unscored, s.psi) continue end @@ -282,7 +315,7 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; # Built one surface at a time so a single degenerate surface (e.g. ω_*e == ω_*i, # which makes iota_e singular) is recorded and skipped rather than aborting the scan. params = try - build_slayer_inputs(equil, [sing], profiles; rs_method=rs_method, + build_slayer_inputs(equil, [sing], profiles; rs_method=rs_method, q_beyond=q_beyond, bt=bt, mu_i=mu_i, zeff=zeff, chi_perp=chi_perp, chi_tor=chi_tor, dr_val=0.0, dc_type=:none, theta=theta, resistivity_model=resistivity_model, lnLambda_form=lnLambda_form) @@ -292,7 +325,8 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; # negative-shear surface reaching a sqrt/fractional power in the layer parameters. err isa Union{ArgumentError,DomainError} || rethrow() msg = err isa ArgumentError ? err.msg : sprint(showerror, err) - push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): skipped -- $(first(split(msg, '\n')))") + push!(notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): skipped -- $(replace(msg, '\n' => ' '))") + push!(unscored, s.psi) continue end @@ -304,8 +338,9 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; push!( notes, "m=$(s.m) at ψ=$(@sprintf("%.6f", s.psi)): Eq. (100) width is not finite, so this " * - "surface could not be scored; a \"no overlap\" result here is not conclusive" + "surface could not be scored" ) + push!(unscored, s.psi) continue end # delta_s is reported for comparison only. A failure leaves it NaN, which makes its own @@ -341,9 +376,24 @@ function resistive_layer_overlap(equil, profiles::KineticProfiles; # The DR channel is the criterion (see the `width_dr` field above); the other two are # reported for comparison only. recommended = ph_dr + # A surface that could not be scored hides any overlap with its neighbours, so it matters + # wherever it sits inside the reported overlap point, or anywhere when none was found. + n_hidden = count(p -> k_dr === nothing || p < psis[k_dr], unscored) + n_hidden > 0 && + push!(caveats, + k_dr === nothing ? + "no overlap was established, with $n_hidden surface(s) that could not be scored (typically " * + "kinetic profiles that stop short of them); the domain keeps its requested limit" : + "$n_hidden surface(s) inside the reported overlap point could not be scored (typically " * + "kinetic profiles that stop short of them); the first overlap may lie further in, so " * + "this result is an outer bound") + k_dr !== nothing && (extraps[k_dr] || extraps[k_dr-1]) && + push!(caveats, + "the overlap point is decided by a surface placed on the separatrix law (q = $(ms[k_dr-1])/$n_tor " * + "against $(ms[k_dr])/$n_tor), not by one traced inside the grid") return LayerOverlapScan(ms, ns, psis, rss, dels_m, w_dels, w_visc, w_dr, extraps, - ph_dels, ph_visc, ph_dr, recommended, k_dr, notes) + ph_dels, ph_visc, ph_dr, recommended, k_dr, caveats, notes) end # Walk outward and return (recommended psilim, index of first overlapping surface). From 3a28e0c15fff8d77e118293f87cdfb6c27e20ea6 Mon Sep 17 00:00:00 2001 From: d-burg Date: Mon, 12 Oct 2026 18:30:33 -0400 Subject: [PATCH 30/30] Tearing - TEST - Cover the separatrix q-law and the SLAYER Zeff sources - [SLAYER] settings reach the overlap scan; Zeff from the file dataset, from n_i with `zimp`, and from the scalar fallback; ion mass and field cancel in the Eq. (100) width. - Separatrix q-law: the law's functions on a two-term case; the X-point flux, coefficient and shear ratio on the DIII-D-like file; a law built on a grid stopping at psi_N = 0.995 lands on the q = 7, 8 surfaces a longer grid traces; the scan's overlap point does not depend on where the grid stops; no law for an analytic equilibrium. Co-Authored-By: Claude Opus 5.5 --- test/runtests_layer_overlap_fitzpatrick.jl | 108 +++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/test/runtests_layer_overlap_fitzpatrick.jl b/test/runtests_layer_overlap_fitzpatrick.jl index cf551d83d..64bfffed3 100644 --- a/test/runtests_layer_overlap_fitzpatrick.jl +++ b/test/runtests_layer_overlap_fitzpatrick.jl @@ -225,6 +225,47 @@ end @test binding([s_none, mkscan(nothing)]) === s_none @test binding([s1]) === s1 + # The scan must see the run's own plasma: every [SLAYER] setting the layer width depends on + # reaches it, and changing one changes the widths. + trunc_dir = joinpath(dirname(@__DIR__), "examples", "DIIID-like_truncation_example") + slayer_section = TOML.parsefile(joinpath(trunc_dir, "gpec.toml"))["SLAYER"] + slayer_inputs(over) = Dict{String,Any}("SLAYER" => merge(slayer_section, over)) + overlap_inputs(over; dir=trunc_dir) = GeneralizedPerturbedEquilibrium._overlap_slayer_inputs(slayer_inputs(over), dir) + oi = overlap_inputs(Dict("mu_i" => 3.0, "bt" => 1.7, "theta_sample" => 0.3, "lnLambda_form" => "sauter")) + @test (oi.mu_i, oi.bt, oi.theta, oi.lnLambda_form) == (3.0, 1.7, 0.3, :sauter) + + # Z_eff(psi) comes from the kinetic file's own n_i/n_e with the [SLAYER] impurity charge. + kin_path = joinpath(trunc_dir, slayer_section["profile_file"]) + kin = Equilibrium.read_kinetic_file(kin_path) + j = length(kin.psi) ÷ 2 + @test oi.zeff(kin.psi[j]) ≈ 6.0 - kin.n_i[j] / kin.n_e[j] * 5.0 + @test overlap_inputs(Dict("zimp" => 10.0)).zeff(kin.psi[j]) ≈ 10.0 - kin.n_i[j] / kin.n_e[j] * 9.0 + @test 1.0 < oi.zeff(kin.psi[j]) < 6.0 + # A zeff profile supplied in the file overrides the n_i/n_e closure; a file with neither falls + # back to the scalar [SLAYER] zeff. + mktempdir() do tmp + own = fill(3.2, length(kin.psi)) + base = (; psi=kin.psi, n_e=kin.n_e, T_i=kin.T_i, T_e=kin.T_e, omega_E=kin.omega_E, chi_e=kin.chi_e, chi_phi=kin.chi_phi) + Equilibrium.write_kinetic_h5(joinpath(tmp, "own_zeff.h5"), Equilibrium.KineticProfileData(; base..., n_i=kin.n_i, zeff=own)) + @test Equilibrium.read_kinetic_file(joinpath(tmp, "own_zeff.h5")).zeff == own + @test overlap_inputs(Dict("profile_file" => "own_zeff.h5", "zimp" => 10.0, "zeff" => 2.5); dir=tmp).zeff(kin.psi[j]) ≈ 3.2 + Equilibrium.write_kinetic_h5(joinpath(tmp, "no_ni.h5"), Equilibrium.KineticProfileData(; base...)) + @test overlap_inputs(Dict("profile_file" => "no_ni.h5", "zeff" => 2.5); dir=tmp).zeff == 2.5 + end + + widths(over) = GeneralizedPerturbedEquilibrium._layer_overlap_scan(overlap_inputs(over), _fresh(), equil).width_dr + w_ref = widths(Dict{String,Any}()) + @test !isempty(w_ref) && all(isfinite, w_ref) + for over in (Dict("zimp" => 10.0), Dict("resistivity_model" => "spitzer"), Dict("lnLambda_form" => "sauter")) + @test all(.!isapprox.(widths(over), w_ref; rtol=1e-3)) + end + # Ion mass and field strength cancel between the Lundquist number and the ion sound radius in + # Eq. (100), so the criterion width does not depend on them; the scalar zeff is only a + # fallback, so it is inert while the file carries n_i. + for over in (Dict("mu_i" => 1.0), Dict("bt" => 1.0), Dict("zeff" => 3.0)) + @test all(isapprox.(widths(over), w_ref; rtol=1e-10)) + end + # The no-surfaces path must return an empty scan with a note, not throw (m_max=0 with # extrapolation off forces it deterministically). @testset "resistive_layer_overlap: empty surface list" begin @@ -241,3 +282,70 @@ end @test any(contains("no q ="), scan.notes) end end + +# Surfaces beyond the grid are placed on the X-point law. Checked against the equilibrium's own +# traced q: a law built on a short grid must land where a longer grid actually finds the surfaces. +@testset "Separatrix q-law" begin + using GeneralizedPerturbedEquilibrium.Equilibrium: separatrix_q_law, separatrix_q, separatrix_q_psi, separatrix_q_dqdpsi + using GeneralizedPerturbedEquilibrium.ForceFreeStates: ForceFreeStatesInternal + + # The functions themselves, on a two-X-point law with known parameters. + law2 = (psi_x=[1.0002, 1.01], A=[0.5, 0.3], psi_anchor=0.995, q_anchor=4.3) + @test separatrix_q(law2, law2.psi_anchor) == law2.q_anchor + for q_target in (4.5, 6.0, 9.0) + psi_q = separatrix_q_psi(law2, q_target) + @test law2.psi_anchor < psi_q < law2.psi_x[1] + @test separatrix_q(law2, psi_q) ≈ q_target rtol = 1e-10 + end + @test separatrix_q_dqdpsi(law2, 0.999) ≈ 0.5 / (1.0002 - 0.999) + 0.3 / (1.01 - 0.999) + @test separatrix_q_psi(law2, 4.3) === nothing # not beyond the anchor + @test separatrix_q_psi(law2, 4.0) === nothing + @test separatrix_q_psi(law2, 40.0) === nothing # closer to the separatrix than psi_gap + @test separatrix_q_psi(law2, 40.0; psi_gap=1e-40) !== nothing + + trunc_dir = joinpath(dirname(@__DIR__), "examples", "DIIID-like_truncation_example") + trunc_inputs = TOML.parsefile(joinpath(trunc_dir, "gpec.toml")) + diiid(psihigh) = Equilibrium.setup_equilibrium( + Equilibrium.EquilibriumConfig(merge(trunc_inputs["Equilibrium"], Dict("psihigh" => psihigh)), trunc_dir), nothing) + long, short = diiid(0.9999), diiid(0.995) + + # One lower X-point, 1e-4 outside this file's boundary; the law reproduces the traced shear. + law = separatrix_q_law(short) + @test law !== nothing + @test law.psi_x[1] ≈ 1.0001 atol = 2e-5 + @test law.A[1] ≈ 0.640 rtol = 1e-2 + @test law.z_x[1] < 0 + @test law.shear_ratio ≈ 1.0 atol = 0.05 + @test separatrix_q_law(short; shear_ratio=1.001) === nothing + + # Anchored at psi = 0.995, it must place q = 7 and q = 8 where the grid to 0.9999 traces them. + for q_target in (7.0, 8.0) + psi_traced = find_zero(p -> long.profiles.q_spline(p) - q_target, (0.99, 0.9999), Bisection()) + gap_traced = law.psi_x[1] - psi_traced + @test law.psi_x[1] - separatrix_q_psi(law, q_target) ≈ gap_traced rtol = 0.05 + end + + # The scan's overlap point must therefore not depend on where the grid stops, and no + # rational may fall between the in-grid search and the law. + oi = GeneralizedPerturbedEquilibrium._overlap_slayer_inputs(trunc_inputs, trunc_dir) + one_n() = (i = ForceFreeStatesInternal(); i.nlow = 1; i.nhigh = 1; i) + scan_long = GeneralizedPerturbedEquilibrium._layer_overlap_scan(oi, one_n(), long) + scan_short = GeneralizedPerturbedEquilibrium._layer_overlap_scan(oi, one_n(), short) + @test scan_short.psihigh ≈ scan_long.psihigh atol = 5e-5 + @test scan_short.first_overlap == scan_long.first_overlap + @test all(diff(scan_short.m) .== 1) && all(diff(scan_long.m) .== 1) + @test any(scan_short.extrapolated) && any(occursin("separatrix law", note) for note in scan_short.caveats) + # psihigh stays the upper limit: at most one rational is placed past the equilibrium boundary, + # and the recommendation is never beyond it. + for scan in (scan_long, scan_short) + @test count(note -> occursin("skipped", note), scan.notes) <= 1 + @test scan.psihigh < 1.0 + end + + # No 2D flux, no X-point: an analytic equilibrium is not extrapolated. + sol_dir = joinpath(dirname(@__DIR__), "examples", "Solovev_ideal_example") + sol_inputs = TOML.parsefile(joinpath(sol_dir, "gpec.toml")) + solovev = Equilibrium.setup_equilibrium( + Equilibrium.EquilibriumConfig(sol_inputs["Equilibrium"], sol_dir), Equilibrium.SolovevConfig(sol_inputs["SOL_INPUT"])) + @test separatrix_q_law(solovev) === nothing +end