From a5e9aa50bb13cb8bf01961bf7eccd6fb3d70c14c Mon Sep 17 00:00:00 2001 From: Julius Krumbiegel <22495855+jkrumbiegel@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:20:26 +0100 Subject: [PATCH] Separate X/Y scales within facet layout (#586) --- CHANGELOG.md | 1 + docs/gallery/gallery/scales/config.json | 2 +- .../gallery/scales/split_scales_facet.jl | 72 ++++++++++++++++++ docs/src/API/types.md | 1 + docs/src/layers/draw.md | 25 +++++- src/AlgebraOfGraphics.jl | 2 +- src/algebra/layers.jl | 53 ++++++++++--- src/facet.jl | 14 ++-- src/scales.jl | 12 +++ test/reference_tests.jl | 61 +++++++++++++++ test/reference_tests/barplot layout ref.png | Bin 8379 -> 8398 bytes .../hide row col and layout labels ref.png | Bin 0 -> 33939 bytes ...plit x and y scales row col layout ref.png | Bin 0 -> 17221 bytes ...split x scales across facet layout ref.png | Bin 0 -> 26543 bytes 14 files changed, 222 insertions(+), 21 deletions(-) create mode 100644 docs/gallery/gallery/scales/split_scales_facet.jl create mode 100644 test/reference_tests/hide row col and layout labels ref.png create mode 100644 test/reference_tests/split x and y scales row col layout ref.png create mode 100644 test/reference_tests/split x scales across facet layout ref.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 8aa21f759..47e7479ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Added the ability to use multiple different X and Y scales within one facet layout. The requirement is that not more than one X and Y scale is used per facet. `Row`, `Col` and `Layout` scales got the ability to set `show_labels = false` in `scales`. Also added the `zerolayer` function which can be used as a basis to build up the required mappings iteratively [#586](https://github.com/MakieOrg/AlgebraOfGraphics.jl/pull/586). - Increased compat to Makie 0.22 and GeometryBasics 0.5 [#587](https://github.com/MakieOrg/AlgebraOfGraphics.jl/pull/587). ## v0.8.13 - 2024-10-21 diff --git a/docs/gallery/gallery/scales/config.json b/docs/gallery/gallery/scales/config.json index 1c732a269..d8b07c22d 100644 --- a/docs/gallery/gallery/scales/config.json +++ b/docs/gallery/gallery/scales/config.json @@ -1,4 +1,4 @@ { "description": "Some advanced keywords to tweak the plot", - "order": ["discrete_scales.jl", "continuous_scales.jl", "custom_scales.jl", "secondary_scales.jl", "multiple_color_scales.jl", "prescaled_data.jl", "legend_merging.jl", "dodging.jl"] + "order": ["discrete_scales.jl", "continuous_scales.jl", "custom_scales.jl", "split_scales_facet.jl", "secondary_scales.jl", "multiple_color_scales.jl", "prescaled_data.jl", "legend_merging.jl", "dodging.jl"] } diff --git a/docs/gallery/gallery/scales/split_scales_facet.jl b/docs/gallery/gallery/scales/split_scales_facet.jl new file mode 100644 index 000000000..a703cc9e4 --- /dev/null +++ b/docs/gallery/gallery/scales/split_scales_facet.jl @@ -0,0 +1,72 @@ +# --- +# title: Split scales across facets +# cover: assets/split_scales_facet.png +# description: Using different categorical and continuous scales across a facet layout. +# author: "[Julius Krumbiegel](https://github.com/jkrumbiegel)" +# --- + +# Usually, facet layout plots use the same scale for all x and y axes, respectively, of every facet. +# Sometimes you might want to break with this convention, for example, to show how different +# categorical and continuous variables interact with each other. + +# AlgebraOfGraphics allows you to use multiple different scale ids for the X and Y aesthetics in a plot, +# as long as only one scale id for x and y axis, respectively, appears in a given facet. + +# Currently, this scenario requires building the plot in multiple separate layers rather +# than using wide input data with the `dims` selector for `layout`, `row` or `col` mappings. +# You need one layer for each set of scale ids. Multiple facets are allowed to share scale ids, +# but a single facet may not have multiple scale ids for x or y, respectively. + +using AlgebraOfGraphics, CairoMakie +set_aog_theme!() #src +using Random; Random.seed!(123) #src + +dat = data((; + fruit = rand(["Apple", "Orange", "Pear"], 150), + taste = randn(150) .* repeat(1:3, inner = 50), + weight = repeat(["Heavy", "Light", "Medium"], inner = 50), + cost = randn(150) .+ repeat([10, 20, 30], inner = 50), +)) + +fruit = :fruit => "Fruit" => scale(:X1) +weights = :weight => "Weight" => scale(:Y1) +taste = :taste => "Taste Score" => scale(:X2) +cost = :cost => "Cost" => scale(:Y2) + +layer1 = mapping( + fruit, + weights, + col = direct("col1"), # this controls what facet this mapping belongs to + row = direct("row1") +) * frequency() + +layer2 = mapping( + fruit, + cost, + col = direct("col1"), + row = direct("row2") +) * visual(Violin) + +layer3 = mapping( + weights, # note X and Y are flipped here for a horizontal violin + taste, + col = direct("col2"), + row = direct("row1") +) * visual(Violin, orientation = :horizontal) + +layer4 = mapping( + taste, + cost, + col = direct("col2"), + row = direct("row2") +) * visual(Scatter) + +spec = dat * (layer1 + layer2 + layer3 + layer4) + +fg = draw(spec, scales(Row = (; show_labels = false), Col = (; show_labels = false))) + +# + +# save cover image #src +mkpath("assets") #src +save("assets/split_scales_facet.png", fg) #src diff --git a/docs/src/API/types.md b/docs/src/API/types.md index 7add972c3..ead8fbf87 100644 --- a/docs/src/API/types.md +++ b/docs/src/API/types.md @@ -5,6 +5,7 @@ AlgebraOfGraphics.AbstractDrawable AlgebraOfGraphics.AbstractAlgebraic AlgebraOfGraphics.Layer AlgebraOfGraphics.Layers +AlgebraOfGraphics.zerolayer AlgebraOfGraphics.ProcessedLayer AlgebraOfGraphics.ProcessedLayers AlgebraOfGraphics.Entry diff --git a/docs/src/layers/draw.md b/docs/src/layers/draw.md index dc739d5a3..71cadcc83 100644 --- a/docs/src/layers/draw.md +++ b/docs/src/layers/draw.md @@ -15,9 +15,9 @@ Colorbar and legend, should they be necessary, can be added separately with the All properties that decide how scales are visualized can be modified by passing scale options (using the `scales` function) as the second argument of `draw` . The properties that are accepted differ depending on the scale aesthetic type (for example `Color`, `Marker`, `LineStyle`) and whether the scale is categorical or continuous. -### Categorical scale options +### Shared categorical scale options -All categorical scales take the same properties, independent of aesthetic type. +The `palette` and `categories` options are implemented across all categorical scale types. #### `palette` @@ -207,6 +207,27 @@ draw(spec, scales(Col = (; ))) ``` +### Special categorical scale options + +#### Row, Col & Layout + +All three facetting scales have the option `show_labels` which is `true` by default and can be set to `false` to hide the facet labels. + +This example shows the behavior for `Col` only: + +```@example +using AlgebraOfGraphics +using CairoMakie + +spec = data((; + x = 1:16, + y = 17:32, + group1 = repeat(["A", "B"], inner = 8), + group2 = repeat(["C", "D"], 8)) +) * mapping(:x, :y, row = :group1, col = :group2) * visual(Scatter) + +draw(spec, scales(Col = (; show_labels = false))) +``` ### Continuous scale options diff --git a/src/AlgebraOfGraphics.jl b/src/AlgebraOfGraphics.jl index 4388a052a..b258eda34 100644 --- a/src/AlgebraOfGraphics.jl +++ b/src/AlgebraOfGraphics.jl @@ -31,7 +31,7 @@ import Isoband import NaturalSort export hideinnerdecorations!, deleteemptyaxes! -export Layer, Layers, ProcessedLayer, ProcessedLayers +export Layer, Layers, ProcessedLayer, ProcessedLayers, zerolayer export Entry, AxisEntries export renamer, sorter, nonnumeric, verbatim, presorted export density, histogram, linear, smooth, expectation, frequency, contours, filled_contours diff --git a/src/algebra/layers.jl b/src/algebra/layers.jl index 8f1ce388c..16b112401 100644 --- a/src/algebra/layers.jl +++ b/src/algebra/layers.jl @@ -25,6 +25,19 @@ function Base.:*(a::AbstractAlgebraic, a′::AbstractAlgebraic) return Layers([layer * layer′ for layer in layers for layer′ in layers′]) end +""" + zerolayer() + +Returns a `Layers` with an empty layer list which can act as a zero +in the layer algebra. + +``` +layer * zerolayer() ~ zerolayer() +layer + zerolayer() ~ layer +``` +""" +zerolayer() = Layers(Layer[]) + """ ProcessedLayers(layers::Vector{ProcessedLayer}) @@ -298,25 +311,31 @@ function compute_axes_grid(d::AbstractDrawable, scales::Scales = scales(); axis= ndims = isaxis2d(ae) ? 2 : 3 aesthetics = [AesX, AesY, AesZ] for (aes, var) in zip(aesthetics[1:ndims], (:x, :y, :z)[1:ndims]) - if haskey(ae.categoricalscales, aes) + # Determine which scales of type AesX, AesY, AesZ have actually been + # used by the processed layers in the current AxisSpecEntries. + # We can allow the usage of multiple of these scales in a facetted figure + # as long as each facet only uses one kind. That makes it possible to + # create facet plots in which adjacent facets don't share X and Y scales at all, + # like completely disjoint categories or categorical next to continuous data. + used_scale_ids = get_used_scale_ids(ae, aes) + isempty(used_scale_ids) && continue + if length(used_scale_ids) > 1 + error("Found more than two scales of type $aes used in one AxesSpecGrid, this is currently not supported. Scales were: $used_scale_ids") + end + used_scale_id = only(used_scale_ids) + if haskey(ae.categoricalscales, aes) && haskey(ae.categoricalscales[aes], used_scale_id) catscales = ae.categoricalscales[aes] - if length(keys(catscales)) != 1 || only(keys(catscales)) !== nothing - error("There should only be one $aes, found keys $(keys(catscales))") - end - scale = catscales[nothing] + scale = catscales[used_scale_id] elseif haskey(ae.continuousscales, aes) conscales = ae.continuousscales[aes] - if length(keys(conscales)) != 1 || only(keys(conscales)) !== nothing - error("There should only be one $aes, found keys $(keys(conscales))") - end - scale = conscales[nothing] + scale = conscales[used_scale_id] else continue end label = getlabel(scale) # Use global scales for ticks for now # TODO: requires a nicer mechanism that takes into account axis linking - (scale isa ContinuousScale) && (scale = merged_continuousscales[aes][nothing]) + (scale isa ContinuousScale) && (scale = merged_continuousscales[aes][used_scale_id]) for (k, v) in pairs((label=label, ticks=ticks(scale))) keyword = Symbol(var, k) # Only set attribute if it was not present beforehand @@ -328,6 +347,20 @@ function compute_axes_grid(d::AbstractDrawable, scales::Scales = scales(); axis= return axes_grid end +function get_used_scale_ids(ae::AxisSpecEntries, aestype) + scale_ids = Set{Union{Nothing,Symbol}}() + for p in ae.processedlayers + aes_map = aesthetic_mapping(p) + for (key, value) in pairs(aes_map) + if value === aestype + scale_id = get(p.scale_mapping, key, nothing) + push!(scale_ids, scale_id) + end + end + end + return scale_ids +end + function to_entry(p::ProcessedLayer, categoricalscales::Dictionary, continuousscales::Dictionary) entry = to_entry(p.plottype, p, categoricalscales, continuousscales) insert!(entry.named, :cycle, nothing) diff --git a/src/facet.jl b/src/facet.jl index e0485bcb6..b877fc702 100644 --- a/src/facet.jl +++ b/src/facet.jl @@ -123,7 +123,7 @@ function facet_wrap!(fig, aes::AbstractMatrix{AxisEntries}; facet) deleteemptyaxes!(aes) # add facet labels - panel_labels!(fig, aes, scale) + scale.props.aesprops.show_labels && panel_labels!(fig, aes, scale) # span axis labels if appropriate is2d = all(isaxis2d, nonemptyaxes(aes)) @@ -151,13 +151,13 @@ function facet_grid!(fig, aes::AbstractMatrix{AxisEntries}; facet) # span axis labels if appropriate is2d = all(isaxis2d, nonemptyaxes(aes)) - if !isnothing(row_scale) && consistent_ylabels(aes) - is2d && span_ylabel!(fig, aes) - row_labels!(fig, aes, row_scale) + if !isnothing(row_scale) + is2d && consistent_ylabels(aes) && span_ylabel!(fig, aes) + row_scale.props.aesprops.show_labels && row_labels!(fig, aes, row_scale) end - if !isnothing(col_scale) && consistent_xlabels(aes) - is2d && span_xlabel!(fig, aes) - col_labels!(fig, aes, col_scale) + if !isnothing(col_scale) + is2d && consistent_xlabels(aes) && span_xlabel!(fig, aes) + col_scale.props.aesprops.show_labels && col_labels!(fig, aes, col_scale) end return end diff --git a/src/scales.jl b/src/scales.jl index 5bc1d1270..2bd3573e5 100644 --- a/src/scales.jl +++ b/src/scales.jl @@ -189,9 +189,21 @@ end Base.@kwdef struct AesDodgeYCategoricalProps <: CategoricalAesProps width::Union{Nothing,Float64} = nothing end +Base.@kwdef struct AesRowCategoricalProps <: CategoricalAesProps + show_labels::Bool = true +end +Base.@kwdef struct AesColCategoricalProps <: CategoricalAesProps + show_labels::Bool = true +end +Base.@kwdef struct AesLayoutCategoricalProps <: CategoricalAesProps + show_labels::Bool = true +end categorical_aes_props_type(::Type{AesDodgeX}) = AesDodgeXCategoricalProps categorical_aes_props_type(::Type{AesDodgeY}) = AesDodgeYCategoricalProps +categorical_aes_props_type(::Type{AesRow}) = AesRowCategoricalProps +categorical_aes_props_type(::Type{AesCol}) = AesColCategoricalProps +categorical_aes_props_type(::Type{AesLayout}) = AesLayoutCategoricalProps function CategoricalScale(aestype::Type{<:Aesthetic}, data, label::Union{AbstractString, Nothing}, props) diff --git a/test/reference_tests.jl b/test/reference_tests.jl index 994fae500..ecaae5c2b 100644 --- a/test/reference_tests.jl +++ b/test/reference_tests.jl @@ -1018,3 +1018,64 @@ reftest("stairs") do visual(Stairs) draw(spec) end + +reftest("split x scales across facet layout") do + dat = data((; + cat1 = ["Apple", "Orange", "Pear"], + cat2 = ["Blue", "Green", "Red"], + cat3 = ["Heavy", "Light", "Medium"], + cont = [4.5, 7.6, 9.3], + y1 = [3.4, 5.2, 6], + y2 = [0.3, 0.2, 0.3], + y3 = [123, 82, 71], + y4 = [-10, 10, 0.4], + )) + + cat_mappings = mapping(:cat1 => scale(:X1), :y1, layout = direct("A")) + + mapping(:cat2 => "Cat 2" => scale(:X2), :y2, layout = direct("B")) + + mapping(:cat3 => scale(:X3), :y3, layout = direct("C")) + + cont_mapping = mapping(:cont => scale(:X4), :y4, layout = direct("D")) + + spec = dat * (cat_mappings * visual(Scatter) + cont_mapping * visual(Lines)) + + draw(spec, scales(X3 = (; label = "Third Categorical"))) +end + +reftest("split x and y scales row col layout") do + dat = data((; + cat1 = ["Apple", "Orange", "Pear"], + cont2 = [1.4, 5.1, 2.5], + cat3 = ["Heavy", "Light", "Medium"], + cont4 = [2.5, -0.2, 1.2], + )) + + mappings = zerolayer() + for x in [:cat1, :cont2] + for y in [:cat3, :cont4] + mappings += mapping(x => scale(x), y => scale(y), col = direct("$x"), row = direct("$y")) + end + end + + spec = dat * mappings * visual(Scatter) + + draw(spec) +end + +reftest("hide row col and layout labels") do + f = Figure(size = (600, 600)) + d = data((; + x = 1:16, + y = 17:32, + group1 = repeat(["A", "B"], inner = 8), + group2 = repeat(["C", "D"], 8)) + ) + spec1 = d * mapping(:x, :y, row = :group1, col = :group2) * visual(Scatter) + spec2 = d * mapping(:x, :y, layout = (:group1, :group2) => tuple) * visual(Scatter) + + draw!(f[1, 1], spec1, scales(Row = (; show_labels = false), Col = (; show_labels = false))) + draw!(f[1, 2], spec1, scales(Row = (; show_labels = true), Col = (; show_labels = true))) + draw!(f[2, 1], spec2, scales(Layout = (; show_labels = false))) + draw!(f[2, 2], spec2, scales(Layout = (; show_labels = true))) + f +end diff --git a/test/reference_tests/barplot layout ref.png b/test/reference_tests/barplot layout ref.png index 968cf094a9a661411be44366d304c599f81347c7..0e9948ff4bbceb6cd963d52645563a58ed492349 100644 GIT binary patch literal 8398 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 literal 8379 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 literal 0 HcmV?d00001 diff --git a/test/reference_tests/split x and y scales row col layout ref.png b/test/reference_tests/split x and y scales row col layout ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9441145254bbc7115984dea8387b9fa42e7bf6d6 GIT binary patch literal 17221 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 literal 0 HcmV?d00001 diff --git a/test/reference_tests/split x scales across facet layout ref.png b/test/reference_tests/split x scales across facet layout ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2c62c70e46f2c8753312b6734cacdf3302c486c5 GIT binary patch literal 26543 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

Xwpx%^otw}v4W6@B(LRJ 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

24HUR=8$Dk#Y9k65OfmbV z80jEV%ViU1H19G9p{ZQ{)pN#G_y>O9MDB@J=0ApeXt0>M^etQjkbso|1FTC!Yy~^^ z@(GJ^LHWi+-LT@-tE1?2%6k^T=YtnOH=f&c=d=fIf|&*a4gBrzwkGrKE*cuXxA`gv z=29lb_L1-qDFr1dl0K*zQf~14an!6>%@Po6NICrp=ShZ$y%#qyPM%4qPXA zs6g2sP}Y!c=Xk>EkT|D0zWEG(s%3(Q8O;fv0|6z$-Qps9LUT5??&oW!uEPx&$7ZGh za)zCgje|oyRg;Lznnf$hyqDGC-EpMB+tAYoF`;Y5C>gM^RCy>Ow6jx}e00k<0~!km zK?KRnj~^XXi^z0slMA5TA{`g50MMa>lD>Zl*aJt@RooN?En)}hA9EAAcj@6#6@7(O z_$*9JhF~|r+Y^sUMuxJh!jF0rF*uMuKmYvoD`=G0FJ6#lhlYpiz@LhH1$8^8YW&Zu zEad#N-b}Ld7@mM!lA|q46%4-CgXBa~6v`p*ygn{Y} zG?IqzZZgs_nnIR62}>!&?tffTh{7eX0=Vn65gtj#u&>YWG>_)}hYCTKr3BXjDD1T# z-tcQSBA+4_hB$lkR|KG7WFeUF=nABsKc74>`i$a)CMGuaqNKmi$_EGpH!8#dU{X_4 zK?Lr+qu`ESmq>6IEuxsA#^P9Eg6<3{R1BZLztfk;I=ny*5(%T$WLR~68}-%()QOV4 z!tY}w2iX)eb?9HfZ=voVmw$n$7}VF}az8XSW*HR!MmKOwT%1>`J9&OOc2RvXJ|GhI zz9r}%FwS^*fB}~ET`edrU4vo6%lt~WlODF*e`8V4G0Q(-Brb@7g@yQx0SE(vf~&CW z!u0nVv(4~#z@!6&b7OAkCZswX6+GAk4`h&c%{le7<)UCvG%OU{F_b$o<0E+Sek(HD|bfF9-LHW0spNk7ErxA*x(Z8?k6VK7R9jPa%L3 zLKm)FWYWEC4jOYyOOat=&5ezfcLAWlZE{IG^9z?x#dr^1OH;bg6^Ua&n0v#M9G0i< z>=yPrOYD)t!owFZZYU|ag^m$;0~E*$9UExFH*aq1R6UWnL3#>KF>8I68Gf$`GqxE-~lTJ zXU|R|d84IpoIh8MQh?_^P*YK1W^WZ9d9YD@m`XxFi zCiGVi;hu4@vcZABcoBW?o)?~lg4=@euCrnQVe)|JuW@s*VoScm{AxQP!cf?3Dy z&)9hYVn}}Ly_ekFj)m0$m+>CeBJ`%UTfsE}QvCMt8!y%hKH*)vZlj?z%Z8SP^Mb=m zoUQ#Be;r^kYZFBjRn;?&k>FF^*H;Q!0Q{-bub#e@(FYjyPXh6YTmpXu0tr4-WKwz3 zzpJYN!`g^QU0rwl4CY{O-CDnAu}zK?lz|WrPc`P=J31a-lx3Qj)4$kP)J5|Z|q?Q{NECwSpc;QG+G(6KiMREjF=lcvH5fqN() zStQUnz^Mll)z;=3JmaM8xs;?n4{``xaWMB1S%~9KCKxwUXgH!d*Ng)81M(E;%~PnJ z@I~xpZzgO9eX2h44~ z=ieyP(#O6@PaJFu-sOj>01>!(Fx|qQqIMHtavITuk3B3Y*&u|+z~Gq!p0M$PJH)0J z6&3=Sxx2TZPuR9?8?q3H)XDbf)5=w}j8+;r5r|;8LU3kb!;#GJo7#cp!Tv9Th8NGn zu^@Ilzqj6cj9ov^{&OoOI$H5z9{)X+t1(P8+Z*{6Y3G#a>1i%!QS@3JTK(MV_4;zV z?p$wgr>*yUhS!BAR}2EYGvhk@J7W!XZ+_qjqrgK8cG7Jp;~QUY@G%~byS4LP2u;$m z@il&z07s%W5Cg( zzo+o~bC^;Z+kYz@K$hi8XXkTG0Zh{fR~PthzbRMT0@Q~t zB7jMeCkDoI4l?3%rrDXR|m>fd|c_y?k0w zL(yS0*C}Bn7dGq@2}@3Z3_8~?vs2Lt*M?B~PrUuhqQ;eT|Ap{=KDx~8Y>nbQ_nUO6 ziZBx?&qp^edMH8dQ)_F6rhs61J$}>T$R*aQd(ETx@4580uCCx@D{F;w6mwcHB+_mk z<*kwrZ-h38?DFDdXU)hwe;emj)Fi_T7g7!Kk+))Wo6xTk2x_+53CwJ4^kH>p(#kN7 zagc(M((o1ApiPIq9)bq>te2E=eY@>G9SWtcs6<{%juj!NKXze($4N=u2H6v0R8uboBRi$8{(=xv$`PT9H}{A{l0!>@LvHNcfj9b16fj#DN|<( zPi^V#?BtJ8!8I!N`!)t1WrS9R)RgMgp>#|>HM(`&_J;kdmoLHaKW~XD&=>Z@bNPa6 z+Up~LZV>8l^f1^Ty%C)g$0C!`Y9hwp8+IXn-Q#AJ$=u)d&?U3Hk+CsdBcnGFx6j3i z+`esS&p^IsyyNp?*BL=2K&1+vi57HfF}{H{14M*=b0Vwvqkwmk_60 z-_D^NgD#7=64hx3T1RITx+KrAv9W<{A#ga{=9w1aFV0=uObimq_KaUL%B0=KOkwz(+Go4o)A9UYpZC9fxT~f0Cv>bt z$Er+9w!uCc8X7jXGAQ|>zg2h5zF$t(5rm`vf%8=?1$?0Y=D5Ef-{XRci*JDIft$wp z)E(39Hv_;NQmocv79+_UR^`!EG?^=ywc!0(qE{>RRq zKTjNSGor-PVun_+qG%}4@}X)r)YrdceLe=08cY{w1U-Irr_S`kDqasb0Xz+o9OD62 zIiFQhHSry^p6!zhfIy`sB`xx-?3wdS+1u_x&qGy$s@}YPb(_?J>My2>a0R@ zxT}yBvs5jXRaE5RIk7M^T-eg|v-F^uZki3j;j%;N9>Xg3E^}z?F^13hB+6 z;T>Tm#^QZFqGf0}Ju-r4Zp=_b@t%dIeg@xN9X3@F|r4F z$=kbBfrpm-wr9GI;Pk{qTm3M^_o4wWTTfs7lYvNZADCAp2^{Epv0tcfF#Rll6pqS>%2bW)X{1pR4YeEJpuZa(8^aNPk##1-$mVnaE4BuvIgWd zn7(7RE9YvkwxJ3o9<#|3N;0bxPk|BMAYwv0YNI=JR$9}IE_ zXoyc|vAOgPvy))5^^%E-IDCCmC8@XKlykt@sXc9foRkD}Gafleu9*7%eNv01M#7Og z$l`KbP-Qr3a%yW8Kr^p5FJTkmHi0tL-qArH7l;@pl6Jkv*VU@37fEY!K&tKzG==xT z)O3C_BZV%s79rVff<*xA1W|+PfbD|)PK>;v!1@a&;bq)8pO|dS)lg$+tAvVB%!h+H z;Ru$i@>*ZXjf#o_p$m7bk@xgl%v^QW1A#u)6? z%z+0GPap-h6Qi_sbi|lzitp0CJEq3Ii?Pte{rzR{m{x3UN)zPp?5v&Jd1B&Wx;j)^ zTnyi_3jcjP9izH{g8X)MZ|^E-k>2B3mvitu6+D6@^^aDjE7lp&l{4V;=X|&1rCc*b zO--6RredGY;!#$YW#p>pNO$T8GAxbIlh@vo(#BvXciYE)8&rW3N1E!wBiddsA2ZBo-n8k&f* z97QCfXi-`j8M#cMtjC&}R3xQB7^6H2MVoY==RW5C2e;pp9OwJ_eBPh;`?Ve9txTS* zE03Cu_MqVmo!{QQACcIN>~DYlp2tt~j5_>!R@TSnkWt-DeKU?GCT>MkSy)`u7Q@EX zws^h7x6{>LMH(734^%UTC?l>^P6x~ZM^;7w#>UDC4LLhE5O)w}Pb#Z-+dRF|)HE6% zX?77KB>(}wta}e0#6(4f#seMNCzI9WGjRJN@C;UxxTQ97!jY;r*5&JXs}7z^;p-_<^R_&z3R zKtZsZ7|UTc@0V(cL`7ETz30ii`EmjkoFPfNV1lbW3x`)Iin#3f0#K?UUxym<0>d{B7ab8F(r8z)ju0bdWfiyp78E;%6C^hX~=KtkV6dDx#>#pa#C z*Qh~uGl%&5TSOhZ0a@^`wAJIVKC|HnQF=7jLnoe}VJuRys)$7z(tCM{{+JzVN}(M- zIjFHdHhms^3xvQBO0hU}GHm(F!T#%o2Id+E=Z-!YTISL6(!e!u`3zIj(5l_d%e^Pn zyjZ8NgHDBtG2`)O<3vR4gKwLHGL8)qdAvcRb#=;%&Q2=A9+={*SH-(e6Qar>$eq5% zZ$V}FNS%NHS<0=PKsjbw+iteED`>KUP`S~^(eZY&gM@WKd0p`FuIW+XAq3|9+Tj4&)^Fqq?Rh_lvYqL1^~L6@`By7^!fex0(yT zqOk=^D$HK)vH>n{-*uxjnO7;lG;WBH8X`-d2m(pCSx!dn{m3&U8=l|E2bj9wk0!9Z zc-s?#@X!$)`E#?B%ON?>M4A4O<34BzXNRmS@5YUp-uh@Ps@tDks+&wuu$h_0j#|%b zn4Y$djssLP#6W(76-gop4K*RaQcLCFncw>Q+ky#1zDpKA$i3uTLack<88RBEQ| z4WessKe&-lNxu8=fmeoa<~57^$(Iy@Ikbj4p&QE2?E8?~uUb)BifZ84Xshu{-@BH; zXRJ)EW0M7eWNoX5n!w{Z)x1dD#hB#c;vx#?3KWZ?%%A$7Cxf`lrfAOFf&v>A>EP=# zp9O(kKh(Bl*b{6p06qZy)G5@DHdrVcno+86G`582(?td<#$I7CDsO`b53G=pe*Cy* zOoepVlb(b+?0MYk)ll~o`D{#YBX zd2^W_jajFuFi2LMzLk(nAklLG{bE)}eBayG7dB}&Knkn_f;L3ST=dXL$;+mit0^f$ z8;Ogz&?TcgW&c(r$u1#4Nq`#GV9~{UXpra--)TFoT2<C#A$TcA>gRiD(wt+LYe73k@{Ngj{IB-vD zdaqNozdXnK%IBq6;6g$aPCEvRnR~try6)k>X(b!M8LBdcJG(!>a>FUPOY=oHEoVpGr|JP1q@y+%RHgxz~f() z$tCOShf2*x%EVIiJ`YolQTZEcYfUb!&{cy2NB+G1=}j%K_Pww2hqZ1`fj{>e(2pi0 zVv?EJPyUsg?=$JZ=|;tU8=)DsP>(J~`_-oY*4w+*{bllgtCyF&fbObgCPW!LsJBk} zA0c?I4$Ym|9@vvpeyh>H*=-Z4D5l%$joRlqp{XGBVtMqAD*;9kAk#oLTsyy%gRvh8Xr{7N`-@}$m~F}r%(76C5A#nsl;WwXUdz$M?=W6tW`f-uZZ z_89@=VtzjxpYOTrD$fF#NZ+`+(c$SU9cb@E3+ zppv5p*N9(ynuP&FN{*$<65@h%41$E+#V}ZML4k8>HNFNNM?-^!mDSDMT&-&{2M^|w zN^-oKE{ag91DVGJf#n1pG1Wfocv&hv-1enMude!VcKBB8XP%ywtvzmA-X~sn(T^kH z3ls`};_xsE%Zk;jX(gKFYmob(4O6z!`XRxyEFjq`OF}0GqDSlloiDZ;gijIf4e zrJKTt5s~~4nuc@&VydfA+UC$KLMuFZGENX*kdP`ibk$%qOb4u%4Ou)nISpj5Abb*q zW2!Bs*v5}l-v?M*=X0sjR|6wdoT3zgzh!5uOU00nJhf++m4_JO zSVi~m_bPIF0nLr5%23ZKE|i#BIRQO~5Xr^J3+Qy#I~0F_Ty~cQs{Q@)Wput#MyO|x z$=TXY|M`|yNg2lEg^8Peu&K%LLtQ>}VT=EUlo0_oK@00D2usnAvqV12it@m57Gpxj z{g;kDJ0c8_9of6pK4+?@tLvGCdNAKT-QB_QI7IT~YJ*z7?*^)jEQ5=XOp`2dO-oN_ z5U0A)lI_j;S^?Gjl(kitGR+=de8#Zism=EufAeZKN_KS^;4V8(Mef}t6z0CEwh{zV^C%i-Z z?6Rro(Hc31E)El8;fiPieu+^ssdP*<9wHT|t~xYj_{$eBLNbefv0h`N$;s4oFJHai zPW!o6BLn#G)&%?LYe|hKZ4Q;eke!jlIEXB`E6iS#rkt7>Tm@vok=O$i} z4&krcr$=m2#$+ERk<=v2Xk~Xwr@=7s3@v8Q-eo~d`Yu`6QO9l6CT1rOZ#gx6+O)9G zOOXw0>FBh+o^U8KlHQV;X#T7r=mwEo1$;g9cr~9EpcBb2g>Pt+x3_rqY#j~Mc4!nX zzf2FZw6ivvNu=3REVAT5z=#4MqAsNa4L5H@DuFaXBB_9{;c#KHqoIdi*IGW(4Y3>7bMIOfj7%}BQ-Unrc^9lm4>1OX>pAZ6M5)%^CH8f;HnoU4L z)kg3MRpm{%7Emnz@ZS$4S+jQSEssnxeN|Vk$1}6%=bsVW_q-o~yg=Psn3hJk=0kF# z{QWtoD0I=fwf0~=;-Nxjfgh}|fcF6nKHbG50*hP7FI5^jj4Od$z;JgUSE)$TiFf2_Q`rN&9G