From e2dd0e269650ad06ac48d87dbc390f0e1ff77dbe Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Fri, 15 Aug 2025 06:02:15 -0700 Subject: [PATCH] [MIRROR] Refinery mixing machine (#11424) Co-authored-by: Will <7099514+Willburd@users.noreply.github.com> --- code/game/machinery/frame.dm | 5 + .../items/weapons/circuitboards/frame.dm | 10 ++ code/game/objects/items/weapons/manuals.dm | 4 + .../core/industrial_reagent_filter.dm | 4 +- .../core/industrial_reagent_furnace.dm | 4 +- .../core/industrial_reagent_grinder.dm | 2 +- .../refinery/core/industrial_reagent_hub.dm | 6 +- .../core/industrial_reagent_machines.dm | 14 +- .../refinery/core/industrial_reagent_mixer.dm | 141 ++++++++++++++++++ .../refinery/core/industrial_reagent_pipe.dm | 4 +- .../refinery/core/industrial_reagent_pump.dm | 12 +- .../core/industrial_reagent_reactor.dm | 4 +- .../refinery/core/industrial_reagent_vat.dm | 6 +- .../refinery/core/industrial_reagent_waste.dm | 4 - .../research/tg/designs/boards/refinery.dm | 10 ++ .../research/tg/techwebs/nodes/engi_nodes.dm | 1 + icons/obj/machines/refinery_machines.dmi | Bin 16265 -> 18385 bytes icons/obj/stock_parts_refinery.dmi | Bin 13556 -> 14454 bytes vorestation.dme | 1 + 19 files changed, 207 insertions(+), 25 deletions(-) create mode 100644 code/modules/refinery/core/industrial_reagent_mixer.dm diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm index 89281eca65..91743a8d23 100644 --- a/code/game/machinery/frame.dm +++ b/code/game/machinery/frame.dm @@ -237,6 +237,11 @@ GLOBAL_LIST(construction_frame_floor) icon_override = 'icons/obj/stock_parts_refinery.dmi' frame_class = FRAME_CLASS_MACHINE +/datum/frame/frame_types/industrial_reagent_mixer + name = "Industrial Chemical Mixer" + icon_override = 'icons/obj/stock_parts_refinery.dmi' + frame_class = FRAME_CLASS_MACHINE + /datum/frame/frame_types/industrial_reagent_pipe name = "Industrial Chemical Pipe" icon_override = 'icons/obj/stock_parts_refinery.dmi' diff --git a/code/game/objects/items/weapons/circuitboards/frame.dm b/code/game/objects/items/weapons/circuitboards/frame.dm index 3aa1778c54..e2176bda8a 100644 --- a/code/game/objects/items/weapons/circuitboards/frame.dm +++ b/code/game/objects/items/weapons/circuitboards/frame.dm @@ -349,6 +349,16 @@ /obj/item/stock_parts/motor = 1, /obj/item/stack/material/glass/reinforced = 1) +/obj/item/circuitboard/industrial_reagent_mixer + name = T_BOARD("industrial chemical mixer") + build_path = /obj/machinery/reagent_refinery/mixer + board_type = new /datum/frame/frame_types/industrial_reagent_mixer + req_components = list( + /obj/item/stock_parts/motor = 2, + /obj/item/stock_parts/gear = 2, + /obj/item/stock_parts/scanning_module = 1, + /obj/item/stack/material/glass/reinforced = 1) + /obj/item/circuitboard/industrial_reagent_pipe name = T_BOARD("industrial chemical pipe") build_path = /obj/machinery/reagent_refinery/pipe diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index fa395df758..9cb402f0f3 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -1776,6 +1776,10 @@

Pumps:

Pumps allow for the high volume exchange of reagents from one machine to another, but they are also useful for their multiple hose connectors. Allowing you to pump reagents from any other hose connector equipped tool. With this feature, they can serve as the input connection for long distance fracking networks.

+

Mixers:

+

While not required for reagents to react together, a mixing vat will allow you to easily control the portion of reagents mixed. Mixers will take input from three directions, and output in the last direction. The mixing arm will stop at each input, and will not proceed until it has recieved the reagents.

+

Using a pump, the amount of reagents transfered can be configured much more finely compared to handling reactions in vats. A mixer will refuse to take inputs if it cannot fully empty itself on a complete rotation. The rotation direction may be swapped at any time.

+

Fluid Pumps:

While not directly a refinery machine, they serve a core function outside of the refinery. Fluid pumps will extract eroded ores from bodies of water near mineral rich deposits. Discussion of high value ores with an experienced miner is recommended. Ores must remain intact near a body of water to be collected by the pump.

Fluid pumps operate on an internal power cell, protected behind a water proof panel. A crowbar is handy for opening it. Hoses can be connected to a fluid pump, allowing it to connect to long distance tube networks.

diff --git a/code/modules/refinery/core/industrial_reagent_filter.dm b/code/modules/refinery/core/industrial_reagent_filter.dm index 93a05338d5..27b54e1826 100644 --- a/code/modules/refinery/core/industrial_reagent_filter.dm +++ b/code/modules/refinery/core/industrial_reagent_filter.dm @@ -113,11 +113,11 @@ filter_side *= -1 update_icon() -/obj/machinery/reagent_refinery/filter/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") +/obj/machinery/reagent_refinery/filter/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") // pumps, furnaces and filters can only be FED in a straight line if(source_forward_dir != dir) return 0 - . = ..(origin_machine, RT, source_forward_dir, filter_id) + . = ..(origin_machine, RT, source_forward_dir, transfer_rate, filter_id) /obj/machinery/reagent_refinery/filter/examine(mob/user, infix, suffix) . = ..() diff --git a/code/modules/refinery/core/industrial_reagent_furnace.dm b/code/modules/refinery/core/industrial_reagent_furnace.dm index fa94ae5607..7b61adf1e9 100644 --- a/code/modules/refinery/core/industrial_reagent_furnace.dm +++ b/code/modules/refinery/core/industrial_reagent_furnace.dm @@ -192,11 +192,11 @@ filter_side *= -1 update_icon() -/obj/machinery/reagent_refinery/furnace/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") +/obj/machinery/reagent_refinery/furnace/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") // pumps, furnaces and filters can only be FED in a straight line if(source_forward_dir != dir) return 0 - . = ..(origin_machine, RT, source_forward_dir, filter_id) + . = ..(origin_machine, RT, source_forward_dir, transfer_rate, filter_id) /obj/machinery/reagent_refinery/furnace/examine(mob/user, infix, suffix) . = ..() diff --git a/code/modules/refinery/core/industrial_reagent_grinder.dm b/code/modules/refinery/core/industrial_reagent_grinder.dm index 09087c51d5..2d63390770 100644 --- a/code/modules/refinery/core/industrial_reagent_grinder.dm +++ b/code/modules/refinery/core/industrial_reagent_grinder.dm @@ -143,6 +143,6 @@ . += "The meter shows [reagents.total_volume]u / [reagents.maximum_volume]u. It is pumping chemicals at a rate of [amount_per_transfer_from_this]u." tutorial(REFINERY_TUTORIAL_NOINPUT, .) -/obj/machinery/reagent_refinery/grinder/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") +/obj/machinery/reagent_refinery/grinder/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") // Grinder forbids input return 0 diff --git a/code/modules/refinery/core/industrial_reagent_hub.dm b/code/modules/refinery/core/industrial_reagent_hub.dm index e5539c9cc5..a7bfe3c1de 100644 --- a/code/modules/refinery/core/industrial_reagent_hub.dm +++ b/code/modules/refinery/core/industrial_reagent_hub.dm @@ -62,7 +62,7 @@ var/image/pipe = image(icon, icon_state = "hub_cons", dir = dir) add_overlay(pipe) -/obj/machinery/reagent_refinery/hub/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") +/obj/machinery/reagent_refinery/hub/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") if(istype(origin_machine,/obj/machinery/reagent_refinery/hub)) // Hubs cannot send into other hubs return 0 if(dir != GLOB.reverse_dir[source_forward_dir] ) // The hub must be facing into its source to accept input, unlike others @@ -74,10 +74,10 @@ return 0 // Don't call parent, we're transfering into the holding tank instead if(filter_id == "") - return RT.trans_to_obj(tanker, amount_per_transfer_from_this) + return RT.trans_to_obj(tanker, transfer_rate) else // Split out reagent... - return RT.trans_id_to(tanker, filter_id, amount_per_transfer_from_this) + return RT.trans_id_to(tanker, filter_id, transfer_rate) /obj/machinery/reagent_refinery/hub/examine(mob/user, infix, suffix) . = ..() diff --git a/code/modules/refinery/core/industrial_reagent_machines.dm b/code/modules/refinery/core/industrial_reagent_machines.dm index 5da9e471bd..fedb3df110 100644 --- a/code/modules/refinery/core/industrial_reagent_machines.dm +++ b/code/modules/refinery/core/industrial_reagent_machines.dm @@ -100,19 +100,19 @@ return 0 if(!istype(target,/obj/machinery/reagent_refinery)) // cannot transfer into grinders anyway, so it's fine to do it this way. return 0 - var/transfered = target.handle_transfer(src,RT,source_forward_dir,filter_id) + var/transfered = target.handle_transfer(src,RT,source_forward_dir, amount_per_transfer_from_this, filter_id) if(transfered > 0 && active_power_usage > 0) use_power_oneoff(active_power_usage) return transfered /// Handles reagent recieving from transfer_tank(), returns how much reagent was transfered if successful. Overriden to prevent access from certain sides or for filtering. -/obj/machinery/reagent_refinery/proc/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") // Handle transfers in an override, instead of one monster function that typechecks like transfer_tank() used to be +/obj/machinery/reagent_refinery/proc/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") // Handle transfers in an override, instead of one monster function that typechecks like transfer_tank() used to be // Transfer to target in amounts every process tick! if(filter_id == "") - var/amount = RT.trans_to_obj(src, amount_per_transfer_from_this) + var/amount = RT.trans_to_obj(src, transfer_rate) return amount // Split out reagent... - return RT.trans_id_to(src, filter_id, amount_per_transfer_from_this, TRUE) + return RT.trans_id_to(src, filter_id, transfer_rate, TRUE) /obj/machinery/reagent_refinery/proc/refinery_transfer() if(amount_per_transfer_from_this <= 0 || reagents.total_volume <= 0) @@ -122,9 +122,15 @@ var/obj/machinery/reagent_refinery/target = locate(/obj/machinery/reagent_refinery) in get_step(get_turf(src),dir) if(!target) return 0 + if(reagents.total_volume < minimum_reagents_for_transfer(target)) + return 0 return transfer_tank( reagents, target, dir) +/// Handle transfers that require a minimum amount of reagents to happen +/obj/machinery/reagent_refinery/proc/minimum_reagents_for_transfer(var/obj/machinery/reagent_refinery/target) + return 0 + /obj/machinery/reagent_refinery/verb/rotate_clockwise() set name = "Rotate Machine Clockwise" set category = "Object" diff --git a/code/modules/refinery/core/industrial_reagent_mixer.dm b/code/modules/refinery/core/industrial_reagent_mixer.dm new file mode 100644 index 0000000000..5226079d58 --- /dev/null +++ b/code/modules/refinery/core/industrial_reagent_mixer.dm @@ -0,0 +1,141 @@ +/obj/machinery/reagent_refinery/mixer + name = "Industrial Chemical Mixer" + desc = "A large mixing machine. Each input is only fed into the mixer once during each rotation." + icon_state = "mixer" + density = TRUE + anchored = TRUE + use_power = USE_POWER_IDLE + idle_power_usage = 0 + active_power_usage = 50 + circuit = /obj/item/circuitboard/industrial_reagent_mixer + default_max_vol = 240 // Two large beakers of volume + var/mixer_angle = 0 + var/mixer_rotation_rate = 45 + var/got_input = FALSE + +/obj/machinery/reagent_refinery/mixer/Initialize(mapload) + mixer_angle = dir2angle(dir) + . = ..() + default_apply_parts() + // Can't be set on these + src.verbs -= /obj/machinery/reagent_refinery/verb/set_APTFT + +/obj/machinery/reagent_refinery/mixer/process() + if(!anchored) + return + + power_change() + if(stat & (NOPOWER|BROKEN)) + return + + if(mixer_angle == dir2angle(dir)) + // Drain it! + refinery_transfer() + got_input = FALSE + if(reagents.total_volume <= 0) + mixer_angle += mixer_rotation_rate + update_icon() + else + // Check if we were filled... + if(mixer_angle % 90 != 0) // Not cardinal, keep going + got_input = TRUE + else if(!(locate(/obj/machinery/reagent_refinery) in get_step(src,angle2dir(mixer_angle)))) // If nothing, keep rotating + got_input = TRUE + + if(got_input) + mixer_angle += mixer_rotation_rate + got_input = FALSE + update_icon() + + // Modulus for sanity + mixer_angle = (360 + mixer_angle) % 360 + +/obj/machinery/reagent_refinery/mixer/update_icon() + cut_overlays() + // GOOBY! + if(reagents && reagents.total_volume >= 5) + var/percent = (reagents.total_volume / reagents.maximum_volume) * 100 + switch(percent) + if(5 to 20) percent = 2 + if(20 to 40) percent = 4 + if(40 to 60) percent = 6 + if(60 to 80) percent = 8 + if(80 to INFINITY) percent = 10 + var/image/filling = image(icon, loc, "mixer_r_[percent]",dir = dir) + filling.color = reagents.get_color() + add_overlay(filling) + // Get main dir pipe + var/image/pipe = image(icon, icon_state = "mixer_cons", dir = dir) + add_overlay(pipe) + if(anchored) + if(!(stat & (NOPOWER|BROKEN))) + var/image/dot = image(icon, icon_state = "mixer_dot_[ got_input ? "on" : "off" ]") + add_overlay(dot) + for(var/direction in GLOB.cardinal) + var/turf/T = get_step(get_turf(src),direction) + var/obj/machinery/other = locate(/obj/machinery/reagent_refinery) in T + if(other && other.anchored) + // Waste processors do not connect to anything as outgoing + if(istype(other,/obj/machinery/reagent_refinery/waste_processor)) + continue + // weird handling for side connections... Otherwise, anything pointing into use gets connected back! + if(istype(other,/obj/machinery/reagent_refinery/filter)) + var/obj/machinery/reagent_refinery/filter/filt = other + var/check_dir = 0 + if(filt.get_filter_side() == 1) + check_dir = turn(filt.dir, 270) + else + check_dir = turn(filt.dir, 90) + if(check_dir == GLOB.reverse_dir[direction] && dir != direction) + var/image/intake = image(icon, icon_state = "mixer_intakes", dir = direction) + add_overlay(intake) + continue + if(other.dir == GLOB.reverse_dir[direction] && dir != direction) + var/image/intake = image(icon, icon_state = "mixer_intakes", dir = direction) + add_overlay(intake) + // Get mixer overlay + var/image/arm = image(icon, icon_state = "mixer_arm", dir = angle2dir(mixer_angle)) + add_overlay(arm) + +/obj/machinery/reagent_refinery/mixer/attack_hand(mob/user) + set_rotation() + +/obj/machinery/reagent_refinery/mixer/verb/set_rotation() + PRIVATE_PROC(TRUE) + set name = "Set Mixer Rotation" + set category = "Object" + set src in view(1) + + if (usr.stat || usr.restrained()) + return + + if(mixer_rotation_rate > 0) + mixer_rotation_rate = -45 + to_chat(usr,span_notice("You set \the [src] to rotate counter clockwise.")) + else + mixer_rotation_rate = 45 + to_chat(usr,span_notice("You set \the [src] to rotate clockwise.")) + + +/obj/machinery/reagent_refinery/mixer/examine(mob/user, infix, suffix) + . = ..() + . += "The meter shows [reagents.total_volume]u / [reagents.maximum_volume]u. It is pumping chemicals at a rate of [amount_per_transfer_from_this]u." + tutorial(REFINERY_TUTORIAL_SINGLEOUTPUT, .) + +/obj/machinery/reagent_refinery/mixer/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") + // no back/forth, filters don't use just their forward, they send the side too! + if(mixer_angle % 90 != 0) // Only handle proper directions + return 0 + if(got_input) // Only ONCE per direction + return 0 + if(dir == GLOB.reverse_dir[source_forward_dir]) + return 0 + if(get_turf(origin_machine) != get_step(src,angle2dir(mixer_angle))) // Check if the mixer arm is pointing at the machine too! + return 0 + + . = ..(origin_machine, RT, source_forward_dir, transfer_rate, filter_id) + + // If we transfered anything, then inform process() of it! + if(.) + got_input = TRUE + update_icon() diff --git a/code/modules/refinery/core/industrial_reagent_pipe.dm b/code/modules/refinery/core/industrial_reagent_pipe.dm index 5af43dbe4a..87cca1027c 100644 --- a/code/modules/refinery/core/industrial_reagent_pipe.dm +++ b/code/modules/refinery/core/industrial_reagent_pipe.dm @@ -55,11 +55,11 @@ var/image/intake = image(icon, icon_state = "pipe_intakes", dir = direction) add_overlay(intake) -/obj/machinery/reagent_refinery/pipe/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") +/obj/machinery/reagent_refinery/pipe/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") // no back/forth, filters don't use just their forward, they send the side too! if(dir == GLOB.reverse_dir[source_forward_dir]) return 0 - . = ..(origin_machine, RT, source_forward_dir, filter_id) + . = ..(origin_machine, RT, source_forward_dir, transfer_rate, filter_id) /obj/machinery/reagent_refinery/pipe/examine(mob/user, infix, suffix) . = ..() diff --git a/code/modules/refinery/core/industrial_reagent_pump.dm b/code/modules/refinery/core/industrial_reagent_pump.dm index 612ff9a4cb..5c833b25a7 100644 --- a/code/modules/refinery/core/industrial_reagent_pump.dm +++ b/code/modules/refinery/core/industrial_reagent_pump.dm @@ -33,6 +33,14 @@ refinery_transfer() +/obj/machinery/reagent_refinery/minimum_reagents_for_transfer(var/obj/machinery/reagent_refinery/target) + if(istype(target,/obj/machinery/reagent_refinery/mixer)) // Special handling for mixer. Don't pump unless we can pump at least our transfer amount! + var/obj/machinery/reagent_refinery/mixer/M = target + if(M.got_input) + return INFINITY // block em + return amount_per_transfer_from_this + return 0 + /obj/machinery/reagent_refinery/pump/update_icon() cut_overlays() if(reagents && reagents.total_volume >= 5) @@ -43,11 +51,11 @@ /obj/machinery/reagent_refinery/pump/attack_hand(mob/user) set_APTFT() -/obj/machinery/reagent_refinery/pump/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") +/obj/machinery/reagent_refinery/pump/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") // pumps, furnaces and filters can only be FED in a straight line if(source_forward_dir != dir) return 0 - . = ..(origin_machine, RT, source_forward_dir, filter_id) + . = ..(origin_machine, RT, source_forward_dir, transfer_rate, filter_id) /obj/machinery/reagent_refinery/pump/examine(mob/user, infix, suffix) . = ..() diff --git a/code/modules/refinery/core/industrial_reagent_reactor.dm b/code/modules/refinery/core/industrial_reagent_reactor.dm index 6030093e95..72928a75c7 100644 --- a/code/modules/refinery/core/industrial_reagent_reactor.dm +++ b/code/modules/refinery/core/industrial_reagent_reactor.dm @@ -98,14 +98,14 @@ var/image/intake = image(icon, icon_state = "reactor_intakes", dir = direction) add_overlay(intake) -/obj/machinery/reagent_refinery/reactor/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") +/obj/machinery/reagent_refinery/reactor/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") // no back/forth, filters don't use just their forward, they send the side too! if(dir == GLOB.reverse_dir[source_forward_dir]) return 0 // locked until distilling mode if(toggle_mode == REACTOR_MODE_OUTPUT) return 0 - . = ..(origin_machine, RT, source_forward_dir, filter_id) + . = ..(origin_machine, RT, source_forward_dir, transfer_rate, filter_id) /obj/machinery/reagent_refinery/reactor/examine(mob/user, infix, suffix) . = ..() diff --git a/code/modules/refinery/core/industrial_reagent_vat.dm b/code/modules/refinery/core/industrial_reagent_vat.dm index 814571f0b1..41effa3c39 100644 --- a/code/modules/refinery/core/industrial_reagent_vat.dm +++ b/code/modules/refinery/core/industrial_reagent_vat.dm @@ -1,6 +1,6 @@ /obj/machinery/reagent_refinery/vat name = "Industrial Chemical Vat" - desc = "A large mixing vat for huge quantities of chemicals. Don't fall in!" + desc = "A large storage vat for huge quantities of chemicals. Don't fall in!" icon_state = "vat" density = TRUE anchored = TRUE @@ -82,11 +82,11 @@ . += "The meter shows [reagents.total_volume]u / [reagents.maximum_volume]u. It is pumping chemicals at a rate of [amount_per_transfer_from_this]u." tutorial(REFINERY_TUTORIAL_SINGLEOUTPUT, .) -/obj/machinery/reagent_refinery/vat/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") +/obj/machinery/reagent_refinery/vat/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/transfer_rate, var/filter_id = "") // no back/forth, filters don't use just their forward, they send the side too! if(dir == GLOB.reverse_dir[source_forward_dir]) return 0 - . = ..(origin_machine, RT, source_forward_dir, filter_id) + . = ..(origin_machine, RT, source_forward_dir, transfer_rate, filter_id) /obj/machinery/reagent_refinery/vat/MouseDrop_T(var/atom/movable/C, mob/user as mob) if(user.buckled || user.stat || user.restrained() || !Adjacent(user) || !user.Adjacent(C) || !istype(C) || (user == C && !user.canmove)) diff --git a/code/modules/refinery/core/industrial_reagent_waste.dm b/code/modules/refinery/core/industrial_reagent_waste.dm index ed67d58afa..3d3b66e0e5 100644 --- a/code/modules/refinery/core/industrial_reagent_waste.dm +++ b/code/modules/refinery/core/industrial_reagent_waste.dm @@ -59,10 +59,6 @@ var/image/intake = image(icon, icon_state = "waste_intakes", dir = direction) add_overlay(intake) -/obj/machinery/reagent_refinery/waste_processor/handle_transfer(var/atom/origin_machine, var/datum/reagents/RT, var/source_forward_dir, var/filter_id = "") - // Waste tanks accept from all sides - . = ..(origin_machine, RT, source_forward_dir, filter_id) - /obj/machinery/reagent_refinery/waste_processor/examine(mob/user, infix, suffix) . = ..() . += "The meter shows [reagents.total_volume]u / [reagents.maximum_volume]u. It is pumping chemicals at a rate of [amount_per_transfer_from_this]u." diff --git a/code/modules/research/tg/designs/boards/refinery.dm b/code/modules/research/tg/designs/boards/refinery.dm index 3655598dc4..4d3d4568eb 100644 --- a/code/modules/research/tg/designs/boards/refinery.dm +++ b/code/modules/research/tg/designs/boards/refinery.dm @@ -78,6 +78,16 @@ ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING +/datum/design_techweb/board/industrial_reagent_mixer + name = "Industrial Reagent Mixer" + id = "industrial_reagent_mixer" + // req_tech = list(TECH_DATA = 1) + build_path = /obj/item/circuitboard/industrial_reagent_mixer + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + /datum/design_techweb/board/industrial_reagent_waste_processor name = "Industrial Reagent Waste Processor" id = "industrial_reagent_waste_processor" diff --git a/code/modules/research/tg/techwebs/nodes/engi_nodes.dm b/code/modules/research/tg/techwebs/nodes/engi_nodes.dm index 29e69f1dc8..c48e22b511 100644 --- a/code/modules/research/tg/techwebs/nodes/engi_nodes.dm +++ b/code/modules/research/tg/techwebs/nodes/engi_nodes.dm @@ -327,6 +327,7 @@ "industrial_reagent_pump", "industrial_reagent_reactor", "industrial_reagent_vat", + "industrial_reagent_mixer", "industrial_reagent_waste_processor", "smart_centrifuge", "pump_relay", diff --git a/icons/obj/machines/refinery_machines.dmi b/icons/obj/machines/refinery_machines.dmi index 8382161a54dbb4d53bad5960c081cfe47360720b..259e412ac437f499e45589ce0aebca4e001f2ed8 100644 GIT binary patch literal 18385 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 OGkCiCxvXpE^<=0-QKMamVA zW~aLsO0CbMovwa8_DMt5C7QHnzZf|*tNdy_!hg-RL)Z~J_xK=t?S9SeTNnLhvd)~$ z_2K>}OO{D1A6YypZ7WrDvDz;E#zRYI?Ur-G?G4f; z$5?eZU9h(2Bs!ak<(u0NSUw54dtQDc72Q-7_vDvzirfdqSHkC)=2=5A*-*LtL6s0c zuZpv(7Q()IpQnO65o*GtF5UtC$&8owtxhWaR5Rh^y?jt-W`m?^G(HF)0))uQ2&^FeR-&!Y_&F@YK8W1p(5k~0wS+d3Ne32*hBB8@s{gA#Zn z>95bFqTjseb`&$-PS!4qDvP*OEyjFdJe^z8*zqvc34ek2cz!3>_>~uHJhL3GolrvxhuY z&xz*~{BC_3O^lDXM*R+kE<@Aire3Rqbc)B2W-8gn<+$QukNcvrjO^gm3R28A_NcbD zu2kS;EJm96M2&q$6WIJ^rL<#99F93vhRff^T55FfvZ?D5w{!tHE zzqTY2zWr-HC$Mej7&o_2>z zK-0G+Ms@nnl z#W9jy$szENkkTPsE&MQalJu#qI32G-XNZq9dsI#jls^^x8|2A9kmBMJI52TT%7WtK&u}

