From 69ea3c81ad86a0356af947f11fe3bd2ca953b0af Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sat, 21 Oct 2023 20:25:33 +0200 Subject: [PATCH] [MIRROR] Mafia can be played on your PDA [MDB IGNORE] (#24485) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Mafia can be played on your PDA (#78576) ## About The Pull Request Mafia is now friggin playable from the PDA, I also changed other stuff too - You can't use abilities on dead people if you're not supposed to (cant kill the same person over and over) - Changelings cant kill other Changelings - Changelings can now only talk to eachother at night, rather than using :j - Everyone starts spawned in the center of the map, since people playing on PDA can't move their characters. This is so everyone can hear PDA users in person, as I don't want the chat log to be mandatory. To do this, all messages you are meant to be able to see, is now logged for you to see in your Mafia panel. This essentially means that people playing through the PDA get a downgraded version of it, but I don't know how much larger I want this UI to be. Playing Mafia through the PDA will not tell you of other players ahead of time when signing up (as it shows ckeys + pdas), but they can see the names in-game. Unfortunately this means we'll have to remove your customization coming with you, to prevent using it to tell who is dead in round. Things I am missing - Program overlays on PDA/Laptop/Computer - Icon for the app's header while a game is active I'm not a spriter and can't make either of these This is the new UI ![image](https://github.com/tgstation/tgstation/assets/53777086/7cf503d9-b2e2-4127-874a-acad6425d649) I also fixed alert calls for PDAs and stuff ![image](https://github.com/tgstation/tgstation/assets/53777086/e09b2e5e-b9e7-43ae-9273-c168e9c8e642) and removed the X at the top on computers since they had no battery ![image](https://github.com/tgstation/tgstation/assets/53777086/d3dd8307-805c-4aba-be5e-4c24a0bdcb91) Looks a little better now hopefully 👍 ## Why It's Good For The Game - The current Arcade app sucks, and is a solo game. This is much more entertaining and you can talk to others in it, which is swag as fuck. - There's a larger potential playerbase for the Minigame making it more likely to be played. - Sets groundwork for a better version of https://github.com/tgstation/tgstation/pull/75879 - Adds more suspense and teamwork in the minigame. ## Changelog :cl: JohnFulpWillard, sprites by CoiledLamb add: You can now play Mafia on your PDA. balance: Mafia changelings can now only talk to eachother during the night. fix: Mafia abilities can't be repeatedly used on people. /:cl: * Mafia can be played on your PDA --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> --- _maps/map_files/Mafia/mafia_ayylmao.dmm | 34 +-- _maps/map_files/Mafia/mafia_ball.dmm | 56 ++--- _maps/map_files/Mafia/mafia_gothic.dmm | 52 ++--- _maps/map_files/Mafia/mafia_lavaland.dmm | 68 ++---- _maps/map_files/Mafia/mafia_snow.dmm | 74 +++--- _maps/map_files/Mafia/mafia_spiderclan.dmm | 56 ++--- _maps/map_files/Mafia/mafia_syndie.dmm | 41 ++-- code/datums/saymode.dm | 14 -- code/game/area/areas/centcom.dm | 12 + code/modules/antagonists/obsessed/obsessed.dm | 1 + .../antagonists/traitor/datum_traitor.dm | 1 + code/modules/asset_cache/assets/headers.dm | 1 + code/modules/mafia/_defines.dm | 4 + code/modules/mafia/abilities/abilities.dm | 26 ++- .../abilities/investigative/investigate.dm | 2 +- .../mafia/abilities/investigative/pray.dm | 2 +- .../mafia/abilities/investigative/reveal.dm | 2 +- .../abilities/investigative/thoughtfeed.dm | 4 +- code/modules/mafia/abilities/killing/alert.dm | 4 +- .../abilities/killing/flicker_rampage.dm | 6 +- code/modules/mafia/abilities/killing/kill.dm | 8 +- .../mafia/abilities/protective/heal.dm | 10 +- .../mafia/abilities/protective/vest.dm | 2 +- .../mafia/abilities/voting/changeling_kill.dm | 22 +- code/modules/mafia/controller.dm | 198 +++++++++++----- code/modules/mafia/map_pieces.dm | 11 - .../mafia/roles/changelings/changeling.dm | 2 +- code/modules/mafia/roles/roles.dm | 49 ++++ .../computers/item/computer.dm | 7 +- .../modular_computers/file_system/program.dm | 2 +- .../file_system/programs/antagonist/dos.dm | 6 +- .../file_system/programs/frontier.dm | 5 +- .../file_system/programs/mafia_ntos.dm | 72 ++++++ .../file_system/programs/ntdownloader.dm | 28 +-- .../file_system/programs/techweb.dm | 2 +- icons/obj/machines/modular_console.dmi | Bin 91003 -> 91830 bytes icons/obj/modular_laptop.dmi | Bin 32233 -> 31920 bytes icons/obj/modular_pda.dmi | Bin 18310 -> 18549 bytes icons/program_icons/mafia.gif | Bin 0 -> 193 bytes tgstation.dme | 1 + tgui/packages/tgui/interfaces/MafiaPanel.tsx | 220 ++++++++++++------ .../tgui/interfaces/NtosMafiaPanel.tsx | 12 + tgui/packages/tgui/layouts/NtosWindow.js | 3 +- 43 files changed, 711 insertions(+), 409 deletions(-) create mode 100644 code/modules/modular_computers/file_system/programs/mafia_ntos.dm create mode 100644 icons/program_icons/mafia.gif create mode 100644 tgui/packages/tgui/interfaces/NtosMafiaPanel.tsx diff --git a/_maps/map_files/Mafia/mafia_ayylmao.dmm b/_maps/map_files/Mafia/mafia_ayylmao.dmm index 0f0a9c0e433..b9d8582f3b0 100644 --- a/_maps/map_files/Mafia/mafia_ayylmao.dmm +++ b/_maps/map_files/Mafia/mafia_ayylmao.dmm @@ -5,6 +5,10 @@ "b" = ( /turf/closed/indestructible/alien, /area/centcom/mafia) +"d" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/plating/abductor, +/area/centcom/mafia) "g" = ( /obj/mafia_game_board, /obj/effect/mapping_helpers/broken_floor, @@ -32,12 +36,10 @@ /turf/open/floor/plating/abductor, /area/centcom/mafia) "m" = ( -/obj/effect/landmark/mafia, /obj/structure/bed/abductor, /turf/open/floor/plating/abductor, /area/centcom/mafia) "n" = ( -/obj/effect/landmark/mafia, /obj/structure/bed/abductor, /turf/open/floor/plating/abductor2, /area/centcom/mafia) @@ -146,6 +148,10 @@ icon_state = "alien21" }, /area/centcom/mafia) +"O" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/plating/abductor2, +/area/centcom/mafia) "P" = ( /turf/closed/indestructible/abductor, /area/centcom/mafia) @@ -394,13 +400,13 @@ W G x r -r +O x -q +d x -r +O x -q +d q x E @@ -444,13 +450,13 @@ j m q q -q +d x t t t x -r +O r r n @@ -494,13 +500,13 @@ j n r r -r +O x t t t x -q +d q q m @@ -544,13 +550,13 @@ I J x q -q +d x -r +O x -q +d x -r +O r x Y diff --git a/_maps/map_files/Mafia/mafia_ball.dmm b/_maps/map_files/Mafia/mafia_ball.dmm index 2991fb8d78f..fb4dc490d36 100644 --- a/_maps/map_files/Mafia/mafia_ball.dmm +++ b/_maps/map_files/Mafia/mafia_ball.dmm @@ -252,11 +252,11 @@ b o r p -m +q q p r -n +r p q l @@ -274,7 +274,7 @@ c d d b -n +r r b b @@ -284,7 +284,7 @@ r b b q -m +q b d d @@ -301,13 +301,13 @@ b b p r -r +n p -q +m p -r +n p -q +m q p b @@ -348,19 +348,19 @@ b c d j +q +q +q m -q -q -q p s t s p -r -r -r n +r +r +r j i c @@ -398,19 +398,19 @@ b c d j +r +r +r n -r -r -r p s t s p -q -q -q m +q +q +q j d c @@ -451,13 +451,13 @@ b b p q -q +m p -r +n p -q +m p -r +n r p b @@ -474,7 +474,7 @@ c f d b -m +q q b b @@ -484,7 +484,7 @@ q b b r -n +r b d d @@ -502,11 +502,11 @@ b l q p -n +r r p q -m +q p r o diff --git a/_maps/map_files/Mafia/mafia_gothic.dmm b/_maps/map_files/Mafia/mafia_gothic.dmm index 4dd3c89f22a..817e145d111 100644 --- a/_maps/map_files/Mafia/mafia_gothic.dmm +++ b/_maps/map_files/Mafia/mafia_gothic.dmm @@ -297,11 +297,11 @@ b J r p -m +q q p E -N +O p q l @@ -319,7 +319,7 @@ c d d b -D +E O b b @@ -329,7 +329,7 @@ r b b q -m +q b d d @@ -346,13 +346,13 @@ b b p X -r +M p -q +m p -O +N p -q +m q p b @@ -393,19 +393,19 @@ b c d j +q +q +q m -q -q -q p t t t p -X +n r E -N +O j i c @@ -443,19 +443,19 @@ b c d j -n +X r E -O +N p t t t p -q -q -q m +q +q +q j d c @@ -496,13 +496,13 @@ b b p q -q +m p -X +n p -q +m p -E +D O p b @@ -519,7 +519,7 @@ c f d b -m +q q b b @@ -529,7 +529,7 @@ q b b X -M +r b d d @@ -547,11 +547,11 @@ b l q p -n +X r p q -m +q p E P diff --git a/_maps/map_files/Mafia/mafia_lavaland.dmm b/_maps/map_files/Mafia/mafia_lavaland.dmm index a3729fe8a6e..96ddef90b5c 100644 --- a/_maps/map_files/Mafia/mafia_lavaland.dmm +++ b/_maps/map_files/Mafia/mafia_lavaland.dmm @@ -60,7 +60,6 @@ /turf/open/floor/fakebasalt, /area/centcom/mafia) "an" = ( -/obj/effect/landmark/mafia, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 9 }, @@ -126,6 +125,7 @@ /obj/effect/turf_decal/trimline/brown/filled/end{ dir = 4 }, +/obj/effect/landmark/mafia, /turf/open/floor/iron, /area/centcom/mafia) "az" = ( @@ -137,17 +137,11 @@ /obj/structure/closet/secure_closet/miner/unlocked, /turf/open/floor/iron, /area/centcom/mafia) -"aA" = ( -/obj/effect/landmark/mafia, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/turf/open/floor/iron, -/area/centcom/mafia) "aB" = ( /obj/effect/turf_decal/trimline/brown/filled/end{ dir = 1 }, +/obj/effect/landmark/mafia, /turf/open/floor/iron, /area/centcom/mafia) "aC" = ( @@ -183,13 +177,6 @@ }, /turf/open/floor/iron, /area/centcom/mafia) -"aG" = ( -/obj/effect/landmark/mafia, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/turf/open/floor/iron, -/area/centcom/mafia) "aH" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 10 @@ -209,7 +196,6 @@ /turf/open/floor/iron, /area/centcom/mafia) "aJ" = ( -/obj/effect/landmark/mafia, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 6 }, @@ -227,13 +213,6 @@ /obj/structure/closet/secure_closet/miner/unlocked, /turf/open/floor/iron, /area/centcom/mafia) -"aL" = ( -/obj/effect/landmark/mafia, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 5 - }, -/turf/open/floor/iron, -/area/centcom/mafia) "aM" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 10 @@ -258,13 +237,7 @@ /area/centcom/mafia) "aP" = ( /obj/effect/turf_decal/trimline/brown/filled/end, -/turf/open/floor/iron, -/area/centcom/mafia) -"aQ" = ( /obj/effect/landmark/mafia, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, /turf/open/floor/iron, /area/centcom/mafia) "aR" = ( @@ -277,6 +250,7 @@ /obj/effect/turf_decal/trimline/brown/filled/end{ dir = 8 }, +/obj/effect/landmark/mafia, /turf/open/floor/iron, /area/centcom/mafia) "aT" = ( @@ -473,11 +447,11 @@ aY ar aM ap -am +aq aq ap aw -aA +aV ap aq al @@ -495,7 +469,7 @@ ac ad ad aY -aL +aF aN aY aY @@ -505,7 +479,7 @@ ax aY aY aq -am +aq aY ad ad @@ -524,11 +498,11 @@ ap aO aP ap -aq +am ap ay ap -aq +am aq ap aY @@ -569,10 +543,10 @@ aY ac ad aj +aq +aq +aq am -aq -aq -aq ap aq aZ @@ -628,10 +602,10 @@ aq ab aq ap -aq -aq -aq am +aq +aq +aq aj ad ac @@ -672,11 +646,11 @@ aY aY ap aq -aq +am ap aS ap -aq +am ap aB aD @@ -695,7 +669,7 @@ ac af ad aY -am +aq aq aY aY @@ -705,7 +679,7 @@ aq aY aY aE -aG +aM aY ad ad @@ -723,11 +697,11 @@ aY al aq ap -aQ +as aU ap aq -am +aq ap aF aI diff --git a/_maps/map_files/Mafia/mafia_snow.dmm b/_maps/map_files/Mafia/mafia_snow.dmm index 0a4001a6b0f..b8fbc0650b4 100644 --- a/_maps/map_files/Mafia/mafia_snow.dmm +++ b/_maps/map_files/Mafia/mafia_snow.dmm @@ -8,6 +8,10 @@ "d" = ( /turf/open/floor/plating, /area/centcom/mafia) +"e" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/iron/dark, +/area/centcom/mafia) "f" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, @@ -46,10 +50,6 @@ }, /turf/open/floor/holofloor/wood, /area/centcom/mafia) -"m" = ( -/obj/effect/landmark/mafia, -/turf/open/floor/holofloor/wood, -/area/centcom/mafia) "n" = ( /obj/item/bedsheet/green, /obj/structure/bed, @@ -133,11 +133,6 @@ }, /turf/open/floor/iron, /area/centcom/mafia) -"B" = ( -/obj/effect/landmark/mafia, -/obj/structure/lattice/catwalk, -/turf/open/lava/plasma/mafia, -/area/centcom/mafia) "C" = ( /obj/mafia_game_board, /turf/open/floor/holofloor/snow, @@ -181,6 +176,15 @@ "K" = ( /turf/closed/indestructible/rock/snow, /area/centcom/mafia) +"R" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/iron, +/area/centcom/mafia) +"W" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/mafia, +/turf/open/lava/plasma/mafia, +/area/centcom/mafia) (1,1,1) = {" a @@ -342,11 +346,11 @@ s o F p -m +F q p t -y +t p z E @@ -364,7 +368,7 @@ s d d s -m +F r s s @@ -374,7 +378,7 @@ t p p z -B +z p w w @@ -391,13 +395,13 @@ s s p r -r +R p -q +e p -t +y p -z +W z p p @@ -438,19 +442,19 @@ b s d j -m +F F q -q +e x J t t p -t -t -t y +t +t +t p w t @@ -488,19 +492,19 @@ b s d j -m +F F r -r +R A J t t p -t -t -t y +t +t +t p w w @@ -541,13 +545,13 @@ s s p q -q +e p -r +R p -t +y p -z +W z p p @@ -564,7 +568,7 @@ s f d s -m +F q s s @@ -574,7 +578,7 @@ t p p z -B +z p w w @@ -592,11 +596,11 @@ s G F p -m +F r p t -y +t p z E diff --git a/_maps/map_files/Mafia/mafia_spiderclan.dmm b/_maps/map_files/Mafia/mafia_spiderclan.dmm index 090f2d27efb..ff83f8de3ec 100644 --- a/_maps/map_files/Mafia/mafia_spiderclan.dmm +++ b/_maps/map_files/Mafia/mafia_spiderclan.dmm @@ -258,11 +258,11 @@ S b r p -m +q q p r -n +r p q o @@ -280,7 +280,7 @@ c d d S -n +r r S S @@ -290,7 +290,7 @@ r S S q -m +q S d d @@ -307,13 +307,13 @@ S S p r -r +n p -q +m p -r +n p -q +m q p S @@ -354,19 +354,19 @@ S c d j +q +q +q m -q -q -q p t t t p -r -r -r n +r +r +r j i c @@ -404,19 +404,19 @@ S c d j +r +r +r n -r -r -r p t t t p -q -q -q m +q +q +q j d c @@ -457,13 +457,13 @@ S S p q -q +m p -r +n p -q +m p -r +n r p S @@ -480,7 +480,7 @@ c f d S -m +q q S S @@ -490,7 +490,7 @@ q S S r -n +r S d d @@ -508,11 +508,11 @@ S o q p -n +r r p q -m +q p r b diff --git a/_maps/map_files/Mafia/mafia_syndie.dmm b/_maps/map_files/Mafia/mafia_syndie.dmm index e8e49e65c10..12287245828 100644 --- a/_maps/map_files/Mafia/mafia_syndie.dmm +++ b/_maps/map_files/Mafia/mafia_syndie.dmm @@ -45,10 +45,6 @@ /obj/mafia_game_board, /turf/open/floor/plating, /area/centcom/mafia) -"n" = ( -/obj/effect/landmark/mafia, -/turf/open/floor/mineral/plastitanium, -/area/centcom/mafia) "o" = ( /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron/dark, @@ -68,6 +64,7 @@ name = "tactical swivel chair" }, /obj/effect/turf_decal/tile/red/fourcorners, +/obj/effect/landmark/mafia, /turf/open/floor/iron/dark, /area/centcom/mafia) "r" = ( @@ -93,12 +90,14 @@ name = "tactical swivel chair" }, /obj/effect/turf_decal/tile/red/fourcorners, +/obj/effect/landmark/mafia, /turf/open/floor/iron/dark, /area/centcom/mafia) "y" = ( /obj/structure/chair/office{ name = "tactical swivel chair" }, +/obj/effect/landmark/mafia, /turf/open/floor/mineral/plastitanium, /area/centcom/mafia) "z" = ( @@ -106,6 +105,7 @@ name = "tactical swivel chair" }, /obj/effect/turf_decal/tile/red/fourcorners, +/obj/effect/landmark/mafia, /turf/open/floor/iron/dark, /area/centcom/mafia) "A" = ( @@ -113,6 +113,7 @@ dir = 8; name = "tactical swivel chair" }, +/obj/effect/landmark/mafia, /turf/open/floor/mineral/plastitanium, /area/centcom/mafia) "B" = ( @@ -120,6 +121,7 @@ dir = 4; name = "tactical swivel chair" }, +/obj/effect/landmark/mafia, /turf/open/floor/mineral/plastitanium, /area/centcom/mafia) "C" = ( @@ -128,6 +130,7 @@ name = "tactical swivel chair" }, /obj/effect/turf_decal/tile/red/fourcorners, +/obj/effect/landmark/mafia, /turf/open/floor/iron/dark, /area/centcom/mafia) "E" = ( @@ -135,6 +138,7 @@ dir = 1; name = "tactical swivel chair" }, +/obj/effect/landmark/mafia, /turf/open/floor/mineral/plastitanium, /area/centcom/mafia) "G" = ( @@ -146,11 +150,6 @@ /obj/effect/spawner/random/clothing/syndie, /turf/open/floor/iron/dark, /area/centcom/mafia) -"H" = ( -/obj/effect/landmark/mafia, -/obj/effect/turf_decal/tile/red/fourcorners, -/turf/open/floor/iron/dark, -/area/centcom/mafia) "Q" = ( /turf/open/floor/circuit/red, /area/centcom/mafia) @@ -318,11 +317,11 @@ w G o p -n +r r p o -H +o p r b @@ -340,7 +339,7 @@ c d d w -H +o o w w @@ -350,7 +349,7 @@ o w w r -n +r w d d @@ -414,7 +413,7 @@ w c d j -n +r r r y @@ -426,7 +425,7 @@ p q o o -H +o j i c @@ -464,7 +463,7 @@ w c d j -H +o o o z @@ -476,7 +475,7 @@ p E r r -n +r j d c @@ -540,7 +539,7 @@ c f d w -n +r r w w @@ -550,7 +549,7 @@ r w w o -H +o w d d @@ -568,11 +567,11 @@ w b r p -H +o o p r -n +r p o G diff --git a/code/datums/saymode.dm b/code/datums/saymode.dm index 78ec5e6af38..52e22aeaef8 100644 --- a/code/datums/saymode.dm +++ b/code/datums/saymode.dm @@ -96,17 +96,3 @@ AI.holopad_talk(message, language) return FALSE return TRUE - -/datum/saymode/mafia - key = "j" - mode = MODE_MAFIA - -/datum/saymode/mafia/handle_message(mob/living/user, message, datum/language/language) - var/datum/mafia_controller/MF = GLOB.mafia_game - if (!MF) - return TRUE - var/datum/mafia_role/R = MF.player_role_lookup[user] - if(!R || R.team != "mafia") - return TRUE - MF.send_message(span_changeling("[R.body.real_name]: [message]"), "mafia") - return FALSE diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index 1c40347e481..f5ac4fac78e 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -213,6 +213,18 @@ name = "Syndicate Elite Squad" icon_state = "syndie-elite" +//MAFIA +/area/centcom/mafia + name = "Mafia Minigame" + icon_state = "mafia" + static_lighting = FALSE + + base_lighting_alpha = 255 + requires_power = FALSE + has_gravity = STANDARD_GRAVITY + flags_1 = NONE + area_flags = BLOCK_SUICIDE | UNIQUE_AREA + //CAPTURE THE FLAG /area/centcom/ctf name = "Capture the Flag" diff --git a/code/modules/antagonists/obsessed/obsessed.dm b/code/modules/antagonists/obsessed/obsessed.dm index 7c921fdd228..92b3140d47b 100644 --- a/code/modules/antagonists/obsessed/obsessed.dm +++ b/code/modules/antagonists/obsessed/obsessed.dm @@ -62,6 +62,7 @@ mask = /obj/item/clothing/mask/surgical neck = /obj/item/camera suit = /obj/item/clothing/suit/apron + shoes = /obj/item/clothing/shoes/sneakers/black /datum/outfit/obsessed/post_equip(mob/living/carbon/human/H) for(var/obj/item/carried_item in H.get_equipped_items(include_pockets = TRUE, include_accessories = TRUE)) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 70d230fa49d..31eedd09cce 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -382,6 +382,7 @@ mask = /obj/item/clothing/mask/gas l_hand = /obj/item/melee/energy/sword r_hand = /obj/item/gun/energy/recharge/ebow + shoes = /obj/item/clothing/shoes/magboots/advance /datum/outfit/traitor/post_equip(mob/living/carbon/human/H, visualsOnly) var/obj/item/melee/energy/sword/sword = locate() in H.held_items diff --git a/code/modules/asset_cache/assets/headers.dm b/code/modules/asset_cache/assets/headers.dm index e8f34dfd3f9..62c7fc532e6 100644 --- a/code/modules/asset_cache/assets/headers.dm +++ b/code/modules/asset_cache/assets/headers.dm @@ -27,4 +27,5 @@ "smmon_6.gif" = 'icons/program_icons/smmon_6.gif', "borg_mon.gif" = 'icons/program_icons/borg_mon.gif', "robotact.gif" = 'icons/program_icons/robotact.gif', + "mafia.gif" = 'icons/program_icons/mafia.gif', ) diff --git a/code/modules/mafia/_defines.dm b/code/modules/mafia/_defines.dm index 835aff9d63d..ef24645bb05 100644 --- a/code/modules/mafia/_defines.dm +++ b/code/modules/mafia/_defines.dm @@ -100,6 +100,8 @@ /// now clearing refs to prepare for the next day. Do not do any actions here, it's just for ref clearing. #define COMSIG_MAFIA_NIGHT_END "night_end" +/// signal sent to roles when the game is confirmed starting +#define COMSIG_MAFIA_GAME_START "game_start" /// signal sent to roles when the game is confirmed ending #define COMSIG_MAFIA_GAME_END "game_end" @@ -107,6 +109,8 @@ GLOBAL_LIST_EMPTY(mafia_signup) /// list of ghosts who want to play mafia that have since disconnected. They are kept in the lobby, but not counted for starting a game. GLOBAL_LIST_EMPTY(mafia_bad_signup) +/// list of PDAs who want to play mafia, every time someone enters the list it checks to see if enough are in +GLOBAL_LIST_EMPTY(pda_mafia_signup) /// the current global mafia game running. GLOBAL_VAR(mafia_game) /// list of ghosts in mafia_signup who have voted to start early diff --git a/code/modules/mafia/abilities/abilities.dm b/code/modules/mafia/abilities/abilities.dm index 59ee7570c32..3c8e643a427 100644 --- a/code/modules/mafia/abilities/abilities.dm +++ b/code/modules/mafia/abilities/abilities.dm @@ -29,6 +29,11 @@ target_role = null return ..() +///Handles special messagese sent by ability-specific stuff (such as changeling chat). +/datum/mafia_ability/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + return FALSE + /** * Called when refs need to be cleared, when the target is no longer set. */ @@ -52,21 +57,28 @@ if(game.phase != valid_use_period) return FALSE if(host_role.role_flags & ROLE_ROLEBLOCKED) - to_chat(host_role.body, span_warning("You were roleblocked!")) + host_role.send_message_to_player(span_warning("You were roleblocked!")) + return FALSE + if(host_role.game_status == MAFIA_DEAD) return FALSE if(potential_target) - if((use_flags & CAN_USE_ON_DEAD) && (potential_target.game_status != MAFIA_DEAD)) + if(use_flags & CAN_USE_ON_DEAD) + if(potential_target.game_status != MAFIA_DEAD) + if(!silent) + host_role.send_message_to_player(span_notice("This can only be used on dead players.")) + return FALSE + else if(potential_target.game_status == MAFIA_DEAD) if(!silent) - to_chat(host_role.body, span_notice("This can only be used on dead players.")) + host_role.send_message_to_player(span_notice("This can only be used on living players.")) return FALSE if(!(use_flags & CAN_USE_ON_SELF) && (potential_target == host_role)) if(!silent) - to_chat(host_role.body, span_notice("This can only be used on others.")) + host_role.send_message_to_player(span_notice("This can only be used on others.")) return FALSE if(!(use_flags & CAN_USE_ON_OTHERS) && (potential_target != host_role)) if(!silent) - to_chat(host_role.body, span_notice("This can only be used on yourself.")) + host_role.send_message_to_player(span_notice("This can only be used on yourself.")) return FALSE return TRUE @@ -90,7 +102,7 @@ if(target_role) if(SEND_SIGNAL(target_role, COMSIG_MAFIA_ON_VISIT, game, host_role) & MAFIA_VISIT_INTERRUPTED) //visited a warden. something that prevents you by visiting that person - to_chat(host_role.body, span_danger("Your [name] was interrupted!")) + host_role.send_message_to_player(span_danger("Your [name] was interrupted!")) return FALSE return TRUE @@ -121,5 +133,5 @@ target_role = new_target feedback_text = replacetext(feedback_text, "%WILL_PERFORM%", "now") - to_chat(host_role.body, span_notice(feedback_text)) + host_role.send_message_to_player(span_notice(feedback_text)) return TRUE diff --git a/code/modules/mafia/abilities/investigative/investigate.dm b/code/modules/mafia/abilities/investigative/investigate.dm index 0af1ed674b8..d23b51f9813 100644 --- a/code/modules/mafia/abilities/investigative/investigate.dm +++ b/code/modules/mafia/abilities/investigative/investigate.dm @@ -20,5 +20,5 @@ if(MAFIA_TEAM_SOLO) fluff = "rogue, with their own objectives..." - to_chat(host_role.body, span_warning("Your investigations reveal that [target_role.body.real_name] is [fluff]")) + host_role.send_message_to_player(span_warning("Your investigations reveal that [target_role.body.real_name] is [fluff]")) return TRUE diff --git a/code/modules/mafia/abilities/investigative/pray.dm b/code/modules/mafia/abilities/investigative/pray.dm index b5bd6ee7e88..cbf8459f9f2 100644 --- a/code/modules/mafia/abilities/investigative/pray.dm +++ b/code/modules/mafia/abilities/investigative/pray.dm @@ -14,5 +14,5 @@ if(!.) return FALSE - to_chat(host_role.body, span_warning("You invoke spirit of [target_role.body.real_name] and learn their role was [target_role.name].")) + host_role.send_message_to_player(span_warning("You invoke spirit of [target_role.body.real_name] and learn their role was [target_role.name].")) return TRUE diff --git a/code/modules/mafia/abilities/investigative/reveal.dm b/code/modules/mafia/abilities/investigative/reveal.dm index db48b552b62..5e38d3c9faf 100644 --- a/code/modules/mafia/abilities/investigative/reveal.dm +++ b/code/modules/mafia/abilities/investigative/reveal.dm @@ -13,7 +13,7 @@ if(!.) return FALSE - to_chat(host_role.body, span_warning("You have revealed the true nature of the [target_role]!")) + host_role.send_message_to_player(span_warning("You have revealed the true nature of the [target_role]!")) target_role.reveal_role(game, verbose = TRUE) return TRUE diff --git a/code/modules/mafia/abilities/investigative/thoughtfeed.dm b/code/modules/mafia/abilities/investigative/thoughtfeed.dm index 48d465173cd..f0eb49f2b4d 100644 --- a/code/modules/mafia/abilities/investigative/thoughtfeed.dm +++ b/code/modules/mafia/abilities/investigative/thoughtfeed.dm @@ -13,7 +13,7 @@ return FALSE if((target_role.role_flags & ROLE_UNDETECTABLE)) - to_chat(host_role.body,span_warning("[target_role.body.real_name]'s memories reveal that they are the [pick(game.all_roles - target_role)].")) + host_role.send_message_to_player(span_warning("[target_role.body.real_name]'s memories reveal that they are the [pick(game.all_roles - target_role)].")) else - to_chat(host_role.body,span_warning("[target_role.body.real_name]'s memories reveal that they are the [target_role.name].")) + host_role.send_message_to_player(span_warning("[target_role.body.real_name]'s memories reveal that they are the [target_role.name].")) return TRUE diff --git a/code/modules/mafia/abilities/killing/alert.dm b/code/modules/mafia/abilities/killing/alert.dm index 7af38f9befa..74710087137 100644 --- a/code/modules/mafia/abilities/killing/alert.dm +++ b/code/modules/mafia/abilities/killing/alert.dm @@ -22,8 +22,8 @@ SIGNAL_HANDLER if(attacker == host_role) return - to_chat(host_role.body, span_userdanger("You have shot a visitor!")) - to_chat(attacker.body, span_userdanger("You have visited the warden!")) + host_role.send_message_to_player(span_userdanger("You have shot a visitor!")) + attacker.send_message_to_player(span_userdanger("You have visited the warden!")) attacker.kill(game, host_role, lynch = FALSE) return MAFIA_VISIT_INTERRUPTED diff --git a/code/modules/mafia/abilities/killing/flicker_rampage.dm b/code/modules/mafia/abilities/killing/flicker_rampage.dm index 08a18e78778..10331d47986 100644 --- a/code/modules/mafia/abilities/killing/flicker_rampage.dm +++ b/code/modules/mafia/abilities/killing/flicker_rampage.dm @@ -22,11 +22,11 @@ return FALSE if(!(target_role in darkened_players)) - to_chat(target_role.body, span_userdanger("The lights begin to flicker and dim. You're in danger.")) + target_role.send_message_to_player(span_userdanger("The lights begin to flicker and dim. You're in danger.")) darkened_players += target_role else for(var/datum/mafia_role/dead_players as anything in darkened_players) - to_chat(dead_players.body, span_userdanger("A shadowy figure appears out of the darkness!")) + dead_players.send_message_to_player(span_userdanger("A shadowy figure appears out of the darkness!")) dead_players.kill(game, host_role, FALSE) darkened_players -= dead_players return TRUE @@ -37,6 +37,6 @@ return //no chance man, that's a town lynch if(attacker in darkened_players) - to_chat(host_role.body, span_userdanger("You were attacked by someone in a flickering room. You have danced in the shadows, evading them.")) + host_role.send_message_to_player(span_userdanger("You were attacked by someone in a flickering room. You have danced in the shadows, evading them.")) return MAFIA_PREVENT_KILL diff --git a/code/modules/mafia/abilities/killing/kill.dm b/code/modules/mafia/abilities/killing/kill.dm index 2c09c7525eb..d02fd6c287d 100644 --- a/code/modules/mafia/abilities/killing/kill.dm +++ b/code/modules/mafia/abilities/killing/kill.dm @@ -18,17 +18,17 @@ return FALSE if(!target_role.kill(game, host_role, FALSE)) - to_chat(host_role.body, span_danger("Your attempt at killing [target_role.body.real_name] was prevented!")) + host_role.send_message_to_player(span_danger("Your attempt at killing [target_role.body.real_name] was prevented!")) else - to_chat(target_role.body, span_userdanger("You have been [attack_action] \a [host_role.name]!")) + target_role.send_message_to_player(span_userdanger("You have been [attack_action] \a [host_role.name]!")) if(honorable && (target_role.team != MAFIA_TEAM_TOWN)) - to_chat(host_role.body, span_userdanger("You have killed an innocent crewmember. You will die tomorrow night.")) + host_role.send_message_to_player(span_userdanger("You have killed an innocent crewmember. You will die tomorrow night.")) RegisterSignal(game, COMSIG_MAFIA_SUNDOWN, PROC_REF(internal_affairs)) return TRUE /datum/mafia_ability/attack_player/proc/internal_affairs(datum/mafia_controller/game) SIGNAL_HANDLER - to_chat(host_role.body, span_userdanger("You have been killed by Nanotrasen Internal Affairs!")) + host_role.send_message_to_player(span_userdanger("You have been killed by Nanotrasen Internal Affairs!")) host_role.reveal_role(game, verbose = TRUE) host_role.kill(game, host_role, FALSE) //you technically kill yourself but that shouldn't matter diff --git a/code/modules/mafia/abilities/protective/heal.dm b/code/modules/mafia/abilities/protective/heal.dm index 65cd26ad0a1..4c47d1c85ab 100644 --- a/code/modules/mafia/abilities/protective/heal.dm +++ b/code/modules/mafia/abilities/protective/heal.dm @@ -18,7 +18,7 @@ if(!.) return FALSE if(new_target.role_flags & ROLE_VULNERABLE) - to_chat(host_role.body, span_notice("[new_target] can't be protected.")) + host_role.send_message_to_player(span_notice("[new_target] can't be protected.")) return FALSE /datum/mafia_ability/heal/perform_action_target(datum/mafia_controller/game, datum/mafia_role/day_target) @@ -39,10 +39,10 @@ /datum/mafia_ability/heal/proc/prevent_kill(datum/source, datum/mafia_controller/game, datum/mafia_role/attacker, lynch) SIGNAL_HANDLER if(host_role == target_role) - to_chat(host_role.body, span_warning("You were attacked last night!")) + host_role.send_message_to_player(span_warning("You were attacked last night!")) return MAFIA_PREVENT_KILL - to_chat(host_role.body, span_warning("The person you protected tonight was attacked!")) - to_chat(target_role.body, span_greentext("You were attacked last night, but [saving_message]!")) + host_role.send_message_to_player(span_warning("The person you protected tonight was attacked!")) + target_role.send_message_to_player(span_greentext("You were attacked last night, but [saving_message]!")) return MAFIA_PREVENT_KILL /** @@ -60,6 +60,6 @@ return FALSE if(attacker.kill(game, host_role, FALSE)) //you attack the attacker - to_chat(attacker.body, span_userdanger("You have been ambushed by Security!")) + attacker.send_message_to_player(span_userdanger("You have been ambushed by Security!")) host_role.kill(game, attacker, FALSE) //the attacker attacks you, they were able to attack the target so they can attack you. return FALSE diff --git a/code/modules/mafia/abilities/protective/vest.dm b/code/modules/mafia/abilities/protective/vest.dm index 2c65202dd43..b65a8cb73ba 100644 --- a/code/modules/mafia/abilities/protective/vest.dm +++ b/code/modules/mafia/abilities/protective/vest.dm @@ -33,7 +33,7 @@ /datum/mafia_ability/vest/proc/self_defense(datum/source, datum/mafia_controller/game, datum/mafia_role/attacker, lynch) SIGNAL_HANDLER - to_chat(host_role.body, span_greentext("Your vest saved you!")) + host_role.send_message_to_player(span_greentext("Your vest saved you!")) return MAFIA_PREVENT_KILL /datum/mafia_ability/vest/proc/end_protection(datum/mafia_controller/game) diff --git a/code/modules/mafia/abilities/voting/changeling_kill.dm b/code/modules/mafia/abilities/voting/changeling_kill.dm index 0e851d78a95..bb1b1e76c81 100644 --- a/code/modules/mafia/abilities/voting/changeling_kill.dm +++ b/code/modules/mafia/abilities/voting/changeling_kill.dm @@ -30,12 +30,32 @@ ling_sent = TRUE if(target_role.kill(game, host_role, FALSE)) - to_chat(target_role.body, span_userdanger("You have been killed by a Changeling!")) + target_role.send_message_to_player(span_userdanger("You have been killed by a Changeling!")) game.send_message(span_danger("[host_role.body.real_name] was selected to attack [target_role.body.real_name] tonight!"), MAFIA_TEAM_MAFIA) return TRUE /datum/mafia_ability/changeling_kill/set_target(datum/mafia_controller/game, datum/mafia_role/new_target) + if(new_target.team == MAFIA_TEAM_MAFIA) + return FALSE if(!validate_action_target(game, new_target)) return FALSE using_ability = TRUE game.vote_for(host_role, new_target, "Mafia", MAFIA_TEAM_MAFIA) + +/** + * handle_message + * + * During the night, Changelings talking will instead redirect it to Changeling chat. + */ +/datum/mafia_ability/changeling_kill/handle_speech(datum/source, list/speech_args) + . = ..() + var/datum/mafia_controller/mafia_game = GLOB.mafia_game + if(!mafia_game) + return FALSE + if (mafia_game.phase != MAFIA_PHASE_NIGHT) + return FALSE + + var/phrase = html_decode(speech_args[SPEECH_MESSAGE]) + mafia_game.send_message(span_changeling("[host_role.body.real_name]: [phrase]"), MAFIA_TEAM_MAFIA) + speech_args[SPEECH_MESSAGE] = "" + return TRUE diff --git a/code/modules/mafia/controller.dm b/code/modules/mafia/controller.dm index f8d9db13106..967ae9b39a3 100644 --- a/code/modules/mafia/controller.dm +++ b/code/modules/mafia/controller.dm @@ -2,6 +2,9 @@ GLOBAL_LIST_INIT(mafia_roles_by_name, setup_mafia_roles_by_name()) GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) +///How many votes are needed to unlock the 'Universally Hated' achievement. +#define UNIVERSALLY_HATED_REQUIREMENT 12 + /** * The mafia controller handles the mafia minigame in progress. * It is first created when the first ghost signs up to play. @@ -11,7 +14,8 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) var/list/datum/mafia_role/all_roles = list() ///all living roles in the game, removed on death. var/list/datum/mafia_role/living_roles = list() - ///exists to speed up role retrieval, it's a dict. `player_role_lookup[player ckey]` will give you the role they play + ///exists to speed up role retrieval, it's a dict. + /// `player_role_lookup[player ckey/PDA]` will give you the role they play var/list/player_role_lookup = list() ///what part of the game you're playing in. day phases, night phases, judgement phases, etc. var/phase = MAFIA_PHASE_SETUP @@ -105,10 +109,10 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) /datum/mafia_controller/Destroy(force, ...) . = ..() - if(GLOB.mafia_game == src) - GLOB.mafia_game = null end_game() QDEL_NULL(map_deleter) + if(GLOB.mafia_game == src) + GLOB.mafia_game = null /** * Triggers at beginning of the game when there is a confirmed list of valid, ready players. @@ -122,9 +126,10 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) * * Puts players in each role randomly * Arguments: * * setup_list: list of all the datum setups (fancy list of roles) that would work for the game - * * ready_players: list of filtered, sane players (so not playing or disconnected) for the game to put into roles + * * ready_ghosts: list of filtered, sane players (so not playing or disconnected) for the game to put into roles + * * ready_pdas: list of PDAs wanting to play the Mafia game. */ -/datum/mafia_controller/proc/prepare_game(setup_list, ready_players) +/datum/mafia_controller/proc/prepare_game(setup_list, ready_ghosts, ready_pdas) var/static/list/possible_maps = subtypesof(/datum/map_template/mafia) var/turf/spawn_area = get_turf(locate(/obj/effect/landmark/mafia_game_area) in GLOB.landmarks_list) @@ -156,16 +161,32 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) var/list/spawnpoints = landmarks.Copy() for(var/datum/mafia_role/role as anything in all_roles) role.assigned_landmark = pick_n_take(spawnpoints) + var/selected_player if(!debug) - role.player_key = pick_n_take(ready_players) + if(length(ready_pdas)) + selected_player = pick(ready_pdas) + else + selected_player = pick(ready_ghosts) else - role.player_key = pop(ready_players) + if(length(ready_pdas)) + selected_player = peek(ready_pdas) + else + selected_player = peek(ready_ghosts) + if(selected_player in ready_pdas) + role.player_pda = selected_player + ready_pdas -= selected_player + else + role.player_key = selected_player + ready_ghosts -= selected_player -/datum/mafia_controller/proc/send_message(msg, team) +///Sends a global message to all players, or just 'team' if set. +/datum/mafia_controller/proc/send_message(msg, team, log_only = FALSE) for(var/datum/mafia_role/role as anything in all_roles) if(team && role.team != team) continue - to_chat(role.body, msg) + role.role_messages += msg + if(!log_only) + to_chat(role.body, msg) /** * The game by this point is now all set up, and so we can put people in their bodies and start the first phase. @@ -176,10 +197,16 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) */ /datum/mafia_controller/proc/start_game() create_bodies() + SEND_GLOBAL_SIGNAL(COMSIG_MAFIA_GAME_START, src) start_day(can_vote = FALSE) - send_message(span_notice("The selected map is [current_map.name]!
[current_map.description]")) + send_message(span_notice("The selected map is [current_map.name]!
[current_map.description]")) send_message("Day [turn] started! There is no voting on the first day. Say hello to everybody!") next_phase_timer = addtimer(CALLBACK(src, PROC_REF(check_trial), FALSE), (FIRST_DAY_PERIOD_LENGTH / time_speedup), TIMER_STOPPABLE) //no voting period = no votes = instant night + for(var/datum/mafia_role/roles as anything in all_roles) + var/obj/item/modular_computer/modpc = roles.player_pda + if(!modpc) + continue + modpc.update_static_data_for_all_viewers() /** * How every day starts. @@ -229,7 +256,7 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) var/datum/mafia_role/loser = get_vote_winner("Day")//, majority_of_town = TRUE) var/loser_votes = get_vote_count(loser, "Day") if(loser) - if(loser_votes > 12) + if(loser_votes > UNIVERSALLY_HATED_REQUIREMENT) award_role(/datum/award/achievement/mafia/universally_hated, loser) //refresh the lists judgement_abstain_votes = list() @@ -369,8 +396,11 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) * * role: mafia_role datum to reward. */ /datum/mafia_controller/proc/award_role(award, datum/mafia_role/rewarded) - var/client/role_client = rewarded.body.client - role_client?.give_award(award, rewarded.body) + rewarded.body?.client?.give_award(award, rewarded.body) + if(!rewarded.player_pda) + return + for(var/datum/tgui/window as anything in rewarded.player_pda.open_uis) + window.user?.client?.give_award(award, rewarded.body) /** * The end of the game is in two procs, because we want a bit of time for players to see eachothers roles. @@ -584,21 +614,28 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) RegisterSignal(H, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(display_votes)) var/datum/action/innate/mafia_panel/mafia_panel = new(null,src) mafia_panel.Grant(H) + var/obj/item/modular_computer/modpc = role.player_pda + role.register_body(H) + if(modpc) + player_role_lookup[modpc] = role + else + player_role_lookup[H] = role var/client/player_client = GLOB.directory[role.player_key] if(player_client) - player_client.prefs.safe_transfer_prefs_to(H, is_antag = TRUE) - role.body = H - player_role_lookup[H] = role - role.put_player_in_body(player_client) + role.put_player_in_body(player_client) role.greet() -/datum/mafia_controller/ui_static_data(mob/user) +/datum/mafia_controller/ui_static_data(atom/user) var/list/data = list() - if(user.client?.holder) + if(usr.client?.holder) data["admin_controls"] = TRUE //show admin buttons to start/setup/stop + data["is_observer"] = isobserver(user) data["all_roles"] = current_setup_text + if(phase == MAFIA_PHASE_SETUP) + return data + var/datum/mafia_role/user_role = player_role_lookup[user] if(user_role) data["roleinfo"] = list( @@ -610,7 +647,7 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) return data -/datum/mafia_controller/ui_data(mob/user) +/datum/mafia_controller/ui_data(atom/user) var/list/data = list() data["phase"] = phase @@ -619,18 +656,25 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) if(phase == MAFIA_PHASE_SETUP) data["lobbydata"] = list() - for(var/key in GLOB.mafia_signup + GLOB.mafia_bad_signup) + for(var/key in GLOB.mafia_signup + GLOB.mafia_bad_signup + GLOB.pda_mafia_signup) var/list/lobby_member = list() lobby_member["name"] = key lobby_member["status"] = (key in GLOB.mafia_bad_signup) ? "Disconnected" : "Ready" data["lobbydata"] += list(lobby_member) return data - data["timeleft"] = next_phase_timer ? timeleft(next_phase_timer) : 0 //the tgui menu counts this down. + data["timeleft"] = next_phase_timer ? timeleft(next_phase_timer) : 0 var/datum/mafia_role/user_role = player_role_lookup[user] if(user_role) data["user_notes"] = user_role.written_notes + data["messages"] = list() + var/list/ui_messages = list() + for(var/i = user_role.role_messages.len to 1 step -1) + ui_messages.Add(list(list( + "msg" = user_role.role_messages[i], + ))) + data["messages"] = ui_messages data["players"] = list() for(var/datum/mafia_role/role as anything in all_roles) @@ -659,8 +703,13 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) if(.) return var/datum/mafia_role/user_role = player_role_lookup[usr] + var/obj/item/modular_computer/modpc = ui.src_object + if(istype(modpc)) + user_role = player_role_lookup[modpc] + else + modpc = null //Admin actions - if(usr.client?.holder) + if(ui.user.client.holder) switch(action) if("new_game") if(phase == MAFIA_PHASE_SETUP) @@ -686,9 +735,8 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) player.body.forceMove(get_turf(player.assigned_landmark)) if(failed.len) to_chat(usr, "List of players who no longer had a body (if you see this, the game is runtiming anyway so just hit \"New Game\" to end it)") - for(var/i in failed) - var/datum/mafia_role/fail = i - to_chat(usr, fail.player_key) + for(var/datum/mafia_role/fail as anything in failed) + to_chat(usr, fail.player_key || fail.player_pda) if("debug_setup") var/list/debug_setup = list() var/list/rolelist_dict = list("CANCEL", "FINISH") + GLOB.mafia_roles_by_name @@ -732,38 +780,61 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) if(!user_role)//just the dead switch(action) if("mf_signup") - var/client/C = ui.user.client + var/client/ghost_client = ui.user.client if(!SSticker.HasRoundStarted()) to_chat(usr, span_warning("Wait for the round to start.")) return - if(GLOB.mafia_signup[C.ckey]) - GLOB.mafia_signup -= C.ckey - GLOB.mafia_early_votes -= C.ckey //Remove their early start vote as well - to_chat(usr, span_notice("You unregister from Mafia.")) - return TRUE + if(isnull(modpc)) + if(GLOB.mafia_signup[ghost_client.ckey]) + GLOB.mafia_signup -= ghost_client.ckey + GLOB.mafia_early_votes -= ghost_client.ckey //Remove their early start vote as well + to_chat(usr, span_notice("You unregister from Mafia.")) + return TRUE + else + GLOB.mafia_signup[ghost_client.ckey] = TRUE + to_chat(usr, span_notice("You sign up for Mafia.")) else - GLOB.mafia_signup[C.ckey] = TRUE - to_chat(usr, span_notice("You sign up for Mafia.")) + if(GLOB.pda_mafia_signup[modpc]) + GLOB.pda_mafia_signup -= modpc + GLOB.mafia_early_votes -= modpc //Remove their early start vote as well + to_chat(usr, span_notice("You unregister from Mafia.")) + return TRUE + else + GLOB.pda_mafia_signup[modpc] = TRUE + to_chat(usr, span_notice("You sign up for Mafia.")) if(phase == MAFIA_PHASE_SETUP) check_signups() try_autostart() return TRUE if("vote_to_start") - var/client/C = ui.user.client + var/client/ghost_client = ui.user.client if(phase != MAFIA_PHASE_SETUP) to_chat(usr, span_notice("You cannot vote to start while a game is underway!")) return - if(!GLOB.mafia_signup[C.ckey]) - to_chat(usr, span_notice("You must be signed up for this game to vote!")) - return - if(GLOB.mafia_early_votes[C.ckey]) - GLOB.mafia_early_votes -= C.ckey - to_chat(usr, span_notice("You are no longer voting to start the game early.")) + if(isnull(modpc)) + if(!GLOB.mafia_signup[ghost_client.ckey]) + to_chat(usr, span_notice("You must be signed up for this game to vote!")) + return + if(GLOB.mafia_early_votes[ghost_client.ckey]) + GLOB.mafia_early_votes -= ghost_client.ckey + to_chat(usr, span_notice("You are no longer voting to start the game early.")) + else + GLOB.mafia_early_votes[ghost_client.ckey] = ghost_client + to_chat(usr, span_notice("You vote to start the game early ([length(GLOB.mafia_early_votes)] out of [max(round(length(GLOB.mafia_signup) / 2), round(MAFIA_MIN_PLAYER_COUNT / 2))]).")) + if(check_start_votes()) //See if we have enough votes to start + forced_setup() else - GLOB.mafia_early_votes[C.ckey] = C - to_chat(usr, span_notice("You vote to start the game early ([length(GLOB.mafia_early_votes)] out of [max(round(length(GLOB.mafia_signup) / 2), round(MAFIA_MIN_PLAYER_COUNT / 2))]).")) - if(check_start_votes()) //See if we have enough votes to start - forced_setup() + if(!GLOB.pda_mafia_signup[modpc]) + to_chat(usr, span_notice("You must be signed up for this game to vote!")) + return + if(GLOB.mafia_early_votes[modpc]) + GLOB.mafia_early_votes -= modpc + to_chat(usr, span_notice("You are no longer voting to start the game early.")) + else + GLOB.mafia_early_votes[modpc] = modpc + to_chat(usr, span_notice("You vote to start the game early ([length(GLOB.mafia_early_votes)] out of [max(round(length(GLOB.mafia_signup) / 2), round(MAFIA_MIN_PLAYER_COUNT / 2))]).")) + if(check_start_votes()) //See if we have enough votes to start + forced_setup() return TRUE if(user_role && user_role.game_status == MAFIA_DEAD) @@ -774,8 +845,14 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) if("change_notes") if(user_role.game_status == MAFIA_DEAD) return TRUE - user_role.written_notes = params["new_notes"] - user_role.body.balloon_alert(user_role.body, "notes saved") + user_role.written_notes = sanitize_text(params["new_notes"]) + user_role.send_message_to_player("notes saved", balloon_alert = TRUE) + return TRUE + if("send_message_to_chat") + if(user_role.game_status == MAFIA_DEAD) + return TRUE + var/message_said = sanitize_text(params["message"]) + user_role.body.say(message_said, forced = "mafia chat (sent by [ui.user.client])") return TRUE if("send_notes_to_chat") if(user_role.game_status == MAFIA_DEAD || !user_role.written_notes) @@ -807,21 +884,21 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) if("vote_abstain") if(phase != MAFIA_PHASE_JUDGEMENT || (user_role in judgement_abstain_votes)) return - to_chat(user_role.body,"You have decided to abstain.") + user_role.send_message_to_player("You have decided to abstain.") judgement_innocent_votes -= user_role judgement_guilty_votes -= user_role judgement_abstain_votes += user_role if("vote_innocent") if(phase != MAFIA_PHASE_JUDGEMENT || (user_role in judgement_innocent_votes)) return - to_chat(user_role.body,"Your vote on [on_trial.body.real_name] submitted as INNOCENT!") + user_role.send_message_to_player("Your vote on [on_trial.body.real_name] submitted as INNOCENT!") judgement_abstain_votes -= user_role//no fakers, and... judgement_guilty_votes -= user_role//no radical centrism judgement_innocent_votes += user_role if("vote_guilty") if(phase != MAFIA_PHASE_JUDGEMENT || (user_role in judgement_guilty_votes)) return - to_chat(user_role.body,"Your vote on [on_trial.body.real_name] submitted as GUILTY!") + user_role.send_message_to_player("Your vote on [on_trial.body.real_name] submitted as GUILTY!") judgement_abstain_votes -= user_role//no fakers, and... judgement_innocent_votes -= user_role//no radical centrism judgement_guilty_votes += user_role @@ -886,12 +963,15 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) if(setup.len) req_players = assoc_value_sum(setup) + var/list/filtered_pdas = GLOB.pda_mafia_signup + if(!isnull(filtered_pdas)) //pdas get priority + req_players -= length(GLOB.pda_mafia_signup) var/list/filtered_keys = filter_players(req_players) - var/needed_players = length(filtered_keys) + var/needed_players = length(filtered_keys) + length(filtered_pdas) if(!setup.len) //don't actually have one yet, so generate a max player random setup. it's good to do this here instead of above so it doesn't generate one every time a game could possibly start. setup = generate_standard_setup(needed_players) - prepare_game(setup, filtered_keys) + prepare_game(setup, filtered_keys, filtered_pdas) start_game() /** @@ -902,8 +982,9 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) /datum/mafia_controller/proc/forced_setup() check_signups() //Refresh the signup list, so our numbers are accurate and we only take active players into consideration. + var/list/filtered_pdas = GLOB.pda_mafia_signup var/list/filtered_keys = filter_players(length(GLOB.mafia_signup)) - var/req_players = length(filtered_keys) + var/req_players = length(filtered_keys) + length(filtered_pdas) if(!req_players) //If we have nobody signed up, we give up on starting log_admin("Attempted to force a mafia game to start with nobody signed up!") @@ -911,7 +992,7 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) var/list/setup = generate_standard_setup(req_players) - prepare_game(setup, filtered_keys) + prepare_game(setup, filtered_keys, filtered_pdas) early_start = TRUE start_game() @@ -983,7 +1064,7 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) /datum/mafia_controller/proc/try_autostart() if(phase != MAFIA_PHASE_SETUP || !(GLOB.ghost_role_flags & GHOSTROLE_MINIGAME)) return - if(GLOB.mafia_signup.len >= MAFIA_MAX_PLAYER_COUNT || custom_setup)//enough people to try and make something (or debug mode) + if((GLOB.mafia_signup.len + GLOB.pda_mafia_signup.len) >= MAFIA_MAX_PLAYER_COUNT || custom_setup)//enough people to try and make something (or debug mode) basic_setup() /** @@ -1034,7 +1115,7 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) maptext_height = 480 maptext_width = 480 ///The client that owns the popup. - var/datum/mafia_role/mafia/owner + var/datum/mafia_role/owner /atom/movable/screen/mafia_popup/Initialize(mapload, datum/mafia_role/mafia) . = ..() @@ -1045,6 +1126,9 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) return ..() /atom/movable/screen/mafia_popup/proc/update_text(text) + owner.role_messages += text + if(!owner.body.client) + return maptext = MAPTEXT(" [text]") maptext_width = view_to_pixels(owner.body.client?.view_size.getView())[1] owner.body.client?.screen += src @@ -1063,3 +1147,5 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) QDEL_NULL(GLOB.mafia_game) var/datum/mafia_controller/new_controller = new() return new_controller + +#undef UNIVERSALLY_HATED_REQUIREMENT diff --git a/code/modules/mafia/map_pieces.dm b/code/modules/mafia/map_pieces.dm index 342f4a9045a..0d27d6cd1b5 100644 --- a/code/modules/mafia/map_pieces.dm +++ b/code/modules/mafia/map_pieces.dm @@ -26,17 +26,6 @@ MF = create_mafia_game() MF.ui_interact(user) -/area/centcom/mafia - name = "Mafia Minigame" - icon_state = "mafia" - static_lighting = FALSE - - base_lighting_alpha = 255 - requires_power = FALSE - has_gravity = STANDARD_GRAVITY - flags_1 = NONE - area_flags = BLOCK_SUICIDE | UNIQUE_AREA - /datum/map_template/mafia should_place_on_top = FALSE ///A brief background tidbit diff --git a/code/modules/mafia/roles/changelings/changeling.dm b/code/modules/mafia/roles/changelings/changeling.dm index 2415e39f8ee..8e650515ffb 100644 --- a/code/modules/mafia/roles/changelings/changeling.dm +++ b/code/modules/mafia/roles/changelings/changeling.dm @@ -1,6 +1,6 @@ /datum/mafia_role/mafia name = "Changeling" - desc = "You're a member of the changeling hive. Use ':j' talk prefix to talk to your fellow lings." + desc = "You're a member of the changeling hive. You may speak with your fellow Changelings at night." team = MAFIA_TEAM_MAFIA role_type = MAFIA_REGULAR role_flags = ROLE_CAN_KILL diff --git a/code/modules/mafia/roles/roles.dm b/code/modules/mafia/roles/roles.dm index e8b5f8a63ab..efe0d25c5b9 100644 --- a/code/modules/mafia/roles/roles.dm +++ b/code/modules/mafia/roles/roles.dm @@ -15,7 +15,15 @@ ///The player's written notes, that they can send to chat at any time. var/written_notes + ///The ckey of the person playing as this Mafia role, CAN BE NULL IN FAVOR OF player_pda. var/player_key + ///The PDA of the person playing as this Mafia role, CAN BE NULL IN FAVOR OF player_key. + var/obj/item/modular_computer/player_pda + + ///List of all messages this role got throughout the game. + var/list/role_messages = list() + + var/mob/living/carbon/human/body var/obj/effect/landmark/mafia/assigned_landmark @@ -46,11 +54,52 @@ role_unique_actions -= abilities /datum/mafia_role/Destroy(force, ...) + UnregisterSignal(body, COMSIG_MOB_SAY) QDEL_NULL(mafia_alert) QDEL_NULL(body) QDEL_LIST(role_unique_actions) + role_messages = null return ..() +/datum/mafia_role/proc/register_body(mob/living/carbon/human/new_body) + body = new_body + RegisterSignal(new_body, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/** + * send_message_to_player + * + * Sends a message to a player, checking if they are playing through a PDA or not. + * Args: + * * message - The message to send to the person + * * balloon_alert - Whether it should be as a balloon alert, only if it's to a non-PDA user. + */ +/datum/mafia_role/proc/send_message_to_player(message, balloon_alert = FALSE) + if(player_pda) + role_messages += message + return + if(balloon_alert) + body.balloon_alert(body, message) + return + to_chat(body, message) + +/** + * handle_speech + * + * Handles Mafia roles talking in chat. + * First it will go through their abilities for Ability-specific speech, + * if none affects it, we will go to day chat. + */ +/datum/mafia_role/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + for(var/datum/mafia_ability/abilities as anything in role_unique_actions) + if(abilities.handle_speech(source, speech_args)) + return + var/datum/mafia_controller/mafia_game = GLOB.mafia_game + if(!mafia_game || mafia_game.phase == MAFIA_PHASE_NIGHT) + return + var/message = "[source]: [html_decode(speech_args[SPEECH_MESSAGE])]" + mafia_game.send_message(message, log_only = TRUE) + /** * Puts the player in their body and keeps track of their previous one to put them back in later. * Adds the playing_mafia trait so people examining them will know why they're currently lacking a soul. diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 0de25b903ab..89e6eca3293 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -500,7 +500,7 @@ if(!caller || !caller.alert_able || caller.alert_silenced || !alerttext) //Yeah, we're checking alert_able. No, you don't get to make alerts that the user can't silence. return FALSE playsound(src, sound, 50, TRUE) - loc.visible_message(span_notice("[icon2html(src)] [span_notice("The [src] displays a [caller.filedesc] notification: [alerttext]")]")) + physical.loc.visible_message(span_notice("[icon2html(physical, viewers(physical.loc))] \The [src] displays a [caller.filedesc] notification: [alerttext]")) /obj/item/modular_computer/proc/ring(ringtone) // bring bring if(HAS_TRAIT(SSstation, STATION_TRAIT_PDA_GLITCHED)) @@ -517,7 +517,6 @@ var/list/data = list() data["PC_device_theme"] = device_theme - data["PC_showbatteryicon"] = !!internal_cell if(internal_cell) switch(internal_cell.percent()) @@ -535,8 +534,8 @@ data["PC_batteryicon"] = "batt_5.gif" data["PC_batterypercent"] = "[round(internal_cell.percent())]%" else - data["PC_batteryicon"] = "batt_5.gif" - data["PC_batterypercent"] = "N/C" + data["PC_batteryicon"] = null + data["PC_batterypercent"] = null switch(get_ntnet_status()) if(NTNET_NO_SIGNAL) diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index 6f693b5bf99..8cb741d376e 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -132,7 +132,7 @@ if(isAdminGhostAI(user)) return TRUE - if(!transfer && computer && (computer.obj_flags & EMAGGED)) //emags can bypass the execution locks but not the download ones. + if(computer && (computer.obj_flags & EMAGGED) && (available_on_syndinet || !transfer)) //emagged can run anything on syndinet, and can bypass execution locks, but not download. return TRUE // Defaults to required_access diff --git a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm index 339dd3175eb..856cc9b6b02 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm @@ -19,11 +19,11 @@ /datum/computer_file/program/ntnet_dos/process_tick(seconds_per_tick) dos_speed = 0 switch(ntnet_status) - if(1) + if(NTNET_LOW_SIGNAL) dos_speed = NTNETSPEED_LOWSIGNAL * 10 - if(2) + if(NTNET_GOOD_SIGNAL) dos_speed = NTNETSPEED_HIGHSIGNAL * 10 - if(3) + if(NTNET_ETHERNET_SIGNAL) dos_speed = NTNETSPEED_ETHERNET * 10 if(target && executed) target.dos_overload += dos_speed diff --git a/code/modules/modular_computers/file_system/programs/frontier.dm b/code/modules/modular_computers/file_system/programs/frontier.dm index b724892da7e..9c6e33bcde9 100644 --- a/code/modules/modular_computers/file_system/programs/frontier.dm +++ b/code/modules/modular_computers/file_system/programs/frontier.dm @@ -18,12 +18,9 @@ /// The file under consideration. var/datum/computer_file/data/ordnance/selected_file -/datum/computer_file/program/scipaper_program/New() +/datum/computer_file/program/scipaper_program/on_install(datum/computer_file/source, obj/item/modular_computer/computer_installing) . = ..() paper_to_be = new - -/datum/computer_file/program/scipaper_program/on_start(mob/living/user) - . = ..() if(!CONFIG_GET(flag/no_default_techweb_link) && !linked_techweb) CONNECT_TO_RND_SERVER_ROUNDSTART(linked_techweb, computer) diff --git a/code/modules/modular_computers/file_system/programs/mafia_ntos.dm b/code/modules/modular_computers/file_system/programs/mafia_ntos.dm new file mode 100644 index 00000000000..7bd5b81a240 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/mafia_ntos.dm @@ -0,0 +1,72 @@ +/datum/computer_file/program/mafia + filename = "mafia" + filedesc = "Mafia" + program_icon_state = "mafia" + extended_desc = "A program that allows you to play the infamous Mafia game, straight from your Modular PC." + requires_ntnet = FALSE + size = 6 + tgui_id = "NtosMafiaPanel" + program_icon = "user-secret" + alert_able = TRUE + +/datum/computer_file/program/mafia/on_install(datum/computer_file/source, obj/item/modular_computer/computer_installing) + . = ..() + RegisterSignal(SSdcs, COMSIG_MAFIA_GAME_START, PROC_REF(on_game_start)) + +/datum/computer_file/program/mafia/Destroy(force) + var/datum/mafia_controller/game = GLOB.mafia_game + if(!game) + return + UnregisterSignal(game, COMSIG_MAFIA_GAME_END) + var/datum/mafia_role/pda_role = game.player_role_lookup[computer] + if(!pda_role) + return + game.send_message(span_notice("[pda_role.body] has deleted the game from their PDA, and therefore has left the game.")) + pda_role.kill(game) + return ..() + +/datum/computer_file/program/mafia/ui_static_data(mob/user) + var/list/data = list() + var/datum/mafia_controller/game = GLOB.mafia_game + if(!game) + game = create_mafia_game() + data += game.ui_static_data(computer) + return data + +/datum/computer_file/program/mafia/ui_data(mob/user) + var/list/data = list() + var/datum/mafia_controller/game = GLOB.mafia_game + if(!game) + game = create_mafia_game() + data += game.ui_data(computer) + return data + +/datum/computer_file/program/mafia/ui_assets(mob/user) + var/list/data = list() + var/datum/mafia_controller/game = GLOB.mafia_game + if(!game) + game = create_mafia_game() + data += game.ui_assets(user) + return data + +/datum/computer_file/program/mafia/ui_act(mob/user, params, datum/tgui/ui, datum/ui_state/state) + var/datum/mafia_controller/game = GLOB.mafia_game + if(!game) + game = create_mafia_game() + return game.ui_act(user, params, ui, state) + +///Called when a game of Mafia starts, sets the ui header to the proper one. +/datum/computer_file/program/mafia/proc/on_game_start(datum/controller/subsystem/processing/dcs/source, datum/mafia_controller/game) + SIGNAL_HANDLER + RegisterSignal(game, COMSIG_MAFIA_GAME_END, PROC_REF(on_game_end)) + ui_header = "mafia.gif" + if(game.player_role_lookup[computer]) + alert_pending = TRUE + computer.alert_call(src, "Mafia game started!") + +///Called when a game of Mafia ends, deletes its ui header. +/datum/computer_file/program/mafia/proc/on_game_end(datum/mafia_controller/game) + SIGNAL_HANDLER + UnregisterSignal(game, COMSIG_MAFIA_GAME_END) + ui_header = null + update_static_data_for_all_viewers() diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index efa61b2630c..c9723d905b5 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -7,19 +7,16 @@ size = 4 requires_ntnet = TRUE available_on_ntnet = FALSE - ui_header = "downloader_finished.gif" tgui_id = "NtosNetDownloader" program_icon = "download" - var/datum/computer_file/program/downloaded_file = null + var/datum/computer_file/program/downloaded_file var/hacked_download = FALSE var/download_completion = FALSE //GQ of downloaded data. var/download_netspeed = 0 var/downloaderror = "" - var/list/main_repo - var/list/antag_repo - var/list/show_categories = list( + var/static/list/show_categories = list( PROGRAM_CATEGORY_CREW, PROGRAM_CATEGORY_ENGI, PROGRAM_CATEGORY_SCI, @@ -27,10 +24,9 @@ PROGRAM_CATEGORY_MISC, ) -/datum/computer_file/program/ntnetdownload/on_start() +/datum/computer_file/program/ntnetdownload/kill_program(mob/user) . = ..() - main_repo = SSmodular_computers.available_station_software - antag_repo = SSmodular_computers.available_antag_software + ui_header = null /datum/computer_file/program/ntnetdownload/proc/begin_file_download(filename) if(downloaded_file) @@ -50,10 +46,10 @@ ui_header = "downloader_running.gif" - if(PRG in main_repo) + if(PRG in SSmodular_computers.available_station_software) generate_network_log("Began downloading file [PRG.filename].[PRG.filetype] from NTNet Software Repository.") hacked_download = FALSE - else if(PRG in antag_repo) + else if(PRG in SSmodular_computers.available_antag_software) generate_network_log("Began downloading file **ENCRYPTED**.[PRG.filetype] from unspecified server.") hacked_download = TRUE else @@ -68,7 +64,7 @@ generate_network_log("Aborted download of file [hacked_download ? "**ENCRYPTED**" : "[downloaded_file.filename].[downloaded_file.filetype]"].") downloaded_file = null download_completion = FALSE - ui_header = "downloader_finished.gif" + ui_header = null /datum/computer_file/program/ntnetdownload/proc/complete_file_download() if(!downloaded_file) @@ -90,11 +86,11 @@ download_netspeed = 0 // Speed defines are found in misc.dm switch(ntnet_status) - if(1) + if(NTNET_LOW_SIGNAL) download_netspeed = NTNETSPEED_LOWSIGNAL - if(2) + if(NTNET_GOOD_SIGNAL) download_netspeed = NTNETSPEED_HIGHSIGNAL - if(3) + if(NTNET_ETHERNET_SIGNAL) download_netspeed = NTNETSPEED_ETHERNET download_completion += download_netspeed @@ -132,7 +128,7 @@ data["disk_used"] = computer.used_capacity data["emagged"] = (computer.obj_flags & EMAGGED) - var/list/repo = antag_repo | main_repo + var/list/repo = SSmodular_computers.available_antag_software | SSmodular_computers.available_station_software var/list/program_categories = list() for(var/datum/computer_file/program/programs as anything in repo) @@ -147,7 +143,7 @@ "installed" = !!computer.find_file_by_name(programs.filename), "compatible" = check_compatibility(programs), "size" = programs.size, - "access" = (computer.obj_flags & EMAGGED) && programs.available_on_syndinet ? TRUE : programs.can_run(user, transfer = TRUE, access = access), + "access" = programs.can_run(user, transfer = TRUE, access = access), "verifiedsource" = programs.available_on_ntnet, )) diff --git a/code/modules/modular_computers/file_system/programs/techweb.dm b/code/modules/modular_computers/file_system/programs/techweb.dm index dc9538cf358..77d0a0900e4 100644 --- a/code/modules/modular_computers/file_system/programs/techweb.dm +++ b/code/modules/modular_computers/file_system/programs/techweb.dm @@ -21,7 +21,7 @@ /// Sequence var for the id cache var/id_cache_seq = 1 -/datum/computer_file/program/science/on_start(mob/living/user) +/datum/computer_file/program/science/on_install(datum/computer_file/source, obj/item/modular_computer/computer_installing) . = ..() if(!CONFIG_GET(flag/no_default_techweb_link) && !stored_research) CONNECT_TO_RND_SERVER_ROUNDSTART(stored_research, computer) diff --git a/icons/obj/machines/modular_console.dmi b/icons/obj/machines/modular_console.dmi index 86e3d7139579da94c276f9fc05e966af95b4a99a..2677dbb71220a8141638f7cf6c51ee5536f9b0c6 100644 GIT binary patch delta 48311 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

