From 9816ad0af752658cb12cce39f33ea6d16d979b18 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sat, 11 May 2024 16:31:01 +0200 Subject: [PATCH 01/14] update signals and processes update --- code/__defines/dcs/helpers.dm | 2 +- code/_onclick/hud/action.dm | 2 +- code/controllers/mc/globals.dm | 35 +++++++-------- code/controllers/subsystem/dcs.dm | 2 +- code/datums/components/_component.dm | 32 +++++++------- code/datums/datum.dm | 18 +++----- code/modules/1713/machinery/vehicles.dm | 59 +++++++++---------------- code/processes/nanoui.dm | 2 +- 8 files changed, 65 insertions(+), 87 deletions(-) diff --git a/code/__defines/dcs/helpers.dm b/code/__defines/dcs/helpers.dm index 0716d1cb4d..70092d117b 100644 --- a/code/__defines/dcs/helpers.dm +++ b/code/__defines/dcs/helpers.dm @@ -2,7 +2,7 @@ /// The datum hosting the signal is automaticaly added as the first argument /// Returns a bitfield gathered from all registered procs /// Arguments given here are packaged in a list and given to _SendSignal -#define SEND_SIGNAL(target, sigtype, arguments...) ( !target.comp_lookup || !target.comp_lookup[sigtype] ? NONE : target._SendSignal(sigtype, list(target, ##arguments)) ) +#define SEND_SIGNAL(target, sigtype, arguments...) ( !target._listen_lookup || !target._listen_lookup[sigtype] ? NONE : target._SendSignal(sigtype, list(target, ##arguments)) ) #define SEND_GLOBAL_SIGNAL(sigtype, arguments...) ( SEND_SIGNAL(SSdcs, sigtype, ##arguments) ) diff --git a/code/_onclick/hud/action.dm b/code/_onclick/hud/action.dm index fccfde73ec..efd8e7c348 100644 --- a/code/_onclick/hud/action.dm +++ b/code/_onclick/hud/action.dm @@ -72,7 +72,7 @@ /datum/action/proc/Deactivate() return -/datum/action/Process() +/datum/action/proc/Process() return /datum/action/proc/CheckRemoval(mob/living/user) // TRUE if action is no longer valid for this mob and should be removed diff --git a/code/controllers/mc/globals.dm b/code/controllers/mc/globals.dm index 29995ca5f6..f785ee5823 100644 --- a/code/controllers/mc/globals.dm +++ b/code/controllers/mc/globals.dm @@ -14,23 +14,11 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) var/datum/controller/exclude_these = new gvars_datum_in_built_vars = exclude_these.vars + list(NAMEOF(src, gvars_datum_protected_varlist), NAMEOF(src, gvars_datum_in_built_vars), NAMEOF(src, gvars_datum_init_order)) - qdel(exclude_these) + QDEL_IN(exclude_these, 0) //signal logging isn't ready - var/global_vars = vars.len - gvars_datum_in_built_vars.len - var/global_procs = length(typesof(/datum/controller/global_vars/proc)) + log_world("[vars.len - gvars_datum_in_built_vars.len] global variables") - report_progress("[global_vars] global variables") - report_progress("[global_procs] global init procs") - - try - if(global_vars == global_procs) - Initialize() - else - crash_with("Expected [global_vars] global init procs, were [global_procs].") - catch(var/exception/e) - to_world_log("Vars to be initialized: [json_encode((vars - gvars_datum_in_built_vars))]") - to_world_log("Procs used to initialize: [json_encode(typesof(/datum/controller/global_vars/proc))]") - throw e + Initialize() /datum/controller/global_vars/Destroy(force) // This is done to prevent an exploit where admins can get around protected vars @@ -44,9 +32,18 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) /datum/controller/global_vars/Initialize() gvars_datum_init_order = list() gvars_datum_protected_varlist = list(NAMEOF(src, gvars_datum_protected_varlist) = TRUE) - - for(var/I in typesof(/datum/controller/global_vars/proc)) + var/list/global_procs = typesof(/datum/controller/global_vars/proc) + var/expected_len = vars.len - gvars_datum_in_built_vars.len + if(global_procs.len != expected_len) + warning("Unable to detect all global initialization procs! Expected [expected_len] got [global_procs.len]!") + if(global_procs.len) + var/list/expected_global_procs = vars - gvars_datum_in_built_vars + for(var/I in global_procs) + expected_global_procs -= replacetext("[I]", "InitGlobal", "") + log_world("Missing procs: [expected_global_procs.Join(", ")]") + for(var/I in global_procs) var/start_tick = world.time call(src, I)() - if(world.time - start_tick) - warning("[I] slept during initialization!") + var/end_tick = world.time + if(end_tick - start_tick) + warning("Global [replacetext("[I]", "InitGlobal", "")] slept during initialization!") diff --git a/code/controllers/subsystem/dcs.dm b/code/controllers/subsystem/dcs.dm index b1e6e55654..9356948d51 100644 --- a/code/controllers/subsystem/dcs.dm +++ b/code/controllers/subsystem/dcs.dm @@ -6,7 +6,7 @@ PROCESSING_SUBSYSTEM_DEF(dcs) var/list/elements_by_type = list() /datum/controller/subsystem/processing/dcs/Recover() - comp_lookup = SSdcs.comp_lookup + _listen_lookup = SSdcs._listen_lookup /datum/controller/subsystem/processing/dcs/proc/GetElement(list/arguments) var/datum/element/eletype = arguments[1] diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index c11efa6167..cc2fe54f22 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -174,13 +174,13 @@ /datum/proc/RegisterSignal(datum/target, sig_type_or_types, proctype, override = FALSE) if(QDELETED(src) || QDELETED(target)) return - var/list/procs = signal_procs + var/list/procs = (_signal_procs ||= list()) if(!procs) - signal_procs = procs = list() + _signal_procs = procs = list() var/list/target_procs = procs[target] || (procs[target] = list()) - var/list/lookup = target.comp_lookup + var/list/lookup = target._listen_lookup if(!lookup) - target.comp_lookup = lookup = list() + target._listen_lookup = lookup = list() for(var/sig_type in (islist(sig_type_or_types) ? sig_type_or_types : list(sig_type_or_types))) if(!override && target_procs[sig_type]) @@ -210,37 +210,37 @@ * * sig_typeor_types Signal string key or list of signal keys to stop listening to specifically */ /datum/proc/UnregisterSignal(datum/target, sig_type_or_types) - var/list/lookup = target.comp_lookup - if(!signal_procs || !signal_procs[target] || !lookup) + var/list/lookup = target._listen_lookup + if(!_signal_procs || !_signal_procs[target] || !lookup) return if(!islist(sig_type_or_types)) sig_type_or_types = list(sig_type_or_types) for(var/sig in sig_type_or_types) - if(!signal_procs[target][sig]) + if(!_signal_procs[target][sig]) continue switch(length_char(lookup[sig])) if(2) lookup[sig] = (lookup[sig]-src)[1] if(1) - stack_trace("[target] ([target.type]) somehow has single length list inside comp_lookup") + stack_trace("[target] ([target.type]) somehow has single length list inside _listen_lookup") if(src in lookup[sig]) lookup -= sig if(!length_char(lookup)) - target.comp_lookup = null + target._listen_lookup = null break if(0) if(lookup[sig] != src) continue lookup -= sig if(!length_char(lookup)) - target.comp_lookup = null + target._listen_lookup = null break else lookup[sig] -= src - signal_procs[target] -= sig_type_or_types - if(!signal_procs[target].len) - signal_procs -= target + _signal_procs[target] -= sig_type_or_types + if(!_signal_procs[target].len) + _signal_procs -= target /** * Called on a component when a component of the same type was added to the same parent @@ -304,13 +304,13 @@ * Use the [SEND_SIGNAL] define instead */ /datum/proc/_SendSignal(sigtype, list/arguments) - var/target = comp_lookup[sigtype] + var/target = _listen_lookup[sigtype] if(!length_char(target)) var/datum/listening_datum = target - return NONE | CallAsync(listening_datum, listening_datum.signal_procs[src][sigtype], arguments) + return NONE | CallAsync(listening_datum, listening_datum._signal_procs[src][sigtype], arguments) . = NONE for(var/datum/listening_datum as anything in target) - . |= CallAsync(listening_datum, listening_datum.signal_procs[src][sigtype], arguments) + . |= CallAsync(listening_datum, listening_datum._signal_procs[src][sigtype], arguments) // The type arg is casted so initial works, you shouldn't be passing a real instance into this /** diff --git a/code/datums/datum.dm b/code/datums/datum.dm index ae5af9d0e5..39c6116da3 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -36,9 +36,9 @@ * * Lazy associated list in the structure of `signal:registree/list of registrees` */ - var/list/comp_lookup - /// Lazy associated list in the structure of `signals:proctype` that are run when the datum receives that signal - var/list/list/datum/callback/signal_procs + var/list/_listen_lookup + /// Lazy associated list in the structure of `target -> list(signal -> proctype)` that are run when the datum receives that signal + var/list/list/_signal_procs /// Datum level flags var/datum_flags = NONE @@ -125,12 +125,8 @@ //END: ECS SHIT return QDEL_HINT_QUEUE -/datum/proc/Process() - set waitfor = 0 - return PROCESS_KILL - /datum/proc/clear_signal_refs() - var/list/lookup = comp_lookup + var/list/lookup = _listen_lookup if(lookup) for(var/sig in lookup) var/list/comps = lookup[sig] @@ -140,10 +136,10 @@ else var/datum/component/comp = comps comp.UnregisterSignal(src, sig) - comp_lookup = lookup = null + _listen_lookup = lookup = null - for(var/target in signal_procs) - UnregisterSignal(target, signal_procs[target]) + for(var/target in _signal_procs) + UnregisterSignal(target, _signal_procs[target]) #ifdef DATUMVAR_DEBUGGING_MODE /datum/proc/save_vars() diff --git a/code/modules/1713/machinery/vehicles.dm b/code/modules/1713/machinery/vehicles.dm index 9faed648cb..6cf7720a64 100644 --- a/code/modules/1713/machinery/vehicles.dm +++ b/code/modules/1713/machinery/vehicles.dm @@ -1030,50 +1030,35 @@ opacity = FALSE density = FALSE +/obj/item/tank_system/New() + ..() + processing_objects += src + +/obj/item/tank_system/Del() + processing_objects -= src + ..() + /obj/item/tank_system/ecms name = "ECMS" desc = "An Electromagnetic Counter-Mine System." - New() - ..() - spawn(5) - explode_mines() - -/obj/item/tank_system/ecms/proc/explode_mines() - if (src) - for (var/obj/item/mine/M in range(5, src)) - if (M.anchored) - M.trigger(src) - for (var/mob/O in viewers(7, get_turf(src))) - to_chat(O, SPAN_DANGER("\The [src] explodes the [M]!")) - sleep(6 SECONDS) - explode_mines() - else return + +/obj/item/tank_system/ecms/process() + for (var/obj/item/mine/M in range(5, src)) + if (M.anchored) + M.trigger(src) + for (var/mob/O in viewers(7, get_turf(src))) + to_chat(O, SPAN_DANGER("\The [src] explodes the [M]!")) /obj/item/tank_system/aps name = "Active Protection System" desc = "A hard-kill active protection system for defense against Rocket-Propelled Grenades and Anti-Tank Guided Missiles." - var/uses = 12 - New() - ..() - spawn(5) - explode_missiles() - -/obj/item/tank_system/aps/proc/explode_missiles() - if (src) - if (uses > 0) - for (var/obj/item/projectile/shell/missile/M in range(6, src)) - if (M) - M.initiate(get_turf(M)) - --uses - for (var/mob/O in viewers(7, get_turf(src))) - to_chat(O, SPAN_DANGER("\The [src] explodes the rocket!")) - sleep(1 SECONDS) - explode_missiles() - else return - -/obj/item/tank_system/aps/examine(mob/user) - ..() - to_chat(user, SPAN_NOTICE("It has [uses] uses left.")) + +/obj/item/tank_system/aps/process() + for (var/obj/item/projectile/shell/missile/M in range(6, src)) + if (M) + M.initiate(get_turf(M)) + for (var/mob/O in viewers(7, get_turf(src))) + to_chat(O, SPAN_DANGER("\The [src] explodes the rocket!")) /obj/item/tank_system/aps/ironfist name = "Iron Fist APS" \ No newline at end of file diff --git a/code/processes/nanoui.dm b/code/processes/nanoui.dm index a7549f87ef..952ecec733 100644 --- a/code/processes/nanoui.dm +++ b/code/processes/nanoui.dm @@ -12,7 +12,7 @@ try // runtime prevention if (NUI.state && NUI.user) - NUI.Process() + NUI.process() catch(var/exception/e) catchException(e, NUI) else From 217ec6fad5cd7d0f9f1a51d2708d0a797e0287c0 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sat, 11 May 2024 16:31:09 +0200 Subject: [PATCH 02/14] Follow reds and blues --- code/game/mob/observer/ghost/ghost.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/mob/observer/ghost/ghost.dm b/code/game/mob/observer/ghost/ghost.dm index da5919b394..c48af422b2 100644 --- a/code/game/mob/observer/ghost/ghost.dm +++ b/code/game/mob/observer/ghost/ghost.dm @@ -375,8 +375,8 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images /mob/observer/ghost/verb/follow_bluefaction(input in getfitmobs(BLUEFACTION)+"Cancel") set category = "Ghost" - set name = "Follow a Bluefaction" - set desc = "Follow and haunt a living Bluefaction." + set name = "Follow a Blugoslavian" + set desc = "Follow and haunt a living Blugoslavian." if (input != "Cancel") var/list/mobs = getfitmobs(BLUEFACTION) if (mobs[input]) @@ -384,8 +384,8 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images /mob/observer/ghost/verb/follow_redfaction(input in getfitmobs(REDFACTION)+"Cancel") set category = "Ghost" - set name = "Follow a Redfaction" - set desc = "Follow and haunt a living Redfaction." + set name = "Follow a Redmenian" + set desc = "Follow and haunt a living Redmenian." if (input != "Cancel") var/list/mobs = getfitmobs(REDFACTION) if (mobs[input]) From 532cdbd15d3e6b47b2df1275299119e4750addd6 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 13:52:31 +0200 Subject: [PATCH 03/14] Remove [1] --- code/game/objects/map_metadata/eft_factory.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/map_metadata/eft_factory.dm b/code/game/objects/map_metadata/eft_factory.dm index e1059de921..3885c4b81f 100644 --- a/code/game/objects/map_metadata/eft_factory.dm +++ b/code/game/objects/map_metadata/eft_factory.dm @@ -106,7 +106,7 @@ /obj/map_metadata/eft_factory/proc/show_extractees() if (extractees.len) to_chat(world, "Extracted:") - to_chat(world, "[jointext(extractees[1],"\n")]") + to_chat(world, "[jointext(extractees,"\n")]") spawn(1 MINUTE) show_extractees() From 5fef72ad65f8b12f07a70f2a26f4959045fe601e Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 13:53:19 +0200 Subject: [PATCH 04/14] nvm --- code/game/objects/map_metadata/eft_factory.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/map_metadata/eft_factory.dm b/code/game/objects/map_metadata/eft_factory.dm index 3885c4b81f..e1059de921 100644 --- a/code/game/objects/map_metadata/eft_factory.dm +++ b/code/game/objects/map_metadata/eft_factory.dm @@ -106,7 +106,7 @@ /obj/map_metadata/eft_factory/proc/show_extractees() if (extractees.len) to_chat(world, "Extracted:") - to_chat(world, "[jointext(extractees,"\n")]") + to_chat(world, "[jointext(extractees[1],"\n")]") spawn(1 MINUTE) show_extractees() From c8978b24cacff0062a667e6fb781b0038115e52e Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 13:53:32 +0200 Subject: [PATCH 05/14] Campaign map metadata --- code/game/objects/map_metadata/campaign.dm | 53 +++++++++++------ code/modules/1713/apparel_campaign.dm | 67 ++++++++++++---------- 2 files changed, 72 insertions(+), 48 deletions(-) diff --git a/code/game/objects/map_metadata/campaign.dm b/code/game/objects/map_metadata/campaign.dm index ab6024ce13..4dde81aed2 100644 --- a/code/game/objects/map_metadata/campaign.dm +++ b/code/game/objects/map_metadata/campaign.dm @@ -8,6 +8,7 @@ no_winner = "The battle is going on." victory_time = 60 MINUTES grace_wall_timer = 20 MINUTES + can_spawn_on_base_capture = FALSE faction_organization = list( REDFACTION, BLUEFACTION) @@ -19,7 +20,7 @@ age = "2024" ordinal_age = 8 faction_distribution_coeffs = list(REDFACTION = 0.5, BLUEFACTION = 0.5) - battle_name = "battle of Dewsbury Village" + battle_name = "battle of the Tanburr defensive line" mission_start_message = "20 minutes until the battle begins." faction1 = REDFACTION faction2 = BLUEFACTION @@ -114,15 +115,15 @@ /obj/map_metadata/campaign/short_win_time(faction) if (!(alive_n_of_side(faction1)) || !(alive_n_of_side(faction2))) - return 1 MINUTES + return 2 MINUTES else - return 3 MINUTES + return 5 MINUTES /obj/map_metadata/campaign/long_win_time(faction) if (!(alive_n_of_side(faction1)) || !(alive_n_of_side(faction2))) return 2 MINUTES else - return 5 MINUTES + return 7 MINUTES /obj/map_metadata/campaign/proc/civ_collector() var/ctb = 0 @@ -392,22 +393,26 @@ var/no_loop_ca = FALSE return FALSE get_faction1_captured_equipment() get_faction2_captured_equipment() + ticker.finished = TRUE - var/message = "The Redmenians are victorious [battle_name ? "in the [battle_name]" : "the battle"]! The Blugoslavians halted the attack!" - world << SPAN_NOTICE("[message]") - world << "Civilians Killed: Blugoslavia [civilians_killed["Blugoslavia"]], Redmenia [civilians_killed["Redmenia"]]" + var/message = "The Blugoslavians are victorious [battle_name ? "in the [battle_name]" : "the battle"]! The Redmenians halted the attack!" + to_chat(world, SPAN_NOTICE("[message]")) + + to_chat(world, "Civilians Killed: Blugoslavia [civilians_killed["Blugoslavia"]], Redmenia [civilians_killed["Redmenia"]]") show_global_battle_report(null) win_condition_spam_check = TRUE return FALSE if ((current_winner && current_loser && world.time > next_win) && no_loop_ca == FALSE) get_faction1_captured_equipment() get_faction2_captured_equipment() + ticker.finished = TRUE var/message = "The [battle_name ? battle_name : "battle"] has ended in a stalemate!" if (current_winner && current_loser) - message = "The Blugoslavians are victorious [battle_name ? "in the [battle_name]" : "the battle"]!" - world << SPAN_NOTICE("[message]") - world << "Civilians Killed: Blugoslavia [civilians_killed["Blugoslavia"]], Redmenia [civilians_killed["Redmenia"]]" + message = "The Redmenians are victorious [battle_name ? "in the [battle_name]" : "the battle"]!" + to_chat(world, SPAN_NOTICE("[message]")) + + to_chat(world, "Civilians Killed: Blugoslavia [civilians_killed["Blugoslavia"]], Redmenia [civilians_killed["Redmenia"]]") show_global_battle_report(null) win_condition_spam_check = TRUE no_loop_ca = TRUE @@ -416,8 +421,8 @@ var/no_loop_ca = FALSE else if (win_condition.check(typesof(roundend_condition_sides[roundend_condition_sides[2]]), roundend_condition_sides[1], roundend_condition_sides[2], 1.33, TRUE)) if (!win_condition.check(typesof(roundend_condition_sides[roundend_condition_sides[1]]), roundend_condition_sides[2], roundend_condition_sides[1], 1.33)) if (last_win_condition != win_condition.hash) - current_win_condition = "The Blugoslavians have captured the objective! They will win in {time} minutes." - next_win = world.time + short_win_time(BLUEFACTION) + current_win_condition = "The Redmenians have captured the objective! They will win in {time} minutes." + next_win = world.time + short_win_time(REDFACTION) announce_current_win_condition() current_winner = roundend_condition_def2army(roundend_condition_sides[1][1]) current_loser = roundend_condition_def2army(roundend_condition_sides[2][1]) @@ -425,8 +430,8 @@ var/no_loop_ca = FALSE else if (win_condition.check(typesof(roundend_condition_sides[roundend_condition_sides[2]]), roundend_condition_sides[1], roundend_condition_sides[2], 1.01, TRUE)) if (!win_condition.check(typesof(roundend_condition_sides[roundend_condition_sides[1]]), roundend_condition_sides[2], roundend_condition_sides[1], 1.01)) if (last_win_condition != win_condition.hash) - current_win_condition = "The Blugoslavians have captured the objective! They will win in {time} minutes." - next_win = world.time + short_win_time(BLUEFACTION) + current_win_condition = "The Redmenians have captured the objective! They will win in {time} minutes." + next_win = world.time + short_win_time(REDFACTION) announce_current_win_condition() current_winner = roundend_condition_def2army(roundend_condition_sides[1][1]) current_loser = roundend_condition_def2army(roundend_condition_sides[2][1]) @@ -434,8 +439,8 @@ var/no_loop_ca = FALSE else if (win_condition.check(typesof(roundend_condition_sides[roundend_condition_sides[1]]), roundend_condition_sides[2], roundend_condition_sides[1], 1.33, TRUE)) if (!win_condition.check(typesof(roundend_condition_sides[roundend_condition_sides[2]]), roundend_condition_sides[1], roundend_condition_sides[2], 1.33)) if (last_win_condition != win_condition.hash) - current_win_condition = "The Blugoslavians have captured the objective! They will win in {time} minutes." - next_win = world.time + short_win_time(BLUEFACTION) + current_win_condition = "The Redmenians have captured the objective! They will win in {time} minutes." + next_win = world.time + short_win_time(REDFACTION) announce_current_win_condition() current_winner = roundend_condition_def2army(roundend_condition_sides[2][1]) current_loser = roundend_condition_def2army(roundend_condition_sides[1][1]) @@ -443,14 +448,14 @@ var/no_loop_ca = FALSE else if (win_condition.check(typesof(roundend_condition_sides[roundend_condition_sides[1]]), roundend_condition_sides[2], roundend_condition_sides[1], 1.01, TRUE)) if (!win_condition.check(typesof(roundend_condition_sides[roundend_condition_sides[2]]), roundend_condition_sides[1], roundend_condition_sides[2], 1.01)) if (last_win_condition != win_condition.hash) - current_win_condition = "The Blugoslavians have captured the objective! They will win in {time} minutes." - next_win = world.time + short_win_time(BLUEFACTION) + current_win_condition = "The Redmenians have captured the objective! They will win in {time} minutes." + next_win = world.time + short_win_time(REDFACTION) announce_current_win_condition() current_winner = roundend_condition_def2army(roundend_condition_sides[2][1]) current_loser = roundend_condition_def2army(roundend_condition_sides[1][1]) else if (current_win_condition != no_winner && current_winner && current_loser) - world << "The Redmenians have recaptured control over the objective!" + world << "The Blugoslavians have retaken control over the objective!" current_winner = null current_loser = null next_win = -1 @@ -533,11 +538,21 @@ var/no_loop_ca = FALSE for(var/obj/item/I in get_area_all_atoms(/area/caribbean/captured_equipment/faction1)) if(capturable_equipment.Find(I)) captured_equipment_red += I.name + to_chat(world, "Captured equipment Redmenia:") + if(captured_equipment_red.len) + to_chat(world, "[jointext(captured_equipment_red,"\n")]") + else + to_chat(world, "No equipment was captured.") /obj/map_metadata/campaign/proc/get_faction2_captured_equipment() for(var/obj/item/I in get_area_all_atoms(/area/caribbean/captured_equipment/faction2)) if(capturable_equipment.Find(I)) captured_equipment_blue += I.name + to_chat(world, "Captured equipment Blugoslavia:") + if(captured_equipment_blue.len) + to_chat(world, "[jointext(captured_equipment_blue,"\n")]") + else + to_chat(world, "No equipment was captured.") ///////////Map Specific Objects/////////// /obj/structure/altar/heads diff --git a/code/modules/1713/apparel_campaign.dm b/code/modules/1713/apparel_campaign.dm index 664933e142..c65f263592 100644 --- a/code/modules/1713/apparel_campaign.dm +++ b/code/modules/1713/apparel_campaign.dm @@ -13,30 +13,32 @@ ///////////////////// Pouches /////////////////////// -/obj/item/weapon/storage/belt/smallpouches/red +///////////// BLUE + +/obj/item/weapon/storage/belt/smallpouches/blue icon_state = "smallpouches_green" item_state = "smallpouches_green" -/obj/item/weapon/storage/belt/smallpouches/red/full +/obj/item/weapon/storage/belt/smallpouches/blue/full New() ..() new /obj/item/clothing/mask/gas/swat_new(src) new /obj/item/stack/medical/bruise_pack/gauze(src) - new /obj/item/ammo_magazine/hk(src) + new /obj/item/ammo_magazine/ak47(src) new /obj/item/weapon/attachment/bayonet(src) -/obj/item/weapon/storage/belt/smallpouches/red/white +/obj/item/weapon/storage/belt/smallpouches/blue/white icon_state = "smallpouches_white" item_state = "smallpouches_white" -/obj/item/weapon/storage/belt/smallpouches/red/white/full +/obj/item/weapon/storage/belt/smallpouches/blue/white/full New() ..() new /obj/item/clothing/mask/gas/swat_new(src) new /obj/item/stack/medical/bruise_pack/gauze(src) - new /obj/item/ammo_magazine/hk(src) + new /obj/item/ammo_magazine/ak47(src) new /obj/item/weapon/attachment/bayonet(src) -/obj/item/weapon/storage/belt/smallpouches/red/recon +/obj/item/weapon/storage/belt/smallpouches/blue/recon New() ..() new /obj/item/clothing/mask/gas/swat_new(src) @@ -44,7 +46,7 @@ new /obj/item/ammo_magazine/mosin(src) new /obj/item/ammo_magazine/mosin(src) -/obj/item/weapon/storage/belt/smallpouches/red/white/recon +/obj/item/weapon/storage/belt/smallpouches/blue/white/recon New() ..() new /obj/item/clothing/mask/gas/swat_new(src) @@ -52,7 +54,7 @@ new /obj/item/ammo_magazine/mosin(src) new /obj/item/ammo_magazine/mosin(src) -/obj/item/weapon/storage/belt/smallpouches/red/marksman +/obj/item/weapon/storage/belt/smallpouches/blue/marksman New() ..() new /obj/item/clothing/mask/gas/swat_new(src) @@ -60,7 +62,7 @@ new /obj/item/ammo_magazine/svd(src) new /obj/item/ammo_magazine/svd(src) -/obj/item/weapon/storage/belt/smallpouches/red/white/marksman +/obj/item/weapon/storage/belt/smallpouches/blue/white/marksman New() ..() new /obj/item/clothing/mask/gas/swat_new(src) @@ -68,51 +70,52 @@ new /obj/item/ammo_magazine/svd(src) new /obj/item/ammo_magazine/svd(src) - -/obj/item/weapon/storage/belt/largepouches/red +/obj/item/weapon/storage/belt/largepouches/blue icon_state = "largepouches" item_state = "largepouches" -/obj/item/weapon/storage/belt/largepouches/red/mg +/obj/item/weapon/storage/belt/largepouches/blue/mg New() ..() new /obj/item/ammo_magazine/dp(src) new /obj/item/ammo_magazine/dp(src) -/obj/item/weapon/storage/belt/largepouches/red/white +/obj/item/weapon/storage/belt/largepouches/blue/white icon_state = "largepouches_white" item_state = "largepouches_white" -/obj/item/weapon/storage/belt/largepouches/red/white/mg +/obj/item/weapon/storage/belt/largepouches/blue/white/mg New() ..() new /obj/item/ammo_magazine/dp(src) new /obj/item/ammo_magazine/dp(src) -/obj/item/weapon/storage/belt/smallpouches/blue +///////////// RED + +/obj/item/weapon/storage/belt/smallpouches/red icon_state = "smallpouches_green" item_state = "smallpouches_green" -/obj/item/weapon/storage/belt/smallpouches/blue/full +/obj/item/weapon/storage/belt/smallpouches/red/full New() ..() new /obj/item/clothing/mask/gas/swat_new(src) new /obj/item/stack/medical/bruise_pack/gauze(src) - new /obj/item/ammo_magazine/ak47(src) + new /obj/item/ammo_magazine/hk(src) new /obj/item/weapon/attachment/bayonet(src) -/obj/item/weapon/storage/belt/smallpouches/blue/white +/obj/item/weapon/storage/belt/smallpouches/red/white icon_state = "smallpouches_white" item_state = "smallpouches_white" -/obj/item/weapon/storage/belt/smallpouches/blue/white/full +/obj/item/weapon/storage/belt/smallpouches/red/white/full New() ..() new /obj/item/clothing/mask/gas/swat_new(src) new /obj/item/stack/medical/bruise_pack/gauze(src) - new /obj/item/ammo_magazine/ak47(src) + new /obj/item/ammo_magazine/hk(src) new /obj/item/weapon/attachment/bayonet(src) -/obj/item/weapon/storage/belt/smallpouches/blue/recon +/obj/item/weapon/storage/belt/smallpouches/red/recon New() ..() new /obj/item/clothing/mask/gas/swat_new(src) @@ -120,7 +123,7 @@ new /obj/item/ammo_magazine/mosin(src) new /obj/item/ammo_magazine/mosin(src) -/obj/item/weapon/storage/belt/smallpouches/blue/white/recon +/obj/item/weapon/storage/belt/smallpouches/red/white/recon New() ..() new /obj/item/clothing/mask/gas/swat_new(src) @@ -128,7 +131,7 @@ new /obj/item/ammo_magazine/mosin(src) new /obj/item/ammo_magazine/mosin(src) -/obj/item/weapon/storage/belt/smallpouches/blue/marksman +/obj/item/weapon/storage/belt/smallpouches/red/marksman New() ..() new /obj/item/clothing/mask/gas/swat_new(src) @@ -136,7 +139,7 @@ new /obj/item/ammo_magazine/svd(src) new /obj/item/ammo_magazine/svd(src) -/obj/item/weapon/storage/belt/smallpouches/blue/white/marksman +/obj/item/weapon/storage/belt/smallpouches/red/white/marksman New() ..() new /obj/item/clothing/mask/gas/swat_new(src) @@ -144,21 +147,22 @@ new /obj/item/ammo_magazine/svd(src) new /obj/item/ammo_magazine/svd(src) -/obj/item/weapon/storage/belt/largepouches/blue + +/obj/item/weapon/storage/belt/largepouches/red icon_state = "largepouches" item_state = "largepouches" -/obj/item/weapon/storage/belt/largepouches/blue/mg +/obj/item/weapon/storage/belt/largepouches/red/mg New() ..() new /obj/item/ammo_magazine/dp(src) new /obj/item/ammo_magazine/dp(src) -/obj/item/weapon/storage/belt/largepouches/blue/white +/obj/item/weapon/storage/belt/largepouches/red/white icon_state = "largepouches_white" item_state = "largepouches_white" -/obj/item/weapon/storage/belt/largepouches/blue/white/mg +/obj/item/weapon/storage/belt/largepouches/red/white/mg New() ..() new /obj/item/ammo_magazine/dp(src) @@ -167,6 +171,8 @@ ///////////////////// Webbings /////////////////////// +///////////// BLUE + /obj/item/clothing/accessory/storage/webbing/green_webbing/blue name = "Blugoslavian green chest webbing" desc = "A green chest-level webbing, with three medium sized pouches." @@ -217,6 +223,9 @@ for (var/i=1, i<= 3, i++) new /obj/item/ammo_magazine/emptymagazine/rifle/ak47/filled(hold) + +///////////// RED + /obj/item/clothing/accessory/storage/webbing/green_webbing/red name = "Redmenian green chest webbing" desc = "A green chest-level webbing, with three medium sized pouches." From e22c83d6bad23638f4c94c0a192b10df83845c01 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 14:38:13 +0200 Subject: [PATCH 06/14] Fix shit and piss --- code/game/mob/living/carbon/human/death.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/mob/living/carbon/human/death.dm b/code/game/mob/living/carbon/human/death.dm index 938fbb3c24..89fa5e9802 100644 --- a/code/game/mob/living/carbon/human/death.dm +++ b/code/game/mob/living/carbon/human/death.dm @@ -441,8 +441,9 @@ . = ..(gibbed)//,species.death_message) if (!gibbed) handle_organs() // Handle the following only after we call the parent to get all the proper stat values and etcetra. - handle_piss() - handle_shit() + if (map.civilizations) + handle_piss() + handle_shit() if (species.death_sound) playsound(loc, species.death_sound, 80, TRUE, TRUE) handle_hud_list() From 31ee9a26b14f7078319e29907a3256fe88127eae Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 14:38:24 +0200 Subject: [PATCH 07/14] SPAN_BLUE --- code/_macros.dm | 1 + code/game/objects/map_metadata/campaign.dm | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/_macros.dm b/code/_macros.dm index 1da62c64e1..05f1180d80 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -166,6 +166,7 @@ Get the ultimate area of `A`, similarly to [get_turf]. #define SPAN_WARNING(X) SPAN("warning", X) #define SPAN_DANGER(X) SPAN("danger", X) #define SPAN_RED(X) SPAN("red", X) +#define SPAN_BLUE(X) SPAN("blue", X) #define SPAN_GREEN(X) SPAN("green", X) #define SPAN_GREEN_BOLD(X) SPAN("green_bold", X) #define SPAN_ALERT(X) SPAN("alert", X) diff --git a/code/game/objects/map_metadata/campaign.dm b/code/game/objects/map_metadata/campaign.dm index 4dde81aed2..c795a82b7a 100644 --- a/code/game/objects/map_metadata/campaign.dm +++ b/code/game/objects/map_metadata/campaign.dm @@ -395,7 +395,7 @@ var/no_loop_ca = FALSE get_faction2_captured_equipment() ticker.finished = TRUE - var/message = "The Blugoslavians are victorious [battle_name ? "in the [battle_name]" : "the battle"]! The Redmenians halted the attack!" + var/message = SPAN_BLUE("The Blugoslavians are victorious [battle_name ? "in the [battle_name]" : "the battle"]! The Redmenians halted the attack!") to_chat(world, SPAN_NOTICE("[message]")) to_chat(world, "Civilians Killed: Blugoslavia [civilians_killed["Blugoslavia"]], Redmenia [civilians_killed["Redmenia"]]") @@ -409,7 +409,7 @@ var/no_loop_ca = FALSE ticker.finished = TRUE var/message = "The [battle_name ? battle_name : "battle"] has ended in a stalemate!" if (current_winner && current_loser) - message = "The Redmenians are victorious [battle_name ? "in the [battle_name]" : "the battle"]!" + message = SPAN_RED("The Redmenians are victorious [battle_name ? "in the [battle_name]" : "the battle"]!") to_chat(world, SPAN_NOTICE("[message]")) to_chat(world, "Civilians Killed: Blugoslavia [civilians_killed["Blugoslavia"]], Redmenia [civilians_killed["Redmenia"]]") From a8c97f9cf669df2d9521ba87340821b75ada0141 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 14:38:34 +0200 Subject: [PATCH 08/14] apparel updates --- code/modules/1713/apparel_campaign.dm | 12 ++++++------ code/modules/1713/jobs/campaign/bluefaction.dm | 6 +++--- code/modules/1713/jobs/campaign/redfaction.dm | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/code/modules/1713/apparel_campaign.dm b/code/modules/1713/apparel_campaign.dm index c65f263592..5d953a9b18 100644 --- a/code/modules/1713/apparel_campaign.dm +++ b/code/modules/1713/apparel_campaign.dm @@ -71,8 +71,8 @@ new /obj/item/ammo_magazine/svd(src) /obj/item/weapon/storage/belt/largepouches/blue - icon_state = "largepouches" - item_state = "largepouches" + icon_state = "largepouches_green" + item_state = "largepouches_green" /obj/item/weapon/storage/belt/largepouches/blue/mg New() @@ -149,8 +149,8 @@ /obj/item/weapon/storage/belt/largepouches/red - icon_state = "largepouches" - item_state = "largepouches" + icon_state = "largepouches_green" + item_state = "largepouches_green" /obj/item/weapon/storage/belt/largepouches/red/mg New() @@ -177,8 +177,8 @@ name = "Blugoslavian green chest webbing" desc = "A green chest-level webbing, with three medium sized pouches." slots = 3 - icon_state = "green_webbing" - item_state = "green_webbing" + icon_state = "russian_vest" + item_state = "russian_vest" /obj/item/clothing/accessory/storage/webbing/green_webbing/blue/mosin New() diff --git a/code/modules/1713/jobs/campaign/bluefaction.dm b/code/modules/1713/jobs/campaign/bluefaction.dm index 2bed1ca87b..cd2607378e 100644 --- a/code/modules/1713/jobs/campaign/bluefaction.dm +++ b/code/modules/1713/jobs/campaign/bluefaction.dm @@ -140,7 +140,7 @@ var/area/A = get_area(get_turf(H)) //shoes - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) //clothes H.equip_to_slot_or_del(new /obj/item/clothing/under/us_uni/us_tigerstripes(H), slot_w_uniform) @@ -323,7 +323,7 @@ if(is_squad_leader) map.faction2_squad_leaders[squad] = H //shoes - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) //armor and clothes if (findtext(title, "Marine")) H.equip_to_slot_or_del(new /obj/item/clothing/under/us_uni(H), slot_w_uniform) @@ -401,7 +401,7 @@ if (!H) return FALSE H.nationality = "Blugoslavia" //shoes - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) //clothes H.equip_to_slot_or_del(new /obj/item/clothing/under/blugoslavia/standard(H), slot_w_uniform) diff --git a/code/modules/1713/jobs/campaign/redfaction.dm b/code/modules/1713/jobs/campaign/redfaction.dm index 3e891ecc48..a186d1a80d 100644 --- a/code/modules/1713/jobs/campaign/redfaction.dm +++ b/code/modules/1713/jobs/campaign/redfaction.dm @@ -139,7 +139,7 @@ var/area/A = get_area(get_turf(H)) //shoes - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) //clothes H.equip_to_slot_or_del(new /obj/item/clothing/under/redmenia/standard/modern(H), slot_w_uniform) @@ -324,7 +324,7 @@ if(is_squad_leader) map.faction1_squad_leaders[squad] = H //shoes - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) //armor and clothes if (findtext(title, "Marine")) H.equip_to_slot_or_del(new /obj/item/clothing/under/russian(H), slot_w_uniform) @@ -445,7 +445,7 @@ H.squad = squad H.nationality = "Redmenia" //shoes - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) //clothes var/rand_uni = rand(1,2) switch (rand_uni) @@ -493,7 +493,7 @@ if(is_squad_leader) map.faction1_squad_leaders[squad] = H //shoes - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) //clothes H.equip_to_slot_or_del(new /obj/item/clothing/under/us_uni/us_camo_woodland(H), slot_w_uniform) //armor @@ -543,7 +543,7 @@ if (!H) return FALSE H.nationality = "Redmenia" //shoes - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) //clothes H.equip_to_slot_or_del(new /obj/item/clothing/under/redmenia/standard/modern(H), slot_w_uniform) From 46f246394959d2133693d6df27bc4e66dbe96957 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 16:45:19 +0200 Subject: [PATCH 09/14] Fix corpsman --- code/modules/1713/jobs/campaign/bluefaction.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/1713/jobs/campaign/bluefaction.dm b/code/modules/1713/jobs/campaign/bluefaction.dm index cd2607378e..d62a94dc7e 100644 --- a/code/modules/1713/jobs/campaign/bluefaction.dm +++ b/code/modules/1713/jobs/campaign/bluefaction.dm @@ -39,7 +39,7 @@ title = "BAF Squad 1 Private" squad = 1 rank_abbreviation = "1-Pvt" -/datum/job/civilian/bluefaction/s1/corpsman +/datum/job/bluefaction/s1/corpsman title = "BAF Squad 1 Corpsman" is_medic = TRUE squad = 1 From d710dc0238ef287b13c82a791f8d5c946c8e3632 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 16:45:39 +0200 Subject: [PATCH 10/14] etool can be used as a hatchet --- code/game/objects/structures/wild.dm | 4 ++-- code/modules/1713/barbwire.dm | 4 ++-- code/modules/1713/tools.dm | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/code/game/objects/structures/wild.dm b/code/game/objects/structures/wild.dm index f51ae565a0..a858685449 100644 --- a/code/game/objects/structures/wild.dm +++ b/code/game/objects/structures/wild.dm @@ -150,7 +150,7 @@ var/list/seed_list_jungle /obj/structure/wild/attackby(obj/item/W as obj, mob/user as mob) user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - if (istype(W,/obj/item/weapon/material/hatchet) ||istype(W,/obj/item/weapon/material/boarding_axe) || istype(W,/obj/item/weapon/material/machete) || istype(W,/obj/item/weapon/material/machete1) || istype(W,/obj/item/weapon/material/twohanded/fireaxe) || istype(W,/obj/item/weapon/material/sword/kukri) || istype(W,/obj/item/weapon/material/sword/bolo) || istype(W,/obj/item/weapon/material/thrown/tomahawk) || istype(W,/obj/item/weapon/material/thrown/throwing_axe)) + if (istype(W,/obj/item/weapon/material/hatchet) || istype(W,/obj/item/weapon/material/boarding_axe) || istype(W,/obj/item/weapon/material/machete) || istype(W,/obj/item/weapon/material/machete1) || istype(W,/obj/item/weapon/material/twohanded/fireaxe) || istype(W,/obj/item/weapon/material/sword/kukri) || istype(W,/obj/item/weapon/material/sword/bolo) || istype(W,/obj/item/weapon/material/thrown/tomahawk) || istype(W,/obj/item/weapon/material/thrown/throwing_axe) || istype(W, /obj/item/weapon/material/shovel/trench/foldable/etool)) var/obj/item/weapon/material/HT = W user.visible_message(SPAN_DANGER("[user] begins to chop down \the [src]!"), SPAN_DANGER("You begin to chop down \the [src]!")) playsound(get_turf(src), 'sound/effects/wood_cutting.ogg', 100) @@ -158,7 +158,7 @@ var/list/seed_list_jungle if (do_after(user, 30*HT.chopping_speed, user.loc)) health = 0 try_destroy() - HT.health = HT.health - 0.25 + HT.health -= 0.25 if (HT.health <=0) HT.shatter() if (istype(user, /mob/living/human)) diff --git a/code/modules/1713/barbwire.dm b/code/modules/1713/barbwire.dm index 85d9b1547b..5709194fa1 100644 --- a/code/modules/1713/barbwire.dm +++ b/code/modules/1713/barbwire.dm @@ -95,7 +95,7 @@ qdel(src) return - else if (istype(W, /obj/item/weapon/material/kitchen/utensil/knife) || istype(W, /obj/item/weapon/attachment/bayonet) || istype(W, /obj/item/weapon/material/hatchet)) + else if (istype(W, /obj/item/weapon/material/kitchen/utensil/knife) || istype(W, /obj/item/weapon/attachment/bayonet) || istype(W, /obj/item/weapon/material/hatchet) || istype(W, /obj/item/weapon/material/shovel/trench/foldable/etool)) if (anchored) user.visible_message(SPAN_NOTICE("\The [user] starts to hack through \the [src] with \the [W].")) if (!do_after(user,120)) @@ -110,7 +110,7 @@ if (ishuman(user)) var/mob/living/human/H = user var/obj/item/organ/external/affecting = null - if (istype(H.l_hand, /obj/item/weapon/material/kitchen/utensil/knife) || istype(H.l_hand, /obj/item/weapon/attachment/bayonet) || istype(H.l_hand, /obj/item/weapon/material/hatchet)) + if (istype(H.l_hand, /obj/item/weapon/material/kitchen/utensil/knife) || istype(H.l_hand, /obj/item/weapon/attachment/bayonet) || istype(H.l_hand, /obj/item/weapon/material/hatchet) || istype(H.l_hand, /obj/item/weapon/material/shovel/trench/foldable/etool)) affecting = H.get_organ("l_hand") else affecting = H.get_organ("r_hand") diff --git a/code/modules/1713/tools.dm b/code/modules/1713/tools.dm index 07f428d377..766c9c21f3 100644 --- a/code/modules/1713/tools.dm +++ b/code/modules/1713/tools.dm @@ -191,9 +191,10 @@ /obj/item/weapon/material/shovel/trench/foldable/etool name = "foldable entrenching tool" - desc = "A foldable shovel used specifically for digging and moving dirt." + desc = "A foldable shovel used for digging dirt and moving dirt. It can be also as a improvised hatchet." icon_state = "etool" usespeed = 0.8 + chopping_speed = 3.1 path = /obj/item/weapon/foldable_shovel/trench/etool /obj/item/weapon/material/shovel/trench/foldable/secondary_attack_self(mob/living/human/user) From 90c14c98af6f1df171e8beaf101a9318caf0fc52 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 16:46:23 +0200 Subject: [PATCH 11/14] Campaign updates --- code/game/mob/new_player/new_player.dm | 77 ++++++++++++++++------ code/game/objects/items/weapons/mines.dm | 21 ++++-- code/game/objects/map_metadata/campaign.dm | 38 +++++++---- code/modules/1713/roundstart_etc.dm | 2 +- 4 files changed, 98 insertions(+), 40 deletions(-) diff --git a/code/game/mob/new_player/new_player.dm b/code/game/mob/new_player/new_player.dm index 1387750312..fbf356a61e 100644 --- a/code/game/mob/new_player/new_player.dm +++ b/code/game/mob/new_player/new_player.dm @@ -522,68 +522,52 @@ var/global/redirect_all_players = null return TRUE if (href_list["SelectedJob"]) - if (map.ID == MAP_CAMPAIGN || map.ID == MAP_ROTSTADT) - if (map.ID == MAP_CAMPAIGN && !findtext(href_list["SelectedJob"], "Private") && !findtext(href_list["SelectedJob"], "Machinegunner") && !findtext(href_list["SelectedJob"], "Des. Marksman")) + if (map.ID == MAP_CAMPAIGN) + if (!findtext(href_list["SelectedJob"], "Private") && !findtext(href_list["SelectedJob"], "Machinegunner") && !findtext(href_list["SelectedJob"], "Des. Marksman")) if ((input(src, "This is a specialist role. You should have decided with your faction on which roles you should pick. If you haven't done so, its probably better if you join as a Private instead. Are you sure you want to join in as a [href_list["SelectedJob"]]?") in list("Yes", "No")) == "No") return if(findtext(href_list["SelectedJob"],"BAF")) var/obj/map_metadata/campaign/MC = map - var/obj/map_metadata/rotstadt/MR = map if(findtext(href_list["SelectedJob"],"Squad 1")) if (findtext(href_list["SelectedJob"],"Sniper")) MC.squad_jobs_blue["Squad 1"]["Sniper"]-- - MR.squad_jobs_blue["Squad 1"]["Sniper"]-- if (findtext(href_list["SelectedJob"],"Machinegunner")) MC.squad_jobs_blue["Squad 1"]["Machinegunner"]-- - MR.squad_jobs_blue["Squad 1"]["Machinegunner"]-- if (findtext(href_list["SelectedJob"],"Des. Marksman")) MC.squad_jobs_blue["Squad 1"]["Des. Marksman"]-- - MR.squad_jobs_blue["Squad 1"]["Des. Marksman"]-- else if(findtext(href_list["SelectedJob"],"Squad 2")) if (findtext(href_list["SelectedJob"],"Sniper")) MC.squad_jobs_blue["Squad 2"]["Sniper"]-- - MR.squad_jobs_blue["Squad 2"]["Sniper"]-- if (findtext(href_list["SelectedJob"],"Machinegunner")) MC.squad_jobs_blue["Squad 2"]["Machinegunner"]-- - MR.squad_jobs_blue["Squad 2"]["Machinegunner"]-- if (findtext(href_list["SelectedJob"],"Des. Marksman")) MC.squad_jobs_blue["Squad 2"]["Des. Marksman"]-- - MR.squad_jobs_blue["Squad 2"]["Des. Marksman"]-- else if(findtext(href_list["SelectedJob"],"Squad 3")) if (findtext(href_list["SelectedJob"],"Sniper")) MC.squad_jobs_blue["Squad 3"]["Sniper"]-- - MR.squad_jobs_blue["Squad 3"]["Sniper"]-- if (findtext(href_list["SelectedJob"],"Machinegunner")) MC.squad_jobs_blue["Squad 3"]["Machinegunner"]-- - MR.squad_jobs_blue["Squad 3"]["Machinegunner"]-- if (findtext(href_list["SelectedJob"],"Des. Marksman")) MC.squad_jobs_blue["Squad 3"]["Des. Marksman"]-- - MR.squad_jobs_blue["Squad 3"]["Des. Marksman"]-- else if(findtext(href_list["SelectedJob"],"BAF Doctor")) MC.squad_jobs_blue["none"]["Doctor"]-- - MR.squad_jobs_blue["none"]["Doctor"]-- else if(findtext(href_list["SelectedJob"],"BAF Officer")) MC.squad_jobs_blue["none"]["Officer"]-- - MR.squad_jobs_blue["none"]["Officer"]-- else if(findtext(href_list["SelectedJob"],"BAF Commander")) MC.squad_jobs_blue["none"]["Commander"]-- - MR.squad_jobs_blue["none"]["Commander"]-- + else if(findtext(href_list["SelectedJob"],"BAF Recon")) MC.squad_jobs_blue["Recon"]["Sniper"]-- - MR.squad_jobs_blue["Recon"]["Sniper"]-- else if(findtext(href_list["SelectedJob"],"BAF Anti-Tank")) MC.squad_jobs_blue["AT"]["Anti-Tank"]-- - MR.squad_jobs_blue["AT"]["Anti-Tank"]-- else if(findtext(href_list["SelectedJob"],"BAF Armored Crew")) MC.squad_jobs_blue["Armored"]["Crew"]-- - MR.squad_jobs_blue["Armored"]["Crew"]-- else if(findtext(href_list["SelectedJob"],"BAF Engineer")) MC.squad_jobs_blue["Engineer"]["Engineer"]-- - MR.squad_jobs_blue["Engineer"]["Engineer"]-- AttemptLateSpawn(href_list["SelectedJob"]) return @@ -594,18 +578,24 @@ var/global/redirect_all_players = null MC.squad_jobs_red["Squad 1"]["Sniper"]-- if (findtext(href_list["SelectedJob"],"Machinegunner")) MC.squad_jobs_red["Squad 1"]["Machinegunner"]-- + if (findtext(href_list["SelectedJob"],"Des. Marksman")) + MC.squad_jobs_red["Squad 1"]["Des. Marksman"]-- else if(findtext(href_list["SelectedJob"],"Squad 2")) if (findtext(href_list["SelectedJob"],"Sniper")) MC.squad_jobs_red["Squad 2"]["Sniper"]-- if (findtext(href_list["SelectedJob"],"Machinegunner")) MC.squad_jobs_red["Squad 2"]["Machinegunner"]-- + if (findtext(href_list["SelectedJob"],"Des. Marksman")) + MC.squad_jobs_red["Squad 2"]["Des. Marksman"]-- else if(findtext(href_list["SelectedJob"],"Squad 3")) if (findtext(href_list["SelectedJob"],"Sniper")) MC.squad_jobs_red["Squad 3"]["Sniper"]-- if (findtext(href_list["SelectedJob"],"Machinegunner")) MC.squad_jobs_red["Squad 3"]["Machinegunner"]-- + if (findtext(href_list["SelectedJob"],"Des. Marksman")) + MC.squad_jobs_red["Squad 3"]["Des. Marksman"]-- else if(findtext(href_list["SelectedJob"],"RDF Doctor")) MC.squad_jobs_red["none"]["Doctor"]-- @@ -626,6 +616,55 @@ var/global/redirect_all_players = null AttemptLateSpawn(href_list["SelectedJob"]) return + if(map.ID == MAP_ROTSTADT) + if(findtext(href_list["SelectedJob"],"BAF")) + var/obj/map_metadata/rotstadt/MR = map + if(findtext(href_list["SelectedJob"],"Squad 1")) + if (findtext(href_list["SelectedJob"],"Sniper")) + MR.squad_jobs_blue["Squad 1"]["Sniper"]-- + if (findtext(href_list["SelectedJob"],"Machinegunner")) + MR.squad_jobs_blue["Squad 1"]["Machinegunner"]-- + if (findtext(href_list["SelectedJob"],"Des. Marksman")) + MR.squad_jobs_blue["Squad 1"]["Des. Marksman"]-- + + else if(findtext(href_list["SelectedJob"],"Squad 2")) + if (findtext(href_list["SelectedJob"],"Sniper")) + MR.squad_jobs_blue["Squad 2"]["Sniper"]-- + if (findtext(href_list["SelectedJob"],"Machinegunner")) + MR.squad_jobs_blue["Squad 2"]["Machinegunner"]-- + if (findtext(href_list["SelectedJob"],"Des. Marksman")) + MR.squad_jobs_blue["Squad 2"]["Des. Marksman"]-- + + else if(findtext(href_list["SelectedJob"],"Squad 3")) + if (findtext(href_list["SelectedJob"],"Sniper")) + MR.squad_jobs_blue["Squad 3"]["Sniper"]-- + if (findtext(href_list["SelectedJob"],"Machinegunner")) + MR.squad_jobs_blue["Squad 3"]["Machinegunner"]-- + if (findtext(href_list["SelectedJob"],"Des. Marksman")) + MR.squad_jobs_blue["Squad 3"]["Des. Marksman"]-- + + else if(findtext(href_list["SelectedJob"],"BAF Doctor")) + MR.squad_jobs_blue["none"]["Doctor"]-- + + else if(findtext(href_list["SelectedJob"],"BAF Officer")) + MR.squad_jobs_blue["none"]["Officer"]-- + else if(findtext(href_list["SelectedJob"],"BAF Commander")) + MR.squad_jobs_blue["none"]["Commander"]-- + else if(findtext(href_list["SelectedJob"],"BAF Recon")) + MR.squad_jobs_blue["Recon"]["Sniper"]-- + else if(findtext(href_list["SelectedJob"],"BAF Anti-Tank")) + MR.squad_jobs_blue["AT"]["Anti-Tank"]-- + else if(findtext(href_list["SelectedJob"],"BAF Armored Crew")) + MR.squad_jobs_blue["Armored"]["Crew"]-- + else if(findtext(href_list["SelectedJob"],"BAF Engineer")) + MR.squad_jobs_blue["Engineer"]["Engineer"]-- + AttemptLateSpawn(href_list["SelectedJob"]) + return + + else if (findtext(href_list["SelectedJob"],"RDF")) + AttemptLateSpawn(href_list["SelectedJob"]) + return + if(href_list["SelectedJob"] == "Company Member") AttemptLateSpawn(href_list["SelectedJob"]) return diff --git a/code/game/objects/items/weapons/mines.dm b/code/game/objects/items/weapons/mines.dm index 8da0a7d123..c6da08e2a8 100644 --- a/code/game/objects/items/weapons/mines.dm +++ b/code/game/objects/items/weapons/mines.dm @@ -37,9 +37,12 @@ layer = TURF_LAYER + 0.01 icon_state = "mine_armed" user.drop_item() - if (map.ID == MAP_CAMPAIGN && istype(src, (/obj/item/mine/at))) + if (map.ID == MAP_CAMPAIGN) var/obj/map_metadata/campaign/CM = map - CM.at_mines_placed++ + if (istype(src, (/obj/item/mine/at))) + CM.at_mines_placed++ + else + CM.ap_mines_placed++ return //Disarming @@ -70,9 +73,12 @@ anchored = FALSE icon_state = "mine" layer = initial(layer) - if (map.ID == MAP_CAMPAIGN && istype(src, (/obj/item/mine/at))) + if (map.ID == MAP_CAMPAIGN) var/obj/map_metadata/campaign/CM = map - CM.at_mines_placed-- + if (istype(src, (/obj/item/mine/at))) + CM.at_mines_placed-- + else + CM.ap_mines_placed-- return else Bumped(user) @@ -94,9 +100,12 @@ anchored = FALSE icon_state = "mine" layer = initial(layer) - if (map.ID == MAP_CAMPAIGN && istype(src, (/obj/item/mine/at))) + if (map.ID == MAP_CAMPAIGN) var/obj/map_metadata/campaign/CM = map - CM.at_mines_placed-- + if (istype(src, (/obj/item/mine/at))) + CM.at_mines_placed-- + else + CM.ap_mines_placed-- return else Bumped(user) diff --git a/code/game/objects/map_metadata/campaign.dm b/code/game/objects/map_metadata/campaign.dm index c795a82b7a..d6967f1113 100644 --- a/code/game/objects/map_metadata/campaign.dm +++ b/code/game/objects/map_metadata/campaign.dm @@ -62,13 +62,17 @@ "none" = list("Commander" = 1, "Officer" = 3, "Doctor" = 2), ) var/list/capturable_equipment = list( - /obj/structure/cannon/mortar, /obj/structure/cannon/modern, /obj/structure/cannon/rocket, - /obj/item/weapon/gun/projectile/automatic/stationary, + /obj/structure/cannon/rocket/loaded, + /obj/structure/cannon/rocket/old, + /obj/structure/cannon/mortar, + /obj/structure/cannon/mortar/foldable/generic, + /obj/item/weapon/gun/projectile/automatic/stationary/pkm, ) var/list/captured_equipment_red = list() var/list/captured_equipment_blue = list() + var/ap_mines_placed = 0 var/at_mines_placed = 0 /obj/map_metadata/campaign/New() @@ -391,21 +395,17 @@ var/no_loop_ca = FALSE if (world.time >= victory_time) if (win_condition_spam_check) return FALSE - get_faction1_captured_equipment() - get_faction2_captured_equipment() - ticker.finished = TRUE var/message = SPAN_BLUE("The Blugoslavians are victorious [battle_name ? "in the [battle_name]" : "the battle"]! The Redmenians halted the attack!") to_chat(world, SPAN_NOTICE("[message]")) to_chat(world, "Civilians Killed: Blugoslavia [civilians_killed["Blugoslavia"]], Redmenia [civilians_killed["Redmenia"]]") + + after_round_checks() show_global_battle_report(null) win_condition_spam_check = TRUE return FALSE if ((current_winner && current_loser && world.time > next_win) && no_loop_ca == FALSE) - get_faction1_captured_equipment() - get_faction2_captured_equipment() - ticker.finished = TRUE var/message = "The [battle_name ? battle_name : "battle"] has ended in a stalemate!" if (current_winner && current_loser) @@ -413,6 +413,8 @@ var/no_loop_ca = FALSE to_chat(world, SPAN_NOTICE("[message]")) to_chat(world, "Civilians Killed: Blugoslavia [civilians_killed["Blugoslavia"]], Redmenia [civilians_killed["Redmenia"]]") + + after_round_checks() show_global_battle_report(null) win_condition_spam_check = TRUE no_loop_ca = TRUE @@ -535,25 +537,33 @@ var/no_loop_ca = FALSE icon_state = "blue3" /obj/map_metadata/campaign/proc/get_faction1_captured_equipment() - for(var/obj/item/I in get_area_all_atoms(/area/caribbean/captured_equipment/faction1)) - if(capturable_equipment.Find(I)) + for(var/obj/I in get_area_all_atoms(/area/caribbean/captured_equipment/faction1)) + if(locate(I) in capturable_equipment) captured_equipment_red += I.name - to_chat(world, "Captured equipment Redmenia:") + to_chat(world, "Captured equipment Redmenia:") if(captured_equipment_red.len) to_chat(world, "[jointext(captured_equipment_red,"\n")]") else to_chat(world, "No equipment was captured.") /obj/map_metadata/campaign/proc/get_faction2_captured_equipment() - for(var/obj/item/I in get_area_all_atoms(/area/caribbean/captured_equipment/faction2)) - if(capturable_equipment.Find(I)) + for(var/obj/I in get_area_all_atoms(/area/caribbean/captured_equipment/faction2)) + if(locate(I) in capturable_equipment) captured_equipment_blue += I.name - to_chat(world, "Captured equipment Blugoslavia:") + to_chat(world, "Captured equipment Blugoslavia:") if(captured_equipment_blue.len) to_chat(world, "[jointext(captured_equipment_blue,"\n")]") else to_chat(world, "No equipment was captured.") + +/obj/map_metadata/campaign/proc/after_round_checks() + spawn(5 SECONDS) + to_chat(world, "AP mines placed: [ap_mines_placed]") + to_chat(world, "AT mines placed: [at_mines_placed]") + get_faction1_captured_equipment() + get_faction2_captured_equipment() + ///////////Map Specific Objects/////////// /obj/structure/altar/heads name = "Mr. Taislenko's Collection" diff --git a/code/modules/1713/roundstart_etc.dm b/code/modules/1713/roundstart_etc.dm index 640434e29a..9cf0235c4f 100644 --- a/code/modules/1713/roundstart_etc.dm +++ b/code/modules/1713/roundstart_etc.dm @@ -21,7 +21,7 @@ var/GRACE_PERIOD_LENGTH = 7 if (MAP_FOOTBALL_CAMPAIGN) time_of_day = "Midday" if (MAP_CAMPAIGN) - time_of_day = "Morning" + time_of_day = "Night" if (MAP_DRUG_BUST) time_of_day = "Night" update_lighting(time_of_day, null, FALSE) From 7c32e510d7e4b3f8130d445b4c3c52f5aee8acb0 Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 16:46:31 +0200 Subject: [PATCH 12/14] Nebelwerfer --- icons/obj/cannon.dmi | Bin 46654 -> 50804 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/cannon.dmi b/icons/obj/cannon.dmi index a96cc7ad3a753318e794b243e7d4f3ee5bd52df9..e6481aa657622d3d67c0f6b711e721db686ae903 100644 GIT binary patch literal 50804 zcmbSS^K&IU8?9}-x3=4@&D(Zs+qP}<){Ek{TiZ6aw(WM?Zf$@2{tI7bGRb7}L-Ncd zIVaCKu_{Wks7ORe5D*ZkKshNj2nfjDe>DUF?%#+&U_JT2rr%FP$3x1}-Q3OA#lzOw z2?D|=J14aZDV!ZA^7w!u?4k&d;e4iueki|NBIalf=9UVm67XtADv(jUITd;t?!H@m zptn{21LqMbd8e~6%0RAr-JBapHmH`wF9UTT8Bz7r3&qS~`<-Knn!xqs&CYazzu0tg zm3TfgoQpg4LhL%1h1#Md&t$9dZ_TMh#Y!Yo>HXprY z)%yhQd11dvxlCrneS)7nCIj#MpiPVmtNqCPri@_OUpa(zz7a!c;jIL z{g5ucP?Lzn1}J#e)dRnrziZ1sSH#$#LLGsbER#0eT$@Cbipw_Ci%Xx`x0->5>WkB- z@SIk%$Q-rcfCDY9gkwx+KS3Z$mG{cb($%`6Y+uRz+Se(Dg?ETdDL zd++i3v4`E|t-x12&v#T56r7Kj8fVW;mNU!}r5v2#EBNIfL3vo2g`VcXpb&)s2%DMp zW`w%HS1;KEw+qqxXrl1DE>V&O^WlQ3p3u-xsF9iy>qtRFBZ{l%bLVZVmq2;BNC@w9 znAx^;>q9A#JnYp z&b0QF6uL=zDjt;C^FRYr^;x#x(3MHRFL9@X6RxYzf@#GLr6WhvWChSXl_lC5DC7(&Gp-xPJ#{K(E$i93Lgp`lwG( zJ;((bYK8Qbl_c-+(s?-7qA}QNc>>}wC9(p>0tJ@6idxscOYhsbPSRU6PZIgJXV$fR zt^=sS%ydrf?sP+rErAV=bhgU|x6xB^xWYHD_&rZe%`9~6A|k9nm!Kf|N}W2&^F0q1 zGhOJ7wtY40Xr|4LR{IjVar4^GlTsF$__zrN{@$zz*nwmNBckpVN(Bi(4$bHsL&l(r zQOrB*34=MNvP$aXTH8R^GLN93k~1jfx5$7~PW=tKLXb-69v2%5BvB*V7Y70?{T3&@ zWy42V$JI-*AbRq#wgBJpqx-s@gVD5tni^#kl!Jp3ale>I2#N_y16#+1heWcsDQQ?F9N*9!XyG;;f3ZUA@qg9M9Cno_@(4a~&&3Y; zux2vmW7%;PN0%M*>`N_5w2~UG`jK*P-PU1Tve*yScikIoq!uNpJ#=&A2m*$r#}6^o zIjqh##+#|Yg5EAVZ@JJM#JX>DY6LPDndn%x4eFS1V{2^@G0wE*b4uXc2r7I1+(&3y zSon?G#jn_^TN~w)_E{lc{0{J3XF)V>I~}R#K!qVQarw+GaZ&`_tDy%Je}{okI7c)P z3T?^!JeMQQJ7#f7iRE*Gvf(RqS}B+HRO__842ej9oZ{E7#afxgh%>3KEbsKRZJo3% z)8nCdw^w=Rqk@2m0(@lkbVP|Rzpr(ri+TKks3bMga)ANX9J0QJT)}Q3(`we5L*Q`; z9`oQ&Mq8Nq<>eszEBoc@%)@;+!SlFhU!G7vKIBKpW<(+}Z~Wo7KQ$(+Vf#X0p5IVa z%ZDx_S5~nmIMWd4IY3L-vOW0pyPim$WhAu}&(iB0SvRf>k^mgNC%q$Sd7|}0^4gr; z+?)*OFXf3vVl)Ix#b7#@F3*}`An0|sj0rUE+zjYP<#TFcQI24%9X7z5=up+VlrGOW)OkBw zN6M_Xr6qXbAeym6Hnweo(8jc}}lx!-;~Iow{(W-*TEZN8=B%OjW7BhSar+DGa4FTx@r-ivOKq2p0(4Oo(%aNn@Jo_kb7Joxs;z#)VZEGSFFii4!?x?SL8GRc;8mNmDXFDX06s`OQ--J{K+XMeb4 z^Cs_P&2zk>dM$^dLPajLLi>2|D{tUL+ez`d{@Q2HZO*!7xUuWdFlQYGxJdT0)2QO? zzWHgNhW*b6DMnb;_On)s3Zfmpcqm|v?D-^;^9FfBz8uGlk6d;%4UQu~OQwTClK51N zVznX!+Mua$$yhbu`|5z!wApl5lfphht!sCcEjp&#%?lYIMy6&xX{E`%gG&wI&!S)n ziFtZHJQ3WXuib{Q<5X!aQMc26Gmy;Gq0o+yVZb>N$F_kdN=U?=w6$f_hSnP3>y2eh zgMy0Mq=+j&Xl?rl^*x<033(fjpm2ua@oXi>Sx~eD-#<_-f~yr=N-yE_%3!BhBZB2i z`9NMf^t0ut(|&v1)Nb01{-v24v$<`CPKKlZRP2DD(DYJ+nM*`%x>BVCRykh<=kTo0 zCM6Xu%7iCi(+fu9MF`)bkH)9sZZ?X@(ugLSNMT>uR z-tcJ_G<}nM6$X775dGMH=S1WH(~>h1_$q`QiHG^$KDX67j?K(t4d~x;-p|^&YP56H zpN_YaW=&W)a3JQ1p3~N%+Q&3+K3J$Cv+qx*eyf0|XZaHsKrA03@nXri*36tSI#BS3 zM~~jZ>1UI1Mhbo6?iF%>u>PsI{Ai_i3CGH<5%&wjt0O)e*OMQ=n6%!eth0Gek>l;LIBQ`K45$e-3@*0t6we|U;s3Vc|8D0X z_0WLc!tQAExP6DBkSid$Q0f;cj3R}v`uq|K3 zymlS%Qz;U}!j{82AmlQP6-Y~xV0Cx=a^%C(iBq7{B7Vsx$A~_sJqjAXpSDn*!I&4^ zpGCt^3pPGKc6*mJ*e!Ab?xm&I%bDmY4$?lWF3QMuG+JU@;TWU@r5YuM?=!u&@Z;TG1QxmJ$sEnrN8~c2Y|)tq zme)lh-IRtQV6%Shn{z2zowL3J&h!^@Rj)MN*T) zP+x?G7LlE>=r?bqRYymCX~oV9hhn9HSj(?*E~1vC?EX$j;~D%%k~boWoP|Oxev}Ju z{EjNoNS;nm{sO=}TN~VC*`v0dn^N{0a^3cUiQSi@M}CXs#uDbo_HpHI43UKPU~g zIqK$lh@>q3tftM|jdQ=ueK&AAR%k2yMPV-;)>8!a<2a@!=5x~id&?-0u5{u_axQo8ieqd{HKi-42KQVyJpacNWP;3V&M%JXmDkAB@QzeJyp zXX~OfSOZB7t4B*WQqGAYNSMT%IS~v71n0vs5kfsDD=RI58}+=3%xR1)@eTFT{DxJL z?*{mm@jbtLp$$0AO|dU|G$O%f4iUhbUnDa_odbNV^OBvIcG~%=+IfRJ*i4#6PbVvq}`Ri#0uv0L7r*gW6yYI^LDpESIXmrfU=Bvo1 zgChRBZ0A_|WmG3tR5A!f*!&)`zR|K%r*RUlf_gi{8o8U93Nb7d&|-pm+J{{v}k2ebOAnZ^1U8+~hu^Gmg%7s?vRLEG1wynVvC zM=B12h+L8L*1>sNJa!ZvNd+kK=Mg%K&yNPtjxlirHV`fXh7+UMIubsgZv{3nyKKO8*s2?$pjD^a zd6Wj!UHG1+e;VZ{5%Z$8-4mzx#NJ);iw3Kar{U5mDf;$Y8_g9WsF~F13b0Z#0qhlg-MiOuzkII)t5}&-m&Y{SavZnzCw7NZ|wF8oA7nayi>C(W`eu5PLHXi z55wEUz0LH(*S=VAI3svpMJ_-!{Y*EgyfJ4Ur-FXl02kpt)3#;=t}Q`Mcg1G6UxAfC z8{+*v@ax!JjX2|vqwRW5?{Ql&w&7agH_a09$BhCI=Sn?+sPU;7&m7_H13N@M==oTY zs;aETXc6K>;fiVz>c}x-ssGTTZJC>(Z@m!g{8!#httC3=*4^Z;u>5R`n3U-O-yY?X zECCwL5Q2?1#zrjm-d|%?Ut|Q%DiiCB(3dLc-503s+}zYsjaggdA0R2aPi!qcr0l~X z*4z%qGB_~=mY_^?P=0||S9Lc<7Pn_JF#uPUT0<^~7?R;gX~BNpLv1bJbQGT$-!KOk@^Zz)!G(bXtiIp!K%_0q=AOW%ckxu( z$Fc19AdaMI;`Kffz(+7bO)>$1gTal0-Zl zDn0O<+p-ayF!|<5txWBCdyxvs z!$4>Z&L)`Iy@4ma))<13W}`nS=UpmZJ+^$0bt}p?6B;8ucyFJj@ncN5iNU#aA|kh zUwnFhB-cEsjZK@1XZq0`K|zu7T9jgz%~AG|7N7HxYxho&)gW%cbHf@@ZU|P_no0#_ zqLmdLc+m8xzO3Dvr$cw_>R@hN9 z`Y^80DX!8#vrW3wE$oc28j~*|QT79f5x;5vJiZ;6tLf2DIb#uIUF5L$lu2_S^BlL6 z(3s=LVoy$>AKjoDt#?DHVeTZE+W}(ZPzNgp$w7Y~zEk@AO#v@o9=$>pv_9fByZi{_ z_-?LIF`YNN{_bYcWle4VcWy23Fb5S@YM#2)>Z_5%R;PGNmtg~mgI&A*TQwIciDm_eL)0l9AK1}eC6k045PAqrf z(UoLLwjy7eQKcoVKZIs@DfEunTfwLXVf6r}8m=|9$f_F$S7tKgdz1dp(>{!LWN0+X z05I9rEv5RSU+6s;m`_88x+)`G^b&S|fcX;vac)H-dQBz-Qk8M3QB`dVmjx+JPxyG~ zBO)#>-dtWyGrUV{5m5ns=O5!eslGxWWkU#&kWu*Xjjy(d->qlb&jllRqQNR^zv*Lj zQU~O{R3WH!i?VK}%U9;CxaY^puv(DsG(`tkkHgcrSzjyPpB)K)$(NVeV#!g<1b2ST2$GtNsLxILZkIwrdI^j^eR=~kVJel|@1WYH!?1NfK|LCZ z9xZ0TvAS)cL2Kx_Kt=!Jg<}{DM1gXGIQYc#WT{UY3_%pjfV=f#)MmP__U@{vRIJt6 zXx9uRCnZg@*KLFwsUnO812f=fh$tNQ?UXT~fH4pwDb$4R)1lDO2bb$kuU52`4(LKx zVw2OJ76;!}T2;&V#eI73?kZn}78(MdEpd%KeSEs8#or(szYs*}Eg@&I8B-LsffwRc zY{n3dA_P^(fQUrpR(i+kzq!i4mXX@>BQAj@C4Id)Jrs$E0{@!lmFXqvAh-xx&9x7R zS7|KF);N}Jpqn+ZL##2T;l^cHs*G#GFD3ggIHE?uJa*aUj@SC^O!S}J2+ir@m)sSQU`Vv zfo?231Le*cb>1Vkf8%XMh6QESTVlgPIjd7nCeQ}4)h8W}Ulfecev=SZ*W{(h+ueD>l*&HTSlT%$)0Dlz7qC-;M=H$4QGeD$oqVQ zb)Dir8&4W)$1Y3;gypYY5f4TwcL(VzOZ}VZYsdM^b6`WNyvTxj>xx9kx7p_r*-I{c@5 z0Nral-Yt8nAoFhu%CUnx9hEJq%#sUv;>@dMLok{|1Ueu8z%*0Vec&HBmcvIaSJas$ zd&!qLP-d(_(u(}M?O7<=di3q2!cZRsw6yj{qeF0Ql*P|k+SiRnqve$}C|9*Qn`nc1 zt8IB|MaCD#jC5{m>-TpFpC10vl=Oqi!iZd9WTU1lLzU*)fPX(-sk;v-w;r2 zQ`^yF_%6Xnu}FuI+MV_TZK(kU22(8XB)PwA_PXz$sj^LCZfGa@H6%hQ`y1ZB!(E`@ zQ}QiSZ1XjiF1NHINX0tbBnAPoCa4L^H9sh_@nue7cyr$Mzi_JI8872cCBA^zb~^g!Oj{_qQ>Z~`Hh-!9Hz^cQ|Vjq0`-rkV}I#{)WA zTpM4SuvNg9gGFYa^;!&37DmmVRmjgm8J-mJT2n-Dmb1AwPpYx*SDFR2DlB*eC-kvsXO5X!XApMImUVmrdN`IR)ee(K{lV@w?~1kC z5F-&wSIl#Nbmily&Gug9?3x|#9greZGZ7rS7|ReBSvjGY#~vO>wMZ+bCdXQT3=(^w zOI^FJ*k2-=I*?N~VnqyP2UNs0FHbd3T!C-mG8)Bk3a<>5 z%ItxMCuOucR7|5kPYr&*@IXRS5a!Xt|9y!<&xRj>FI~y?zrb~V{heqpCDP;8xAy(V z{p%nk77|p1A|nUq7hBk?2@_WY6$4;>FAN34{eisWEdMcC#pxdLAHF^8yr-B3t4T2T zW%M;1+@+!nVe3ZVBYsY7Y?!x_GCE!F`~}$9ZQZ6fkS;mCVS4K?Pzs=6^rchV6w3zZ zqUSSzqGLPoyMsk(N*StaAa3Ip{74)EvIQQjQqpkJ*LJD*)VHK2bHxHc->*)3Cf!+) z=L7Yd+oqbpud5dH^yj-moo9>&di#U2Ha{S`sB7BU&euM);Dcm^h$FJQ{Gw+HV7)`Y zNw)r(_H#P@q+)r^w`!bHBg}(|cXYLxo!%tR3qK$)lGDGGPe}aslJa57=Qdcev_YhiU)gwfJVL+i;e!ZzHs8e$$%D07+o$~=cGo8G_I!*!282K{6uSW-C}&@pmxK+1 zrNH<4m9|P>%PtF1e-A>~|FU7jpp*7jh3rMH-+jysl##+WEqQng>JFpIKN>$nxJi~VeIw%X(2Dz$)~ z{wfu)6tiStlq)BFOBP%#*l^5Kisjo4FTaHxJ{0>C@AyOX@`jXwAopG(jHNIKmc@LB zIPl;42^6&lW<;yfgVCp(4!y@ozn>YW)!=EmxodOHF+`OwHOq1L9laX6ah#0;b%PVH z(3Jz4_1!9xYTy^C+%buqaN((ZU}(4B4jD4{C-MUW;tU&=bVKdm)K4;m{N>M>k%-15 zEo+>+rh1XK_G6r`hevy30#_P|b94JyU0pTRG``ZMq%x&Rov?Bg6uO^r3W%}E#L+GQ zfw843YlYN76BOLzm6dP3MAVQ6DH=r7a)1~UD3eNwHuh4{&o{_2i3kt4CTcjxRprTluNSxP z9W5pcIJXa0zkPMtPt^9szE&@p8WHW^*l5%*w)HlfXIt#h5rkQtErd9S8ckjpNJ}df zos(o)bV8FK`~AuxBEpc)6xB|;hIl&P*5>m@{*$&hC5$FIhT0mx)M5&Gq;N zC&lRlQWfQ<03TNSKof?SI;!<9&)u4+7~=kdBY@tm&S6EIn<-nit}-wx-v*nx%gb|8 zGTs!@ba};&p`kiv_{Zs49;c68?%Qj#oM-NE2?eFq#RONXHKb}p{FHx1%~OWO4Sm2& zpV7q7m2+Qn)3QP2{ly(45~@3f5OYCOR$`*?i^hP@dDU{6#nmaz@Uz)t0aQiVO@wY0a-b#d7;v?t5Vj$GbTlRR>t|n|_@$2`R%&lN z8(G{&i{rWs&}(4eOlY(P4+VwU`|Jm1AC1)@Dk-u0sS*uK9!5;d7sKT2{>MDgd{t_QOTh`Om;- z<0sOS;*XCYOZ9n#^IST~{4RU%+k35~t4uxnW)PF2aLc)%7oXjG8}%qFnye4ZmzJ&s z`n6=01o{lVpp{ItzTf3jKDCLF~@k4aa!LMOhCDW>C*2S5CNyTORYqnHkvMA+LbG*MRpFz05Iue+q6f zX6qc!%r`Wsa7HgPvwqUX*TOX{trHLgq+Fm4x>6Vb64duQF?{Y1Jdp;793m{dFyb8^ zz5DMbwnZEeZjHz@>Hr4O)yr!tqnv#**Bf!yLU&bcA*OiF4z$LNqND!z@-m|uMJEjG zsbcY0Ot9}XEg>wEb@Gp!{@z~vr{FUwHhCjrSI`$SwZ zM>!S120D#0WY{>#4ZAhHnZO;ug?k@R4hrEi+Cz>6sVQhMTKu3yFkq@SSy6@l?CxT5 zDM`U5RQT-$%gjQkY-fv#-FM5gDk@O0rVfYP!t5yQ;O_`OzCmI*jyLyBF-pLFx*j># zP0J|Uh`)q=FIC7*M_g}#F-8I?vTs%1WS`}1q-@$91H&Pv9oG%%x%Dq;;BzyIKji$L zdD#LVPEdL`#c$oJI7A3XDJo|P=>F-{E{sVG0m3ZPpM79&gSYvLRfuOrs&MwrKoc3! zZ6Jzbx(9U-F?OkiQj-;{mG&7XOoQUtvVrM9_#f*#Z631qC3!(MBu}*!mSL}g7;zqm z^4uFqF}GZ51F%v0G?vJl9>gqnT{NlPP=#F0rc0%Mlk4TPc5{<&w(k0^oiTHlfe{OH z&2Vj~=OU3o6TpkmVRGi8WiiJ#Dacq2$ygd{wm?b}^fq6hK_&mmmwfAhsg0Aa1(ur? zhAF$!a8#JsTbxq+!+X=GUX2ak^n!BkrJ`@9`H&EY?o1{VD?2#vqXer~^$Zt@vxUM# zJnv09<7%@^~64F}G%(r|uRm#mywBcd+j<-=Bz-++K(A zICC4op^V|2B2&j~_a*!hH*x7WNWG!%g{GjO{apSETsRW(Sj46NxZ9e!pbU4>T^p?T| zi0h6P@5q*^VbbA~ZXjH5)SzrN98SV_;-4nO(xtoWpc{G{o;b&7^kg|EV1PssQa_dE z?#sRXcz|u}23U*6ew;?ZuQRaI0aR&1oeK9cAN&#%ekV;$pnLZLWlX(Mf2ITO-m-$;>0hV z^dDamyms-o6QzmiW$#r0ij@i+c=|8}rZ=vr6<>7M$<98|gtPE3%1GmpfEW4pw#Ze< z+{Z*DqnFI0NS~&l1@RXgXos6AUXm5_3eO-Yhw0WNjJCT*eo`dr;QZ-LJ>8~o9NII) z7TtKSSzBYR=xTxq(9XTj8{^KK>VHASwkD$#HOWp_@m~qgr}hS*PTqg@SSgF zb7hf+>W!;wFfgAR`A(m9$g!^y6S`I&!+$MJu2%t2OYiyTdS8xNKRujMIz+YG`S45t zAxEYfjX+8hFK*sQCXO1BeGC;U0%q~@;~oCc8RZJ6FXHVF;C+S&5OS%5JU|2x$>6C_ z{%}DCQ}+P47w$8(-&}(1P-jw(O>V>v;2YKS%A?B4_MLQ>$G+?ylyv8%*iHVEZ5(n* z3F*kS(zDSbna(DsiYb_d!fgT^9FbU;-95-Pf{Zrk#^T6!3u%}gt1b6+ylue^ecE? zV_JZ2aSI={jBunm`v;;_j_fk^SLB6h$#hW_>=RHXlzxT=AvBSOCpB!j9K$Xv7Q2hj zX<7K*2qq8MoIM)TIygAb02)Ptu$|rwFnn9M7(fq=Vgwq65PKK%0EmP5KjfNtd3jG# z)s;4aUU@k$eUooi4SRxSn0U+L#lt{vLGNep`Hw>5T-FWf4$KnEE zhb}AKv0h8wvLRWk$PfUHb&6&tbfn(LLk}OpF|_IR*)wj6V_#}|4bCG+Uz+B9LJ`4o z>X*LAfCU`6m(YB;6!NO%lppK}a*!3;H5gP>-7mE*_^PS}m*Hoa&nZY6Ws9l$&<9gT z1Un3Bvw@H2w=t{;e+TH6hOU6nLRF^yRnXN?Brat;h^`s!1f$O5%Sb0{S%zM^y4iCw zfe=53aJAoL>3*K4zzN?Oi22E@X=9U`?90$lkny|y6P}1!`W=j5K3}*n2r@KAK-8dt z7MpuN;EVQ~UXsws1Til)Nv!_ZLd&pIqo#1ggt0&qS7^Za)y~_Sja^9+3Ykp8+p(2R zxz%_U`nm1vV0@YVCt;N*<}TyH8+j^TtNb`AV3FMJ1ISqUEvNpD%GL``jUs{7ulSQL zD7)aB@$l}%xtNTKV3gz~MhckS_Z<_%;IG&dS(T9h4%8<$dGh3nR?7XF!nXKYv8-rn zdEiI00qhXO0 ziq*r=fKgSvF(8M99|M#{qS1qWq6f~3HGcj=zK|Yv53$I|SM_b>H3-i_J)JRW(?g_u zT<(5YtX>eHF(j2!lLkA2_}AiME+g^L#sh7rDj}f|vZ6*I7xJ&3_kRnoL4|Pa0uB~foJ-3&D0}h7y#NxSiQ<+t>|2omFG7)nr>P2KPV8*US@RmI@LtjLNMRP z(peXanwv=`)M3(=s3*au>U>ehG@di@I7z*@`_ z?`WA_6rIR4odqdSSj>uH7OqWkWp}a;RR1K1KiV z7kTRHzJJelA~Y3j%4mhOumYWH5i{9b3^1!vr93O=#3w%R-+u~mkJW1dI8ee93;l#n z!M+ITewoMTYsn7Xtfss=t~1Vbt!7B$O-k}xH?-L;wE63Y>p?$6Z!B?xF9r?u?|%a2 z!b|d)e@XkwbOH_#6&2JRtgB0fvZYXdz zKKxmOFbIw%&eDAm8(yfjh%8jQIqKBtw4cx}e|5yMHh=K&>t<#d5#jFa2fhY%?mQd# zpKGGgikXTLlL!m2o<(>Ok!aY5ePgdQJnQ(j)9q5941H22hVOu=z_>;j;#UDKX!q4B z|MqW1FkSKAdU}uRO5tf`;lDjdMnC`NXxxB@rpQH=*i@K&i*7*PRNj+WQqv`u&qPAW z8GT_$bVK+KXWVC27G(L;*pLM`>qn0jvAGU0`k|XH8%F2j3ZiF{Zl67#g&jwR@vMS+ zB*=z?o0>D}7Kg`Q_ke^5CgYy2Ad|kJK*d%nWF!*}3%bpeT*5b$`}KwSoUgi24o2pP zfA0^G&MQT*7>op3dGClQL2ux{AJC7Lm*2@jcfTeCx31BmiNF0r%WZqj>rUeUA!67X znYMpQ<#pW43hEtH$y@t~1i!W*$0lFhj7M9n(Ig$`-VXH45;1Hgs+}b0v^ZsaoEz7}iFa5PN`?eL z;Fwlp`_DBjGzh{les)FN{ zS!>!?%kpuTA9K+itB>D9{->$aTYtp0X{o&=cuWyY7wt?UT%qx3(uYu#T= z!Y>$}(jvn$XJd4t%YWBS4x*zY4VmS!COXthg*ga&L*A}Ns{q@N-H-g+AI(I6tgRdv z+CYOP6RTN%ztIb)q-LztKE)#ud9*~fFPn$bsikqBrBG!Jnh*=9?#aqTN=g(gVPZIs z+>B~cGC?a3z0l}`@?jYdOwiv>TN;>+)u_bWq+YKFTQe@O4PG61c40&B^^isqtqu6$Km2_b6rTDH7T9A3;12ZdGi#fd+P4 z9tfakZe2=6qQA@-z|aLRr=A6IIkt0QK%%x=rtx^?mxtLt%1H0RuSz=-Q7x(CQN9W< zzPkuxaN^cSZlg+gdqgVXIt~`vh*e0N-ulSPPY@vFvXve5VMHVg_zKade(?-MVB&Bs zb)`{GR`^lAB$XO0(oHxvAH+WTUuavWtoOWkeW-e(HsgLj1{>H`@JY@wx^FI2TZK@fj_UH74;mWXoBME`2>-O2{Z56T_LgGPG z8~v6cYD!Wn{L?Z4G$4}rYAIq&Gu>0HUaS6F{GQ?MZP!iq37Cm5TQ!T}YB`?Tt5!hq z_7%_JGVWj}!5(PeQz`EW-Gp!T!BPVjUk zs+!B)NEYG*NZdekV2t#uzvrYc?;S+H!lKHAVVMx^BPcHs!=}GxyEmsh5)-1a-8BVE9hk_Ertjb8t4U~8Wq^0p75p^HHgi{Zr}TSGg^ zmP4XGF|5LW95uJuMrKQBJ3o(sCx0__XySFk_zGPpb;!mb>qUKw%GW6|n8bi-P>>O<>k+k_3|kC75-!uy=T+=B z`R7x{)L6!QeS#1Jvt0Wk&9w{>h2AIs2qJeJ z!<_OEc95L<_20%t&8vJ)u>jKIkk_7t@DX3ORa@9xqCW7cw+Alg)1hp)7#{?x0Y0$9^;uXa_- zBnH>$!h$5*~s=X4g!)ax)+LFl*M0Y8_(URSrUxpBM^5;Rd=U; zcUmI?@v~_5$rTIaSkO2d8!HWJMP~)MDDsX@$-|mjAvqB;dH#W*R z7s*H9u}<AQgJ{2bPwAuG3z{2wD3edeJp^E32i3$^+f=6zuhH7?|l$PR*-Pq=i)&Tm*lkjX>|V zyraV`WDYE8o!NHkRAAzJ ze>29G8!0bbOjp%UaI^1(_{A+P*LwZpMvq%*73|+J>7gz6^%fJ#XL%Uo3Y2{37if1u zMZbW2eq%gGFVV;sdO>`HGkwEq{(v{xOop;b)2kv4b+P%+>xM=rSekU%y02e$XNhsz zcAQJqQ_=deNimcFQ%=J56My_`Kd`H);!rmg58#_>sJ4Ol%-@%B~thlKs@u{(ZDgU-C zqV5)v#iX-Eq$QHKn3?P~^xH-o5H?yWcs7wrN|&~iD`Mi$;7A`!CO~(xBy22qu<1Uk zoIs`$#U?<5RYie?v5vW0wHI?`YNCS7*Jg4h(c_sN>B>h(SAys8OKh0Ll%j`zExz6O z{rN8+kV;Sj3k#r;(wgkH|ED5ILh*6%-3MyV3Ig{_SsmsI5yY<0{labjaGv{A8|&)k z{8i$~dnm2xD3)x}V+M0f-Ghy8(8I0CmjtU6C1w@55MA6wn9y_v?sWB2p&RHhOjUYl z-ZHT~GEB;}X}=4Uk5G01%gL1}EDNVq5p;l3hbZ9tNdvRFJQFlAF#${{Bw08fs*nq> z${BCc(_#(UNaGikuc=f*gryPUgq+MIZs4u*#X7=A)u0fry+5;I=`hpTx_X(lT5U*; zThdyvke4ZECTGiZ`>7GH|3EY4Vsz>LR+q82*WagKQNu8;v?@0Bba`)@tKIQzL20cY zFPnAAyx%G(rp;5`Wm3tPQo~mzec&)afDO8^j}lh^E>wETRTHph%v-^geV+d7o7k5- zD(UTK^vpbY-2<#o6Qy)3N71enj|A=C9Csnp%Tb&F)$bTW_+I$X;T90k*!3_&g5}KO z$3?GDkRJg$%jN0$6o2rhnd8r7#tG*eSNRc z}7`i-MMTrgOxbS==2mp z(_;C`&iAIQ|24kmMs#rS^zN z>v)NA16$}~qXIcT)Ne|${F$^O09mf;O;m`G8x&1UiQ%eBCJG`4x|zCi*r$vw@chb$ z8}iMe9lhQI-rPxv@Bh?-xQBkO(lO1TdH)L4O3rM83uIPI)om=t9JTX@r_*$f7R9?@LgEV@R z5MqN#R6f(?FDQsv*|!Ism-9;dH^#(mZ5#@M+3?4#S}rJ7g}84tEyMk7wo9YfN0xp| zU1_lqO?GOp3I;eh2~y_j4P=NmF=)F^g(&R(=gZ4MJM^8fc*D^%6`N2I(ighydF|+l z4|Gt>hM+hEas{yvW~_Yn)x;ydKD<*yV@0@ejk~?}p&?Mm{DmN8xhG=Q6ML89^56vK z`wu+w_ZW1q^sU~%h_}5_4%8?{Z+X=sXZ7S6{>FQVrIz@-M0D_@VP_(21*Rf zeZRG?@Z*O4$TV0O)4&+I?d^{&*1M4%q-C91n&0iY2lB|}Yv#4um88pEi1X`{?)ai{vgcx-&0Gfhq})~7JWAD(py{2 zzrWqq{nTi^`g6$P?vH$p#O>j zi_p_U;lg))ekW_>{}y}yU&5p734Ej12WED;yQj=Mg;GXo9U`i0xra9xHF9o0Gg7P<6V3hFb z0>fFrd6Spq(#6lsj26Fx;`+b~o}lBv?L%`450X5s|20HjqR(2QO25Rs`v@HuCmLOv z+=lQ>Ap28D5&cB6Z1W^^%!~5+>({vG?QMtezGz3EN2M%*XH{7qnSocEFWyubI?Yxi za3=NM45Zq0&(Ev*JV}?AGQJZpdlqxiK^ZtI9wE%u=Ay!|8+4i4^8A@s=k;Qcu`!eX zwJD|Gjs)uJ{+X{tw2M8@ICic8EA%GxV)UI$0zNy(-v0gv>u_A$QSb#xxSG%2;9&K9 zo6Cal(;sS6c`skSTUa%Gf0v)u*CZH_CSbghQH6_EalKqmli62BcF>8F)wDKaOiV3m zMBFSmr(e}NrBM0nbZPGn43vBHnNF$veYNI0lvkuHk)?+{TYg)Xs9VW3BSA5sM;{aDVg z-5NYqufw2|4)N8z;b9j$hFR3Pxjk!V&kC5oJ5H(#s?p+OfI{`~NILV6g(jc!;6g$9 zbmDvI75k?-D<*`Lno&_l#@{{W9FJbh%W!Aju0J@sK9E_O3q1M~vD0W?y6%`q^QI`D zace#HbKQTc4%H-FI4@AXYV<) z>GOT-dliPkwRVawr)uRtO#*V8?(XieIs!M*(Av%=z?|SWaG<$eZ468+Glst z>~~?i%Ul*MUkx8&D24i*y_YZI=vFY(Wu@EZ7~hmP&63l44N{KIAi3z(WgF$^MT-~U zEt#_;ze%?i^~fr6$H#(>pM2wTU&_RSL($&~T2tblHnM19E#`099EF`qCh?$fDz-?H z-H;iIO&@lVv3ChmxG*$GrgK`JFHO(cnaQyX9)wHvc%o?h#gF%_b-Do}!e>oOH-C)= z71~bocQf3FfAbxl2I26xQ_2+@V2(y-yGJccaZ;r!HAV=La z*X!ud9R+e|o!e1NA!N+yL zvz`&}={#qQq;B-GpP7x5c&E8Kz+-u-sFh~*_ItJ9PP!*yqD94ik$JH1#yDxKJN!l^ zR6ZlxD|@_sKocGEnLlQ)PzZjbwnS`o;FbjWzKyNPrMbp+A^+*7Th&&3i_3nOZERiO zO@jA&O4@p>{x<_PHHtiO8PlXWUynJ(#?Y%fu*d)-P>cu?uaAS0^5eL0|Ns~CnHbsC4gm#b$`NzV_xHLpo z=H2VUSx2Zf^TBE-bZy=SffiNV2kHgxx|1Y*DXQ^j=rh{|zgQ)6CLyf`E?VhOU1RYo z;W)x>HW68|tKsq|8QhV}8l7y9%ze$@MUe9O?>@dNmG0`4C@e^a=S$e%X(pF!fT=Ne z{N@g#wVLbfSKfaT_RFDLg-E@pW1m@)yQCCQBkPlr`Jeqv{kRFB{`HcDlu8_PlH+LA z@GLC9^ZWPQV|vxF1hUE5?1PnHRbfN|*og0U(#Nj_cHKA-NAoX^J@U}Iheh(RQquRW zf5+u*O`5tJXE2qT`1OwAYjmyrzU;S=o}?WrC%!PlVA4g_-%v_JXTFOKUzi`fT6Q&Q-F zytVO(;FayQ>I5t>!J4rxPR;NclEW*N1ybkExr8j5$y$tWsS%I(P0-Of_A6w?W$700 zK-p{Q2A@IOZ?ZV>l1cZ^pl09Am%F5^!Kt90&K4k;NWh|1bM53NNhvGn7S$A>WnCqk zq=}=`5<-mPJ1G+Z`gRkI=HIv4f+r(|v_`w64s*ux-<952GD+jbZNnytt2Uj3L*k}7 zFBk#Npn6JL|8U1`uo_2UYf0WLDXU^uA%AIrYY?{_Ak0|zCoxC7!4glg*4oLt+U1|n zju8`WwfuB$P3-G~TQ*bW3qx~;L|BbW28WDWxMUzEtjRfckv8ytWNi5+!VTQeVbyAs z4#5#e9|%{BEwn0ekD=p3@r%nn`)#kgAGTfA)ao!iZozag2-f1uAY`@b)j~~$4fyRQ z2I3`_4J?(2E@B)*Ju6A_L(-YOyQTmk6&~%&x5BTqQN}gerK&q}9e&{qyn3eC+>=P* zOLzN+A8(g#Z{#I_{u`e_FXn1vlj?*018c4q_+$uv3ZVhuMw)aE8VILFiBd{bm=I>El{LvVnSS`?bOr}vW=go(>(M_;@(%5>`)#sZ z5-w)^6fBH)0|HuJ++5X+y{>>zvBr{_{OpMqF*=*AkxBzZzpzy{8%Jyp?~F#g=5x9a zkHG6Nesr_(mo%)x1FpbT3A=kwTGqHP5k_tJ{E%Uq(NfT+)W(f!GQ#RUWHRQx3EnuC z?kP4t7Jzs0Cxqza63@Y>Zvl$@DRk&1@BZ_36%MM`aO-cQD%Pdq{gdu4;qzT-4sRY= zWZ;_q;znnSGmdxMveA$Vv*>E1Ee@1p>KR~^0FjCgd^I*3rHq_Vx=^~dl=n*5SXKtP zYADt~?OEs^ds<~#O|P_tS}TdZ^nHjFU6&-du`TNuFfA>yIwzT`)13>iVZYHDGnqQY z{usx;Nj;Xc|#c+G>r$UxoXmXZliRB*rk?bXZLGUJ+a1512nUb4SV>wSG zdeT!BopfqHx*96kZ}#Mh#J#NNQj92%T1-ZulpNMlSgD*r`UXVr_@yEW`1;}EqCH1d!t}Z%ka=`$5+_6wfqzeEWeLGh0L@45+Y|@9G@Y z?W1lIxKhW_&3b;}^C?{JNmvnAaR?^8)10-nJd-Z}xgN9zIV~z_n(K_9xrjOnpC;m0 zNgA^derl57Umpgsx$#-)R=ZR|`6lL@Y3q_9ErcA7Nt<~3S^Omm33(ovQ~H_{Qr=N4 zx6oiZwo9<~*Z!YH;eaTNUNwE8qNp2Fo_qpJgG4X}Cr;MqTr0R1XdSN#3bZC#C!34> z2}avP2v=W;$t0((o!(ZP zCE-SoL0nRj|3|U1+k6o{#$Zf`)1L?SAUSG)qjMKb9EjT|4Buvv;Bk~gZ{f(UuC5iF z>J^p-1PTxd+*(^pHX{UA{=Tcb0>VQQ9jW~0SUkzx*V1DiF<_q|4))c|x%cO#9&F4QTn{a=&cCNCq2Kq6*!F4}7+Qb(8*!nHHMznA7Yp#c2; z@W9UkpKG1=(Z5 zG^saXOKsQ+4eypDfYpzvNa18b)^?M{HESK|YQ-_XT~i@y9Miz)6U{XaHpyf*8qJu2(%Afzixi0>>^-DIWk2e@_d>R~AKUaS9>(%Sbg66KJVfPs9H3MRFL zMV3POY=W{W1LplvgN!k(X_VF$c9QBF=cCKNPo50DA1~-xV`Q~Du}vXg8O`QQy090d zTq6vIM}gUVw+_~Mcod8xS>@#fb32wB6C@Bw)wXKSeH6^t>}0x4ZsrY(uuRc~(E+$)1Ndbh zu!C2p07FxeZ?xUawF$~6-m^jPOfK>qKE<9sJwA!WmIa2s{}HyCsq@|Ml> zwa6A;Um&G8Q>u>zhH`ndnuNSF93YF3rU=U3_DeQ))iYQ%nPfvx6=bgZC>SYl?aC%M zm@tjDL)JCT?;XCaLOT$^oFTto2osv)1W0;Cel5qX23-zVykGKb$^wb1RoxnJel$WK z1T|ZTjT_kSqD;h|RJ&teb4h1o4HcchM0DZ0#2bTgx23ns6LJq8?5`7~f8qCm;nz5D z=e`GE7^;errMgof;bH^7ifgGsWQ%A!;*v#a4Nv;1!x(&x(yf+p3jcDp^U_ zh9#1m_i-`NUP0y6toz$XU4Va*7}M>W8Jl0|v3quHQ@f%4Gqx@+i!Cbqad}pSrZ2`Q z(%;Oi`8orKTzK7-jrgc^$-y))-M;Y#mz3=I^p++Ai2b?g*PFVAKJnKeCI&1V&J6q5 z1c-?f^nB8-9pIGDHcQw#1N9{sF|KlY{;=NywA+-+q1ODfd{3(Vuup;e^Vo0fxNsk` zXTkrRty#imczua?w;DZmoA<*)Lh#gL+}(?H$H%M2&f|Gn7n*%?&sn+|G^>=1YSfM2 z1JlJ`w_e75w)m(Fizs|ITy^K9@NNq8BOkY3ls>&%rVggpL;C}y_iRm=WA@Xe@o-gU&3 zBY>DV&Fq-qKxR01LQN?qH3dC^0`$gz*ue1xe_i6Rw!-c3BG?1)j{qNkVsjO^lZX?H zd$(>Egf0He)oB7F@TEFEex^rILqNs)Ew1~t@WG{5J%V`3Hm{+5VH%HO-uX1hdAfk&->7aRP4H(e`s)8S+-Qv1U+!|?gtl{eNfiIRdr;4B~7pi z4F!%lzAQ!1)5D`U@a9kWX4Eg83wFN19*;kPh~jaZfy(2Pn*;2JO66PzJ{ZAU;X&ch zK$DJMf*R%Tk)&3MN;wM7vPVL>97b7=fx#WCyT*1!4|n`H3pZJ-7xiA<kW{F!8Mysen}%{?n%>@+;PO-H3<|rSgmk z>?*X^H;Jpx6kEQ2+4EAP7;pROkNxyCKDE0u(wtqNLogRSstK*3C@MO=3_lYb7QHlr zbKozHU?weOq1cN1L_8NST-6(8N7+>G1oaEPXh>!B%Nt>zzhCjR!M0GOJ%lyr!-tp0 zLSzYd?45zAn4XX8e?Hh+<(+(;@vJ7#pkfjKD{q$eH}?AI`ovAg_>o2lJfN7}`_W$w z59A0Wh3i7i`SGT9gHD<9?%)XdB4-J6v%h)r1>;V<7VF+tb*uokklCsutIz67XbHpi z2iT`&&$x@GH*9(S?RUa1f=?mda7h3R zq3Q3lMt;*vEX0>}yn2Y8q;ze3eWE`TD}SB zYV&-({7kBPjO zQWYq}{)B0)y*Z|L7{t3v}nyB zgBo4*>7))728V!IW~=Uth=_pc^@3kgq|L|TV$aX`R?c%(XJ}HMc^ak5RX1t zU!V)pS>@eS}0184pM0)3dYs zJc;Gj5~+K4-Jp&G+v5e+Th+M0aC-V)za-152=_0Y^U+Nry{& z9I1qOh79n0jnb8}paKF9(^421qDU9*d&9L#*I_dM8oE1#*Ri zQv4ru@Zq#URvU8(3G7h`*13Q4nd^P7NBuhMtl*pAmXG=J0FPB&=%}V?_I?+EsjmU% z@{iw4_g99u3jg=Aq6ADdx&DuZNtnc3BAs?$b|3Pmxd5`>KD&%*PH>31x}J{4MOLd3 zR~n%0N{KkT)QLXOBdg?Di|~k|0l(Cf%cTk{3$LFFy-9YiVS}=1cM_xudp!Qgn9Dk; zJkye^tr2i>k}pE&{zbp?K5Ww^Ni(@$-+Syyg5+iJ@W?KA_b-EvO*qJH;)K(U3zX