=uU$ClMx4@!b`)gjzL6BS0vOCq`(E_>9_mdSrp zIr$+#m{x_kL%C(R3t&HNMK)qLco-YGE2{o!nQCB#~p)cCt9@~ zITK1SSWZ1eg*4Fa#ff$89eUnwTMhn1%99~eb|fHq71TYWo1Wx00)rN+q*ZX~F@nAa z-kfy>Y838}YF5kCyH{8OpL|*rLM!!O!e{l=r`0>0sG~kSAb%RlL-^c=c0T@usM{DP zaB2y?V8*B%-<|kWsY(%6W)s(g%0!KmcD%!ISS)FW=o<6E5jQL-L*Lo{)mDGO5#cbo zQ}GA29@xjo81~~KFzzVDSL2&eXWBBkP8IjVS)msBVYL$$4{|?>;I}LcNqJrekSQpQJr=!FsvJMhqf42DZNsN|ePzjQns0Q|)(?(| zkteb2O8Zt9I<+mm8g>r5 zmCsU(gA4>Ox3|v}S-0Ung@1yOQ($gnrr>=O8^Z6J1Rf_hP$M~4k3Xd=CbdU>F1rz) ze0+_`mlJb^d87IsNg%LUczTZpv&>v=L(a>k5y)m4%=>L7^u;Q%WVtd$PQ}u z2gSDaWikI*6Xw-fh_67z=%eewIp>l!r5Yn<0+&x7g0zJeFV~y>6J`$A0@n{y_?k9+ z;@Llm$Zh`mZ)H&Q0C?bfVZwX~=Ma`Q<7GW2FH`IFt62^z_+MHF_m_h)OZuTjVSqhn z`Nn@WW*|F2?V6js!4Gf?bTW+7P4xI7$1zQOTtJu(o>5Dh;gEn2*I_uz-x86~J7Gb? zaPk9+{6FKD9_0)hi8qznFH~je`A-FW)4JG|hLH%mp!gyJR%>z$BFZ#XhL-x~{RoG- z|4k;+OO`ju86i4*b3Fv8=3B&ER=E5CHVlSg40yH^8EBCba92)1%XW`RdGoa~oru=Ev=C=O4c7EWB%FjBKiC6uX*;Ni`D$)A8BIEXg zY$NsVGX7eD@8rF#5)4RW9@H+4Ms$9;bYj-`t#NTXBHwS}S`4jKOYe(KdE)c!e`XB$ zCO4yWqt%pc%PqmST?tW#-44jCnYIyMGlk_hDu76lISQ z2?drh2WsAC8L*;AMgXJVSY;=lq)<}M4Y=sGA)Md^V`#p`Io7Z&W>!p|7*;9e;=MW1 ztWB|Al;lfVYxKiQmlKE|7=ih7j^Tz7Ax`i{?kn`d(rB%is2bT73r^9ow?MAYw#7^9 z)-$mh-z}xCyQ`E513hSA%9HexopmN-J=DVkSzthzI=@mry5M!?RAiP;cT%9d$bhty zJfgL>)Rg9s>F;H5cug$d!P*bx+T2ZLb@isWpIE%8c>aeEq4DucRO-ulpCjqtzpWr| zdgpO2(groSwh@riTp`l+s-+h651LQNuRoo6GC_8F=AionQE4gDv(q{&99a_=})EIGs3RLwJIfc=p7PtzfNG+K zi-}J|)O(j03YVn4LYS+u0mAAM2p^Fd7~lV>3#6GOot0uvi(y!bCa6mN&2X?AAd>~h z=oKq}v@Jg*r<8gbHiKQI9yh+#B>r$5m!(`}e zp1~BA6aOj>@fz)=D7(TiZWF|S$#uoN>E9N9Kb7g_$oyN$f9{}^R#|@q27OnyBJX*K z-$E_lCOaK;6Lfk?R>Z2$M6kDDz@}*9sI~s2o0s%&O-oT z;1VQPWY%vzO=cT3M?=jVaZUP#YoVg-oh+cpxid#}!6VpCJZAtRc9+u_mQsD#Gv^Bb zQgTsk)u*o*n$qIhk3m2YQZ)7z1wFGDr}#l>;+IkcKNZcKz)zWY~V6p!rqjWCy^B~S5T4r}^L0|vq zn8w+Tg9pKSKc;X0}=lP1UxzI*9+a)_YndDv*jJJ-bcD&`iMhr8eH(mUhg0%U%>Gq({< z?1*I>&b2mIPs7t)LE8MHuOkPd69Noe%;35)Y~F{HDe}4el7%*nEPp}82R3EV5vo~( zo~j=}m)@Y{;SEvjQ!|6XN43hY7&bI9BHQ409rh)0 zY=7#c_Sh$z{r*+=KC$s-e;f8=3cN`=WGrz@T=uu9%J)n8{!QuVF=1R|GCSEN3Te|PkyZd_Z`Wb$2`wSaYpQTu*XJluJ z&sOoIZ*5gDJm0vbWHGd#u_TH@tT2e+^C0LWwZHF5! zslH#HmR}kKa#CU0#vjU=Ux_*X6rT4eYRM0-wjN0RA~>FIU|XbJk(3fWvPGUcQ>nt} z_lyU2j^1CB9h5R@1r?OHYB4BLgedOvIsL`L+^kIhs1$^UTb|MT&0sAtX5ME_3SI>S zIqcuQY0q9XfDF1ld1pQq(lVr9Zuv<^X)DZA(r`ftN-C7qbdXZ$0$z}r^s{538ZdqZ zv+8%qvhXlTlFI0GRydeUehv_@?^W$yR_FK&x>=nCi`y%%~6w;UhR)AH@?DFcDr0V!mfB(yBGZ#7HHmIDMAuk=m=NjMm)%1TS zhVH9*<@UnPZCRe`oaFWU2q(*ajwyqEFmE#x=+(A3F}&4v+GkYL^O(+JZ;+{S z!}G$qfgH4g3wM~}3#s809aR|tOZ}p9e&>qkX+3m_wEFx8gUMg&ktBj~zTUM9eRFEH z2VSjQt$TM)S8`mne*Db}T5KyaHMS6NCZbgC*ikr#b6pSp)3f(_Fb1CSzFGspE{b-v z4ch4Ao>r6N(CLeD>Vu@86NBB=t?-xYPW=i0sT#C2_*hS`Bj<)iOC4{^58kzNsJT@o z&rN48eqi>c{}X+P>F8&#=u6_DeT|p(%lWCSZYvvA_aUXn8h=}|S6N&aUZ*{t5>yyD z7jti_lo-0R!9{LSa`+#Rb3x)73+ zAY>${k6)X9pdbB$kL4QxL{$m(2n#yATv0#Ow&v#FbjRbd#2x(>sUhGRNT$cb+^1;*}Vs#@K?%V((HQZf{w z1ggd~4eZ61Gxep{rCC%R!{@F(YGNIiz!Ob_9La6W=ghh5TlwYE;h?sQ;IaHBLBBTG zaj2ZtZ!oMiX-ZQi*EujJL!NhW-YJ9b)m@I5O#7FT4+^Da)v!t|U+VcS52T8UNEJ89URV3~;V zN$z4K>RojP;*qlkECj#^?lMf;gj9!N^t}1B_zKcdCy|JdiSY1$yMlpbHsUt61 zsdsr6$b%4I=6Tt%m)c#HfD!@LxIb)!S(s$QdP8%}IQ2x18Fi2M!Y(WQ5djCzN-11Y za$@?i#NtyUqEbXnUKFWzpzG6KM|(%UIvVZ+Esq6=3i7+w^*|k&6@Nx3_fE`vrf+en zJa?8gCNiT_s3f7`XHo4ngcY?V=CJeh;{@c*+mP2`mml(7O75_u8J1F$@6esV{kea+ z_Q)89%=%H=6z6CDRRNJhEY$68yfEG_o3i5Hno=T?7@l1*%+bVcRA;V{uKOz(*C(0y z@Gk+SPEVMqL?{9rSFT>Y$5VK%s}c4y+hS3;fd9b@@ko|4(4-9}XEM3iGfcLFU;Fia*6%R5M80 zq?QmmyXe*=P9?faSEsC~X@bwnO(OGj%IVL?v7gJf?WHWvv@ASUtD|q@LkrZFn2^hZ z!@>WWiyj%*u=$EWkRSO_h-k@|QKFspC4+qBB~@C@|JBxRX=<^|Tp&A?Bg&y{+k7t9WY4=tqM- zVWq;YTN50fJsFlo+CP(sypo)T6GxMt$cTR5M!NT;aen7D7LtTp4na~m#mu3_twaIadKm7KTyWN}A{(BXWxQ^_c5G0u=_v2lSS zy!GDrbHgP&577x(<2MT4*+gQ7<6huFSH|bw%Te|RxjIHT=|GeF8d5!a5tQiTTnUbxp zH^?~*CxU0iPhP*BO4v@fJ6TQuQW|; z$E0H+4X@9XM9)7kzIZ-N$-6wfA5qE)}DN)$C-9`}M!ILsP>In#a za@-=~1qt_L6joG9t>$7s_BHLEG($MqbtQ`E^fZR(;q{qB40ftXyttQ`;mt$2kA6)yJ^>k|rpEC}PH3AKwVy3;E}uEA43NDB1S(-KY8THM(q2E^nqabMMThr_Xachw^%4cBtgdj;&VVN4mP_UAxaP_bCgOU? z3Vk_IyRF?>8|kVS>3#gIux7T=*)yPdts~;TR}Kf5eSx{#|3>%KEWE7h39=^<#=hkd z@Tz%)%Dv|Xd&}sWsf+9E{q(wC*eMk0CMR&rMrdo zp+5SwxF3SI!)-^T=yj-UN&CafBpC>d zRPp0;N1ar9+QZ?)-%OXM2%ZyuN?%F#x94Ku3Iv`v#;8zoP9_#K5}JhiF<^KF->0RGxVo>mu$k<<`zz$t{VL!RXAp`mA~>=Z#m1jaMh<0DgE0qYY4QOcZrC2 zD*tmN;tw%d%<*8x;4qp2&|bPbn<@W0ve_+?Yjt-wnE`EDcKplZ(7kqXS6Xp8>NEAN zIacHo?JEHIY!iMrai-hq+oPY`OTqH@S!b^Qp_<5{ZduU6f@pOsB5n)}J``oPAD20s zSHIRnU#rva_L|t!N>DInMbHw%udz(TVrf^65~@!)Nf!L1kB}0E(h(v#Xs@FfKX(sI zHw-bkyknNOSCq03&}DQ1y&&y@IPF9A*JM8qSq%MJXy%!F1-9cN91Cw7MKC>j=J zH6t&}t(N=!PHoQTk4k~u7w=Ys!ip0(PW2M|=j`UrW}Kb<9s22;QKyM_ebVkv#NQ(? zD$0Z)p5OXQ^)r+3cc5T~Ej|ssOeTw-S$oTMM@qB8_tkAEAKvP;e4xZ=sMZxOW?inyGn*cP6W z%joS13Q*)Y1%}CBI4%87{*~(@znSeA`f$9{%^z6M|MT^myM5$=?oI zeykFLLgLbzHLJNHc*tL)CllX{qA_`~fP5}97;~2msxy@=HPH&8JQ?o$zMOhAqJMxA zTfA$vr*K5t{r7wpb9#c`B|4&8+XLW{7t;{rGzz!|?nr!h8)wn(lw^I>_`hSnbZBBtgL4%t%Sj z`q&@3GJBa>@kjZyxXj$3qM!XQX(K(@E+U{E%r*E#mKFxi)X-~{NFfC~!Y<$B0>6bbN!fqwYJQF3ecx}zII z#b4$(o-~nqxY)8b!fzf}T^!hv#wU(O%5;C!BQj+|9%P@p*&; z;+g(9D(s7-Z=hFIPA5F9VNsTZY#_~$M#bA{Ubq99i5<_zf?`XV{K)M`vB#RV;8%a} zZdC6sH?e$S!=W7yN1Na89kx44ia$crs;SNEv|GfmdY@t>9k#r?ir{<$lY{_G*QF1^ z6pGD~OEe#AH(oeO>B@6={xe0CJs{@aIUQbpB%$>0e~I3De*G}i(?NS=q);}SK-G7huac=8Oj_$w%T z8Hkc46g_xhx#3{#TvJ#macBP*N;BV)oMzXdt2eiUy+E%IzdcxZThRU~R`YJi!prHh zkGAzi+XrY7E1D0zE+6L*`Z7L#t#xl^-iJmDMe|7@OqnD0#OG>Y0T5Aa`}5Bwab}PD z%Q?g+uD$HK^lIKAN9~m#1JryJjSX8v4_4Bfg3s=fiP+@@5jy_mAICJRd(PWI`@qBJ zoAvmEndGH}i|Ka=Fv^ns_Tf4`ZnGY?b%}2&hOdq9Ji>GZC>kyqW~#Q9%@<}3Tk7hm zx0X$8`F%RKZ86y4i_MjsWq$*MlG*BGio)=9Pt6VJ{q3IiWG>opqE4L`OpegRu$6s@dZ5pfeH(pR)f|KJ~-tOxlg zIJu6yOitG1l|U^7UodUcL(q*)=3ye zt7XfAi6Pq-$yu?d2U>uANrnGx67tc};PB#HYfI zj=fPX(Le5^eif}tl>lWp5DBB%*R<-ehQWGu~aLD$WPAh+Jb+S9d_tFZh>P+z`B4w;#Td- zK%8uEKBZWob#yZ3phR4*BeGV4b+YsLm&2)MhQCJFhi%XLG6)IVt4PC-`bmQQy1p7t z$5h*t`-=X++?r-$UXTbl6#M}9fr#3}iY%ke64QJ8m6w!S7o9bp$M?hz@~%ajygzk+ z>Oue?zkia)+#Lfm9J;!@Qj^2K(Jr0&;=xGT-!sz}I)d-Bx$hG$#bhz3dChsfZen9^ zio`0+QhvmZ7yLT~RTP35=Jblj1m|4id5rK0kep7{`utgx-j~^d2AL@HA-B zMNT6-U{eEo&byvXy>8|{evT4oIFeKgl&s+S2`mCY78q_g*W{J9I-htArgA0)ObeL= z%BVZO`F`t|Z8iE05r5)_wSjs1W`(%&PE)Sl{pJKp?w8Z$iqbnvlR8x+J3gMIR=%j^ zVHj%URI42Zne30{tE*`8dz57zZ2Lv)2di#a)@npULAA8~<2T_yZNt{oWvZ0Mnz>5< zxb;wP{}&hG64<>H9b=q7#$sM@nY&5Mf|hcBuddyoN&n6wtE{816^W!7frzlhaCP5 zJ$LMfSddVJm)LkFjv*7ncA8}b{Y>ldm|i3^rr2WgrlT_}Wg`38*R{yZ)(ixBAif(A4zWw(z{lM3(Kie-D`@K%9Sxxk9q8q>R+Zc%#y@Xdl=B zg<3EbOqw}eue<^(8#t7cCIkc=iH0aB8dZfQ6Bzch!eOR=KOz<`1RP$|BlAp@F&nFf z*+^Y}Mh;vIrqRv1MOf=BFzl8P5!JsZl#Cz}6PJPU!${KJf{p><=9gb4h(%H!74k9U z(}7=`+(VH@lUE#ljBF4Wz)5j~_gtM^Ctng%o!C{UMG23(6;s;%W7)@fPd=HnuNom~ zhcpBbA2H=K1vTVSCp$fWf+2#YWNDMry>#&1L*}rqLfKeOWE;{LUD(Tk!JRshb5+um zwyEgN(%+L>e73vfrh$}ACHlIa-rjVeNZ5)ke&V`nW95Ue;On+a7{fI9tI9_=zc-Pz z(X$j$N8hj-8DRj)%18*~&!sL@y8}TLQVJ@weGdpBexzZ4eAv43joose!w68#7Z$|V zV4|H%7Y_#Xpi3eKXOVNIEFm)7uK)JEGr_7Ojc<3pbH@MmTiO^s z=8Yyexs7CE96qs+E`cku8-^DCn1V5Fvmp_oe_t|W?!E(&IM;87fKLL;%V_I!511SR zMPmv0@o@BvDYSDdG45~0i|BG!Fx)a#94(*nT~j`KB3!+r3^b0vG&Zh%Q#{ucB3m zv>Aq-9Nf}V*-O5p2knF{GAM@+dO>HQ3-2-`Zn1@fj3|5nAk9`l^KqVFLghwW6ql}T zYj4&2V*5_vk|SlBPz!!laF<+=j%7`YUuwo5R^Z&bT9w1kVb^Id#2hR4__!tF3w{D5&>u_IcBBVh>ejN_6Mf_`(?BC{ck=OA( z!G#ydj)#A&lF&ZWO@ti*zseW*F8H21J6V~QC*~fQiHwj%piY0V|E{3Xd}Zf!Z|D3( zO6bGtD_=;&ZNFp*?ACb#2$NAw2r2S zQ`Q2}x9h#9^AFb1sQ4Z^FY)}n7NTaMFHL?Bp{sZO{aJ(vVNc+$iHZ34gF30R&6joE zs=ppbUj0IH$JKUckGhft?X`SPC+_MNW(BlA()IB`A5t?C@dphNX5Bb@6^V?O6&hj4 z<-*$;Wt%&#eWJ-VvwIa zB11lE-&iwBRv7=-w3Wobmxl@`qO-0MST<@TC+4p z?4JJo)>=MyoCL-h?9C4hafX>lPkm0&7&uolSG^wIjz9Nmo$_UYNcmn7dC^EuF*H$g zT}o=gBA&A~Y^5#Q^Na7bsO`J^?}mjf^&@B3AkyBL_B>!o;*`%pMlO`;AabAd%HJ~ za2kPMoJ>)GCHH1#8W&$dPDTv9x;h=3wst?}2)wcyb?^ouNq5_Bq}~UPeU3TnlB-g{ zlA_bbc1Xb4DjJl`FV?krwNJ8aU&ZTg(LYeL25}^X?0?=9$>*QVHI~^tB5#r3hm$i9 zZ{wdq_e!xTp{~>$wAYE62QFP1n{nU3nZLj1PNO|-&}ifNJ6^GYl#fWDqB%bKR~P6g z(7j~P`^luhVH^p+!qCOQmf!DoT@@92I`+dEnPwF!!h)XSH7W@;=ytI;>&xUINrJn) z9@TjzD}WOpg1>I_=Nq9C`)%RzkXA0W7u>_ex{BkkgM0WmO_vOQ1vu$W$F10ekDjWp zt17%$3m1GZ4;ppPG+_Nf*YqU%=hjQ^k5Vk#Jn{&8@(MUmlP-BrgvcM^5TTKI=ejKu zzLq+2TD6ucU2$^oc|4Lpd9JF-;G5Z{?ZA`N&bWq(MDvpOl|xYh z`DoKU+j5UwRmaP$hZ`l*vo*$M3}zU4Q9fUW_UPjA&uqqO81l1HZ+(TnNkG4l-mYMY zhq(9#nRBd37migJ{lrw=Z=aV&G(^mcx!b<=wXeCe%s8=1*WUihd2%|e{@S<6`h+&B zt9S*AA_(XjU|(hw7yrQaDt;n>!OLx$OD;o@u+E0RmNnE+@ZnPWEQ^{P+*Vu9d)6gHFGP!hQFzFPj-mM0d3N!=t2`2A zni1spOC&-+K0|>=^Wg7|YMx)A5cnbW{Ze4K`_|s-WL85+!&k81*;DSP+>Y(C1I=Ob zjx)8}K6r@`>SjM43vDJN{LN|8Wb*H=&CXuUW3;SL#wDgB%vmWibV;_QRd-GVUR6d- zP({>)#y$K%HEIRcE@Uz%DL6`mY-sa?Nr2<`iEr>QHdhde_>=PrFM4yZCR7vfUe20L zM_0`Lx}rhb|9PC+;e)K)+^IygO5Xx=8u2}B8|l4-nX`z-wJ5sVhgp|ni5|IA6a@Vs zunn=y_*n|^k4$KA<>C%5!6Dey<=6llP=e9vcyg(Llo7Ydl@`iSwq#!%Z=sp`glm5X zr*=cDZbl%Lq&DrI$P>|)dtgu<;bk{&y!hvwUrgn#!5ZxWz9_Hy-_Ld#4VY&S*YSsP zr*~y4|JrQ(o%v|AdD|*Q)iuBeLPgbg}la?kMJd0m;7-iwj&cK zY{YHprn>;Z#kssysq=H=iyi8eCLsL2{F?1WJ+g}^NK3un4ntw3dX;-V_o?rsx?iyf zJLwe)1m~E5euC^|Lx{8CFC?>bH6~Y3AKU-O7Fc4c@W@ry@G{R4$weq%;Nw~+ey4?( zd?Bxw3g}2Y(2#{hm~U*R_X%(dxg@Ga82;BH1IBHM(UdCD%TDICKD-6Afty z+Dj^Jr!vbG7`SXrzUED7Az9sQ@*3xOFnP+DLJrHRR^dR#csA?leZdP_%LgX4!uQA- zPuTlOyJ@S!V(s*iWq~u$=>=#s$)_Ww$5D9iBQhV%*{Gj3lt$PuKXtLCKQPb)4$XsU zS<^aG`Hu2xkjAOj@%`dwn^oU%_Ru!VTd!^I8Y4fcKpT&6w8Q=G%iAo6TmO)H+v+no zjP2Q?93{wCk8Ri7-|*ZlBZo5=tivAF36Z zxM7(JY>!XB>+)S@R1Uc6zdij&i{C2Yp^jdUUzko-4)D<}eka8}Vw{T0yUWzs2cBu! z(gpE}OEhZzUxwo`>j=>o{#boo%(a+5YeK*7rY!CCHdr&;NZ!}SS2{4nKPw0DQ7qpX z2{7*lYK`oqOz4dq{@=E=Px{~eqxKb-s??L&g*(xn^vfvo1 zj#*2x&?7fE$2RQN3-gVZi!s6#-=BPC8evD3Jl1_T!~6}T%aZM76_Ud-bj>(^Wb^e= zGrh|63mnO}OMMTUSn$}p6y|0l?r6*5Z_`1K<4R^H@%q{(NYi8aQk`;jCO1xlG= zwz@Fy`W6tB5_C}ii?R?Bm>c}f)+|X1?Nj+vqNYaT@p!p$_QBsRo@9O~hRc)&oaOy`G3q|Aj=J+cpsP)W_+B|C0O0Q(S7HhE zf(-SEH47hov7}2bcI(^WJc7_^$zN9`N04*I$4?E4$q0)di0A(DyixP(MS8ERInz`I z$)w+UMdXS`R4CBG_s^iW0_*Oz8j&lzNlv7I$b(d<%;Emgy^FP80bqdpwM7sRBe-{x_K>(3+*dDfzof-bTm19#cwf zQ+3{tzMJ#l!mfar_)~Hx|MRuGG@pg*oWR**JgBv%RVIHSqZ=bLY#)2~cD|~nDG=V} zjK=mw*A0s;tJ6O%E}wlw3$&mE@kWIVimg;i!u^xp0-G<8s*cbwt2+rEe0THR6!O5# zBUWhQ+k*YU@2%hk6|Ta5#O~qkUuHRmoOeQRd^91W51WT6ELxr|_F5q_Cc?Kn5^uHb zw?Xfq)><_VV;9m7^0)q;BF}I7{AuFkwdpfhZXo8yg!CLPA2+yZrpm0EN3)5kjPvC1cSV8dse>aY#~8 zzB)r@A-SNx*dp;qXp4YIr z%rw%Nw;WV zB}$@I&$$Vq!j7b@0$W|01okO0odw=su)kRCWi~UuDTT=2C7~+gkcd=DaqmrXG?cp? zc-|se$M+74c74~!_*&szGUMR)2e(reF4ul($G9&q)qT?2PQ!dr5sQ5+mfrl$f(CE( zpw&#aU#R?JGYzJsvYx(cmPK%(beEU)lmL)Ha$TqAw&s5oota3f(K58X*pN~VlfnfS z_qRLWx5%__+0G-Qq>aJ1WCaYH8pj|6!|k{C?x**A_zwBxhMVe zxbwmL$xJ3Q7J&@U$fo%;oDMVCLN{7W(6(IIBL9p4PfKEv{nM!(><#>>$EDj&fA8xK z6XoloX65}xi+{qQ3O|{j1z_#LH;s8TNBa6TwjZaw-?*o?+R2wIRJCycbhW(4(5x0D zc^%T}@urxEB3q|XeXl)*O7!pfLP$)YBoM7a8a8oh&l3 zeO$V%qIW2HZA~0Mvi4Y+?Ln=LKwyQ67|RNLAutaXCtPXHD@DTd;Z#h8cE3*MT>l;E zLtfcD$j8=|*dARNIIk5MGH}_!1yFUJ|C4wiZt{7^r0I=HHq*DwKcx7FJ~qOg-yzQe zsC7k`Y~K!eL?~_HGfXpL*SE+Z4?$=EhZN$L?GE-lXN0-=8KBWRHok0YF`?^I`=dns z7p|r5)qosusCBzb^gxq3|H(|Z$Oc}#^CT4j_O23T#L=6_RKAI&BYi2<^>o`ogX^y5w3N*Z(`1*-OG!5%qoqI`n{U)Nt z>q4xwSg;5>h(xIG|5$bZU89)o1B;}V?X(=KEHvDC)zk5G zYSLV>iL@t$xGOUbPIWJQnyN-<^da-q-le}whXK`+*(|vVL4%H`!pR9e;YPFrL#l+o ztyAkYS#%|csBG*${r*TFWWE%u>?dyNw8=Q&RebHB*auBGH4Y0hw)|$;qfh3vGP{YX z^tTJFQi!5IZ!=3t87QcSS2J~G3_YL%AV4iKM)4Hox-keDu)SDh$&IF(Bv_>CHAmKB zH-zQCh0RBo)P4+{^tx|>gU<&Peoc4aDLT;2>EAAK1aUy2TN4E2bpb?{iWI%neXIXm zFk0@V#eJh5wDBQZm@3dzFanw7yG=)G5KLt&9?N?w=!~)*g75KZMH-YgQ)uG1on{TJ zhkAB8%}UB!Bp6)wn$RmwI{KUVO1J`S+b{>RtkFFOU)j-BBo@YV(6wV4fFD zDj!ssO-IcZ(oy9y&}?Hh1JPVRD=FEx%vW<8z=xQ%Jy1{92llJcr2WYnneOj?W)R6a z>zaCPCJI_TzlF7|;y&Y~5U4S9lKd9_CUn^15b|vN5OU5G#ipm%=yJVi!jpJgZxK#T z_{c9g)v=rw!4+e1q1l59!k7m2JzYd{pM81aK_mZrB3G~(l)XLGu#*$t9YqdC*ADwsn z4I@^14Xfu5HMW+2Nd&7C#LH@^CibA6xi#SCOUYS2nFA3H^{#<`-In8YuCFT){65C` zGMjm_uG>P!Zc;RWyeCG#I|eglu0Z`Bncy(D(y30vjump7j~Au82$Dv3U)b5QnfoZ! zCu~RZtP;`PEW*)90!o~I7Y75JxgP*J@Byzo^=#91Y(KahC>5N$?Msxb-J#bF6}8%^ z9`vXGtfpINv>rL=81AN;_44=gb6K1XY>gI>*VV&=aU_#8I&k(3Ps^2~iUH7|gFh#t z7r}>qUr)%3jcX7FXO@Ty*%n5g#~!d$Tt9xCx{9|EKnQEebmAC=A{KRxm8b!5n$)$ zk6<80Cb!*kJfL0|7e6YPOo-2=G5}w}VNyaX?S8E=IDvRpt{x|jh;ZH|{y^rIgEiE7 z@%+hpx@H3WY!?Hj>Z_?EwQMW+zC9meW!$3xLtm<~*+ATIB*f3}8s% z-HwP&u4g#H3Vz5P=JIPoK8uy>VLL0UsMY_^8iQz!n*U|qZ>)!pQD}Yo#s}=sMGzml z749Ii0WPqcrTaq*5RVb#7hPA15Q8n6-Z3bLJzKr2_vPM(MIjh%CZhP_G^zTrH69FC zOegpu-$XaGf)0MV=TET#{0fQyWG>rBlbhfGV1fkx%I1#vub!Oz@<&9b4xVDGg%5b0 zSS4Q{t-s3q91d2qxq;hfx7?7pj=g_#J?v(&2Y6OI{1MFlnryRA5kY)Mb+YZE3g7Sh z;K}S$Fc4{^hfM`RdP|HjRmd&qBKosZPag2+k=shExrVsh$|; zJPtT9GUpOO%!%J1ANQ)h=3Gn0!j!)dY3B2(2GbF=_Z0D z6ai^cB_Jh0gwRVuk~=)_^Iz+|_tU*!?ph>kCCp4tnX}K{`?n|7%*5avGaoYz4b8dR zw{-8&(9miDFX1z%fp5M!z1svnXuq(u_S1dr>*(Y9%+J-!lZGZRuQapMvrCp;cd*Cm z{hU3=T#gaLO@TRXQStkmhF|Od`mf*)*i)u-GkTwWVDl>3`cczSGDw~eEc?Bh%_dN^ zn`Af@@_zfTbhXV@*AD{cNTN1#D|`kj?CLxWJAw(}ldSrkwv5FNW!$Z+ zgsbSyTWmaid$f){V25iDWZn)5#Xo7p{NY`%4?O*87HU}&yuzPUZxHayk^z4JyokW- z6IAK&qViY)BG>Kb2dL7DLY*tu0Qt6K2vTwR=(Z!OSanHw!^ZB;vodYQkeUc6)t2!A zgRh{wjNdi`)j|Iv{%iN6M4m|qsjh?^WY9h$M?L-RF?j9tSqT>!8ey8-y4se3dF%P6 zG1oBpID`kGZqCS&CkWTNcKw`A1Z#Le_AjFIdBGC9H)=eWc_d_9t}ov>+cptjqodIL z?FUg*mT>Mh!w%nRP1$H|8$XUC`Y64%0GGhC;az4e?V~mJbir$=5^5bu$& z2aqBSEK!|I#9}8)j=mERy1Kdns6BsC(KgCDXq63ne6&1~?*;#T$jdQ=AQ7m^wr?!S z9YniwiMR(`$30FrF&K=lt|D^Kwbk}Khxz@?PvnreT&{hrZm6F53~Fn6dY94;DaB(c zsk206?FXk?ev{Iig|Wd|Qaj{|XpxnDzPUM9vwYe=tu5Fz6-$FYgxt6R{Aj~C*d@Hs(_YurQr8z|U&IDGKIl=jt0qE_}-X3?NLNJ{Ct?bl74!9!3 zo?H{&1SZAPqq*Fy-;?oWo$riuzGe3M!b;)o17lGkeltV#TY(JCJYP= zxPXx(Y2u~{m^-f@AYArU)IS4*Q@>3G8g(~h94-&! zX#n&6p`!okGM7Fp2tz9Y!3@Xc3cK9-R&X0+X|)S$3Gl*Ua62eG9d;$6wASP5-fd9& z*wpMlNJAMnVJHw zs9D9%%ve&;w%1lRhEfl3@R4S@H^wnB$~(2HhY6+@F;GvqJyVd-A+{q;i0%TkvqHS) zLJ=~2<^U3jvH}&bl^Kqw*R1*)tPy|g1tE8#1@h5H5AT6wevAq_ALSroOSHKwXUe&aNgJ$4;` z>LS0eWLBp1EY$Z@n>JRz`Y`D(-aCi6lWGA0`c>-nm+tFR%MP}U<>j(%$A!(!6jnC2 z#DUH%F(Qu53M~V(|GCu1q7L!8hAx)*h_thH&&jD7bX>*J!zC;H`j&>RdyFxTyL3yx za1(iK93Fn=N3vHZ#qNALa+!@>`Dg5^2_N~+*8Yf&j@H%nyPtMX-@#*6H<0?9MLno4 zZquD8&K9!~M|E7qxP&(iC3A!|!8x5;Z9UcJJu=Q>?j-0g|HAAYX_V&`NnAClsNSJF zRu>`G_rR$ZtBh>n-JJ~l0m(^MS8wWzlu~*wHB*kr@4lo_o5v9Ivo{t(zeJIw`U&Xg zx>+(ZO+l)$#UMxal75LzKlN%Z@VMr+k~b#he*XSr)+41}QgbmWkMMLG!7U1ZYF)Mt zETQlKk-1>iPIhwk*-6TPHv6u2VZ)co+qkG(5g@OK(emfPd!j0cUvqT8%P6s(xq*TzmpLZWt;W(@^6T5@wOjTk| z%}A>?8|E50LJ=i-ipcr!(DRlxZM^}l*6x%L>Tl$E^9jWSL2`K&NQPWKy*sp<%Ghw0 zqWOsUms&wQ=UU`dY+d`klT;Q69&#T^s zM)f;cAc8!_cFEzsf*S9Hon36YT&N!%cbyyzHMQbTQ1 zH3(N%QKESZA!@NVs$6-GKl=yT%oXJS?AykdCNeO>=$9UV9{{%D` zxk4;JmTN10n8K0`y0fMIHzo}f`Fnrd!v|f?}DYDT_3^u<0?@1L1{Uj zu@#;*gU8kAqY}GPR zdu~ibp_~}Bhu5Om!nHasX_oKYrfp^`I%}-m+ScZyF9an-RvRC#U{F+@kJN#tY@hSK zzrQ+XgE1SctZ+)vyQ&ug+2)S=^H zC-%yxmyK|0<|QmeSia+fTkG3%z-$mA+|TzoR!h%5-25Fk=CiXsVbWH(x`Su?XLR1{ zHf3$VlX8=8w6{Fd*LsIEg_(c6z=tkH`HqJV+r&PSvVNk5atN7$+1CUs;aeY&fD4ry$bmXNE7yGG)Xh^l@;Q%ZL|W z4XGe66vIPrbSl!pJUb#T1RaoV@?Q&mMDXz`h4~KB4^|^tP)FyK%SEPYzPHyxJAJX# z8Dgs$2{X>-cFOnRNSTC({4gUqZxe-VxK^DzToTNCluCD#v}?~Col z*ez>AAN;tI%$<8+`_Isq1DSXRMT>p>GK$)|H%6HzQGa6~VxmQ+A)6n1>(jsfI(Q!1 zLDwWEXg`sJ;?wtpAFoewD=oPQ$Q&z^EhEt^2askkYHMMw<@R(R3;B*cZQ#nx-@iKBAvT~DyGVdYch z>`)BuMIo_%6Hct#O+@)x?S)NYH9k!ti4Um-XHxiSeNz^(fu|nEp!zGg^glhTW+!tw zFrOMv3(7VY>)Chduddz4&LVVe<=OuEl^|+rwC#StDrxu-%5EWk?Fkr3_+i1!0JGl@ z0PdoH&-zAoRKRV;Bv+Ec}VOhCp@JL;#7$nvVHdwFS2j!3>M75-)rziEy zE#-&y`{+XQ*~t?QBi!SA-q*g}a`J@R!hqw%`I5*H0>a$5H}kbCa|#cpZ_wu@=du@p z(pLR!B!g>$tZymgo2;&_U5!Omhb}PjJ^&?*QP{i&S35gzr;xo(nBgE2W|UE<5wR&8 zvo3i#@rzZ3OWbPk$FDX)T?V3uc;ybn5I{9$MCnUP!rhG73p#{z1CkLJw6GLEJ{L zn@yCqRrvARF;Npbt?BJpyq_FD1p(g{6gF>vb0qm>PlX{8JIa`9LoG`M83P6VMUK*b-<-9Jr?G`5jP@tj?9v_;{pXTBIiF|P zJ#Nl5jk_4#&tzoCH7BgOEBVnk+jA!3Ni%dM0J_8#VbirIsdJYnC~T}IeMwegnWR_VEl-n{;lONmWq?Nd7X4hDz3kEC(CwVlJz}KKOuhC`oo~`Wd5< z;`1fp8bW<#w{DX}eDOH3NOC@_YyiWLYHHV~m%D%egtJ1&oiT}1y1BssFt3!NV)F>$ z7u{*;N8Wx|dO_QtUK{Y}N;bgJP2XzD2^rn?Bo|I%S81RZ*e{q+mNA&MwMJf2HgtQ<9sHz*`yD7AV6UYi>E;d= zpwa&R{#o@oi&fl4L|?T`=UeV<#JA2T!8teGeegSm-8-MD%lW&25~w1(Ka-Wui8)(TNfA-0rTD-E=}=pu0O~?XB^_T$PTcDUus^+YLvB9OSk+HV&q5l| zeFhL^fd5~G%P_jc$*x_!_hY5jggO}@9rO15Z}M;R^YBueI^#%VAy5u@sOfw!8M0V! zxi~s_!Z2Ufp7!d@Yy!^>L~C54#9c&~j*SLzhX;>{=t9JF zn$THvufELJmU)Z6qNpOR#`(4ybGR!JJ`I!wmyCP)Fg~+GGm&$(kFLNu!_dr+ML&W$ z?iaJ)S36?90+q`rR3XDfrXVhQE~KGT`ne}cmc9(V* zklN74I+4D2!Q3sGt2=GJme}{nx1r6tmMZ=Au_&3co4=GWBMejO^w$WZN>NVK{4-{E ztd1bW%>?_PF-_8p{}0`23VDw!%b<~Wg(se(#_{lWDxJ4xCW@^_On+_pi4~Cs9-Eq6 z6U;5ENa82aU;}qNMBT8qZgEB+3)=xu!>Y`sVRY#lO~C&T@|kc$ZShG{ZZW`F;Sv)Y zwgOxf6xXp?3Eky)NpaiMafJATRJCaEASUH6%=J_sS*Z>e3-f&V925yd+}g*+(mcN6bG_w$z>MGD$#0Pgr|yu0iE;AE z&jsedx^}EudpoOAy%VY_^NmFkz1C-J&T5-;J-$^zXUX-rQFof__M}V$+KjaKJ#q@d zx<>QzG&04FXe-rKXHLTCF>1e{7b`rU>a8X!y0+wG`Hk%(BDj&QPCVOrt}ij5PLzOx zRap!d@0;ori#^+TGuOK3+o^)?TvpVb9t%A9C>eONTS2(psE0&tsDrfo6jv!!pICt8 zoIS9}EcLg@NtY?co$yHCqJ7h1kO1wYY#3zcw!?GF~3 zDr%A#6HjH~t10e3oImvTWAr8c`%iOj9@@%SLN20AL7AwbfQ@%xGt$d)E0P7|FNllQ z=aK{K>tlXX;j=@{yct~;+$Y||DP!%q7xHXrJ(nkis{ccrlVgmQAD;Y*3<0v8(npbo z!}!olkJer-{lM+y2N@R5_4QF$LF9?e$Di${D$7I{e`QsW`zy#+yWc3w$yG zrK06vbkl8v6Rb_0f~`Y<7VptceT}{M^3>)-mjuI)TcfHV5l;Xye372nIVpZI2G!@#eg_>nNXZA{9BP#Kz(Zh+{iDyDLM@7oKT~IN~Gfr>OJmYBy9> znHnGiw+ji5)NGI4=2%M zZn7h*ejn66(2KOsKonmA?%?D5HeMx05Qc9rlvrm~I!Wqvd(aYpL5Je$kxo;eM>$g;+-V%z?iqp$li>$Q|Bvz-T|Fk z2nq!^p2HlFb*t!(v@Z*Dml)^6kmatq;-2n+9s^c`cqQFsHx&iQ(tAo-!DcQ|_zrHo zT&r}0j#+OVbh0pB*PQvi&ytQ`g11FgrubLS`O|)+wyZ{w)6_rn%(g$}2(5}uZ95vu z01LzZz2tq)Z2ltXnVEe)56Qmm0tbaPyZq{?q`6;Di@f2;m!XPQR#xV_x$+VuP#*m> z6=3k1q}n~5zaS&DB>ZGX&dSl4PJd+|-g>o$(Ov$g%ob}Eib)0;NCm60$Q!JqyD$_v zkFtHX@qP&ctp3hoXF+X(!1Ph|W_4PluVfX<< zCU0tqG)?QCT@a7XJg{;5;@h_i_6bO`zoQ=@SdE6w9rVo8rHfh3%+rU8{_FkqvE7^{ z&+?gbA@nAbMf)I?`oCBW#uyoC9Hp-LN~7pm9$-{rJ*f83h|bHFqVm!Py1Kt1-4F5pH(5f)Xl)N>cshLI zE!U$F+`C)NQ`k2q>!##-VEvpSxV<2DD@t}(n=aZD^9V-0EXE^U4lkyNYvsZxni|ki zfV}&p9|lK)H97qYea^J*X}8X<4Mxp$vGFe{_OPH7##zRa^-katR6+hUa`2s^%^@6B zAV-ag7!*sp-9R??#rs~`)Z9dG(RZ=KbIorjyqLEUAxd_iOidLz`U%2|vAg+{qQ6$S zr3Hr%-pDpc*akX~zLS1adp?US2>!?5^TivDQk;p-CkM;8pHIa&raeHqJf$B=Iyknz z>a+F_7y}CsP>1W9T8*Vg&}I)RCixPlhe3o7a0iH_no3eQbCQ7~!IIL=U5gN}kLW3^ zE@+(~Nc#wos;4j! zXv#-i^=6dV82^QipeL7gvHJ`hr!l`6J2rd7&u>Q#y2DifyU;QmunPg$s{p!5EiiY8 z`666qWqxNsHyTwv`PK#*^WId%RRDEU&%zi-S}WK3S5DuHko;98H+Nb91oA>1udc2- zD@CQZ5U*L7geuA9o4Bgy^CgQoHSbv+%DyqKxMuWJ&u0}l8K$?6MUWU}qCeV7tH959 zAi|?pDmPnOE6-^;g~;~}Iw_P^Cb{}l0gl~?$QJ=bKGRv9x!c0rmyOBv`$0KPL4UrN zdH6bDIiP}WR9RrH-+o9HtLn6jdP8eZx*fzB%xt*^E-;&#NgF-*!1T`{TY#*Z6RU%k zoQT!N>+DM}f{-nJo%_0!t?pW1M0oZ4 zxwREVK&-w^901%iy8m&{RCII2%%-0<0v$U05dry27-N+13il8?kETrqL6Ytr`doA} z`A4@NWgTb&x)qSAz@JV7`at-MygAP=$xBlMFV_qoLeCMfa{mg}JG_8kE#9vMmUa}G z-y`mFA}w)$Dc6CtA-s3vM5RUmiwJ3>q5Ns`0zkH}C?}S6O2ieNrTrge+FKzRR}?_L zrvp?007-ZPCY$Y_4OL`+aE#p2H$P<#cwcjei!(CH59|dCId@#Qr2u<VECXevQhY^$5*BJ3O9XfYFZBIrR z>*^wp=bmIZO7>JkP8&nbj_tfUtv)WHt2QA^b~lC_Z^7kq&k$$7rFS0(Xk$qXOJZ3;7Nw7XkVf3uX?TI zLa0m}L*F@036ZxtKDYJ`($*Y!At}xVGTpR396z+v5MLx@b8J=R=($2{rF0<-Ek{7j zFc+Xw+EI%-!&wKQpzg=sa0$=ZjkUj2RJ|}Iz|CsD%+|d#cSzZcN4R0> zPnVel4g`a-ys=DxjkIg&=KEW0^VZi=`19w#-VF!bg~{uZ0t%V3A0V($vos1pC28Yh zulMSNd-p8@8~RYZDkOzY_ln~GNy3Iy|03J}Ju8bs2oOb$KR1=7iN+NZZm_YF&y;mB zI;D3Za&~EZp1xYa{6(a-HLX(*x2%s&R!_9knSC5QIaGzVP{+yhRLw_~AO@7zik~)> zpX#{eLRml@4Q4pDv-TL@;#6!70oWT0(l1ZX-2JU(2e#~bQx~ip#Lp#+Gzp|A3dDhH zAWoz&N1G_cmGd9HPPuV5z9ee1reMu@Qw#pgD?GqL&!~bjgaHBjuR~bsGrc@7at^3seO zL@IuY%iM<2Q-tbbM~S*$nyAmYd?GtC*HO~~LZJ)ow%62EnE8s3ZA^JO=rJGbk=68= zd+l{bfoau}$2~&t04g5#7|j(BBh7e$Zv3OgT23I~B{VtVhAU5)7-12mT`Zl zl7LnUwwy^bw}0g?_s`^MdP}k$S)cXiu9LF=*EaR{aDQWl;eRL}P;}8dDY_*4Lf1oM zqdX9*w%~&Ey`_bf_@`NM6q%Bc4`Kyt(|Zr}Lj4;(lGZhfDkB1%`xtI>Y?XXfCi3Sv z!*+)#GxIsW?(Z^OU`4|R{nz-fHmx;}n6A+T>F>imueuM>sux)-kN;a{N#2jHS+(z? zbUfddW|4D5l_Hs3p_I&mu{TI_s7YQ&uX)wR5FN<&l=wF&9AxRFhT-(X1w#)&(;up*;2$ZLoA{mAs$cA%S12bMwNTq;V_aDm-^SL zba`|)!DT?a{L%to756@K6`A=@wbFz>lZF>!gCgS{bPYRHN@}5`|y{n>si=Y}t~6NBM8N z?UWHoW8?6!3*W+5wWE6o4R@w4x>_SHdKl4+C0Eq~EK;*xkMi2mylxFMZpBz3(d%+# zW6lK|d=pkAfy%rOd5X641d1pMe6&{$g?kop=;hBj@qTrP(oh%^6fQ*KnfI^uxrrpAE;!PJUA z%;J-QU8>h%Zh%0{S!u`G!IS)-!Ubt-B6h$>uT~b4r7-!dl?0-lxHG6?pZ015kehhW zksk<$?y4X@5J`P9R;^UbyZZkV(3T{U>7!u#nrkN4SuFZAA?vBIISh40=WgvFoyzYv81- zOZpY9KtDe2y=!;mBZxKdW5VGUJ_PTKNHVTyjI>{G%2jwyMun61hmE8#n^}na{->S^ zCks^zWZ^03-PgZkH=kxtWPuegA6s+6`KQHN;TqPQ^}TPZ?MIg|20+k*XxXKFVd7wh z8y1`jCjI>|g)MaTI9ds(tgcGJ_a~q1b~1u458=kWY?$0jp1(t}F{&1#Dfls}<_l3# zVinpas}pgI8N-S(F8YL!h6B`8i#&3~h)tSXV&xthcaEW48?V-OW8V!V;oofQETYvd zmad;ot{WG z;*FF?VNaiZ>ZQ&tBwO`&qN$|cz0@O|6yxJwsiN9J2#h>9sHBD#Ad2A(8i^p}Z#32z zo%G>@0{$NRv*))QOKaTTZx8dOIg*26sgTHOyimDl9#?JRQLcqy@U`i=A=tPmy6NB{=%D@&jpG5+D|;FJD_*|vac>K3 zS$q?R11tQqO3~>1QKnuKe1w z!yE|GZahGms%U?`qLMQY_wvv`bT9rYxz`$@s!;{b>)SJNvey1SdhmTGMF)Ldnk)w_ z;)!Um7B;wajn23dh?Pu~F%OVt7v*^CCx=T%n_ahhlSAY<8wP(|xV!!UglJA=wIlj> zf2#9!>@#hQ{n?v2+P_n?;)@%3E@YMFo4ZCTL8G3txdb0?xy9Y$6iproYPx&>jLi8%Jkf&!{fV(9f@H9 zh$8`$iS|l@R&!{jaceK{_8RHNQ}LV4iJG#>)jhf^6OFvDVp5xH@H&s7~A4bxji+_BIdEIA%J{t{N3#Ju}k8;)kXjEfvgeKlD9K6(a6s(lex!211>I=(QKv?vUPwRW#u({pc^tioK z95uhREP`zqG!tt>)^%MvdT4Vxn4h%OFr}sWsg0TC=sJk(@Zf94{o!i&Cl#6ds45+Y z_G+w$IDhD89wG=KV1@m4{85ir9&QYuZOkM#fx$4cdW)b~8k1nH!PDiPBl~3tQFYTy zoRC11yW2T=^?sVwe94Z7(TZYv{pyah_|Qh0<;82$)a}*yLHz9L)pqc$%0WSaaU8h1 z62vG9!)sO%V_3>DjOjm_{Eju2OOC>LbU`7BWx;?Jj1+qDH&(G}Tl zj&Jh~_KK@HBM8Gj;hGpVxJ)Y83z!BDNS!E!>xpu}_JPiU$ox=3(1*`ir1 zRNK+l;|=3UJA)|B2zCol0Rb#vS7hN8zKHU69Eag((JDdpYRhfnsE#PpZ}))In*VqN zXF7BhtPUwk(hD^_sEog3VMQ}W_)h6)ZFKyPU-d_T;Ut40zeaOGkN0{$AH6wO>9k)V zo4nY`H%vECZj40Lw*{!xzti^*d_v{v zP_;fEKk**F2xi()uY2V2H#mD+_@in)b3`@G=#qE_Y6@HPjrScHPNE?>P^ZLX2VV`2 zM3={Myk3Z(W`1)Hhpqt^v`x zKPxO>>o~zpda0(x`-0fmU?a#^XJYTM~5{&t%d%bF1uV`Z!9ys z!E%Qnu6ShLP#Iz%6^FOxXsa$yn=Tu%k~mxYv`k1@(+vF2!D%?Z-xTfQ&%szzE50|9 zA)LXAW~vd)HMP1vW2eHFV)Pk4d!)+Yhs4)1P@NTfn; ze}^C+s>3U~{PkPu2~ZLZ|5ov=4-aEtt1%f`ekd&d!awiPDLtRTB!#g zlQAwmh4r@+&`GO}4a`7|AM)ZtCM|Bg^N3An8=`wscnCoVfrOkLNX{SeWFE znk5qb78K7?6DiKCUzwDgETwb&Ve*wL%glR@>LsOm35YoVU3Jur0xe+{@^DlUAET_TNcCgTq#{P)l-&GsgQ;2ct zCKArDcprO*D{`xx=_N0{NZgJzl5ozLL1o!VesWjEAzjKpa!*pXQb2aIGPDpAJhDGT zsf#}LD3Y$8LeCsOzt+80t<%WJC~@OMGOfodd}>d!jOLlyArxO%DjmG7w^Qbt^Cu_8 zO+)!P383>RS0Eh)Hk*EZT)1z#L356wOI^aOMuXyk(IL`25=BR>p6(l1wN6TbVK8-2 z1;Kiw3-R*1=^@71c+7Eh0C%``Ldx6A_Z>?`SW2XPtfA`UYAJVjR+53+@?wF;A6z&hQY@l}^4AT;eSnFt;%HuCm zybJaR4eXrC0ZGT@m180-#QZY%O!e7_2~&qLLKfwx8Dqt0m(*_!0(n@&<9%-hP#%p= zQ2(s;eV6`wz*5FWH3+q#8D0ME2ug@u!;OLH)@b-0@G87_5N?16Ut!!a{QHKw&s%Y+ z72p!*y%gw8i_L(-r(q~~p1BP=MY#FOSc$Ci$x4axB&CSyFF_@6J zMlePEjS&9yg7cM&2Ac~ICku%id#ySIi)>g7%j|o+^hAOo)(Ta2fz4L>;_gX^g&B2td=Ek%sTeFBNd9^$Q$QVTG(R_RAEE_p;x_Wte%mb@U#53@lYf*G z#N=(Q^g+NN0NHE~JL!vlfq~Ze;24**jsFCDa?5P&V3wdgFA&G4ot$Pnvy^j zUVLvJm^OPLSzeClX=dsj{M6dIj53bz4Gs*v zl|?tAqLwMLlFa1AnC+8e;Qnao^keVanp&#D=lE3SH@I@`@9vIH9CQnE=b(-SU`{WD zXt(i(hxKA~+Bh^Z{ZPvKGuOk`SuNoykGT1a_d75+pWXkK*x?6rSR;2aF$an~s(fne zU+GUXubu2xnMf`Z4kD_!PCgmfAF7xV{c5y1kNAW_j9(>uhSeHyL1%!heu#Skx<@&6 zymUyPdOW{&03_Vof`hbiIE~vjtGO=nEk7TV<^BlLwv~0>`pF1XR;tk+d`-UYLqEV} zo$Md^Bl8Dwvl>xbeyEq#-@kH2PKf=#9>4U_`2iQ*qX^d582FnoJp({0qkW5r! z%9-~vM8``m>|dMNm{;*-39oGXUR6o*Gnj3!WZm0ir%Lf+36M{(vCZ8w~UA==59p{pJvD}(Q_uTiVXOfrn!QZmS- zF!1#RpKU{a$McGxl}a5`J|B%KS!ihX za8A;+fD~lBd9Yuvb@ps7nxOHtrXC(yG~!IN-zk4ETQzrWO-myTV^N=fF? z=>OEzvVS9<)>DRND$Xlo?iMWS3p*@1msoJ;bM5u==|feV*|`y18R~A+Wps1WJdqK2 zEJ#R5=zO)5h`B$Ad4$4MW@wn3hVLQz z;o>*H9KHE9@2jU($dM;mZR_&+m1$1dvvS|(&+h>_97iqvr(o8Z%(n+&Qx}~Q#|~l* zyBW1&evrLkndlh5O_Q?f!8&x2_B#z!&QidB)%e0d)7?wT zOH7r=?|?{5gMR3(un@)vEMjMq)UhOxNVcbspR@LpMXKj>BD z$;Qf}O*+M$bRk}jTI2ems;YoJDx|y&H)hAEEZa$dUxSBSpDv=`_O%?aUeekdSxx@L zB+wzJ9uS@mi`M5bp0ZD?)}K>1z1D!|32AQYndsKsbO`@nrrnQ= literal 13556 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