From 20d6570ea6fa040852cf1bc05da641d82fe99f34 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Thu, 11 Jan 2024 11:26:45 -0600 Subject: [PATCH] Replay --- src/BB/log.jl | 4 +- src/BB/nodepool.jl | 48 ++-- src/BB/optimize.jl | 104 ++++---- src/BB/structs.jl | 11 + src/solvers/jump.jl | 118 ++++----- test/Project.toml | 2 + test/fixtures/stab/stab-n190-00000.h5 | Bin 0 -> 41561 bytes test/fixtures/stab/stab-n190-00000.mps.gz | Bin 0 -> 13262 bytes test/fixtures/stab/stab-n190-00002.h5 | Bin 0 -> 38990 bytes test/fixtures/stab/stab-n190-00002.mps.gz | Bin 0 -> 13270 bytes test/fixtures/stab/stab-n190-00003.h5 | Bin 0 -> 41479 bytes test/fixtures/stab/stab-n190-00003.mps.gz | Bin 0 -> 13235 bytes test/fixtures/stab/stab-n190-00004.h5 | Bin 0 -> 41105 bytes test/fixtures/stab/stab-n190-00004.mps.gz | Bin 0 -> 13280 bytes test/fixtures/stab/stab-n190-00005.h5 | Bin 0 -> 41563 bytes test/fixtures/stab/stab-n190-00005.mps.gz | Bin 0 -> 13261 bytes test/fixtures/stab/stab-n190-00006.h5 | Bin 0 -> 39919 bytes test/fixtures/stab/stab-n190-00006.mps.gz | Bin 0 -> 13271 bytes test/src/BB/tables.ipynb | 284 ++++++++++++++++++++++ test/src/BB/test_bb.jl | 107 ++++++-- 20 files changed, 534 insertions(+), 144 deletions(-) create mode 100644 test/fixtures/stab/stab-n190-00000.h5 create mode 100644 test/fixtures/stab/stab-n190-00000.mps.gz create mode 100644 test/fixtures/stab/stab-n190-00002.h5 create mode 100644 test/fixtures/stab/stab-n190-00002.mps.gz create mode 100644 test/fixtures/stab/stab-n190-00003.h5 create mode 100644 test/fixtures/stab/stab-n190-00003.mps.gz create mode 100644 test/fixtures/stab/stab-n190-00004.h5 create mode 100644 test/fixtures/stab/stab-n190-00004.mps.gz create mode 100644 test/fixtures/stab/stab-n190-00005.h5 create mode 100644 test/fixtures/stab/stab-n190-00005.mps.gz create mode 100644 test/fixtures/stab/stab-n190-00006.h5 create mode 100644 test/fixtures/stab/stab-n190-00006.mps.gz create mode 100644 test/src/BB/tables.ipynb diff --git a/src/BB/log.jl b/src/BB/log.jl index dc32805..81ca811 100644 --- a/src/BB/log.jl +++ b/src/BB/log.jl @@ -31,9 +31,9 @@ function print_progress( node::Node; time_elapsed::Float64, print_interval::Int, - primal_update::Bool, + primal_update::Bool )::Nothing - if (pool.processed % print_interval == 0) || isempty(pool.pending) || primal_update + if (pool.processed % print_interval == 0) || isempty(pool.pending) if isempty(node.branch_vars) branch_var_name = "---" branch_lb = "---" diff --git a/src/BB/nodepool.jl b/src/BB/nodepool.jl index a62a8b0..1882016 100644 --- a/src/BB/nodepool.jl +++ b/src/BB/nodepool.jl @@ -8,10 +8,10 @@ import Base.Threads: threadid function take( pool::NodePool; - suggestions::Array{Node} = [], + suggestions::Array{Node}=[], time_remaining::Float64, gap_limit::Float64, - node_limit::Int, + node_limit::Int )::Union{Symbol,Node} t = threadid() lock(pool.lock) do @@ -53,8 +53,8 @@ function offer( pool::NodePool; parent_node::Union{Nothing,Node}, child_nodes::Vector{Node}, - time_elapsed::Float64 = 0.0, - print_interval::Int = 100, + time_elapsed::Float64=0.0, + print_interval::Int=100 )::Nothing lock(pool.lock) do primal_update = false @@ -101,30 +101,32 @@ function offer( # Update branching variable history branch_var = child_nodes[1].branch_vars[end] offset = findfirst(isequal(branch_var), parent_node.fractional_variables) - x = parent_node.fractional_values[offset] - obj_change_up = child_nodes[1].obj - parent_node.obj - obj_change_down = child_nodes[2].obj - parent_node.obj - _update_var_history( - pool = pool, - var = branch_var, - x = x, - obj_change_down = obj_change_down, - obj_change_up = obj_change_up, - ) - # Update global history - pool.history.avg_pseudocost_up = - mean(vh.pseudocost_up for vh in values(pool.var_history)) - pool.history.avg_pseudocost_down = - mean(vh.pseudocost_down for vh in values(pool.var_history)) + if offset !== nothing + x = parent_node.fractional_values[offset] + obj_change_up = child_nodes[1].obj - parent_node.obj + obj_change_down = child_nodes[2].obj - parent_node.obj + _update_var_history( + pool=pool, + var=branch_var, + x=x, + obj_change_down=obj_change_down, + obj_change_up=obj_change_up, + ) + # Update global history + pool.history.avg_pseudocost_up = + mean(vh.pseudocost_up for vh in values(pool.var_history)) + pool.history.avg_pseudocost_down = + mean(vh.pseudocost_down for vh in values(pool.var_history)) + end end for node in child_nodes print_progress( pool, node, - time_elapsed = time_elapsed, - print_interval = print_interval, - primal_update = isfinite(node.obj) && isempty(node.fractional_variables), + time_elapsed=time_elapsed, + print_interval=print_interval, + primal_update=isfinite(node.obj) && isempty(node.fractional_variables), ) end end @@ -136,7 +138,7 @@ function _update_var_history(; var::Variable, x::Float64, obj_change_down::Float64, - obj_change_up::Float64, + obj_change_up::Float64 )::Nothing # Create new history entry if var ∉ keys(pool.var_history) diff --git a/src/BB/optimize.jl b/src/BB/optimize.jl index fcdd020..4e05fc0 100644 --- a/src/BB/optimize.jl +++ b/src/BB/optimize.jl @@ -10,16 +10,22 @@ import ..H5File function solve!( mip::MIP; - time_limit::Float64 = Inf, - node_limit::Int = typemax(Int), - gap_limit::Float64 = 1e-4, - print_interval::Int = 5, - initial_primal_bound::Float64 = Inf, - branch_rule::VariableBranchingRule = ReliabilityBranching(), - enable_plunging = true, -)::NodePool + time_limit::Float64=Inf, + node_limit::Int=typemax(Int), + gap_limit::Float64=1e-4, + print_interval::Int=5, + initial_primal_bound::Float64=Inf, + branch_rule::VariableBranchingRule=ReliabilityBranching(), + enable_plunging=true, + replay=nothing +)::Tuple{NodePool,ReplayInfo} + + if replay === nothing + replay = ReplayInfo() + end + time_initial = time() - pool = NodePool(mip = mip) + pool = NodePool(mip=mip, next_index=replay.next_index) pool.primal_bound = initial_primal_bound root_node = _create_node(mip) @@ -34,9 +40,9 @@ function solve!( offer( pool, - parent_node = nothing, - child_nodes = [root_node], - print_interval = print_interval, + parent_node=nothing, + child_nodes=[root_node], + print_interval=print_interval, ) @threads for t = 1:nthreads() child_one, child_zero, suggestions = nothing, nothing, Node[] @@ -47,10 +53,10 @@ function solve!( end node = take( pool, - suggestions = suggestions, - time_remaining = time_limit - time_elapsed, - node_limit = node_limit, - gap_limit = gap_limit, + suggestions=suggestions, + time_remaining=time_limit - time_elapsed, + node_limit=node_limit, + gap_limit=gap_limit, ) if node == :END break @@ -64,9 +70,24 @@ function solve!( @assert status == :Optimal _unset_node_bounds(node) - # Find branching variable - ids = generate_indices(pool, 2) - branch_var = find_branching_var(branch_rule, node, pool) + if node.index in keys(replay.node_decisions) + decision = replay.node_decisions[node.index] + ids = decision.ids + branch_var = decision.branch_var + var_value = decision.var_value + else + # Find branching variable + ids = generate_indices(pool, 2) + branch_var = find_branching_var(branch_rule, node, pool) + + # Query current fractional value + offset = findfirst(isequal(branch_var), node.fractional_variables) + var_value = node.fractional_values[offset] + + # Update replay + decision = ReplayNodeDecision(; branch_var, var_value, ids) + replay.node_decisions[node.index] = decision + end # Find current variable lower and upper bounds offset = findfirst(isequal(branch_var), mip.int_vars) @@ -79,46 +100,43 @@ function solve!( end end - # Query current fractional value - offset = findfirst(isequal(branch_var), node.fractional_variables) - var_value = node.fractional_values[offset] - child_zero = _create_node( mip, - index = ids[2], - parent = node, - branch_var = branch_var, - branch_var_lb = var_lb, - branch_var_ub = floor(var_value), + index=ids[2], + parent=node, + branch_var=branch_var, + branch_var_lb=var_lb, + branch_var_ub=floor(var_value), ) child_one = _create_node( mip, - index = ids[1], - parent = node, - branch_var = branch_var, - branch_var_lb = ceil(var_value), - branch_var_ub = var_ub, + index=ids[1], + parent=node, + branch_var=branch_var, + branch_var_lb=ceil(var_value), + branch_var_ub=var_ub, ) offer( pool, - parent_node = node, - child_nodes = [child_one, child_zero], - time_elapsed = time_elapsed, - print_interval = print_interval, + parent_node=node, + child_nodes=[child_one, child_zero], + time_elapsed=time_elapsed, + print_interval=print_interval, ) end end end - return pool + replay.next_index = pool.next_index + return pool, replay end function _create_node( mip; - index::Int = 0, - parent::Union{Nothing,Node} = nothing, - branch_var::Union{Nothing,Variable} = nothing, - branch_var_lb::Union{Nothing,Float64} = nothing, - branch_var_ub::Union{Nothing,Float64} = nothing, + index::Int=0, + parent::Union{Nothing,Node}=nothing, + branch_var::Union{Nothing,Variable}=nothing, + branch_var_lb::Union{Nothing,Float64}=nothing, + branch_var_ub::Union{Nothing,Float64}=nothing )::Node if parent === nothing branch_vars = Variable[] diff --git a/src/BB/structs.jl b/src/BB/structs.jl index e3be2f8..9b450a8 100644 --- a/src/BB/structs.jl +++ b/src/BB/structs.jl @@ -72,3 +72,14 @@ Base.@kwdef mutable struct NodePool history::History = History() var_history::Dict{Variable,VariableHistory} = Dict() end + +Base.@kwdef struct ReplayNodeDecision + branch_var + var_value + ids +end + +Base.@kwdef mutable struct ReplayInfo + node_decisions::Dict{Int,ReplayNodeDecision} = Dict() + next_index::Int = 1 +end \ No newline at end of file diff --git a/src/solvers/jump.jl b/src/solvers/jump.jl index 726c449..56160bc 100644 --- a/src/solvers/jump.jl +++ b/src/solvers/jump.jl @@ -36,13 +36,14 @@ function _add_constrs( end function _extract_after_load(model::JuMP.Model, h5) + @info "_extract_after_load" if JuMP.objective_sense(model) == MOI.MIN_SENSE h5.put_scalar("static_sense", "min") else h5.put_scalar("static_sense", "max") end - _extract_after_load_vars(model, h5) - _extract_after_load_constrs(model, h5) + @time _extract_after_load_vars(model, h5) + @time _extract_after_load_constrs(model, h5) end function _extract_after_load_vars(model::JuMP.Model, h5) @@ -117,10 +118,11 @@ function _extract_after_load_constrs(model::JuMP.Model, h5) end function _extract_after_lp(model::JuMP.Model, h5) + @info "_extract_after_lp" h5.put_scalar("lp_wallclock_time", solve_time(model)) h5.put_scalar("lp_obj_value", objective_value(model)) - _extract_after_lp_vars(model, h5) - _extract_after_lp_constrs(model, h5) + @time _extract_after_lp_vars(model, h5) + @time _extract_after_lp_constrs(model, h5) end function _extract_after_lp_vars(model::JuMP.Model, h5) @@ -146,46 +148,46 @@ function _extract_after_lp_vars(model::JuMP.Model, h5) end h5.put_array("lp_var_basis_status", to_str_array(basis_status)) - # Sensitivity analysis - obj_coeffs = h5.get_array("static_var_obj_coeffs") - sensitivity_report = lp_sensitivity_report(model) - sa_obj_down, sa_obj_up = Float64[], Float64[] - sa_lb_down, sa_lb_up = Float64[], Float64[] - sa_ub_down, sa_ub_up = Float64[], Float64[] - for (i, v) in enumerate(vars) - # Objective function - (delta_down, delta_up) = sensitivity_report[v] - push!(sa_obj_down, delta_down + obj_coeffs[i]) - push!(sa_obj_up, delta_up + obj_coeffs[i]) - - # Lower bound - if has_lower_bound(v) - constr = LowerBoundRef(v) - (delta_down, delta_up) = sensitivity_report[constr] - push!(sa_lb_down, lower_bound(v) + delta_down) - push!(sa_lb_up, lower_bound(v) + delta_up) - else - push!(sa_lb_down, -Inf) - push!(sa_lb_up, -Inf) - end - - # Upper bound - if has_upper_bound(v) - constr = JuMP.UpperBoundRef(v) - (delta_down, delta_up) = sensitivity_report[constr] - push!(sa_ub_down, upper_bound(v) + delta_down) - push!(sa_ub_up, upper_bound(v) + delta_up) - else - push!(sa_ub_down, Inf) - push!(sa_ub_up, Inf) - end - end - h5.put_array("lp_var_sa_obj_up", sa_obj_up) - h5.put_array("lp_var_sa_obj_down", sa_obj_down) - h5.put_array("lp_var_sa_ub_up", sa_ub_up) - h5.put_array("lp_var_sa_ub_down", sa_ub_down) - h5.put_array("lp_var_sa_lb_up", sa_lb_up) - h5.put_array("lp_var_sa_lb_down", sa_lb_down) + # # Sensitivity analysis + # obj_coeffs = h5.get_array("static_var_obj_coeffs") + # sensitivity_report = lp_sensitivity_report(model) + # sa_obj_down, sa_obj_up = Float64[], Float64[] + # sa_lb_down, sa_lb_up = Float64[], Float64[] + # sa_ub_down, sa_ub_up = Float64[], Float64[] + # for (i, v) in enumerate(vars) + # # Objective function + # (delta_down, delta_up) = sensitivity_report[v] + # push!(sa_obj_down, delta_down + obj_coeffs[i]) + # push!(sa_obj_up, delta_up + obj_coeffs[i]) + + # # Lower bound + # if has_lower_bound(v) + # constr = LowerBoundRef(v) + # (delta_down, delta_up) = sensitivity_report[constr] + # push!(sa_lb_down, lower_bound(v) + delta_down) + # push!(sa_lb_up, lower_bound(v) + delta_up) + # else + # push!(sa_lb_down, -Inf) + # push!(sa_lb_up, -Inf) + # end + + # # Upper bound + # if has_upper_bound(v) + # constr = JuMP.UpperBoundRef(v) + # (delta_down, delta_up) = sensitivity_report[constr] + # push!(sa_ub_down, upper_bound(v) + delta_down) + # push!(sa_ub_up, upper_bound(v) + delta_up) + # else + # push!(sa_ub_down, Inf) + # push!(sa_ub_up, Inf) + # end + # end + # h5.put_array("lp_var_sa_obj_up", sa_obj_up) + # h5.put_array("lp_var_sa_obj_down", sa_obj_down) + # h5.put_array("lp_var_sa_ub_up", sa_ub_up) + # h5.put_array("lp_var_sa_ub_down", sa_ub_down) + # h5.put_array("lp_var_sa_lb_up", sa_lb_up) + # h5.put_array("lp_var_sa_lb_down", sa_lb_down) end @@ -201,7 +203,7 @@ function _extract_after_lp_constrs(model::JuMP.Model, h5) duals = Float64[] basis_status = [] constr_idx = 1 - sensitivity_report = lp_sensitivity_report(model) + # sensitivity_report = lp_sensitivity_report(model) for (ftype, stype) in JuMP.list_of_constraint_types(model) for constr in JuMP.all_constraints(model, ftype, stype) length(JuMP.name(constr)) > 0 || continue @@ -219,21 +221,22 @@ function _extract_after_lp_constrs(model::JuMP.Model, h5) error("Unknown basis status: $b") end - # Sensitivity analysis - (delta_down, delta_up) = sensitivity_report[constr] - push!(sa_rhs_down, rhs[constr_idx] + delta_down) - push!(sa_rhs_up, rhs[constr_idx] + delta_up) + # # Sensitivity analysis + # (delta_down, delta_up) = sensitivity_report[constr] + # push!(sa_rhs_down, rhs[constr_idx] + delta_down) + # push!(sa_rhs_up, rhs[constr_idx] + delta_up) constr_idx += 1 end end h5.put_array("lp_constr_dual_values", duals) h5.put_array("lp_constr_basis_status", to_str_array(basis_status)) - h5.put_array("lp_constr_sa_rhs_up", sa_rhs_up) - h5.put_array("lp_constr_sa_rhs_down", sa_rhs_down) + # h5.put_array("lp_constr_sa_rhs_up", sa_rhs_up) + # h5.put_array("lp_constr_sa_rhs_down", sa_rhs_down) end function _extract_after_mip(model::JuMP.Model, h5) + @info "_extract_after_mip" h5.put_scalar("mip_obj_value", objective_value(model)) h5.put_scalar("mip_obj_bound", objective_bound(model)) h5.put_scalar("mip_wallclock_time", solve_time(model)) @@ -254,11 +257,14 @@ end function _fix_variables(model::JuMP.Model, var_names, var_values, stats) vars = [variable_by_name(model, v) for v in var_names] for (i, var) in enumerate(vars) - fix(var, var_values[i], force = true) + if isfinite(var_values[i]) + fix(var, var_values[i], force=true) + end end end function _optimize(model::JuMP.Model) + @info "_optimize" optimize!(model) flush(stdout) Libc.flush_cstdio() @@ -269,7 +275,7 @@ function _relax(model::JuMP.Model) relax_integrality(relaxed) # FIXME: Remove hardcoded optimizer set_optimizer(relaxed, HiGHS.Optimizer) - set_silent(relaxed) + # set_silent(relaxed) return relaxed end @@ -303,7 +309,7 @@ function __init_solvers_jump__() constrs_lhs, constrs_sense, constrs_rhs, - stats = nothing, + stats=nothing, ) = _add_constrs( self.inner, from_str_array(var_names), @@ -319,14 +325,14 @@ function __init_solvers_jump__() extract_after_mip(self, h5) = _extract_after_mip(self.inner, h5) - fix_variables(self, var_names, var_values, stats = nothing) = + fix_variables(self, var_names, var_values, stats=nothing) = _fix_variables(self.inner, from_str_array(var_names), var_values, stats) optimize(self) = _optimize(self.inner) relax(self) = Class(_relax(self.inner)) - set_warm_starts(self, var_names, var_values, stats = nothing) = + set_warm_starts(self, var_names, var_values, stats=nothing) = _set_warm_starts(self.inner, from_str_array(var_names), var_values, stats) write(self, filename) = _write(self.inner, filename) diff --git a/test/Project.toml b/test/Project.toml index dce63f3..9987a59 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -4,7 +4,9 @@ authors = ["Alinson S. Xavier "] version = "0.1.0" [deps] +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" Clp = "e2554f3b-3117-50c0-817c-e040a3ddf72d" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" diff --git a/test/fixtures/stab/stab-n190-00000.h5 b/test/fixtures/stab/stab-n190-00000.h5 new file mode 100644 index 0000000000000000000000000000000000000000..c70823bd55e4009b2b3018be6a755bbedbb935d4 GIT binary patch literal 41561 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 S4weKWD@JIvmE3Us)Bge2lAe_S literal 0 HcmV?d00001 diff --git a/test/fixtures/stab/stab-n190-00000.mps.gz b/test/fixtures/stab/stab-n190-00000.mps.gz new file mode 100644 index 0000000000000000000000000000000000000000..d270669c033d8ab8f5101ea87716224e59032926 GIT binary patch literal 13262 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 YGM4Wn0POceIt>KRyJ9oBsIAA?2aK>z>% literal 0 HcmV?d00001 diff --git a/test/fixtures/stab/stab-n190-00003.h5 b/test/fixtures/stab/stab-n190-00003.h5 new file mode 100644 index 0000000000000000000000000000000000000000..cfc852eef0f5c5a322515d334645ef36e680c5f6 GIT binary patch literal 41479 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/stab/stab-n190-00003.mps.gz b/test/fixtures/stab/stab-n190-00003.mps.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf50673bc81f0c6e7b86a0b48d30a135fa046647 GIT binary patch literal 13235 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 I>V!Z literal 0 HcmV?d00001 diff --git a/test/fixtures/stab/stab-n190-00004.mps.gz b/test/fixtures/stab/stab-n190-00004.mps.gz new file mode 100644 index 0000000000000000000000000000000000000000..db7fd378eec97839bb20a5bdc849c184da9c3dd9 GIT binary patch literal 13280 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/stab/stab-n190-00005.h5 b/test/fixtures/stab/stab-n190-00005.h5 new file mode 100644 index 0000000000000000000000000000000000000000..855899b1c326a0e18ca1e885da583ce54ad78800 GIT binary patch literal 41563 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/stab/stab-n190-00005.mps.gz b/test/fixtures/stab/stab-n190-00005.mps.gz new file mode 100644 index 0000000000000000000000000000000000000000..420e516d3c503eb604fe2a82dc66927e2b3bbc54 GIT binary patch literal 13261 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 Wa-M}z^2rL@wK;1?f42Mbi~j|nQejvC literal 0 HcmV?d00001 diff --git a/test/fixtures/stab/stab-n190-00006.h5 b/test/fixtures/stab/stab-n190-00006.h5 new file mode 100644 index 0000000000000000000000000000000000000000..1ad8c565859b464ee18cf8b265cc21908b1f280d GIT binary patch literal 39919 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

5FatDC#&Ldz%ee2P-Y^^DH#>XH>wV-IW& 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 TsB-YG2W2aeh~3Hr_O<^XLWh0M literal 0 HcmV?d00001 diff --git a/test/fixtures/stab/stab-n190-00006.mps.gz b/test/fixtures/stab/stab-n190-00006.mps.gz new file mode 100644 index 0000000000000000000000000000000000000000..d25ce781977c4e2980f044ebd7174c5a8a245c90 GIT binary patch literal 13271 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 literal 0 HcmV?d00001 diff --git a/test/src/BB/tables.ipynb b/test/src/BB/tables.ipynb new file mode 100644 index 0000000..4a03a8f --- /dev/null +++ b/test/src/BB/tables.ipynb @@ -0,0 +1,284 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 35, + "id": "d50e05d2", + "metadata": {}, + "outputs": [], + "source": [ + "%config InlineBackend.figure_format = \"retina\"" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "3992d7bb-a88c-4c93-97fc-f5336fdc1b61", + "metadata": { + "jupyter": { + "source_hidden": true + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "from glob import glob\n", + "import numpy as np\n", + "\n", + "sns.set()\n", + "sns.set_palette(\n", + " [\n", + " \"#9b59b6\",\n", + " \"#3498db\",\n", + " \"#95a5a6\",\n", + " \"#e74c3c\",\n", + " \"#34495e\",\n", + " \"#2ecc71\",\n", + " ]\n", + ")\n", + "\n", + "\n", + "def _read_csv(pattern):\n", + " results = []\n", + " for filename in sorted(glob(pattern)):\n", + " group_df = pd.read_csv(filename)\n", + " results.append(group_df)\n", + " return pd.concat(results)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "40266100-96db-40ef-bfde-a333eec685b5", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Solve time (s)Relative MIP gap (%)FilenameReplay?
060.33487610.367stab-n190-00002False
122.36284310.624stab-n190-00002True
264.17513711.990stab-n190-00003False
39.83298912.019stab-n190-00003True
462.08927412.094stab-n190-00004False
511.31709412.231stab-n190-00004True
662.53822211.530stab-n190-00005False
717.38869311.610stab-n190-00005True
863.19442410.384stab-n190-00006False
921.74694910.363stab-n190-00006True
\n", + "
" + ], + "text/plain": [ + " Solve time (s) Relative MIP gap (%) Filename Replay?\n", + "0 60.334876 10.367 stab-n190-00002 False\n", + "1 22.362843 10.624 stab-n190-00002 True\n", + "2 64.175137 11.990 stab-n190-00003 False\n", + "3 9.832989 12.019 stab-n190-00003 True\n", + "4 62.089274 12.094 stab-n190-00004 False\n", + "5 11.317094 12.231 stab-n190-00004 True\n", + "6 62.538222 11.530 stab-n190-00005 False\n", + "7 17.388693 11.610 stab-n190-00005 True\n", + "8 63.194424 10.384 stab-n190-00006 False\n", + "9 21.746949 10.363 stab-n190-00006 True" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = _read_csv(\"../../../tmp.csv\")\n", + "data[\"Filename\"] = data[\"Filename\"].str.replace(\"test/fixtures/stab/\", \"\")\n", + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "39381cac", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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1VuStGPHVqWnp6lu3Xpq0aJlofdOTk7SqVMnJEn+/kNlbc3HagAAoGiWHYPlH/NIkqdn9ULL5M7ezcrKUkJCvKpUqVrkfY4c+Vmvv/6KUlKSzcdcXV1lb+9gbkdSUlKeMVquDh06qXp1L12+HKX9+/eoRw/GYLkIagEAACA7O3s1aNBQEya8palT39Thw4f08ccfaMKEtyT9vQOxJH344UI1aNDQqKaaZWZmat682UpJSVHLlq305JND1LhxE9nb25uv2b59iz78cH6e9ueytraWn18frV79pb7//ltzUPvDD5sk5ayhdj3x8QnmeitXrlJajwUAAG4jpTkGq1Yt54felt5MK2dzsylKSUlW27btFRAwWnfd1UwODg7mazZv3qjZs98pdAzWr19/LV36uX74YZM5qGUMxhq1AAAAuIaVlZXGjPmXrK2ttW/fHh0/fkySVKmSm3m2QnT05RuuPzY2pshz1tbWcnV1LbKuX345pStXrqhSpUp666235ePTPE9IK0lXr169bh333ttX1tbW+r//C9GVK9E6dy5MZ86clo2Njfr2ffC6ZU2mv1+CKsrndgAAwBiWHoMVtiyV9PfyBDY2NqpUya3Iuk6cOKbLl6Pk5uau2bPfl69vqzwhrVTwslPX6tfvYVlbW+unn0J05coVxmD/Q1ALAACAPGrVqq2uXXN2Gl65cqmknN2Hc9dLO3To4A3XfeLEsSLP1atXv1hro125ckWSdMcdteXo6FjgNYVtaparevXqatmytbKysvTDD9/rhx9yNrDo0KGzeVZKYapUqaoPP1ykDz9cJC+vGkW2FwAA4HosOQa73pjoyJGcc3fe2bBYY7DLl3MC4zp16hY6Bjt06MB166hRo4batu2grKwsbd26mTHY/xDUAgAAIJ9HH31cknTq1Enzbr29e98nSdq5c7t+++3X65ZPTEwo8HhUVJSCg4PyHU9IiNfWrT9Ikrp06VasNrq4uEiSIiL+UHp6er7zhw8fyrfTcEH69LlfkrR587favn2rpKI3sJAkBwcHtW7dVq1bty30JQUAAKAkbnYMVtg6thERf2rHjq0FXB+n7777RpLUs2fvYrUx98unS5cuFrgvwYED/6fDhw8VWU///gMkSd9//x1jsP8hqAUAAEA+DRs2UsuWrSRJa9eukiTdd19fNWnSVOnp6Xrzzde1desPSk5O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Pl4hISHat2+fJkyYoICAgHzlsrKyNHbsWO3atUuurq665557lJ6erpCQEL366qsKDQ3VW2+9VeA93377ba1atUoODg7q1KmTbG1tFRISounTpyskJEQffvhhgWHt559/rrlz58rGxkbt27eXm5ubDh48qAULFmj37t1atmyZnJyc8pTZtGmTNm3apPr16+uuu+6Sh4eHYmJiFBoaqhMnTuibb77Rl19+KU9PzxL3HQAAAAAAAMqP2yqovZ3cd999uvPOO+Xj4yMPDw8NGDCgyDLBwcFauHChnJ2d9emnn6pTp06Scmamzp8/X5999pleeOEFbdmyJd/s0MmTJys8PFz9+vXTnDlzZGub81crMDBQL7zwgiZOnKjWrVvLy8urRM8xb948HTt2TO3bt9eiRYvMs0uPHj2qYcOG6b333lOHDh3yhcfLly/Xrl271KhRIy1fvlzVqlWTJP3+++8aPHiwVq5cqY4dO8rPzy9PuW3btmnVqlXy9PTUl19+qfr160uSrly5oqefflo7duzQypUrNWzYsDzljh8/rnnz5snJyUnLly+Xr6+vJCkpKUljxozRwYMHNX/+fE2aNClPuZEjR2rChAnm9uW6evWqxo4dq4MHD2ru3Ll67733StRvAAAAAAAAKF9Yo7aCmjVrlkaPHq1OnTqpUqVKxSqzYsUKSVJAQIA5pJUka2trvfLKK2rcuLEuXbqkb7/9Nk+5s2fPKigoSK6urpo+fbo5pJUkPz8/DRgwQCkpKVq+fHmJnuHq1atau3atrK2tNWvWrDxLAPj6+mrUqFEymUxavHhxnnJZWVlasmSJJGnatGl5QtD69etr/PjxkqRFixblu2duXePHjzeHtJJUrVo1TZs2TVLOzNns7Ow85T7//HOZTCaNGjXKHNJKkouLi959911ZW1tr1apVio+Pz1OuadOm+UJaSfLw8NDLL78sSdq/f3+B/QMAAAAAAICKo0IEtb/99pveeOMN9ezZUz4+PmrVqpV69eql559/Xtu2bZMk9erVSxMnTpQkffPNN2rSpIn514QJE8x1nTt3Th988IGefPJJdenSRT4+PurYsaNGjx6tPXv2FNmW2NhYTZ06Vd26dVPz5s3l5+en+fPnKyUlpcTPtWHDBnP7EhMT9d5776lXr17y8fFR165dNXXqVF29erXE9Rbm+PHjkqTOnTvnO2dt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1KNHD+3evVtTpkzRnDlzZGub81crMDBQGzdulJOTk4YNG1aitnh4eOiJJ57QV199pUmTJuX59D93aQsrKyuNGTMmTzkbGxuNGjVKc+bM0bRp07RixQpVrVpVkvT7779r3rx5kqRnn3023z2feeYZvfTSS5o7d65atWqlevXqSZJiYmL09ttvS8rZdO2fy1GMHj1aO3bs0JIlS9StWzfzJndJSUmaNGmSsrOzNXTo0Dxr+wIAAKDsuVXvMQAAAP9kkaD2woULGjRokOLi4mQymWRlZaWqVavmmfVYWtatW6fp06erTp068vb2lrOzs65cuaKff/5ZGRkZ6tevnzk0a9mypTw9PXXy5Ek9+uij8vb2lq2trVq3bq2BAweqV69eatasmU6dOqX77rtP7du3l4ODgw4fPqzExEQNHTpUK1euLLQtvXr1UlhYmPz8/NShQwdlZmbqp59+UmJiopo3b64XX3yx1J+/MJ988omCg4Ml/b3ZWGpqqp74f/buO0yL6nAb8MPSi4BGRKPYBaMgghHBGhFLYjQmJlHsvZuYqD9LjDVqNKgxGrtRNNZE7LGh2FFQQECxR8UoiCJIZ2H3+4NvX1l3FwHBAbnv6+K61pk5M2fOjjtnnve8Z37969I222yzTY4++uhq5fbYY4+sssoqWWedddK6deuMHTs2w4YNS3l5efbYY48cd9xxtR7vT3/6U3r37p0HH3www4YNS+fOnTN27NgMGTIkZWVlOe+886qNXp1fxx9/fIYPH55BgwZl++23z6abbppJkyblhRdeyOzZs3PSSSdVm76gygEHHJDBgwdnwIAB2WGHHdKjR4/MmjUrzz//fGbMmJF999231hG+O+20U3r37p3bbrstu+yySzbffPM0aNAgAwcOzOTJk9OrV6/ss88+NcpttNFGOf7449OnT5/sueee6d69e5ZbbrkMHjw4n332WTp37pzf/e53C3z+AAB8e77N5xgAgK9aLEHtpZdemgkTJmTllVfOqaeemp49e5ZGWC5qxx13XAYMGJDhw4dn6NChmTx5clZcccV069Ytv/rVr7LjjjuWtm3UqFGuu+66XHLJJRk2bFhGjRqVioqKzJ49O7vvvnsaNGiQm2++OVdeeWX69++f5557Lq1atUq3bt1yzDHHZNiwYfOsS6tWrXLnnXfm4osvzlNPPZXPP/88bdu2zT777JPDDz88zZo1WyxtUJvRo0fnlVdeqbasoqKi2rLa5u096KCDMnjw4IwcOTJTpkxJ69ats+2226Z3797ZfPPN6zxemzZt0q9fv1LbPfbYY2nRokV69uyZI444ohSWL6jmzZvnlltuyfXXX58HHnggAwYMSOPGjdO9e/cceOCB2WqrrWotV79+/VxxxRW59dZb069fvzz77LMpKyvLhhtumL322iu77LJLncc888wzs8kmm+SWW27JoEGDUlFRkbXXXju77757evfuXefL3Q499NB06NAhN9xwQ0aMGJEZM2akXbt22XfffXPwwQfr4AMALOG+zecYAICvqldZWVm5qHe6+eab5/PPP88///nPbLLJJot698Ai9MbgD3LxgXcUXY3vhKtHnpgkGTduUsE1KU6bNnOmfVmW22B+aasFo73mn7aaf9/1tmrVqmkaNRIyLohv6zlG/wsAivFtPLd/kz5Y7UMDv6EpU6akSZMmQloAAGCp4TkGACjSYglqV1lllVRUVGQxDNYFAABYLDzHAABFWixB7c4775yZM2dm4MCBi2P3AAAAi5znGACgSIslqD3ssMOy/vrr5/TTT8/o0aMXxyEAAAAWKc8xAECRFsvbBR566KH84he/yGWXXZZdd901O+64Yzp16pTmzZvPs9xuu+22OKoDAADwtTzHAABFWixB7cknn5x69eqV5na69957c++9935tOR0cAACgKJ5jAIAiLZagdtNNN10cuwUAAFhsPMcAAEVaLEHtzTffvDh2CwAAsNh4jgEAirRYXiYGAAAAAMD8E9QCAAAAABRssUx9UGXy5Mn517/+leeeey5jxozJ9OnT079//9L6SZMm5fHHH0+S/OxnP0u9evUWZ3UAAAC+lucYAKAIiy2oHTp0aI499th89tlnpbemfrUDs9xyy6Vv3755/fXXs8IKK2TrrbdeXNUBAAD4Wp5jAICiLJapD8aMGZMjjjgin376abbccstccMEFadWqVa3b7rnnnqmsrCx9Ig0AAFAEzzEAQJEWS1B73XXXZeLEidlll11y7bXX5mc/+1kaNmxY67ZVnz6/8sori6MqAAAA88VzDABQpMUS1D7zzDOpV69efvvb337ttqusskqaNGmSDz/8cHFUBQAAYL54jgEAirRYgtqPP/44TZs2zWqrrTZf2zdp0iTTp09fHFUBAACYL55jAIAiLZagtlGjRpk5c2Zp8v15mTFjRiZNmpSWLVsujqoAAADMF88xAECRFktQu+aaa2b27Nl56623vnbbJ554IrNnz0779u0XR1UAAADmi+cYAKBIiyWo7dWrVyorK3PVVVfNc7tPPvkkf/nLX1KvXr3stNNOi6MqAAAA88VzDABQpAaLY6f77bdf7rzzzjz00EOpX79+DjzwwNLXhyZPnpyPPvooTz/9dP7xj39k/PjxWXfddbP77rsvjqoAAADMF88xAECRFktQ26xZs1x77bU59NBDc//99+eBBx4ordt0001LP1dWVqZdu3a58sor07Bhw8VRFQAAgPniOQYAKNJimfogSdZZZ53cd999Ofzww9O2bdtUVlZW+/e9730vhx56aPr165d27dotrmoAAADMN88xAEBRFsuI2iotWrTI7373u/zud7/LmDFj8sknn5Q6N6utttriPDQAAMBC8RwDABRhsQa1c1t55ZWz8sorf1uHAwAA+MY8xwAA35bFNvUBAAAAAADz5xuPqP3oo48WRT2SJN///vcX2b4AAADq4jkGAFjSfOOgdrvttlsU9Ui9evXy2muvLZJ9AQAAzIvnGABgSfONg9rKyspFUY9Fth8AAICv4zkGAFjSfOOg9vXXX18U9QAAAPjWeI4BAJY0XiYGAAAAAFAwQS0AAAAAQMEEtQAAAAAABfvGc9RefvnlSZLll18+e++9d7VlC+qYY475ptUBAAD4Wp5jAIAlzSIJauvVq5e11lqrWgenXr16872PysrK1KtXTwcHAAD4VniOAQCWNN84qN1tt91Sr169tGnTpsYyAACAJZHnGABgSfONg9o///nP6du3b5o1a1ZtGQAAwJLKcwwAsKRZJC8TO//88/O3v/2t1nWnnnpqjj322EVxGAAAgEXGcwwAsCT5xiNqq1RWVta6/Omnn85nn322qA4DAACwyHiOAQCWFItkRC0AAAAAAAtPUAsAAAAAUDBBLQAAAABAwQS1AAAAAAAFE9QCAAAAABSswaLa0cSJE7PffvvVWD5hwoQkqXXd3OrVq5e+ffsuquoAAAB8Lc8xAMCSYpEFteXl5Rk0aFCd6+e1LpnTwQEAAPg2eY4BAJYUiySo/fnPf74odgMAAPCt8RwDACxJFklQe/755y+K3QAAAHxrPMcAAEsSLxMDAAAAACiYoBYAAAAAoGCC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9uzZOeaYY/LEE0+kRYsW2WKLLTJz5swMHDgwxx9/fIYNG5bTTjut1mOeddZZufXWW9O4ceP06NEjDRo0yMCBA3P22Wdn4MCB+dvf/lZrWHvttdemT58+qV+/frp165aWLVtm8ODB+etf/5onn3wyN954Y5o2bVrrMVdfffVssskmta5r0qTJArQYAAAAAEujZSqoXZbssMMOWWuttdKxY8e0bt06u+2229eWeeqpp3LllVemWbNmueKKK9KjR48kc0amXnLJJbnmmmty7LHH5qGHHqoxOvSPf/xjRo8enZ133jkXXnhhGjSYc2n1798/xx57bE455ZR07do1bdu2XaDzuOiiizJ8+PB069YtV111VZo3b54keeWVV7L//vvnggsuyGabbVYjPO7bt2+eeOKJrLvuuunbt29WXHHFJMl7772XvffeOzfffHO6d++eXr16VSv3yCOP5NZbb02bNm3yz3/+M2uuuWaS5NNPP81+++2Xxx57LDfffHP233//auVGjBiRiy66KE2bNk3fvn3TuXPnJMmUKVNy+OGHZ/Dgwbnkkkty6qmn1nqem2yyyXf+wwMAAAAA6maO2u+o8847L4ceemh69OiR5ZZbbr7K3HTTTUmSAw88sBTSJklZWVl+97vfpX379vnwww9z7733Viv35ptvZsCAAWnRokXOPvvsUkibJL169cpuu+2WadOmpW/fvgt0DhMmTMgdd9yRsrKynHfeeaWQNkk6d+6cQw45JJWVlbn66qurlZs9e3auu+66JMmZZ55ZCmmTZM0118wJJ5yQJLnqqqtqHLNqXyeccEIppE2SFVdcMWeeeWaSOSNnKyoqqpW79tprU1lZmUMOOaQU0iZJ8+bNc/7556esrCy33nprvvjiiwVqAwAAAACWDd+JoPbdd9/NSSedlG233TYdO3ZMly5d0rNnzxx99NF55JFHkiQ9e/YszQV69913p0OHDqV/J598cmlfb7/9di699NLsueee2XLLLdOxY8d07949hx56aJ5++umvrcv48eNzxhlnZOutt06nTp3Sq1evXHLJJZk2bdoCn1e/fv1K9Zs8eXIuuOCC9OzZMx07dsxWW22VM844IxMmTFjg/dZlxIgRSZLNN9+8xrqysrLS8qo2rdK/f/8kc9q4RYsWNcrusssuSZLHH398gerz1FNPpby8PF26dEm7du3q3O/TTz+d8vLy0vKhQ4fms88+y8orr5xNN920RrmddtopDRs2zIgRIzJ27NjS8jFjxuTVV19Nw4YNs9NOO9Uo161bt7Rt2zbjxo3LsGHDSstnzpxZujZ23XXXGuXatWuXjTfeOOXl5XnqqafmvwEAAAAAWGYs9VMfvPHGG+ndu3emTJmStddeO9tuu23q1auXsWPH5tlnn8306dOz4447Zscdd8ywYcMyZMiQGvOBzv3zDTfckH//+99ZZ511sv7666dFixYZPXp0nn766Tz99NN1zomaJBMnTsyvf/3rTJo0Kd26dcusWbPy4osv5qqrrsoLL7wwzzlK52XSpEnp3bt3Pvnkk/zwhz9M+/bt8/LLL+f222/PiBEjcscdd6Rhw4YL3nhfMXXq1CTJ8ssvX+v6quWvvvpqteWjRo1KknTq1KnWclXL33///UyZMqXayNh5+br9rrHGGmnVqlUmTpyY9957L+utt958lWvatGnWXXfdjBo1KqNGjSpNx/Daa68lSdZbb70654Xt1KlTxo4dm1GjRqVr165Jkv/+97+ZNm1aWrdundVXX73OckOGDMlrr71WCpjn9v777+eSSy7J+PHj06JFi2ywwQbp2bPnfLcVAAAAAEu3pT6ovfHGGzNlypT8/ve/z+GHH15t3ZQpU/Lmm28mSU466aT069cvQ4YMmed8oD/72c9y5JFHZrXVVqu2/JVXXslBBx1UeinWyiuvXKPsE088ka5du6Zfv35p2bJlkjlzmx544IEZNmxYLrvssvzf//3fAp9j//79s8022+T2228vBXdjx47NHnvskVdffTUPPfRQrSM5F9QKK6yQsWPHZvTo0VlnnXVqrP/ggw+SzBk1PHXq1DRr1ixJ8uGHHyZJvv/979e63+WWWy4tWrTI5MmT87///S/t27efr/p83X6TZOWVV87EiRPz4YcfloLa+Sm3yiqrZNSoUaVtF6Tc3NvO/XPVutpU7fN///tfreuHDBmSIUOGVFvWqlWrnH322bWO7gUAAADgu2WpD2o/++yzJMnWW29dY13z5s3TpUuXBdpft27dal3euXPn7LPPPrnqqqvy+OOPZ++9966xTb169XLmmWeWQtpkztymf/jDH7L//vvn9ttvz29/+9s0btx4gerUrFmznHvuudVGV7Zt2zZ77713+vTpk4EDBy6SoLZ79+659957c/vtt+dHP/pRtXXjx4+vNuXB5MmTS0Ft1Ujcqv+u6xwmT56cKVOmzHd95ne/Sartt6rcvEYvL2y5qt/BojhekrRp0yZHHnlkevbsmXbt2qVBgwZ55513ct111+Wxxx7L7373uzRv3jxbbbVVnfv+plZZZZU6R4kDALDo6X8BQE1t2nz5jqVx4yYVWJPiLPVB7UYbbZSnnnoqZ5xxRn77299m0003TaNGjb7RPidPnpynnnoqo0aNysSJE0vzn7733ntJ5nzVvTZVc95+Vffu3dO2bduMHTs2I0eOrDbVwvzo2LFj2rRpU2P52muvnST55JNPFmh/dTn00EPz8MMPZ8CAATn11FNzyCGHpG3btnnttddyzjnnZMaMGaVty8q+E9MbF26rrbaqEcJuvPHGufzyy/PnP/85N9xwQy644ILFGtQCAAAAULylPqg9+OCD89JLL2XgwIE56KCD0qhRo/zgBz/Ipptuml133bXW4HRe+vfvnz/84Q/zfElXXaNCvzpdwtxWXXXVjB07tvTyqnfeeSfXXnttje169eqVXr16VVtW11fqq17cNXPmzDqPuyDWW2+9XHbZZTnhhBNy11135a677iqta926dU4++eScc845qVevXrVRw18dWVubqnVVI1LHjx+fCy+8sMZ2m2yySX71q18t9H7nLjevF7gtbLmq3/2iON7XOfLII3PTTTflrbfeykcffTTPKRm+iTcGf5CLD7xjseybpcPVI09Msmg+saz6BHRZ/fRzQWirBaO95p+2mn/aiqLofwFA7aqeT5dVS31Q27Rp09x444155ZVX8swzz2TIkCEZOnRoXnnllVx33XU59thjc8wxx8zXvsaMGZPjjz8+06dPz+GHH56dd945q666apo1a5aysrLccccdOf3001NZWfmN6/3pp5/m7rvvrrF81VVXrRHUfpujV7fZZps8/vjjeeSRR/LGG29k1qxZWXfddfOTn/yk9LKtNddcs9qo5VVXXTWvvfZaPvroo1r3OXny5EyePDnJl3O1Tp06tdbzT1IKalddddUkqXO/yZzf2dzbFlnu448/rrNc1bq5y32dVq1aZYUVVsi4ceMyduzYxRbUAgAAAFC8pT6ordK5c+d07tw5yZwRpg888ED++Mc/5vLLL89PfvKT0jQB8zJgwIBMnz49O+64Y37/+9/XWP/+++/Ps3xdL4qae91KK62UJNlss83yxhtvfG2ditCyZctSWDq3l156KUmyxRZbVFu+wQYb5LHHHsuIESNq3d/w4cOTJGussUZpFPBqq632tee/wQYbJEmd+33//fczceLENG3aNGuuueZ8l5s2bVreeuutatvO/fNbb72V6dOnp0mTJjXKVu3zBz/4QWnZ2muvnSZNmmTChAn54IMPsvrqq9coV9UGc5f7OrNnzy4F3POapxcAAACApd93cqLRRo0a5Re/+EU6d+6cysrKUiDYsGHDJMmsWbNqLTdx4sQkycorr1xj3cyZM/Poo4/O87ivv/56KQCc26BBgzJ27Ng0a9YsHTt2XKBzWVJMmjQp//73v1O/fv307t272rrtttsuyZyguypYnNv999+fJDVGCn+dbbbZJg0bNszQoUMzevToOve7zTbbVBvh26VLl6ywwgoZM2ZMBg8eXKPcww8/nPLy8nTq1Clt27YtLV9llVWy4YYbpry8PA8//HCNcoMGDcqYMWPSpk2bai+pa9SoUelldvfdd1+NcqNHj86wYcPSsGHDGi9pm5cBAwZk2rRpad68+Xx90AAAAADA0mupD2pvueWWvPvuuzWWjx49Om+//XaSL79uXhXK1bZ98uXLuR599NF8+umnpeUzZ87MOeecU2tYOLfKysqceeaZmTTpy3nOxo8fn3PPPTdJsscee9Q6SnNJMmzYsBrLPv744xxxxBEZN25cDjnkkKy77rrV1nfo0CE/+tGPMmnSpJx++unVgvD+/fvnnnvuSdOmTbP//vsvUF1at26dX//616moqMipp55abW7gqqkt6tWrl8MPP7xaufr16+eQQw5Jkpx55pn57LPPSuvee++9XHTRRUmSI444osYxDzvssCRJnz59qo2g/uyzz3LWWWclmfPSta9OR3HooYemXr16ue6660qjZ5M5c9qeeuqpqaioyF577VVtbt9p06bl1ltvrXXO4yeffDJ//OMfkyR777136UMGAAAAAL6blvqpD+68886cffbZadeuXdZbb700a9Ysn376aV5++eWUl5dn5513zkYbbZQk2XjjjdOmTZu8+uqr+cUvfpH11lsvDRo0SNeuXbP77runZ8+e2WCDDfLaa69lhx12SLdu3dK4ceMMGTIkkydPzr777pubb765zrr07Nkzb731Vnr16pXNNtsss2bNyosvvpjJkyenU6dO+c1vfvNtNUv+/ve/56mnnkry5cvGpk+fnl//+telbbbZZpscffTR1crtscceWWWVVbLOOuukdevWGTt2bIYNG5by8vLsscceOe6442o93p/+9Kf07t07Dz74YIYNG5bOnTtn7NixGTJkSMrKynLeeedVG706v44//vgMHz48gwYNyvbbb59NN900kyZNygsvvJDZs2fnpJNOqjZ9QZUDDjgggwcPzoABA7LDDjukR48emTVrVp5//vnMmDEj++67b60jfHfaaaf07t07t912W3bZZZdsvvnmadCgQQYOHJjJkyenV69e2WeffWqU22ijjXL88cenT58+2XPPPdO9e/cst9xyGTx4cD777LN07tw5v/vd76qVKS8vz1lnnZU///nP2WCDDbLKKqukvLw877zzTunDhB122OFbvW4AAAAAKMZSH9Qed9xxGTBgQIYPH56hQ4dm8uTJWXHFFdOtW7f86le/yo477ljatlGjRrnuuutyySWXZNiwYRk1alQqKioye/bs7L777mnQoEFuvvnmXHnllenfv3+ee+65tGrVKt26dcsxxxxT62jTubVq1Sp33nlnLr744jz11FP5/PPP07Zt2+yzzz45/PDDv9V5RkePHp1XXnml2rKKiopqy2r7Ov1BBx2UwYMHZ+TIkZkyZUpat26dbbfdNr17987mm29e5/HatGmTfv36ldruscceS4sWLdKzZ88cccQRpbB8QTVv3jy33HJLrr/++jzwwAMZMGBAGjdunO7du+fAAw/MVlttVWu5+vXr54orrsitt96afv365dlnn01ZWVk23HDD7LXXXtlll13qPOaZZ56ZTTbZJLfccksGDRqUioqKrL322tl9993Tu3fvOl/uduihh6ZDhw654YYbMmLEiMyYMSPt2rXLvvvum4MPPrja9AxJ0qRJkxx55JEZMWJE/vvf/+aNN95IeXl5ll9++fTs2TM///nPs8MOOyxUuwEAAACwdKlXWVlZWXQlgOK8MfiDXHzgHUVXgwJdPfLEJMm4cZO+Zsuv16bNcotsX9912mrBaK/5p63m33e9rVq1appGjZb6cRnfSfpfAFC7b/J8uqT07b5JH2ypn6MWAAAAAGBpJ6gFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACA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yxx11FFZeeWV6yw3adKkXHnllenfv38+/vjjtGjRIl27ds3hhx+ejTbaaKHPZebMmbn++uvz4IMPZvTo0WncuHE6deqUAw44IFtttVWd5SoqKnLbbbflrrvuyn//+9+UlZWlQ4cO2WuvvfLTn/50nse8//77c9ttt+WNN95IRUVF1lprrey+++7p3bt3ysrq/nzj6aefzo033piRI0dmxowZadeuXXbeeeccfPDBadSo0TyP+eCDD6Zfv3557bXXMmnSpLRu3Trrrbdedtlll/ziF7+YdyMBAAAAsFRbpoLaJTFQXVxOOOGETJo0aYHL/fWvf82VV16ZsrKydOrUKW3bts2oUaNyxx135KGHHkrfvn2zwQYb1Cg3bty49O7dO6NHj86qq66a7bbbLmPHjk3//v0zYMCAXHTRRfnxj3+8wPWZOnVq9t9//wwfPjwrrLBCttlmm3zxxRcZOHBgnn322Zx88sk58MADa5SbPXt2jjnmmDzxxBNp0aJFtthii8ycOTMDBw7M8ccfn2HDhuW0006r9ZhnnXVWbr311jRu3Dg9evRIgwYNMnDgwJx99tkZOHBg/va3v9Ua1l577bXp06dP6tevn27duqVly5YZPHhw/vrXv+bJJ5/MjTfemKZNm9YoN2PGjPzmN7/Jk08+mWbNmqVr165p1apVxo4dm+HDh6eyslJQCwAAAPAdt0wFtcuSHXbYIWuttVY6duyY1q1bZ7fddvvaMk899VSuvPLKNGvWLFdccUV69OiRZM7I1EsuuSTXXHNNjj322Dz00EM1Rof+8Y9/zOjRo7PzzjvnwgsvTIMGcy6t/v3759hjj80pp5ySrl27pm3btgt0HhdddFGGDx+ebt265aqrrkrz5s2TJK+88kr233//XHDBBdlss81qhMd9+/bNE088kXXXXTd9+/bNiiuumCR57733svfee+fmm29O9+7d06tXr2rlHnnkkdx6661p06ZN/vnPf2bNNddMknz66afZb7/98thjj+Xmm2/O/vvvX63ciBEjctFFF6Vp06bp27dvOnfunCSZMmVKDj/88AwePDiXXHJJTj311BrnePLJJ+fJJ5/MT37yk5x11llp2bJlad3MmTPz1ltvLVCbAQAAALD0MUftd9R5552XQw89ND169Mhyyy03X2VuuummJMmBBx5YCmmTpKysLL/73e/Svn37fPjhh7n33nurlXvzzTczYMCAtGjRImeffXYppE2SXr16Zbfddsu0adPSt2/fBTqHCRMm5I477khZWVnOO++8UkibJJ07d84hhxySysrKXH311dXKzZ49O9ddd12S5MwzzyyFtEmy5ppr5oQTTkiSXHXVVTWOWbWvE044oRTSJsmKK66YM888M8mckbMVFRXVyl177bWprKzMIYccUgppk6R58+Y5//zzU1ZWlltvvTVffPFFtXLPPPNM/vOf/2T99ddPnz59qoW0SdKoUaNsuOGG82wnAAAAAJZ+34mg9t13381JJ52UbbfdNh07dkyXLl3Ss2fPHH300XnkkUeSJD179swpp5ySJLn77rvToUOH0r+TTz65tK+33347l156afbcc89sueWW6dixY7p3755DDz00Tz/99NfWZfz48TnjjDOy9dZbp1OnTunVq1cuueSSTJs2bYHPq1+/fqX6TZ48ORdccEF69uyZjh07ZquttsoZZ5yRCRMmLPB+6zJixIgkyeabb15jXVlZWWl5VZtW6d+/f5I5bdyiRYsaZXfZZZckyeOPP75A9XnqqadSXl6eLl26pF27dnXu9+mnn055eXlp+dChQ/PZZ59l5ZVXzqabblqj3E477ZSGDRtmxIgRGTt2bGn5mDFj8uqrr6Zhw4bZaaedapTr1q1b2rZtm3HjxmXYsGGl5TNnzixdG7vuumuNcu3atcvGG2+c8vLyPPXUU9XW3XLLLUmS/fbbL/Xr159XcwAAAADwHbbUT33wxhtvpHfv3pkyZUrWXnvtbLvttqlXr17Gjh2bZ599NtOnT8+OO+6YHXfcMcOGDcuQIUOy+uqrZ5NNNintY+6fb7jhhvz73//OOuusk/XXXz8tWrTI6NGj8/TTT+fpp5+uc07UJJk4cWJ+/etfZ9KkSenWrVtmzZqVF198MVdddVVeeOGFOuco/TqTJk1K796988knn+SHP/xh2rdvn5dffjm33357RowYkTvuuCMNGzZc8Mb7iqlTpyZJll9++VrXVy1/9dVXqy0fNWpUkqRTp061lqta/v7772fKlCnVRsbOy9ftd4011kirVq0yceLEvPfee1lvvfXmq1zTpk2z7rrrZtSoURk1alRpOobXXnstSbLeeuulSZMmdZ7L2LFjM2rUqHTt2jVJ8t///jfTpk1L69ats/rqq9dZbsiQIXnttddKAfPs2bPzwgsvJEl++MMfZsyYMXnggQfywQcfpHnz5tl4442z3XbbVRuhDAAAAMB301KfAN14442ZMmVKfv/73+fwww+vtm7KlCl58803kyQnnXRS+vXrlyFDhmSTTTap82ViP/vZz3LkkUdmtdVWq7b8lVdeyUEHHVR6KdbKK69co+wTTzyRrl27pl+/fqWvsH/66ac58MADM2zYsFx22WX5v//7vwU+x/79+2ebbbbJ7bffXgo5x44dmz322COvvvpqHnrooVpHci6oFVZYIWPHjs3o0aOzzjrr1Fj/wQcfJJkzanjq1Klp1qxZkuTDDz9Mknz/+9+vdb/LLbdcWrRokcmTJ+d///tf2rdvP1/1+br9JsnKK6+ciRMn5sMPPywFtfNTbpVVVsmoUaNK2y5Iubm3nfvnqnW1qdrn//73v9KyDz74oDTS+uWXX87ZZ59dY+T1OuuskyuvvDJrrLFGnfsGAAAAYOm31Ae1n332WZJk6623rrGuefPm6dKlywLtr1u3brUu79y5c/bZZ59cddVVefzxx7P33nvX2KZevXo588wzq80zuuKKK+YPf/hD9t9//9x+++357W9/m8aNGy9QnZo1a5Zzzz232kjUtm3bZu+9906fPn0ycODARRLUdu/ePffee29uv/32/OhHP6q2bvz48dWmPJg8eXIpqK0aiVv133Wdw+TJkzNlypT5rs/87jdJtf1WlZvX6OWFLVf1O1gUx5s4cWLp59NPPz2bbrppTjzxxKyxxhp55513ct5552Xo0KE57LDDcv/999d4gduissoqq9Q5ShwAgEVP/wsAqM1SP0ftRhttlCQ544wz8txzz2XmzJnfeJ+TJ0/Ogw8+mD59+uSPf/xjTj755Jx88sl58cUXk8z5qnttqua8/aru3bunbdu2mTJlSkaOHLnA9enYsWPatGlTY/naa6+dJPnkk08WeJ+1OfTQQ9O4ceMMGDAgp556at59991MmTIlgwcPzgEHHJAZM2aUti0rW+ovncLN/UKylVdeOVdffXU22GCDNG/ePBtttFGuv/76tGnTJu+9917uv//+AmsKAAAAwOK21I+oPfjgg/PSSy9l4MCBOeigg9KoUaP84Ac/yKabbppdd9211uB0Xvr3758//OEP83xJV12jQr86XcLcVl111YwdO7b08qp33nkn1157bY3tevXqlV69elVbVtdX6qte3LUowulkztysl112WU444YTcddddueuuu0rrWrdunZNPPjnnnHNO6tWrV23U8FdH1tamal3ViNTx48fnwgsvrLHdJptskl/96lcLvd+5y83rBW4LW67qd78ojjf3z7vttluNEbPNmzfPLrvskn/84x958cUXs/vuu9e5/2/ijcEf5OID71gs+4b5cfXIE5Mk48ZNKrgm3642bZZLsuyd98LSXvNPW80/bUVR9L8AWByW1Wer75KlPqht2rRpbrzxxrzyyit55plnMmTIkAwdOjSvvPJKrrvuuhx77LE55phj5mtfY8aMyfHHH5/p06fn8MMPz84775xVV101zZo1S1lZWe64446cfvrpqays/Mb1/vTTT3P33XfXWL7qqqvWCGq/zdGr22yzTR5//PE88sgjeeONNzJr1qysu+66+clPflJ62daaa65ZLVRcddVV89prr+Wjjz6qdZ+TJ0/O5MmTk3w5V+vUqVNrPf8kpaB21VVXTZI695vM+Z3NvW2R5T7++OM6y1Wtq61cUnfIX7X8008/rXPfAAAAACz9lvqgtkrnzp3TuXPnJHNGmD7wwAP54x//mMsvvzw/+clPStMEzMuAAQMyffr07Ljjjvn9739fY/37778/z/JzvyiqrnUrrbRSkmSzzTbLG2+88bV1KkLLli1LYencXnrppSTJFltsUW35BhtskMceeywjRoyodX/Dhw9PkqyxxhqlUcCrrbba157/BhtskCR17vf999/PxIkT07Rp06y55przXW7atGl56623qm07989vvfVWpk+fniZNmtQoW7XPH/zgB6Vla6+9dpo0aZIJEybkgw8+yOqrr16jXFUbzF2uRYsWWXPNNfPee+/VOYL7888/TzLveXoBAAAAWPp9JycabdSoUX7xi1+kc+fOqaysLAWCDRs2TJLMmjWr1nJVL3daeeWVa6ybOXNmHn300Xke9/XXXy8FgHMbNGhQxo4dm2bNmqVjx44LdC5LikmTJuXf//536tevn969e1dbt9122yWZE3RXjZydW9X8ql8dKfx1ttlmmzRs2DBDhw7N6NGj69zvNttsU22Eb5cuXbLCCitkzJgxGTx4cI1yDz/8cMrLy9OpU6e0bdu2tHyVVVbJhhtumPLy8jz88MM1yg0aNChjxoxJmzZtqr2krlGjRqWX2d133301yo0ePTrDhg1Lw4YNa7ykbfvtt0+SvPDCC7W2QdXypfW6AQAAAGD+LPVB7S233JJ33323xvLRo0fn7bffTvLlV8yrQrnatk++fDnXo48+Wu2r5jNnzsw555xTa1g4t8rKypx55pmZNOnLuUDGjx+fc889N0myxx571DpKc0kybNiwGss+/vjjHHHEERk3blwOOeSQrLvuutXWd+jQIT/60Y8yadKknH766dWC8P79++eee+5J06ZNs//++y9QXVq3bp1f//rXqaioyKmnnlptbuCqqS3q1auXww8/vFq5+vXr55BDDkmSnHnmmfnss89K6957771cdNFFSZIjjjiixjEPO+ywJEmfPn2qjaD+7LPPctZZZyWZ89K1r05Hceihh6ZevXq57rrrSqNnkzlz2p566qmpqKjIXnvtVW1u3yTZb7/90qxZswwYMKDanMBJcuONN2bw4MFp1qxZfvGLX3xNawEAAACwNFvqpz648847c/bZZ6ddu3ZZb7310qxZs3z66ad5+eWXU15enp133jkbbbRRkmTjjTdOmzZt8uqrr+YXv/hF1ltvvTRo0CBdu3bN7rvvnp49e2aDDTbIa6+9lh122CHdunVL48aNM2TIkEyePDn77rtvbr755jrr0rNnz7z11lvp1atXNttss8yaNSsvvvhiJk+enE6dOuU3v/nNt9Us+fvf/56nnnoqyZcvG5s+fXp+/etfl7bZZpttcvTRR1crt8cee2SVVVbJOuusk9atW2fs2LEZNmxYysvLs8cee+S4446r9Xh/+tOf0rt37zz44IMZNmxYOnfunLFjx2bIkCEpKyvLeeedV2306vw6/vjjM3z48AwaNCjbb799Nt1000yaNCkvvPBCZs+enZNOOqna9AVVDjjggAwePDgDBgzIDjvskB49emTWrFl5/vnnM2PGjOy77761jvDdaaed0rt379x2223ZZZddsvnmm6dBgwYZOHBgJk+enF69emWfffapUW6jjTbK8ccfnz59+mTPPfdM9+7ds9xyy2Xw4MH57LPP0rlz5/zud7+rUW6llVbKhRdemOOOOy6nnnpqbrrppqyxxhp555138vbbb6dRo0a58MILS1NmAAAAAPDdtNQHtccdd1wGDBiQ4cOHZ+jQoZk8eXJWXHHFdOvWLb/61a+y4447lrZt1KhRrrvuulxyySUZNmxYRo0alYqKisyePTu77757GjRokJtvvjlXXnll+vfvn+eeey6tWrVKt27dcswxx9Q62nRurVq1yp133pmLL744Tz31VD7//PO0bds2++yzTw4//PBvdZ7R0aNH55VXXqm2rKKiotqy2ubtPeiggzJ48OCMHDkyU6ZMSevWrbPtttumd+/e2Xzzzes8Xps2bdKvX79S2z322GNp0aJFevbsmSOOOKIUli+o5s2b55Zbbsn111+fBx54IAMGDEjjxo3TvXv3HHjggdlqq61qLVe/fv1cccUVufXWW9OvX788++yzKSsry4Ybbpi99toru+yyS53HPPPMM7PJJpvklltuyaBBg1JRUZG11147u+++e3r37l3ny90OPfTQdOjQITfccENGjBiRGTNmpF27dtl3331z8MEHV5ueYW7bb7997rrrrlx11VUZPHhw3nnnnbRu3To//elPc9hhh6VDhw4L3nAAAAAALFXqVVZWVhZdCaA4bwz+IBcfeEfR1WAZdvXIE5Mk48ZN+potv1vatFkuybJ33gtLe80/bTX/vutt1apV0zRqtNSPy/hO0v8CYHFYVp+tqiwpfbtv0gdb6ueoBQAAAABY2glqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgglqAQAAAAAKJqgFAAAAACiYoBYAAAAAoGCCWgAAAACAgjUougJAsTpsunquHnli0dUAAFhm6H8BALUxohYAAAAAoGBG1MIybubMWZk4cVrR1ViitWmzXJJk3LhJBddkyaetAODr6X8tOH2MhaftFp62W3jabuFpu2WbEbUAAAAAAAUT1AIAAAAAFExQCwAAAABQMEEtAAAAAEDBBLUAAAAAAAUT1AIAAAAAFExQCwAAAABQMEEtAAAAAEDBBLUAAAAAAAUT1AIAAAAAFExQCwAAAABQMEEtAAAAAEDBBLUAAAAAAAUT1AIAAAAAFExQCwAAAABQMEEtAAAAAEDBBLUAAAAAAAUT1AIAAAAAFExQCwAAAABQsHqVlZWVRVcCKE5FRWVmzZpddDWWaI0aNUiSzJw5q+CaLPm01fzTVgtGe80/bTX/vutt1aBB/ZSV1Su6GtRC/2vBfdf/f12ctN3C03YLT9stPG238JaUtvsmfTBBLQAAAABAwUx9AAAAAABQMEEtAAAAAEDBBLUAAAAAAAUT1AIAAAAAFExQCwAAAABQMEEtAAAAAEDBBLUAAAAAAAUT1AIAAAAAFExQCwAAAABQMEEtAAAAAEDBBLUAAAAAAAUT1AIAAAAAFExQCwAAAABQMEEtAAAAAEDBBLUAAAAAAAUT1AIAAAAAFExQCwAAAABQMEEtAAAAAEDBGhRdAeDbdf/99+e2227LG2+8kYqKiqy11lrZfffd07t375SVLTuf3bz77rt55plnMmLEiIwcOTLvvfdeKisrc+mll2annXaaZ9llrQ3Ly8vz0ksv5amnnsqgQYPy3nvvZebMmVl++eXTpUuX7L333tlss83qLL+stdfNN9+cl156KW+++WbGjx+fyZMnZ7nllsv666+fn//859l1111Tr169GuUqKipy22235a677sp///vflJWVpUOHDtlrr73y05/+tIAzKcbFF1+cq6++Oknyf//3fzn44INr3W5Zu66S5OSTT87dd99d5/q11lorDz/8cI3ly/K1NX369Nx88815+OGH8/7776e8vDzf+9730rFjx+y///7ZZJNNqm2/LLcVi9+y+Hfrm/im/Q+qm9/7K19a0HsIc4wZMybXXnttnn322Xz88ceprKzMKqusku7du+fQQw9Nu3btiq5iYTyDLrwFbbul+R4iqIVlyFlnnZVbb701jRs3To8ePdKgQYMMHDgwZ599dgYOHJi//e1vy8Qf+SS57bbbctNNNy1wuWWxDQcPHpwDDzwwSdKmTZtsuummadq0ad5555088sgjeeSRR3LUUUflt7/9bY2yy2J7XXvttRk/fnzWW2+9dOnSJU2bNs1HH32UF154IQMHDswjjzySyy+/vNp5z549O8ccc0yeeOKJtGjRIltssUVmzpyZgQMH5vjjj8+wYcNy2mmnFXhW347hw4fnuuuuS7169VJZWVnndsvidTW3rl27Zo011qixvE2bNjWWLcvX1ujRo3PwwQfn/fffT5s2bbLZZpulfv36+eijj/L4449n/fXXr/aQvSy3FYvfsv53a2F8k/4H1c3v/ZUvLeg9hDlee+217L///vniiy+y8sorZ8stt0ySjBw5MnfccUfuv//+XH/99enatWvBNS2GZ9CFt6Btt1TfQyqBZcLDDz9c2b59+8otttii8r///W9p+bhx4yp//OMfV7Zv377yxhtvLK6C37I777yz8oILLqh88MEHK99///3KffbZp7J9+/aVDz30UJ1lltU2fP755yuPPfbYysGDB9dY9+CDD1b+4Ac/qGzfvn3lwIEDq61bVttr8ODBlVOmTKmx/M0336zcfPPNK9u3b1/573//u9q666+/vrJ9+/aVP/nJTyrHjRtXWv7f//63VOaxxx5b7HUv0owZMyp//OMfV2655ZaVRx11VGX79u0rr7vuuhrbLavXVWVlZeVJJ51U2b59+8q77rprvsssq9fWlClTKnv16lXZoUOHyquvvrpy1qxZ1daPHz++8t133622bFltKxa/Zfnv1jexsP0Pqpvf+ytfWph7CHPssccele3bt6887bTTKmfOnFlaPnPmzMpTTjmlsn379pW77LJLgTUslmfQhbegbbc030MEtbCM+PnPf17Zvn37yrvvvrvGuhdffLH0x3/27NnffuWWAPNzk9SGtTv11FMr27dvX3nKKadUW669arr88ssr27dvX/n73/++tGzWrFmVPXr0qGzfvn3loEGDapTp169fZfv27St33333b7Oq37oLL7ywsn379pWPP/54KZCs7UFyWb6uFjSoXZavrT59+lS2b9++8uyzz56v7ZfltmLxW5b/bi1OdfU/qG5+7698aUHvIcwxffr0yvbt21e2b9++cuzYsTXWjx07trR+6tSpBdRwyeMZdOHNT9vNy5J8D/luj40GksyZJ+jVV19Nw4YNa52/pVu3bmnbtm3GjRuXYcOGffsVXApow7ptsMEGSZKxY8eWlmmv2jVoMGfGoUaNGpWWDR06NJ999llWXnnlbLrppjXK7LTTTmnYsGFGjBhRrY2/S1555ZXccMMN+elPf5qePXvWuZ3rasEsq9fWzJkzc+eddyZJDjjggPkqs6y2FYufv1uLT239D6qb3/srX1qYewhzlJWVlfq689KsWbM0adLkW6jR0s89ZPFZku8hglpYBrz22mtJkvXWW6/Om2KnTp2SJKNGjfrW6rU00YZ1e++995JUnx9Te9U0evTo3H777UlS7WGp6vyr2uOrmjZtmnXXXbfatt8lM2bMyEknnZRWrVrlD3/4wzy3dV3N8eKLL+b888/PH//4x/z1r3/NM888k4qKihrbLavX1quvvpoJEyakbdu2adeuXV599dX89a9/zemnn55LL700L730Uo0yy2pbsfj5u7X41Nb/4EsLcn/lSwtzD2GOhg0bpnv37kmSyy67LOXl5aV15eXlufTSS5Mku+++e60v1qUm95DFZ0m+h3iZGCwDPvzwwyTJ97///Tq3WWWVVaptS3XasHbjxo0rvYV+hx12KC3XXsldd92VwYMHp7y8PGPHjs3QoUNTUVGRI444Ittvv31pu/ltq1GjRn0n2+qSSy7Jf//731xyySVZYYUV5rmt62qOe+65p8ayddddNxdffHE6dOhQWrasXltvvvlmkqRt27a54IIL8o9//KPa+iuuuCK9evXKX/7ylzRr1izJsttWLH7+bi0edfU/+NKC3F/50sLcQ/jSmWeemUMOOSR33nlnnn766XTs2DFJMmLEiHzxxRfZf//9c+KJJxZcy6WHe8jisaTfQ4yohWXA1KlTk8wZEVSX5s2bJ0mmTJnyrdRpaaMNa5o1a1ZOPPHETJo0KT169Kg2SlR7JUOGDMndd9+dBx54IIMHD06S/Pa3v81RRx1Vbbv5aauqB4HvWlsNGTIkffv2Ta9evfKTn/zka7df1q+r9ddfP6eddlr+85//ZOjQoXnmmWdy9dVXZ/3118/bb7+dAw88sNrXt5bVa2vixIlJ5ows+cc//pH9998/jz32WAYPHpwrrrgibdu2Tf/+/XPWWWeVyiyrbcXit6z/3Voc5tX/YI4Fvb/ypYW5h/Cldu3a5bbbbsvWW2+dMWPGpH///unfv3/Gjh2bddZZJz/84Q/TsGHDoqu51HAPWfSWhnuIoBaAhXLGGWdk4MCBWWWVVfKXv/yl6Ooscc4999y88cYbeeWVV/Lggw9mv/32y+WXX55f//rXS+RcSN+26dOn55RTTkmLFi1yxhlnFF2dpcIBBxyQfffdN+uss06aNWuWlVZaKT/60Y/yr3/9KxtvvHE+++yzXH311UVXs3BV00CUl5dn1113zamnnprVV189LVu2zHbbbZe///3vqVevXu6999588MEHBdcWWFD6H/Pm/vrNuId8M0OGDMkuu+ySDz74IFdccUUGDhyYgQMH5u9//3u++OKLHHvssbn88suLribLsKXhHiKohWVA1SigadOm1blN1SdwVZ/IUZ02rO5Pf/pT/v3vf6dNmza58cYba8zto72+1KRJk6y77ro56aST8vvf/z6vv/56zjnnnNL6+Wmrqk/Tv0ttdfHFF+e9997LySefnJVWWmm+yriuateoUaMcdthhSZKnnnqqtHxZvbbmPpdf//rXNdZ36tQpG264YSorKzNo0KAky25bsfj5u7VofV3/g4W7v/KlhbmHMMcXX3yRo48+OlOmTMl1112X7bbbLiussEJWWGGF9OrVK9ddd12aNGmSK6+8sjQ/KPPmHrJoLS33EHPUwjJg1VVXTZJ89NFHdW4zZsyYattSnTb80p///OfcfPPNWWGFFXLjjTdmzTXXrLGN9qrdz3/+81xwwQUZMGBAysvL07Bhw2W2rfr375+ysrLcc889NeZcfffdd5Mkt912W5588smsvvrqOffcc5fZtpofa6+9dpLqb65dVttrtdVWq/Xnr24zcuTIfPrpp0mW3bZi8XNtLTrz0/9g4e6vfGlh7iHM8eSTT2b8+PHp3r172rVrV2P9GmuskY022iiDBg3KoEGD/D88H9xDFp2l6R4iqIVlwAYbbJAkeeuttzJ9+vRa3xg5YsSIJMkPfvCDb7VuSwttOMeFF16YG264Ia1bt84NN9xQegv6V2mv2rVq1SoNGjTIrFmzMnHixKy44oqltqpqj6+aNm1a3nrrrSRftut3RUVFxTxHo4wePTqjR4/OF198kcR1NS8TJkxIUn00xbJ6bc19LhMmTCi9ZGNun3/+eZIvR6osq23F4ufv1qIxv/0P5ljQ+ytfWph7CHN8/PHHSZLllluuzm1atmyZ5Mt+C/PmHrJoLG33EFMfwDJglVVWyYYbbpjy8vI8/PDDNdYPGjQoY8aMSZs2bdKlS5cCarjk04ZJnz59cv3116dVq1a54YYbsv7669e5rfaq3eDBgzNr1qy0bNkyyy+/fJKkS5cuWWGFFTJmzJjSS8fm9vDDD6e8vDydOnVK27Ztv+0qLzZPPPFE3njjjVr//fznP0+S/N///V/eeOON3HvvvUlcV/Py0EMPJUnp7crJsntttW3bNp07d06SDBw4sMb6iRMn5rXXXkvyZXstq23F4ufv1je3IP0PFu7+ypcW5h7CHFVTbbz66qspLy+vsb68vDyvvvpqkrpHK1Ode8g3tzTeQwS1sIyomr+wT58+ef/990vLP/vss9JbSw899NCUlfmzUJdluQ0vueSSXHvttWnZsmX+8Y9/zNeIsmWxvV566aUMGDAgs2bNqrHu5Zdfzh/+8IckyS9/+cvUr18/SVK/fv0ccsghSZIzzzwzn332WanMe++9l4suuihJcsQRRyzu6i8VlsXrKpnz9ukBAwZk9uzZ1ZbPmjUr//jHP3LzzTcnmfPCsSrL8rVVdU5XX311tVGyM2bMyJlnnplJkyZlww03LD3ULMttxeK3rP7dWhQWpv8B39SC3kOYY+utt07Tpk3z0Ucf5fzzz8/MmTNL62bOnJk//elP+fjjj9OqVatstdVWBdZ06eIesvCW1ntIvcrKysqiKwF8O84888zcdtttady4cTbffPM0aNAgAwcOzOTJk9OrV6/87W9/K4VH33Wvvvpq6caWJG+//XamTJmSNddcM61atSotv/POO6uVWxbb8PHHH89RRx2VZM7IgfXWW6/W7dZee+1SR6LKstZe/fr1yymnnJKWLVtmgw02yIorrpgpU6Zk9OjRefvtt5MkP/rRj3LppZdW++rS7Nmzc/TRR2fAgAFp0aJFevTokVmzZuX555/PjBkzsu++++a0004r6rS+dSeffHLuvvvu/N///V8OPvjgGuuXtesqmTPn4NFHH53WrVtngw02yAorrJAJEybkzTffzCeffJKysrIcf/zxpbCxyrJ8bV1wwQX5xz/+kYYNG6Zz585p3bp1hg8fnk8++SRt27bNTTfdVG1+smW5rVj8lsW/W9/UN+l/ULuvu7/ypQW9hzDH3XffnT/84Q+ZPXt2VlpppWy44YZJkpEjR2bcuHFp1KhRLrnkkvTq1avgmhbDM+jCW9C2W5rvIYJaWMbcf//9ueWWW/Lmm2+moqIia6+9dnbffff07t17mfoU7sUXX8x+++33tdu98cYbNZYta21YFT5+nW7dupVG9c1tWWqv0aNHp1+/fnnppZcyevTojB8/PpWVlWnTpk06duyYXXfdtc6OaUVFRW699db069cv7777bsrKytKhQ4fstdde2WWXXb7lMynW/DxILkvXVTLn2rrpppsyYsSI/O9//8uECRNSr169rLzyytlkk02y99571/kVzGX52nr00Ufzz3/+M6NGjcq0adPy/e9/Pz179sxhhx2WFVZYocb2y3Jbsfgta3+3vqlv2v+gJkHtglnQewhzvPrqq+nbt29eeumljBs3LsmcKSU222yzHHjggUv8/KCLk2fQhbegbbc030MEtQAAAAAABfvux+4AAAAAAEs4QS0AAAAAQMEEtQAAAAAABRPUAgAAAAAUTFALAAAAAFAwQS0AAAAAQMEEtQAAAAAABRPUAgAAAAAUTFALAAAAAFAwQS0AAAAAQMEEtQAAAAAABRPUAsA8nHzyyenQoUMuu+yyoquyyPTs2TMdOnTIiy++WHRVFrnjjz8+HTp0yAsvvPCN9jNlypRsttlm2WabbTJjxoxFVDsAWDJcdtll6dChQ04++eRv/djfxb4VxbrkkkvSoUOH3HXXXd/aMa+66qp06NAh//znP7+1Y7JsENQCsNSYNWtW+vXrl4MPPjhbbrllOnbsmE033TQ//vGPc9hhh+Waa67J8OHDi65mYUaNGpXLLrss/fr1K7oqhRg1alQefPDBdO3aNd27d/9G+2revHn23XffjBkzRgccgMWmKrT86r8uXbpk5513zplnnpl33nmn6GrOly+++CKXXXbZdyqAffHFF6v9Xm644YZ5bl9eXp4ePXqUtt93331rbFMVkvfs2bPGun79+tV6PXTu3Dnbb799TjrppGW6r1ubTz75JH379s2qq66an/3sZzXWDx48OPvss086d+6cTTbZJEcccUTefvvtOvdXWVmZ3r17p0uXLvn444/r3G7vvffOcsstlyuvvDJTp05dJOcCiaAWgKXE+PHjs8cee+SUU07Js88+m3HjxqWsrCyVlZX573//m6eeeioXXXRRDjrooKKrWphRo0bl8ssvz9133z3P7dq1a5e11lorTZs2/ZZq9u246KKLUllZmSOPPHKR7G/fffdN8+bNc80112Ty5MmLZJ8AUJuGDRtmxRVXzIorrpjvfe97mT59et5+++3cdttt+dnPfpaHHnqo6Cp+rS+++CKXX355Lr/88nlu16ZNm6y11lpZfvnlv6WaLTr33HPPPNc//fTTGT9+/CI5VtX1sOKKK2b27Nn54IMPcs8992SPPfZI3759F8kxvgv+/ve/Z9q0aTn00EPToEGDausGDx6cAw88MIMHD05FRUWmT5+eAQMGZM8998x7771X6/7uuuuuDBkyJEcddVRWWWWVOo+73HLLZZ999smnn37q98EiJagFYKlw4oknZuTIkWnevHlOPPHEPPvssxk+fHheeumlvPTSS7nhhhuy1157pWXLlkVXdYnXt2/fPPzww9loo42Krsoi88477+SZZ57J97///Wy11VaLZJ+tWrXKjjvumAkTJnxt+A0A30SXLl3y3HPP5bnnnsvzzz+f4cOH59prr82qq66a8vLynHrqqYssACza8ccfn4cffjj77LNP0VVZIN///vfz+uuv54033qhzm3vvvTdJsuqqq37j41VdD88991yGDRuWW265Jeuuu24qKipy/vnn59VXX/3Gx1jaTZw4MXfffXeaNGmSXXfdtcb6iy66KOXl5TniiCMydOjQvPTSS9lll10yadKkWj9QmDBhQvr06ZN11lknBxxwwNce/5e//GWS5J///GdmzZr1jc8HEkEtAEuBd955J88++2yS5LzzzsshhxySNm3alNa3aNEim2++ec4444ylYsQJi96//vWvJMmPf/zj1KtXb5Htd+edd06S/Pvf/15k+wSAr9OwYcNsvfXW6dOnT5Jk6tSpeeSRRwqu1bKtKgisa1TtxIkTM2DAgDRr1iy9evVapMdu0KBBfvjDH+aKK65Io0aNUllZmTvuuGORHmNpdN9992XGjBn50Y9+lObNm1dbN3Xq1Lzyyitp06ZNfvOb36RBgwZp2rRpzjjjjJSVldX6PoOLLroon3/+ec4444w0bNjwa4+/2mqrpUuXLvn000/z5JNPLqrTYhknqAVgiffmm2+Wft52223nuW3jxo3rXPfBBx/k9NNPz3bbbZdOnTpl0003zd57751//etfmT179nzX57777kuHDh2yxRZbzLPc0KFD06FDh2y44Ya1joJ58803c8opp6Rnz57p1KlTfvjDH2bPPffMbbfdlvLy8vmuT5J06NAhp5xySpJk0KBBNeY2m/vFYXW9TKxqXrSq+dQeeOCB7LnnnqU5X48++uhq8+R98sknOeecc0r133777XPNNdd8bVs+8cQTOfLII7PFFlukY8eO6dGjR4444og888wzC3TOVWbPnl0awfLjH/+4zu0GDRqU3/zmN9l6663TsWPHbLLJJtlhhx1y1FFH5fbbb09FRUWNMj169Ejr1q3z+uuv57XXXluo+gHAwurSpUuaNWuWJHXOVTtz5sz885//zF577ZVu3bqlY8eO2XbbbXPKKacs1Py2Y8aMyfXXX5+DDz44O+ywQzp37pyuXbtmt912y9/+9rd88cUXNcrsu+++2W677Ur//dV+yNzz1tb2MrElsW/1Vbvuumvq1auXBx54oNY6/uc//8nMmTOz/fbbL7bppdZYY4107NgxSTJy5MgFLv/yyy/nsMMOS7du3bLxxhtn1113zY033piKiop5vuTt1VdfTZ8+fdK7d+/86Ec/SseOHbPZZptl3333nWc/eu6X1lVUVOTGG2/Mrrvumo033jibbbZZjjjiiG80527Vexlq6/998cUXqaioyPe///3Ur1+/tHy55ZbL8ssvn88//7za9q+88kr+9a9/ZZdddslmm20233XYaaedkuRbfZEZ320Nvn4TAFhyjB07NquvvvoClxswYEB++9vfZsaMGUnmdNKmTZtWmjrhP//5T/7+97+XHobmpVevXmnatGk+/fTTDBw4MFtuuWWt2z344INJki222CIrrLBCtXX//Oc/c+6555bCwWbNmmXq1KkZOnRohg4dmv/85z+55ppr5rujv+KKK2b69OmZPHlyGjZsmFatWlVbPz+jAub2l7/8Jdddd10aNGiQxo0b5/PPP0///v3z0ksv5fbbb0+9evWy//77Z8yYMWnevHlp7rSLLrooH3/8cc4444wa+ywvL88pp5yS+++/v7SsRYsWGT9+fAYMGJABAwbkkEMOyYknnrhAdX3ttdcyfvz4NGnSJBtssEGt29xxxx05/fTTS//dtGnTVFRU5P3338/777+fxx9/PD//+c9rBP3169dP586d89RTT+XZZ5+tc/8AsLjVFoZ98sknOfTQQ/P6668nScrKytK0adN89NFH6devXx588MH06dMnO+yww3wf57zzziuN3m3YsGGaN2+eL774IqNGjcqoUaNy//335+abb87KK69cKtOqVatq4deKK65YbZ9f179aEvtWX7Xaaqtlk002yUsvvZTnn3++xlRLVR8a/+xnP8ugQYMW6hjzo23btkmSKVOmLFC5e+65J6ecckqpfVq2bJl33nkn559/fl566aW0aNGizrIHHXRQJkyYkGROH6pp06aZMGFCBg0alEGDBuWxxx7LFVdcUWOO2CqVlZX5zW9+k8cee6w0snXChAkZMGBAnn766fTp0yc/+clPFuh8xo8fX/oQvWvXrjXWt2zZMmVlZfnoo48ye/bsUlg7adKkfP7559Wun9mzZ+fMM89M8+bNc9JJJy1QPaqO/cILL1Q7DiwsI2oBWOJVjRxIkrPOOmuB52j74IMP8vvf/z4zZsxIt27d8tBDD+Wll17KkCFDcvbZZ6dRo0Z5/vnnc+65587X/po1a1Z6U2/VA8NXzZ49uzQNw09/+tNq6/r3759zzjknTZs2zYknnpiBAwdm6NChGTZsWK677rqsueaaGTRoUM4///z5Psfnnnsuf/jDH5JUn+eu6l9tHdi6jBo1Kn379s2pp55aaqf77rsva621ViZMmJCLLrooJ554YlZZZZXce++9GTJkSF5++eUcd9xxSZLbbrut2ijoKn/5y19y//33Z4011shf//rXDB06NC+//HJefvnlnHHGGWnevHmuu+66PPDAA/Nd1yQZMmRIkuQHP/hBrZ3jadOm5c9//nOSZPfdd8+TTz6ZYcOGZejQoXnxxRdz7bXX5qc//WmdUyZUXX8vv/zyAtULAL6pIUOGlN4o365du2rrysvLc9RRR+X1119Pjx49cvvtt2f48OEZMmRInnnmmey///6ZMWNG/u///i8ffPDBfB9z7bXXzmmnnZZHHnkkw4cPz4svvpjhw4fn5ptvTqdOnUrfUJrb5ZdfXm2aoK/2Qw4++OB5HnNJ7FvVZrfddktSc/qD999/P0OHDk3btm3To0ePb3SMr/Pxxx8nmTPoYH698847Oe2001JRUZFtttkmjz/+eAYPHpyXX345p512WgYMGJDHH3+8zvJbbrllLr744jz77LMZNmxYBg8enKFDh+bCCy9MmzZt8tRTT+XGG2+ss/zjjz+eJ554IqecckpefvnlvPTSS3nsscdKI6hPOeWUBbpGky/7f23atMlKK61UY32zZs2y0UYbZdy4cbnssssya9asTJ8+Peecc04qKirSvXv30ra33HJLXnvttfz2t7+tNr3a/Fh//fXTsGHDTJ061bevWCQEtQAs8dq1a1fqGD/77LPZeuutc8ABB+SSSy5J//79vza4veqqqzJ16tSsvvrqueaaa7L22msnSRo1apQ99tgjp512WpI5X1l6//3356tOVQ8Ijz32WGmU7txefPHFfPrpp2natGm1ecpmz56d8847L0ly6aWX5pBDDil9ot+oUaNstdVWufbaa9O0adPcdddd+eSTT+arPovSpEmTcsQRR2T//fcvjTrp0KFD/vSnPyWZc87vv/9+rrnmmqy//vpJ5oyuOPLII9O9e/dUVlbm0UcfrbbP9957LzfddFNWWGGF9O3bNz/+8Y9Lo2tatGiRvfbaK+ecc06SOb+vBVH1lbn27dvXuv6tt97K1KlT06xZs5xzzjnV3uDbunXrbL311rnooovSqFGjWstXneMrr7yyQPUCgIVVXl6eZ555pvQtk4YNG9YYcXjPPfdkxIgR+eEPf5hrr702Xbp0KX2DZqWVVsqpp56aPfbYI9OmTZtniPZVxx13XPbdd9+sueaaKSsrKx2/W7duue6667LCCivk6aefzocffrhoTvb/Wxr6VjvttFMaN26cxx9/vNqI1qrgdpdddim12eLw+uuvZ8SIEUmSzp07z3e5a665JuXl5Wnfvn0uv/zyrLbaakmSJk2aZN99981xxx1X65QWVS666KLsvPPO1ULMZs2a5Wc/+1n++te/JkluvfXWOstPmjQpxx57bA444IA0adIkSbL66qvnyiuvzFprrZXp06fn6quvnu/zSVJqhw4dOtS5ze9+97s0aNAgV155Zbp06ZJNNtkk9957b5o3b55jjjkmSTJu3Lhceuml+cEPfpC99957geqQzLnG1lprrST5RtM4QBVBLQBLhXPOOScHHnhgGjZsmPLy8gwcODBXXXVVjj766PTo0SO//OUvc99996WysrJaublDwwMOOKDWr7v96le/Stu2bVNZWTnfL+rYaqut0rp160yaNClPPfVUjfVVo0J79uxZ7et+gwYNyv/+97+0b9++xlfmqqy++urp3LlzZs2atVi/OleXhg0b1vqm265du5amBujdu3datmxZY5uqUSRvvfVWteX33HNPKisr85Of/KRaUDq3HXfcMY0aNcpbb721QA9R48aNS5Isv/zyta6verlEeXl56Wt7C6Jqv59//rk3+gKwWAwdOjRbbLFFtthii2y++ebZaKONcsghh+R///tfysrKctZZZ1WbaiBJ7r777iTJfvvtV+cUR1UvwHruuecWST1bt26dLl26pLKyMkOHDl0k+6yyNPStlltuuWy33XaZNm1aqc9YWVmZ++67L8mXI24XtfHjx+fhhx/OEUcckdmzZ6dBgwbZc88956tsRUVF+vfvn2TOtVLbB9P77LPPfE3/VZsf/vCHadmyZf73v/9l7NixtW7TtGnT7L///jWWN27cOAcddFCS5NFHH63Rj5+Xqr5iXf2/JOnevXuuv/76bLLJJikrK0vjxo2zzTbb5LbbbiuFq3/+858zZcqUnHHGGalfv34++OCDHH300enatWu6dOmSI4888mtH+1bVoYgBFnz3mKMWgKVCo0aNcvLJJ+fQQw/NY489lsGDB2fkyJF5//33U1lZmREjRuTEE0/M448/nksuuaQ0mmH06NGZNGlSktT5YoCysrJ069Yt999/f1599dX5qk/Dhg2z44475o477sgDDzxQbe63mTNn5rHHHktS86t5VV/Teu+997LFFlvUuf+qOld9ve3btOqqq9Y6T1lZWVmWX375jBkzJuutt16tZb/3ve8lSY1RGVUPc3fffXcefvjhOo9dFYSOGTOm1q+x1aZqPryvzstbZc0118yaa66Z9957L3vssUf22WefbLXVVll77bXrnO5gbnMH0p9//vkCfyUOAL5OeXl5Pv300xrLW7duneuuuy6dOnWqtnzWrFml0Xunn356zj777Fr3WzWv7ZgxYxaoPsOHD89tt92WoUOHZuzYsaXpF+a2qEOppaVvtdtuu+U///lP7rnnnvziF7/ISy+9lA8//DAbbrhhnf2jhVHXSNFGjRrlnHPOme9jjR49OpMnT06SbLLJJrVu07Rp02y44YYZPHhwnft56KGHcv/995feDVDbqOdPPvmkNIfu3Dp27FhnELzpppsmmdN3/PDDD2tM8VGXr+v/VenevXu1aQ7mNnDgwDzwwAP55S9/mS5duuSzzz7LXnvtlU8//TTbbrtt6tWrlyeeeCIjRozIfffdV2Ne5CpVdfjqC8pgYQhqAViqfO9738uee+5ZGkXw6aefZsCAAfn73/+ejz/+OA8//HC6du1a+tR+7mkRaus4VqkapbIg89/+9Kc/zR133JEnn3wykydPLoWbTz/9dL744ou0bt26xsiOqtGfM2fOrPWB7KumT58+3/VZVOYVkFbNAVtXWFm1/qsjT6vOe8qUKfP18otp06bNV12TOW2Z1P3CtPr166dPnz45+uijM3r06Jx//vk5//zz07p162y22Wb52c9+lp49e9YZ2s79grEifh8AfPd169YtN998c5I597V33303V1xxRR555JH84Q9/yM0331wtkJo4cWLKy8uTZL6+LbIg96/rr78+f/nLX0qjG+vXr59WrVqV7rOTJk3KjBkzFuhePb+Whr7VlltumRVXXDGDBg3Kxx9/XJr24Gc/+9k32u9Xzf1CtsaNG2ellVZKly5dsueee2aNNdaY7/3MHR7Oq49X17pZs2bluOOOKwXlyZywePnlly/1+8aPH5+Kioo6r4l59cHnXjd+/Pj5Dmqrrv8FfWFulZkzZ+bss89O69atc8IJJyRJrr322owbNy4nnHBCDj300CTJFVdckUsvvTTXXHNNTj755Fr3VTVKubbwGhaUoBaApdqKK66YX/3qV9luu+2yyy675NNPP81dd91V69erZsyYsUAvXvg6m266aVZeeeWMGTMmjz32WH7+858n+fKreTvuuGONzmPVm3a32267XHHFFYusLku6qvM+5ZRTap1W4Zto3bp1kpqjeOfWqVOnPProo3n00Ufz3HPP5eWXX87o0aPzyCOP5JFHHsnWW2+dq666qtaXkc2933l9vQ4AFoVGjRpl/fXXL823+uyzz+b000/PpZdeWtqm6r6azJle6Ac/+MEiOfZbb72VPn36pLKyMvvss0969+6dtdZaq9r98cQTT6x1uqlFYWnoW9WvXz8//elPc+ONN+Zf//pXHnnkkTRo0KDGSN9valFNV/FN3XnnnXnsscfStGnTHH/88dl+++1rTMOxzTbbZMyYMYvlmqhL1QcX8+r/zcs//vGPvPvuuznnnHNK/bsBAwakrKwse+21V2m7/fbbL3/729/y5JNP1hnUVtWhqk8K34Q5agH4TlhhhRWy3XbbJZnz1be5l1f56KOP6ixf9ZXAur7SVJt69eqVXuxR9QAxZcqUDBgwIEnNr+YlX46OKGJKgyItzvOu6lx/XUe9SZMm2XXXXXPBBRekf//+6d+/fw4//PDUq1cvTz/9dG6//fZay02cODHJnBEbtU0JAQCLQ7169XLaaaelfv36efjhh6vNrdq6detSeDqv/s2CeuSRR1JRUZEtt9wyf/zjH7PuuuvW+BDzs88+W2TH+6qlpW9VNXr2mmuuyaRJk7LllluWpn9a0sz9IfO8pquoGpn8VVVTVh111FHZd999a4S0s2fP/tqv/M/ruHOvW5B++Pz2/2rz4Ycf5qqrrkrnzp3zq1/9qrT8o48+yvLLL196v0Ey56W3K6ywwjz/P6uqgw/0WRQEtQB8Z1S9KGzukRbt2rUrzTH64osv1lquoqKi9PCz4YYbLtAxd9lllyTJCy+8kM8++yyPP/54pk+fnpVXXrk059bcNt544yTJG2+8UecLFxZW1by83+ZohvlVdd7PPPPMIt931csgFvTt0+3atcvvf//70gNhXS8X+d///lftOADwbVlrrbXy4x//OElyySWXlJY3bNgwHTt2TDJnWoBFpapvssEGG9S6furUqRk2bFit66r6Ick364ssSX2rumywwQZp37596ev3i3rag0WpXbt2pQ+aX3755Vq3mT59ekaOHFnruqo2rWvU9pAhQ772K/8jR46sc1qEqnlxW7ZsmdVWW22e+5nbwvb/kuRPf/pTZs6cmTPPPLPG1Fe1ncvXTZdR1Vdce+21F7gu8FWCWgCWeKNHj/7at61Omzat9EbbuTuS9erVy/bbb58kuemmm2rtJP7rX//K2LFjU69evey0004LVLcNNtgga6+9dmbNmpWHH364NPrjJz/5Sa1znvbo0SOrrLJKZs+enQsvvHCe+64ayTm/qjrhC/sVsMVpt912S7169fLOO+/UOXK1yoKed9euXZOkzgeMqjls61I1B21d240YMSJJ3S/gAIDF6eCDD04yJxCb+0PnqmkB7r777rz++uvz3Mf83lur+hJvvvlmreuvuuqqOuean/tbJ9+kL7Ik9a3m5fjjj89BBx2Ugw46qPStriVRWVlZqX433XRTKVye26233lrrC+OSeV8Ts2bNyl//+tevrcPUqVNz00031Vg+c+bM3HDDDUnmTGsxPy95rVLV/3v77bcXaG7Yxx9/PAMGDEjv3r1rfCDx/e9/P5MnT877779fWvbuu+9mypQpWXXVVWvd35gxY0qjkfUVWRQEtQAs8d5+++3stNNOOeaYY/Kf//yn2lekpk6dmieeeCJ777136RP1/fbbr1r5I444Is2aNcsnn3ySww47LO+++26SOZ3DO++8M3/605+SJL/85S+z+uqrL3D9qr6Gd/vtt+f5559P8uVokK9q2LBh/vjHP6ZevXp54IEHctRRR2XUqFGl9eXl5RkxYkQuvPDCBe70r7vuukmSd955J6+88soCn8fitO6665bmpj3rrLNy0UUXVXsD9eTJk/Pss8/mhBNOyG9/+9sF2nfXrl1Tr169ah3luT399NPZY489cuedd5ZGPCRzwv0777wz999/f5I5LwepTVVQW9soHgBY3DbYYINsvvnmSZIrr7yytPyXv/xlNt5448yYMSP7779/7rzzzkyePLm0fty4cbnvvvuyzz771BqS1WaLLbZIkjz55JO5+uqrSx9wjx8/PhdccEGuvvrqOufhbNmyZemFVP369Vvg85zbktK3mpcf/ehHOemkk3LSSSdVe/Hokujwww9Pw4YN8+abb+bYY48t9YdmzJiRW265JRdddFHpG2hfVXVNXHHFFenfv39mz56dZE5/84gjjsjw4cPTrFmzeR5/ueWWy6WXXpq+ffuWRqeOHj06Rx55ZN555500btw4hx122AKdU4cOHdKiRYuUl5dX+33Py/Tp03PuuedmxRVXzHHHHVdj/TbbbJMkOffcczN58uRMmTIl5513XrV1X1XVT1xrrbWW2OkvWLp4mRgAS7wGDRpk9uzZeeyxx0pvnG3SpEkaNmyYSZMmlbarX79+fvOb32SHHXaoVn711VfPRRddlOOOOy6DBg3Kj3/847Rs2TLTpk0rjSro0aNHTj311IWq3y677JK//e1vpZEGa6+9dp1fGUzmvOzi3HPPzRlnnJHHH388jz/+eJo0aZImTZpk0qRJpQ7wglpzzTWz6aabZvDgwfn1r3+d1q1bl+bYuvjii0tfDSzKiSeemOnTp+e2227LNddck2uuuSYtWrRIvXr1Mnny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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 593, + "width": 693 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "hue_order = [False, True]\n", + "palette = {\n", + " False: \"#9E9E9E\",\n", + " True: \"#6A1B9A\",\n", + "}\n", + "\n", + "(fig, (ax1, ax2)) = plt.subplots(\n", + " 1,\n", + " 2,\n", + " figsize=(10, 10),\n", + " sharey=True,\n", + ")\n", + "\n", + "sns.barplot(\n", + " x=\"Solve time (s)\",\n", + " y=\"Filename\",\n", + " hue=\"Replay?\",\n", + " data=data,\n", + " ax=ax1,\n", + " hue_order=hue_order,\n", + " palette=[palette[h] for h in hue_order],\n", + ")\n", + "\n", + "sns.barplot(\n", + " x=\"Relative MIP gap (%)\",\n", + " y=\"Filename\",\n", + " hue=\"Replay?\",\n", + " data=data,\n", + " ax=ax2,\n", + " hue_order=hue_order,\n", + " palette=[palette[h] for h in hue_order],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "742c329d", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/test/src/BB/test_bb.jl b/test/src/BB/test_bb.jl index cf51bc7..7946e24 100644 --- a/test/src/BB/test_bb.jl +++ b/test/src/BB/test_bb.jl @@ -10,9 +10,12 @@ using Test using MIPLearn.BB using MIPLearn +using CSV +using DataFrames + basepath = @__DIR__ -function bb_run(optimizer_name, optimizer; large = true) +function bb_run(optimizer_name, optimizer; large=true) @testset "Solve ($optimizer_name)" begin @testset "interface" begin filename = "$FIXTURES/danoint.mps.gz" @@ -25,7 +28,7 @@ function bb_run(optimizer_name, optimizer; large = true) status, obj = BB.solve_relaxation!(mip) @test status == :Optimal - @test round(obj, digits = 6) == 62.637280 + @test round(obj, digits=6) == 62.637280 @test BB.name(mip, mip.int_vars[1]) == "xab" @test BB.name(mip, mip.int_vars[2]) == "xac" @@ -35,26 +38,26 @@ function bb_run(optimizer_name, optimizer; large = true) @test mip.int_vars_ub[1] == 1.0 vals = BB.values(mip, mip.int_vars) - @test round(vals[1], digits = 6) == 0.046933 - @test round(vals[2], digits = 6) == 0.000841 - @test round(vals[3], digits = 6) == 0.248696 + @test round(vals[1], digits=6) == 0.046933 + @test round(vals[2], digits=6) == 0.000841 + @test round(vals[3], digits=6) == 0.248696 # Probe (up and down are feasible) probe_up, probe_down = BB.probe(mip, mip.int_vars[1], 0.5, 0.0, 1.0, 1_000_000) - @test round(probe_down, digits = 6) == 62.690000 - @test round(probe_up, digits = 6) == 62.714100 + @test round(probe_down, digits=6) == 62.690000 + @test round(probe_up, digits=6) == 62.714100 # Fix one variable to zero BB.set_bounds!(mip, mip.int_vars[1:1], [0.0], [0.0]) status, obj = BB.solve_relaxation!(mip) @test status == :Optimal - @test round(obj, digits = 6) == 62.690000 + @test round(obj, digits=6) == 62.690000 # Fix one variable to one and another variable variable to zero BB.set_bounds!(mip, mip.int_vars[1:2], [1.0, 0.0], [1.0, 0.0]) status, obj = BB.solve_relaxation!(mip) @test status == :Optimal - @test round(obj, digits = 6) == 62.714777 + @test round(obj, digits=6) == 62.714777 # Fix all binary variables to one, making problem infeasible N = length(mip.int_vars) @@ -68,7 +71,7 @@ function bb_run(optimizer_name, optimizer; large = true) BB.set_bounds!(mip, mip.int_vars, zeros(N), ones(N)) status, obj = BB.solve_relaxation!(mip) @test status == :Optimal - @test round(obj, digits = 6) == 62.637280 + @test round(obj, digits=6) == 62.637280 end @testset "varbranch" begin @@ -82,8 +85,8 @@ function bb_run(optimizer_name, optimizer; large = true) BB.StrongBranching(), BB.ReliabilityBranching(), BB.HybridBranching(), - BB.StrongBranching(aggregation = :min), - BB.ReliabilityBranching(aggregation = :min, collect = true), + BB.StrongBranching(aggregation=:min), + BB.ReliabilityBranching(aggregation=:min, collect=true), ] h5 = H5File("$FIXTURES/$instance.h5") mip_lower_bound = h5.get_scalar("mip_lower_bound") @@ -98,23 +101,23 @@ function bb_run(optimizer_name, optimizer; large = true) @info optimizer_name, branch_rule, instance @time BB.solve!( mip, - initial_primal_bound = mip_primal_bound, - print_interval = 1, - node_limit = 25, - branch_rule = branch_rule, + initial_primal_bound=mip_primal_bound, + print_interval=1, + node_limit=25, + branch_rule=branch_rule, ) end end end @testset "collect" begin - rule = BB.ReliabilityBranching(collect = true) + rule = BB.ReliabilityBranching(collect=true) BB.collect!( optimizer, "$FIXTURES/bell5.mps.gz", - node_limit = 100, - print_interval = 10, - branch_rule = rule, + node_limit=100, + print_interval=10, + branch_rule=rule, ) n_sb = rule.stats.num_strong_branch_calls h5 = H5File("$FIXTURES/bell5.h5") @@ -132,3 +135,67 @@ function test_bb() @time bb_run("HiGHS", optimizer_with_attributes(HiGHS.Optimizer)) # @time bb_run("CPLEX", optimizer_with_attributes(CPLEX.Optimizer, "CPXPARAM_Threads" => 1)) end + +function test_bb_replay() + rule_sb = BB.StrongBranching() + rule_rb = BB.ReliabilityBranching() + optimizer = optimizer_with_attributes(HiGHS.Optimizer) + filenames = [replace(f, ".h5" => "") for f in glob("test/fixtures/stab/*.h5")] + results_filename = "tmp.csv" + + lk = ReentrantLock() + results = [] + + function push_result(r) + lock(lk) do + push!(results, r) + df = DataFrame() + for row in results + push!(df, row, cols=:union) + end + CSV.write(results_filename, df) + end + end + + function solve(filename; replay=nothing, skip=false, rule) + has_replay = (replay !== nothing) + h5 = H5File("$filename.h5", "r") + mip_obj_bound = h5.get_scalar("mip_obj_bound") + @show filename + @show has_replay + h5.file.close() + mip = BB.init(optimizer) + BB.read!(mip, "$filename.mps.gz") + time_solve = @elapsed begin + pool, replay = BB.solve!( + mip, + initial_primal_bound=mip_obj_bound, + print_interval=100, + node_limit=1_000, + branch_rule=rule, + replay=replay, + ) + end + if !skip + push_result( + Dict( + "Filename" => filename, + "Replay?" => has_replay, + "Solve time (s)" => time_solve, + "Relative MIP gap (%)" => round(pool.gap * 100, digits=3) + ) + ) + end + return replay + end + + # Solve reference instance + replay = solve(filenames[1], skip=true, rule=rule_sb) + + # Solve perturbations + for i in 2:6 + solve(filenames[i], rule=rule_rb, replay=nothing) + solve(filenames[i], rule=rule_rb, replay=deepcopy(replay)) + end + return +end \ No newline at end of file