z?;tS*GIuW7^cl60N#s)n7wxRHOGyMrE{V59rB3{}F`bz4Ue&Lk;Qbj>SkrK=ZQS}@ z22TOmv{yO6tZQd0a(EeC3;dilqPhf^e)#uzBH9t6c(}e=m6|u63bt#oVv*@n6^2*w z#XC-yhz5!X#Z+1*dMNG z?PAq(7p`#g%3mT%oQB|mD|Avv!aGbZy7Tn38lx!o@%nF*kUo&C3YqtbJ03iuFQAji zk_0!BLMjUnnS>ZresbRbP>(1#~_>5;~B-a+_j24O^ znP`Wy!#kS}kxPZ%gF=Dmbe(WUdKegIzDM=~xx^TEyg}X5S+uCIk)|-8c4!1(_lG{H zp*ot~b;Vm}@8*_r{C)(ijWX!)MzBq#DGBAeYcHsI{gd)v0-#XL0=B1a?OZG>frd@! z*%&IMXmU;E+-!= zf%|;q$H#pm5&|!IpnXyLb)8fw#4}YBMl$sPhin#t0?(w{PHtcX5tCxRS9E5B!+^IX z(J0CxOf9rjp-DAB?`e|qI4~tQgYbuEn$aAwgZ-UGhA8S~oJ03h`s6={?k5Uuyo`CR zg$iXv)rqHYBXQ0G@z)I4l&7K$?p^9ADkuS3W3lo-@w+7%*Edgr_Fw8O&iEckNiC%A z>+SAUPiYPIRVKQ3{+&~YY=!;y;Yom6MrwCZSv3BuvPM9P1@o>yRAg~Gw2cWdyVL9P zn3E>dg{RXta-;h6@Shtp`mJIyT)GXNAH#;82+;_Nm-nrHxod`trHGp- zh$SP6xR9nZ>I##VD#B|qK_OuSqdRD~(4EK(z$J>U$MvmK0kuL!AbO&1>}Y?K!c{FK zy`HfplU+Vkod{yCy-PJu`)EY=Wa8rC{J&jMTO3CpyMu%IM^ z_!`qDJ&s4vy_P?7$eucWc1CggN0G5Ol*^!eTX1eT>h;bA!#Q>ve@O}s7TX$cz&Uk) z=nr=PbDiO_BQHX=owFkoT4|8`#CeaARifiLbt75TVjRRt-@s*e!L^2*I=U&!Me&_w zOmy}rr!=ZJh_|1`H03g48{NW+M88p+&s^(lXA~(%x|wF!e7(|Lm_rBb5KKG?w%RpG z$6OI&U?={n6D5AI zEGSJ=CYKyaGUV@z=X`IUMBghNySAbvzD-f6?A`GwMrSUE%5%gs1wvk&%TAo|?L4Qq z91;l@o-xFsRT+f zxuB`#3cZ+T)Uh+*Y_50|Gqhn_qVL>)orv&*PKmcKL**XGH7(P(3dT%CN~*f;+*u*z z;AJ7Kb6@^gQ45?n3wIn9qgF=NDA|YXB-tr$f}UcFCW$C7X;hq%r}~`y(>lv zD)_>bYd|$AeWxa~gwTqw+aP#ae#hLNW-$VjURb+6{R%C8kAU`mHojU#<}RQkgt#pV z{OYkT-v|m%yD3*c0`7_|$LfE6|qY9-Hae}u%7@bqD z$!v=DlZ<&1F?FO^;bBM=0aJpdcmliTN9iK{F*Y`TrXqKUs-prGkL0EPGl!|1Veo|? z{)9~)1Q7ve4kMzvcmJ#+Bn5D6+T>X})8bd>elqm1Kp9E?4ekK#SvGed7q*|FW}e6` zLEup-LH_4TDZM`O1U^u%xkt?%L{SPL2w7@e~nPHx0|rcMeVU(PiOhfEn>b- z3qgNC`4~P;@Uc{r?8DVFaFpxB*STjJ3jMF{Oy(&nv>dQ{;crXm<05T)p0xxmfK{!A zkh{94GJ{95{Y6ZLN~w7qvWF|x^%qYRSNeij?&3HoZXx5|xsiV46{(d|B2tl#UBYxx zj>?Z+gTHZi<-r$2h;`)L(=nNTe=L8?adbe7jSXwZw!&e{l6gyc!IibTz%n|_<&jxj z9*``_LNG7QvxPB{!XcLFfI3SU-`x>H%g?arG5vfvoX(uL4ZA|ume5w-eB7^>X{QK* zCPHuGIGQR(DqbBeAw+=L0O*}tnH`Ms?)X+ibMs_Bqi4Bg0DsMMBc`zf1JeNm&JJF1 zUv%%mVXx6|Ps~qGjt*Nh5)-Z)eU4dJ-}h%FW?gwLsM%yP1bik%Kq91CtsLT*Na1sH zyVMi3Gs&_nB~Bcz&xga2Gcf+RfDLdY73^awLbHo+R9G~K?59o=EBS;!)jRd_&!=}c z%;Hb(<)|}iEn_nEC{%rQY+|M9mI;I>B&=xg7hRfLWG0_}xY6yK`~tuRODXKHQ~jZrW}Sgd-8l~J9oc1-Nk)El{gtG7d&?tL97 zS#6;s*Y=z=|26m>tKvf~g7Rmj!-t5XHxJaqL`5B$H3nF6vguzYFQ?uj+fhT4o>q`Q zQ8YY1IzYE23}ZC6aL0}iwz&%nVL98eH9F6yd@@*&_w&NNW{f?k`Y}~aHG2?2>9I|B zNfM>9tD4al2{N^@TzQNOZL<@vd%<9&3=355c$c#-!V$u8TTem-cp$JrOuqB8FMevc zNHzz)ueNWxf8j}JalpjJM%NR^@_}zutbeQmOm8zp|Nro4Y^UneO z6FU{G$|iX`91s}Q<>N#L8O~CV9x!12n8qbv2uSV7zG%BHoq=K!uo2?`_>1SCYSy3~8B8_7d;ElXka z1X@TiN1L*xURGZ&!x&DvrG<2X7WR3^Ot4d%ON31H<2E<}Oq3pQ_Pgi`C}D%osElN` zy2SJ86)L=aqse3I|C-iXR%7QWM?I>_&nU7QI_4r%8C=rC8^I(ydfh#J1}MD=-BLuHyeBm zGjJ4w#(HNlBkl>S%IScN^xl;#`=Ti#UDboE8(Zm1s7)O>*dF_$3&kBosy~ujN;)Qb zhwjr2wkmAtiNFkrE&yMnz7i)C2$Gz*u7*mm4Teq=WqzsEqj`u#lbTYN*0dCszVZ-_ zqR}CEkdn|nDCaU+pp$E$EZA^SoXrGlf6$u4W?8jWihc#!)u_c~_2W$W>&0bvl$ z@w++qfH91{QkQu2-RzU_oIghjZTj;mh!Ol-*VEk*x^psd@n!9dGUy_)yQl0k z((2`CzI>%^Uhv3T^Al?G-eAyD!y0n=mssRUFV9>5hdGJ0Ii4HNBU!{j21WXVsNIl| z^jk+fSlbW28$3N8^AX3wI`TP|1Pt8QwDu8Sz8pXo8u(J?jORJ`J-mqgi9aA-0)u{c z6*cqA&w4XgcL-jQt(+385rq1@X+peozDpa%wA8mk8&a9;#>M?fp%3M!Jpx})>vLIE z5L9!|9o=fQY6^z6*}S^dZ^j&Bp%TtlcCK&CA`QR#g*~h9Ubywv!%#*iD#TbDZbh0PUVBx8SiYx3v?vBmTXH)g?!X#9Qcijqq4vwpp&BeYq{SE7Z4Xk{#3qfUP`2(A7O zQT@R}04ANl2$Scic^Y{9VR)+4k(_ESUN$K14YP^~lCRSLgGy@YeG3M>l@A2H6`C6< zx{UZ8g0x+Fu3|G@{Fl^`;8zacOsG;HCIq_ojo`L(vV|#t*kn5SokWTdPxf|Uk*4E* z{tUDGJgMaY3Ztz-m>%>CoM-Sjz3FcwKaKL|QiV@jqu&+WQ|lII_%# zMMkLbg9m>Sp>aINPUz35WI$gdjiZQe%TfDa2Xv@Lof07$gk*0EkIXGaMrd?ws;sHM zYEmWlK(56)J%j!e2jH(&U8D9RlxRPxRw%^;^%5@wPQ|iM=e3Th(xx8Fxbc6)jla* z(-HQgYml(SJJK{TYFv08(J%Tg9G|^A%9qS&N2)d@33UhGej%PR!5Ytzpm!KwR>oyW zWBBAJc_$7b&3^cl(IWZ^a77WM9)M ze_yHN^{!q&8wWm1;6MmrqxlQmxG?=ib#wa4Un%MN9kq~)H)OE3?_C8y8e=u^Z{l=c zBToNYy>^X1sq((;E(%CqT0wM}vy$fQ-d71eA8qD9tLks*9k_DG0>j+T8oD^@JmGg1)D%tDRJ`X*0}sZ7uogjY zpV@9hLV#o$EmJ8Qe%Ve>Swsp9V_WfkabtRv10Yh0~@C@F+{a=;m{%m!$j;OXl zvedp?wTv=FY{B!eiP0gC^1EwZ?}G76E!4JeerM`c8HRc&LRv0S%nva?P1|N zfJ9u6C&G9DiF0D~%oUNpP$4*EK+8L5Kd(j zCWoTwjSr2a9J$!58cCh|`SWLYilO;$9ke~Zy+I6vNCRGiBmX3lE7+yXPmpLA`@1T= z*68FLKCA(W@m?aF{f;eYB~S%5BQ6FgS9ZmYL51^$pdBE}WnY>`6GGo>pAgJQRkh)Q zcsSj{m~$0WkiZ6yc+h-M=Z<|E4){exXO8pj9EkP*D#M+QLj7v0gj!KivC>)Ewe*gS z@^2l&349L`ZFp0&@1X}UV0k-8Qh-2<+-nd(N2qNvadX(FslhQ{ajfq^S5!*1hovF3 z9lx*pyuB&rHvZVI>UZs5EKcBL$PFMiwzXwH&D4#PXwY{%QxWRFxTtqZE6DU!-}_xv zuu7nk%wVI!qD=?zP-M}WPL59FyAWVg8g)Lv(SJ#guyyC_9ZAgSPnTtZ=dvedQkfg0 z_F)Mg?Cc>eL^15l82n^i)PlBYD_<%<(bqThGGv>~SWju z9fX{wb!O1(Ag<0)qrhQM+nFn+X~D5NXu?LYkcj z>Haj-%sRh>(@)z7dgCOUfB@gIRr>QhopNC<2GeTk&$H?p#5;-`-C}C zA$ROLD1SQZUk*#yoI9Nq^7$75eEBCD!Zg}k1pUu|FkB$d_WNyYZ~%7y+Jf&O=$A;x zKksj>BKRk%HZco)_$t`#=(HdImjG5E8ro$^miebaLVD^q`_~8YFWRt=69L(`mId%1@vO2YF)!9w{;Ayi`}jz$ z(}RMXH<$3{I?3KE&t;QG>lQxhEX5k?(*IWuA)P^-O`j|;fWk~*f?&73JL!{$e{|7S zi6r3uel*1|m-Wy0y7#bT;e~hpt4;3r=v%rU#6R^&Edjg_g@o%qMNeK|D>D9gl02Sd zyv5|*a7oe5LW!i3&3){zr3YO2ee_#*791AkF1l2U3I4X6n@rwYP(Iax@JRF9XUOcQ%KkS=|W`HGA(!1tZBfPxe_9Q4E3SJu$Qefn{+6+D9iu)Uc{%do{zfVXB z|2<)B{~tsZj)#&lCT$)FzzlzS!`^?Fz@_!l_NHOu^DEuBCLgq`r@IgP*E;)X-YF@= zdNg4z@mwTIS_$YpKc!cWJ9(t9L^^;yNUvlQR?#Zmr;A)@^ zbbXt)c%5YkeEah1yyYO^ihW?&q7{50=vbA*lj+T|-ei#;Kdl&N@?ToeX4_!!34!`Y zXA8%}T`W%Qd0S6k|8XVuy5oPt*>(%o#~rCAe8cbcKvq~(v})I%3=lREzbc(y%=Ydt zgY=FHTYwl>bO;@W)lF|FT@Z5xf)nD^F`&S9A$rltj(bLpw?X6C6IV#EgCgI%f4yP> zSLT1|CIW6g-bPzsa&F_&o(HbIhU?ir_6JD!ia&YJDgS^iQawX7+#(1%HUuF4J)Ex| zh`4GqwrB?F>|tGSeN|@f+QRoBXv-XBzWC^OrlD4*E@D?#%Y&jxK3Tf5=-`4>JEPctoMOKlV z=zzsdc|ymaoC(|rcR-2zf3DF%P$770V__9XVLmU|CksAJelLQQTf^;&z7;d?2wa19 z*1TLsJF=4#)vzOZtvcJJXE*2X0)P?1v0* z#)$M2te_&yIr=?@tL2rR0|&hVG+J=IOT%W#3QyRFHSA>55Qj(`4JPxjjJ zPFtErhWkF{r|Kv7Pzh+kAOG56nK#Yu@4LcQ>|x@RPK0C$loLWK89q4~p7( zWqgRg?mwvK`5P;O61e2Hh_(*~iOKKLSh18_YwsH`RlIZ!p8XIOd86r!{P+LR^ET|h z$^P$OzjE3%Al@F{?bt&dUy;Xi7Qup}PkfV7jo84@SdGc^2ms|5*z5$JMUu6J?U zo2Q-UuJu)-oOoYyQR<~o+{@@az?r7>aZN=v>L~}!7ZevfI*CyF2p2jS0lReN=aPdu zeLKh zuJ%WY6oASjQCah-Lr!@iA#JKVwSd0&)14B}zZ^fhWl^iC^V*zECPKVF1=hgo6$9;t zV`1@st`+5d)EijNrI!x8^=2W~wn!M=&&zePN1G2@j|@Ei&JTC?C1F(GoC5KGsVP`L zvP_Ufd;<<~=ADGa&<&h==Od&uKhChjUJH$yIU~&__n?Qi;D@GLI0)-!!r0)&^auf`fv|_RE9oeS4ydZ# z3Fn)*ZT$Yq{$o%I3KBl6JG@-j#>n z0QwohSx+iZ67XlST;%hgm`Cgw1l36w7M%M6is=x%N%U&Sv7hhUku%_%E1GLd=`U>1 z1AgbAQ{c^5T5A>uSHEwHjO7Vuo-=pJYJS|?VvP@5BC>7Fe{9b|aHJc@+6F#}YShR8 z_tx3p%~*h%?OP*29*OXW)l~2Ro0m($Ls2|P|0HShSrhao5@ydj@{{xq%zi4$VZ6WQ z>C5&c33>``E0%bmh`zDG=lA2_z7cXOpOBT;^NUSL?~oUVZeFy2K?_B3|n&HRpACURdVix8oA1*kBI(QPn ztT(u7zG<2)bO`i6%?--q=Gjbg_(3Euq#aBlY!1oF+8?Gw+z#V958`vNNnM*Ai_WGS ztRpPLcItw4@klppf?o5f;5KEt*m4K`*%9i`Bb{KFybx?Bv-oUYs?48DuJaU_;+$p( z%(G)<*Z<b&aL4A`{qDqcbycoox(t z2Gn=n$zen%Uo<-*A-IA{LGjXw?R@8RFz~+kV6Z($Bpok+1895~_xkjQsEUxc=BUat zD8j!V0ZE2vx3<6s)PTiGhnKFM%bUwIK0?|L3uvWKU|e;Z3-^tXZa2e;XJbg$@%sbP zIS0B+zt9!3^@o5Tpmap~3g`-(pWee;j23Yr4?g9{|ESr~mNGqbW|9xU9rhh*_sY5j z&Q(GagHN4|A;Nv*Ng1&Ew-Oz~&G7u8_;XuhT-*9)GpkY+z7-lZb$Rsh_$Fbe_sRrg z>cS@P`rsOQm%%oIj^laB%e)qNOS;LwF2IT#Eyf8{g|x@1e@0_a5lTTvRm2-R`2Dw$ ze%WNYoo_i2Mbas_$^SvfIvhDgs#lc#=lAoT`E>8GALp*^gcW>B6NwH4%s6XK@g+Nw zn{i*?GmWo3x!`-Uqxg$TxI33~%S+Kj3_!G`Jsty?SvqXWdLq0P(Bc%>Y)A#^miTZD zgdz4+j(iMr=y*{l&qx+?s|X^aLCvs7pKkDl9u+wyw4}Z zpqNJUD=2`<|Evmo=SrLuPd#7>dz;(3`AJLI#T*s5Mu-bs`(i0!jvCu|cYshE9Ux8C z5;kwYOrX!@BR9yQD`LS$V|;{jddIq_Ca`-vHvP50g$vcj!qB z&SwUqNc14t|A(fp4vXshz8+wRkrb4Wm;r`Vx_by^hE74cq)S4&5kv%sp*tjpM!Hiv zBm@cR7Ni?|=kxtN@A-G;KF_`9oPEyTd#%0pS>73wjEvh^4G2#bW6*y`YntM6UUZb{ zP1M?I62(_F!6@?IqSBU?NCP_({T>N+JCQ@$V5+x_>wsOzlWEozFWQ`B99eEPUQKOK zQ`4CZp&eB;ljvN!>>=xfH6*VE!>0Q4vDl6d^GCNt7mx5r6$V>c!5QTq*V-HpV*E8u=U z9Xfa4FQ2v5Dt@BjM6j0ZaQs#&5a1a4M{#%HOQ)D%kJx)$Q% z;Mtm2&Sp2Hg&hu`R4q zZboBTBxCx!qM!u9u%q-6&P(m+v<{oE;zdyQ%1zeY!DUcFB0~vqkhIgK*u6=9Y(&g^ z&{B4shlMvKJyiuR&2J?iA?qDS=VSsE6G;buLF|6KjHA&#ieduQn4EdDOa$`(!3pS! zxf5?mLuJ*-I)z$GY+^Wr4y?3q?Iyax5bR=amN(vU5CZ($)H$GgHElX{r{Hko@6}2R z7(*eLZlXgV!#7`Axj_is+M7)60oSm}oM~k<4dE!>kCxGr_+V|JkC;?yV3Xokf}a!$ zxF_=U)X=BMH?CDYEHd4rtON+8a93Uhfr~j-<7S`#>WAlP1ZK=%hvE&i|Z-WJ28$cT;)FN32-9usI3VRaM zi5su#in3KTdRWvZ%Ct>bV1$IAUHa&dWfe!&Pymb$nV)~A-VL&#AflCZ3`9Yf_RPMM zY2_&xl9~IGQQ-tmrY*S07PM$3VsmVUAbIsq-FGw;ZNWaqN`cP5th=!XBJ5}UG13C> zkvF_PuvWI#pxoa;SSUdV;2P0=iSd8Z&3?FrBuP9Hv;1TL{|F*FN(fY`gvZ|%-w5h{ zj0$i`U*T$iLVKd3qRI+jNP+uf*5b8 z3Yfx7{U;_x=zW66JCoEdD?&>%*_`N-5Cq z;?Iwbr+6E6i)(iyy!1&kL?78WhQx7f34aM|*8A-Lp+|FV`la-r61VEzUjEhN8s$Pa z6}$n{($jkeEJG3}E+Vm7$#S3ZXBV`}be&vYu;v%^eRx?{)rkDz9kS0~BErgeR!F4$ zECI-R5MacD4QsRdt&W78_S9tlV9Pg{KDfDR`}R#+RlTJ{I|(2kUW@;sUZ2}lA`qgl z25{;kBOqrC5td!L_Twm(+l1{17yHKP>i35wF&iQ!H!g>hd0MiR(~WYq>NLqul!>^9 zNy+>BOYcmAmsH7>h1EnRe<^Z1y~HRmZ1quIq8PII`NY4(Q-{q1Wdj2VJ^;!e@jf+I z3Tk~l{ZU!i0G?f|1M$=qys147w(1~$L(4z!3B zrd*U7#R{;b%+?qKps(RoK$c%QW)effg&s*ITtC%4xdy*LKo*2{U!ZVB%DeBDyN;nS zOoq_FXwfH$)r}P<@)Yv8Uc@j#H@GPWISHGiAR=d&N*{!{k~}~NQQ)z!#zY&W*l|&{ zZPU5qlHc6bQ4j(oxsmY7@|pqa&RZSyO$9JWI{t;zbUOL~B4zYeVuFu-M9|w@T94*y zAFll-BuV{9y46KG3B(kF6y;CM$rogwYWnbQ@ww%v@C1PDMzOjuWKip%ST~lfrX>kj zA>e7j{qle#3KL=FGt2U%=jix_0txf56FE6XkfX98-_}&Vv>10x@D47yK)QmR(2e{b zc2%ig{|beavG`nJzk9>nK$o5HTl8pn^9wbT8F_@=zn*r4#x-yz=j35aJPGRI+frjv zW+`W(YFw+gMbsxeEBXq?{W5X<>B|j(b@zTFxD|VqaFxiC{9`uI7F!Fgb7`JaSkC=< zT^0h8Gf2uY7B#M0vb{Qt92{tq2S9eD&ZR-wokD|k{M@3O{Sw9g z3d7>7cDl26k1eoCNwb2H1kKIO)4NlLrGyldKV(sQh5ehsJS=n#HS`kiM`#3#YL_^P zc14r1rvCi-xYV;U7P912=g}aUIw_%rg3J>H4Y#i;2Acl@sKO0%GX5Y=PEY!FG`%*c&;{)_oA9(=xG1e;YxL2B2#o zK>Q^?YzG0<5{y&XhGo~;vNjooDXyd%;_lEA7-Akpl8r9RJ>HD{DG zmlhMdDh27>D$TG@FM2#Mf|UBH(eefJ@f+K0_gFrRFcK~EjguEF$*ypH7&0U=ELUZh zWmalr!@GHg7ZRtXg@v_+J$7N%U=cyy5Td8_v{qAT@D*MiPB9MN`{_87Y!j$0IbQH7 z!j~M9BiD0~^@4VAqWtgIfW-k)&-LE^=sN(4WOM%1>mS@-Rpf7m-^P6cp;TD4l9DMj3j3#K zvdJL?&o)P%{wafq5q;NKzxJtL6CtY6c{k+o)_Hc*O%E!Il17kq3_pDW=hivLE-q^N zci<8vflxz^SzB9Y?0alXQ#RtUNUd?X_(bpDH+^ZxiouPy&}I^(+IqW0BLGj&o?T&O z!{0jPoykxU1qAB|Fm~j;a}8F(!Q0UV>ogv_LS&j2W3riF)xUEUWXY*8!L;_>X3}G1 zYo$CP-fx@@cq1+HlzkyTWi0H^LNS$lK^ltQEFvNJ4({*&%D;U}T1pxbxV!g^6U!}! z#P2EoeCH=bILfLO3ggJV!nMbQKnFMEzmV>QykWQZI`&;unFlK5fNU-&zsXg^yy&qk zy{4&qc5nENwrOtE^#u<)`ed zmZ{>W8-)J#$SYV=8)7qmEJN-*nKB6z|ZH!GDQDM!qrt+rpe^8 z$fAT15FRWZ2FV|aKOhNZ#=1WEO3zMwBHfhm*boJdqD1alR|cdiCY%o?-GwI1+*#4` z_crp8WECpt@4!uoD@Y%9e}=&hyk*|EM`|&IB2FiP7hy-*uJV zlprglAS%GGyiLWBOAms@OxZi7^kpJMR>X$iH0p>c?=CF%`}j-SMph-spKylhy%{;x zq&h?Rej-n;(8(swL64m=H1&2RV%NlkSxS{)vowNxDZXi70=t##!hE)UT_xn|Q@4BR zd29~M9{c8^RAO?tZj_~tm~bH)7{E&zBjjHWE1W&=ISci`!Q*kSis$6&ydw$U1j?uI z#oalhVVWjl=7W?UG~6+6ctp-GqYa-L^^Hejxdd*iS?k+eMg%9r7dK7cyPnei>g^h= zeu;qz+a1-j*fMpXk5++}zAuMr5ZK5C4@RuMU__`<#}}xrn)RftxD3`VT!t5mvik>< zVfXYZCuSo}L9^Y2(EzW2mYU0IhL z9&|>m?3e^}akpxp^2yXi8>V~U+51oj$8(p3+qo<$zt`s%f98VSlK=w8q0mM6b3Eu?eh?RTHYsSIq3hlt(j^3R$t3-f#2SL&iVKz?HR7D->p282ms zhc_TOG&yXhbNiP++CRunwicCzy>Mw?TiNMiAAT8}Q;@(JFK*)|Y0OIPuPCvSVe$Q9 z6Z==TRhkeyc(OEpLlN~A$j%~rxK5X`Q0f~`Vic&R(GG<3z~TCZk2Jbfaj7Xm&2gsU zPa*4dZU@v_oN-~f3qTn9$m&@wZ>Cw5XKDNkQv7+x_2oyz9jTK0ObGmtgTgkddkU<5 zNve(Y@4p4i&H4Jtu+@aM z-wq=Xl*lWY^abN$hC{NIuN41O;*{VQa4^hgA#+Y<(OF(w~8e5#>JW7U*p6nxvrGQ|Cg zE+hS(r>u^&?dNO3zhGQ!4`!)OsC25sG?96ny*d)Clc|OK$rXfxjK3Yp$>x$E!@BX2 zCAWT%Z`!e|a5a1e|1D!`f+P>@WeaN#am+MsjaBwz4!lG;D(j9~s~L?@_vh>$!UOr+ zXa?{UfaHQ84pZa?+i>?wZ$xn5N(<9Mw_}mT<2;0~H60zkQ{}xs)4)AP*B0}`s7{bu z=%4yEAL*{!B=j?#i?<1JS}ow+RFnGPlEZwZ_~Q`ZAW82|A=9~>0XESZZYsMzy0*vh zs;N8S(_%ha>ohch{)a;UqNSIbpC_Q$77k1Ge1U z%FwEjN8)AS66*^)_JPpGn$zJ6h*jgKU(&zM=%sD09W_nKEa#5113TMX)wSu$1xc1yt+^Voi?L_@qNj!qC>lSw;dCWoDB zCdWLHa5j8s658#Nub2`auX3oG$XX!gC~G^dHu3yP=es*@Ht9QBlVQSkU`iB~6IZn_4D!Xew5XYMmNMgG~be3 zh7CyYa-dL3pJXdJadx|%BaR<#q7)>_W-O-S+2APAFo=sFJ~(8dU-M?9?Bx=E{Dhn! zkmqIi8*UZrMotO3*d62Hz$Bi@_@GEX7WZcELwGR4&}=;RJ63q)@-;0Brikqd@nFXS zqh$R^WmT;~zyo&=9ClQfadGamF{DR}-m@PpVG?DvNC-@{>b>w5Ul`SFCWzt<< z>(P@~9_z+1pp?R>5cWOU9G?ECUK^%IZ$D$hL)~PJKuyACn7jNpSS#o35LgYT3ZN*o zN-96INy5>B6lhkyeE+sdpCm!5%*_?N8Rz7T31Fg>gbCLSyd^R;??GS2wd~YIgoZRul%cr$)RTZ>H(x&f?nO;lf_EM^Jj8iZ zSYQi?iy-)Amr{JQ7WHGpMeM0Cq^c0?=7R!mq7=27<9Gi8G9o)v@s)!q?N&FdQ`L_) zaYBOqVeFW_1G)ad5i?Y49k{1UgQBn&yBq2cNYGZ(aC<}6FsaFDk|i5gc~bMwYiX_! zag_Iri~9QbH-x{ihOmYcIDi~BEqLx=hMj=Uw&*kV$xRrh^bD^va}eg$<#Y4&7TJh) z<>ye${WwnSJh@ulU=n}q=@!HMTsY6YpIc?w++ z&6mrWcuOch&hWu6^63*W{{|3RQ&rZRU0w0&TKnD7lp+NjbtP4h^A~L6?(ra)2--sibNzG7^ zXJ0gbdnoe<|A)Nce}B|Zc!W)ngK&i>_3z`bK& z_%7}zs}c+Z8H&XADVL8FFEjoh9G;htWWvJWd)Gc8N(fiaw~9yKI5i0|BU&pIgNUS$ zk`k=pDj~=KsSH~5xt02k|2GAMS_B&0eprcxcBeQT`(UW-!zh;s!*mCq{%^G0 zbHeQFZkx4a9%vHB_1dz3HRr&)!(|N1z{!+DR`O~TfBk&_d@u8_cTs>eW!#5-donFu z1a`gxTr2-(D&flZ7KhQ0u)@Qs0{C9|ddTl1IYm6fIY z&P{5WzBdW>j&?dy0aEtXZm-ViceJ5B`T;6+b#)~Xg?RS?Rvrog5AEX%4{M>7{^!q+ zMcQv;(0<=q%nrh~o2#31oBf&-S!AQxdu9lqEL63^mH=|K7o8{g@WZuV(dhPSX@s?> zr>FhZNY&n-U7gIOOmsbWZn)_EnVs%8&98%`;h@hZG&B8Ni&!Uy<%YVX4@LMh81=I} z$loa((*W3VQGNSs)mT+d3@Mbow~gyX_bXY|eGTS3OZX1K8*{cV0YLGzy{V7Vikq?_ecf(iiY}pH*clF83h0-3EkwbY>4;#io zwgQEVn2mkV|rkJYd*L*TqxzvY|8)n^QYFI67$s_@IP0&OYAg*bRA`fXnT9R$>oKG zh4Y_id9J*OP@j{b~GCef*tuCVP%IMJgpDd>83U= zHYZuFq|*x=>)*pITto)UghI@>M6CO;vPis&I>So3Y-4PZRK69CwktnpC|EJ@{r(`tm%G_~N z=qn^FnFM7adpz(c|7isNLBI4V-@SljBTq z09(<+Nff^HALu!5Qifq1EvLezVfRmYX+J$DkbB#thi>G z{C&FjD7?OhdxXnYtM8oATv$YK{}kdA8lFsHHK3la>5*ygag+S;!>J%s<%xCV+park9wmhZv2eP z)LbwnqH4EX5)_g9l^ub}6rU3S@9w*2Sm|nOg^K$=cs_L~(|)d8%K6%~$oJ-EW^wVe zd_*+5qJE6Vk-{l=@W-{FV7*<`<6oAX#DT&xXsM-vFHl^L#~ZjO`?P8HGzB~ORSU~l|fPS@b*Qo}fs zz)zNhHq`NVS0a$9;<)S!fN_@lfQw0x>6=B3Q9hNA7U=p46Hku=-Rfq_$elf%18eP} z<+Z<@k4@~=?M_dbIzH^;mS2Rw4%vuw#YH{?pxj&7EQHVNtf_Rh72~DBK_cEgIril) zGutq7Am|1Wsxd5Ae!vO}JPGNj!Wch-(UM1F{;rB=kQiz!-g)JN0n=6ueQy{#+oA7h}YLxc>dK zTG7cF9=oig8<%&t2tc{U-@!NwM@e}Hzl^a9=?d-58&;~Kz;NP?dcl_bL*H#<4u!KV z8DDq0-(Rn8XZm!7-oIA?XQ!l17$PClxiE20Ov=B|YiD4`r|lp3@Lv_?azS-*KP|>^ zO^UH!8vW!wy&(kKZu;RG5xo;xi zF!AuwFG1g2%(BrgC6|&NPu|V8{LYh*)0;KXHI9bPj*dZ6o=xEkWscm*O_&!J)G3!& zI+pyr*xEQBdJ6dvc1s>V)^<;C@8ctm2>g8N&MY(cS+%YR5eN}LfvfmC^5B8Mb{;jh z3K049??m1x($s?jT;%$S&gzBZPRk|hk*1k1hXl|Bu` zhRCqCW@Q;D#Q|AdxvWC5K%r!#MmeI=6U$kP*qbQulaQl;$lK|rscoI@EVY9XJ|X@B z`_jx*fA?<=oe~73z{b|eEEL7+RPxGuEnep>{;j8RSheJwKtZ^AVw9m zF%CSF1r-uGiO+!&IF>uxvE^s=NZqu&{viYP`X-muzyze(`0XMoh@uDsglGdWhGK zT3jX{f5mMOFRW`xa%<~|pRXpTL4&H{{ZAhhm_Rea zYpZHA>AYQFZEU?)`{oaox%bkeoc^&NTSy!SyFH`dBc!Xr1QgHx+b|@ean&Wz;Fk-@ z2NG28@~R{XY&L)U2oZ{Oj7~JRwz5@F76@*FPMqD@YTUW>bY=Yt*93|}d)BP*$F zHPW-80<4{{FcJ!t-%1ggVj_95qV#vi6jbr(F@K3Jx1%isG~Q!O&0i!MwYMt-L3f+xiHQwit;fKVVGnW3drPjC>3IyO2Je#ZZHh^?P@ zB)?`;vKKpVUHQ+-=oxhGH*Me4!p+S$s`-IX@6lX`GwB7ppG~F-I6zwI#RvBOx zDP$@wNQ*`3B+P>#SWq_bzU|;91={702!To`P`u?}g_{9R%*kCJ0Akq4vqpY#g1o|} zSLeiMCC5LGH^ek?@KnjD^G)Yu7=MKxslet#=n)n^&Tq=O%g|#1ne*ymL&HqwWc_9& zuCD!Ne-#6(u4j6Mg?xe)V61?_zVQVLsE~|U<2D<$i^Ai%z z+e_c4EAi0wyC0eFig~!jJlY2E@bDKA??hcv)FK)Nk=>99~*#@$GKR#)toaEhX-N? zoL3t*(y8!*nZ-g%5lW$^5CZdYCRoIoV>r&pn)x}C$NGw`w%^v$vRn=DC4b4#!H{Dgln2hB z6)Pe+H$H%W`cjmzn)x@#=I*)a)hEx-)dcieK!RXkffw6=L;tP2k0QBb?K+dLkG>`v;bMi_7Dw{3chOj>9?ZGtP|j?RHrh!3;MCrJf?U2q z30x(3tJxx#_g-7LM&5Y&*uLp|W`TAtS3CDSD~T?mI7T7^Eo1nczIqi3&E@21$ES tWjCmBbCM#UA8YLz|BVc!BxyBxNZQ2APc5_N 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 IM6N<$g6NtK+yDRo literal 46654 zcmX_n1yoyI6Kx{T%*@4hf}~G2@~lM`9m0 zKvaHE5G@LiMD2@tThE$%VS8SDg8d&OmwR+4Jle%{(bN`3CPBZ3FwSIS?K_f39wS-k zQO0j!&pyml_OaK44YJ2^x5Jke?O>FJf!r{W=1b#0g9 zuoqqi&ayJEd%YFTE6kW?CQ1gyte=k^lzj~yPj=3jd3g*-Bw%nSZ-0{$E16#U2#eui z5BmDhcy#rE5X#zNlhfSg)6Il9PB5$A9eTV>{@R1fI3h_&mixARbf@ zTb1F`hw#ZsWrX3tH!lc~jEgl&|He8;jgW~&w6GO=nR?*(Y^u(ydsjPd~!|T8jJ8a z+k?)|TC#*@VhFiai0G=d3pO*FbLm3R8bL%Kq_=(TZXeARfcHAZ%^xp)Jz)A_PU^pI zWOuD@2IKK9Yx^-H&OhrT6rO+Abpmk_#n8CYg^a6_g8ybsn)Jg&q7nMv8wMl5UU8c* zRi*s$qy750edZc4_(g&dlYXJ!XlV3-#A2-7k|!42@37`UA%J5qfIX&nj~dHqQ7Kqn z6h`40-hJbPHaX>&K59O<^UH+H{{XRk~nqu^mD1;-LcxW5}*y#O`nqPT&lan`yn1R}pF zztF`}nk}B^aeEp153Zd*?XuOSU_}ujWq7g4NQQ zM7*zSvKKigJ^zj2hZc1Inu|Nwlmoqw@@lT+gcoDrbNRf2$bLo-jsK9 z1??0(R0k~ZhL+jr#0(~{w>)iL+7|l0CM$xSa9T0+2vHXVO~4Kt&TIcXhA{3xCE$N3 zLQlfkMHRC##SWwUX7sD4i??eN z%!b3WAi}e4@@UVJ5i8_EC)wiHOO+W`X8Ei)W*Lb!~05c@6sbX4TI&S}%0! zwdN=px{Z~rp>}u@slQd)sQ?aC*SrCd*04$o_YXR@*15anamu&Nw+~Tcs6kd~hK@h^ znFlEZDmcwozJak{rVlOE?=gW#`_Xl>JNTAGA=__7BjbK!iuj9Kk*avNqQb8jYOgPpC z(g^Iw-SzSuU5y$Z&&v2SKSfSM_%hg#is5PuK9EPmT>~V(nnyN+hJB$xHg}$?U zjI441A%B*{K;Fgy$%L^93XBPsfAR+-_sPhClw1QY3QiMw$1-?ZDqEilt;BeFYCT|5 z?bq%iI9{YhihjL}iRNoOQN^>?DQWk-^z_F^&25sSMn*>H1yc}(?B}7ZBJ^?%RU3pD zDU%lq#15cKba65>K+BLqu*i3A)uB{Bw5L&)I0`N2*v zM}Oj0!h0H0Yd4?gZf~sH2n|pT^IGcm@9*yq+2!T)?yR-T;Pvqw@90VIy6p)*g-X9{ z$WQmBa(-4chf-4F6R?Y(MD@zBE!{`wS#o(paBvWC*IH5fwU>|OY)Qn>v@|GEqa&h- zi&_LTU8pG(124#kh?1x!%F2AB0Ivg6Vg0>A!V1a(8Di|WIKT3T(T2XY+oE6_ z7w<738&cQzN5{tLtZF0YT(x7wwh(i-V>+O4M)Z5^au7v#GfHQ@GZ2VlYH?H;-?&V@ zBHn)u3@Z!u==LKF<+DEADMLQ4g_xaPh)Fhf=pv5_6@Q{|WU^XWvltN4f!>+h8XpuphQB< zzfVjyJhXAnUF^KQXV-a26b~Z{PcYnYA9l0z{d3!jP{+aCQ#vVg{$ZMaZ@Q!?W#yKb zP6yrKCs7E5LLe0~z%6*JAG|5)CCU?<*YS>l3Uw~~BR@+(7G5&-?3&1e17B8$Hdnel zN#7qYWVfaG`^)KU0<1T68`(#bM@8iDL;}SIs-JSk1z%f;C2=DV!b3ecFt*d_C z`SPqgbD$=3Jdyj+$o5b?-It1A1@d1O_>1s=lJ)UR$ws$~>PYWf%o;0H!sNA*9Pyn- zf^yL~$jM)uGdi{JMr?bod1PIJ-Ic!8Vu0&za!^3_N;)X0CNnJoC5L7u1i@3>zlE*C zBN)ld)3(sq8`yxUcrNlGMxz>ae(g9rB1sO$h_jY=V8LXWs##LtBE#z0bT~}3l%pPi z)P9bzGPoPEs&3?odw$L!&?^4AWD+OH45Escp#s*WlxF|VoAUe)3OHmIJ*IM!kBPF~ zzs}>UNlef#bUys<1i27i`cPJQA;$?`SGoVq9k-1{KSTqQ7%5NV)R3m2epm0oR5i+2 z|2dC~{9P!h0Ww`LP6WRx(mizh2?1k;ujv!G!naF0Zr6$#(=M6yNaJ1Fkup{!HnWHg zAY&f;UCPR}0pe5N&(6QM>^a=feDC8E@)UzoqWn2?eHG2(kaNf;U~lb2X7|u29ZJgF z*Xe<7hW&VqeLZ&i)ETj0=dO>H3W<`L<`3zo@X}&SlB!wg+1OAqUF{U1IwcDgO~eBM zVGdN)*cjd0YX(x8w-N`;xSY{q{L_>pM1ls7G%7aF#H5-8mSC6mZ)Pbw{%?j~w?I=| zc`>5b!zFVwE0**hqN$S*bkx6H#u1xg`)^SRU%R8axV?1Ql=*Fi)LyhXx+%&>W3VxG zl)su~#wV!`H+)-Y#=e$<+=;JbE5frZ;QqAbgXTPg?ZiC?b;>zbg)>?!y`! z#+0!WHPPdS1#_4aFnM`|gnY#sDK0q$gkWU9HPV;_FGl8~6Bu5!z7Kz)O8*c)Y|BNq7{P4JVOJSbn5F4mtOI|>t|z3ju@gCL^D8ol{`rPK^z8Pd z+#1yW&AO+xvD#t7fA;^@zfUVT{&|N#tb`(IcRdi!K2G|_cP7v*RGh}L{13;7hHcA5 zaY%BJE&=JZnaW~ZwXNqIbKlj;fXgSerLovNvG588y}R}}o$~f~Q^FuMCPLF1ZIaLc zbIyIIc}C@|%*^R*r>1rpMgN#+GZK_9=JO_<`&w#U7ketl8XA@yK&*q$&M-tfu2geV0!i8ra^H z(=E;qJynP?a`?myUmp=@ZYxY@qS?JIhI*@wLgiTE*pQQ*_6{xV1*hm6iDx{FM}o~9 zbsZ5{njXpF-)|6Xh1VC~2a~>qecSR=Q?V1VA}7&26X{BucvUs9ILH^(NcZ;Mtx&i1 zi4j@Tp2{)WQ=v5SKisC_F4xYF;)9k+h4fXX zXVQ|(Fim@8Y;0pvI(v~{2-KIKKj6JKd|-s?ydCz zoLAC?Jt50tVLj!$dE1ZP+8Uup2)w`80_I2B&e_XutZG+;w-ew6t>g<}9tM$*{!$IL zDZ(?)-{18Wb*syBGYR%!bPB~}>92*Kjpf09_ae%epwR0P_cIf*{W;a)M48);H&MHO zWZx6!7w)~<-LpeOv*t$DDHq&8z&2{w$M^Xw?q>_?%zhkvqDdd6N`-aa_;8U40c#>d z_iezu=Ki*+NqgSaa9R^al_;BA$x3VU?t@FVA)IZ(@+bME1X&=$m`&9Y_2Xc+xA7NA z1mJYnev0%cIQ&7i>i1C(VOYtk&i=y)eY~k6bO;&{0L8+1DEh0KI38VF*iP6Ru~SzI^@h4g z;)RXPf`l|ob1junFd-QZjTCE+M1rC0@(^AbCi+bOpcd$E6Z36R<`$Q|C^y=o^iVd+ z+>eGC=?evEy*gnRDpmGi)r z26eDV+3cb!@;U*+iaZyYJYB-unS;q!GjRfrOy>%vu4$lA)sV79SBg}a#>cQ5fmqMB z_T%fXgQl;<42Q>V$q&#UOVuRdWd3G|CnT!n?_ff zV@agkXoAGtv~>dU_$pfZJeA+n7bzI%Sd$o~!KK)1UDr&Fzqz`336~-!C-DRG3GtVa z3h6jq#WhU@7=KGUZKdo&NkJD>V$Q8HNCSb*dK5G|TQc;0GOL);CS+S^>isY;s2Kwr zuN`V%zXF=#?}F`&&1GKWoV+~KN>mX3e{}a&H7P~KFyo!*tPaGFq!^Ht-CBLxd$%9X zba$Fr8-YmCnnTVq2vGInEg7;PryMejhbFJ140CN%-=zPSn!DJgMaG~gMAc1Q0^mKJn3Uj?kN=W7**6GZ ziIhqv97fHZ)U#!oiNrZlm*aU)zM_Y(hacjt@m090y_K%mf9@^FACSj^6tcXR7lTY+ zQ7|VQX)~MxkP{96Y7;I|>wA$2zf~T@EO|10Bn^$6ITfR>q9>{8R0=$BWVD%!H!8$j zBP79-IgUR!)u!)bpzm=_lvnD>9{h%wUlfm#H{!+@7a(p9_EMstghRwU4Vb{|xCZ^0 z#~%(2lx%yi!`I{o^B4!y!Em^}S$og?d`ix(N3i2twcG&C^Rf=-4Rtxs(=2P z4Tj>5z3{nTLFs#Jsin;#eW&~&t_*)oN{mVb7w0G)&4quKoI6D!FS8#JWcjVpl*!_) zMG!o3mDK-j+#g(hjNhT)s_k2y$!`WjQ{K1uO@b+5CE0i;(X!D83SN$OcDAYL5bQ-B zZ+D3bK?66mjRZv@8VFn@*KpXW%yV`1`G}!+>XkCQEaqw}Aub#qhRQBrYZc+?>S~nW zRwHN+C5|rOmqJ5OlfP2U_FM${CooXrM&^_yef2vdu02@~6K3W}wM2oH&5D(4i1THJ zZZ@)wZq$!@g~3EbnnsMYsrjqEJI2mW(Tu3SB4}HqpdFMpLry>QuGaBif&Hy zlf082DiRaJs&$WC7Ysq-UdwXq2Y)J=uKLt0Y5UP)iEg~*>_7booz$h6p+?)MAtfDU zLp$Ah1sY;sX*Tu^+~q$B(|@9}WRQPnT(Vi`D$>7%j5#I{)7ANL6zRD2f}3ZI(5Eso zylksLflWTtTL^V{C{MrA3{QI_OcA%7VCtqT*1dL`;q+c{pbol%WqIguqA=+lerwDMePS~D7``O55J zx&8U7vhtznKTI%*po3U3<#LnLq;(GMq8GA%NUgsTJ+l}+a-aXNgFq+4MerZr?+2Xw17uZ&Kk24v$E%f^@*X?bCv+vL)b)~(6cMkmA@m8Z2qhq-eE;zy zvgu{}GpT;&hPzoL_)tS@ZEYFuYI^r>D)0uqHA%cKWu)%ia+&$cazp-97X4xJluG-n(kn^quh}8UzDZYs?DQ?m z4vj3y!g`8vE57nmuC3S??AuR_HTYsTVTLiO=uF|LDJuB?NxRDvPP5T%PN&W?Ppqtk zA~8>J7I=YS=?G(e9|9P%y(P3XgkMDz~|o{Es^BE_gGlZHvl9F4L~RN-6R|Jv^ix3s8r$jiLylS=_SP^|@NKaqYUem!XU zJX55A(RWX)unT~Keo8-G??V&H&vSgXs;akt=j=Zy*{|`x0of}%7K9`qv-&g+^6zGS z56(A?iH??u@>_sZzBVhVPC0ixw+_+E`D46;_H>7 ziX!Oq(M?ewcPjIIC)lZ&Ebd+sS9C6SD*8D2R>EFUXU%?lUcrz;B^t&bl$h!QJ{72- zRbR{vzw!J!SS9mIl_^m|fTGrEc|hwkuSJ{tUO_St&@NAU*&s94h)zyXJf4>zSVHdP zY29AYq~+gnCbhZ+NVqq*4Gl%yfnRAxFkkzuwN*)WJ^HOLxI_&jCKO2E1d@`H&K7Md zb5+j7b!hY+yjCCnG@sa|!$c-2RlGh-;HBs1n7}*Vv80kU*1q+k02Q2f2ct%&k;GF- zX#SS5U$TC4n7A)eXoXLmQ0ls1=|G=nwsjN&7hxdp z49Js1XZLd74(3Lq5r7uH9mU%3{?@#w!wCua6z$)`8b``{_z5!_<2-4v7pF0u?KkdEt ze8?3Ksyb>Xtaq|Le}y{+qYrXLqjsLpcdS1~5*QaZFrWk(g9s`8DxTn@T8R z`S>`q1_bG>#l75$8{1d;i-$#q_v6bHsIWmCPkqm#vhkdpVuctIF*yC{nFw*}S8)2Z zJJbI-Yklmrs?&*YN-b>4eMbEJ9~!5Skb!d#@P@Da%F)>L9OlvPoB6OE{;+7)d0l1Ga$ueg?Z9(D_iasvP7c6*+wevT;?L3dT$ZR(zR}NNxME zbzV{aakgp}y#SSMv*4m;>bC*91bD#gS7f8$Bo!nJ;rW@mh z#trXwxxAUGf;T_iALZ4a;Qv}n&wb+}_TV;-`TMKy>ss?tGwWN~{a4m2@NuziT%?8~ zt|+S7v|*QtAX`xTN#25O=(8O&0T&S`Zd|`|*{s9%5aP~Gl0EPuP+3n?5;gRO;VXCt9>0GNQM&V;Ekq%(j zqVoETt3^LuScW;p z%weoti<;^MONmx7jzH%z9p8nrCi8?ATss9LOB9e%e_Seh%HRhIeE>&e|8|zsTo!SZ zHjx)0Ocpl`8oz&xKyztW_y=}55Wj14OihZO`6aFXl5lWUY=A&!s+y}PIK@8}FI-n} zUizSb1na3z9>pT4XN)`5Jks&9-sWeOcg4IknFyP-I#sj->n%BG>UliZ+c=|)6Uv)J z%0_HHrDLNUu(SOg>dw(G74f>T1m-MDPPH1}TvRTBsEj;zpR_+k_bMXXi7Q&RATm#S zHCT%|)VwCbI?=@393_bmmw$Ct`v+y{K{E*%8KOun6H%0rl@+@1!vX;|B}IVUjfs^N z>7FwgDmKK>+?;67nd#MH37S)ZN*C5g$gtaJ&?fU=3l9DRLwhz$SCw*4wrG;bUh40| zoVRW-$D_AJnD_XS z@wEL76C6cwhq73>M~&Klj#o=pd5hL%!dCrppu?Fj6b*)Qt{}jK&i13=GyNMs20D3g zDgAR>$B&HM+H%O(BjSlcXR;+r1b(+;NfUtdn#dQww@5JqGMdmmQFoYZ$`Apy-N2L^ z!f~#a0EWmNqB|X2`%i@~GCiCFjNR|C#*7vFhBKiQ3t7ReCeuG#L|*hrm5mfM9x%uY zCFMmfStt3$sh7j{6<=2`3TzL>{`^c~*GIeQDKN1k#`OBI-bY6#?7h6Dvmet(|8^%H z1;aQTPP{f>j{Ih={9P3mMdXiT;2)KKL5mS~f!YxNeNmBzFuT}k3vTJhgR5rlfP9s= zZy9Z~(0_)iSfP|Bg>R95mqh@twHDS`XqwP0g?P4Apfiggc{{{6=c<>59!n$*rVN;J z44A^?tN5wYM>mRupLk=*`J)F1qhyMv4Wsw0bB&6tRO21P zb57r-l^G2~4Ch0?%L-_n+V?ACR)8PZ7@$d#3;FwDyn}B&LO7#*|7Pqn*t;w7BD`UP zf~7y0^8NVA)10+?YPh7q&>?RbC&i>QMPrV5B2cPYY?|Q~?oMt09lUkwYBoxB{B6g1 z#F!64;IE*+_+N(5#SeCFZl+Gy9%F4+%A19+B?TUWE_L^g$FcA(=8xer2$S!nU#+-7 z-x&1ar91MqpN*^4P%H<($s|KQ&KYRbAsaaLW=mhsO8DIIMHb0q%f`5Kq2_W~s=p8E zE?Zze`imUR{2V1Yp{{06q6ZRVF0s8pmO;-m@|;miEPPJcQ;`|_Sc zarQ-Xw)e)zAiZGbvEJv^D^5<%#`VzGAY24R`h=A9ba6jFqNgX``TCH8H#BQ?WL8o} z^h%WYk4exV^i2VF(``J(^ce*rk{VNp)`gmw01j5ZmytGiu zJNEx_7XP0XAa^YlCY7Gfvs}z6Gf;bJMO@+~J?0y{4I)SSs7!|Jsy#@IR{W zVG;%@=H?OS-*p-T)lItHI@-JjoG+9+AX%Pq-o`u_rl?2+(@AHia#fIs7?ZU4c-kXH z^gaqZ(^kDt77tI zAl^dMbPQq&l+io;V{Fu`U8vy`2c?b5PI+U zjO%ELI8W;v+K_2!B`3ZMF1vo# zN2jd8v-MKFowgVw%Z3V5&+wPwe?qX@+gTK91|aEXvsClJ)Jd~7qQzL7WpoT)%|edi z7foeXGeI}f!lJ{U7zhYzBeELN913oQN}mJk@({oY-C}>lsH8?v~K6)13)rmWl2BK z<&~Mko(lRNS6$eMc@3~g;!-#i0=R<($~`Mwq-y7S%t=!Z-A==%99sJNdvaP>EmH)4 zKIDED(}Cc|(&nv!5!aeI^j0ZQSdnAYX535p3F_37+rtDgBs=vKrm~TnQ9l>n4CfhY z6X_}_@R?yddQg#4R9nU@D>*JJn4~#Hi!81-F}=riwB`7_!v-?N0T0+4bcgpAd)Kyx zeM;U8mz1yu{);WN0Y^Lw6$BxMmQuYY#RtLG3iG^rmuh?;cYz%EogAhAV+m!vSt{w~ zFFK6Wo>;aV$lisKsJ2C&YiVl@vZdn3gn0E*wR&Wwz9w&}9-frvHV?S25< zBuqgcB(lS%KHML_=vA&UCj|0;M5wnjay+N8UHUc&L%2v!Yc5V-Hsv6#)p_4~CZ#kM z>xgN?Kwuu-+&9rVOQVh4A4IP18q-=Yba}F}&-m8o}jL=PZ0PWofkzGm) z!ZuPp2|WM68kGeX*KrK~jjSt))o%fd%in}3$V}B^XC*N0m@BzZ;Oky4bHum()lS}( zcc`aR9>f3@Xf-{1w!W5i!l={O$s0RQ6f4RXxikir8Q$aC@%@0{phUBJmIssW-Q$X? z_pztWt_#78jpC2&35e6~LD%G0j49zd!emh&ODsrb+jAr+AgWT84*}5dtBBy=h>WWB zPT`hiZ%!*;JQ1d+B_>K|$@X2Svd1@e(lr;02PWlul(!LVXGW^kZ` z=gX7=@LMya-`{|H4`ljuR8mO}?2wCup8B5vRYoLsM+u)ae=sp^P zJjF7!tvz#)e^qP)`oR2Ny~_i?j*Ku;)rnJ{^M{=-7XKoFugI%fOkriKzaU!_pL!yp4hLO0m0gayHiv`oRmg0F0e#!dnrY288YifNQ-BmU`l8Dc#p-07F?8GUIdvRa z%E@K8lp06gdupArSS;s1!y5grfvvpS?_8{-9!!^mF8tYUrYY;F!t3NWqeo_5t4wI) z+6*26zmJo@U~#l9-Dv-64co^i(wBaka^_LwL{Q@VVZvQvhun8+oyyhRE$i9(hH($z zJFPb=4>yNkQ`m423d$5?BI3m-`h-rVFfi47aXddWL~E``y(@$*N6|nHU_Ykrj|;jf z;NQCzQ}j|ku6;oREe@7>lK=t%plC_6tJ}&$ZiObk!vW5a_CdBjY&mXzr&44|%M0qn zX7|7TQ`f(E?PqcsjP~LWuTvHHa%CCwgfzFQL#8pNgec8STk;d5_&c|QqxUy>CC2_% z4@ukObju80IewmxJ&gNfGU2=TM8SkvZoC|ZjPt*ylfQFGGyf9ilp^mLkPuz}S(e%G zyWL-$fePWhfpdz_J#&-=q1+>rMnp3i7Gb&hr_OvKo|&>Ai;c}Qtv4QoW@}3{ zG=CqSJrOY_j-9lhgFy&qUs&s^rUB&^^-&()Cn33lA2*9{p#-4z+uoW!pd9x4hiVh* z>Wy-VJ9$J$vs96h`b>P<=W>muuV3=tK{`#pwgm(gZZ(xkxwxtlXr zJ_jde{il!-{WQl;LC15&=(vcO=%!>*JAqH&v>k|HLtqd*0AD*QhVHK9ca9n?nR-Ss zp)=s@j9uB3UdYGuwY5}vpiVhUO<)3tN*Il&cLzGWSUTJ&Z_?k0gvYxv9FrKaXeR(n z1mld6f}`%%p*diM=`u~rv?*+-xJ?rql7wc389QP`NI)Ybyw$rYrI>#=h5xZu*MQF{ z`7LE0962qaf#)6B8%IU1UUoznc{0$9i*)`zU_nIU2W3d4-l`(o_3rZBm02!SG1L6q zJ|~b>eIubG76|oSAW9e-i}Ba)pgMw`yg$J=U`=l$$D&cyeJ8b&w0-q^jCPu3UH4O92=+RGn4yCM z>1=5j0JQ;QcXj!i)Hx`kBibMtq2|}5Bc--x1wm}q|zkC(fuX)S! zYax0JT?_Nf9a>W}7U?$wqxYS?s9AuJV3PHrQPVid6;0dFZ`S2`(dQ6;=KC-^PpQ=A zDUYNqJAwr8%~NB|OpLo-iL8ZRk$(qHp$9l=r9PzoL>am}<_^(hBUMkkBq5aI9LdSA z>4j+#tu_DYi^1wTk}V%tx=-;Uflqn-r(MVrTuj;0jdG{=kP^GQ_l(gD`?xzFi-85y z!sF294uoG1WoW4IO1{t`d_^jim1Lx8Z`BnA7zUtvNW}Sd*bFzS_vWec;B!bs9K~zijRMT zq25}qVY9YZl&yEsoR1LmbAHSNE4IcHZI^T0do(4bQ4{x~*5T#pCZZ_Y_xE3}hA+Ms z=`Blmws16jkTVAIiUA|<7J>Rt8+~bOd-7~e!yJkVj>`|raE-#>h|m=2T1g|X4@wN* zjasMC_%|8)6wvx>7^4<`bv8yRW-n$~tuIG)HEwQh2IdBTgR|K>eP?eKG^@D5CCH=5 zPQi^%UgJ^w8nckzF~@e{2WYA0;qbKz%<&6Dc<-K_BdE+ZXq_?T;kZRn;DH&hSvG_= zo~kAeSIoS!4`8y{AmZsx!IoAR(rte_H;j?%Gs8BSY0^KK?YxW6tFj8?!sPhEI6Z#; zi`WSCZ^f&apMDzxrI3H`=Vfeq%GRwV5}}=%9Z-{e-ryw>?th9K_Tbm>pDvlMtNl`F zzWmK_kQnC^|7{JNf?HVmf)V?Fc0WJXyG&ZGvDyE20&K9K-`;DC3q)f8?r!8-x z4w?buN~-kH9JRDA)~Bf>89K;qd*?yr3u4wTb@s{Ui{&e}@R%R(gg_{NRhlPLz9{z3 z9TP{##YM1T@(V%bkfsX^8)#dzw0alIsxUMXt(bK7)xN4Hql z_ABCbwMgNO^%e!3Nm4*MoTVvVun};PHs-5N$nUc{rwx}qcY_kg)`XjK1lV%_y)K~f z{%b&9rz0r#NGexppHgoFTFId;Wn0!^gMdG-dei+X*AnnIb|}6;FU!g7`j1G@2qf~g zv0JP7m=|`)Psx@?|EE;oDtbP)G>jZ%bRmwY@2R+1 z&i5hvyMSC(ff}X@WOAA^bIB}v+BaHaXgp&-%n|D|rSsPFRH!3-1#>f#S;s5?N)ef> zH0k~~7x=08R!=3#uAPrpJ-U4164*}nmB!9C0nlwApZR1byLkTCVD=qrV-W*v=AYFe z9idBM5Ray@4PES~mVYkYiR;&zxRfa97Blx7a&hGCG!^BU<{DhzJyvnm!kK$d7K5_0 zyQ|DhgrM~P(Yh}3rriy;?9lH3nxLneh5@<8r%!@^Gs|-Jk+(0jnORht0(*NgruOn} ze=10hbi+h=eah5h+lBClhbe$fqE-f_eENG5)!r^Z79*Aac4%W`Blcs2vP{9ZW|wWx zZV{Wh<`FstDx#>|S!+qI!ZL$*B_B$TMCS0j)QEoW8ohja@u&ZtgsfEa@T&KD2~q)P z-&3ilM@w$Lbj8q?z5b@+`glDeV87-hJAvwm!>YujFYYO1+laq;+%N)otO7frW zjb{{S(^p6)IUwLdtBt7w4#y_uq$H-Qp8`{RGo{*7{1FwY{%8Tb5_m6d`>onoM3`Kp z$By4K8AWlDIl0w8D7m!$M9r^7pxSzkU|Ip1-h0X&YXk(vc|{19RTpgXs`yT0O|d$> z_EcY+OVl_&L~4GsOF_py`)Hcm7-|k0G!^4^{xbAx(iA(_kKp(%(i^2&YvmtVqiIz~ z0wAWjpA`uTMRR6xt4s=6-Xe6b(Dg`;&-#V^)T_O%N`OckYV3fvU`y1yfxB_WBM^6> z5m&Yj$Y3~_5+hqXkSIL1Xg^;gxXOdk8nD&2Z5D(^5O`efquJTnS&GF9gH{E7#%^zK z(T&)DEl?&T!g!hGA4|q7iO+pGNy)6mc?xpYh{L;}HL12VG*9TiLN*j6cP=NyNt~RV z_`2y624zMQEERd6HA(|=Vk`ce%+y3t-0vfL2Od>fDs8m~v@q&36V6UeF)%DTb{t9B zlKQrXGndGB9C`KF#vC&Ara|11tiESI&(?xEXuEsubx1}A( zbp$aFe|z?SLZR6iqS^G!#n#Gc1@$LLDvBci2@a~im(EA@7(o;#{m%X~16kCl5`ZGs z^)=&M1r*n;-F2tQNl6p7+<;=ix$S`sSRxo_sMbj5@-hty%K5w4>Z7ss*o-;8th`0q zP|>=e(naUms;Zn+H3Ngyta`ftDeY++UEbnF!!Z}C?3TXAvkFXkdv|mi(+|ahRSCV& zKAr9sHL~oLMgCQtKDKw$^Vg0hb5AZZEdULHG=z{sXgJx`9qZq~Yr-gg2eCPfZaV@B zYq6g{;he%9jmAsM%R_dVvJ}O(2F-u&4;J19r_P+8pI2Cd0Gqa-472?{oK>7Jv|*}Q zaODYX=>|dB=IPDq7U`!;&bpWUdMG<1qqSxOKBfAPC4=DHE<6_YRGp0s!>fEMW^7%y zg+7>)N`h`a<>U(Yd%0n3-mB6q$D&)_xS5btD^n*&?;%Nu7s1M(4$$taztGYt{i&T>Bgm|lJNrsW zD5Ol3*9UBan}$<&@4r&r zhl%;=vScE|LA#J?U2f1`s+Z?qnr?K3bw_xleHq{LsJW`#dFKAcPidwic1`KL$**K! zbxL*d&|%I7AZbLbP6>d8QfHcze>OO#gC$S{k^k?}(D}sct_n^NPEz!J{3m(CaDo66 z|J|c6@izg}@5-EGW3zDUu^1Vu-n{W0YpMv{^MG31h>mYkRImnPCeI$Y*a3NBnhc$> zyQM3xjwb;v-7x(w;%T2^F|D;L*@LF(0*M*E3dHvmoNsO8>8yrBr zuk%BpXj%mWhr>>NLxcAFK=TrBWTDmm;i_!GFB8bx>($$DDXFPa^l(EGwR667y_WDL zSK7ubel0bfz* zF1-C@bfn-NBnN2i`I{SdoHtzO|L+a(7m?@xy}HgP8HWHkNT9Q+=wFx2zmE?H1X2E7 zxwOyx(GU9H7b;XQNko7v6L6PE3h@7aqETUz5CwNk{~%!Ea{}-^qlW4O$l4$SB_0@z z?EQS;jWSI+VYVv?U2u}N6PtV(a8GZ`PyVgIm)tTB(9NpfRIvsx3JOL}2hqQ9#{VD2 z{g9^6yY}A*RxC~pI(3|i)&7(W98sS_R>&z z9U4{R7g9-Xk>=4~8a$ulBZBVl9RY^@_I^$gb5`^6kC*VT@;PCTa|Ct{j$fJL|3)Zi zi|!SRa7ggn|KhHnuQDTC^RI^h1~hgxY33~0ilQO7!2V~*x>&(Mka0Ch`)NoA5#{~F zecJnM!G~Iqe|7bPCbaUJG!y}zvvTE0Uao;pdD|(D0`k5p^P}}%4KpGEDELe|PmF*0TVKp`qb@=wL|rq}whKBYYcl6V-8--tjqcAdBzHFCqvv3TV3n(5k`1 z;xtY2L4V7it8~Ehf^R{V5&r}o5vyFB@eVM~AgMeA>Od0$TKD6oA|$HQ_M4|%1d!j$ z&5L}BIf@t>Fbu_rf`T_&7esx1zJ9YF&s~(Q22dgI;-|5z|8)ooI)nAFz~q!K@@Gj6 z%l-ifn6pgM^zgL@30$95X`rkZg4xk|dCBp-PWdc~uVprzo!S%)4~xsuuLQV^9~xx= zPB;+~h(12NAiASzcdQxf51>w~C?KTvppM(94&2@G7f^^8%Ev!EfzQvrAQ2iPfHi@$K>$2FGTw4K=H~mV zsl$ex@@ZZx_~7Yk)1ornOSAFh$xZV2+CqoddYV4irDN{i=Rd-hHU$9EyRG^(4D4Qz zkPMi(^MnBt10o0@N+N{h=w@{-XT%x2T=64-A|wDA(_0q6cH8G%j!gm}U;|KRDgbk{ z?lvf425Y7Nbqh2`0yL%RaWjq9BeG_ssW74@UHx=-o*NM8<-o5EV@z<%5gmesB}LM? zvB3fClV1yvon5`h$6Y7DbuKu;ax#_Nx;-P@+<)eMypp_@Z>w)DIIHJtsGCqI<~M3% zwQ>L1(6(u4y6R@o{(nEo?D0A2kZV06M^$FLT>s44TF z)!^E!ADV3RpsB?3&dM!!-^{=Yqe75TtF@qoRzGH~_Yc&|)Vau9)XE6$G*m7gabDJW_OJK^#^H*7 zd=Y>iYxak~bsZUSBm0{bx2U#mB%%9i_DO|eO@3^x%=yx%^=gce+5VLgcbk|xLi!xE zInP+I21C8IpZm}25AI9+_1u4SoDT4oDKy~fq@9BaIA|dE%gLhpD{1G=7;cOZp)JP+ zLO?Q~LJ!Xsmz;M+5HTDonLDuL+CL}3my?US_bPicVO;7nhhMl-ls=`Z}|r6hWI8{?1HDyaSb&;!bBel}*{h2MVFZNsBAvN2}x z{y)pstC8|0*uPEMm2-vk$7N3bAWiZ1&&@mV(tx0|_&w_HF3^9Cxhoz`AGDG}r1AnZ z%4)9pgoSaYO{;!FNlemCSy@>TKtPS&b>hA~uDxA|nU$3`(;V>B0F79zQT7j_{ixf% z!w_B1E!V)zaJsy@vho9&K!8dc&}laQX_PZz5WomvT%ZEaNQ5;qI%;Jg$`53T%)^W4 z-tc+sos}FYj%4$$kSzba~qN zaQIF7fO$}HhG$!Bdpm?gj+Q9OD!mzFohy2+=Hvlz^5MN?&9!1R3p2A)Ce`H(d}Zu9 z)BEVs8mFM7;zwdVx;W?5l4>M|7GNB&Hstrv zkPQYsAC5mOfjWWGT(or}g|43;wxYlpdUd1BtK;mKyM*+#;FAX)$1Tv*9vvt$98k{w zERLAAt}`u%D(Yuv6icl6_&`Krb^OCwc6BK&(k6SCAVBm1VCe7%udFa{p*R?Q87Y<| zdI_%TIReo0QoM{fZHg;qxdT#4vEokeeQXT^Ocx7{Soc~@pSh{kF1B#njG^V*kErGX z6cR54A6J~29S;lSrZveGKOG%qFHI_Z*D!%b;xe<;UZz-ozU46^!oXiFA9E<0Y)2_$ z$9Cy(s_Ck>UYboA)eoV0KC+>tf4m$?*7U~y=NW%XC}w&YSvy$Jw*>)&&dPX$zI%Dz zs#F{1#l`S_jabp@xhqG2M2RzU7Zqn!fP(aMAns{-l0rdutf#E%;r=piPyA!L5 z>xo0H6X*x*ymSdxBq)g)cT4|I3!qdsOS=@+`@KYKC{6cw7$|lahX@ z%#Vybmd+`&7XNBuZLGt>`=KD=(N!*rhyLaXkyP;69K9)RF7Wg8#nB~)9l>Y4AceoR zDArk@*%uCH$ZGQv^!Q7cMm1Ne<+apwsHU%vww74dN zoSkKsK{ro|T|Z~!FJAqkfMM*Pr8PBVo+clP+-OFS>Ni-~Lqi>DvWxx?ZEqbF)ffE@ z4?~wAol?@>A`OB{htl2MAU!A{f|SyYq;z*n3k=;bgmib$JeTkLd;WOVyWT&ZKi;); z!Q8o=d(J-l?ELI~r4f%E2+KBxI3AbNbw*_iai}a;QYas39kXUA<4q(f_bzmr?dv{) zaI0JBMki8OL;Ix`AhNo6g7Wh%0bdVPOXzKCiZoIX6Biep;~L&sputM*_8S8+HYN?2 z1Ar>sy?Nj4o8uLIEfTrdcr>qt2qUvyUA}bqLL#w#(6CkS7TA0_>FF;NZK) z!qfTxsKf^uV6H?Ib#jBS)E_>{}cYAkh<_=gr-Qfs^k6}1JUQbD(*Ti z_UsrdOAeljIoa232(IT$8un#fzT3BeByHcKSh_9g1(1mM6o7(Ba1=~qvChZZHi)`G z){!2IuXsCRFX+KXe&{)=D!Sl!lX1lQ{iM0JLc7rOV`_~r+M0EBoDUOd^B6WeyJ{v-9u8ct-UK^oK{SVwOkvt-9Dy z+`i8XK&k@&tgN=Q65#yg1^0BVmt_s>>%EHMy*Nv5f2*SVzm7Wzm1v0r-3%(gAT)Hx zmjr?%Jb$2GE@Sdc=D?j3#pVdWbc?cise-0p35ziI4h$5L`A0Oak@d%%y&>lNLMs`vAoEZJWyMJ^UI$405?YY#8Fw6$C2J)(X<1K^S?DfZnyJ38*&c zIl_leyBsYcI1387>Eqs+n3&)L_9H+4zv016z~|Vo5lU-xStCtFdP%@uXqQS3sM|m1 zuh)D9Na5J?kru?_CVhftZthh%r!))Npy(anq}c4ZFS+ z+rOj$;LQmN#Jd*@J=I1PITaOnnQyn!EclQXM;Vg-?$!w?+vTMEMU{*I@@;SES@>pc z1hne*TbyW3okC8Wi8I0>Er-`nB3{Wv(zH$JUZqE}bb-CQY=)7F@p9T4S`mqPz_jq~ z+BdxJwfy5ploD|Y7Alb%y{Ta@I;yIgpE`$`A1+iy&z%u1FG_pWW@TRDt-5F3-+K~< z#XuecM+5^pP+@pe9eR%B*lol) z&pR1>L;rbx-bamv%`n@^+92fP{v4q!M&H_l?>QC-akmeM;=M(L=}8ma1rANFb0 zCR_<7r>3{;d9y*x_Ubm@p;hU%EE@%@zpc(H&}&#qx7?!G)w z_c{f0v1%HBUYS3rE_}pq#XV_Yn_tJk;LEnpNdOeoS$q(An*% zmk+=NzR1wgW&pV9U(Lno6-N!9s$jaJrbrYpI50RdhLij@NMDu%aCfs zC;lzt_tnV38 z{0e(2>KqpAd9f|&Q+*wE-@f-eqjTIe3OYPTDzz@(H;pbSGcCj)FAcS=kQEpC_(6Wq%$T%-HU@=#fr)H$BzXqA`-20jN0ZU-%9 z7s)){0Ocg~&%Zie1MaPSx71=rM;QtICePNEL7PyR^svU-R+{rvUC0%<`#HzH;M<}D zgO7J~-=}35rt21-w_ka^8FN50wRLdKnN|lM6D1bs-CT)*ESb`L9m$ja664@l(PPS( z7Fqndz1?(73Y!hS+9{e24=C)&=);0IGxsU*Yji|;Dcg!tt>}|8h`~xm>L%+Jjz5*v z?bn9w-CG@-F0$@EVItPcoZE;q`vF_W73f276G&L6N1ep|69tCZ&iz_`0MK9NKs$|= z!Y1}7RI-C*vV9F}r5;VPU0oP}Mh`~E23nE;$tl3uX*{e)61y1t+G`%;3G3^K<1nPX zQLm6Inr{EQ8NpPb9VxI^fcfsdTLh>gf1$)2uz}(>7NF{|Kkc!>y$4t_6EC(awyN}4 z)>N`JlQ%ZqEI+NAAbRZJQdR`*T$f*dIc76dsggjcxaIAexb@N zPj1w3;_G~w*^q$rkc2p+b6s?72y*9AWV{Eeo`6amy)rZa5t^a00cg;H?R%ix36K_% zkTk%((EFozt;LlD6gU8hs@hWPsfo2lkO|p^86Ga~Du0&GyW!ziHx-CWY(sODG{Lq~ zxtGG`Uk}4DZE|Nn*xk$1zn;=7P0(F*thEQ3{(^m*s|Z!uE3gyy8cfJKySw=SUkZr30j0Fq z*w{coD=rm2i~PYj7;wl8xV{b!3R}d9ut{y-bM}}?07A^HD%k=9D9**@;PTRDSWt?q z`rI{K+{54M%n;&MksLG=c@j{sxNoQLhq1bJFvRP3(5$)bM6goZj7y$-~uyzN`PWm@u{xo|&hRJ&d)q&#nWPxaDWq7rR zOtho+K;xCvoBMX|Z`5*N!8FeKtcGv$e`cpefgT}~vvtqp9$58tq%iD6SVN>ZNG5YK zPQ7uW!njL*X&_8C)nJY&DP8f;TT^&Orl}GmP8>g^!bV>5(AwRvly14!397ASXJD0- zg;gSZH4M|1*fL~LwU@lFZZg1{#u^XxLL-szI^>vN<|ceD1o)Mgx@B5_R#!oRH-EAKJf4|LY_;dK9+Fg>O7F2)jJZ!!F@G)Wx_#WRA?YbH z_T<8okm@C88TSEJ>XVyFJx%~$!Yp3H?CnHH96e00r|QOJlvgeG7_U8rB^nLN-xzJ3 zOE&+SMx1P`a6ib;m@v%F9adwmHL-iRX_YhAe4KC7u7NZhyy=4BKUq!Aecj#kKt~Asx5w-Bw@5gDI&)+#DDG~dztz%h3u2*~NOkPm zPt77KfiRW71PyCiEAR`D>jXN^tlcXMq;VSJdQ?c;ijZ=vY^-)k16a$c{mXY`JKf!2 zAYcJlQBR6gObmz{Y~W5@Vuwe8*fkE>d?%PgK#<5Q%5ELP!VC$^sY`cPro!1%q zVJ--McFBiUek&CBP#3Y+E(y-1H|bWZ`}{gI!z=iP-9d{G1KKu8;lYPncG;%i(;<%a zZe-1bx5X+?;hwk2Kq00~O9CsiZP(Z^Y>U@7rPVh-cbHCx5S{D^};CVoaswt-Y zyU#Vwao_T)zbc9B?Ttu03+N!%O=>y1^F#s(FY#dXO{6}5KpeC|TqtJ~w(n8pPD$T= z0ZV^&d#RgeF>e00+ANyNC!-cp=(Tz9XUQqYCQE8IMJytTxJfNzfKq4REHW_`p zk&97I*`NDj?tg1w+6Xltx7nn-ABk*dD%LQAgs;eqB29RJxDEWxh5|25C;%4ve(Ysp zBIQe6j^e#*8iA{m@GhHmf1pxic~T{ui4ePB|7^*Zxf}K#;wF-XEq$~|9B{_>xu`JU zH4Soe^v%M1tn5X&Xm5EerR(mx;3?6@Tv!xmqnG3J@lg}qqniZocyT!(T5+tM!aCLy z7S)`S?mSfZJ)NlY-~fEoxS<79yZrG4GOt0Zl5G*2oBLsPk`kE!a*3XTf zqoaBD_Vy}U{i&@-)1ggxRXR%d2iB7IzTAWqW}&i9O^dx~?^q&cDmV}@?DQ+<+4FA> znl9xiI|i=W0>bQ(J}$L_AIw>$+z(?Yy-BcG_v;K<6`2wmSGRm}WVCD32LL3|%tKFgMrKKRm30{S@z|lA6 z7qdc6@sM3XL8P9IjWGe-60I_sSEUswMs3X`)YPUMt$-J9&~ES=J2zZ8ZKlf13n`aM z0A$c!YKMj-$W%Bl&>Li4W4#qo}e{#@^f00u-A1)XdB} zf7UqXXae!EmD~krDBCXf<$yP_D#1TK#?Bg1P}=}`Y&okel3I$h0E~mC1@7(I9-aV6 zijjV`Y10#AHlGw$yFq+XnMh3-c$1t+fzmb%f!+Wbz=iF*KDWwqhL{4nKXUQ>V5 zZ>4H*HH1XHcG46Ln>|=J4D1Lo8@_$R^groBZ$#it_?dk8q5p14XD4bFN|#j?(Q8K0 z6ne(Uj9S^+YUaRQWJ{5nO7R>=$jpI*U-EGg7N~(N@I6Y|6rhB%GOkWtF-dA7*JJv- z;kCQVefdZKwvcWtpcrp_p|~P%^S)(2MJ~V2MhVv8{rp2+{N1O=J1iz9tMBcc9K+-? z&GlZyV5CR(qTl1fUqxJ2RqL9Yr!i2#eWlxykA=q+k|Fu|`#O5f(KfZXvlaG@UYwRF zBbT~TfmlHtaw)wm5(6lhFH;CGzNS^}zepxIQexKrPG#l#k)0clWAR_83&l;{ehle$ zB$9e&JL})roDOAXZNB;tlwp~bsd5e{rV`yCfOKnvg)hc$ltS6lfGn=5nHd;Yd7~g< zf#DB-a#oZ@Iv&v{PT8tKo$I)59i+ROvwxZ~Hn%UOEk1&3(K%t;pMYL$ltMfD#Cz>` zC{7)1l!u3o1<+Ds1i8aP?Q>A2?c@lML+$N(1Maw+cCM_=)9;sRUXpcp=PxKMR5z}0 zE=*R)=i&Qh-9H7uC<(+>jYv!LdoK6c$*8FTp{=MWxZ3CK?p`zA56A*wD+Gju)|WqB zM!D?mYmY7ZiKeEdjZIC3H#d8bqqO6llr4f->}0&ZyWIulfKvh|VdBrR^wcLu)g;$#1|eDrk8o z(&(z6^WV^_LKsTwa0c-q3KP>secVY4AVN+@MUTmlpbAxRq?$Oj@TwtneN>m5lPr62 z@dgm6{j!X?*4cmK9S9_G-Bi{m!pSM^;SnOe{cVxx?3$49uDBr-^%2Ra%~vorHC4^n zIHu0tGjw7+uAV2jiz4#mLMWiunnfJ2@=r~lLM^%9ap zKBJp0mX|j+S|@kxf8-y@3cJ1WPjdX?kbK|=%&RC}bo?_0^(JC_T1`8bF>*Zx4t9hYv%WrIF>d94n_ z$u2A{eW5$}TpL7+Dhcwx7_Y3N6U(;lkIiQ2>hQg^GidXj#t$hgD@)GG>K_`y`qD+a zx4$3Nkscc#T3uWF>&Fr;a)s}A&vDSIs;j@; z-uifWc#!o&;O8*YOFLXoPeB_y1$NAKVAqBscxUo}+F1%^d*+=MhNs4GHCN7vLx_if zl^01a2Vyb3C38hMdG)h#ODbm`tp%gAkL|y2r@Go*6=uUA3<`Ah#=maOWr2-ep`ABu zrVGr8&{&J^nppmz4!_-mCzH2P?k}pIrc2#8vmJw^{Ff++PseT7Bri38e>m|iUGdq@ zXw~#n#tPDpdMU+aGB?loVCQHkGU|nI3mEy>siPBGBLp5 z6klBJ?63epNnf^-NrO{o8(n#_vbHv4fA+uRdR5i)%gf8;>UMbLXna(}tmuz0h`GpUJI=B+iy%PUQJBqdMru+(69x)^8s8bixJ}6;BO?LD z`)7Tf9u7Z7tOz(Ej$n`9>MJYbtC)E#Wu|9lR&LVZRezHk^bUv%peP@iqPy0Z9bZ zorWYNB>YfB5akH{sGObDn^gD-N52pldtyH)r)K~S0TU?Uikr;g=SoStgv$oPx75hc zo+S~`qYPBf$QAhUi+J0$LE&#MzHZ-cBXX~%G!gT84*!1pG&^T;ICnZEL^R!nmg;l& zAzK`-eSRX4nLk6oA=4TpK$^74wv__!w8jHZS9JLB=XF1p0>kF<``x?>?oX1gC5g0h z(g@9I)zepn3s#^v66TDfvAskV?Rx2>8&!>Zw1=`lr=3acI3cH2OkiK-qi8@j4yFAQ z6Kv@c0Zh5lDnc(i0v}%knF>8U8&_>yJ9~RxNlDAwl*B|qAZ#IkVwwFx`|~o;AB~)! zG(djUFJ?NW&yL1GC(|aW?V~qu=kkpM(O9iEM3oK)%4}Kwm-M{61PT< z;_QH`;m8l-?i+H79JH|>Q(Jjx5kGZWx-mH1{HyJHTYW^(xS7ZWYQ{rc?8f9%&sAHp z2cG@x7}UjTsI4^tc2Zec88E?kfaQN^i3cFRp0np#q4HjI}pm3Jp7zf-pDT`L=t)#U)hupmIA5s=igf#f#S7zQ8)wGaIt5mvM2rgQA8^_Z?Ly<7X#v*f=}) zKRBR_tGKUKR~$psezL~eSmU49JV&9N%&I_ZrDC7Iri&yDxRF*!4b>JE7q^eM!dHBL zadp%KxxxD?F5D!WgP)kF0n!>>c^Tmayzxtt~ZhN}{A5PELBiLz}CT zd-+EF>p=sB<+q&`s`>dftSK^9NO32Hq*aPlr0Sj*9s*4OXRTF zz&yP#-h|egnqvb>k$TDRxGn5gO7a*f&*^E-b_h*cR#Y-kIjL<_{%~h!P@K?yua4u~ z9KE2BHwV@`Zi#r-D?M7x6H(Xgf8F*KZ6r5C+U>sparCRMj`;Gjq_S4P`sP-Ih#e4f z^7i&bfGPkYYu=j)6NW4@kM_2uj^)PMgfPQZ7OJjfm?DJlN|h$$n#LqXMhW=%A& z0S@``yKQz)q+6_28MA1S9mnxw$)8nfrDOY`o+!~b7WX}8Q(7(NPDhTRKjA0GNejb^ z4E4%eXyA#&-$ol~VV>-4&$z~Jwu>oY`(U)_22H}%gyM?S zY#u)^bI8^@a2qyT5I9ud3BBwo?!9Bi645d%h_Rtni%quPB@Q55nKkm`Jb4SbcuTQ4 zxNjRZqf4Nuh-4nKrfnQh_m3v_zpqz=@$CMMVxsJ2+g?4U0s2)!KVE(zcEpS*l)C{Z zvQ4DLW^-UdHL{6-Yyh_T^Dxzmi;jH$?oV)s)K=*iaGc6fZvyVeMwEr9B~K8B&>o_w zn-O6ksJ>J6qikV25|ee`&nGDVe`5juCK=8FHf~g?2}n)f-ce)}3I%F?1~JMLk%@-$ zbrpGRGKl#lC4&LWZ*0%BBTo1G18X)~xp}TSJg1*ZD$ny^9ts*%PJ)LuPT3tb>2J83wk*D_Zx691ghdCaL%_63I3(O3MEC`cwpjU^)HT27w` zD^y0EgatKQjfLoAga+v8WB&ie$2DXqm9K{1*4WSXawcsosi$#=`M+jPy_mnpfBOIM z0jz+;LWCvv+y}U6LDqOBczz1UN|WDv=dYi?=Kp*dN4q8|lECwLu84V~@k|dGr8r^m zH%dXpyz{0m#}v+g<90rcTMt`dAcjxQYRm=tsg7GC6;sv99WszZ#5m?HAAIx z`uq3ctfaBP^$`X?8X3i+kz*?msGO1T#uWj5a6-!zxyZZP$vWh|5pVsU>1m7IS>L-J z+;bzHXg_!9f-Zh=7}(>kJt_1Xdu&xh`ELocv6Z4%k4Yy3D_=p`HW90Od`O_D5hLh5 z4q3vcxn-`;&4jX_h&zyC21R>Q0^^Rbz0_apb&z5Oz?X5P)$>w0EW{;QckgSScVv70 zdrf&Fha`48#Zd6>_EQ$3sv^!$^5zbXu55ntiMvf>++6Ch>>_YWQ6%PPR^W}9G|4Ac zlngmHb#T3H_OI;3wGZCs_MVPTLXVCX-b@wyn~OrCZ=^Z@?8YP*+s}%tPr_7MDWUtm zxAkSQ{sD;K1;C~PA_J#@m&Z6>pz&}2o@NTZ+BK4#p5FEC(*~okips-se>>ubId%p+ zws2OJ==I#SF`Eus5e+=Bq4BU|6M$6%k%2eTj-D?}I30G6AN1BLFFoCxGMDSl)WI(s z)6>y)u=VdmI}%@^wHyr|`+7OD3rhcDF$QR#d2=f#eI)Oyv(_M5Ko!RZB7l2+(Yqp_ zcO{rwbKxJ2Q8G94Cox<;ycwzJKUqUJpS!+X{Jzm9Dr#s5wQT`by<|6nhUv^6nU3Q5 zYUz8|&)o2sg39Cl!<%tfKscZg{o1|xjUbj}` zfk1CWgT3!Zuz_c}ELw|FEk_zdqbh8mW|9 ze@!x9C1Q4B72Y0i+GN7-g*WY1EZ^qyJTn>rH?EFe`YPOPztuuLNi&Wy1y&8ryk=K$ z?aiwRk*7th1fGL$4$Ry%t`V@)re|+we?A({$V;RRkZR~m1^PP9GL;A&-`_bt&C4c6 zAV)AS$t+c++yofuzCAF_HIT2$#CGlP5wm?RFprQYn}H!;KDIkDCUrk+ZloL_(%eO+ z6|R&mhLmVg#uH_1B`sp7p*g&S{gd351N_FICIT1puE;NoWwZ^iv-bA=sL@%_5t6Yg zxSk7$Qmmj-uhY74miSU4bj&Zi{~}zKU-v;78t_SLZ|keZ!p%+cUlnx_ZtS}6>IhkC z7RR2D_Ge-TK8j`ydXIqN(wbudycIrFDc~gA5jr?Xz9C5Gm-wgw zuK7(afI6ulnv?>{j~FfB>$rb=B@zGeTWrYy+wuo5!wTAbO*TfJH*P7ox@@4k&p)8z zDLO8U;TAF?DLNob%<90;OdEGiSZ;RO06A*4ugu*P+s$cZh0vx({SAadDUhG17^h() zF0QdA+j29c{cpO+obDaay_N}kfz!}%Y;JE%Ki|oJI+!qVI@tl!J2tzs1h$~AxqEACpu9k zd&($b-O)|@8@ZnOIPdiH%SSxB>MF2J>w~MU9-SswMQi89JzOz+xe}DTx86{X5|vT4 z)I(sQ)uGhH@^7vW)Cf|BVl1&Esds)$#JZK+rNa91ER!k$>y$am_YDIQ8y2KOoA{i@ z!B>8@HN&4t_AyPRe6^=#i#IzZ?3EA^S-mU~Jd`B$A8c!ATp?)iOUhv!6X2KEr|?>c zw2WlB1`mg7V0a_Sj;3GO@PS#$x z+i;{4jecd?*42F4cdw#w_S-#Dj<0)KT%UsEde04>y}Fz~=LJq3dArLCt{3iX5Kf#UvXZ4g?9kl6Ly?tjqHkQlOVW3EM{I9t8@9S8Uk?GS5|VF2N>r3 zl5HrhHltKGfVF!@-fvS_I+K_^-H*e9ujIt4l2ZyPcW~Qv=N*uvBl&=&g9#b`)dUO* zOmc+2*6a_zPIcX+!j0;8XsQ|LCB8E->?T>fh88|1pI)aGF)}`K+Ap=5AvADogZ?mU zZ*z<{cM2>khESN`mB3s^+pcfblDZM_)B!<5O(MOJ1F~#%bxTIN0mQNOsHAQ+ zu*)8fPW29j$q9sqIKS-O-Q^*2NTZzQDJ85DsWQNcw|mQ*-P!mmGWWVV)L1Jr7360r z&Gid#4;d6AtbQ0>qMmS}t>%@f#OF?v4QafoL7i?3YO%7Y38J}1a4>Mg*sL?L5ji#6 z$`A%d+8>-P1+mh`sYpJ&_pBs8H8K17v(t&BxPC{}zD`n*bn&*!J20YuSTV8~`v-35 z10;k7wn1W|f>vwev!EplAaV}qk1>D)Iq}y|vYTdSDhYcISlCUu?~T1U;YLJ#0{p+M zWz$)G=q}Eh(43v?>xYgQuV$SNEX>~>V^iNi3s6e&LxnLBsuc!;)QF3rj}H(3SY!bntF84?*&fMc4qmY^jQ=9liLf9}@6 zZhoq%^(})t*;SSLy8FWGI6>F}DU}VfSGupc+*1I(THwH^r)!|JlPNafIIUHs`li0B zDox~@ZFR32O4BIVqBJVR)zg3C0uCfnq9qZ4-F317&-x6WidY($NBu`Kj(f0Qr2Rlru0`SK6Ld6fxz(>j>_%ES3*40`* zs90fs{%9Ts(zdxyDS1v2N;qH(!#8{Uo@{2SeEA>K@CvV^PT<^h7vN^`!oA=Vg<%Ne z`W-g?L}j`V$xD$m{Xy)|9TMj9^23H}3tW_zRHSePkV_JQ0%c}+mr)6b$MoY-Q*w7! zEGyE{SLoKyPyA^9ees7cdauy+FO`WtnBi-N5o(7|pK8qQgf0BQEj;2WG}jr{rRm@0 zkYcK(xjTFDZ~$p@WI_58(viT&YWWZ$>iyZCG`0xEJ71NnvS&&TYesLnD+h<{*)-aZ z{ER!ghi?Yf;MT)x-q@zFgOz*6hh7d^J6V7w(|*%uPEKf88&tegzNX^l3kPaL$(>%z zlPzRu?(kkr5ced2q`M_aE@WRL;=OrG=G^!_L?l*Hq=5zOhgz2XLNc(}s4t+7(d~OW~miT zqbqT1V)^@&7ckr_CfNkH-ieyx;o47F=nwX6Fr-Cl9KAtF* zH2m>ruWWiWX;j_fg&B7x7RI9bcPgI>L&@oN`LjH-rGZL*>_j4T(w&P1wz3I3ZFb3J zNfZPff!91G;YN*ae^5*Gn;ktTA!Al1K1NzD69Uc8WkyL0rA#zEQK6+1Im~_5`Pl8R z68M-RCOQ+q150#@Ur~N2VTSw}ne)U`!u|vZL-}Vljl~H`=!uSJGB=zLnCd&O9m3AS zkCnU5lYc;hu14wmn0K)%PHNWNn|Y^kj9gYMQ;zNbAdpy)RE)96$Y@ioc!M45We>(h$M zaS5`ALs3ctOT{uKop27og<3NmF!m5j7&=t#2kO@{xYef-x88Cuf_}SF3k4~mMK-2i z1Sf=y5AOYhq_GKO8!aDP*~hpxLY<>!zQkCeR&?+=OvSJ=BE>1+AgAo6d6Bd`s1s#L zhu5HYa9FcT_k~KvmIo=gKHF3MJ-i`A`$}k+lywe$x<+0+jt31O%;vmJ|w?{MpW4C?LBL>*@)nRSk z{($Q#28Y0vKVp@U!eNk-CTeztTKq`%2zyLWJ`T}*l_yeM9gL#*35tMX&8qnMg+waS zSd~m3%a4jQC};;h_2Q1Q_r+Nh@kuGO1lqsgZ3N_|D_MOc{&-X2|Hu!l9_C(&?sk;s zRkB?8KtT7&sM!!wzy~`8EQEDeIVW>Qb{Sz_3Hzb)ng#ZpWX3$=eB~LkAb8Mjdq8R; z*vj5`c$(WnD}oF!wyytgXAv3fopHO&^f3h(#4h7$qC5^5lLkNp-jHf z-7nU6u(r&t^L+7bkHy(ywz)j1ME;yjs-`obc56NE&`iIoow# zw9Zg&NT=H}6W{E8+A(f8_81l}Dg6I4*2!&!6tDb}T`sny63FOVOGn{AS=P9_BC81a z1Kwqj%-@AnJQF#B@Z$451(ZPR;gB_&W0Z*-qqq7!We}u%pik zL^&DT*@I*lu>74|Cl7*Y2%*|q^#BP!oN0mb6YI>FPmq9cUfd~pppsa}2VyYllw!U( zR_L#X6Hhc3&XmrWdx%w|%o3JBiYRkhXO{Aag~3~|;XU7Kzh+1N%cQ#%0z3CRS71|4 zzE`^;S=JnVJ^(}9*xb=*MXf>)GV@<60y~8zs-OVir8mV3bfvhC(jCB%J3Y1y{%Uh4 zmpvih|A~(NoNXhDu>05f8JPk^CGK0B7ggeB%N&;kKAAuu0P8oU9Q)ta=pfSx3~{J- zCqW=r^LX_li4)qRLic2l;dZ9s&=RAoeL((-M>F&K^=lp>p{-AvRO930pZ|QtvxiFD zI}9SY0@9FN5QwK$rQktB+X+8K52q$!20W8wVhi@SM(4~CvV}zlAQ*Fxrzy~1xvU0h zaV2Wd6u4+ zpYa59K~Wn=%+!^yvw5LDnw26O{sdR?VW}}-mRVF&^k-CKz!X8Cd^iIu%Jd3E^zQDi zHW(cb?cGh5xE}zQqqgK%d0I$cUtgu=UlIU`Dt3QRgS7V(=14f`gSP5<$BYRPWrvMY zK&>{nzj#x#YsaPO%4k-S&;G!Ka=_g@kzEykQ~bVy>yOXQ7M2;d01clXf%(hurEsvX z;q72OKCOo@#Vc{!l|Pt8Uvp@M}%SDH9mml)Im#if0iZwfuDzV z5at{=^rrni$gX32GU&VQ7nJy^B}l}8tm061MTP2Odw?it_3;|U-9#golLI$ybm{Uo zR(^!avn9y9B#<^YXLzCy@Xn7UWi4FS)lMYG#d^n`gM&9bWI*wO3=i2byo+8_4X`V& z#=anJ-!#u3#cE7w2)OrZMZoVr665E? zk)^DyndRTUEh$Fuy?{KpI$j?wzstXX4cy$k0_rJ&Js48CLH4C!>GhGx!KaVI08+&> z<%W?@uM+WF3nf+fr7FT2O0$vhyoo@73`CT9V zPzPs@f|jrXM}ZWA`M&`mSi$_~j{B2$Ryr3Np*3p4D+b!gigd`%E&jJRzJbJv zpFVvu_x7F}xULA{rDFt+LKuJ*IXXJ}p#c^&GWe&*XPW1!p#rHV@2<1x{s%_#=(-6t z{Ny{H_v0US%aH&k1Pealts}khek1MhLF4Ov3-B6Hpe;I@6YIy<0K3W%!I$%1HosCr42 zZe`sqz$lKH?<-mgK!lLp6boVBgpwLz#DY0c(t6>dxlO@8Kman_W3X%NEm-TdW z9!k$8ZLbEnoEQX~z&|nCQ8iXv1Hx$uhx9z;P_gUf&ifAPY7W=6P(E*qW7&yAHpS;| zs32c_@4tzhfLdnVhcLSR8+h*M9VLSRZfnEwhVdyC%kVau=;Bk{Bu+MdA{+>k zeS?Uc8gY%VvOoFZ_4d@QspRo|+7(8ErN(*~ACtZ>p+We^T)%#HHczTSHXO8I47A{n#w1My+Tfp?L#U}|_xcQd z$Ty9|ZX~NI;DL{7%0N^SQ5a#as1-WXT8=w%7 z2L1w-_E1Qr17VE#s*>bo?>Rck`>*Y-g&gakNkL~2C^gkcsI7toK#nPExiXFe4ET*$ z+*Z57<<z$Zw;g0M49}tyD)TrJ^KY@@xrs;stt|fma&iwmBF|9)9B@V4|PDN!u zyQNw&l_<$%V*e*FXf&$>9aJgSPS_vaTP#ESbbSTBjlj%)C9z`mv>887&`mH9xo>08 z>=>9!&O{qzAH=8RRe<+n=OSr)1|}01sCwp!u2wlJ;_)SI6$)#yF{$yPG_Ajm`grA)?MVI+^)B#|pf1gxtC-v1kH3vez?FR}gS#8oY;9 zbjh*C?DX{XH)NaB5OsWYQ_(Nj5Gh1ClHso8-Hz018tndu)*!5jdi~txKu1XwA|Wm> z)og*HO6cV53{?X|#jg!U&6ASAF7_#j6N%A*8y<@9$=4f`nq|fyJI$Mjom}Mq^!!D3 zg|kslKI`gU$_P-RccHXe0bkEz+q%WS#{?j@y!q_gc+K$Nnc3yD`Kmee~?^ zde|L?JJ!*vXZZP~>UlpW<%8%vke+>y`em?Rmr}%5?BEHy7z`g&%AkAoBEW-IjZ#Ec z9d4?N81$v2py(b`ySwL{g}bk*`oOD8xl&@;XC<~H4tzi+cjDo(qWo6R6aF_AAiOZ# zw=QDoT>NuFLYCz1@G}L>lzjJ-RcQb>I`R@nA~jjc&rkH(3$dch%a73?ZDt`0=tyJ4 z(yyqv{=z!|knYazd&!?(K5!r$S(KO(bl^ipNTor$fati0CqjSy%MqN}NQ7-G|BUaiy!pM;O>B=W&87h5Hjt}E59mlJ{}&P)txt74)LAb z$_i_uzi3<>|Ghj2?0jggifKp=q4~-ucMvF+|AytU*Sam7yjPdw)jzS=XnwF_RzvNjZ8b#1Pz6Ydxvh21<7>XUVm-3>7ktQ$jfr~4Jr$)ggvYz)dGBaV^Q!-Te2;> zE=w2aX(l*bSc=c}s-SP;^cZoslqN^|?Dh&VoRVSFyepjC=8s5R?jFCL+G5 z?{US-$aJUM*xM(*Xn5U0_8&3>OGczos+jt}2W-dk93Ml_7wbKdK}RhW!i5_Om_*M2 zhf|FOYiM_JTTG<<TA*WSuXl=7&eSN}w{Gxr6YkxAM zAKd46v=B$#@Y-1YmA^I!<_*Wh1#s(AamDB7AKhWZ33&Np1dor$|2zzU8zPbXH*T40 zJ0ANH`q=e?x6>%FqOErJVsxy%XSjxZO`n!tXcIky5lQ_k5CjEzQZfVzb_o|Z9UGlT zZD)l#_mLCd63`5u$}#9&2~hk~H>8-bpXG{vCGv z`MR;)?;Z!~W!tBTaRT>oE(+802I3+%A^wV#9b)+g-XuDxp36^r3aImA#VeH%<%vgzE$~l2WoAF#z`GY&`{Bx-@0bJ93Qm##MIp*kiTPZJIU3zt* zUl`Tp>M;@&G>&a<<4}BELf)1W*gN{F)R;g)>?tQFKpEVwyI=Y)f&VQ(A_1Vr z6S>@Lu;pAI!^IxwjM3lCK?_O7@Jog3Di(YWs?bl?BP)DKP)JCl6Oa!N%K%WV*)JEq z?gsMCr2{Z%8F#%uW=<8@!=|&R4V!WNo_)UcY`BobpAg>DkolV69itVma7)nb6!^9C zQD<}1b3tqqfVc2tRLK!;;zmy1j1SnJ;?d4ntGoU1*H5J03FYlbU8S5}x;D5OjfDJ0 zT}&OrcjyEze>cu#!|Z*pVDfNAB+valhi)#&M4#}94YcYAvPYCahDGQ9tFW((iZbll zeP-xJ8bnGu1tgS4KsrQ9QbLpt2_^ zKh8Sm7p$2z&&*wW@9WxoUpJx=EHK&j(tfs}xD4~K4U43+`I>Oy95 zVclNOcJSe}piGC~Z(<_rjpp!DNRCe~Mau2Auh8Y=Sd7nH4suL=XLD4$*pZx=l}C)) zrg@ndz{+0%I_8rCsBI5J`#?}UR*11L{(is9rxY-S`al(9^b$V-K{gRO z()lkkN>cE)Wr!eJDfqxRQkBzfw(S}~s}mEouBkL7hOaV<*8jBz8$q+r*EKo7?r$`J zueLOP>3{Ws5Ik<2^IZfG@*X@DT!AtQ zH2q+UQV@DndhPjBEYM?uYy@Do;T^ykO^CSeKwTZ@o^1)=zWD{7eTZ<{!#fTi*}pwi z9U>x%S%?2kf=&Hw9N*zhr31GfzR|>wkB`3`46nxEmovUgdjaSRq8flsVGwBI05CDU zGY>6dOh?mZ(<#IQ)II3e{clH?_t&0d3O7 z%aOm)24#RiWE?dA^sJ2*dmpZTua=~I&8EO28*+9NpjB~2MM`BeH`lR>p2Y+u8>3mj zTg}R(DnUV|&N%<=&CYK*3IwjDVx)7R+8sh_zQ4UOe{g~R`t@{*1@{cI*H=5;9Iyyr zC-ih4rOOM@ooQMZ3f%no*v`$392E5$!ut}~`?jZ>g)~U|tvDhX1@abJAx~?LWo1q? z_<0)-w?*(W<_`LWCU>}_ghefOrK`QU`RbQ1Uzo0rGWMHvWdIuIrWZi#@pLKy0rgrW zK$MfrY4&b-Gk=}?hK9VN(}Q94Q;bK#P=&3VT9kuX*6A-ZgS=wrJ2uCQgOZcCiDler z_tasm@_{%00|J|BWdM@JBcgnqx*HLoT6>J5jzaL5V%RW>G+oct!xFa!uacLW`RF=kw>% zn${}cOIm(@{^czMGZ(J&n09%tAe(WEcE0QF*>F@40w<^ONsg~?_POiGcgiO}>i~@K zk`;D;OW)QFHT2MuMqwU@S6)s|7+4a#l5ZErP0oU;A6e!Nb{mwz%w1uscz(9-rRbRAE!DIAb z9@93ariM8EY1-!AL*S(?S`*$R4oO_b$$N&VS+CHa`C+=)W^#O^@B#*pS3m zGWyzuniGdBAj%q)Ik-91H12HkvTeA6*BA6YL6P?0LyxXX3L zZSuFf4?1QCwiDiAdYpGWMR4=hEsL`!d5-ji5i0l*oga0hmhLZT+f`dNDjSC)Tmuc6 zZX{R=48wf}!UY&k9XlN(A{9dzQ(Vz+Dt&hqiQW8^W_VqSjh$94$^V1AF`$Q*8W+64 z?sdGQWN4y#+3(S5H*!)9VmbA4{B3~18hT#PEox0&$V-dV5j5y&B0TR$7vIz?H zRsS3r;C+Enp!cM|hYLepwPnHff0_5PIK}~7|AYN12?8>oZHYOM3B3z|KV{y2yRY2p zvynbk=a2&~<4(Z(ygBJS>)E~Lhn+=it{o?Z3qc-hBVXD;$CfBB`KnH-TB+f0MD+|1 zNrhIG9_Iz0qodlbKNjour@Eqi)qz@0=HQz<+IjEZ;pH3lGi}&!i@T*0;5}swzQW`@ zDSd$59|#{Hq8Y3?{R-Ac!b;4vBE#zSsO}d*Q2s_>0!iqs08|dzAm3^+1>Y1814J$G zxrQ4XrL3hR6}TEIc%D$Wm#kG976FDqPC(cpjh@x+HyP4ZK9Z*fa6LRdj)T-4i?>~E zhvAqNW-11k4%F1v!bYrhYbbd0iVKg9+ZWfcWq}(a*cqUp`*v-nwY614ZrZR)m}Ag` zTI8CtC%3}t;hcf4E)xQA_&rS7eaX?n`IX~FyCz4XVxiR;Zps%;0B8lTg>Dk=HF%gqfQ8{>djofU`$ZmP`AlYy@ zb!4ISgFA>*DkhAm33k8kglNejZ0et?xmJK=#QK4or>D#X;i@U;@k_>noTx4>+~nk> z9`0loxxc1laqi&YU@`Q-nbv3dhjaZO1uC^VW~j5Tk%^2*DjG9SlxA8}QWT4N~4A{+QrAmqIK_qI}lcja8P^`crjK zISWhApiKuT5+&55qqjQ5|3W&A1>^v-&2Qr~5=wy2C7Z0);YLSCEkxRU))CU#O}C`$ zaRP$*Xw0)eQy0Z`E4On1jJ8?$0IxdmekDs!h#Xh48f;iog34^$+X~K56ve6@fT#%5 zUX?_!0q(-{T({v=0eoaWlWg_Rr;MX5PdQXYb8TRMfv8D6XpOf;HISvJ&8SVTTfhD$ z_U}Tj^X1zJ<8L9NhdcRyc7>VhGkK$mQYKB;FRL(o&gR;c4%Ho8+KR4Yvq$mV{zYIf zEpa(u<^V_7aJJ@Gh8-3h2@a}-nF3VN< zZ46Xzv|klmmaBi4(N3gP@>_&6XR6ZtSfsnv*YuLYn3v(EjxA5bG*ynB)UhMYN{E#6 zOZ0(Q(9x;2W&D`(UKt{E)+Y_-R1UPZGc^8vj>ST|=V=Fcd4?(1xiN@ms+E{VhdvQm zzxBm}si3~smT~8yq3NH$j_J_b)uV<^&mC5 z{!A7A3XIF)UD7+ozSz;&ACc!6#=lbF=TWGTuR5q9_!#xt9C**bEG)#WgVPfQs3>e}`^RVg;=zshtmjk)L8E8x(471cR+n+=z}Aoo~n1<7}j< zkX>?`kCSgePgVTZfA;OJ2i_uK6yuzq1%d?Q6ji5t)~~SVJACw&X8Pf2!ZDY0bEZ$Z-7f4;d{8_ zr`s{OLev53P$ zDe8?S_J*#blu%E0&$p+8D)aFnCha_{qHr4(CG(41o7ldAv8}&>`I9Iy?ve>rKTU4N z_+zV>`lxju#r6l(Av;Km6H6!9n{)CTefX=-$8$M_P>8_0rQYsYR}u@x|IkaNbZ%~D z?@jMzDt}OH<|&6ZBil_FsAtVH`|zg}p#roLi=OS&_OQ){U#I?kLr%i91H)O0+)J&p?MatA`U}-gcfV#+1r_53_nZJ(O!%kBVcVTY zImnC^bjU?y1_9m7cR>@loc~mKMMYgwh`-Jc0=3c5Om-!a#4!#wR2P_mN1J!EJTE63 zedRL}@NQ;JBCO@K{4dt>y5zuEnbU%}8XrIT+N{ui?}~FM*};S8$rpWh`UR<8JUDnw zBKz;uc!JN2{~tvddB8|l@R@1hI*ni>Gh~4UYL73Vr?E<`9-T`|QsflYgS*GcG?2t+ zWEohTEc3(DY$6I`bvKFpMh8V2*;7QC8XKJN3^<$xUJY4pUSNQOX*bE+0 zfFK3l@zZqu4&#Kj>6`QvIJLDRcQ7o&N;o-rEN=L!!qvM^yAUi-aN}E-M(j)Vl|chO&~sk=LlVQO4yYaFS&=$kGrsA!Cads)pcjJDNd%aai*# zn=Rtu$^p@^I9zdYP8+E>+U#&0VvOc$jZ&CbqeVP@p-@w3e__PQMd zc!^(Es4|@Kr;ZIQl*QUkKF)K|oSUq%BF<%cT|J&X^K1Dz@VDs-LF?p!(3Q+t_K{Rb z2H(*_8QI!nAc@Zxp6-YYl%I@4o?n3FS8DGDJ3?51$54Wl!~b1NM8Bmc1=p-FhfHZi zIUCZd8fg=}_bV=wC^eoxm8ip2^mVr$!xgMy%WWIVhMev6k3o6niM#3ZCJZBD2HD<+ z%?G#1G>@jzl4$r}a#RUVt{krU0yZPNa2K6MpytGRavR2{!jwy(2D2mGe>;%&NX;A=5>v_Wpr)oJ#L&N!Au-g`@unYNUhY=D7v^9t%)<{h zh8#~pLS~eCMRovellv>ej~J*;*a;+DVHQrXy|%jg`hwQhT5!+#6kPNvgCUPa$1ma# z#QPgt@Tt@^0&dk$?Aw%rN4{IJaO$Xb`tfRH41lAzY?wFI8K_%dYXs@J7vP*Ml>P6A z(*&N(=R`X_=ojV)McuP^`(a<$_vgDQo~dB<+G- z-cS5E`ZTVgE4{z&cRtN$OF77S_-ts!tmRQUXj>!>eM>!`?)rcwz~>3{H;y;NKgan(W)5|O;ApYMw=;f1@FUpJ$`n1JDlS6_m|hx zUO*$GpF2ygEcuCWRAZjpVQJzMfGH_1Oyo)V4{;!edn4pUGdG!Nj<>##Z`^TUaxAAX@h<`0|>aa0`&I*<|hyF`? zC89%~Ean1ypYrX;Zj7}3N09mQ>1bRek^g4_SgA0FMTh04oB({1RwpI)y7!_j=j(Jl z_x#&Bot`F#dc1Uw=lCgd5)sWK47mOQ&CgFLb>jvlN;)fIXBEhw(WcoQ{I%SR#PhQ)wrCw3>Q3 zgZHBgY%N?ldtuV#tmfRZFdfO^D0(HAfV-Efzlj&Nag%rMasw4{V7po#(ah07b%Suh zLcvM`6fCidmhsuk%af*fG%(=WaK1gMYbrITf0FE{uZ=V%bPj?}25q+wh?deqWvA>< z16)SIwG)qq2^aQ0lu1G?r9S2CH{~TP`=fm%1IH@3pFFP06X9`pL@K6`1AY z`3gbh0HX1)^4jX3($xfrDMS1K}G_ExwsJsHSRqKak^b{qAa?Xz5|**5^Wd0R~bQT2c91+!$x)6^TeCi`9P=u)E?gnL@kj zQ_RLyICGfOJ@`+?(tV!8<9mj1bz^ACOl*;{{e=4aDhqH)65kBCA5{V68{T6I>ppkg zj`*uic6Jo{GzHzA3-9j5OI?+)w3}_E*<~&uX6-TXBE`CZHdD0pgxC zZDjk*ANtfsQ5OH2|D<%2&n*pbe);iN8yX>S1HltHds~jBCMHN!@hPxIu1>zk)F5^C z4p32RvLpy)RA#pPt))6GC!+e{)fb%!w-nk_@_KY@l2RkZ3@nzF0);pYLhWewB~VJ& z7JrLRzo;w`N$s-tm`}SwwQbXubhEHkblCOYd^_)yV@k9a3vEBJYc`{`13x@nT)MNo zlJAr39?jHXyxQLw0K+e+n#aIBS3=Q4FE03I6-e}bh+Z~(!+v*x!m%B+P%JO- zB;c|kr5T_Zxn?hxi@g&gg$!g5WJl*Thi`BDot!Khcn^u725y@!hi6>jB=yYfsJ}hC ze%D4Y(Mj_O0>sL=|SuhDxdBv)$Vzx@OUMerhe1 zBxFl>B?QsKwbWGZ(*&L_Cu?X>1f2ir!H1xMr@F|CZC*0X;RD9cuSy=2Dh6fhpz)iY z64;v^+57ufJQn3>-uYZ26!w9bC65g8sp=|;rZQu;g2GkZ-;yL&f)^Snn1ln|=6X@! ztF6KXuY%o`khwi1h@l)bK$~YBdH%h=Zx7P3UqATSe*6r9I)Nu|4t!|1shvWdD*ybU zSKoOZuWp3T&E)xjv1{%_?4PM$FG0NNw!PjByd{|2q8jZkaOizFc(PqZIM`&UqvWyi z>7|4}1PYpurydgHq~>|w8AKF|76kNZShXby2U2G=lavp}(6us*ba&T0#J;i+FWBW9 zOITI?Zfn_x|2*hlX6MOC;5YDVE+EjBmwz0EZ- zLJ1{tL@231@HCgJPTi556Nv6_NZqnDR0kqT&LA_H{Mnq5;$fg8-9`bY@USb;j+RPM z4!rBy`?xEf9N&&kC{`VI*lyrSc=ZW(_T95|?v z=~l|iAhoC^5Q;W*b9I#t#s!O~u2RD7mi{GQCB9*K0WuPRan7yDvDL{YiE+bIHBt?Vm1p`a{}ofGvK{nTAx3MRmMi^`XNBb5`SiR z^Bcgb$(EY_Sl~y>EItz&8*hgiyZ$cg?0F;GCD)%?oWB+=ysU_ew>B~k0)Dbo>m+u$ zpcs6(&EKzV6 zg(5Cna*jJNfrAmpsBuBa&Q6s@HcYO>yjZobGZhpf%ukR)2fGY~E+g~aS)FnEZg%}l z!%sB7ZLS4Oytd+;ADBh#5Agl)9pJMqqj2q~sS}Fpn`C#R6&fLq9to*iu9j&{{F0F9l-fKxXgPSi z{ugnad;|)0e>X@!Tt1rL!XGwKhA}NFWB-c79^BB-uBNkA1^AOzXY%oGnEad;hn`5-paU$|E}9BaPxI=+`#RC ztFfPar@d7)6KP63iJ5{_4&*PQo_(#EC*=f@2{kz(ND;Q{$lyn)fO?!;`=_ztxn?yy zW(@4jZrVsR*OVj0OH$%0nb#6@$gvAWnv?r8VPfG6%Pg8F2KqLVm<5pL4x9_Kj;4X^ z)+ld>+zv6g2e+(q6Bj2SEYnlgGc9&ROa`;^-}pA< zuo9a-D}?@DMDgGxp&@Z3WVJ1dKUo)^f?sS&mW3t^WF`}PEq8@5m@qL*i<1pqp1~%- z?9&Xm2k*W67g49Y$)g$aQtm$IUY!PA?8>G*cJ#D!9_%zr9>j#B+Q#5?i1HepjB?$a zA(F5uNgzAO;=~9j4@F@0by{e7C3_h7Ni6em?)l*?{1AM543Vh{H zbfF@l2#&3Tbf@dqFZm?TpbY0vOOyq}e4i-vCv^Y=5#PJ85c7Fwz=tzqasq3A=Y+;@ zaGJ04=#K*xlhhH3MGouWYXFj7_bwX$sVko>sdwPR9K^%SRkV?U@%uoQQR$ga|N9Z* z8MBYZ-JmOrO;RlFeC5FUc39DZzfdqNpli~l$1CJcp55t=nhUQJ2G7o?SoWcV+0PTR zn8oqDqgU8|dcnlM1a!MRVSS(5VrH&g)mxU74)9|MH?i_=7G;rOu=Ac*l9F<&Uhs`V zvuToywD#BD*_BS(Emqupm1mE7aaTh!eC~9vX7`$%INs$=Ycb$1K$fHJ*0CS;E_{iO zR}0!t7D{`6zrMd3FKspp(iu%p$O58jYNf8Or9irh2-T;*0^bmD+eFMpSn1W^Ag9xj zEd1OJbbhF@Qi&aFWB23e?kBFUb=Q1LcVc>L5`Qak%vKu-HdsAs8z`Gm6+!}oI6$yO zD83QV+f%xzKey#C7xC%3El-D}?ehS)n@;*~{uy|PZL>51-%lKxj9dU zQp%vP&D@{T_Xw-^#{i4)z66K{lb$)1ee!>z2j)q{k1S|mKh?2UV?!dUU&If()!ZtJ3f?E_r@sl7b?S~kg65*- zYs&4xb2afW+g#a*7wj`n02PuY_&CXHYiq0LcX^Y^)4#)+abrqn-xJ8^Tb>;}`cJ-K zxlKR@0{?ya!FRMZ$=9mX%Erpty*9d5;C1slwM(q~J@yYgJ;fIG0;7i_tpuxg)a#tf zerZVCT&o9#MG4JFViwxU&xKRU=p(?5G1Vri4YBp>esFhjxrwh7a`zDXs#0L_MPxgp z_%OK66aUgvW=XjM+bgnjEndSLX`}F9s$;Xd2Jucz5l=%^|N$1q|Y}Ztj!)SHT%BY7N zK6F%$U4AJ^;0t>eR)YUHj4>eJi@qqt-FHUddd@KmrE!i<1MyTl zUuqCsjJk4^=e=&nUcHP6Rm-k49l_FxR8QkW&W|2~F(TO*Ibvtm{kUmh^ht|dC{HP^ zhVioAbx(;@XH2@lt7X0r^t@=YFgs)5O6% zH#tP_wna`r!+W*uL2d3jdu(yyDRE;=3~wzNLE>9)9TekKR|l zjriJ7yJ8xA^U%mflI=`y@0{pu1h_w^x8YUgyYD65xRYP9`q(or|6q@IpEM%-#2%Y& zq=RwtLt^)?IE~y<4u7*Vt8;jC#8T>w&c5YfKH*ozz370((Fr_wc5%XmHYPbLO zLV){lvYo?oFAvd! zDwegKA4L{U-{S{1@y~@8SA#OMfY8-5w$r7~ba><6PGhAtB7+fEzD(I3Qut8bfw~Ur zxHJW9*Rh>qbI4+*W%|%<-{KlVAvsI@8=sCmBQsEAzZr^X;#DxH4oXfcnANSi^>|pV z8%qEMtYt-Y`4bw(^}f_rjvoEhf{|C0>}RY#%c+a{_DScCNc1lH-r>b{#Qbo zz(7RfZvNi;gKlMZqd1PL4EisVy#yRMrLmNLRW3o;$5{gqYyKUd>qKxU72b_TzD=?7 zkl)J;%eZDn+Qq(`&ssxXfv>iKA~P23f20nMIA{Y9zq;=mu@!tf!Kd{W7_Kq1lS@Kbj=hrhzsz@g?`3;G7_%?_&b2H=bD|Hg z%roEa{F|4LKlKgXf3{+Z5IrV3+?fM!d$0ez+xt63-)xN`BFPX!PA#jc9>>efK*+LX zHq9GBMkFqseQV%majiyBxu`4@3BAk;jdif zkPY!=n81Tr%MJb8IrK5{UY==M<<4K((+>4~vA0*~3Rqk?=h2EivX1AR2eRZAGgket zTuu6=?yPiI_I{t9%JCK{raQX`t`}8W4g*C@0p_}~@_;3NLd%f3TYQG;whow1&Bs3} zy3uGq_PX4%e!;B$EOjk-0?|=%ZNa|k-aSH(gSoJ$&+L6h8$MX)k^#)~b1#ycX${Zn*AW*7w_+pli_o!ayCQDDF?~1Ny#`d z$CqhU(bR1Z-`^Z0lfEn8w5)G7E-Yi6u$M{2(Tqe15Pi_AGt;@Mr*&5=b%B|r1opeRX*(|;$BgTWH zc&pw4WK~<`q;Ds|qUg@lZan^0L_!!*G;ZzETekb?p5!xk0*m2u(A_n0gGgC_5cw?# z(AB*a4qR!X9DH(`d(npF2ud+35mVx?JuVA848Yfhf%>fs23PtlP#g!e#6_65`DMlx z?QvUlk7cKl#M?ZC;l)?GWCtSBr-cBm)1&Y0yN_AQBJ%XJ+0?iq$+30e?bE8-Ijwxj zS2TpRxQqdJZ+FQ7Tydm5i!8~Wo_cE~=%{yhOas6&9R)*E$~?4Jf$O^>`i?{9rZh`T z1CR?j!BmtNefnBNzRE;(({kSB4wI3l!qFc*jVMD4fW@`5|2JTED3?$7tc35@wZBJk+EfI3fgctY4`mPKgNx+cdm*p#Fos z#-W~4I>ROg>-23E9B~^J3`OsSYd5a`O4*=3J2T^Qk8t6%(T(_B)eCr5p(`PUb#hi(5{gPqyYxClEs~v--0`k=pz!+`P(82NW@O~(D+n+_>_%Bgt z-8-vA5-4!kbG|cKPX)bamXS~!k~iD1bt9sWe0OMEymfg9A&#Ao@9l$5f{adlzX295 zM=r>UJ~FoFkitYw`_t<hX;a~PJcD_ zxV?7ecU+2YX5ung#R;F(h<$R_lCK$^x?>or=UBFY;3yUQ&ZJ)W?MUOH}hX z&mD{(b!6C$(ByYnq8_}wArRjq>D(~B7PGEj@r9Ln5vToy4E%)%j1{3M z`k$U8X^Wk;H?eEwygqy%tnnyjTA`_P@Jk^@l5gD_TdR-tQc3(RLQ74@7MVpfVIRMP=7wY6sLE%HpD;TF?j}5QZ9B Date: Sun, 12 May 2024 20:08:38 +0200 Subject: [PATCH 13/14] Capitalize --- code/modules/1713/apparel_modern.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/1713/apparel_modern.dm b/code/modules/1713/apparel_modern.dm index ae42221601..3208f49470 100644 --- a/code/modules/1713/apparel_modern.dm +++ b/code/modules/1713/apparel_modern.dm @@ -502,7 +502,7 @@ /obj/item/clothing/accessory/armor/coldwar/plates/b5/n34/medical name = "N34-BM body armor" - desc = "A blugoslavian armor used by medics and doctors alike, comes with a white medical cross on the back." + desc = "A Blugoslavian armor used by medics and doctors alike, comes with a white medical cross on the back." icon_state = "n34bmm" item_state = "n34bmm" worn_state = "n34bmm" From b16c9f3c39cba7384219ee85407e241f6f67575b Mon Sep 17 00:00:00 2001 From: Bierkraan Date: Sun, 12 May 2024 20:14:06 +0200 Subject: [PATCH 14/14] Fix beekeeping --- code/modules/1713/beekeeping.dm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/code/modules/1713/beekeeping.dm b/code/modules/1713/beekeeping.dm index 64580fcba0..d62bbb43e0 100644 --- a/code/modules/1713/beekeeping.dm +++ b/code/modules/1713/beekeeping.dm @@ -13,6 +13,14 @@ var/frames = 0 var/maxFrames = 5 +/obj/structure/beehive/New() + ..() + processing_objects += src + +/obj/structure/beehive/Del() + processing_objects -= src + ..() + /obj/structure/beehive/update_icon() overlays.Cut() icon_state = "beehive" @@ -144,9 +152,7 @@ to_chat(user, SPAN_NOTICE("You take all filled honeycombs out.")) return -/obj/structure/beehive/Process() // All processes seem to be a lie - spawn(30) - visible_message(SPAN_NOTICE("DEBUG: Process is working.")) +/obj/structure/beehive/process() // All processes seem to be a lie if(closed && !smoked && bee_count) pollinate_flowers() update_icon()