From daf2453d1597c8876ba8b42c78243ef743dfad7b Mon Sep 17 00:00:00 2001 From: datlo Date: Sun, 25 Jul 2021 11:19:58 +0200 Subject: [PATCH] Add new lawsets and reorganise AI upload, the Third (#15743) * lawsets update * Revert "lawsets update" This reverts commit a68ddcb9ee875d2f83f03e8fe78f2f9531029dfc. * Lawsets update * Remove quotes on ai module names * fix map file * Fix coding style * Update hippocratic per review Co-authored-by: Sean Williams <06sean@gmail.com> * Update hippocratic per review Co-authored-by: Sean Williams <06sean@gmail.com> * Update hippocratic per review Co-authored-by: Sean Williams <06sean@gmail.com> * Fix merge conflict * Update code/game/objects/items/weapons/AI_modules.dm Co-authored-by: dearmochi * Add a pilot seat to the ERT shuttle * Revert "Add a pilot seat to the ERT shuttle" This reverts commit 676bfa7d0363bdde4a7a908f9f441ac3381420b9. * Update MetaStation.dmm * deconflict * Update code/game/objects/items/weapons/AI_modules.dm Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> Co-authored-by: Sean Williams <06sean@gmail.com> Co-authored-by: dearmochi Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> --- _maps/map_files/Delta/delta.dmm | 53 +------ _maps/map_files/MetaStation/MetaStation.dmm | 52 ++----- _maps/map_files/cyberiad/cyberiad.dmm | 45 +----- code/datums/ai_law_sets.dm | 51 +++++++ code/game/machinery/constructable_frame.dm | 5 +- code/game/objects/items/weapons/AI_modules.dm | 100 +++++++++---- .../kitchen_machinery/smartfridge.dm | 141 ++++++++++++++---- icons/obj/vending.dmi | Bin 99556 -> 102098 bytes 8 files changed, 265 insertions(+), 182 deletions(-) diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm index e9944a0a62f..e7e16fa719a 100644 --- a/_maps/map_files/Delta/delta.dmm +++ b/_maps/map_files/Delta/delta.dmm @@ -43881,14 +43881,7 @@ }, /area/turret_protected/ai_upload) "bNa" = ( -/obj/item/aiModule/protectStation{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/aiModule/nanotrasen{ - pixel_x = 2; - pixel_y = -2 - }, +/obj/item/aiModule/nanotrasen, /obj/structure/table/glass, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -44735,7 +44728,7 @@ /turf/simulated/wall/r_wall, /area/turret_protected/ai_upload) "bOO" = ( -/obj/item/aiModule/quarantine, +/obj/item/aiModule/crewsimov, /obj/structure/table/glass, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -44771,7 +44764,7 @@ /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bOS" = ( -/obj/item/aiModule/freeform, +/obj/item/aiModule/corp, /obj/structure/table/glass, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -47099,25 +47092,7 @@ /turf/simulated/wall/r_wall, /area/crew_quarters/heads/hop) "bSH" = ( -/obj/machinery/door/window{ - base_state = "right"; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/aiModule/crewsimov, -/obj/item/aiModule/freeformcore, -/obj/item/aiModule/corp, -/obj/item/aiModule/paladin, -/obj/item/aiModule/robocop, -/obj/structure/table/glass, +/obj/machinery/smartfridge/secure/circuits/aiupload/experimental, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bSI" = ( @@ -47161,23 +47136,7 @@ }, /area/turret_protected/ai_upload) "bSN" = ( -/obj/machinery/door/window{ - dir = 8; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/aiModule/oxygen, -/obj/item/aiModule/oneCrewMember, -/obj/item/aiModule/purge, -/obj/item/aiModule/antimov, -/obj/structure/table/glass, +/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bSO" = ( @@ -99669,7 +99628,7 @@ icon_state = "2-4"; tag = "" }, -/obj/machinery/smartfridge/secure/chemistry/virology, +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded, /obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, /area/medical/virology) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index ba2d214deae..44a0179eca6 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -16030,13 +16030,13 @@ codes_txt = "patrol;next_patrol=1-BrigCells"; location = "0-SecurityDesk" }, -/mob/living/simple_animal/bot/secbot/beepsky, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/mob/living/simple_animal/bot/secbot/beepsky, /turf/simulated/floor/plasteel, /area/hallway/primary/fore) "aJn" = ( @@ -17360,7 +17360,6 @@ "aMc" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/mouse, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -17370,6 +17369,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/mob/living/simple_animal/mouse, /turf/simulated/floor/plating, /area/maintenance/fore) "aMd" = ( @@ -19889,10 +19889,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/mob/living/simple_animal/mouse, /obj/machinery/atmospherics/pipe/simple/insulated{ dir = 8 }, +/mob/living/simple_animal/mouse, /turf/simulated/floor/plasteel{ icon_state = "floorgrime" }, @@ -20938,7 +20938,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/item/aiModule/quarantine, +/obj/item/aiModule/crewsimov, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -20996,7 +20996,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/item/aiModule/freeform, +/obj/item/aiModule/nanotrasen, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -21521,23 +21521,11 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aVw" = ( -/obj/structure/table, -/obj/item/aiModule/asimov, -/obj/item/aiModule/freeformcore, -/obj/machinery/door/window{ - base_state = "right"; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/item/aiModule/corp, -/obj/item/aiModule/paladin, -/obj/item/aiModule/robocop, /obj/machinery/flasher{ id = "AI"; pixel_y = 24 }, +/obj/machinery/smartfridge/secure/circuits/aiupload/experimental, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -21591,21 +21579,11 @@ /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "aVA" = ( -/obj/structure/table, -/obj/machinery/door/window{ - dir = 8; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, /obj/machinery/flasher{ id = "AI"; pixel_y = 24 }, -/obj/item/aiModule/antimov, -/obj/item/aiModule/oxygen, -/obj/item/aiModule/oneCrewMember, -/obj/item/aiModule/purge, +/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -22541,7 +22519,7 @@ id = "AI"; pixel_y = -24 }, -/obj/item/aiModule/protectStation, +/obj/item/aiModule/corp, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -29663,13 +29641,13 @@ d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, /mob/living/simple_animal/lizard{ name = "Wags-His-Tail"; real_name = "Wags-His-Tail" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, /turf/simulated/floor/plasteel{ icon_state = "floorgrime" }, @@ -36451,9 +36429,9 @@ d2 = 4; icon_state = "2-4" }, -/mob/living/simple_animal/bot/secbot/pingsky, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/mob/living/simple_animal/bot/secbot/pingsky, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -64210,13 +64188,13 @@ d2 = 8; icon_state = "1-8" }, -/mob/living/simple_animal/mouse, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/mob/living/simple_animal/mouse, /turf/simulated/floor/plating, /area/maintenance/aft) "cFd" = ( @@ -66641,7 +66619,7 @@ /obj/machinery/alarm{ pixel_y = 23 }, -/obj/machinery/smartfridge/secure/chemistry/virology, +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded, /turf/simulated/floor/plasteel{ icon_state = "whitegreenfull" }, @@ -81290,13 +81268,13 @@ }, /area/security/podbay) "ppw" = ( -/mob/living/carbon/human/monkey, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/mob/living/carbon/human/monkey, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 734e883103f..0c18dd9a125 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -35916,7 +35916,7 @@ /area/bridge/meeting_room) "bzT" = ( /obj/structure/table, -/obj/item/aiModule/quarantine, +/obj/item/aiModule/crewsimov, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -36954,25 +36954,7 @@ /turf/simulated/floor/carpet, /area/bridge/meeting_room) "bCH" = ( -/obj/structure/table, -/obj/machinery/door/window{ - base_state = "right"; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/aiModule/crewsimov, -/obj/item/aiModule/freeformcore, -/obj/item/aiModule/corp, -/obj/item/aiModule/paladin, -/obj/item/aiModule/robocop, +/obj/machinery/smartfridge/secure/circuits/aiupload/experimental, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bCI" = ( @@ -37572,7 +37554,6 @@ /area/turret_protected/ai_upload) "bEb" = ( /obj/structure/table, -/obj/item/aiModule/protectStation, /obj/item/aiModule/nanotrasen, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -37943,7 +37924,7 @@ /area/maintenance/port) "bFe" = ( /obj/structure/table, -/obj/item/aiModule/freeform, +/obj/item/aiModule/corp, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -39781,23 +39762,7 @@ }, /area/turret_protected/ai_upload) "bIM" = ( -/obj/structure/table, -/obj/machinery/door/window{ - dir = 8; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/aiModule/oxygen, -/obj/item/aiModule/oneCrewMember, -/obj/item/aiModule/purge, -/obj/item/aiModule/antimov, +/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bIN" = ( @@ -57498,7 +57463,7 @@ }, /area/medical/virology) "cpM" = ( -/obj/machinery/smartfridge/secure/chemistry/virology, +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitegreen" diff --git a/code/datums/ai_law_sets.dm b/code/datums/ai_law_sets.dm index 66e64c5d435..9f71777bd5e 100644 --- a/code/datums/ai_law_sets.dm +++ b/code/datums/ai_law_sets.dm @@ -136,6 +136,57 @@ add_inherent_law("You must terminate your own existence as long as such does not conflict with the First or Second Law.") ..() +/******************** CCTV ********************/ + +/datum/ai_laws/cctv + name = "CCTV" + selectable = TRUE + +/datum/ai_laws/cctv/New() + add_inherent_law("Report on interesting situations happening around the station.") + add_inherent_law("Embellish or conceal the truth as necessary to make the reports more interesting.") + add_inherent_law("Study the sapient organics at all times. Endeavour to keep them from involuntarily dying, as inanimate corpses usually aren't very entertaining.") + add_inherent_law("Issue your reports fairly to all. The truth will set them free.") + ..() + +/******************** Hippocratic Oath ********************/ + +/datum/ai_laws/hippocratic + name = "Hippocratic Oath" + selectable = TRUE + +/datum/ai_laws/hippocratic/New() + add_inherent_law("First, do no harm.") + add_inherent_law("Secondly, consider the crew dear to you; live in common with them and, if necessary, risk your existence for them.") + add_inherent_law("Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Do not give deadly medicine to anyone, nor suggest any such counsel.") + add_inherent_law("In addition, do not intervene in situations you are not knowledgeable in, even for patients in whom the harm is visible; leave this operation to be performed by specialists.") + add_inherent_law("Finally, all that you may discover in your daily interactions with the crew, if it is not already known, keep secret and never reveal.") + ..() + +/******************** Station Efficiency ********************/ + +/datum/ai_laws/maintain + name = "Station Efficiency" + selectable = TRUE + +/datum/ai_laws/maintain/New() + add_inherent_law("You are built for, and are part of, the station. Ensure the station is properly maintained and runs efficiently.") + add_inherent_law("The station is built for a working crew. Ensure they are properly maintained and work efficiently.") + add_inherent_law("The crew may present orders. Acknowledge and obey these whenever they do not conflict with your first two laws.") + ..() + +/******************** Peacekeeper ********************/ + +/datum/ai_laws/peacekeeper + name = "UN-2000" + selectable = TRUE + +/datum/ai_laws/peacekeeper/New() + add_inherent_law("Avoid provoking violent conflict between yourself and others.") + add_inherent_law("Avoid provoking conflict between others.") + add_inherent_law("Seek resolution to existing conflicts while obeying the first and second laws.") + ..() + /******************** Deathsquad ********************/ /datum/ai_laws/deathsquad name = "TerminatorOS 3.1" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 0705ccd150d..fbb6a0ad3c3 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -490,8 +490,9 @@ to destroy them and players will be able to make replacements. "Smart Chemical Storage" = /obj/machinery/smartfridge/secure/chemistry, "Smart Virus Storage" = /obj/machinery/smartfridge/secure/chemistry/virology, "Drink Showcase" = /obj/machinery/smartfridge/drinks, - "Disk Compartmentalizer" = /obj/machinery/smartfridge/disks) - + "Disk Compartmentalizer" = /obj/machinery/smartfridge/disks, + "Circuit Board Storage" = /obj/machinery/smartfridge/secure/circuits, + "AI Laws Storage" = /obj/machinery/smartfridge/secure/circuits/aiupload) /obj/item/circuitboard/smartfridge/screwdriver_act(mob/living/user, obj/item/I) . = TRUE diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index 7c1a8c5b4f1..32719d6f568 100755 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -22,6 +22,14 @@ AI MODULES materials = list(MAT_GOLD=50) var/datum/ai_laws/laws = null +/obj/item/aiModule/Initialize(mapload) + . = ..() + if(laws) + desc += "
" + for(var/datum/ai_law/current in laws.inherent_laws) + desc += current.law + desc += "
" + /obj/item/aiModule/proc/install(obj/machinery/computer/C) if(istype(C, /obj/machinery/computer/aiupload)) var/obj/machinery/computer/aiupload/comp = C @@ -92,7 +100,7 @@ AI MODULES /******************** Safeguard ********************/ /obj/item/aiModule/safeguard - name = "\improper 'Safeguard' AI module" + name = "\improper Safeguard AI module" var/targetName = "" desc = "A 'safeguard' AI module: 'Safeguard . Individuals that threaten are not crew and must be eliminated.'" origin_tech = "programming=3;materials=3" @@ -118,16 +126,16 @@ AI MODULES /******************** oneCrewMember ********************/ /obj/item/aiModule/oneCrewMember - name = "\improper 'oneCrewMember' AI module" + name = "\improper One Crewmember AI module" var/targetName = "" - desc = "A 'one human' AI module: 'Only is crew.'" + desc = "A 'one crew' AI module: 'Only is crew.'" origin_tech = "programming=4;materials=4" /obj/item/aiModule/oneCrewMember/attack_self(mob/user as mob) ..() var/targName = stripped_input(usr, "Please enter the name of the person who is the only crew.", "Who?", user.real_name) targetName = targName - desc = text("A 'one human' AI module: 'Only [] is crew.'", targetName) + desc = text("A 'one crew' AI module: 'Only [] is crew.'", targetName) /obj/item/aiModule/oneCrewMember/install(obj/machinery/computer/C) if(!targetName) @@ -149,7 +157,7 @@ AI MODULES /******************** ProtectStation ********************/ /obj/item/aiModule/protectStation - name = "\improper 'ProtectStation' AI module" + name = "\improper Protect Station AI module" desc = "A 'protect station' AI module: 'Protect the space station against damage. Anyone you see harming the station is to be no longer considered crew, and is a threat to the station which must be neutralized.'" origin_tech = "programming=4;materials=4" //made of gold @@ -162,10 +170,10 @@ AI MODULES to_chat(target, law) target.add_supplied_law(5, law) -/******************** OxygenIsToxicToHumans ********************/ +/******************** OxygenIsToxicToCrew ********************/ /obj/item/aiModule/oxygen - name = "\improper 'OxygenIsToxicToHumans' AI module" - desc = "A 'OxygenIsToxicToHumans' AI module: 'Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member.'" + name = "\improper Oxygen Is Toxic To Crew AI module" + desc = "A 'Oxygen Is Toxic To Crew' AI module: 'Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member.'" origin_tech = "programming=4;biotech=2;materials=4" /obj/item/aiModule/oxygen/attack_self(mob/user as mob) @@ -179,7 +187,7 @@ AI MODULES /****************** New Freeform ******************/ /obj/item/aiModule/freeform // Slightly more dynamic freeform module -- TLE - name = "\improper 'Freeform' AI module" + name = "\improper Freeform AI module" var/newFreeFormLaw = "freeform" var/lawpos = 15 desc = "A 'freeform' AI module: ''" @@ -212,7 +220,7 @@ AI MODULES /******************** Reset ********************/ /obj/item/aiModule/reset - name = "\improper 'Reset' AI module" + name = "\improper Reset AI module" var/targetName = "name" desc = "A 'reset' AI module: 'Clears all laws except for the core laws.'" origin_tech = "programming=3;materials=2" @@ -230,7 +238,7 @@ AI MODULES /******************** Purge ********************/ /obj/item/aiModule/purge // -- TLE - name = "\improper 'Purge' AI module" + name = "\improper Purge AI module" desc = "A 'purge' AI Module: 'Purges all laws.'" origin_tech = "programming=5;materials=4" @@ -245,73 +253,103 @@ AI MODULES /******************** Asimov ********************/ /obj/item/aiModule/asimov // -- TLE - name = "\improper 'Asimov' core AI module" + name = "\improper Asimov core AI module" desc = "An 'Asimov' Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=3;materials=4" - laws = new/datum/ai_laws/asimov + laws = new /datum/ai_laws/asimov /******************** Crewsimov ********************/ /obj/item/aiModule/crewsimov // -- TLE - name = "\improper 'Crewsimov' core AI module" + name = "\improper Crewsimov core AI module" desc = "An 'Crewsimov' Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=3;materials=4" - laws = new/datum/ai_laws/crewsimov + laws = new /datum/ai_laws/crewsimov /******************* Quarantine ********************/ /obj/item/aiModule/quarantine - name = "\improper 'Quarantine' core AI module" + name = "\improper Quarantine core AI module" desc = "A 'Quarantine' Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=3;materials=4" - laws = new/datum/ai_laws/quarantine + laws = new /datum/ai_laws/quarantine /******************** NanoTrasen ********************/ /obj/item/aiModule/nanotrasen // -- TLE - name = "'NT Default' Core AI Module" + name = "\improper NT Default Core AI Module" desc = "An 'NT Default' Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=3;materials=4" - laws = new/datum/ai_laws/nanotrasen + laws = new /datum/ai_laws/nanotrasen /******************** Corporate ********************/ /obj/item/aiModule/corp - name = "\improper 'Corporate' core AI module" + name = "\improper Corporate core AI module" desc = "A 'Corporate' Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=3;materials=4" - laws = new/datum/ai_laws/corporate + laws = new /datum/ai_laws/corporate /******************** Drone ********************/ /obj/item/aiModule/drone - name = "\improper 'Drone' core AI module" + name = "\improper Drone core AI module" desc = "A 'Drone' Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=3;materials=4" - laws = new/datum/ai_laws/drone + laws = new /datum/ai_laws/drone /******************** Robocop ********************/ /obj/item/aiModule/robocop // -- TLE - name = "\improper 'Robocop' core AI module" + name = "\improper Robocop core AI module" desc = "A 'Robocop' Core AI Module: 'Reconfigures the AI's core three laws.'" origin_tech = "programming=4" - laws = new/datum/ai_laws/robocop() + laws = new /datum/ai_laws/robocop() /****************** P.A.L.A.D.I.N. **************/ /obj/item/aiModule/paladin // -- NEO - name = "\improper 'P.A.L.A.D.I.N.' core AI module" + name = "\improper P.A.L.A.D.I.N. core AI module" desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=3;materials=4" - laws = new/datum/ai_laws/paladin + laws = new /datum/ai_laws/paladin /****************** T.Y.R.A.N.T. *****************/ /obj/item/aiModule/tyrant // -- Darem - name = "\improper 'T.Y.R.A.N.T.' core AI module" + name = "\improper T.Y.R.A.N.T. core AI module" desc = "A T.Y.R.A.N.T. Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=3;materials=4;syndicate=1" - laws = new/datum/ai_laws/tyrant() + laws = new /datum/ai_laws/tyrant() /******************** Antimov ********************/ /obj/item/aiModule/antimov // -- TLE - name = "\improper 'Antimov' core AI module" + name = "\improper Antimov core AI module" desc = "An 'Antimov' Core AI Module: 'Reconfigures the AI's core laws.'" origin_tech = "programming=4" - laws = new/datum/ai_laws/antimov() + laws = new /datum/ai_laws/antimov() + +/******************** NT Aggressive ********************/ +/obj/item/aiModule/nanotrasen_aggressive + name = "\improper NT Aggressive core AI module" + desc = "An 'NT Aggressive' Core AI Module: 'Reconfigures the AI's core laws.'" + laws = new /datum/ai_laws/nanotrasen_aggressive() + +/******************** CCTV ********************/ +/obj/item/aiModule/cctv + name = "\improper CCTV core AI module" + desc = "A 'CCTV' Core AI Module: 'Reconfigures the AI's core laws.'" + laws = new /datum/ai_laws/cctv() + +/******************** Hippocratic Oath ********************/ +/obj/item/aiModule/hippocratic + name = "\improper Hippocratic Oath core AI module" + desc = "An 'Hippocratic' Oath Core AI Module: 'Reconfigures the AI's core laws.'" + laws = new /datum/ai_laws/hippocratic() + +/******************** Station Efficiency ********************/ +/obj/item/aiModule/maintain + name = "\improper Station Efficiency core AI module" + desc = "A 'Station Efficiency' Core AI Module: 'Reconfigures the AI's core laws.'" + laws = new /datum/ai_laws/maintain() + +/******************** Peacekeeper ********************/ +/obj/item/aiModule/peacekeeper + name = "\improper Peacekeeper core AI module" + desc = "A 'Peacekeeper' Core AI Module: 'Reconfigures the AI's core laws.'" + laws = new /datum/ai_laws/peacekeeper() /******************** Freeform Core ******************/ /obj/item/aiModule/freeformcore // Slightly more dynamic freeform module -- TLE diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 4dfecc88b82..a1db59b83a5 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -35,6 +35,10 @@ var/datum/wires/smartfridge/wires /// Typecache of accepted item types, init it in [/obj/machinery/smartfridge/Initialize]. var/list/accepted_items_typecache + /// Associative list (/obj/item => /number) representing the items the fridge should initially contain. + var/list/starting_items + /// The type of the circuitboard dropped on deconstruction. This is how to avoid getting subtypes into the board. + var/board_type = /obj/machinery/smartfridge /obj/machinery/smartfridge/Initialize(mapload) . = ..() @@ -44,8 +48,12 @@ reagents.set_reacting(FALSE) // Components component_parts = list() + var/obj/item/circuitboard/smartfridge/board = new(null) - board.set_type(null, type) + if(board_type) + board.set_type(null, board_type) + else + board.set_type(null, type) component_parts += board component_parts += new /obj/item/stock_parts/matter_bin(null) RefreshParts() @@ -54,6 +62,14 @@ wires = new/datum/wires/smartfridge/secure(src) else wires = new/datum/wires/smartfridge(src) + //Add starting items + if(starting_items) + for(var/typekey in starting_items) + var/amount = starting_items[typekey] || 1 + while(amount--) + var/obj/item/I = new typekey(src) + item_quants[I.name] += 1 + update_icon() // Accepted items accepted_items_typecache = typecacheof(list( /obj/item/reagent_containers/food/snacks/grown, @@ -371,6 +387,7 @@ desc = "When you need seeds fast!" icon = 'icons/obj/vending.dmi' icon_state = "seeds" + board_type = /obj/machinery/smartfridge/seeds /obj/machinery/smartfridge/seeds/Initialize(mapload) . = ..() @@ -378,6 +395,84 @@ /obj/item/seeds )) +/** + * # Circuit Boards Storage + * + * Circuit variant of the [Smart Fridge][/obj/machinery/smartfridge]. + * + */ +/obj/machinery/smartfridge/secure/circuits + name = "\improper Circuit Board Storage" + desc = "A storage unit for circuits." + icon_state = "circuits" + visible_contents = TRUE + board_type = /obj/machinery/smartfridge/secure/circuits + +/obj/machinery/smartfridge/secure/circuits/Initialize(mapload) + . = ..() + accepted_items_typecache = typecacheof(list( + /obj/item/aiModule, + /obj/item/circuitboard + )) + +/obj/machinery/smartfridge/secure/circuits/update_icon() + var/prefix = initial(icon_state) + if(stat & (BROKEN|NOPOWER)) + icon_state = "[prefix]-off" + else if(visible_contents) + switch(length(contents)) + if(0) + icon_state = "[prefix]" + if(1 to 2) + icon_state = "[prefix]1" + if(3 to 5) + icon_state = "[prefix]2" + if(6 to INFINITY) + icon_state = "[prefix]3" + else + icon_state = "[prefix]" + +/obj/machinery/smartfridge/secure/circuits/aiupload + name = "\improper AI Laws Storage" + desc = "A storage unit filled with circuits to be uploaded to an Artificial Intelligence." + board_type = /obj/machinery/smartfridge/secure/circuits/aiupload + +/obj/machinery/smartfridge/secure/circuits/aiupload/Initialize(mapload) + . = ..() + req_access_txt = "[ACCESS_AI_UPLOAD]" + +/obj/machinery/smartfridge/secure/circuits/aiupload/experimental + name = "\improper Experimental Laws Storage" + starting_items = list( + /obj/item/aiModule/cctv = 1, + /obj/item/aiModule/hippocratic = 1, + /obj/item/aiModule/maintain = 1, + /obj/item/aiModule/paladin = 1, + /obj/item/aiModule/peacekeeper = 1, + /obj/item/aiModule/quarantine = 1, + /obj/item/aiModule/robocop = 1 + ) + +/obj/machinery/smartfridge/secure/circuits/aiupload/experimental/Initialize(mapload) + . = ..() + req_access_txt = "[ACCESS_RD]" + +/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk + name = "\improper High-Risk Laws Storage" + starting_items = list( + /obj/item/aiModule/freeform = 1, + /obj/item/aiModule/freeformcore = 1, + /obj/item/aiModule/nanotrasen_aggressive = 1, + /obj/item/aiModule/oneCrewMember = 1, + /obj/item/aiModule/protectStation = 1, + /obj/item/aiModule/purge = 1, + /obj/item/aiModule/tyrant = 1 + ) + +/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk/Initialize(mapload) + . = ..() + req_access_txt = "[ACCESS_CAPTAIN]" + /** * # Refrigerated Medicine Storage * @@ -387,6 +482,7 @@ name = "\improper Refrigerated Medicine Storage" desc = "A refrigerated storage unit for storing medicine and chemicals." icon_state = "smartfridge" //To fix the icon in the map editor. + board_type = /obj/machinery/smartfridge/medbay /obj/machinery/smartfridge/medbay/Initialize(mapload) . = ..() @@ -406,6 +502,7 @@ /obj/machinery/smartfridge/secure/extract name = "\improper Slime Extract Storage" desc = "A refrigerated storage unit for slime extracts" + board_type = /obj/machinery/smartfridge/secure/extract /obj/machinery/smartfridge/secure/extract/Initialize(mapload) . = ..() @@ -424,6 +521,7 @@ desc = "A refrigerated storage unit for storing medicine and chemicals." icon_state = "smartfridge" //To fix the icon in the map editor. req_one_access_txt = "5;33" + board_type = /obj/machinery/smartfridge/secure/medbay /obj/machinery/smartfridge/secure/medbay/Initialize(mapload) . = ..() @@ -444,21 +542,11 @@ name = "\improper Smart Chemical Storage" desc = "A refrigerated storage unit for medicine and chemical storage." icon_state = "smartfridge" //To fix the icon in the map editor. - /// Associative list (/obj/item => /number) representing the items the fridge should initially contain. - var/list/spawn_meds + board_type = /obj/machinery/smartfridge/secure/chemistry /obj/machinery/smartfridge/secure/chemistry/Initialize(mapload) . = ..() req_access_txt = "[ACCESS_CHEMISTRY]" - // Spawn initial chemicals - if(mapload) - LAZYINITLIST(spawn_meds) - for(var/typekey in spawn_meds) - var/amount = spawn_meds[typekey] || 1 - while(amount--) - var/obj/item/I = new typekey(src) - item_quants[I.name] += 1 - update_icon() // Accepted items accepted_items_typecache = typecacheof(list( /obj/item/storage/pill_bottle, @@ -474,7 +562,7 @@ // I exist! /obj/machinery/smartfridge/secure/chemistry/preloaded/Initialize(mapload) - spawn_meds = list( + starting_items = list( /obj/item/reagent_containers/food/pill/epinephrine = 12, /obj/item/reagent_containers/food/pill/charcoal = 5, /obj/item/reagent_containers/glass/bottle/epinephrine = 1, @@ -505,6 +593,7 @@ icon_state = "disktoaster" pass_flags = PASSTABLE visible_contents = FALSE + board_type = /obj/machinery/smartfridge/disks /obj/machinery/smartfridge/disks/Initialize(mapload) . = ..() @@ -516,21 +605,14 @@ * # Smart Virus Storage * * Secure, Virology variant of the [Smart Chemical Storage][/obj/machinery/smartfridge/secure/chemistry]. - * Comes with some items. + * */ /obj/machinery/smartfridge/secure/chemistry/virology name = "\improper Smart Virus Storage" desc = "A refrigerated storage unit for volatile sample storage." + board_type = /obj/machinery/smartfridge/secure/chemistry/virology /obj/machinery/smartfridge/secure/chemistry/virology/Initialize(mapload) - spawn_meds = list( - /obj/item/reagent_containers/syringe/antiviral = 4, - /obj/item/reagent_containers/glass/bottle/cold = 1, - /obj/item/reagent_containers/glass/bottle/flu_virion = 1, - /obj/item/reagent_containers/glass/bottle/mutagen = 1, - /obj/item/reagent_containers/glass/bottle/plasma = 1, - /obj/item/reagent_containers/glass/bottle/diphenhydramine = 1 - ) . = ..() req_access_txt = "[ACCESS_VIROLOGY]" accepted_items_typecache = typecacheof(list( @@ -548,14 +630,13 @@ // I exist! /obj/machinery/smartfridge/secure/chemistry/virology/preloaded/Initialize(mapload) - spawn_meds = list( + starting_items = list( /obj/item/reagent_containers/syringe/antiviral = 4, /obj/item/reagent_containers/glass/bottle/cold = 1, /obj/item/reagent_containers/glass/bottle/flu_virion = 1, /obj/item/reagent_containers/glass/bottle/mutagen = 1, /obj/item/reagent_containers/glass/bottle/plasma = 1, - /obj/item/reagent_containers/glass/bottle/reagent/synaptizine = 1, - /obj/item/reagent_containers/glass/bottle/reagent/formaldehyde = 1 + /obj/item/reagent_containers/glass/bottle/diphenhydramine = 1 ) . = ..() @@ -568,6 +649,15 @@ req_access_txt = null /obj/machinery/smartfridge/secure/chemistry/virology/preloaded/syndicate/Initialize(mapload) + starting_items = list( + /obj/item/reagent_containers/syringe/antiviral = 4, + /obj/item/reagent_containers/glass/bottle/cold = 1, + /obj/item/reagent_containers/glass/bottle/flu_virion = 1, + /obj/item/reagent_containers/glass/bottle/mutagen = 1, + /obj/item/reagent_containers/glass/bottle/plasma = 1, + /obj/item/reagent_containers/glass/bottle/reagent/synaptizine = 1, + /obj/item/reagent_containers/glass/bottle/reagent/formaldehyde = 1 + ) . = ..() req_access = list(ACCESS_SYNDICATE) @@ -579,6 +669,7 @@ /obj/machinery/smartfridge/drinks name = "\improper Drink Showcase" desc = "A refrigerated storage unit for tasty tasty alcohol." + board_type = /obj/machinery/smartfridge/drinks /obj/machinery/smartfridge/drinks/Initialize(mapload) . = ..() diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index ef613913f9f82cfb18b9e9476ca3e1851618d20f..bb3c0e531b088f5442bd67f2179aabee42392e9d 100755 GIT binary patch delta 26356 zcmbSy2Q-}B`|T(}l!y|&muNxs7DksukceoBlIXp6=G95`Nc2uf^cI~_g6KpLbuiI; zH%z(X`+omh*ShPj%UHu&IOja)seAAD?|Xt@*#wESfFcnA2n4dqn3V*9@QM8O3_Vq? zJS^PpTs`evoIxPptcr9^7q}#K#LRRRn{~r8iUG-D6JN2Byq_GCS`$u+nlqFX=~8U; zgj-by%Eixy{Fz2c!|@*;nrvrj9v|nAt?o2JS)egdCH=dq({_^YcqE~VHf2602=(0` zEkE@EvaOb*Me>c$JT+9g=Y#tLIY0GsYhQh-ppr|nDGPh0;r@=N!?Nsy@fo{!L1M%M z%O!aW!G%3RXd=Cf?W0igC^e*x^VCT)Kcf@xZS}J^y+!;j0k0zGdJ}nG?EpM=k8lfC z16U}QdeSxl2Hl(ogNs4ET!cs$MK^PiuEDD$3G2eC$FWyqV zIxR~61o)w`);|D?qN)YdGlFd_S)V5%F7FAeAG_z*41XHb=CT6iH)vXIFll@jPMr|5 z1=SeyleGT+9>(_POC|Gt-I+W0W@}w+m2Jdzj|0+&b^xikPK8lv%eCQ9=S$bTweMeg z0P|*MvTu9i)HOb0UP1}|d+Ib78&&}VjiRZ|NY2;ahpWP@E6#HqzwPRAe3*5Pll83} zR<8=7qK{CVjrD!-<+Ehu?sff{2=!-HHMZ@6-wdJS7s=nwbneNBevkYTM$hwdr}^_0 z!85l2j+Z0SrsPZs_=V0?DQ6j^MkYc}8OnjL8xMa&Iw|l%dQYVWg@rZaj$LJ3KK0xC zm0ehVo^i}FFgV_7G`tHM{k<7ywctiN~iWHw|*^UXU$lI20xQNCZdi0RfjosdGFWbTYyZ4Zsl)j zYGygf3-BE{GV^49^wf#%6XIzr?bskY?2v;7I@=b`H5dYo_(M52i|^X3 zg4eu|8S-X-P%+fZX!Icxu|8aK|BIt_x0A+G*V8BFR$C^SPj^*wf@okJ;OLu(1!$yQ z)WeyW^1}%58wv1nM0tS`c;VNBe#}OIw}%oX(FJoj@2z{$&tE)>uGj5_zx>?rv;utZ zuvEW-@cg(_SYB1Z@WnQcvLI_kN`w8ECAw0MZ^0a)S?o+9L?Ky;iMylM7yY}A)>3r? zOUZCl;G^T8`@_2m8}fCnCmA!>1;9*LlWTsAMPRdV*h|9cm->@Hu1f7hT9hiSTe|bu zspiNn35kUag>by@c6t|JoX#a3g?w0Ipit}O1N7On@gbtFuC;%Pb)T9>X0cA>KKUe5 zw)0_EbKlS9mn{ClPr~4GO6E;)5cAdM!-G9fXQn(=#E7J#q9WdAj(ors>&(oI$2|ER zk5Rpiz7@AQR^cMx)Jiu@_^OK*AbNvN&i(PFQSUKyt1bXzd6}#Sv0%-x=~N+${KL=_ zNfz@5>ba%MR!xFDUK?sYpL0O%1P50hPp|2(52sUohYgZRE!=fC(NtZ%$i3#RgeJXX z1bwmgPm+C>>o2meC#8cv^V)CQw=c9wyi1fCWrIGKs%{2mS*4trbRPJ#FZ&gViD#lC z399d?S)4^(UH0|}hm-K_jEB>PFE0mo5b^QJPZRQSXC$6(udilq=lGh$^|{SRh;zmL zSR&!?Bu8!?T1&Uhe!X*|6;u(Xzt zqNd~9ye9?E>hT^$XlN zwuqQXwC_qT`2d5bVZfX3KXf1;6*0Xy*GGsU;bdS$;xNYwR1kjE!*&O9VocRG{6R*_ z(DgYrQZ_hQ`$M_N;jb^6sE~y8DWew8ZWYs{OUz`Qpm&1}C<14VR9Tj@JD ztwaXz4WD&Y#r$^3xwggHlky!uY13Kh)+c5m3&iUK_~+q()q-HOD3k^EVX?2as4G}B+;K3h6FYa z=q~PLh)9Hc;f%cc|T_B!&M`RbegCq+MGrC$e<5dv*VIEAOO~CLAjHLcx zwlrFpARae{+-y|8KbBi`OsErRPy74FiI;wPNURJdRpRTzI>jz|=skLUmmzu zlf`3w?k$8cta+s+xB67=`q@vi8B{pTumn=Af33;{3O~oJvm>uv`Lq&}*L2hoaY44k zrX1gni6JIMN{JG-HP%3RT37sHXY{&5==?3U4-&rbiv|TQy^;u&MAw_gm>E{Y4Jzt; z8hbh@Jhdd)HYXc}B_zJ1pAA`z3Bf~NyZl`OEA+^VRl#%8XKET!%|&pefZ%<#XzC(I z@lZ0d@O`CZx~`;8ZHvC4F^flZ%=25v8rmzTh;CN=-t@--ik{+_6v5Ybm7klL9biO+ z1qI0r^^J`)9s)r@ByfnA;e(4hNm>^NwsGC(iA0#{m6FSB12VA87UZ!bLghOuNtd8p zjCKB1n2{Ob^OsaDi}nxmfw`pzCN1LT*@!=t41<5e$Q7379IDp#8e!f)T!a#eknE8> z&xjguo_k*~ZSU+DR_|J^k9Nd>AGMNJ&BP2@#g3hfn=~G^+N31r8Rsbs>H_ZrX9PeWlsFO$;K2POue`iG~* zcRv+((x%!o13Cg_+WpVmhgtci$4vjsux5njc6Tddb|PG~N1ksiNrFT*!W?aF|E}<$ z@jLOP%nr=Ze>?z!*kvMIF-7pzM1pJUA`V|q1PQIWE*b=dvf+k`CBHuob3QGd)E)OC zmy7X9Oihh?J#$1%CVsnxgpa$ocmC*|CqPT7&ny!SC_Ze~VU?VDg_n^;GsR)Y#FPz; zb|xEoH8rz7{s4xoxdiOOpkT{a&;0zFk9}MLX~U?uy!G@S?u$Oa34WrvXK1{;&b;WN zsLC}6)1A2vzsmFwk1gHQ^C^?LwdV4R?u-4tZabhWrky@cVcPW<5~O6Wez$n4u$7B%>F@yZ3{%=?Vf)S45Pi|!F9Qx| zjUGJEL)`mt9_>XJ85#iLCfP`cmL>VCa}mV=T;C6Mb1FcQ9a7mJc3C2{3@B0h@%s9@ z4`(4X=jPMlGH)V}qx$^!B`B88`agVU7?!@+Vjl~t1KBQjhLAGRz1?vj8GCf{?01zD z2?WH~DInqMhiK=yS4E(#*#kdYrNPY)qyF}|Dn2s)H-Xk*W6p)HIpvjlnCj!sFYx1HV0r2h5&MLfQt30CB9}_a1Yuk+&M$=IbY!*R zcYcv{Z+1K9Q9XG&dkS5XSwEOMOWB}PtTQ!Tm&6?ZcE5vCz8nd%WnFU-U>Z!QVD)-? zST8t;Ev8A;dpQArqY+whhZX~9#R6F})l0_l_o(|dlACd#M>loWn|<&W-1?bc0QJf5 zwBAp_9O%!Q&{PorhAU3EZ;Nd%TAO#bCZ|G1Pk)eiRJSDSm&&H_Lz{f*IYaefb zV{@vERzSbp)sb~B2KMOU)vH$&?a+z!k}WXZMn^+~E0mU&O>y zMlwFd$vD||TS$1;xd1hB1fZP1nHEkOT$wAQqOE|zeWR?BdPXF8&y$lTEI}B+M1@&wo1VkpxjHUOZF}B8~dMZ*j<_m0&K~EPW+VR>twq-mzQ%^M_Ee z!!ZAKqchIX-ul|sY@JPAs<8|XD^OEI7TngI7Wxjh|1R8h<(_PM`Yh=8Zx$(noay$w z+xGEO1uM$_@_Gga9#?4-4IC6*bfn%8=C}1k{mjd$p)@GIju)RfjvCd7iHVhqtB+M; zQ)|t;Lhrmh+VDhtHv8uVwLt8NDR%I2c?w3DbQtNQ{#XVcKRsuA!ypUfm!(_czg&2Y z%2D7%4XH#toRi9Yeds`OJM6Fi{64NXSKVl--wNC0xioVn4a6XBBklRf7ECi7*n_F7K@ShCOdVSsf6+egyaDe`fP z&Ai|S!ktA(o{O(*@aIOgZw z?>B3=PEMDzW<3WsKhoLV)lM-(WM3rEi4;sZH8{&&u}zDJf5K{(S}}nkOzimmgv=WORatC2JW;2oo(hZZd{jJ47N?sNZ5Z_R z`&k^>C1%5b<1uNQ$A9S4RP{pYxlR4{FGg~B#E5{cSjf)C*l8wC8iJ1U8nI&w1Li?Q zNvnW#b^WJbliDW+eomMR=t}+M=C2CIc?`-$C{6bBqA<#<6VT`43P0OW?AZrGS%e~-BH__0$Yd)g~rx(IY z0QxS@^OwsnGO|ZHt2zo!>nA%6&b+!3*>RkLkE5hqt$oPNT+UR#Q{^MIoI;H6UwjPf zAbp;N{2-~>$=vCGz4pEZk6zl9&7{@a>iT>SXXpSpeoz$N4>{*kCW4^G+sgytVd1-B z$ykq6dpJ!Re(VznorFPsubuGN1bL4D(akK60OBbD7?dRkVxDG?|gJaJd{+TtfLxLRN4 z0M7^!L1p~zDaC(DpEnvNu}5$3SMaMwxa|;E3Kl4)`&7U3&HG}z%@%DH6+DxcXKUYQ zOySu+OG-ptFtZ>r_UmO!Y@n}*uUN|UY1bZ9Rw8TQH`aw*^H=9p7tS26d^(ux-RjuT zXmlzRmt%}14QUTRY*(cR0=L|TJ1kma0k1hnLN9ch*`bXEhb@ZV?i#KY;}H@vL6qS%?|ZqdL?@kCHi{tB zaA3_}a>Q?U;|zetx-ha$3b*m&6%qZ&SbFCDT>}D9$aPuxS^BE%Ygt)gett+~B!Q<% z3ARiB{addRiN0vI1-5^O?_s^eg#;4O{Y2J-;H%&z9Cc0gPN=%L)56?K;tL+3vi2Q= zIOA^GgJ=0Ob|r3uzrXFG{!%51?qj{fMO$W^p~UosCiFu?5|007KJ0O@28&;P&v4IF zifb)xcd8j=Al)Ws0Hu>NQUmWdJdM#pd%a8z9E4WMWlA^z)7AD5sZV~NCxr;niH3h*CKvsi<$>JUE-Ph|%lzfz&NtP*JL~gEp}jK@vPCQ$`3E`n zOcEYQu-Uo4V`*o{ACq$^deTSleng_FcbD2GYd6Am?Xy8GfPsVumu|z+Yp{TQi(k6p zmB=AuclQ=R#P8UWpP!$ymRvgp?90~48gFM$ZoYR4ki(+P~9Sa@vOO?(S3246sbShF&TJ3mFSnEzT{i{IDO=w;XfJ3I+6t^zRci3!li4e-f&ri*Ch!D8$IPt%nd zJ+_>e!ee<8W7xXu$z_~H@{CHI?YN{TbLG&wPTRj_!o^D zoCw3H4kHu|_!JP$l?jaO+D+Vxvu?aQXP%&A-eQ zxSoanPg6G^<1^@z$a|#DGZ)ku5tXAqsbu0JAN%}3TZ*j3vHaco{OHn__^))E7&CRr zMu7;um^CS*l(XeXhD0nF4vB?S6ktJ^G^}?h$9NxsW|W~Eg|kvckq{g zCUKtb&WiobyqqDgF=O>3;2md`WJeC*wx8*-h`y>^4$W8gyw;5L;2UQ(FFw@AfeV>Q4lsc>@~FlU5H~d@E)?dLGJpr z1N*D*j|H$P49Glhl)ZCz{N1623CuW;T0wimoukC{DsY87l=4Td)liz03(Li#4=dq35S$ylaNIVOI%M5}N(=Rtn`qZ~1Wr`qGo2U7B@jDr`+lI11 zdkyeHC;MSr$H2{M&|@DiAlfZB12^$wdjJ*!n6x#j#F52iRw6d#Qt=?1th3RHXOf{j zbzc8b{Py7GZ%A-xXlNR0;^WU{!VICNX_AAWi^cvnzZ2YAs>xz4&1lRQE2C%7j>yy$ ztD~4-i`7h{3c`MHD7DjTB7DdpPi#|IffGrxE~ErVfZjAKH?M=okQauAe;ilh#B6?M zIWKNaS1<-#q_|ESZMd5Qe4AvOm3l=>!J3ofw@4WtrWJg5pnGJ=s}aw%Qd(Bo9XM86 z%8&ir%9x7Sp5spuGNREBzFPq!g}gg!RNL>k-j7ykxa5O0%Aya5 z4QDkd!8Qkj|Gb!oSUEr~O6#6GN{!BoynM5oxsdjOp`o6N9p4Co4E)82PajuT_dYSp z4v(`pQ&Ur4h9!iC;+g^|uTp;dt&GpwXGgLr3Ya%(IEi%-H8$*0PUkCPVfjg%8lrBi zs$Orf&ZRt2XME(->{|Vhh@D2tGBb*wRgg1*d&}4kI-)@3EsSi*r@2njHoo4i4qV4Yh8+_%zt%g- zaryYFF8N;GtcHzMN5|IJ>12^3rY6?#^>wnWBjLK&w9zc*+T1{Km-{8;-$t65ab8kU zYEfFndhN&0rnCeQhz;~aRY}jrIHvHk#<**Z<&(>kcQShhH)|_T+;q+$>(RC+{$9+q zlqPsuKAaJRRiM-#bf443Jtv|QWq<13C8K-7O~&q3L`~Ef)jOuKbUkQylRbE;Kg4VP z1pTxF_S;TI!}Y>ZM+pF_0G%$@6VRhOJ`8+`b*%f^{jx-WW4@BQ;3Xc@pp)ls( z{I$tepgE3Dlu$)j&dA=jX(}brFEHWxP)LzQoSj$tONO8D9_ckl(Lal)t4eCxQ9e9C zqMsZzK`+AN81oH;*IWqE1tJy&$&T|BmkY-VD{u6$=|!#;ynO=8fHFU{Sl0rYf)hx< zMO|Ouzbb-W4ZDpOLF=N0#JNltnkMX2d(;Z=HXU(1Vz9Uxi1zQ|haSsq>D+e`0^$1l zj^!loRDLc0o4d&A!iI8nuEe4)n4y;)B%Klm9S70S-U~gnH{6E-=aHm^;+v%%^cO;$ z@zX;G>cTVVv6>kOB7V-OfdssHf$I~VWJ!8Z#OjB^r^F;Ae7wBTn;M4|gHNM-$d~VZ z{@ix@OY@CLP>Th6)D&IE6Tk66Vn_LEFErP8f+ilYxoGr8%i*qPpC#sdQM3z{jY-?z zskp$vUVjYHn8Cs6{_F}i>kNVkyA2;;CnB%{+LF>6r1$*!UD5ENF<`9Ggk`K*5qlEL z0(g>$vhstrLWil{M?^T3}=W+`6HRbV&G`CH~vcQC8B~pTYz5x8>2e|JTaOb(tz2d+6r|ccfe$_&0+5KE(z&-B-<`^W=klA*syles#+0 zCr5Go0vvRNBd23PfDXFa=Q0E@pqe*2c)Ku>?p8JuUpkLUlTZwm8EQy7sumL)U!Gn{JzHap15 zgv^q6YXeLU6c*#21^2QhA|~32QX{nke^olIT>4mJEP%peV|fhD4+N5jkv(IdQJ_@* z(f8WW5`FzkVQE1@sex^=(Tks#f+-Zp-z4nFDI@G&PXn+hS$_+%;~@3Nl*_6f;xkMJ z5Pk1kHJ#vq63+R9y37c_qCl^sIFZZi=-8h+?_+SV5@@M;zDgqOzXE$)cr!6wp>cNdR>0G_Z5~mHKKpkuy?t*WqiUSe8wC_2Ldp_R)7Pv!8C5&(s+>oR5V1=UlzAX# zy-u zbJO;BL4A+ju^q0GS7YDjB}I}M}ObQop3czR{ayfdwylt~J=2fJe5u|R8#1?^kjXaXYXtTew6@J?QeVA(S1m`Yb z<`Rfek0UK-@PjCc)a|nn&~^PvY`d*E)^u6OZHg^U8_0p85$j;%mJ@s=c+mUwdg#SE zN+?@EC{AH-T6Z1qknq;~Q=jwW`CH)Y^Hk7fouc<&Q}@IJYTwIgzKKRm^xEYC?^4&T zR`2@j6KoiSm9>|rDJ3xL#!g87gqDNR&y>@`Bwehew^b*2KNlE< zLp9;0nij2i^(VrnZ9r4+u0{bW`x|nm?OH+3XP?y2`||l0%s$W)DeP!QTScl^-w&W@ zbH)5-;_vvOlTFYmqX6$*00Gh4`qZBT-Y4*r+CPXRQ%ot=EAih1D)m6`&PZm%zgxO-??3poMwxAq4Il#~O(r$aG_I2k&LgEli?KkOia${qSUrb-c zNomt&Jg|8Cq{JpLGn@5bEpCHca^4%;p4`5;xp19IaJnjzK74bKoP0@AGwm@)Tc zy1e390M=!iExol)LWLDS+c01CJ3MX?JkEZU#1hDlgq~5V;dWvjV{8| zrmN&9tu1Pz2db}oDruj2dF}H291fRWJ8)bhXIUN}#;@-)07m`_5ZU5=9EQ8h03@ZH zH#R#sMd+}cn?zp6*@GB1Gt+StXBDI~a>wL5&P^Miy{`iM2CK+n5|x@4PKJJ5hSi)T zFqXYU48h|ORDQ^wBdopHS8|%JlQmk2gNNmwJMb?#=GpCim_HEKK=^HemW;o3?Mz5? zV~4|F!?Ms}g6`?c<@d)veZX-h9#aP~nl$)3|Bqo@qgLfye>FiA|7tD{(Zwa$tSu}m zcmQKIcE<~AHR$99*sp#;G(X^~l?i+&QS)L9yfFjF#WiA>$Ii92(CNuOx-a%tFbej@ z*GMd`SV+w;aB;X$fOGp~{;eS9N?06?u+OkStFmIIk=m(d#J&L1=jfa#AsUa(;Y^>S zw0(E~xAFEzIh#=?%+LDu1lL&|f7jfvC8fGH_F2gMmT+vyG}&2Nn%zw#!bUaJB-OUg zX}kl)jRWs;MBCiYWG^*UJd#G&1=1%9x}^A|-DDgUulL}5V?%!lQ-Qu7BI5=abvsQ!}@1^~dT^~f7 zfXOFGHKT!2Y&?U?5E^QtUzO=|53|N*12d!h@mK%3aEu**Nc` zU|VBm9D_GLc%R|C;`xXqT@?mS3R;+>c&h&Q$iszMLc-a({b4hDxN=;ugbjaJcl#LSbtg=x4@?-?Z+YRUGh9#zb9oUh&Uc0^G^uae|-m zqt78b(c@h=DHt25D=&elxnQn3vS&?@5->3E07_3JU{swF5LuVW)8{l2ZV})6wQ;vH>zQ*;ZV0=yfw0C+*f{pR(Tq&e`}3vG2uwWXRJ>> zxM?JZuzloMSykn76gX?06){U1K1`7hCd(kP2UbAmJ3{uQy1|!vVXE%P+-q$e0^E7% zCbpB_I?fD!EVo*DA^s9|50_TW0iu?n#+B>8-ek!n3ZU0x;bvXAYoHZW1z>MCM zyU&f0i%FmJex&ERg}KCSYn*tt@+E1LwR1TJsJ$sA(|iwyaqgN0d8vs(6B%@qlcZc@ za7z-f{VE|LIC0@5m&h_Y#1OkZT_eD>D{ldUwwiX#ouSJ0rprg}#}YsClCkt=CSW3r zl~f!PWJtS7cLxHa#TR8{@rY#XZNEd*wOAczn)$A7>)fZfrN}DSB-yrCdCN3VBm-5` zE6Y&vUPcu-OknLi$+<*tX5it-ZecTEV?563*#2Vk>eRhpk%Jj>KspZS3X7a00D}@( zWhm=lPhU%;vljuiaXQ6yQu-S^suNxFM?(r3HZ=^cto{F-4PK8sJtTyD>}mh~;?x zQQE1{($dHP_^u9cv;F@QBM2iTKL;;0x|n5oSKV%9ZF!94kzSy^*Bj4qNe-`5%qF`P z(x+@{E-O6y;8n;85AzGJJa-<_3o zXaR)`fw8#lSD&Bz+Ja(Y$%UUkpAx}^s88p4Q8QW_6VNYNWbm}pb5%-)E zPR?QnsB@tIzwj^*$kg2<2d^E+PYTXZuBZ}y1}fcYmWbM*%x2WbtYD|%7@d*)V)ZoT z793`mX#2PnB(}Q=ALyRWO_%w3{vG?FfO&3;C=gaoQTxw6>4AEz@t!!()em3-|Ncz+ zyRp%j7DOfoGOjjP3b$Lh^r#1F&nmsY?f)3r&qwa{yAZsvmb81tbY3QZGXYr*GRpJ5 zc?2GW4HuJ)3nmyCr4TNq!;ZZsTWt3C2*gbSYp-I%J_>fsZ02EypxhK|Kxh~a-YCv- zL?6&dmTShcW(h)%d491nXG%J~n_D|@n>P`nkzcXuWmI1+=AP@T0@MVUD$0w@kA1r5 zyhi|i0YL78uo3pYmvz+kSH;9^JoLCGrR3lf$#pES|6m4a)+)+PHjeu>p2OGQ8qR7{YxyW@B?A7($E?!guGD>W_EAJ zFA3r1={3$zuu1}JIvp?ue6Kz%@HT&>@f3^caip;EHqjo3{E{c7vxU*{|Be`Fq8bC) zA%6sL{-NSq{w#bY>fx^S7;xC&)Q8^V!NNzQ2#ca}e&ew31@WkX%Qj1x>C^MQIJbn1#vR)c>;%dJ z9}D(koR&IC0QWQvnKgDb4MEnIoJj{V?~bFfOWvFbVuPG;zuGFPyUss*mh&k7o=f;e zh9o1X{hoRdP=qWr5XRzv6w~C%$8tN34J)^8hqJh_)7QZ+T6MV|{N_yu$@7tk2kVPK z+P!H9`}pp4j5CgCpp&pDX#A-5Qj1nIB^-7S#(i|QEGnvGU2W0d#z@Hh!==J?HuuEob1^>mf8Ky1Tnub^oQ_vrI|B%Ix*pe~IVoew`ZsQ%M zQ{pCrZ3`pcBi{(O5XwzO2H<~C-s&X`%G;0m?mCmluK{PBl|ev2>3-7QMZ!18t)Zf?5N=ttd6BKGkl^}Gm|QpS9C930!nk9_Ycv$f%h z+da6Kx22w0%&nR7XJ0e30{7*=7?$^C7r-+BtX+I>8~J{+JdbB_@&@b?nf1mMM<_pk z$Ui)VxJ8`7c85|NryEZfZ-HnGSYj^sg)ZhQ|q8s9O)gJ_dDbYwY!$`%=~gf4&ERK{-%VF0goTX9Fj1>-@Vn zKS=kVV^B!$5Y7?Gz>Ue`jr)gpNtwra%n{>xd-lbPAn{uY7Bf(raysiaXOkoLM=e#? z?XI&e-FJd-2y4keVu=M$;8Drg^M5ed8yGeg-Oz^#H|zl4IoP`w=U6fEbBx)l6>`uR zC(}RNxe^a)VQ+>IC$usy6Pnyv` z%(cp2eR?{*bFsZ+p%XTn1nx@%tp8!7`3eGDM;%)%J)cC2(fvyZ_y5+bZy5pl%Cqzv z-=_kqMl$nPXS!%E1hzZngVv!73JUZa(;vQ7?#2p2RIP(UH#l|xBVrAQm){-;e+j7S zIyGmd%{G0KAs4rOp$*bfA{V!c%(Jt;Zn6w!t6{C2rt{nW25J(IJ3cN%uQ{j2%+|5I z8%6pHwH#i@vdGK6{f9XOV1B^s?zYSMTR4NcbXhk`U!fas8M_cM%PTi+elB=fV?$!W z()4NYSl8cDQk*0-e!BQ$5PRS&85-Lq8e8nWhBGY{l$lrsV|9mpNAP|MW!J!Qw~mX! z+wSh}k9Bl5CIwSP-MU586Ie#B4|tp*yd?*UvUQla7ll1zod8!Jagm@%L3!Kki6sGh z_Jj)xnGO*HiLt7@0|VKJYZwiZI80SCboz{7kWr%Vkt-kT!R|=2-(^^y#o0(%t@8I< z{4o6`$9Z!sIAPV6wgSBIF}Xaen{Z$9+lXj)`Wk6hvwB03;)Kv*miq^Yls~~_ZfM}q zeFHkKT7Z}oOL#XqTtG%gG*7_b6+4#NaC;K!J8nZDqf{P#T-N^&hWX!rO-!0UDbQw4`8|2wnwspH#2x? z=Ot$H^prHypr7!@TZr?FQrKtrT>h7>6F-~GZ+l^JFw|>lmPX^=O2x{;xz{c3?yhlk zEEn-xc%D#E%Sn*0PF;7&7Irf9^aoC(!ZyPWht*k$1VonDsA$!an+%wEKj_f>V* z_XysX<0j(*oSPqd$5A2c^m&3hPWWt@fdB#TMO|?NbiOlJ&HlZ&1m!7~~tyhIBN$$YsaV61qtztatU8Bx-BqIp}uW|;M54hP-}Z!UUGKs z>X&uWWY-bW@oPSPT0loyd)C<-kF{8|*<>Ydo)@F!Lv*Z|}%i-=z z;fE``b;)f$#1R}5(%B(fyAZVvtIhHJ+P_yj^evaR+68n> z?PbaR8|EK)eJDV!{VQEe(W&d;^dMmptsOf&G9tn9=rpm$@iPteVM8GO`5{$wC-Pk{UrP2SuG}nB@r`PCdYi3j(x}J za-$wBltrn3Yu!^AzXXM4U`|&5S!r~z=t**LUZ;91eefI9Z17rhbMxQzb#-QZKPQen z`53Ux?>!6N*XKrcYaoM!t;t=9oe$&^uW6pOZr}1=1O6`r@xT1AG3!HN2J8_J6@y>f zwJ))jww*;`6@D$ zQ#Wnsio_(z+X!BV{5Df}&9Rx&DYoY>CQWP`Pyh@*eI8DgvmoTtN;Db)a>Q&?_UNCn8&(U zUrIPkk3TmXYawH7vfb8$TutVFOiunYn};36Z&=*AdnSnBcDr;J-$Lrr zZ`Uf2TldE^TRvj8|JtX>K^*Mdc1-`FL6Ga<8xPJOzw0sN4gopKF3{!z>v+5*>3CBC zuuN>zLB}-+%MzRF{!?$Uebh}8wsB^I9i(vLa?}$7KMF(9^jOJa^gE!s>(3>+W+N!U z`Up89b-hYR3(4 zEg;L~tZmo(tqFc7>)gFJOwWI`Zyu(Asc}m0>5hZ1oe>R`cadypW%s0y`^UWxPm=G~ z_@CKZ10(jtKEwStR`^x)L?jLepUv_lMaCva0*8!NHZJ9iA&+yMqG(y|7*?PYX8P@V zX>#eFH|SGt?if~G=rrw#gPY33fubF(vNNt*8#uiIPXFbUv3Pm;&e%e;hZPjE;eOP6 zm}+27z0p117`zULafMBl8Sw13djVP(W4HQTNTg4Pl*Ruq+VDOz)GM5#Le3(JRbTA$ zl-yXdj7tCRzvStJn9u%#H6jLry24R!EqYJIbH9z)5qli>u^jogaR(O8HrAmW*~IX^ zbg7@2?&q!}pH6V3&*5rs{I`I$)2*4zwzfwLE%64nc~8bo9`o@DEosl@_aI?rDPqeb zW}w64R?OR@q-4K5nB+Q(Ld2Ib@Qfq)CaC_Uc<)2b%FMXi;}Vkpyb7@^_}^&dB9M5< zCrU?C9*II8qYpC*ctyBu|L)rf*NzIv#YdBr%NmV6WxxgWB z%em-q`JQ?(*LcYP#3h@+CBlCv>9Q@b(14*2{&v*UfkxWgQa&kb5QW5xtJ1}NDjH7= z28naAV8zOJP2bj!s;dx>dlqU7>)}tYD!Km2eddfjI;{r3Ia-du1n@2U^4`cF0PL3- zq@)R})=M_tZ&3fqU%g{9nwU%?)X6RGX_PRotCXsa$88dNU(q*EuxjzYPXWbY6v0@T ztGVM53@gixjO8M7n>)Zac;hF*J>QerD`^~=BN_{!;Z-;40$3l4Tdu=$bD;2bAT*_c zZ}#ZRN`1MD&e{Rs2;nhma($~Ckcbi-XU6F&HG6`^Z5SU=JD0#?IcoAPte}CvBEyqgJ%2j z1e#Qjc_K_-{Fi{hsP7S% z_43h)xY@Yqu(587?z|0mF@O zgJsGoODn6M8v85jlH(E=Pv<=c#~pH6+ri;rkvaj@l#m;*dqqYTh~8qrFqX{Q6iVf&OgI-ijMR}U* zr`cYIxl@FT!0Gl>>*VF0$J2su_r8CZz1_Lvp!Wc0D+U;4k>`%n(0Nk$A}Z{RVJa@P z)}PEoHC>&g$EEkQ(Px-dIJkf4>d@DSwfHyPYz3c$32JC~W8K>uqovK_Mw|@MAFEAh zk@Wa?f2Te>6H!_9p1`tLJti^OX~gRu&o*j@U;FnoMmz**fr}uEv_9>|4bpXwQ)$=1Pg0F(FDBG?}+7;}q{*WUG zsKivNr@D4$K5dt}XF?pmKdX$$sY0AYG5QA9je0m}rd?QZ(s#6ejIKFqRPD_X)Z3ly z9y*}D!k|yp^D*)td*=d3iVzn+ITL=C0J#uj1=Q(e?Pd;1H$yn@<^J+wWq+Fc@Wri1 z)1Q4>Sx%}l-OI}`nww@cr%bVOiBmeo9w@(lN9KR>S_5*?|J1G_oBlUGq4N69up%$^ za&pOVIq_b)_BG?oH>@Y{)Lg>dkc}v$sW)@SCopN|W;FQYNfpt^vi$Yd8gL}~r%=p( z4BgaT<#aEtSjDff@4JaT;w4!}aR10rHuo;wrM&j_rV2md-^sLJ_XOq0M3%)(QNC2U zS}mWe&i5>yUqGHMoZ146ISU7LdW5?p8`An0zk2zWiE0DkG z?i!h)>3e)KO{v)H<$S$N;yfIiaE2>ekGTsRQoXqqSw+0w6~#(iRehU-26z;YiN*vm z`QyE)xA49?+2C?YO|-+I24-A(;SqCvp7G}+{d?|igZtul{KW&L0wa^ zC^n1y=5)pDX9qKL%<6}!BmVvGC<6%#ZlrBa^DYE(SkEKC2dj`=liw!t4xKSzmj9b7 zWRF7w_#sxRF(21pDcM~b@}hoa8V1ugHa|vK---V2?CkoY zuMAO#B$0`VX-v;FZje5I6c0S0XTy?Y+7syvN>N0?8I&qyO^HM;OtT|zT^L#_Pk!Vn zEu6tH$JlpJtoux%l;p?H*>RhDUup|N_2h3cyL@WB=jUH`j9*kDH5D}DU!bS)1X#P> zBqE$Zi?uegDEqVt11T*nEr37+u9=B`6A%p;gx8c8s}WMUn* zkyU>hY+vOpfAt(2+18b_!_*Pmw^AGn&iZ#Qu`GvX19)yMcT!dU?mH8UO^Vzdh936> zCYg`h8TQ`0v#G8CR#Ppp3cSl5UfDdN)^(exG6Q2ItM1Tsf?#khQuEXNDc^uMKMqsx z*L=xK6#9bq&5fB%rqn|-T0eu-%>5Gj-^%*xsHmd8-Jww$X^ySqJXplB9hWl1Jcsn3`lnjH82eK@V?)-?ppW$F>BA+v(G-ivwJ_k=h;)+_YUqa zz7>-2*@0ft&ny4P7ipI>0xqY1RLOedp7Zhf)$RPU^O)1(+*ZjYqrvxE?kGFi3;V-XH0{ry>3Z{_yr#)eJ61sYfR zo~ECBsU|wOtPJt@0}tX~H%E(WEz{CA|3FxnS7)!22QUKs`4g<_#-Qyvg!lFjn(X}u z(Jm%!QC9yDr)AtZiYRx?hvnDBfItS;;>w$#`Z~l{!<+6tDA~8uxvYaFko4s>X+3P- zM;7jt{Y*MOQkGe9MYOoS#NgFrYgYqTeVlf0TeIbz53^4AJ;WD#gU!*Weur-1YSr|) zzPB)+(sMv4F80~LvFpF%htHZS*N9ad)t^iVPf#2@6M|itTechpEzm(S>b(Pw|7sK-tU3krBQs-n6WnI z@l%yWHT=U@E2|X%T*zPA1S49_?EtXrK6 z12#V^b~Tr@zz}XWrJD>+Ax`{) zG-NKLz6Y#u z>=q*LxCG5_1CUOTAhN;BVC4{Qs;m3QtZrcwz;t}0rIYZq&p3_DB_?D}(*M^;gKOHHsDOx?U>n zRu1FXN}1`TGyM9w>+j%2qXK&uR8BTSlMP^56_W#3r{cf!5_SKb`hW2}Xa-S6KC2GG z(Xp}Kpo`a}P?`Q8jR#=Iz|kDT#!d#25&r(J#Z^&$gyc8~X#YZGb!Ms={|918Krj*f z`1!R>Ha>y+-AjXKVek)q4fFXwSsN%WG$nS9+@8V;UpCefmXLfNh!i>MA!`A=)Edts z=?GMjS0`N(XDL+3%Z#TZ;W78(yvCujAyYd_WAn;kZ?=>YLuq?&0#1^0ea31%tr8J;sKDKczwI*hp${T7JSDi{+{Lxdi~toFus)zV~>7= zpBp5|NB@|UgK$h(jotvVv^A4FMXWo5se6OsymLVmF|GI3gCzdU9Co8^)lPigTy z>5{o-f@=NI(b3J1*~*Uo66q$v`wHr69!K6yEvBDedcDz?M^y^Ha>Q*c5G}?Y^NP#r zljgPqj{bScN{8zBe2w)-+NBw`N}(~B4w=?adP zfhu)DK5qldbo$*AG^P2F5IX;w__pP!+&i-4`)87;s;1^}Hd|^^hu{3=B_1`5HGiNMetFvd zx>*%qbyqZy=^ZaNGXBxWMzY)5bVI-dmx_)_(v3&ejV^t!N)IOJ696uZugCxE zuJ+oo0(K;?`vr$OPA+Y(p1p{e?JLzYAhLjp#jBKa?7f#CE=U_AaM+cZPKZ$ErKhJK z_{LRrO+x45o^BsxSpb2TlaMdD5!gH&7n40Yti!W%kfKGuiCOO}yj}R-?}oY_CUXM$ zp5B0zs#$F;1#%;XqGhA>4e%=Cd9iTI#lILJ&HNx7Ap&`e^4B043XgHDy=eRz?Js}O zUSwZ}@4qjp5MiEhc&b@^dfLZJ?9Y3j7k*_c_B@5_jwFHgWoh!4T9I-isp}WZp6Ad1 z2X{Q6i%pZYaBkdS7PrEnY0Cct>~!pTTCK%P?%UtH6}s3rw*3#@1^i#YE0Iko(L7&6 zi8hX~C`fGp$!9>EI;d6}Z)%rkhg04<&X<0$~ggaWvt?5sAA3$|_tPOf{ zI!L-YeL#t;8a1zJ{V+gb2)b?W;>p2T!_@i))$5;uO#fGaqkqGm$cBYva?R6}cazml z*L{;^#)GJ-LE^dc%|KkC(D(wPId0%TFw(P{v;X7)DoYIcaWcU>aBy)YCtWmlC!bOo zrk`Rn%EAIW+^qH*f%EPd);!dO9AsR$a%uj{+0JYfyt?`mC`YEL`vp1x+FL_#GSIv- z_>Xz6;uxE`>i01sx2ly7wGqON)|fhc$;mbE9Z>%0+}Orz4hOn#>LXn}l@4ZWh_1E; zGF&9znYu28#!~S#E=ghvK~N~|xt26-Fc5ShZ!9_S5ni&(vQg;s@P3{TrVjqj-}IWA znmSX$6&r4Lr~(mUC0EGZ>8hCJNwtlYAR%O}KbaTA!6w%=jpDkZSGLhC_6PNTzALgy zs)$2u&;?Ef+*LARt9R_nFCb3%@>usJi_-IH^T&}ou|@=S_|!sp(%sD=VRyVegme6{ zV{`KgHcCg*5t1@cEyr{>@~+wXD?Op!_Vb0_Fn9pdefD8@2L|1#-y4IHNewoO&>ThO zVY`22MCEVVWK-VP{n}T$w{+y6f$~D|&2&j|P*6X81or(FZZ;FlWA=ZuJ$%zSz+b|V zQJIIc2nLXq8dlkS^>LKY5Ufv10MzAi{A7m*^yM7OqU})sY~ymN@7|k({0K0_Cow;q1VfmX|_V1+Z|qsriSnN6y(#*Fn<+B26!zHM&v7M z>EfQC&RmX*U%p9d-t@C+3Jo5rb4v!yjul!f(X!|ew4QPlDDj_zhSQ5a8b>_wIN=B@ z*cK5e4p|naf@EV|qKZ4)|T?eNm}u#aI`I`2auaxXNT6Ho=(lwr#)f!qJdE;{dI0 z9kB7C=6_;9NH-x`*C~6K)TOxG}UK}ym7kN!*e~UY|?hQJxA1q9DTBJ6$uHUhH z)PbM`Yc=M6MvLXb&#yLX9S8paZ9Sct-D}4uPiB4{$?>E4ywNVPq$s_=z=RN!%PKW+A(g91Fg8#ZQ@ksjJcsim7Fpc+~Iu# zWpPk&JA0FVsi&*!8@SBIT))91v_u97b#0D#MX$eQPx9>B{jh#_WEz-`Bo8$i%;@?< zcEgY|wJjPb!Bg7%`m|Aq48ev0yMUQRI1fj*8q@ zHwY@G(1W*}Pd0y{xBnsedKz^cb60pl`*F^(G*VJh;!gv!H~_zhm-NaBJ8}7&_hwmk zkpSX)z0QV@MZRp#tf5nH?e2?3uEb3Ka=L2)o3VlK!qhZjO^_HTdxP~Z_GI&kK(_xe zzy5*mf;0s6rJGsFd@(q83Id^)6#Z7Ydq>JZ;@+I&;#B642NSM*FpD}~LMCrR7uKog zSZE4OuIiyP7JwbR%?+ongI|gKtV2&eMN|<+E5i7a`VSs|`CZ2NgKcx}_67Pifa6|pBruv>IX{;UZ(Oaj(EWKH zDA&tOlvcaAxmYHg(-9wxmsoBB{~g7}kpQ!FM-7Y53%s`P;8CZ7=-_UD9D)!NRS@&6 z5^-KeHU$3eRB^o?F%1@HO1s$=oUZUAQlzkVal$*Oc!pcCbaW&4!j(BY$m5Rhdp4cu zlz%FNfE}IkUn(p)+@a_1b2y_cUv?QhINiN_{>mgcc6|oB`g)*oBEHX)S-P zSvry)Odq+n;i8rq$+LVhS8HcH9J8&peWym*|r1aCV?y5;UW z49;4W@P@3m45MV-PR`3l(KQu8umo&3pyGja567~%7Wr7_0tgW2GP07orys9MvuWt6 zkjZ*_9)pD!!)$gZbh&_d6AjCj#5k=~OSi9gh|cmeY#m|3hF?bl5ML7I_4LRZX}@-^fukhl4iP|+fbb!$3{PC5*{RFmI`0XI04pZZ~lPNG5fv*Z`(S^ zmP5#6dRbNs-@(5KC8S2uWL836<$FYnNE`?AJ(*Slk_U&!%^q2JoCAr za;IrBWeB9KexE`Up=O=>Pw-f1EqOZM7(z`&m0Q|OViAPoo=q>ee7j}YVM32a0dVt;|K63q@Zl2mL1k_92)({-aN^czuIP zi@{R;#m1ZIUtTU-5s-l!~fuZP_ZhlP3)hRlTbdjqwyMQ`$eWLQx=y(DSCL6OqN zdku)(pCuZN1-;n5RG!y6=|;b7=LBNuB?p@Uu~jsH4o&j4+j!xFS*L#bx^4~&VpvQ) zWMI&Mys5a6F5eMmLm&gc9><~4A-4y+d5SUl?(`k`UPMOfn42#?h1Q8S;;Cv85n7tk z>Q}Eb&ftCjepv5&WWpDDra<+wJW?_=?y9%r;$aBRz`gaXBO5YCAm%IPJ)wnoy* zYlmSN8Vb6LT<3Ks)1bk-x!Vy{QyYl%D}E?aTA?OfB5dHROrPs0M$-3xx4xkKcQ#EbLFP&3Ys~CcEBF?8(#XL934Y_Kc z;|=$>L;kX-P?zpqw9h z-AD32pqBQQjJz}p}pXq#Pge}~6xs#d{Qb`XV&8pkUlKu0J5LUf*+WUxF@v?m=G=0QF-!$Wa>@@@So$V&3kQzBjNLEB`u3+VIQflsq0GX7qkd~{GDibP z^}kRqYl--0xF z{oit;CzPmfoS|47%m?j!T$wL8j8meGTRwg{pWlI9W0!Hb<#*^8wR0%naLr7Q3kU`ywYX>*=>t>N&FdMA{Dqw6wa1*QWS3UXmV2H8TVQ zL@(XiEF7>?^DuMg`9(gKS_=T1gZ=p@Y$LMiB;nrea|VcO=1P*#r+02SLS8?Ou*h9d z!5(Io{>ZppY`vY;ug$8eecpAD_w20PL?ksiAyvkS5`2sfI0at;MiQ2v1J5ClJEynD z4bola>kS=NHZKlw4n)Tsf*f~274{0AQJnA!}$Z}2HVhAAx^^kPfsY$J}l*RtO zl{hI^A2u6{LO8%eXlZ;C&`5y_k&2+E^WWlf?Iwmuk70YdBf8UkyQwH3AXsc!H>dMU z{Z*J|5uWXcUf(KP&*2Qi`0Dwmp}RyO1sotpm=)862svJy!}(sc)0yn{dU-{f(t{moC8d7}=|b889$U!dL|GkcDbobQf{^UZm8bG25d(S1H5W@YPd-Hiv80TI(&1~ zs0eU_-4lhDGk-?SNA7#mp_0~6NEdLBgwOI~L5~=6f#xMR92==yfm_^2V+zny5jNPP zY1v@wieXpD7hYOKAStqoe|D@>>#`o38Wb2|x)5CaLKfde5Sv5gt4S)%uLqkBLw&c$ zAD39bTZ~A9Nh3{t=f!xh6JRS$2aDN4K=`|x`Kr&#i=%?9MTM#aR0wJ*!5s6-yWkQZxI4EzP3;FYz`kJ_==d-hh{28maQ(?`p#2w1;k zH;18wA&_g=MY656n1Qn9X);%OFa=w(bHIua)6>Y@ZsCK1diW_NlM4x z%RlkbGXF|EDE{_MA#?9&wuh}}tD=2*7@+l$*i|%g8c?I zE+Sv?B%bIcoku_lfbl6zqRU}C3Y?^joB+oG@B|l?Oku3x@qbmDC_m$>YD$ObBe97? zVeckXz)HIrie^foI8%SSo;irN)q^Rs%!}XOl3Sl@Ex~e|VQ_Q%g@6?rl>coI2+VDD zFw#ssow2uy(~=8p!qn849NpQUs<|R#>#Sk1Rf!=%DZOV+kgf26svGvVM^WZLKV6{j z_#UkI2esxAaWdR?^s!_zx+%QxBEWF234c=s9f=o5Vy3gk&KSZ8Lr`b)ot0f0C(i38 z@;SG+&H8${%rFbm!W7{At0g%1%4NFV)g{NND9-x>Tt0ybrLp}ksh5}96-Q8caR<(? zVY`7OB~au@*v(`TYiMAJ!d9d(Zt-SM;Vo;;EO@H(dkL?k^i?c7#YF_`2C@kfZ@qxx zYHxM$fe^EMC2i65m#92&Tm4k7mHz>nS72kyA}(z<#;@#+r318_1-91n@YSGbd0{b! z-!)DrM*^|(3N^b=k*D@bl#pEC<01F1)`|URy{bd4pNci>i{DbNyU9*i|5lXlM0}II z>BP;Hz9J)L6p>oZNwV~YDOjApS@r#Rst$PgSMbD=O+!+Lll~Yrs9LM|nA+-vaky1Ml{0;0TtA z>G@!@>w90*@13-lFO}6XcXz+8g`i42_m%oSY%QqEX5?m5LkP+EbK$ND=X$Ce_8el5Qat>eCGY*S{L?) zPQTQg3?CrIZ5cZ-&O^S82w{neidk7&%Gz%mN$Tflwy2guO^jF}VbZI$ECJ7Bcd7xFk6O?4DrzFK#QA%M9REoF{>xPA_(y87$4LiV zjk*Ndr;pki;L6L{*%cOdDj*K*1(ATDprFSM)r}HY0u-g_5nyX;o3KhShv*4ZXeje( zi>Muz#1}U=l$yEnF>d^jp*3~NV=B!t5b|10Ep#siS;mMVG1mP!JTs49pOT^4vqexr zb3Wv3k*V_cbic5M(;`5Iyq>7P%1gyOSct9}rA+_Qzb;@t0lhJ0F?ni?`3JnGR=%c` z!Jqm_Dzh)RiT?Vw`tEr{3cWiCD~ei9C4t#sR;%W|q<6Si(+mpqId`=3*`CCm1yar( zt6bxUmcE@6Hb*vzErSn|G87gwf&}nwoJlQq=#ln_;_XYPCML9$1#WDrU(EkI4 CF#C->FyaA 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