pq_ZZ=yq}(vNbI2F=v&Dt5w)uCMZA8Zmps z7hM%?$YZGx!?*lND&{W>CUHWQZ?=tEzGW7?n#_^4uB+w@^pB@w*QFY_`_TYiTDy+; zlf6<~FHTSv1t@e!F^$&4Y=GR@>UnhYB?R`t;vteJdlI_gHK-P*a6h?0Za zU@1t|X)Bd_`x8NI-41Wy;`?Y1+E*mMCJNZ^DDZNPs`zFyX&i9bgTe<+M+HxZ^11|5 zV>d61>mSUw3mkv4P9T|W{-n$G(|_0S5c=DfWCgxb+24uha;p_6qmWGzyH`Fx)q2wN z3AN%$iB!8Y#;!CH)@5x4-m(HR!A6+S5K(rgPUI=G%O+M-^~r<4#!m%CqP&U2^~Q*< zSao}J09R)ENp*5{0Vkr8@$?<)x+suP0i7@1DlAfnOJAG*{)7J|2&t33h6B3Y8K2)3 zP|90HEKlCmBV#gD_y(k!ATPQEqKje@-K~tdo=M9fY@Y4MlHCgg!d$V?N(3&_f9uz_ zGhZ+j;<2{J?dm_XmsGz_BHbbGjk@O{e&+6Txha$5F%=BnN%NxP+xzH2EV`Yl!g~0U zLS4soQmJ28ZT5)<0gnv=hH?Ao0CLpWMvnlX10CZ^dHh*AU`c(=+*`qk_aV8q1>^oG z|H@lx+id(Ppl5mV2nb&fq3pRFi^t1S&NfOQ0Ja|IXt`IYRCVukM>~jkFI3W=Y>P_9&@z8QeVj8gsZ$ivLTO7=(9Fl?RC zW|e5L0S;l#eOw9Ks0ya`q}>r)_aB2&;dQK_xlDfQLDOSzId~(Xu0N#C_=QqH zi+H`Th~k4!gS~0h3(A)jCgl1XQ&Si2xLmhKNgmi+=$!7L$^<(a%_(I;hhWYQ4CKXWjd+f zsaj%L*%M%z(+c(;T|kiX<&tHWLpAB0z=d%gqkz*MHy#e{u$<~b9M`qo#x~QK6 z$>faxz*Y8g3Ue>$1~`D3t@Z|{^WfCy`rW+dRKR)ZzA8U(nOgNCV7szU$J7|mT3~xi zAkWWg{e&12+whDA`c#q6Ebi9D%P{=5`2cz5%y)dXD;;q7K{MI`*Db00(#H=ms$VQQ zYf(O!diZ(=ZdBy)*k?8FZFpH5l={;5jvL@Qq<5Y%!>}Hr{_D#X@Mo)fJ~v(7ihH0?BYLH}EH2?_#!D=O>?d_~pp_ zeEZlF#w+b_@C?0~B=HDmx%P>}gt302XBY_=ChMcA>3_Kni%(RvC5+?L@l(S&>98HP zPoa(nRYi~$g`J7_T7u6lM5_hRS3hK^mJn3K)z$s;3HraX-OaJAgMYAA0-Ug1fc$$| zB}xB{Moh~AUmIAC9R{YurV69sOKZh`$)$gFBrMCf_ek3OVKtLl{@wWh5ZnI6pdMpT z|L1A{e>^1Nq;vlN9@5LaDXWF_)6`k5^3DssZq{jsCk4Vg&PQaMqOmqCVO3}jslkw z`w9%Fi_9wf?iRKPhOL9gF#=`zpk-{AzAGanTU=<at5oi6oxnh@vDzHq$pUJUIXH#F6^G zDLS`z1P>k8F}nVG&8rU$mX9CnTz#RM*WraJYnXg07DiLh1o=+p;Z^O{M{{uLNKh+c zkx5O{Bg^Q0sMNc#SVZQ8{oNOxmSmMfw&KBkj zv_9+~c>eFke~r`sdwf~T|J5OCnSV?HAwSYAyLnDMFnhIT0$S0hLY?%XUB@W?Y{0R> zhAAXT1ho&`eLwMwf!b*cNZxTB#FMzrbh}i9mBXF1-Bkv4P{)zNrX|<`mqBOjN8K$-`w&eH?plerYn>bBxMtlp*<5#t)@GweDjuE^>&5a6Dtx#F{v)uAQZLHEhTdcLZP98{rmmMslpKs1 zbt0lYG0!fS29U&A$E>$VWhai+Qwp!B$shy)o3SF={)$Ixh$Vj%BGbPD+lf)VH{|;( z`G)Dc!m-Z~Zt_|Js0(#=Q#@13LtstTW`2G6>&J-bapUK)ZoIFZuaHI#Q<}Bu^|(*A z+O}lE3*a2Y0lX=UiPEYv_`P%&U*Y)ukOdtg@@;(=1w-FqZU%jD#UON{wN!^3PSNw( z6DLeBy-_xOcr5OjHqcCeZ_3I)eq(J-^WDK3x?pA-iRw+Krr_rMW>H|`^uKcblCos5)!u@MtYtrw=6be`05(Qvs+kMM5ZgMcO2`2cb&*~}n>RO57$=wA zKIPN)_>H=>#B(b3#=kY0d}6_EIDc9v%C8HGlZQ=&F5JM6E%#bZ(09n1P#u9|3t zYLoVVJNRN6he}Y43HF^A$VtRM(mBtA|Lk@h-&PP7kD)28Rg~G8tv->|Vd&o|X<5Tw zO+L8VK>4=XU!mx|AToq^nI`ui%zGzRxFdE}F~Pq~GUO1%!qGpl;i9 zPX~J(pT(Bpq7Fi2rVJND6$7x*e0-Ih5@^MFo&M^<{#*VQ&^!OWSM-*pb9JJ04Abb( z&@Xd0Z>8s5lX#w(VL=6F?*39->bfsrUIYbR$z~hqafv+dLEa#P$)5QFtSl(xE%n_q zsMh3!kn2|UGqQUkII6&i2?&(*!td7ig!H2beOvHZ9`dtk)p5i7l4iDK9_Q(W^8+80ZiG*>c| zoa?F^@n9-@W69yVQQK{6=}-OcTzBcekBy&n*GoIcl~uk38glyaP*4QnQ4~5iT~RdS zah~1y%+)-a3&t2D%D(l%q2gh_G3*S@BE|75`&|Ka+T%dvV7|h=?%(0Qw<@)m6R)PB zt9yi%Pbm@;-^k4EI*O`IKLz<-2vzvRKFJn)+rN6Dy8kG!lV8fvd!lab+f76luw+Dk zYoq=5lA|9Xqfou5wr)HA;L&&0n44Lg%usk||0bh)QG+ABRCr;tmD=MYY8CzJXTVOZc!wz%3kfL{0{&6v~`?c^}nOJhid994k& znQosn2k#F2aiW+e35i72>eqBttja$m2(KO-FZfR+S1S;+@j?^QGA7`{Vy}V+Xy>=x zY>wluh=*s74d0;oGW@Qy{=wixiTQV0)6dhLo}k6U1e7FhuNoyiA8-g0Zi^te8&QLg9Uj?*)WpRtt<0U9n0E&@_#hym=L?vX-$5qySDaTvTy;4}hNn>1 z*U{0-Nyvz$8^rGI9u~Jtrv4F>8E%R9POXI73R&ih@d&dg4bKy{I-XzPi4W%B=G`q8 z_wXamkA<&uUtEWAn;S`DpS~~-KgwH`JiEW7qTMhy=tST9gZaM22ldfV*4)!~@NY~Z zw!TNxbaB}oHHpELlWg!Ud!8Q5Op8Dh^9+@eGMg*_fNyP6Q%_AO*&6Df#F_F%3b)b5 zGdd`R4plMV58g@(Wwp+xB%hzgPAXr&Lxu=uFb)MfFoY%cJOv4;yqzXcZ6Hwxkjbz! z!XJ03gi?dU^|T;8@x~Mzp6ShL?ctU>i(LeofS|K7UG-N3-Oo{MFyDJc(eKu^OI;d{ z)lfcJODs;6nCI1YJmP^eUOrA0dQ=Qzq~-R-s}ci;0w0-p z_T|x(=@oB7gno&=-SVGokW-P`wFVAyC+)U{BlU++5yD!k?7^3IAdDb%`yc(_y{K?- zjn7_jh)N3Rdr0cLi|5G;#K&a#+k8ydFw6+OQsojIc)@v*N|4393ypc8DjA(xjas|+ z%XI|!S`(89cg@~Fo93sx@70F+5e`AJ^%z~8D?iQWElH+zmzbVc2NctT{}nh2CIRdR zoku1D4GNl0*f!2J0Abjd08$$k?!wDT{F@!N^B6ZaE(m1DO0!^0Wr`%E6<)L}zhcu6R?EQezc2Qq}y*mw%LluoGMENBMit6kzz#T&TZdM8aBQ1^;`D zAZ(+^WzR&c?j2YNwn}{65RYs-loxt4J~VOE)x6J}{{eio+h>X?&pALTff&X5=P9lQQ2W2U=~=#b&I0+cL&h}nw_cYwFu(Nf%X;fNym7;(zIXMd z?+eU47J3No6hZc0gpA7?<{O(NuhCrm%ewx%@jub8|C?al|4alsezJernLaP8S0PzZ zsM6=VRDjV%gYz*!3ZGtGa(@g5^6`-KYf=&ta^1+Jq{F$Z7NYiQp&coW%aGe>H{eW? zV(0$+>N`8`4CvRg-A=1_HA_`zYqi)Yy93y_7_@gfs&l-v^QmPh>H%V2SnB%0WAqP)dY(~=D8zU^-nslYFJExuuR|jMt|Llrt*)%maHeT2#${|f}vC+|h^gnuI z$I`o74tz3vi-2v|(O(-WXSDqm*MdTjomB`+IfshI5DFImM%aK-;g6j}-Cq`vbK<<} zKKT)^axeeZr*W(gaUO*Li>3fUaq*+e%gZ&3nZZgSL@1Ty9d}wz%&AtwqH5~7aHd1j zy1?ktzEzM#&u2w{f%w|-R_I>jq|8z3FAi7(T*Xw11Sv5Bq?8akcQN5oPqrfDL8Dq1 z@Y-uU*d`Dwkwo%^x*c;;bJA|L1@&-*W^B|mY^uAj9uj8SVm~d_QngTP{K<;m7xN8} zFXuax#GeA2q@5n&2aF^*bc4T7MAe%6wB+smpvL~)j~_qgs{A1IsP0?3Ow@6KNrWhW z=gn5)XJho{9E;qZ1ck<3+74>DaqGgG@)Vv4t74;_1PEiU5X| z_A0gKXQa9$w2zpNN|Y6oqiW|xv^rPas$q>(;l;%q_8;pA-(lNp@3l`$i2_qc_2P-# z)-N;V#fy#FF+oQL+mI;>N$%HwxB!bIt4K*_suv?EtZ`j?XZYpeR05lgEq$=__NpZB zOICH9Kv@XhtNX!ao-5}~{Z(0#??y(5$7YMMd0jN2+}=9)a<=-k7w;CvZ_G7d_JuqE zfFhM92vU@MS0X)UzdiW=>MJ_(!U}aE%{>g$^`$!{q1`U=LJU?eoZ+O{##R-sLw5oTMf{T(ymbgnvBvK)}!!uY2R_td_ zJaf3;!F=?lDUCNQ;`L0~Mnk4NCN_SuL4fvVnDS21W*1(u26r-R^akRi>r&uO?ga< zlZQ4aYu{D&OR9!&-xO#@_>{iMFR`j0@F-qm+er zMEVuxRv)NS*N1*jc?Abh)oR> z#rnjFGC_mhZ35H^jilgG$rWR83pzXCEwPjP@>1$Z|O&mALk&b zl%;`!`1wDz6K)M#TAgIqJTkC3fTVDON;arUZU(57I-^r@lW;jI1xtO2q2Q`x99NjL zc;Xqm$C?WbQj<(=z9QdM$fK1=BkM45_%RU9EAFuq6ysu(_jKxK&t2To zW)qC=o_WcP01g*l;ePMk@XxJMl!{i2?Be27g4OZ;G=v;RN-V6?mz1#iI0KrAORJ^! zSzhNDRFjz7xiRlf*jts zEhE@70(2T76#U|EP*T;;P_nCqd3ayUb+ZZQgBOfZr$1S2O@Go!LV&V(I&$GDu030| z3bva4Vj_OG*NOt#drSwcVVW&^UoEWmGgSS~^G{J%*W{H+prV(|N5ip~#z!*?UMLUm z7%o9N-cc0}H7XEZ3KbQTQ|tZr>yjZ3HP$o{KLao2()B z+601j=D5`HNV90Ch=vt*Cc51A9PM~50$Qr=y{KmY=1*np*QLH3*RA2?H)5@ z<0!D|%F?5SzGmvlQI{>oh-)FEOkHZH@x+S01ALMeNxvEvNe1hbz^V(nh-+YZ>kK#@ zRR7YnQaNl`1|-+{6hKiNh#~NXZ%4-vD{LLl1vc6 z+Z>AmA9^5k=N?>UuVuN_>g9Q&?mo;a{1p`2pQo1>(KJ-{`SV@92SwDB$C)iJ^{c7iT*L)UK&D!cO5FgX z>N9uh#zej6)H7&YP$prbe$0;8rYU$B+L}EriDb6T<0=P*Ogw!@MI;HbrDV0uB>y&< zqUN!Xt#&X9el@t*)^tK)K{4zvFgrbCS?%FDCmXySzTk~wy@JB(ZL7I?67H;B=K)-B z+{I%OW%cBK2K>3{;_*}H0D<50QYY6dZK$U3?GutQ($wtzq>4JY%!5eyW3pb7WSd=* z)k)(c4Qrn}bEiJ}EZ-gX8MxhV*i?FINi{yC&iX($hxueYbv_BEWo~{NG|med!B@e; z<&d3jd8R0hM51j%MuzKQ>|1T5fTLB|ANQ8nSDv7Ni{EVrR+NtJuVS}sraMbq(2Ru6 zuXmXCzAB~MwR(Ph(SDh%5ph@wGM$H{R85(hW`C`94C2x#!85pP+(Phf3K1mV&MOUY z?VuGiHdco}+>!2PS{b_&?fqsK{$BmC@I?JkH~&c-1cB%x!wOj=dWdviKAge)$X~%d zclJ0&^RG;w`-Oct6o8O76b@-YVRFz!!frhXi#BX5Kq#3F26^Qs7)n{e>^J?bzjFS+ z8~-nK{r_fQ+5fQn42Y9bE{vw}ix~K1Fk+E=Lggg1+2HPp&mJEZDoqZt_VXu~Yb#%rb>N|;!$o+YDrfoE3s@+ z)WX16>(!%ppFLar?q}%m+-VlXGbh$YPdALWg%!@Q`>cb+unM_d>kABA>=X<(K9!q^ zE=$hJxi&pL-7<$!;1G{zP`VrkLXi3SiF>!7`}C6zHXi`ZyrG1z9z70ZB zn69p_*|lrevWsuNefu^mD@zb8`o2dr&8$BG5}3W5o#ewRi2s^U?1ztey?Dw-m{>JM zQ->2jzFT-9#Un86{dI=|l7;EM!7OkYUFVlUL33OCrAPJdHBp*r1(i52w$_IBwCyvn z+`TonJz^49M~W%58|+L8$6(thWD&8x;hH>)$P2gGx*F)LQQW|0?{zlKlIno1hmPcq zj*eUs=t#bS;F2q|Q?mY8`Qsi2puvJ;r2P#6_iiE95xBGyUqf_@GTq=D$PC4qb&|k` zfMLAX%75gu-8l6m76B+w%b(>8jrroe`w8RJZ{*N>cQ3E)I?fFZowKw&25fSk%)TUk z6nLfVb*!VxRlU?@tkpX_Pa%M`~q$o7TpV!oY2hOG*nRijAa(rU$6P(#kh!#)GfdP5IGJiVDNF;3AkT%oe@ zU%F&kin+P_>sZ)!DF$oB{cTtvfODD^8w3Ey#v)BVgtn4N{!+SPW9fUUnA5% zFC>mUTLSO>6?Mo^hu>0ll)C+&>gHNSM&#Ol|2!l5mA8pccKI{zlsB@f>+LcADMa}| zvsc~&^K~h(qtF+(YvW;o2exw)s{JPs!M~~Y_<1a~GRk>t2r9q`T;V@9TY^vnYfRFa zII}O%X`CXRIBQSO9>%#cH?1$&id2`qlp3kD=4cFQyCO{rqEd1jXVTCO%pN0lNzY7b zeEZaX21gcHB}=s;{l5(`Ne16KjpO%aYu-nT5(R*c&!1meSctqR?kfROzjiD*VcyQj zI9jTlj26pkpm9irouteS++gB-AeGWv5M>0}zG{kSkTA~Dpi?ph zu*WO07mHJ#uO{qqPh%JKPEH-p&@Lq5*aEd)Ae@&rf&KS5pGww!e1_?&sc8srWkBb86SaGcT3ZR~#4V zccJq*7r@MO+{_>j6k%nIASdEZd9wgEEh}58VA-}Nyb*WQbTB%j-%z#t)}cz-j++W- z2NN(9`pj_}_oheT3n4jN>L85$E;ahf6c{vC_dVd~bTB^3aV@m(smZ}Wsw4_nDdAw- zep4k7v~+ek4IL6PJm2$vx|l6DVq!TXfvwPR9dadP@7i4}o2>)kz4ch#P~yx)>gfiH zdqS#-2Ic)ITul46qX{8N!h!)vCBoD&VrUB-Re^fx!?u{fA`w$ZMm0HHkAwmu`<&Vm zNMi5xO+J(>KDcnGj5oUJ;bxQpte5m=R(w;G(zV@LA2j%Vage-reLyUHCYNl67T_Am z%wf4ZFASbm;SQE+OK42!*9Qf2&|FN?_w(esqY+=8#xEz~F_V59GO%To1zMzA=^?L*ktQ7V{hU61%iF}O%-TlMdx#2bgt6EOrb z8_?td=}^5OBIVpvc-Ayf!)9crEzyWFr?UBl@!?PT@|A*TOd;8)@87-ukeQwQ9BF#ZgG5jQe}#CmasrQFN~bV<#fb}c zFeS6pYM(Kkxw*OfGx3YSZma74{ROb061e@SlQd2pr>eJ)Q)kY-N-ck!=Xk;H!saz% z(NOE`m)xy~Y=%4xF~J+xx<|@+@@uukDGP6U^=_Vn6jyEv|HR*ev5bfC#^jPyzrXYk zdeBn{v!wIbj$WaYbk{R3r08(ub6bU%$=}@tYt$sI$YKKWUaZN-p<#t$XFxht)A+Ec z34Z+h!OT{_akCevDTFrF^czaTa%@Gy*1QDJYPDJ&*h|!V$|3x6`s;IBPpM+f&x;Ui zzY)9C0Rha(TEdaBCX;Ub>E`db>7ZR3WF8ardi4hS*PuHxwp~AU^pJbVY(6A1bchj?LEcgUeGi zUEi#yEApDtUoKUQ?duCnreg}XWw9ctn2Q{zR!u>=Jqhbu79dad&23F`oCOFF8(_4N z*RuACe;DK(r@aO&9igMClO06Uo%_l1>wh3jS+&x63-^zn{ZqJOo<+F;c)Gosl%o4n z5q%%TQb_pTy3Nd)}ZoKp!;G;&u(C9DP_ufN|Qbi*Vgp_0g_vLk;ukK*@eK zgG8iN^FI}<|8D%NboIX(;{MlQTS#K4t7}*$)c(1~;XxFuXK;TaC{5?%Y2VQPEe>ec zb#(mTNNH$LA&h0g?))+~0US3{PQBjc$8WV4G znF%#~6sVgur=x*@TMWd^&|M2G2tF@~xTzg*Yq3(?$vd9oAwOuqFOS`7>pq)>XHm#f z$4jc*zt3+5ozCao7r1mO-WsC?1=_AEOmi!IqRzWHlFyTPSnUpufAM;;9JH1X6-7Ar z2&@8+s?j&DHa0`hC$ApFhN_3NZE_YZ;McaQYjK_EGoQ#$w}|A;pvI@P(HN|@on4+N zWu*ME_yWkae!P94Jsv6_!mHZ9>w6m#r?)2$H6L9VL!AQVtq{&fhiAZG%L+KC@O(SO zc_UQC<03con1Jk7Q<(~1YO0?8tbbHbuX_TlZ|@Gk`4$jiy!ln(+-yGtO(!7`^m%W| zU=n-p8S|<6wuA@LS7@R+DCg7j4=QPrStuGn)O_^hA_Mip8#jc?pd$x4bzKS=b1x%j zuS)YA1JAY6L>s-KTk%9=+;4FfAbz~QaHlic)uSH?^_Mj1PJ8wWnw4B#s;j~Zs-IsT zjSB3XWB1%d<6qMQVIVxnUHuCW?%FW{44i30R<6I@aaWh{h-Z&CWmU45<-L{T2;HsG z7@v;t69Stvd5sC5YvrvQD&%j5sCO((N_295e@d?-7SfBl7S1+rm+*d9IEOt<`%GB+ zZc-s-4aeP_8rmC!=28F6Xjh-%0&T`AkHFuIZtMl+c}(vUecMYkHcV$LV3BCtBqiCZ z*~<+K+vkoIN|)2zfRayiBYhux-jK#$dI`X;Kn+csZfJJhK)i8>sLV^i+ShThxM!hl zn{T;C7a0w$4OwB&+2*^YJ{i2*=`IaBg-bJn$gatMpm|$}Sz|WLhF4+6nFF%n6U>)C z#r4+t>bpM?bua-c^+(aFy9|KNM7R@JkbhxT-d6ebo^b5gKAMm_UxvExE%Ls!?mYfl z;r#wvZl#ssQPz4=)9df6%R8C^A;6Bf%~SG40cAo5>11l%% zuF-n-se>GpkKD?Ov=@o67h~j<*>5Q`?v*qmsDo%RcJ}3`?`)0f3rh&#tS?o!u&Fbv zZa?5$VN>Bivm8aff!7YZL2o`pSDBcG&EPDIAWp06)paz99>gfjrML>rt+)yS58NJD z-$ZV-mTIs@&8WyWdWy5d_Y^(AVC~%qt#ISpUi^8x?!?H7rr>OByZFz&*9MHe+ZP7{ z%E6$)yDxElsQ@OJLDyJ5A87kjK%Mvn>cvZUk3>^Isth+y0}>i5;FKK#!4EVA<@8 z`Cy!gI*b$7@-b?l^#A9qf`$^mG?w;XO-~G?AxgPda>>6MWI!ShqXH7{+_(BN7ad9* z`QJ&0=xpw({;L+?|MuL(|2p`9)W{_XiM^By9i5%x20nZQJ?xb}Y77LOvyNQkb4^9K zdDym6c-@j6Q>l&niB-zrc_M|Vfp!7;17BJjFkYZQZ{CI77vebvp0cM2+o(Ad#}pM6 zYqfZ>UepYb?Lb^@q22?}t^dIF?7YOSixVqcz!IG;Cw;MvLZ{YZ#ScK3a#8BJv4G*- z!o6*4YsuRJxG5o?bmAAVstHxN)bbfTeBv$B?^*RhSDNag5GQ;4!KDBKVr#hm>5UR< zPLenzpjWg+6r@4C``G|E8tU>$RWV$>+1AJEFRQY!c`xy!K-lywnwKP9A4Z0weZr8c z!B_2jGGAQKOSHkQjr9AVhKq@d`@}b+UbQflg2@^Svd~5ouRmLwC^@jv+OeUr8rrFR zT3v6dKBq|cGcSZ>5YxZ_dIf2 zD!^k105vy{nKZSGP|MMp)z;I402%#1&z;fV*cos{SUdo=1J`fZ-Ktkr&+cK5$Tx6% zdwb_?wPv5=JjvxKSs*`gD}B>q0^SXX+>8fldvJ#J5-&YBzvw-#(A8MQG|Wviu0jc+|&x zC1*9Vj^7w|W>&dhjYW76mxS-s?bDC@?Y&w0MZeU4flnZ$lE=|8fhK4f3qKOyF7(2G zy^jx=l0KLib3~_Bd1N^r9s8rURVk0%9D9CsWk1pim1Kq0^bP*#hHO|Z|M)SF$;8qq z^5F}1qu(l4FI5yS%qG2whMrn;L3A-^S#vFd`Bdak$(M%sm~4$_N^$2S#<71x!vy?z z3%B|3Omp;AvgNU!_I}c> z57>U5QaeG*_)Vp8$OqA>w16K}ICUeP$@;uT@X@Sw*I)~wKHU8YxH9!{u5()BROptY zqyjx|4xujcqs{J5P$E$@@alX9ke9mcQ|b4jfu_iqrE(0Z=ypb9bx3icnpcQRU6yGu zs?2YG@%y;)5iGirDD%sjYTAD{N@DMyWN zxGRM+KQ!cg^vh@ZPtE#3g~o@MV9T`8s8P(!w16 zg+(^BN45IO%e;H9s7ORh?P9*oWCOj9u5Qanxx0?l=k-3+HyyxBrb2ODp0}}T={DA3 z-5`=g3Tdac&>q|Oqf%pM*?Lbr`gOL@aEPyn_1X^;>MwZ7V(h$uAMe^O?+T4|l}pOH zRhGUlM9QM-n7U8e#1dPH#WPZ^x9iR@gFKC)2{1U0t2fPqhTqr!=pOmP%4y4eLiJ!$ z@vO@4i3mo!*$7#U{#mn;2O-#W_I~~J8*K=cr-5vf@f94x3Fg5x<)6R&{+(B4ML2T2 zqFQ}mvZ`9{gsXwJ6WWCS7JpF1&;O&jFOO;>`_>JhVz(%cjfxQahiEHm1QC=ePKbya z6%l2Mim1pClzB)3O$#Cdf+8YfL?#sifeM-BpKpJApS^cQDK${5Uq#gsemeqM+MvtveTQ z=bBgJ%Y0s4UhCHT>o_48QkyEZC~iNFvMN};d&F%suU|rcYma}qX3^OCd_~1es7twf z1v@;CH6HF-b!66kErU^ZNt#U1-LqrWR?Ur*zYM2l5pG)FF#OB((s8SO%6xrdWL5^D zW~hk0_9S{&s@OPY72+T?+p^=l)Tw33`EyQpTI0cI=hv9}u3Tfdy4~vK&kTw$`Lo)~ zZyvf=V`OQ z{9e2DsTt&R_P=|)aw_gOpkZa|gp&iCB;wl9Y$2^eS>gM)MQ9ui`r~` zRH3e#pNGiOVDe>n=dJlrt_PZbN36)Nsw&%|{E0Ibt&$%ykk^O?J8S?0N46LFYwTI1?zt`|CsO6~aX6z;FHaO> zkzFzjU!J(`PK`CGdV%%g+>MzsM+!KxKoG@lnTa%6RdU~ zfFba-o!zgfw)dVxwNc|N8m1qKd3dRGvGC3qNz`Hcy>=CDBL<_&#FHzv5I-LlIq)(! z*QWsqj^WUn$Ue=C2qtgOr0yzO1`o;9UZJu`LxA_~utAE`oV=l~->h)fzfyw?uZ^XX zkFU4IJ-}oeVpbH*1z+REvM5AI=d&5S#u^+d9bsL%CMy=xyMD`_^DBmDUK!t%wx_ne z3wjc=uQD*|d50)DB_+DI*MalB^x5ZGq{_!xlSQF9YL5mcZfnO%n?>KYX{HR?3dA2> z+bDAd-40|>)Kw9<8#PcHwd&>T*B|1@bIuu=nU)=KuU~I#Z*L!HNFHDQWIKY$FJHY< zKz$n-Nh>O9_k%mB_6kKsSPTX?$gT){OC|Zr6fStv0qF^5`2#ZsSi~x&KMJQpZ@*1{ImW}T9A|826$j?#7-lOCtTp@Kh%|Hd_oXC z=Jy)3BNgDD&eRkAX0i6VCfgQ}N-hVq>s@~N?ApQ{e8>tU+xg65q&ihLiqf#vtAYH7 zL&Tv$J*z%O38i&T>0dSLCk34f``19xT*d4qZ)Yf*!y}zQ{ z4@P2qGF=f4_-^K_&Ub|VTR}+ISx77(L`ROqCnb$NM!zAzj$=S>?_hpV$=>zKi38{jMjQSe&iA(c_ z>km;D`=7Hx4QG~={Dzc`LMpM?97lphx;p0=V{?m;pHD?&Rts(}f5>QQ38mW8jwS9Y zpGz?$9I>%UbcP0NBCRgv$j6_)zmHU4dQwWQ<&oaEX4$7lOkkxUmvFpa2}X0A?7 zjZwZA4RaLR&w(==*Vj|r7wSC|ODcAj5jA|_`kcUmKT|KPsSd!{Eg#g;(XrAs?fw;s ztxQn28`0iqM*eYkQf@+`=ZIQX=h-wkvu_p|Xi@r1)J_0CQwt$+^G z-u02*BWJBiJbHRvF(bbpM)JM=+cD#JNT~5dfc7#Cz?o5sR98+YK0+>AJMEb;Fsfc`|kew zoI%gZPWv)V&_iv zJZnrbv~oOia+18_h{8qW5)HA)zbD^@!+5QjAP&C@o`3om{gQ>FgYB8SBV`g^Y!>+(Qj%zmWG#VKelGVSch^X$(aXL}OhGpI_>stt(O7-%1ph{}+lDsSi>V4q%4umTB} zlgAk>Qq{b-)3NNR;4rf*5>2{Z#&o4Gwnt)LkSL)Yn@>KygAD&xuP!9Y>*UivY>tdI zQ{s?r83O>by=vDt~7{Nvsw+VGrIz;cjv9H{vPMxN)7 zg*$b^@h187F3s$@t4P=lNk@$~{KMHv8(#ju?(x$lM_=<}RQ0BZx&N{)jq)BAdOmou z2b+wq_9{no<{jVKpRt7{R$JpPeT z|IZ))v4!}*_bmRCp8x;!CijZY?&Y{KJ_0J2RiMdWQZ2}({?R3*7DvEjLEQ#{QuV!cyB#=4rG>VeE9%y2J-+E+ zhtN-<$;|h|oo@A{8U-&Tp6JZ*Q&N$!i+9#X#dqp%K&fgNZHi%OK&XpI%WVO^zQsHUS<#lmGsM9KKYk7%l_@rS zJ8<>Wy>)k;)I=sa;0;Qr`2207Sy$dF9h!Nc=MGAu?EP1<`m#`@E4MOcwjf>DCvW?# zt*vq4(l}G`<8;RXWERlVC!ZNZ8Lfd9oJ4mKloIGO>@WP1){7w-z?N zWamooXB1ix4mH-miAGQU0d7HZY{`ght=V)Y?Cp>MgOr2mAeBE2s){`yX7!2iNtW-p zXn%J2BCwM@UA*QgR5+;bPM-Yre#e;0I#G(~NdXvTGtl5u4^sDa)Ia7hdzf}7%guBq zUsk*(p0gPk61l~sgl$>Ac)ZD{hUoQg3AKHr|CXH=j$LT+e_SNu|EU!IUuENFe0&m! z@T$Katf@dmSTmj5hDg=VL_9(jz2nz`LYMkC?%l{nvDpbiS%_VsJWurR6Y{X~7)&H| z_?>1>cFMxPk0WP{N{5Y?*Qn4pbqlL?2jZ- zPDcaSqqGMQI{TU`222ke&@c&j6KE80p?Bncec=ndCmMAsp;d@pRlY^PAox!+FmGiX z3Mg^!ZevKNM@m{SG*#3eU#^!m;-<`AMQJ=*v>ebWV>8@PH5L!bG@=S)NTo#7e#ttcd%o`%At-<7Yw0VATfDv1W-$oX;OWt#$8mdc~cuJ^_IcC&=GA@pp8U9;!| z>nxJTlUV#QS?7wZUT-wRIDJ-Rp8wTV4ckLTsnClwz4=vGdgk|lSvv)fqFH&6Gk28|qYqh>Q} z0yp`%zssvbJm9~leX<^8u6w2u69Cp!1@!k#esV{I53+yOtXgsaIK{i5=Ij10=g-=g10 z!>bSd{7MPN-b6jz6q6Nqvf;$hgp*Tylc5J3)wATHIH(sCL9xM+WH3)sUj=iLdilfN zqnp=*4|Fbq%Oqo;>WXCz$(_=uUm6!qG2RKz@!^Laa8V=aNeK^{ddMpR`=2Rlo{-$U zMZ2wR1}HJm8Yd(Lvev|65>w{FhK2Q<=9oC9EGDjx+gVJ^`IyS~7!1Q)_c_}GPM3-I zY<@~3%CcRN+9-Y4_}8iR04NLeDFR7x#)R(>CFSwaj*@Ny36_*iRaC*&MGUd`I@C4) zW^sj*P?=5v6vhXUmTYC-5*Zd{FL9eC#TpT05RTE5PRa5pXYWI8qIq9{C*5V?CsfBg zT&ZOJqW*D#0h0|te5zxEgiIrTNyqk>UGbGNM?uV18{;JCS0}PW!Al=phJI}PytUQL zEFRh~8k<7fPS-c|Vb#mbfVo~KFQ4p}SDEP3FXqWxqI*ip&U&!G*4BQ$WHc~Z0#8M< zm~5)YTkK*s3^6Ue(dT)R@B6%!C-bp3>yPQa-t+hp#TjE*(nlYv8Bw2%dxeCd-v z=b9}jF*RM-+q`1AJ+KZb(j(JAx#wX$jPptBz3~_tUJN+$lZY?_Q%bJ>{%_axDOY>9 zm3ohz0n0t>$^h3TZ6zKOM?75miFs1MkM+>G2KK@uY?vc{@5lZwlF9B5u{F5oT7Xix zo(?nS+{)Q?W-1Jz(vJFDu#15B83;5gZ>7zcT^Cw$Wc))N&GqZ%_*fmj()c(J??<1M zQAl6FPqOur~FS8+wqL;ayopNj{bol$qbwU7)gD` z(zfAjwLDpMPn8S<4i)94Trlq7hhvF=i-=8gNUdtC$A-n#F%t+MMW-)-XLP>UuVOomAd$Ks^c_^bV;Kh+|aD*<1TpcS2K>m zH$piDaWbC}bF!$|cmvN|0}L#1r0sz#g-6X{E^Bw0uuXO1bNmxA`Ml9|{_9r!E^RuW zGS!)sfkWaAxZpG}yt)|Lge-sk4x`e+XrAha+v9C?B=11mQeN45r*tX4;-H1-h&z_x zB2fmRW~z~##5&4$e~2)6Jeti8Pko8MbDYFSa(Yi=HwNT455KFSAWZ`B-xx9{@lz+RRu_FSa(o5wnKt+ zg!GD}Uh(~!>cm~T^ztC+Nh9}zdjln=%@1_5q=a}?5~9^GG>phBbR;uLp$PBDUX*p_ zl|CgR#NPL`8pS?6x|!s|W3a)y3h}i-4ey1_B@Y2Qofqhk)*>XTk^N4Y zGI|>ALf)1~Ax)PR0wqEg&3C~|N)`EABR16q9dQ#hSlT9`pG8-HKo1UL@?j_wK&^)Y z>LQw&xz|9)I8;+Z!#L6hfJdd>_;9q$#;)9t3WM=XCrjb## z#rfGSaFqyNpSzt1hg=}yHNjV_sEiRI-SGzf9*ZrQz@7!um(!2UHX6rehqejBWv8#Q zvq+w>9x#|48a*YGo$3SxXOQ|{?Yy{MJ>`KL(vAl&Xz8)8F19;?_#-^LtEW@Vh<2-b zGK$@pH>hSTgF6dw=zX^i`}g_UHXHB01IDNu9$990bIkT2cFKI#ymIQs8yRIQmA)&P z9DHA9-UmU^Z~S?9Dj}o)}YAt1Dxs23D*3;cb$k9=ocFtOW<*l7#j@DM5FmD%u6~Ank!;D(%wRt{%oJm(i-UdMCT?TgiMziq;rGz(Zn7qk&t@z%dX|plnR1dk2y=C`i&L)j zUKXR&BOs;4&w3p+jLxev)K0!V1GKVQ<#z-ZM_HigZ$u{=`{OIp&&UjhxiL*9ygm8# zANW7;_y_JqbGA5x=AycMN=GsU-7+hBdpj3jueryg8iiW7UH*=M1j*5v%~!7p4I1k$ zddE|OvnSL7tYQV7ti8^%zh;S4!cR@`D{2Z>#T4bSO>f`&+Ns&0uV#O1EXI$L1H5B+8sp07fJ{KD$He=vdyPkgAodR;zkZ1a zKKl;ozGP%!Hh~P(FmWb|5SR!P5}9U^_}L;odXb4br*dMey(Y&-aDQMHru{R)+O)RUw_ zXhhIXc?fd4XUrGzf1qWG5#`IQI_WB1qq)in38-p2fdLPFR-j?$zuA zoCdbmSxjWtSAgLXy0qz`(CZVClSa^VB`j+PqQ`T5DawQ;IuVm&s`6o97E0gnDs{2h zQd=Qv<&?xIw981by&kAhx<2h%muoQ)bb;KCvik-^SHS79sL{X$@BD`6q9&Fw9t2s< zTrG2dT0;m;27VJ~v#TUuZqLXP8sO_DvndO=4w*ALfvaiz7680LCc$~yvcuM`YyBM= zOzq^5@QV|&(4LP+f>*ZnNNclOFQx>UD$1KQQC#o4U>9fcn_?C{ ziJf-~TKXo*qro~%>vYUuU3txi_&dK}Ag|`fLdv1~M1JgTfJdq0?NXtUAMrdwDhru7 z3bb6JrMw>=uSckhcI8&nHM*h1b8XgP9wA}ON*=OU-uh?2Rt>SFKMw-AbmtU}gk=v~ zRe4sL;Apg0`JCSf@vvTVC%n|nslR5$!%1*qGMW~#pC6}og>?Q3T~KzJi7u;{7Wr#R zw>pFG`3f-5D+?2hzSQjx4uXk>>x4zsUB185N%}Z+kTsGVcT(5}r{69S$&}JkXb3B->5$wgwwp{G zqzzBAPZ>_ZEz5n0Si%P@3bavJ!>^s9r(NweF0ycBH>ZRmkShnrK*=g)xrZUwB%ZKf zDS~E+IoWi@M?;iYonPh1GQ6zrrw5~^Yi#R9 z+&YA{A-mGDzb=bbI*;Yj0)vGG(DRXzdxtJ2kwC6tk7_3_DNv@&hXIfHoA{t{jA>W@ zhFp8X3+a$;NIPtJLr) zF2U;f{7I2~wn@og^8ylw;_(#nBgDb+N*4v@cO0`U`C18qB@p4fU`8``V@q?7p&f9V zoAP`{ceo2+VK5{x6)s3DfCeO?WMV&VtR#QUA}i=l?>?KDBE~<8`{6V=SK+Re39%G3MVE;^C?l$V(wm=kmTWQHyFdVz(nJ zZQkpK2!=87nVfQXso)e4EAqd{NjRF2p@UEeT+go^o=>syV()*vmeEr<+Z==|7WeEI zJ1bXzilP6_7O3q!S3a;#xV#fsi=0d3Cgprb_?FJIcK3DDFq7t!p`41`Vq{qk zVkD%WOYn>F4L^gD(lSlqvf#FyEMNIjwCC12oa{Re?}(aK$px2tk4!O)ndtE!OHy&-P6dUGh8D|Fj1k zV1wm1?kV9Pnt*P%ShRvUm9fM>e8D_1t_0qE_AtHCa#%dSs@s6~Tt^2wwF++MzL*Ga z-{$-zTTMMlHr5>E#Bzb^E;KWaw#Sz$aJQfpLab({JW`iFTjrU5ZG9T6veQ*Ph-Z;J zy~(9F$q88HG=r$@=5#B%|S*esh)im$3Ku5B|NRd;9l- ze|=PVhg2*Ajd!S2R|*NLdz5d03x%2QFCcHmLCEcF6+MPVCH0s*oqoG5lH?f#N>d(~ zTcUs6U~a7W{cH|4be-jInm6@Cgua~`?3BC}`%s<8{GTRX3OYlu>_48AzkF`#KxnEm zy#ee7mbw@ue^!g>nMgU2wP%5yUGS5tj3!a@RoLKoN0MDl=ks0|;+$A0tU0j+aH4C= zAK+P)p;mI8Qusv-_U#U_hZQ*M+#N#oyIf|M>hREK`z{}I&XbzC}F01j9UF+`u#MB7}<%!=zqcFgm{Bt%z*w z*G8|1`^C%~w$B;jS()&Y?a(sbOe zgh_!(pT|ATn1CC8DY_yqV@x(dSfUaZH^r-@NEbi%e{khlT$RagV5=;PH}fw5XwD*n zDR+6QopNDAR*3CEdQ!GEof8Oz)Z$rY?IS$vLGH%J-{v|3}EO;~!)pwSw=mog*uot*a5}i5>i* z%Ky{075=>|D#2&Or`X6$4^JP86SM?wyKD#8y2rmD+Wy~rpW4=8`7 z5{+ZV^~e6elWdAJIk21Yd2t+E(~j`)0NtHy-+W!`C^Vt=^uHU>#HmR-F?g{_%qEgw zp+5Mso-@WWOgOR$@k4@4HD_o0ADO*QS9Jz4c{pJnSh`xq=2G{<=m;5i$XJ1INBjGzA20M$G+y?!n*DD zz=&0jCC}Bf~2g8FZ!1KK&6z zpnc6DwrMKMo~K*|?THb8pN_9Kkxe+z+4PSeP`y_0lT(81;7oT~P#LM4n>5kr#f~WA z(tOJi*(c8eh8WA{$hgC6y6DG7%pmrL^}wT~x26kORC-0P5!oi)ag>LyfC&>fQL!6P zV{XN(7#$PeUSv3jU9YuT%9@(a-eHQ6hI|QnPO{dO0KnUWr}(a>3$MHJUI7yhaL|%) z+>@&IpS&TT{eX<^ElOjHSjcN!z`;pY7lkAfJc^*?f}Bs&)^Pa4IZfE&$Z_w*Ma5!$ z;wx{Eu{AEl&s1@(_B*YyLrH;!64og?(bDLhZBN@6>V6j4E5FDk*o}pl8P*u^CC@`s zVX_llioO^Z(a0J~WG9W-9BL+$jj^<&@{C9Q2Q7x_Xe*p(5UHxTCzgEEY5H#;+ zeF4PXj;O5L=1Il&VuHXpn?=rG%0UY_h$BJlm+_Qm+07|UQbC%Tnw*CnX*(30DN_VJ zg6(99{%rocpn0-U#g?!m2`M+dk$qRm4}bM+>PygY^}XQ8iI-ei;Hty_un0gZ`iIu% zD7EKuBAFyou-PP3_ii5QxH)(i!ysaoL#@Bekhz$&- z)tOs5$8ctH$6OoMrY^1hFvij^;g_Itz`H(y7Z-2X`kcODE!1SIh|jnuQkJ_-ND838 z#tnEb{!km?m;+q?>lB@PUzpOEh8b!>Tnr%F{Txejc|{!jevogN!lh`rUiXA+wL-_V zcPy%^zC0csv-QouV&^E%6u`khD@ZOuukKIM>ztoGb1~jk1C-} z%#=*YqMh{a7OZ*$tD~j~uTrj-D|-`qh{@$A6*nw{s&0PcW@&TCwi&|R1egdf+LhqB zjAyli_^Mw;;&HT`WKT0jBqK7P%=(>^J*ahhp*Vc3ew_WA(MpbnSZ`^V+;=eETpZ(< zOe0T2^p1Jx=s6`QZ5%O$BANKZ_}7LpJ%lCdcW0%m_Mw`XH@0NubbK+ltW#`#NBD!> z^@OHBm%&jc4=j)g*0>TW@WKoZVj~EVrV+}CeM(f9F$nPZDB>n4O8Y*5N7lMfHM&yV zxS6p*5%lZk(sXAth;xz@3qxj{-J0$=8Dw0xZ*@bDT@4>YrXbZqO1K&cKz5jj=Ckgs~4KZXu^@N|7HY-5k_#a*ZAx_BiQ&4BVaV= zBcPAO2V5M93R${w-m<7gEQ^o-sg^})#-s+))JNpiw=R6eW3?;xBj5hxIECXwcm>3i zcu;Z>u_dC4D2L>8;vx#ua}+a^F32Fbj}B_E;qm3hCeQ(%`Eb()I;^ z%Pmxi^E&hmHI5Y({^6SYoh3qShsU}`>a&;B&DdE5L>hVknQ|I~V9Xx?JVZ79&?lC) z$6H~#wvE}jFTJ8ZFIL%3`#En_Rtx$OY5EnrAjY`|D5mznnV|f4Lc2*NUgj(Q+&wz& z&ty5>-$ayrh*{6t+i9>-@iY>E@hqum?W{uCTHumV7NE-6+e)Vic#Fkv;43*+sk z%)iG?N|o>d(*kJ?g&ZWr9H9yc?>tg{pv2KPts9IEW(!tMZSln;&(gB|F@fCDNeJdu zO|RIG4_G`WqolU->9s6H9w3;H z?OS_q?!YwXQ;E5#-hq62PKzwaZ=$7&9Rt~k@!1~VqD%2ukh@;lZYb260z^lJM-A*u-CueovK@(-=1g`?8;pz z;U@>iHKiIS6*x$Syz7Dht-mts^NZWk@yKSM)_rRuZH;(w4!9>2qC@Dw+zZ}RA+X!d zyD@T;B~lyiUT1FUxojun%(#j4PVo{Q9Nq#IUNvtL$-GRjaP}OX*V9MvNDiqjy))l} zocgZO3QKw=s7RIK=nivgZQgY&X@R;!g>YbP6Z|cTR0>)fWm;P##BDoi;-8q2lfj&` z`ZGH$z=?V;x>9fM-SLNfHD}jgn&% zB#R&j2n{qjHyIi_PT}v~JO4HFX03T|tv732T6GG$>u^q;^L_i?AA8w*I=Vl1baMp&ztl7{T{n#E36&0X z%TrXht&(1ffajlnyNi+Q-vn(ho<7B#cst?E$9?R^E0Nbm5}qeSVSu29>YIQc!Gzhv z#h#7b<-PO%wBJtZ*52uHdvHZbdphNLqIC45VdS{{`a$cBb)ktI-{>kmN1TimE)^q4k_mwp+=xYZ=Xz%c({o&ZoHz*dn6`&y)*%ZVCxK-4)llJOKU8 z-^F3{z>DQOu5@Bd>0z(uFk(k_C(*>xdRpB~)(fVJu=d9t?YUT5CfDf=&nAPx2q?9W~P>4nRgS9(`uVz@JV(zR*Wr z8!H)N&8Wwp`j`ezWw4r7axH93IVGa2{c&b+@Pc_P2Zx>o!XB0olUQ}*cJd-V^m=|DC z$iQYJ-W)ogXQG%lHkcD|x7b3;ZcO|z z`k~>+&+}dNu)aixCyU=uhd*6?CW(hXe+1Bk0F1)n?CLK9wY>sp|7kYJ0w>kMW_9d| zJb9th2`c;M<|;1Dq4WZxs}Qx|V3l+P<*<6SiW~a(n_T5}fI{H@nk?|h!C|&r0u`Hr zzy{+ZygWUD+cZfjsi|kJ+?(lB`WgcER(v+Zz}^_Yruc9H4t?qT=~o?30=9#nb@Pjh z<191aMu=KK>h;*e2rpHxgE>iS9@HZbkhhedM8&+)M!8erYU3aU2<2X8Jm zRL##EOmu9=MY83Q7Es3uqT~)H|?@n;D@OVCuS+n*vPPty|E(_RVx@iZ>w;`CN zglRW3h=GBnWlT|#Noeo zC+`c2i&@YHmstXKl%&Iu?r?P-g7QP-NRwXt_g)#?xFFOP(v<%x`~LpYSFd*6r4f}= z_6`$tz@O4xsk5$6TjG4N5&VOnAFTNXP?c6URG*w3Mj(o&_u{m~2oONj70_f2!JD;m zCWf(@X=&P|v5r?Nx1Sn+^@eh=WZyJ@sfcZMx>)6ad;IHZKo+ktFX6x9#~i?di|+qr zv^0<7tw^^^@nI1Y=8aE{6q^Ve#HM3Yi>>wb@E-^Aw*>V52yy{=`WXVJ zryUNr=a17zkCr(^?G-!*UL_?(oY#4GZr7@!q9VVbpaqRpIlYr%BVC*!X$P+I$%x*J zp_ynMh70BCgK!o2gX*E3n55*Ww(9rNq0=(VRiAfBxa0mKANvyhIPNz%pMOJ{8ImTg zl#FD!`3pV!u-L9F5tm#f-HgIZ(gNYpP%WS3^Nd^w*UsX7ys9rFg@mFvCq14clNO`k z$OmW%tv;`@ck-BxU5f7*YG}`YDC-K))Lx_Ux`Q6#EQz-tijlEfQNe2`%=diGpz;rr z&Zld$OCL8=n1L?644PwMiju;|l)wNr4)(K@z^U0g`L+H^KxV1Cxg{eVl6!-G-Cy_$ z=lD*juzcpPJv=8e$|A}juE$Vju$jz^{SdxevTXjmFF?5=Ao?o$i?7_3K#frSiTz`M z%a9Dv$v1>5X1d-~O^t{WrJ|Y5bd7&h^*}ddW;aQe|YgfC1%UY;B1 zN5P=uzS!X7!Gy;S4jpMS=@P>(2H>`SotPNb-mXcfN`V5%j@g$)l11tbZze!?rhe!3 zkP3I$PaN$O)vjc=94a7k@UnjqPi*CZvQ!*aMKG|Q{nJ%|;J9s~QP`68!27kmI{i;a zgvi@_;)Zl3#x2Pymj*9nOY&%HTFmJfJdou#%F}QEVt~;KOZvO};6f*#h9>q{bYRq{ z3bdAPaCw!vn)qV%szt7lqM!UPiLP`iFP>`#+nKQ*$~>FNt! zimc_b6YREMJ(3Z7k!(v|xHnN#c|XAN{FpRVUQC}B;6=Nd-s7f> ztW$a9_UH5F%;=g7E{3nIIrkQtgK^d!6U*_ZERg%UNv@;Kl)KKfL9D_?P(5K^p!bl7 z-$-b<_9DC#+~o%-3hS`zc%17*ZJV`L40xLU=+=0rmS*v2R!J|P2@MxFG27cP029(P z@v-#+`jn0Ius0Boze}rQ=XVIIyp0nmVIPEm>bgo2UQ*1nZlf! zgfA$UEu{u(+J1+6&_ff%@MjB1HY@{Yf}mq!<{A`_mU-L0qk~q{*ox?sA-5=hsog$Z z$SVf>97gP09;IKl9(+A{emjusfr^L;s=Qh4NkWO=^13JIxFRnPeJbO1+G2;S7h9*A zpWNb7s6b2?yfk<3IrinGLmu^I6`84OTyXx%RKf}kYlQlJ_P0hbSVBZhSgrotUclEc zOn$-hTF0;Jf3&XincnV^=@6Vekj!1=IAk%?S?I}-O(M(js4 z4bcBuBJ?PsM7vg-bDeHrioH5vOW*E@SQ<8Xe8p_)-97P_MGp6u-Vo(#0Vyemt;9F< z08%cmPb52rfnmQQEy%g@pY)U4D3!GB+8^f?<35yC=@G&RU6EP)V%qeZ^2S}mn7cHM za&uZ%+{C)clt4R(H=YbWH&Nw~&3%!!9!=l|)TZBb25I1B*tz!avmipggxuATFEX8% zGQB3S<=z zm-Welfx$&zDEWYbYvyNd#h0e1>z^b1n5ywZ20C&lOir5 zLYYJcqyHi}EwryU<=3Gii;&w3`m4rCO@52E%e{F2md|F$)J?Ha1qS_81jBpo_A7OP z?v=Up2+K2vK<%eZ@tj*gm^ZccLGWSo z$B~N?wl7j?#eN1RCgj}@NhE4;u>%4Kmm*O(aI`{<$c7Mi5M)$ucS{&Cg;+d3OifL# zwr-kfc?rfG$6ya>>u)@Y41JDhfo)e9$NEuJH?p+kYe!tQC8O#@*%|$wIXNk593*Ch z%Rm`=jw9$rC_#S~&CIBC+(G${4MWkK)pO0OC>Uj^pR3lB3bV0^=X0=*skP3?4&0zT zRrTiW!IJniiDI8dMG%1jl?wdwWxsGB`z5Trf)D~kmjFf?hpO)`Y^ukPIy zmgTr#e7d0P=TA+0d(nCunSC54%B}J6*uywC#FlITSIHn;YVMQ1YVcH3$m>D`GwpzV z>l>f0n_u{P&9BW1A&ukb8Ky(>gA}IS>V|YA@0up(%)MwUg^~p@l-)q9al(Nh3LW|o zXrv5oxNIs>33;ZiI=zVUXNvKrZMD7HLHBDC(lKNJiB5uqNxw`#1~f2Z+NCn_mE&(+ za|Z$~rQ>1gGXz$`Dt?I@rk7?g$@^HtJ#N8IoU1y14trWTQ&FIA<2W77K-f_hk2-NC z6vUig_^vJ-8y?XzVGe5+s<%Nsp)UoO^#aazt}644N%d|x_{~jm7D8!qv=F8uIN=L9W)Zxnc4VnaH^e?U9rCRMsja&@AyPizvDl^od5l{ zk-M3Ve=a9YShMZjzVo4G!NCp28bv5nLT#w|20X%IX+owzh4Auvz=VhE)~a_$ZQDOM zV}1W#u2Ujq&d`_md7#3n6E(=M4JChJAEH+VLk2)Fqh&k$$LDhEXWfsSJKxE)d$sYi z-ViL9*dL-sVnS#c?7-dTx7{W7HR#Z@$fkieTQja@bGj7*1mf2iuqIE8zYqGD7pEZ4Vm= zU{W2-(@*f+UmG>zMNfq?=RCG!8A|GopZVu2G#bEJI~6 zFj;}m>p3Ous6HAnsW3GI(zgFu10k2HLN4=p%zv%-{Oq03Odtd}e(-CJpZll(H$L1z z8`t*$vy+9%I+3^64VTI@z@kg|`?E0<;6#KvSV=|Ah;VusMiXXE9o_(&irajOG5#wb z6|3a`wRXx2fqZX{ZVH*`Qpec#?-g|se*CC>6Aph4A4r`9{yr%?nG?vrKa>uGy!zYC z<9`>BCyuH8{YY{%pnWvHnJYZN--^yk^9SEeqS;~alb19`v`Jkhx1i+RLH)l6^dWo# zSc1*tC&p)^ne;VzYxiE*6s^Y`J5f`_yKyS5u^D-t-;()ULb(=b%2n+fCFbYmOTMOdtx&UG}dLg#gzk zTV0s*HkqGx5$K~GcQFgTggxIenNm-xOs#{;I)YH(vs@MM_X1E@;Koe-rX-BOCCDu* z_%@G9G!^0RRCBf0mFmUjY+MZ?sv=I0e>I)v`m>CfLYMgL?w~%EoJo)El=-^9?-Mf? z`8iUKM?sRIVrUOMX?=yecsF?XpQNBFBV=u#UvC^ceZL55`@B+$V%&cMnYDY+(wgKq z;{qM1yQt6QyfP8{!^V1RU}FAawbxaoHUXtrc?x(XUjV~YAt7CEZ#SX%CQZoz{0(a; z@Y}`h6^W*d6s(mR2EzDVu_bxp-pF>}hh6E@_5N{E8)!dx(T=!|WZF zZKmDP-bj)5Z-bYv9@K$Xe)|rB662mwTQU)~wd6Q=B7rW$9(H|(bcdW(Dg1n!^BeK` zt);n3Z99+f%g4@soy@TA*S&0P8-~z7U$blmQBW9S;-c{aR zI3=GPfU6pS`gRkUs?sQ0ZdP&rI?SA|heYfO9-ECwK^|RFsXoMcDq_aFlt>n<_qx#F zL?puMDJ?GeMK<73Ixc=qu7>AEkgQL!>e&jGuaxmALD?IYyxr83TOB8mi@R%~Vw3y! z%~E`?hO!HHljRgnf#_Fe{iUtkvv}Ow$ZZhrF1+<=YVp1BkW%CsfzhK5;+@q^eax(> zd~CrYigVJ%j+zR24#_@?h@b^6Ln2n1Ix7cl0pZb~eL^7_a1N$+k+X1m4HV!xm0Gk9 z4sC;aSk|3Ob|o%i6GrTQ)r~0bA69{n4Y$6Nr*at4TGE%1XQuy)M5<_&8TZ*h085_N zPvzBV)tU{;DM!0>t`D-nT$u0NI)wQM#zk9+?RF4iqMiVpVl3Aq^|Haoqr6WrSH9uR zB9KUvY$WB~2~TQ0n$z}Yj_);eNWS$9->V0dD2n`j2p7(kRC^{t&)WVY z^%tL+{rX!x7gxSw;$(#j6&f(Ra;BhB{+PBl0<_53V%zgwE%i*?A?9=4`^d`70ut?PQToXU;@MiRDZ&FDPR zi>q&`=Vuc9IkZg^O0+lLM1uI)y!x34U<*Et%>yU<*Ix>NSn0Epd&HiOxK!HA{g@p# zfs8}LM|_j@nuF+>`D>qvZHlj$T}J`n=!>4m9L8o~)j?MV>T>SjP7`nTx$RSqt{148 zR?|OMesMX5J&Zv#yEtW!17pS5wUMKCuGgz@rFYoweWiJBE?Gs~kXsuSeQ@G=iwu>d z|J`k95lVJ}|Dv4*Qd!JW@k5bwmyDAfBx+E_uL`j z@$$k_6JaMt`8KDMQ7v6$-6h32$tUlu;!EWvdyNpx5ZfhjAr)%9JQL8wL2Z?Ro$npl zUYw7AThjO@;o~$n&ZmXCByoxpg-#cgMNpxnjxECtC;=BpR=Q7A%7(4(R5cKaNu*Uq zcoRSB=swOE>hzdbzn@<4@1gQf*?BoGfGxqKn!h)L>9PcJFK}1qMV{V88R+B@SWEAg zN5;>=IIOZ2*H5DdiC7%Gk+Q3_>`NdomjA7mu+d~{TWxLUi_U6+c~UJp2G`RxaxE`2 zUJiTq8O{CbB+rg5r^LyjQzJ*PuU2lzH|uopV1RG_@DZ$f@$XCmCIrjHgfsu79PLHX z1sB_+ETn$aR7862cE9$y`CsymBHRb^H@#M$_)p`1nZS+DDeU(KsrX_1|*N2i}YUFxW2>r;Vm+JBR_Kk-xzqFpDBT>?;+Rn3>Fu`%hb zv{bJeQA#oeyXY54?6bzerKmd0stkbgCNx=TB{{oB3Vfc3yj>`GJv)lP@Dk--bU=+r z$ZNQfqXhZK_q*a#0Q?xtHx-&W* zwswjjTE9zGbt9%`f-~;274wPYHO2&;TJJ+NrR;YU0dTMFtANmsv+r}ok1yAzn@WZl zWapx76#O%fs|+IFEtI`x(~l?STKgqHKrq6ckNUSgy^3dR(89cF8M?YkY?of(>0 zK=)uNxo#fbcD*0_h1?=ap=ODPN*|Jz^C|Bko2lv6?wo4LWgiqKRKlfMMz#Akg^r40 zmSa}}Z(q0jPvY$M#DbYKQXEN>*9hq(^9ZW+>Y-0@X-geVcVgr8=rWoJm3du@ocIGL zV9?Mf*M8d}#_tx5|3uNN z@QI>)fR!gL4y0ZU7fBKE>35w)y-9lK-D?mNwJbbPxFkRnf93g4-?iS!N(cAz9E$m<>H=0&ZK3j(qtg7}2Zu&t6S8LOmE& zszD!DiMsuhDn}Hzo%UVfLypS`Mtdlc^-^i?9PNJWBst3=Gg&@BIf=>m3XWUaL&N#^ z<<>|tN>z1qK6%5zV?ASn2$kOLIQN8pGsfHd^=tQ4x&%-71XhFF?O0=pBG=yYf5oL~ z=twy*YZ--fuIE!%vOF31W+Qh2;oWO7Zh8d*Y(DE68wNA2o5Tkpe@y#7+t+sh>eTx< zdcMuR?fFMiz^o4rvDa9NK{1mrZ_&{}CO)hv8OHE2txSBf_*+H}{CBYHmIi(DPxKK^ zOSqaRkNgYG|LFYi0_K;JL~)`22@x4^FVY&#g?|Foe;WV)My&re`2U~7-kGmY2>+!T znDwDZol+1s?zH4PSA>Z-2T4x1`pR|w z6$6x@a%b8xzdHZHka3rf!&}t zlFrjgv|IP9jGCMu-gw%CD|6ami9(-eGo8W=o*-_`GuiIT9Y%s$4Y&uey(%U7n~!on zS+d~}iM2AkvQtW5VHwFz!+db+uZ<$=&rh=wSH2BE0B(Po=KZNf!yX){z3>YD_mV|C z1G-x`0>vr~BH6&MD!n%IA*sq z@7%7EMyJ6|vNn&421O`4aFYQdkf-2D0dtN>8Gf?yC0*Cn$N7P6#!2chf&2PRc+LvO7>&1KikbP z>d|`)u|F%@+_?0rsB^D1pR45UQTv#~JwsJ!kMT~huFb1GzKB?lX*?^Pzw>8V&>kP_Q%0W7m8%= z6Fin<5LU3VZsqqnKU4Pu7n{BXEs*`@P1zs`nR$|Bqn?#FC{nDurX8?W)= zS`DgQvT-DRtC4x`j96X8{+FaP`#&U|p#CVmbakH$SH?8uT)*@+)d{5NFtLoe_EIF1 z^XA4SXebAL@Yg)6OMHg?Rky0p4p_-Yk8*W}G9-e`v`sRl&p39j4RLv6_<(W~1R&&Q zjII|q%)4!K3`?OzZc`Fl3mSKI) zFQT$P{DFABNR%kSpu&J{&H!Zt--e%-s$4sHs21;p-PfNRsE=~C>k51t7rgHAE1+&2 z%$fpeMaY^4noH~t^<%nYQl>GJTz5v^C#r>`Kyrs0kbT_!HvjQ`7HixuYH!ydfc#N5 z@oV1s!nY{eI#a=>R}ul!b0HUY@6lSM^rfuho>D+y09M=L1v3{=@6DI1n7+`=xwyns z73;oc>VL4i?V~Z75C2=l8NPP6F!EM7`J#aJ*hd3LVqo`puFKKF#vGa;{TgkGPt0#jzs=)Kf+0rlia=Ntz=uxgVSI7a(H zrRWRN`zqqz4R>P3;fT}`miel3;GdJitbI#^-r0E7VJN>dz>ajgR56!I^_VR=21r_6 zGaMA0|JJFsfZzDH7XUQ^pDs94VZ>XI_hC81hZNFM zbONJVb5~o_KJyQb3)9K=CP3UGwKW6QWDTt~^Rg-UUeLsK`t-AsQzf!ELfm`GmmBbN zOCVf2k`6$ryYCCr`*9TIi9;3kCDYvG54GHSKJ##u-n*Gg``2DKbyk2{g}JwH;py$B zq-O`7<5&VgK2lF-u=eVs*{gcZi3>MpM|$6xHr+_Uu6b>a=@11;6FjkezTTJ}KhZw_ zhz+KoQfGc-=i)<9+{*9McC-N3@9GHR9{LA$e?OyRx2Nys^DOd{!$o>|vBWKrSRi;m4m~N50&x3Y;fvh zb}BwWxq}33?#LTaNB*A>N2N*Ajp(D1z1izHM~~=hd=S0D1}rO=Hnx@l<-ymFYQi-9 zc|rYoY6fMFG^6k^mulwg{Jq8Gl*<6!J3m# zDaQT+sJ?-hT5OCrV?3HW2>dLabyxh+#=%5S4U&XolnPQmnL&2?r>EKpZd2O)`0>bj zaWol}KLljg-Ga%j6^of$sR6y+1AoiGbDoqBqgo)q z$d=7{hBv&vWn{Ciy}V*}=m%!3u7i-JzB`0oJoKRMatd4yhA<>Q`}0k8A*sk3K^9vp zJfIT|2v&MF*%+ueOBCpQ1P;sY7^nvIJ8JJwhZPi(qhVK+n`nUS8=|#o;v8* zMb6>TE!35iit6G=G{Dr*n~GwuwH>VKm7Cj@ahO>KWK)Lz($Byv-YB3`rBBf_SRpOT*G$i$}T5lHuA?-e=3`l34eN|0Xz*M_(&dU z0_grvN1u3)iNnr=h4XSARuN55R`9rG-vH}m-ytiB9kg3bgszXa!y#c5#+AFN)t|mi z$~^z)E=uIf{}h*u%RxDc4Ui+$Cj8yTE}izG7V4}kw<~_tn*kGH<6GoJl15N}fq?Mm z;a=^n_&-yl{%;_@&KK9b)c3={G8P1F#uw^XK|r^R-$=Dh zfy#PHk@xhOP6dDO5)gRoy~+!GT6wS@W$0 z%Z(|b{6zlyPuFx~)P#_rXtdaBdro&MW zIF)|F-vvI!Oi(JK_Et?chp~}P;IRm_9bu*|X6r{8HA1zfK{jyT`A4eash)RIMkgRs zHH+yw&8!Dx__$)hoq+o5SMR5+?*-&8D=I2p^1r{A5x8FSr`B6S^>FT#GHJ7QX}Fkg ze|;hbRM(s_l`O%;{fgggLMvNH2rU3K+xB~+2XV=03JVL%Kso3(Fe|6l@B9oy6-hoL z+sk9eKVhKwpR)(Q-d1+tmA#~ZsWt}aE2&&7%{yzGj7xNC-Xoa$d85k+g18l4ThMWg zs4qYd6cwbg0T(4DZ}T)2BuPL3BZi+b5+kiI5YHY8D+8uC=D0aepUz@bbBx%UdlQRR zK%ad4)TyeeWS@J{EQ`|xRW||Oqhwf^zp%@xqz+jpXtW79))z4%Wh7Mu%!AGZU~`J@ z^CMQz|9%I5mI7;JdF%zGI-n4ri^x4^H);1P1&d)y0zp#_0Md;mjv}%(MGI|xb6y7k zz$qL&do1kcEl=-}!A!^V3e{QX3butDJojK+3DC1XWx`b)RH>@*Q29weT0l1F!2NAf z(kGo{>G!e^X(Cy4C_3ifD5ypP)4|4J^(Ce4gJSm0A^k;Ro)dP2-Q{=0G*{}}c&8I} z`s>HnA3j{tWs7PBwR2Z=X1+-5x1fZpbp65@&<_;YCpR)f&c-qTR`}Q}bnw-&&c$gc zbaTpbBr;ccaxXvQLiBqswdTL@hyOY5bM`^*rb9NYnu(b?TRoE>zSU4zUMee2H#VIt z+5$WCBbcT8ZfosM0QR}OYQT=o32|Cinfzv>#l`8A4cdwe1bdfT8z0vr-3*0oF7=iD zKuhWo8B~d=iwG!x75DF{q-|v@#z2hQ5CyR?N^JpG;XOlot9rk$S5f+|GQf)h(#tJl z31n!P#9ct`#zAL?1|xmHsg(S{bXq7?40?FH(s`5y@WWM%xKH{o3M(n`SynnX4;Ncr zb{dw{A%_;mdoutet&wAnV=331B=J?r`?P8S0ktz; zW9&Sv#`8RrCD}Bh>GnQanWV8F;!i~9{|Wmx;QlDT0HA5QRrd^-n+C@UT>I=l4-cuO zxu9T9r(CY%98>c{a^LoWqr#Qno5|=5=|eY}{G0Q{1;T6vwt!6S3mzJ%u4Os^&r6Ac zmyk={89ee9khf*v-YZc4UWhcmDMDE-sbdXeVAD*Nwk~zUs-9KyIZ;zn!=vCX1e!A( zYG6Wa@K8S2>Sj+wpd%C@9dtl7WqEFcs;aU;!YVim*;TM!G?j>+l}8`O*`?IdTx>se zbLYD3O5(yi7tfZ%dH!A$E5e6p1`hu|pizvmt3u3oCtaj9h}C8{{(eu*zLOVVKkzY3Q&;#A=SUA0^>fHi))D2y z{kJRhnGcl>4?ik;eV*yNxDs>y`%NwD5cY(&m(=`lV{#!1<@V9_E4sFpccXrX)o1Nb z2%Jp#^yw4iC@dZYn1zKWJ><}j--Nwsnb$UzCMawP6R~Uw8nq-)pPwOJl`n^$=Ko5z z;C5Mq=O?dkQ%OzP`K0r_6y)s<+V?U;p7-Fhq||%bW%S zK<53!K5tTSvU@Kc)^rVvfFyaD&7^Fgk+W_Mj~dNR_&O0IFvKs1aH0G3smrgRulFs# zQir$^OTCF^z&zrKZ~@D9!7U;7R{{zAN~b?i8|k7xCuz50+|c~?9q|=y*gt<>kVu_S z2VGs3Z{NOc;@l8?Sjv8t%N9e}&7c9gABwz(#GI~!!(>g8UKK2y4C=Rj4K|?W|9fO) z7F1{dZgjO&yjbLu>F31RtzxIvfegRYi^r|$LYd}+Kse0b<)(2UHwO3jEj5=q@R@N)4ADHZv2N>#KXzb#gfqb*-qRWcdF36~xMyJoi=>d0Wr} z61_MIT5*qDB9je)mMaX%;8x8`>Gm*$6)={_zM`spv|CsyPk)TD|AUZZxafs#~Buw~GYROtlWdNYpS;L2znT&%KZ->JV@zz^!Ty&+6Z>GIV*YA8O=cG zIcLDQ_x;9)`_?Zx7N0DW)x(B^MCGS*GbsC0W@cI6Ya9c()Qb;~xvAenC~b-oq~9jp z806YP-$+~L>(9M&xtDPTWB9@=aToqc?T8UnJL2qr5{Ih7I2Mnskkwxdlg#Bqj?K{h zqrDFtYOjg>B?j3C9JQBJkx002s&&6UIuYKmu1%Pjj)MD^N-cS79pT6{ENX;5Rs25; z;eQ(cS5bwmAX55q64!eI1dw|E{xy!2&`_EqHG~r0m43PPDq;y&m54{bb4jNT8$|68 z%|7^&j^ERz9Na?Jk@e72+~(@BrfFR`jFLb!Q}%PR{$1~2v&we(e9!)HHyS!L54x+b zUAx8wM?;_42(crFpBK+>gMZ=#fVa}K7%364D^8x(ihlimSq-{pbaaq4MM9#)_ZGGq;7yhqCh2;=4Z}k>TqY~ww0pu^BFfGqiu(b zNv1+|3W7jZd$5K}L}>T7y9d!h`I3dV#itF|lNJ8lxK}Fuy5Qf;BKthOx|Tl3O|Chq zqdtB3mjm1)JD38x0stiM#=}9f+-KFO-Xt@{g(IrW8DZ$?bRZrdj;f+;U39JW6CQqB z-28oDnBDYv6T^vTWI<(ft1nj2<)!2ln0smU6=C!f;H@ti1Xi+?!w@Zw_01A+eh?VV zS*7f%OYagF}N8gOlD< zgG#`Id9%O@)+Q4KDf=;;gR(CZsQip9ESJ$#^q@@A1&zT&*^eWFJI1-lbe00I)H6*e zKkKO#wQz};y=2rY7fW!;Zs|q9hW1X07aN=ynoWA#t?$1#YfJ`8XQr6i4$5!3m^7`U z(_$ktf?j}UNnNLduBb?I)+*|MhiL2vh@@*BJ{AkG>SuOusYwi~n$2n1E?d6gWVd%P z3I%3Vf6R?MYY3 zlIBg2U})uBL=cdilq+t^p`U#TcUyb=uyLZ60&24OymyDi%E0-Vs%=10%h+b#L^pw~PcpI&gqQol}8MM(Y*Dlex7v~nI|FZ)7*s2{&kA(`O9I^1g;sOFtu z%Dhwbw0K`vqWD#Nn|(+=O}7N{^Wo!ZeO29XHIDuJ$Ac}jxrE%D_Bt@8^wGx1pIOOO z65E=4w?KQsTwL_?z7b>oc)F~D*3ZV7IV&H#sgpZ`_U(;9J)jMQL1d`pU!412Vapa| z-H+@hMWBv(AN>?<1TTakI2w-@)ZbY-%h{zyK_7Bd3$q`8SUmAH>~6M%`F{DjhtO)^Cf) zRjng#&bw_Goap_IBSK%}sSDIbE+9u3OI^TGNrV7Ejb6mMsd2V#)9>xg{xzmdUjP2Y z1g&r&sJkFzblPn!)6r1a;NB@=17qs#^Zl{12S3oR%@_=!} z;iVs?ZSobdKbSJp;JuipPMNV+X26h%n)kt}o~I_vi8tW``(W^q3EoLg*r;85kV@F5 zUAFZNaG0YNH%0(?jU=I5>C)RIF!FS~rI5E=t@$U53ljx;@*XUk1-98AUX>t&6%;+t zOP0xSOTtPK5uwzZU$(^s7m3(fGOF?Et#Bxizx!5GDg!|!Z}Owuh;``6Qoa|Bb{mKK z=_91XS&8jSlpotYbpb=2i`PhVw+6*SW^%|32>A=&RKQ4*lmV)l)t!OILS*HCHEj=50Gg|2$~x_3fb~ zn1sv|u>>+3(CE$~uJSm)=xIZ~Fw9@wwr!^EoiSx@9N$2+`zc?xk{87ol*MaqY89C^ zAktQYppg?tst})CDu4nxJ52=EKAL`u`I~cRWj!X7gFu0ko!oV3R$t%lNky&yc@a@~ zVQhvWGr#(!_*wSl$Rv9cP$5D5h*3-TFNPwAg~aMIMXxllHeC;btL>Y6|LTxK?R6x4 zJ_kF_E*1ikBtiS54u(5ziUz=|z%Jt;uOicwWU%2l`Nk#tb#k)9OXzFb{vF?m#~;AP z=I<{?QafH$FDh-C7d0kEZRKZr(&r?Tx6KT=LW`J$gjel4Drz1)7jX>?-VS|s;S0PT zq++p<;mhk|-7jMZao$>Mk5Bu_AR&?&$FIMQJ-7HP=x3ro6@wnW7 z4%)#kS(C*D#;%CVVL=BTa-6JqKNBj4Imjfo%o}6aWG%057s7p49n^Kmk z+a1M#W{WjxIiM%EJ2%;;K#}~*<#l03DK4WxkxC~!=1Bzy0J+WTx!tktXi6BesWEDl zGCi!J)=)!!f-b84=aG? zLQ!4U+Sg|$0HoNrV8F+Ix6Sv`=MH<3H*82Bf=Y;*n(t>qvfB5WkN`A$))D=fNxuT4 zVP8B3LQLcl#0<$jvWu8uSv6Dn^6|{V7CUj{bQar%ZVZC~uCFF#=>F1=WBW5^)RW-~ z^7l5lMgDr7Wy!m=-~e%(pk3`R7n!s3$)D>l$H=%`|6PT_AajJ@nLA+O=3nEDX*PKE z5tgUaDFq@-HNtWgZ620tdN@jd?;j87pMN+0Z3g|H_2B>0aPx{??+>^X#^K$?=T7-o zM!mth0EB1qy@Ky~j~pM%dC;5PJw3WR+?W|K++70sZTO`sF!LeWBCjJLW}WU;d{C=kK&lEQ?>CfLd{qDGj3+F1+G0x$>u2Oo>zt}pz^k#huJF2;u^{EzTufWRi3 z-x(Fwmh@{?Y~uMW9Ef&tZ;??jw_1J=TMIKL^BjMCz|nd)ZaHA>GxR*7elfut_=bU9 z_-HeSgfa7xa#b@s8T_J6c7pZ~FxJF*So|M&E65Fkkg*lgw1LmAtsUc}rYd@I?!1$> z9+M_zuh*YyWD#&AjJ*Rc)yt(|*G<@!`F*kbY1eh-#$)&`AtXUKmLAQVOb_so=sx0PpebV;D;qfM1VnRFXq!JTwl5@ zWXB?`5GHa5LzRcp$kXL?a{?#C_Z}L2akL)3Oh&gE z9UK=J*!@_;uStIL@VncMB()E0ep_!EwK3z|GByL;k5z?Sys(vzqaU@3NjR=@EL2K^`W?wpaDVtPDN-{>@QWF$`NNS+5eCQyJJ`bIA&P023aC zuZTkmIPU4bI2@v?g!NN}(`9P*$xCY`F2`?^&#V8CwpEn3t~cP&{QdqxNEVv^&=R`( zbLNHJ_Jgw!Rkz^GlAxE-?_W|*W7Yk{F^%yU95;@Qcz61XWMv;)=C}NljaLN4En#*U z;)@@xA#!W-Uud5Eal21{5u{DHG9Qth(KTF~kI1!LwsvR0zSAb@wEVzd<0wlHMNR_17p41gAGoTG$zR??V^5?`Qdbh+wKm@G{S;oi@@9tN(>tuugSC8^ zlhWEYv0DU{*T)^a3HgCSp4tCs47poFMi%4b>u83jF&TFBKi=Zeaq!;#yi&IBcZkil z2ET^#>$pe@Ya`kQz)5 zc?&~;+YdETsL*%MZJa3_7R;KGuUa!IXi;}MVrSuj#mn++vIl5PHosx$QSu?^2C`DV zrX7k&nYnfx`z@TZKbx!ukqu=8eJii*A3RoM-ZIO_`K2{+l=K2$(2Xuvn0XYwRTd zcE!<4GU7)*Ei{I_0t;ndj0DqA_)!`X{)|-t?QDNv6$pQ>YB$O7@8-!ywoDt}9P9p# zA{a_3{2%v{)2~(5oD7Pw?SI6q|1|z@QnkwJ>&G45Mx8Gf=M2A=+!Q}K~k@Z&NXlml!7-|A7#V-+Y4Z3 zWMnjrCxY+0gKxb<)O@Xu_aLJpZ6`C~P(*$EI#3$G!^!`?v!I4#+74?Ua{RHUQdMv*S`u_6>92xi-2_L&n0RbZ z@(b0&8Q6`4x-I?*=*mwekHr_G0~sT$N$pAjM6Y^#NI88Y_>1RwG_OKybP1<8>+A1* zZ8Ws_nI7Sm%FPha5J!3`x@CgpIw+tr&FS;TUry|!bw3SkhMk{Z3OpQIl7AuzFU>g% z^q-%VY?=P83QgOu;x;X@8g(VfVFejJ^M z6ZF05n}d)SUC)^Gd>O9Q3tYUL(QL~eq6Vntq~sh$Aj*TXC!mc|g#!WZLUTogD!2!8 zpg^=o7+ed3S|@OEHEb(Axr^9h7w%`wTD`_1P&9#uR(r3_Uc?fWU29f6o-ZGJzWVMZ zTccHMY^*kf4s7y})^X)9-9Ux@@+cPo+0vqpNyFvhZu9L0wv>$Y zl;E>!RZOe&C-)v0{xYSLkh*m9izcJEYnrr{K&}m1{+Om|3R2-<2dn@?O|yzWrXp&;P@&1H-gCkDPQcj~jfS z?sEd15j=-qbt5cA3CWbEeK3la^SaBy8tDGB^B0e@!oqU#XCh|!av!R_OK9fyrU=Ik z3jp^N! zyBQ>ADqFy}J459mjk?pwjfE;cQ7$z(#%tlFPud(hCza?o&=p*xfq9u)-onH64gB*P zBtc$YUI6IT?cG%N=N>pc8M67|!uZ~9VI|R0Pkz?fEBg!lnqGu#-jNVcN249ca^s1c z*_A$rHdRLyag@c_*!XGW8II8MmITwMciT`JlITCj%1B+6*n4O-0mAKSxon#J2cIuq zyqGU3BZH?8y9tu?KzE7eUiGNS#TvxVRKS6xX{rQ>(yCSu&3Q-*F+0`&GQxoKWTa2pS)KV+^1T1E+lu*;2;ChUbFZawDv@3 z>*%zOmbqzLf8+m!YS#uluaqm|=1bj|$4eH!^`$K=L<9_}_|vlk78Lk}lEMjJh>UeDCs6u) z`Thv;meWX<`=m04wAai6yya56Rz=!3S=JYNcWRaI;jO9wlBGUdqqiO-6t~>0|9JLR znfkyigIDXpu%hszRE3uXR6n{MM1af{z0}(QDqBU9cYy=_fM*Yc8k|XJ^NIS;CV&Qkg^uREN?_%5oNEKioq^Ra za_xU>?#ttnTHAI}E8CUPZZu8VjW%1BT53{RnmN$UN^`=pG*hI(oB_+y zc4lm~A~nG>qnvQY8LiaH48;Kz6^9%U5eEhZ7Mz9ccfapBzwi6w{LXp5@B7Qea&MWj6{b~`^mTP-xnY~DMW*S_SoVc_3p7C z!8m)>9vnQ92!x$(0oc4Xw|h#wGxRU!pV5s(RGnWK9{Kz!`r|+$Thku4FGXY;yNVYiHP=Hq&AB%%b-LjGu>S&XrYA1WoCa{k=zPz}Ze@!YZi{u@r zn6~c$%RFx`A>-lm*(~HGv z8ccB+c?j}^VB;XojLb}(8PguDBzp$dGxMhZj`VTxr%!u)a6jXn^)j$Nc`I03ufvK0 z-+G|wl|@IPPeT7llbQON9$^ruzB;6R{ywhDYD>ZoLp~o-tocDyJnD~SOvj8oM@JKp zzQl{zxifw-4%qT8T&EzV#7|=Xm$s|8(ljOk)sGbxTP2uvMO+C7d!_8uRjWQ9^A&8u zU{Eg`37uYpZ=B2wk-lEWLC8D&a>^%6{CX?aLv9Rw`lYqCwJ#bj+h|~5@Mg>kjOC7v zjolcw4OndVY-RbSlMuLzj?{BFf8XFBfp zhKH|0iEFY#r%r-#WSfn)xi|fPHTu5i);HXC*Si+|OKf@$6qA}|YMah~uz8L?)!E$I zdjEj;_fu=2$^?t_$kf#0Vxy}_Gh9f>VIy>}UpbE7TgfP_s4#QAS-U1!0f@Ka?CfGu z*xy1GNbn4}*f+jGJE)4DA572oAD%A^=QJl?^lk@AHS|8hKuS2f_LW8So2hdmFzX^$ zTvU3t$VPW>R>o1EjZn8K+4~E>31t!az=iXWRYF#&V(1m(zG>#ph(FGPjXS^`Bk(15 zy(K%V_@U*Aw-wq4M&wi&_tadCxG}QLSspdo0lBYzZ?g`I1 zhwP)<81i1GC6zuVY5<&_h6s)`mlv8Afa7s5{OyCIz5SERp&4tcpY*{Dq%=bXq;H1f znf85^?LuLQojO$a(|ZRp80n4#O{z2dDPWoVqa5o4fN9V~K&$=-(&$<$OaD;tWa{gc zJ9ef8O4_72Fp~a6vM{9?3c)ZGT88HoUq%wXR`f_vYW;u&V_T36j5d;?FX4b zlI68s@$wn~19}})G|WE5WX+u$ttRm7g4vVlJn-!71x<9@OC_c}W`@A$yvi@us~aUnC5t_PCsFrveynZ~{vXQknZWW+fTEwq9(c!o zF9NGlRA;4$pZ6`Kl`MXJsUh^S+MjYRe8(_8?6%q@v$i@}JEC`;N1SYbgkXlImRA+W zdRM5Y*b0$!2dsyj8WFyy^SQTMt|pDh)(h*?-oO7PF)>m322sm(9)T@utY=OzJHSC- zD`Wc57Q67$0jBG1jco|x%Gb~{BhCL5bdB+Rz9OB3CtPPra; zH)D5+X%%Jlk6`;FU+C>Sh|a3F(&l>Z+4QQs8y^pa2wI>JtIX$v*V=A<4 z9y+g}uy+5M^XW+>IVIf?XD-=m}l z)F*FdRv!3Un|@e#cRqUm=l5eDjQ2CR%L|u+`o}RStgEMp69`u8|M`94-#YW}ga0wg z^KWh!%>0~@a4Aso&Yud6InPG_qk<9l4WfzHBZaSYq59Y6Uu`%WqV;h%Xr-11@;+?F zn+?2xLA)B1hEC7FZ_J@O&6>x943Kja8kENj&7$gj@hDL(@#{2j4H$|^#k@&}XOkNsuE0I2ddMND3K*c%!CJetY5e?>P2b*t} zKmD!}uqpV<&9QEayDc>_JyqcPKW?A1AG} zFbC4swb#^q*LX(w7fec#D&e6EB^w-??8MJnHvbYRnDMJjSea*rWdBTbo+S4vm*cqW z-y7z?sIc}wxBLDtMxw0FrGWg-jf{IBMMw7xa8stE{8fI}CKA*GBSlo*@S2yuskj=TDAYj%cIA!5BE)bjC{IGT_KO_ zxrXwm?<)w})O_#Qt#I;7wO^0@&|I)&+X~-xozDky$%h!cAD4S-hgV*%zt(2&VeI5N zw{q*2iyO8@-?5oAxiSt(%KLOgY!!6Jk$KKB==_oMZAa+Rt+Czk>%(pcaj=9tMhtX! z*oy&^S;3AgBy-@h#7(`r;%%3Ev-0Eod1@vX5&1N{5s5@Z1ca$}j= zZxBd?rzS)N0@?5pvKRvC(_Eyyu6`dx6#_XF1@=mURPSFF0iODIe8qKT&=3eYw(Zq% zo2@DeNj5)Ume5SWrX`gk%c+(mEL&8rt6~P41Iu;II?Qw`vRZ~}8uD*df~n45rhmZF z!YmETyq}r_Rs4Eg6@hYk$TR&7sGC18xROljx_vs$bhidXz!~Y_a||Q;(=PTrx!*Y) z3WJ=9zi;KSO=R0dhOYo@tsvz(>kDd!u+LvH>f}w})K_H!Z>*48e6HU*%?-+;_r68I zN3aMrk4gPY>#a&%`Q*7{USaTr2@74SLpJ_4ja5BxXA)d-G8rbx5XF>dNA+4OZ1Fi&0`GB8QoGq(0Oi z?E1j?mM_my>#K=WUnh&%8*Dyik{mBW@hv*J`eBfC<&JWcp1%2;H}E4g%qsP}Vbq^r zJcX3b!4MaqStre;XyhCn^~D``<<<#r(M#*X3D1Q3tQ@$HOFm8^jdfSpGQ`)5oa=Wr zU}4*SZdux6>p}7MPfo|%^A0_e zC2*)C4gx*?dvQ>=;Vd_(5-9=@v>(_<^u!G)0b;w^rxamUQ_yxvNe_<(^=OPwnv7H)98lAiA=rse)@mP2(z0_J6x zXa8LSb{Ea8vz{2emML-L6EKPveKP#8!CAhsxhM?5esK zGsS4d78DEk5@xxo==Mb#4z7>v#nOUI&{J~K1|7TB;!ZSHAugM!s8Xx~N3-kMqn*zl zwdc6?n7O?_7clT(ouG#1l(9;`BK36oYd(e_wzQaga<5w7C*mKUmZrlJ5E6)>dcc{M z2|hvwi^!H5hQqB=s2GKw&qyhj0h@3g*9U!uEcOMc^kPfJmeAL4clv)`0GO2w;xAVz2c_P5!eQ~ zL~k3*<>m;AEw}C}mU6{eh*ofbRTW}sWk~M;KpVL$5(fFQ#>F2&?%+;*xB3O?4s-8Y zU*(cj!t7r87q}i?N-G2xcLyM+b|R(@$M^uxPM^fnd=r+37h*$$TV6&PHx{90hPB}+ z|FFI^#vs4z%G~1A_#=z0j%@de3xMQyBH@YQklaf7C$*!WB5yfg%>l)2%kL~WS}H;? zzGsr|H%duzh-eQ?#kyNR49F2TR4F(vQs)}-ZN)p2%ouuhQ|-uwLey=cy0H;e17~jx zs*Hnb)vZ6yA*TEp%OS-QpRN#L!VB4jQXu~yyZH;SqyDessv?S^xp|JEZ~LgRV!}ns zFuBO9Q7aaYw~4oG93D1uM9Ft$Uo5aBU^vagBZAkU`kClH%yH%8#$Fa;>m`y9?UjW9 z93^USSCrNul0e5 z4wcFNXqZvkb;CP_7cw~_7Fx`}Ry6?1?~M&vdB3GdtG~7a1e|#qx6biNI%blLpk>L= z&$OL4j@3_=PovPa{#0(Y!JRHI=H08I@@8rsLq4fg06=XwUI&udmJ!JB?P-u(c9q`t z9;0iB5if&}Wjf;CaYq(V3px>-eHCTUtfvMt?LL!q+~ivXZCp-3huN&62CyMF`iCctkG+&3@a zdL5Y_8Yv7EUhe^O&&s3|D zqhE}xbW1s;oLMc5M6DAaHs*OH(ue2|r25iwfM}1KK%dc7QNh0k%Y~GH2x3>^=1UY|yqJxRaDwjp zQ9f(~laUU4x&?$4y@NtZMq<$34jNC7@z$<~HXOIvP-pgCmKbQM%q^9_&1?S>i}b;* z*n5H?&!+b7v<@BkL+{oXwCwAUNrthhXy!s7jm=k7+=rc`oAFM{BZT@5l8?qHcnRtv zV77%LWp;Mc+@mx^}r$K>bNxzMz6lS>Y? zw7bK1zQ6fng!2F@!Lk+m`{zdXh)s7~2hIXU!83Gz%aCGl*8_2Rk32+d`lXy7LVUcx z5grphnFg+JDdxRcWw(Civeb~Tw*fcyqPJ(?A0#cRJQEiEyjvEv*PQwqm7EDL$ty+8 z-p*eFwx$W_uD?8LRe23N7}Zd8^W)IcVnZGC{87PcphTX4Fngs(3f?4^C*!clE3}8g zXx2$_gDXt|IG%vdzP{>d%Oa)dh9_BJo&xVn4g!65t_o4sEb5&FTkP2I>0#3Md}w3| zHd(@vA~T>K{rJhr1ST8z-aO&~ytnjb|H!jad10BZ$_5yW`R&_dY=Kv7yLEirg(s9& zML0k?c-@HmG{|Xia4^1ZsPWrq{?yG_o210Vy!=St_N?Zw&vtE%^|c%HZKqSUYGz`x z`KF=l)7~hdK}t8gnW| zUBeNB$%%>0?~HuGY9r_OrmRJ;`Z$}do{WMhfT+A(n2Va1S#_t>NHJ zn`!nZC`vmwaYzBx7e*|!~fncxkG+K&KHCBcet?4Q3#fB1Xkp<%-NF?T0wg~ zbZk$Zya7()NG@pU;0tB!x)I9PS#y5@htNtG@nLS}kLSmlpc90!0i_>8dnk3!zF<>< z+-^C0>an6L%iikR>m0<)wh949Yyp=AE|&XxnpE1IY!&+S-hZa_dfY}2%)23PxoBnC zq{mH;MC+&^+8$BgOy(b_wX|%UcW~f3MAb!oc4s9Jh?cMNHv*Ihk5GQ&-|oQtbd!eT zOLkF`C^`9SB(-OFR~YnH{6Lyyz{D5mimm_Y(qSYTI_lLRz-RhvA&r0`R_`O=L;3RE z4rElIj?>!_7{+%uZ}J$s2RoRI>*{XCmQsWIi~CW>S+Q4V8;qSWXj_ApAz>O7TqtmA zFdg_KsmNZrPM{YMNhOB_C#1VUK%b zjnd<|dP^?ShPR@FWZS&F1xAex(cPoT<#l80f<32oUj+ICf(E`ZO?~Tn>t3~%IWb== zA+Yd!7}S=^CsTtsj-s**E({v>c35gY29@(Hjb6+;<39l4t=EQE+#dW;%%+#Y zl)`Bu1o|m0l4O>5g-%j*m3}KNuJL=jkJ~lOi0jo_iSvW!4=nx zxy^jhBF51Kl@vQFCS{Z4STFM}SOv^!L3DwyJQ`!7Dym}QvPd$yE$gaM`$Rf%x1R|F zU#)2JLla~`EE9cRwE4(YZ`c4HQp~rw$fYN+@#d->15j*xyS(^EPn(IhnNIgMV>O02 z(CA6%xUMg;I3Kyb9bIL<&CcEm>5~T@tu2Rzh^77Vpfb`()v^x~P76Jitg`PqWX`(S ze^cf1)Q}xv5bhmFV>!%B)#}Is?uR8&uY_9 ztaX?{w{DNby>CZ-kFe!xue?Ue4#(Ms{x(=8XfiHmC1Z-@nJ_U@AHbOz1ky_`nk54rP73AJ|?tGR<&h@tqqlXIX?<+&M&G;^k04#TRtviX@;*9 zwrLeh2IRQ%J0`rP$KnMa8x5G~r5MRcp#x0ivDVQfM5S|k14IkEq~onSK4NXDd=oyx zQb*;nsj44O#2-Q$A66{QBA~uG+}-?pY=3=u?T5IBDi?99`OgJvN8_u48Ug?jeK1h- zJ`3I;GOBX#u>v3wSIDt0^Qe&dzmrIL(shIEwKO~iGokQQ-I|^U3KcaUB=lwm& z{;$r8<<<^Y1s0%>K%3jtu~$(xWxg%Zn~RGw)aUmvJ}r_Le#5(1q>AfX4B)%-X_IA_ znXs~oNuj>kv_qXFlC35emWtIz8XY{R?t9X!l`!1k1GnfN*u!@bbC zq|M(9Yrq*%@*#gwQEdJph|xgH@Dou(W#v+;26|PO|L%_i9KBIGJxoi>AYEwcXZ6>` z^gO$n3B!$;1Gv_{$yG+CA6$ad@7q=cPe zb`wCUsaYeP`rT2KBm!=Yij<5@8j#6_hgE(g3Y__P1qelcx}ggr1+u#ov4iZM|= z&aFo}h?f0YP2I}RY47ag^cj`DVmr{LpGnmC-5B?ofH+|LZEtlKhk#zVdMBsw8kg-hp6o$I`G6Jk??TtHAz&S0tU5&rrC(R_ELzR;#~) zi-Y@4o%4je3ukvo+pB_rE9FCq7?;;%(vfy~ur4{~)-7MB@=vB)6Qa6m_HcsN@ zf7Ef*)d#2Gw;+C1i}M-|axu0B^mfHEU-#aRzdo+vYc~S#gm!1%JvAXRdia8-@}HvFc~odO zgPHwSus4T3yF6PqDaEp40I8{J$I5VsFDH+q?C7SjSg||1h*14r&T@tioH~5${6=cX@Afj-MJ$qfk)un8-spL zh~+t)>ZWzM&HYA~4@G%s=nm|28DF z_+}|io;6bBHjH~IG}Ab#ljw3E7@lP2UJ2s^vzsH(Hob1y1vM=-s70flQ_CrndlLWbq6}l-#@pgtx3pf|=emVuN?_+dhfuB*p zK|d$qv3CjmtwS|q^odLo&8u91m&OYR)vK4rhrGMf&RSb(*OJXM9o6}MXh9%{NyC2Z zs^jPxEKm7GA~&+5hGxsN*DmUFm-t#VRypHTFz<2gXl-yiNvrtiK~yHm2>MBu_4O4g z*&QbzzH)(KrD~ODf5J>>4C-MS|G?^{Envt>UnO1Zch(6WT;&+2=E18Q)XUV*aY?6c zMOQR9E|xF7l98vqN~mL)Z1*F^vYb|1dMblccckx zbz+6oNTi2Sa8`fxW^RsfyVEsX11k5|@<>a`Jp!F}KR=814*Q&k3a`v(&To*d;!1ej zHz*hPycwKf3g%-S;WE<~yPXpt2`69Ld1!G8)NL5f_ZqzBK>@PwGW$^1UYcL)KjrZ& z7rz0Ltgp(OrYz-q#)lNky_5M#?L#}{3*#ziH;nccvrGD7dhc;(Cb%(omsa&zvr)3O ze(Sl=RON#Spu=_JCQvM?LEd{ zNM-VtnQ*~SqJ}HG(9Qh>Qc+t-!QIXSI~Lc|)@J zOOulkY%FaM((w?{@Iti94BcPXkLsdoH{=HYHE1kBE~_BF+UVd+`xq#YmcYUmOkO5? zRIl_5*nc^BYu&ZpnS-mPol~Rr;@CH@UdT_x%?mvF~^p(w)Ql4 z4G&bcWA}*WO*DaiDDj&sAd^+-Q3iS?ZsV+A8Mr+F3w%L*ly=L|MS4r_eiQA759r4F z?B1>_md3R-c!iruxxV1!l5wkBc{B=^Esa_-svb=%=Bunj1ZDxX=yc^OjWg<1CBFR#EV)m2=5wpjY#zvwpK_=31cJJm|FlUQhj$EXT3vGm6 zC1?wVkX6U>4= z?q$`L0?IN&MbOqxcI0Q3$>8k3TW&>V*Do;gjvgFHk3z9;AdGdxjc1|qu-HQVIb;J- z8s>sfF-J|^g*QlyoixMa1?la%SGh)?Llsi8@pvN*=HK;aAW*CXj(tA?p(MRu&ll(B zIr|>8Ik0$zg~i*$3%Z=c;;Ra80NmZnu+}gIaOprJs!6!m<7wZMm!Q=1Cu%T^_NSn4 zAXgsnvQbAmrA&_`A*@MD>1&{ z+7w0?C4}Bk33J8G-crJg{%d%^J8ZA%xDPfaj2o1P-l9>fM26=-I-r4D3_-raI{HoN zo;kQ2suLejQq(AWK93-5OVAP(K#zPst>te^@IHe0SU2kT+gfwVqkxMZi#Hg&<*Me3 zM$|sC=T7&<94w}nP1?xFqcOuhld0UTR1WBSCG{nvxpry)lhjTWsLlEA;!hGo#VT zO79POMbQQV2Jclnr&Cq>doSi4_Wn+O75v5tUi2=I{16okOu-e{amb-voXvMf2#6E5 z3G(Hd)-YlM5xwC-xsQL%+dqU1!dT-CcGMd#!ki1vGcHenHs1mq4BwJbjhzf%4Tbxb;!@D_F$ zqDyJB&&j;t*m&Ax?L$k9g*vWp1ErAE`{y+JXgs#W$D&KfIu6cJ%{Z%rR0yQGeC69P z>gpnKz`C>X@ZG{L<7B(riv_H!6n0%-!W;dfBr9qwUTaM!UjPIJ*hC|8yP?Jn6$;dj zeD*&<;Y;s9Tcxf6dKKsTj=gZ~6lL*k&%9mJV-Ma4dL8@kBsXMMZO{y1 ztygf%z+PSjcrFd-<9F$o^KMJ(kP1hMTDLfw)^GPQj!8Olt2o4@qOo(c_p__P3m&aF z43Qv!Zy+|vxS&(v)1jH7A-){Hel z$X8&tc9aF}3~sNU1`YXah7x7Y{pu=-?-Ct5TcD_c zRv;-dS%5!=w!UJI#0Q91rQWTS-=*kYlO70n&Vb?+{mG^RsQ$}l9$u&Y<2wJscJ=9% zrjYNaC8zp?NAxzy4f$}$dh1R_HfS~X2_21#5BG;SqaNq%-*$^tAvt@Ps~|iN`(3s< zOkTZCR~9ax93i>O2@Tl-bV&&K>rHLLxy>6)j+19rPSoE)&dqU}R=hyd*zM>rUe)BU zN0GscWzp-tj|S-xi+aH)&l&BL#}tDt+GZ+->-`1|6kwX)hy}A&Cvh~&95^-x2m9>G zj!kmvicbnbZW(+ot{!RH8`u?8+v9kGSX>JqTPZ2CmA&cPmE)c`dQjP>Vp)2It*=BQBhB1&wKTR2mm(qjz(%ZaPB2Z6Pycpp) z)QzT&94?S+Xd@XlO~2RlVf_q6Pi#P{bQy6uOvQDYV3QSq=}&V%xdC`IR-f|ScXnyu zBXd=)wnydAX>(Og?4HyuJ<_jlzPlD*XuzIRq$ecCx!mFJN|4~Y{4q#Ka+!SPsh0qe zOxI3}-b765^0Eaat4&Xm+h||Nn3|-xTV$U2bQe UpWhnP^ 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 1bb651dac7d..06da5b22865 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4963,6 +4963,7 @@ #include "code\modules\modular_computers\file_system\programs\file_browser.dm" #include "code\modules\modular_computers\file_system\programs\frontier.dm" #include "code\modules\modular_computers\file_system\programs\jobmanagement.dm" +#include "code\modules\modular_computers\file_system\programs\mafia_ntos.dm" #include "code\modules\modular_computers\file_system\programs\newscasterapp.dm" #include "code\modules\modular_computers\file_system\programs\notepad.dm" #include "code\modules\modular_computers\file_system\programs\nt_pay.dm" diff --git a/tgui/packages/tgui/interfaces/MafiaPanel.tsx b/tgui/packages/tgui/interfaces/MafiaPanel.tsx index 2820822eaf4..528f6260b8d 100644 --- a/tgui/packages/tgui/interfaces/MafiaPanel.tsx +++ b/tgui/packages/tgui/interfaces/MafiaPanel.tsx @@ -1,4 +1,5 @@ import { classes } from 'common/react'; +import { decodeHtmlEntities } from 'common/string'; import { multiline } from 'common/string'; import { useBackend, useLocalState } from '../backend'; import { Box, Button, Collapsible, Flex, NoticeBox, Section, Stack, Tabs, TextArea } from '../components'; @@ -31,39 +32,58 @@ type LobbyData = { status: string; }; +type MessageData = { + msg: string; +}; + type MafiaData = { players: PlayerInfo[]; lobbydata: LobbyData[]; + messages: MessageData[]; user_notes: string; roleinfo: RoleInfo; phase: string; turn: number; timeleft: number; + is_observer: boolean; all_roles: string[]; admin_controls: boolean; }; -export const MafiaPanel = (props, context) => { +export const MafiaPanelData = (props, context) => { const { act, data } = useBackend(context); - const { phase, roleinfo, admin_controls } = data; + const { phase, roleinfo, admin_controls, messages } = data; const [mafia_tab, setMafiaMode] = useLocalState( context, 'mafia_tab', 'Role list' ); + + if (phase === 'No Game') { + return ( + + + + + + + {!!admin_controls && } + + + + + ); + } + return ( - - + + {!!roleinfo && ( + + + + )} + - {!roleinfo && ( - - - - )} {!!roleinfo && ( <> @@ -76,65 +96,125 @@ export const MafiaPanel = (props, context) => { )} )} - {!!admin_controls && } + + {!!admin_controls && } + {phase !== 'No Game' && ( - - - <> - - - - - - - setMafiaMode('Role list')}> - Role list -