diff --git a/baystation12.dme b/baystation12.dme index 7d61c875d2..361118cb4b 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -548,6 +548,7 @@ #include "code\game\objects\items\weapons\RCD.dm" #include "code\game\objects\items\weapons\RSF.dm" #include "code\game\objects\items\weapons\scrolls.dm" +#include "code\game\objects\items\weapons\shards.dm" #include "code\game\objects\items\weapons\shields.dm" #include "code\game\objects\items\weapons\stunbaton.dm" #include "code\game\objects\items\weapons\surgery_tools.dm" diff --git a/code/WorkInProgress/Wrongnumber/weldbackpack.dm b/code/WorkInProgress/Wrongnumber/weldbackpack.dm index b0a9f87b23..18899745c9 100644 --- a/code/WorkInProgress/Wrongnumber/weldbackpack.dm +++ b/code/WorkInProgress/Wrongnumber/weldbackpack.dm @@ -34,13 +34,15 @@ user << "\blue The tank scoffs at your insolence. It only provides services to welders." return -/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob) - if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel) +/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob, proximity) + if(!proximity) // this replaces and improves the get_dist(src,O) <= 1 checks used previously + return + if (istype(O, /obj/structure/reagent_dispensers/fueltank) && src.reagents.total_volume < max_fuel) O.reagents.trans_to(src, max_fuel) user << "\blue You crack the cap off the top of the pack and fill it back up again from the tank." playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) return - else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel) + else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && src.reagents.total_volume == max_fuel) user << "\blue The pack is already full!" return diff --git a/code/WorkInProgress/computer3/computers/crew.dm b/code/WorkInProgress/computer3/computers/crew.dm index 2d89b336f8..b3ef9398ba 100644 --- a/code/WorkInProgress/computer3/computers/crew.dm +++ b/code/WorkInProgress/computer3/computers/crew.dm @@ -47,7 +47,7 @@ log += "[life_status] [damage_report]Not Available" if(3) var/area/player_area = get_area(H) - log += "[life_status] [damage_report][player_area.name] ([pos.x], [pos.y])" + log += "[life_status] [damage_report][sanitize(player_area.name)] ([pos.x], [pos.y])" logs += log logs = sortList(logs) for(var/log in logs) @@ -75,4 +75,4 @@ if(href_list["update"]) interact() //src.updateUsrDialog() - return \ No newline at end of file + return diff --git a/code/WorkInProgress/computer3/laptop.dm b/code/WorkInProgress/computer3/laptop.dm index 0fad61af82..52d996827b 100644 --- a/code/WorkInProgress/computer3/laptop.dm +++ b/code/WorkInProgress/computer3/laptop.dm @@ -55,15 +55,20 @@ del src return + if(!stored_computer.manipulating) + stored_computer.manipulating = 1 + stored_computer.loc = loc + stored_computer.stat &= ~MAINT + stored_computer.update_icon() + loc = null + usr << "You open \the [src]." - stored_computer.loc = loc - stored_computer.stat &= ~MAINT - stored_computer.update_icon() - loc = null - usr << "You open \the [src]." + spawn(5) + stored_computer.manipulating = 0 + del src + else + usr << "\red You are already opening the computer!" - spawn(5) - del src AltClick() if(Adjacent(usr)) @@ -112,6 +117,7 @@ pixel_y = -3 show_keyboard = 0 + var/manipulating = 0 // To prevent disappearing bug var/obj/item/device/laptop/portable = null New(var/L, var/built = 0) @@ -147,10 +153,11 @@ portable=new portable.stored_computer = src - portable.loc = loc - loc = portable - stat |= MAINT - usr << "You close \the [src]." + if(!manipulating) + portable.loc = loc + loc = portable + stat |= MAINT + usr << "You close \the [src]." auto_use_power() if(stat&MAINT) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index d29bb84bc9..a48f759de1 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -15,9 +15,8 @@ // Run all strings to be used in an SQL query through this proc first to properly escape out injection attempts. /proc/sanitizeSQL(var/t as text) - var/sanitized_text = replacetext(t, "'", "\\'") - sanitized_text = replacetext(sanitized_text, "\"", "\\\"") - return sanitized_text + var/sqltext = dbcon.Quote(t); + return copytext(sqltext, 2, lentext(sqltext)-1);//Quote() adds quotes around input, we already do that /* * Text sanitization @@ -314,4 +313,4 @@ proc/TextPreview(var/string,var/len=40) else return string else - return "[copytext(string, 1, 37)]..." \ No newline at end of file + return "[copytext(string, 1, 37)]..." diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index c6078c10ac..6522aae611 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -124,8 +124,7 @@ Topic("breaker=1", list("breaker"="1"), 0) // 0 meaning no window (consistency! wait...) /obj/machinery/turretid/AICtrlClick() //turns off/on Turrets - src.enabled = !src.enabled - src.updateTurrets() + Topic("toggleOn", list("toggleOn" = 1), 1) // 1 meaning no window (consistency!) /atom/proc/AIAltClick(var/atom/A) AltClick(A) @@ -140,8 +139,7 @@ return /obj/machinery/turretid/AIAltClick() //toggles lethal on turrets - src.lethal = !src.lethal - src.updateTurrets() + Topic("toggleLethal", list("toggleLethal" = 1), 1) // 1 meaning no window (consistency!) /atom/proc/AIMiddleClick() return diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 7d6628b573..2fc7d0c8ee 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -214,29 +214,6 @@ flags = FPRINT | TABLEPASS| CONDUCT matter = list("metal" = 3750) -/obj/item/weapon/shard - name = "shard" - icon = 'icons/obj/shards.dmi' - icon_state = "large" - sharp = 1 - edge = 1 - desc = "Could probably be used as ... a throwing weapon?" - w_class = 2.0 - force = 5.0 - throwforce = 8.0 - item_state = "shard-glass" - matter = list("glass" = 3750) - attack_verb = list("stabbed", "slashed", "sliced", "cut") - - suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.") - return (BRUTELOSS) - -/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) - return ..() - /*/obj/item/weapon/syndicate_uplink name = "station bounced radio" desc = "Remain silent about this..." @@ -256,28 +233,6 @@ matter = list("metal" = 100 origin_tech = "magnets=2;syndicate=3"*/ -/obj/item/weapon/shard/shrapnel - name = "shrapnel" - icon = 'icons/obj/shards.dmi' - icon_state = "shrapnellarge" - desc = "A bunch of tiny bits of shattered metal." - -/obj/item/weapon/shard/shrapnel/New() - - src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall") - switch(src.icon_state) - if("shrapnelsmall") - src.pixel_x = rand(-12, 12) - src.pixel_y = rand(-12, 12) - if("shrapnelmedium") - src.pixel_x = rand(-8, 8) - src.pixel_y = rand(-8, 8) - if("shrapnellarge") - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - else - return - /obj/item/weapon/SWF_uplink name = "station-bounced radio" desc = "used to comunicate it appears." diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 771b43caa5..4ddfbffb48 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -20,7 +20,7 @@ /datum/game_mode/cult name = "cult" config_tag = "cult" - restricted_jobs = list("Chaplain","AI", "Cyborg", "Lawyer", "Head of Security", "Captain") + restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Head of Security", "Captain") protected_jobs = list("Security Officer", "Warden", "Detective") required_players = 5 required_players_secret = 15 diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index fd774975d0..8737b296d3 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -14,7 +14,7 @@ /datum/game_mode/revolution name = "revolution" config_tag = "revolution" - restricted_jobs = list("Lawyer", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") + restricted_jobs = list("Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") protected_jobs = list("Security Officer", "Warden", "Detective") required_players = 4 required_players_secret = 15 diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 0c0928dbc1..7d7651a362 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -6,7 +6,7 @@ name = "traitor" config_tag = "traitor" restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain")//AI", Currently out of the list as malf does not work for shit + protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Captain")//AI", Currently out of the list as malf does not work for shit required_players = 0 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index bed29b858e..3a0118e9b8 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -17,7 +17,7 @@ access_tox_storage, access_teleporter, access_sec_doors, access_research, access_robotics, access_xenobiology, access_ai_upload, access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch) - minimal_player_age = 7 + minimal_player_age = 14 equip(var/mob/living/carbon/human/H) if(!H) return 0 @@ -50,6 +50,8 @@ minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) alt_titles = list("Xenoarcheologist", "Anomalist", "Phoron Researcher", "Xenobotanist") + minimal_player_age = 14 + equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear) @@ -79,6 +81,8 @@ access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology) minimal_access = list(access_research, access_xenobiology) + minimal_player_age = 14 + equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear) @@ -108,6 +112,8 @@ minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. alt_titles = list("Biomechanical Engineer","Mechatronic Engineer") + minimal_player_age = 7 + equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear) @@ -123,4 +129,4 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) - return 1 \ No newline at end of file + return 1 diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 50b17ddc33..fe569e2364 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -325,7 +325,8 @@ var/global/list/frozen_items = list() time_entered = world.time // Book keeping! - log_admin("[key_name_admin(M)] has entered a stasis pod.") + var/turf/location = get_turf(src) + log_admin("[key_name_admin(M)] has entered a stasis pod. (JMP)") message_admins("\blue [key_name_admin(M)] has entered a stasis pod.") //Despawning occurs when process() is called with an occupant without a client. diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 9cd7b58894..c85599cf6a 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -532,23 +532,26 @@ About the new airlock wires panel: return ((src.wires & wireFlag) == 0) /obj/machinery/door/airlock/proc/canAIControl() - return ((src.aiControlDisabled!=1) && (!src.isAllPowerCut())); + return ((src.aiControlDisabled!=1) && (!src.isAllPowerLoss())); -/obj/machinery/door/airlock/proc/canAIHack(var/user as mob) - return (isAI(user) && src.aiControlDisabled==1 && !hackProof && !src.isAllPowerCut()); +/obj/machinery/door/airlock/proc/canAIHack() + return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerLoss())); /obj/machinery/door/airlock/proc/arePowerSystemsOn() + if (stat & NOPOWER) + return 0 return (src.secondsMainPowerLost==0 || src.secondsBackupPowerLost==0) /obj/machinery/door/airlock/requiresID() return !(src.isWireCut(AIRLOCK_WIRE_IDSCAN) || aiDisabledIdScanner) -/obj/machinery/door/airlock/proc/isAllPowerCut() - var/retval=0 +/obj/machinery/door/airlock/proc/isAllPowerLoss() + if(stat & NOPOWER) + return 1 if(src.isWireCut(AIRLOCK_WIRE_MAIN_POWER1) || src.isWireCut(AIRLOCK_WIRE_MAIN_POWER2)) if(src.isWireCut(AIRLOCK_WIRE_BACKUP_POWER1) || src.isWireCut(AIRLOCK_WIRE_BACKUP_POWER2)) - retval=1 - return retval + return 1 + return 0 /obj/machinery/door/airlock/proc/regainMainPower() if(src.secondsMainPowerLost > 0) @@ -639,9 +642,11 @@ About the new airlock wires panel: else flick("door_closing", src) if("spark") - flick("door_spark", src) + if(density) + flick("door_spark", src) if("deny") - flick("door_deny", src) + if(density) + flick("door_deny", src) return /obj/machinery/door/airlock/attack_ai(mob/user as mob) @@ -868,7 +873,7 @@ About the new airlock wires panel: t1 += "Attach signaler" t1 += "
" - t1 += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", (src.locked ? "The door bolts have fallen!" : "The door bolts look up."), (src.lights ? "The door bolt lights are on." : "The door bolt lights are off!"), ((src.arePowerSystemsOn() && !(stat & NOPOWER)) ? "The test light is on." : "The test light is off!"), (src.aiControlDisabled==0 ? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), (src.safe==0 ? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), (src.normalspeed==0 ? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off.")) + t1 += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", (src.locked ? "The door bolts have fallen!" : "The door bolts look up."), (src.lights ? "The door bolt lights are on." : "The door bolt lights are off!"), ((src.arePowerSystemsOn()) ? "The test light is on." : "The test light is off!"), (src.aiControlDisabled==0 ? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), (src.safe==0 ? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), (src.normalspeed==0 ? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off.")) t1 += text("

Close

\n", src) @@ -1171,7 +1176,7 @@ About the new airlock wires panel: beingcrowbarred = 1 //derp, Agouri else beingcrowbarred = 0 - if( beingcrowbarred && (operating == -1 || density && welded && operating != 1 && src.p_open && (!src.arePowerSystemsOn() || stat & NOPOWER) && !src.locked) ) + if( beingcrowbarred && src.p_open && (operating == -1 || (density && welded && operating != 1 && !src.arePowerSystemsOn() && !src.locked)) ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.") if(do_after(user,40)) @@ -1211,7 +1216,7 @@ About the new airlock wires panel: del(src) return - else if(arePowerSystemsOn() && !(stat & NOPOWER)) + else if(arePowerSystemsOn()) user << "\blue The airlock's motors resist your efforts to force it." else if(locked) user << "\blue The airlock's bolts prevent it from being forced." @@ -1248,7 +1253,7 @@ About the new airlock wires panel: if( operating || welded || locked ) return 0 if(!forced) - if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) ) + if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) ) return 0 use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people if(istype(src, /obj/machinery/door/airlock/glass)) @@ -1263,7 +1268,7 @@ About the new airlock wires panel: if(operating || welded || locked) return if(!forced) - if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_DOOR_BOLTS) ) + if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_DOOR_BOLTS) ) return if(safe) for(var/turf/turf in locs) @@ -1305,7 +1310,7 @@ About the new airlock wires panel: return /obj/machinery/door/airlock/proc/lock(var/forced=0) - if (src.locked) return + if (operating || src.locked) return src.locked = 1 for(var/mob/M in range(1,src)) @@ -1313,9 +1318,9 @@ About the new airlock wires panel: update_icon() /obj/machinery/door/airlock/proc/unlock(var/forced=0) - if (!src.locked) return 0 + if (operating || !src.locked) return - if(forced || src.arePowerSystemsOn()) //only can raise bolts if power's on + if (forced || (src.arePowerSystemsOn())) //only can raise bolts if power's on src.locked = 0 for(var/mob/M in range(1,src)) M.show_message("You hear a click from the bottom of the door.", 2) diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 32ed0d1f3c..3b1700df78 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -9,16 +9,19 @@ obj/machinery/door/airlock var/cur_command = null //the command the door is currently attempting to complete obj/machinery/door/airlock/proc/can_radio() - if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_AI_CONTROL) ) + if(!arePowerSystemsOn()) return 0 return 1 obj/machinery/door/airlock/process() ..() - execute_current_command() + if (arePowerSystemsOn()) + execute_current_command() obj/machinery/door/airlock/receive_signal(datum/signal/signal) - if (!can_radio()) return + if (!arePowerSystemsOn()) return //no power + + if (!can_radio()) return //no radio if(!signal || signal.encryption) return @@ -28,6 +31,9 @@ obj/machinery/door/airlock/receive_signal(datum/signal/signal) execute_current_command() obj/machinery/door/airlock/proc/execute_current_command() + if(operating) + return //emagged or busy doing something else + if (!cur_command) return diff --git a/code/game/machinery/embedded_controller/docking_program_multi.dm b/code/game/machinery/embedded_controller/docking_program_multi.dm index 46f7538afd..3901591720 100644 --- a/code/game/machinery/embedded_controller/docking_program_multi.dm +++ b/code/game/machinery/embedded_controller/docking_program_multi.dm @@ -199,7 +199,9 @@ //checks if we are ready for undocking /datum/computer/file/embedded_program/airlock/multi_docking/proc/ready_for_undocking() - return check_doors_secured() + var/ext_closed = check_exterior_door_secured() + var/int_closed = check_interior_door_secured() + return (ext_closed || int_closed) /datum/computer/file/embedded_program/airlock/multi_docking/proc/open_doors() toggleDoor(memory["interior_status"], tag_interior_door, memory["secure"], "open") diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index b8975feaeb..421ad9a9bb 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -189,7 +189,12 @@ Buildable meters icon_state = islist[pipe_type + 1] //called when a turf is attacked with a pipe item -// place the pipe on the turf, setting pipe level to 1 (underfloor) if the turf is not intact +/obj/item/pipe/afterattack(turf/simulated/floor/target, mob/user, proximity) + if(!proximity) return + if(istype(target)) + user.drop_from_inventory(src, target) + else + return ..() // rotate the pipe item clockwise diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index 98af795ca8..5ad0ecae56 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -436,8 +436,9 @@ -/obj/machinery/turretid/Topic(href, href_list) - ..() +/obj/machinery/turretid/Topic(href, href_list, var/nowindow = 0) + if(..(href, href_list)) + return if (src.locked) if (!istype(usr, /mob/living/silicon)) usr << "Control panel is locked!" @@ -449,7 +450,8 @@ else if (href_list["toggleLethal"]) src.lethal = !src.lethal src.updateTurrets() - src.attack_hand(usr) + if(!nowindow) + src.attack_hand(usr) /obj/machinery/turretid/proc/updateTurrets() if(control_area) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index ac3b09ff6a..15e243559d 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -328,7 +328,8 @@ if (src.product_records.len == 0) dat += "No product loaded!" else - var/list/display_records = src.product_records + var/list/display_records = list() + display_records += src.product_records if(src.extended_inventory) display_records += src.hidden_records diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index f25f835c69..8d60a48a9b 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -6,43 +6,52 @@ var/obj/machinery/computer/mech_bay_power_console/recharge_console var/obj/mecha/recharging_mecha = null - Entered(var/obj/mecha/mecha) - . = ..() - if(istype(mecha)) - mecha.occupant_message("Initializing power control devices.") - init_devices() - if(recharge_console && recharge_port) - recharging_mecha = mecha - recharge_console.mecha_in(mecha) - return - else if(!recharge_console) - mecha.occupant_message("Control console not found. Terminating.") - else if(!recharge_port) - mecha.occupant_message("Power port not found. Terminating.") - return +/turf/simulated/floor/mech_bay_recharge_floor/Entered(var/obj/mecha/mecha) + . = ..() + if(istype(mecha)) + mecha.occupant_message("Initializing power control devices.") + init_devices() + if(recharge_console && recharge_port) + recharging_mecha = mecha + recharge_console.mecha_in(mecha) + return + else if(!recharge_console) + mecha.occupant_message("Control console not found. Terminating.") + else if(!recharge_port) + mecha.occupant_message("Power port not found. Terminating.") + return - Exited(atom) - . = ..() - if(atom == recharging_mecha) - recharging_mecha = null - if(recharge_console) - recharge_console.mecha_out() - return - - proc/init_devices() - recharge_console = locate() in range(1,src) - recharge_port = locate(/obj/machinery/mech_bay_recharge_port, get_step(src, WEST)) +/turf/simulated/floor/mech_bay_recharge_floor/Exited(atom) + . = ..() + if(atom == recharging_mecha) + recharging_mecha = null if(recharge_console) - recharge_console.recharge_floor = src - if(recharge_port) - recharge_console.recharge_port = recharge_port + recharge_console.mecha_out() + return + +/turf/simulated/floor/mech_bay_recharge_floor/proc/init_devices() + if(!recharge_console) + recharge_console = locate() in range(1,src) + if(!recharge_port) + recharge_port = locate() in get_step(src, WEST) + + if(recharge_console) + recharge_console.recharge_floor = src if(recharge_port) - recharge_port.recharge_floor = src - if(recharge_console) - recharge_port.recharge_console = recharge_console - return - + recharge_console.recharge_port = recharge_port + if(recharge_port) + recharge_port.recharge_floor = src + if(recharge_console) + recharge_port.recharge_console = recharge_console + return +// temporary fix for broken icon until somebody gets around to make these player-buildable +/turf/simulated/floor/mech_bay_recharge_floor/attackby(obj/item/C as obj, mob/user as mob) + ..() + if(floor_tile) + icon_state = "recharge_floor" + else + icon_state = "support_lattice" /obj/machinery/mech_bay_recharge_port @@ -55,50 +64,50 @@ var/obj/machinery/computer/mech_bay_power_console/recharge_console var/datum/global_iterator/mech_bay_recharger/pr_recharger - New() - ..() - pr_recharger = new /datum/global_iterator/mech_bay_recharger(null,0) - return +/obj/machinery/mech_bay_recharge_port/New() + ..() + pr_recharger = new /datum/global_iterator/mech_bay_recharger(null,0) + return - proc/start_charge(var/obj/mecha/recharging_mecha) - if(stat&(NOPOWER|BROKEN)) - recharging_mecha.occupant_message("Power port not responding. Terminating.") - return 0 - else - if(recharging_mecha.cell) - recharging_mecha.occupant_message("Now charging...") - pr_recharger.start(list(src,recharging_mecha)) - return 1 - else - return 0 - - proc/stop_charge() - if(recharge_console && !recharge_console.stat) - recharge_console.icon_state = initial(recharge_console.icon_state) - pr_recharger.stop() - return - - proc/active() - if(pr_recharger.active()) +/obj/machinery/mech_bay_recharge_port/proc/start_charge(var/obj/mecha/recharging_mecha) + if(stat&(NOPOWER|BROKEN)) + recharging_mecha.occupant_message("Power port not responding. Terminating.") + return 0 + else + if(recharging_mecha.cell) + recharging_mecha.occupant_message("Now charging...") + pr_recharger.start(list(src,recharging_mecha)) return 1 else return 0 - power_change() - if(powered()) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - stat |= NOPOWER - pr_recharger.stop() - return +/obj/machinery/mech_bay_recharge_port/proc/stop_charge() + if(recharge_console && !recharge_console.stat) + recharge_console.icon_state = initial(recharge_console.icon_state) + pr_recharger.stop() + return - proc/set_voltage(new_voltage) - if(new_voltage && isnum(new_voltage)) - pr_recharger.max_charge = new_voltage - return 1 - else - return 0 +/obj/machinery/mech_bay_recharge_port/proc/active() + if(pr_recharger.active()) + return 1 + else + return 0 + +/obj/machinery/mech_bay_recharge_port/power_change() + if(powered()) + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + stat |= NOPOWER + pr_recharger.stop() + return + +/obj/machinery/mech_bay_recharge_port/proc/set_voltage(new_voltage) + if(new_voltage && isnum(new_voltage)) + pr_recharger.max_charge = new_voltage + return 1 + else + return 0 /datum/global_iterator/mech_bay_recharger @@ -106,23 +115,22 @@ var/max_charge = 45 check_for_null = 0 //since port.stop_charge() must be called. The checks are made in process() - process(var/obj/machinery/mech_bay_recharge_port/port, var/obj/mecha/mecha) - if(!port) - return 0 - if(mecha && mecha in port.recharge_floor) - if(!mecha.cell) return - var/delta = min(max_charge, mecha.cell.maxcharge - mecha.cell.charge) - if(delta>0) - mecha.give_power(delta) - port.use_power(delta*150) - else - mecha.occupant_message("Fully charged.") - port.stop_charge() +/datum/global_iterator/mech_bay_recharger/process(var/obj/machinery/mech_bay_recharge_port/port, var/obj/mecha/mecha) + if(!port) + return 0 + if(mecha && mecha in port.recharge_floor) + if(!mecha.cell) + return + var/delta = min(max_charge, mecha.cell.maxcharge - mecha.cell.charge) + if(delta>0) + mecha.give_power(delta) + port.use_power(delta*150) else + mecha.occupant_message("Fully charged.") port.stop_charge() - return - - + else + port.stop_charge() + return /obj/machinery/computer/mech_bay_power_console @@ -137,82 +145,90 @@ var/turf/simulated/floor/mech_bay_recharge_floor/recharge_floor var/obj/machinery/mech_bay_recharge_port/recharge_port - proc/mecha_in(var/obj/mecha/mecha) - if(stat&(NOPOWER|BROKEN)) - mecha.occupant_message("Control console not responding. Terminating...") - return - if(recharge_port && autostart) - var/answer = recharge_port.start_charge(mecha) - if(answer) - recharge_port.set_voltage(voltage) - src.icon_state = initial(src.icon_state)+"_on" +/obj/machinery/computer/mech_bay_power_console/proc/mecha_in(var/obj/mecha/mecha) + if(stat&(NOPOWER|BROKEN)) + mecha.occupant_message("Control console not responding. Terminating...") return + if(recharge_port && autostart) + var/answer = recharge_port.start_charge(mecha) + if(answer) + recharge_port.set_voltage(voltage) + src.icon_state = initial(src.icon_state)+"_on" + return - proc/mecha_out() +/obj/machinery/computer/mech_bay_power_console/proc/mecha_out() + if(recharge_port) + recharge_port.stop_charge() + return + + +/obj/machinery/computer/mech_bay_power_console/power_change() + if(stat & BROKEN) + icon_state = initial(icon_state)+"_broken" if(recharge_port) recharge_port.stop_charge() - return - - - power_change() - if(stat & BROKEN) - icon_state = initial(icon_state)+"_broken" + else if(powered()) + icon_state = initial(icon_state) + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + icon_state = initial(icon_state)+"_nopower" + stat |= NOPOWER if(recharge_port) recharge_port.stop_charge() - else if(powered()) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - icon_state = initial(icon_state)+"_nopower" - stat |= NOPOWER - if(recharge_port) - recharge_port.stop_charge() - set_broken() - icon_state = initial(icon_state)+"_broken" - stat |= BROKEN - if(recharge_port) - recharge_port.stop_charge() +/obj/machinery/computer/mech_bay_power_console/set_broken() + icon_state = initial(icon_state)+"_broken" + stat |= BROKEN + if(recharge_port) + recharge_port.stop_charge() - attack_hand(mob/user as mob) - if(..()) return - var/output = "[src.name]" - if(!recharge_floor) - output += "Mech Bay Recharge Station not initialized.
" - else - output += {"Mech Bay Recharge Station Data:
- Mecha: [recharge_floor.recharging_mecha||"None"]
"} - if(recharge_floor.recharging_mecha) - var/cell_charge = recharge_floor.recharging_mecha.get_charge() - output += "Cell charge: [isnull(cell_charge)?"No powercell found":"[recharge_floor.recharging_mecha.cell.charge]/[recharge_floor.recharging_mecha.cell.maxcharge]"]
" - output += "
" - if(!recharge_port) - output += "Mech Bay Power Port not initialized.
" - else - output += "Mech Bay Power Port Status: [recharge_port.active()?"Now charging":"On hold"]
" - - /* - output += {"
- Settings: -
- Start sequence on succesful init: [autostart?"On":"Off"]
- Recharge Port Voltage: Low - Medium - High
-
"} - */ - - output += "" - user << browse(output, "window=mech_bay_console") - onclose(user, "mech_bay_console") +/obj/machinery/computer/mech_bay_power_console/attack_hand(mob/user as mob) + if(..()) return + if(!recharge_floor || !recharge_port) + var/turf/simulated/floor/mech_bay_recharge_floor/F = locate() in range(1,src) + if(F) + F.init_devices() + + var/output = "[src.name]" + if(!recharge_floor) + output += "Mech Bay Recharge Station not initialized.
" + else + output += {"Mech Bay Recharge Station Data:
+ Mecha: [recharge_floor.recharging_mecha||"None"]
"} + if(recharge_floor.recharging_mecha) + var/cell_charge = recharge_floor.recharging_mecha.get_charge() + output += "Cell charge: [isnull(cell_charge)?"No powercell found":"[recharge_floor.recharging_mecha.cell.charge]/[recharge_floor.recharging_mecha.cell.maxcharge]"]
" + output += "
" + if(!recharge_port) + output += "Mech Bay Power Port not initialized.
" + else + output += "Mech Bay Power Port Status: [recharge_port.active()?"Now charging":"On hold"]
" + /* + output += {"
+ Settings: +
+ Start sequence on succesful init: [autostart?"On":"Off"]
+ Recharge Port Voltage: Low - Medium - High
+
"} + */ - Topic(href, href_list) - if(href_list["autostart"]) - autostart = !autostart - if(href_list["voltage"]) - voltage = text2num(href_list["voltage"]) - if(recharge_port) - recharge_port.set_voltage(voltage) - updateUsrDialog() - return \ No newline at end of file + output += "" + user << browse(output, "window=mech_bay_console") + onclose(user, "mech_bay_console") + return + +// unused at the moment, also lacks any kind of exploit prevention +/* +/obj/machinery/computer/mech_bay_power_console/Topic(href, href_list) + if(href_list["autostart"]) + autostart = !autostart + if(href_list["voltage"]) + voltage = text2num(href_list["voltage"]) + if(recharge_port) + recharge_port.set_voltage(voltage) + updateUsrDialog() + return +*/ diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm index 0b8fd7a69c..6b7ef0242e 100644 --- a/code/game/objects/effects/decals/Cleanable/fuel.dm +++ b/code/game/objects/effects/decals/Cleanable/fuel.dm @@ -6,7 +6,10 @@ obj/effect/decal/cleanable/liquid_fuel anchored = 1 var/amount = 1 //Basically moles. - New(newLoc,amt=1) + New(turf/newLoc,amt=1,nologs=0) + if(!nologs) + message_admins("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z]) (JMP)") + log_game("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z])") src.amount = amt //Be absorbed by any other liquid fuel in the tile. @@ -30,7 +33,7 @@ obj/effect/decal/cleanable/liquid_fuel var/turf/simulated/origin = get_turf(src) if(origin.CanPass(null, target, 0, 0) && target.CanPass(null, origin, 0, 0)) if(!locate(/obj/effect/decal/cleanable/liquid_fuel) in target) - new/obj/effect/decal/cleanable/liquid_fuel(target, amount*0.25) + new/obj/effect/decal/cleanable/liquid_fuel(target, amount*0.25,1) amount *= 0.75 flamethrower_fuel diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index a1de93987f..02d11f2251 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -14,7 +14,10 @@ /obj/item/clothing/suit/space/rig ) -/obj/item/device/modkit/afterattack(obj/O, mob/user as mob) +/obj/item/device/modkit/afterattack(obj/O, mob/user as mob, proximity) + if(!proximity) + return + if (!target_species) return //it shouldn't be null, okay? @@ -38,6 +41,7 @@ var/in_list = (target_species in I.species_restricted) if (excluding ^ in_list) user << "[I] is already modified." + return if(!isturf(O.loc)) user << "[O] must be safely placed on the ground for modification." diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 74374297cc..130770aa9d 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -13,7 +13,10 @@ modes += "[C]" mode = pick(modes) -/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob) +/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob, proximity) + if(!proximity) + return + if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/tank) || istype(A,/obj/machinery/atmospherics/pipe/vent) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated) || !in_range(user, A)) return var/obj/machinery/atmospherics/pipe/P = A diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 6b86d88fe0..8ef724fcde 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -364,7 +364,9 @@ REAGENT SCANNER var/details = 0 var/recent_fail = 0 -/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob) +/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob, proximity) + if(!proximity) + return if (user.stat) return if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index 19d146b82c..6355fd26fd 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -42,7 +42,7 @@ var/mob/living/carbon/human/H = loc - var/efficiency = H.get_pressure_protection() //you need to have a good seal for effective cooling + var/efficiency = 1 - H.get_pressure_weakness() //you need to have a good seal for effective cooling var/env_temp = get_environment_temperature() //wont save you from a fire var/temp_adj = min(H.bodytemperature - max(thermostat, env_temp), max_cooling) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 1e7c459756..8cace9a223 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -16,6 +16,7 @@ return 1 /obj/item/device/transfer_valve/attackby(obj/item/item, mob/user) + var/turf/location = get_turf(src) // For admin logs if(istype(item, /obj/item/weapon/tank)) if(tank_one && tank_two) user << "There are already two tanks attached, remove one first." @@ -31,6 +32,8 @@ user.drop_item() item.loc = src user << "You attach the tank to the transfer valve." + message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. (JMP)") + log_game("[key_name_admin(user)] attached both tanks to a transfer valve.") update_icon() nanomanager.update_uis(src) // update all UIs attached to src @@ -51,7 +54,7 @@ A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). bombers += "[key_name(user)] attached a [item] to a transfer valve." - message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") + message_admins("[key_name_admin(user)] attached a [item] to a transfer valve. (JMP)") log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") attacher = user nanomanager.update_uis(src) // update all UIs attached to src @@ -83,7 +86,7 @@ // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm ui = new(user, src, ui_key, "transfer_valve.tmpl", "Tank Transfer Valve", 460, 280) // when the ui is first opened this is the data it will use - ui.set_initial_data(data) + ui.set_initial_data(data) // open the new ui window ui.open() // auto update every Master Controller tick diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 9945c2a00a..d2825c82f7 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -52,15 +52,19 @@ use(1) else return 1 - else + + else if(!in_use) if(amount < 2) user << "\blue You need at least two rods to do this." return usr << "\blue Assembling grille..." + in_use = 1 if (!do_after(usr, 10)) + in_use = 0 return var/obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc ) usr << "\blue You assemble a grille" + in_use = 0 F.add_fingerprint(usr) use(2) return diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 843cb78246..d24c9350fa 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -236,76 +236,6 @@ return 0 -/* - * Glass shards - TODO: Move this into code/game/object/item/weapons - */ -/obj/item/weapon/shard/Bump() - - spawn( 0 ) - if (prob(20)) - src.force = 15 - else - src.force = 4 - ..() - return - return - -/obj/item/weapon/shard/New() - - src.icon_state = pick("large", "medium", "small") - switch(src.icon_state) - if("small") - src.pixel_x = rand(-12, 12) - src.pixel_y = rand(-12, 12) - if("medium") - src.pixel_x = rand(-8, 8) - src.pixel_y = rand(-8, 8) - if("large") - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - else - return - -/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if ( istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - var/obj/item/stack/sheet/glass/NG = new (user.loc) - for (var/obj/item/stack/sheet/glass/G in user.loc) - if(G==NG) - continue - if(G.amount>=G.max_amount) - continue - G.attackby(NG, user) - usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets." - //SN src = null - del(src) - return - return ..() - -/obj/item/weapon/shard/Crossed(AM as mob|obj) - if(ismob(AM)) - var/mob/M = AM - M << "\red You step in the broken glass!" - playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - - if(H.species.flags & IS_SYNTHETIC) - return - - if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) ) - var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) - if(affecting.status & ORGAN_ROBOT) - return - H.Weaken(3) - if(affecting.take_damage(5, 0)) - H.UpdateDamageIcon() - H.updatehealth() - ..() - - /* diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index f92f5b759c..19cb00b999 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -112,7 +112,9 @@ return ..() -/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob) +/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob, proximity) + if(!proximity) + return if(istype(A,/obj/item) && imp) var/obj/item/weapon/implant/compressed/c = imp if (c.scanned) diff --git a/code/game/objects/items/weapons/shards.dm b/code/game/objects/items/weapons/shards.dm new file mode 100644 index 0000000000..1eeb6dff8d --- /dev/null +++ b/code/game/objects/items/weapons/shards.dm @@ -0,0 +1,114 @@ +// Glass shards + +/obj/item/weapon/shard + name = "glass shard" + icon = 'icons/obj/shards.dmi' + icon_state = "large" + sharp = 1 + edge = 1 + desc = "Could probably be used as ... a throwing weapon?" + w_class = 2.0 + force = 5.0 + throwforce = 8.0 + item_state = "shard-glass" + matter = list("glass" = 3750) + attack_verb = list("stabbed", "slashed", "sliced", "cut") + +/obj/item/weapon/shard/suicide_act(mob/user) + viewers(user) << pick("\red [user] is slitting \his wrists with \the [src]! It looks like \he's trying to commit suicide.", \ + "\red [user] is slitting \his throat with \the [src]! It looks like \he's trying to commit suicide.") + return (BRUTELOSS) + +/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) + return ..() + +/obj/item/weapon/shard/Bump() + + spawn( 0 ) + if (prob(20)) + src.force = 15 + else + src.force = 4 + ..() + return + return + +/obj/item/weapon/shard/New() + + src.icon_state = pick("large", "medium", "small") + switch(src.icon_state) + if("small") + src.pixel_x = rand(-12, 12) + src.pixel_y = rand(-12, 12) + if("medium") + src.pixel_x = rand(-8, 8) + src.pixel_y = rand(-8, 8) + if("large") + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + else + return + +/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if ( istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0, user)) + var/obj/item/stack/sheet/glass/NG = new (user.loc) + for (var/obj/item/stack/sheet/glass/G in user.loc) + if(G==NG) + continue + if(G.amount>=G.max_amount) + continue + G.attackby(NG, user) + usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets." + //SN src = null + del(src) + return + return ..() + +/obj/item/weapon/shard/Crossed(AM as mob|obj) + if(ismob(AM)) + var/mob/M = AM + M << "\red You step on \the [src]!" + playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) // not sure how to handle metal shards with sounds + if(ishuman(M)) + var/mob/living/carbon/human/H = M + + if(H.species.flags & IS_SYNTHETIC) + return + + if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) ) + var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) + if(affecting.status & ORGAN_ROBOT) + return + H.Weaken(3) + if(affecting.take_damage(5, 0)) + H.UpdateDamageIcon() + H.updatehealth() + ..() + +// Shrapnel + +/obj/item/weapon/shard/shrapnel + name = "shrapnel" + icon = 'icons/obj/shards.dmi' + icon_state = "shrapnellarge" + desc = "A bunch of tiny bits of shattered metal." + +/obj/item/weapon/shard/shrapnel/New() + + src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall") + switch(src.icon_state) + if("shrapnelsmall") + src.pixel_x = rand(-12, 12) + src.pixel_y = rand(-12, 12) + if("shrapnelmedium") + src.pixel_x = rand(-8, 8) + src.pixel_y = rand(-8, 8) + if("shrapnellarge") + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + else + return \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 5353b6871d..061548848c 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -68,6 +68,7 @@ icon_type = "egg" name = "egg box" storage_slots = 12 + max_combined_w_class = 24 can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/egg") /obj/item/weapon/storage/fancy/egg_box/New() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 64d72508d3..782a5a1745 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -65,7 +65,9 @@ O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1) return -/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob) +/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob, proximity) + if(!proximity) + return if (istype(A, /turf/simulated/floor)) user << "\blue You hit the floor with the [src]." call(/obj/effect/rune/proc/revealrunes)(src) @@ -231,7 +233,7 @@ update_icon(user) /obj/item/weapon/butterfly/switchblade - name = "/proper switchblade" + name = "switchblade" desc = "A classic switchblade with gold engraving. Just holding it makes you feel like a gangster." icon_state = "switchblade" diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 19bbcf36f4..b3b0404054 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -47,13 +47,21 @@ buckle_mob(M, user) return +/obj/structure/stool/bed/proc/afterbuckle(mob/M as mob) // Called after somebody buckled / unbuckled + return + + /obj/structure/stool/bed/proc/unbuckle() if(buckled_mob) if(buckled_mob.buckled == src) //this is probably unneccesary, but it doesn't hurt buckled_mob.buckled = null buckled_mob.anchored = initial(buckled_mob.anchored) buckled_mob.update_canmove() + + var/M = buckled_mob buckled_mob = null + + afterbuckle(M) return /obj/structure/stool/bed/proc/manual_unbuckle(mob/user as mob) @@ -103,6 +111,7 @@ M.update_canmove() src.buckled_mob = M src.add_fingerprint(user) + afterbuckle(M) return /* diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 115806277c..31a1681eac 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -95,25 +95,40 @@ /obj/structure/stool/bed/chair/comfy name = "comfy chair" desc = "It looks comfy." + icon_state = "comfychair" + color = rgb(255,255,255) + var/image/armrest = null + +/obj/structure/stool/bed/chair/comfy/New() + armrest = image("icons/obj/objects.dmi", "comfychair_armrest") + armrest.layer = MOB_LAYER + 0.1 + + return ..() + +/obj/structure/stool/bed/chair/comfy/afterbuckle() + if(buckled_mob) + overlays += armrest + else + overlays -= armrest /obj/structure/stool/bed/chair/comfy/brown - icon_state = "comfychair_brown" + color = rgb(255,113,0) /obj/structure/stool/bed/chair/comfy/beige - icon_state = "comfychair_beige" + color = rgb(255,253,195) /obj/structure/stool/bed/chair/comfy/teal - icon_state = "comfychair_teal" + color = rgb(0,255,255) /obj/structure/stool/bed/chair/office anchored = 0 movable = 1 /obj/structure/stool/bed/chair/comfy/black - icon_state = "comfychair_black" + color = rgb(167,164,153) /obj/structure/stool/bed/chair/comfy/lime - icon_state = "comfychair_lime" + color = rgb(255,251,0) /obj/structure/stool/bed/chair/office/Move() ..() diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 705351acfc..9c00ee3896 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -18,12 +18,17 @@ buckled_mob.dir = dir /obj/structure/stool/bed/chair/wheelchair/relaymove(mob/user, direction) + // Redundant check? if(user.stat || user.stunned || user.weakened || user.paralysis || user.lying || user.restrained()) if(user==pulling) pulling = null user.pulledby = null user << "\red You lost your grip!" return + if(buckled_mob && pulling && user == buckled_mob) + if(pulling.stat || pulling.stunned || pulling.weakened || pulling.paralysis || pulling.lying || pulling.restrained()) + pulling.pulledby = null + pulling = null if(user.pulling && (user == pulling)) pulling = null user.pulledby = null @@ -136,12 +141,12 @@ if(propelled || (pulling && (pulling.a_intent == "hurt"))) var/mob/living/occupant = buckled_mob unbuckle() - + if (pulling && (pulling.a_intent == "hurt")) occupant.throw_at(A, 3, 3, pulling) else if (propelled) occupant.throw_at(A, 3, propelled) - + occupant.apply_effect(6, STUN, 0) occupant.apply_effect(6, WEAKEN, 0) occupant.apply_effect(6, STUTTER, 0) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index b3cdba6030..39c19c76fe 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -254,7 +254,6 @@ //send resources to the client. It's here in its own proc so we can move it around easiliy if need be /client/proc/send_resources() -// preload_vox() //Causes long delays with initial start window and subsequent windows when first logged in. getFiles( 'html/search.js', diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 38ef31dbf1..6e078326fe 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -292,6 +292,8 @@ datum/preferences if(total_cost < MAX_GEAR_COST) dat += " \[add\]" + if(gear && gear.len) + dat += " \[remove\]" dat += "

Occupation Choices
" dat += "\tSet Preferences
" @@ -999,10 +1001,18 @@ datum/preferences user << "\red That item will exceed the maximum loadout cost of [MAX_GEAR_COST] points." else if(href_list["task"] == "remove") - var/to_remove = href_list["gear"] - if(!to_remove) return + + if(isnull(gear) || !islist(gear)) + gear = list() + if(!gear.len) + return + + var/choice = input(user, "Select gear to remove: ") as null|anything in gear + if(!choice) + return + for(var/gear_name in gear) - if(gear_name == to_remove) + if(gear_name == choice) gear -= gear_name break diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 3f3fbbd877..615b5f085f 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -133,7 +133,7 @@ /obj/item/clothing/shoes/swimmingfins desc = "Help you swim good." name = "swimming fins" - icon_state = "flipperfeet" + icon_state = "flippers" flags = NOSLIP slowdown = SHOES_SLOWDOWN+1 species_restricted = null diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 53824fc9d6..83b0616aea 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -170,6 +170,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost, you won't be able to play this round for another 30 minutes! You can't change your mind so choose wisely!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all resting = 1 + var/turf/location = get_turf(src) + message_admins("[key_name_admin(usr)] has ghosted. (JMP)") + log_game("[key_name_admin(usr)] has ghosted.") var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly. return diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 09c0e0e4cb..91253e2ca6 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -85,15 +85,18 @@ return 0 -/mob/proc/drop_from_inventory(var/obj/item/W) +/mob/proc/drop_from_inventory(var/obj/item/W, var/atom/Target = null) if(W) + if(!Target) + Target = loc + if(client) client.screen -= W u_equip(W) if(!W) return 1 // self destroying objects (tk, grabs) W.layer = initial(W.layer) - W.loc = loc + W.loc = Target - var/turf/T = get_turf(loc) + var/turf/T = get_turf(Target) if(isturf(T)) T.Entered(W) @@ -316,4 +319,3 @@ if (del_on_fail) del(W) return equipped - diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index d8fd4b7000..575996a84f 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -104,9 +104,9 @@ shock_damage *= siemens_coeff if (shock_damage<1) return 0 - + src.apply_damage(shock_damage, BURN, def_zone, used_weapon="Electrocution") - + playsound(loc, "sparks", 50, 1, -1) if (shock_damage > 10) src.visible_message( @@ -217,7 +217,7 @@ var/mob/living/carbon/human/H = src H.w_uniform.add_fingerprint(M) - if(lying) + if(lying || src.sleeping) src.sleeping = max(0,src.sleeping-5) if(src.sleeping == 0) src.resting = 0 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index e10c35efa7..2a9850171e 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -280,6 +280,7 @@ for(var/datum/wound/W in temp.wounds) if(W.internal && !temp.open) continue // can't see internal wounds var/this_wound_desc = W.desc + if(W.damage_type == BURN && W.salved) this_wound_desc = "salved [this_wound_desc]" if(W.bleeding()) this_wound_desc = "bleeding [this_wound_desc]" else if(W.bandaged) this_wound_desc = "bandaged [this_wound_desc]" if(W.germ_level > 600) this_wound_desc = "badly infected [this_wound_desc]" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 54ed39584c..0080f217f9 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -2,7 +2,7 @@ //NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick! #define HUMAN_MAX_OXYLOSS 1 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it. -#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /5) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 100HP to get through, so (1/3)*last_tick_duration per second. Breaths however only happen every 4 ticks. +#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /6) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 50HP to get through, so (1/6)*last_tick_duration per second. Breaths however only happen every 4 ticks. #define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point #define HEAT_DAMAGE_LEVEL_2 4 //Amount of damage applied when your body temperature passes the 400K point @@ -35,6 +35,8 @@ /mob/living/carbon/human/Life() + + set invisibility = 0 set background = 1 @@ -73,7 +75,7 @@ //No need to update all of these procs if the guy is dead. if(stat != DEAD && !in_stasis) - if(air_master.current_cycle%4==2 || failed_last_breath) //First, resolve location and get a breath + if(air_master.current_cycle%4==2 || failed_last_breath || (health < config.health_threshold_crit)) //First, resolve location and get a breath breathe() //Only try to take a breath every 4 ticks, unless suffocating else //Still give containing object the chance to interact @@ -130,38 +132,52 @@ for(var/obj/item/weapon/grab/G in src) G.process() +// Calculate how vulnerable the human is to under- and overpressure. +// Returns 0 (equals 0 %) if sealed in an undamaged suit, 1 if unprotected (equals 100%). +// Suitdamage can modifiy this in 10% steps. +/mob/living/carbon/human/proc/get_pressure_weakness() -//Much like get_heat_protection(), this returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to. -/mob/living/carbon/human/proc/get_pressure_protection() - var/pressure_adjustment_coefficient = 1 //Determins how much the clothing you are wearing protects you in percent. + var/pressure_adjustment_coefficient = 1 // Assume no protection at first. - if(head && (head.flags & STOPSPRESSUREDMAGE)) - pressure_adjustment_coefficient -= PRESSURE_HEAD_REDUCTION_COEFFICIENT + if(wear_suit && (wear_suit.flags & STOPSPRESSUREDMAGE) && head && (head.flags & STOPSPRESSUREDMAGE)) // Complete set of pressure-proof suit worn, assume fully sealed. + pressure_adjustment_coefficient = 0 - if(wear_suit && (wear_suit.flags & STOPSPRESSUREDMAGE)) - pressure_adjustment_coefficient -= PRESSURE_SUIT_REDUCTION_COEFFICIENT - - //Handles breaches in your space suit. 10 suit damage equals a 100% loss of pressure reduction. + // Handles breaches in your space suit. 10 suit damage equals a 100% loss of pressure protection. if(istype(wear_suit,/obj/item/clothing/suit/space)) var/obj/item/clothing/suit/space/S = wear_suit if(S.can_breach && S.damage) - var/pressure_loss = S.damage * 0.1 - pressure_adjustment_coefficient += pressure_loss + pressure_adjustment_coefficient += S.damage * 0.1 - pressure_adjustment_coefficient = min(1,max(pressure_adjustment_coefficient,0)) //So it isn't less than 0 or larger than 1. + pressure_adjustment_coefficient = min(1,max(pressure_adjustment_coefficient,0)) // So it isn't less than 0 or larger than 1. - return 1 - pressure_adjustment_coefficient //want 0 to be bad protection, 1 to be good protection + return pressure_adjustment_coefficient +// Calculate how much of the enviroment pressure-difference affects the human. /mob/living/carbon/human/calculate_affecting_pressure(var/pressure) - ..() - var/pressure_difference = abs( pressure - ONE_ATMOSPHERE ) + var/pressure_difference - pressure_difference = pressure_difference * (1 - get_pressure_protection()) + // First get the absolute pressure difference. + if(pressure < ONE_ATMOSPHERE) // We are in an underpressure. + pressure_difference = ONE_ATMOSPHERE - pressure + + else //We are in an overpressure or standard atmosphere. + pressure_difference = pressure - ONE_ATMOSPHERE + + if(pressure_difference < 5) // If the difference is small, don't bother calculating the fraction. + pressure_difference = 0 - if(pressure > ONE_ATMOSPHERE) - return ONE_ATMOSPHERE + pressure_difference else + // Otherwise calculate how much of that absolute pressure difference affects us, can be 0 to 1 (equals 0% to 100%). + // This is our relative difference. + pressure_difference *= get_pressure_weakness() + + // The difference is always positive to avoid extra calculations. + // Apply the relative difference on a standard atmosphere to get the final result. + // The return value will be the adjusted_pressure of the human that is the basis of pressure warnings and damage. + if(pressure < ONE_ATMOSPHERE) return ONE_ATMOSPHERE - pressure_difference + else + return ONE_ATMOSPHERE + pressure_difference /mob/living/carbon/human proc/handle_disabilities() diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm index fe21c7a6ae..0a12334701 100644 --- a/code/modules/mob/living/carbon/monkey/diona.dm +++ b/code/modules/mob/living/carbon/monkey/diona.dm @@ -108,7 +108,7 @@ var/list/trays = list() for(var/obj/machinery/portable_atmospherics/hydroponics/tray in range(1)) - if(tray.nutrilevel < 10) + if(tray.nutrilevel < 10 && src.Adjacent(tray)) trays += tray var/obj/machinery/portable_atmospherics/hydroponics/target = input("Select a tray:") as null|anything in trays @@ -127,7 +127,7 @@ var/list/trays = list() for(var/obj/machinery/portable_atmospherics/hydroponics/tray in range(1)) - if(tray.weedlevel > 0) + if(tray.weedlevel > 0 && src.Adjacent(tray)) trays += tray var/obj/machinery/portable_atmospherics/hydroponics/target = input("Select a tray:") as null|anything in trays @@ -186,7 +186,8 @@ var/list/choices = list() for(var/mob/living/carbon/human/H in oview(1,src)) - choices += H + if(src.Adjacent(H)) + choices += H var/mob/living/carbon/human/M = input(src,"Who do you wish to take a sample from?") in null|choices diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 08bd3cd97e..ce68106358 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -80,11 +80,6 @@ emote(pick("scratch","jump","roll","tail")) updatehealth() - -/mob/living/carbon/monkey/calculate_affecting_pressure(var/pressure) - ..() - return pressure - /mob/living/carbon/monkey proc/handle_disabilities() @@ -389,9 +384,8 @@ //Moved these vars here for use in the fuck-it-skip-processing check. var/pressure = environment.return_pressure() - var/adjusted_pressure = calculate_affecting_pressure(pressure) //Returns how much pressure actually affects the mob. + if(pressure < WARNING_HIGH_PRESSURE && pressure > WARNING_LOW_PRESSURE && abs(environment.temperature - 293.15) < 20 && abs(bodytemperature - 310.14) < 0.5 && environment.gas["phoron"] < MOLES_PHORON_VISIBLE) - if(adjusted_pressure < WARNING_HIGH_PRESSURE && adjusted_pressure > WARNING_LOW_PRESSURE && abs(environment.temperature - 293.15) < 20 && abs(bodytemperature - 310.14) < 0.5 && environment.gas["phoron"] < gas_data.overlay_limit["phoron"]) //Hopefully should fix the walk-inside-still-pressure-warning issue. if(pressure_alert) @@ -413,9 +407,9 @@ bodytemperature += 0.1*(environment.temperature - bodytemperature)*environment_heat_capacity/(environment_heat_capacity + 270000) //Account for massive pressure differences - switch(adjusted_pressure) + switch(pressure) if(HAZARD_HIGH_PRESSURE to INFINITY) - adjustBruteLoss( min( ( (adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) ) + adjustBruteLoss( min( ( (pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) ) pressure_alert = 2 if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE) pressure_alert = 1 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3ab8632e8e..2c0b3bbdb6 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -18,7 +18,7 @@ //This proc is used for mobs which are affected by pressure to calculate the amount of pressure that actually //affects them once clothing is factored in. ~Errorage /mob/living/proc/calculate_affecting_pressure(var/pressure) - return 0 + return //sort of a legacy burn method for /electrocute, /shock, and the e_chair @@ -300,6 +300,7 @@ dead_mob_list -= src living_mob_list += src tod = null + timeofdeath = 0 // restore us to conciousness stat = CONSCIOUS diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 758883dfff..792ef9296f 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -446,13 +446,6 @@ var/list/ai_verbs_default = list( lawchannel = setchannel checklaws() - //Uncomment this line of code if you are enabling the AI Vocal (VOX) announcements. -/* - if(href_list["say_word"]) - play_vox_word(href_list["say_word"], null, src) - return -*/ - if (href_list["lawi"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite var/L = text2num(href_list["lawi"]) switch(ioncheck[L]) diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index f3f1b4e1c8..62a75fad24 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -3,126 +3,3 @@ return parent.say(message) //If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead. return ..(message) - -// These Verbs are commented out since we've disabled the AI vocal (VOX) announcements. -// If you re-enable them there is 3 lines in ai.dm Topic() that you need to uncomment as well. -// just search for VOX in there. - -/* -var/announcing_vox = 0 // Stores the time of the last announcement -var/const/VOX_CHANNEL = 200 -var/const/VOX_DELAY = 100 // 10 seconds -var/const/VOX_PATH = "sound/vox/" - -/mob/living/silicon/ai/verb/announcement_help() - - set name = "Announcement Help" - set desc = "Display a list of vocal words to announce to the crew." - set category = "AI Commands" - - - var/dat = "Here is a list of words you can type into the 'Announcement' button to create sentences to vocally announce to everyone on the same level at you.
\ - \ - WARNING:
Misuse of the announcement system will get you job banned.
" - - var/index = 0 - var/list/vox_words = flist(VOX_PATH) // flist will return a list of strings with all the files in the path - for(var/word in vox_words) - index++ - var/stripped_word = copytext(word, 1, length(word) - 3) // Remove the .wav - dat += "[capitalize(stripped_word)]" - if(index != vox_words.len) - dat += " / " - - src << browse(dat, "window=announce_help;size=500x400") - - -/mob/living/silicon/ai/verb/announcement() - - set name = "Announcement" - set desc = "Create a vocal announcement by typing in the available words to create a sentence." - set category = "AI Commands" - - if(announcing_vox > world.time) - src << "Please wait [round((announcing_vox - world.time) / 10)] seconds." - return - - var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", src.last_announcement) as text - - last_announcement = message - - if(!message || announcing_vox > world.time) - return - - var/list/words = text2list(trim(message), " ") - var/list/incorrect_words = list() - - if(words.len > 30) - words.len = 30 - - // Detect incorrect words which aren't .wav files. - for(var/word in words) - word = trim(word) - if(!word) - words -= word - continue - if(!vox_word_exists(word)) - incorrect_words += word - - if(incorrect_words.len) - src << "These words are not available on the announcement system: [english_list(incorrect_words)]." - return - - announcing_vox = world.time + VOX_DELAY - - log_game("[key_name_admin(src)] made a vocal announcement with the following message: [message].") - - for(var/word in words) - play_vox_word(word, src.z, null) - - -/proc/play_vox_word(var/word, var/z_level, var/mob/only_listener) - - word = lowertext(word) - - if(vox_word_exists(word)) - - var/sound_file = get_vox_file(word) - var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL) - voice.status = SOUND_STREAM - - // If there is no single listener, broadcast to everyone in the same z level - if(!only_listener) - // Play voice for all mobs in the z level - for(var/mob/M in player_list) - if(M.client) - var/turf/T = get_turf(M) - if(T.z == z_level) - M << voice - else - only_listener << voice - return 1 - return 0 - - -/proc/vox_word_exists(var/word) - return fexists("[VOX_PATH][word].wav") - -/proc/get_vox_file(var/word) - if(vox_word_exists(word)) - return file("[VOX_PATH][word].wav") - -// Dynamically loading it has bad results with sounds overtaking each other, even with the wait variable. -// We send the file to the user when they login. - -/client/proc/preload_vox() - var/list/vox_files = flist(VOX_PATH) - for(var/file in vox_files) - // src << "Downloading [file]" - var/sound/S = sound("[VOX_PATH][file]") - src << browse_rsc(S) - - -*/ diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm index 33901641bd..73a6d59c15 100644 --- a/code/modules/mob/living/silicon/pai/recruit.dm +++ b/code/modules/mob/living/silicon/pai/recruit.dm @@ -19,6 +19,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates /datum/paiController + var/inquirer = null var/list/pai_candidates = list() var/list/asked = list() @@ -344,6 +345,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates user << browse(dat, "window=findPai") + /datum/paiController/proc/requestRecruits() for(var/mob/dead/observer/O in player_list) if(O.has_enabled_antagHUD == 1 && config.antag_hud_restricted) @@ -368,7 +370,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates if(!C) return asked.Add(C.key) asked[C.key] = world.time - var/response = alert(C, "Someone is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round") + var/response = alert(C, "[inquirer] is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round") if(!C) return //handle logouts that happen whilst the alert is waiting for a response. if(response == "Yes") recruitWindow(C.mob) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index dfe1a9db29..18adecccc3 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -69,9 +69,9 @@ /obj/item/weapon/gripper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) return -/obj/item/weapon/gripper/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) +/obj/item/weapon/gripper/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity, params) - if(!target || !flag) //Target is invalid or we are not adjacent. + if(!target || !proximity) //Target is invalid or we are not adjacent. return //There's some weirdness with items being lost inside the arm. Trying to fix all cases. ~Z @@ -80,25 +80,22 @@ wrapped = thing break - if(wrapped) //Already have an item. - + if(wrapped) //Already have an item. + + //Temporary put wrapped into user so target's attackby() checks pass. wrapped.loc = user - //Pass the attack on to the target. + + //Pass the attack on to the target. This might delete/relocate wrapped. target.attackby(wrapped,user) - - if(wrapped && src && wrapped.loc == user) + + //If wrapped did neither get deleted nor put into target, put it back into the gripper. + if(wrapped && user && (wrapped.loc == user)) wrapped.loc = src - - //Sanity/item use checks. - - if(!wrapped || !user) - return - - if(wrapped.loc != src.loc) + else wrapped = null return - if(istype(target,/obj/item)) //Check that we're not pocketing a mob. + else if(istype(target,/obj/item)) //Check that we're not pocketing a mob. //...and that the item is not in a container. if(!isturf(target.loc)) @@ -158,9 +155,9 @@ /obj/item/weapon/matter_decompiler/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) return -/obj/item/weapon/matter_decompiler/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) +/obj/item/weapon/matter_decompiler/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity, params) - if(!flag) return //Not adjacent. + if(!proximity) return //Not adjacent. //We only want to deal with using this on turfs. Specific items aren't important. var/turf/T = get_turf(target) @@ -357,4 +354,4 @@ stack = stack_plastic stack.amount++ - decompiler.stored_comms[type]--; \ No newline at end of file + decompiler.stored_comms[type]--; diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index ed66f1ae49..e0ebe671f1 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -1,9 +1,9 @@ /mob/living/silicon/robot/updatehealth() if(status_flags & GODMODE) - health = 200 + health = maxHealth stat = CONSCIOUS return - health = 200 - (getBruteLoss() + getFireLoss()) + health = maxHealth - (getBruteLoss() + getFireLoss()) return /mob/living/silicon/robot/getBruteLoss() @@ -145,4 +145,4 @@ brute -= (picked.brute_damage - brute_was) burn -= (picked.electronics_damage - burn_was) - parts -= picked \ No newline at end of file + parts -= picked diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index 931cb0556b..33748f056e 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -6,7 +6,9 @@ name = "RoboTray" desc = "An autoloading tray specialized for carrying refreshments." -/obj/item/weapon/tray/robotray/afterattack(atom/target, mob/user as mob) +/obj/item/weapon/tray/robotray/afterattack(atom/target, mob/user as mob, proximity) + if(!proximity) + return if ( !target ) return // pick up items, mostly copied from base tray pickup proc diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 45acf2c713..42f923aa29 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -168,7 +168,8 @@ stacktypes = list( /obj/item/stack/sheet/metal = 50, /obj/item/stack/sheet/plasteel = 10, - /obj/item/stack/sheet/rglass = 50 + /obj/item/stack/sheet/rglass = 50, + /obj/item/stack/rods = 50 ) New() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index f044d849ec..9071e3193b 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -434,6 +434,9 @@ // And uncomment this, too. //new_character.dna.UpdateSE() + // Do the initial caching of the player's body icons. + new_character.regenerate_icons() + new_character.key = key //Manually transfer the key to log them in return new_character diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 64eda75b91..05f7635bcf 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -206,6 +206,9 @@ This function completely restores a damaged organ to perfect condition. perma_injury = 0 brute_dam = 0 burn_dam = 0 + germ_level = 0 + wounds.Cut() + number_wounds = 0 // handle internal organs for(var/datum/organ/internal/current_organ in internal_organs) @@ -265,25 +268,6 @@ This function completely restores a damaged organ to perfect condition. if(W) wounds += W -/datum/organ/external/proc/get_wound_type(var/type = CUT, var/damage) - //if you look a the names in the wound's stages list for each wound type you will see the logic behind these values - switch(type) - if(CUT) - if (damage <= 5) return /datum/wound/cut/small - if (damage <= 15) return /datum/wound/cut/deep - if (damage <= 25) return /datum/wound/cut/flesh - if (damage <= 50) return /datum/wound/cut/gaping - if (damage <= 60) return /datum/wound/cut/gaping_big - return /datum/wound/cut/massive - if(BRUISE) - return /datum/wound/bruise - if(BURN) - if (damage <= 5) return /datum/wound/burn/moderate - if (damage <= 15) return /datum/wound/burn/large - if (damage <= 30) return /datum/wound/burn/severe - if (damage <= 40) return /datum/wound/burn/deep - return /datum/wound/burn/carbonised - /**************************************************** PROCESSING & UPDATING ****************************************************/ @@ -396,10 +380,9 @@ Note that amputating the affected organ does in fact remove the infection from t if(germ_level >= INFECTION_LEVEL_ONE) //having an infection raises your body temperature - var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 1)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature - if (fever_temperature > owner.bodytemperature) - //need to make sure we raise temperature fast enough to get around environmental cooling preventing us from reaching fever_temperature - owner.bodytemperature += (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1 + var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 5)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature + //need to make sure we raise temperature fast enough to get around environmental cooling preventing us from reaching fever_temperature + owner.bodytemperature += between(0, (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1, fever_temperature - owner.bodytemperature) if(prob(round(germ_level/10))) if (antibiotics < 5) diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm index db3dd8be7c..9d4a5364ae 100644 --- a/code/modules/organs/wound.dm +++ b/code/modules/organs/wound.dm @@ -7,7 +7,7 @@ var/current_stage = 0 // description of the wound - var/desc = "" + var/desc = "wound" //default in case something borks // amount of damage this wound causes var/damage = 0 @@ -207,6 +207,44 @@ return (damage_type == BRUISE && wound_damage() >= 20 || damage_type == CUT && wound_damage() >= 5) +/** WOUND DEFINITIONS **/ + +//Note that the MINIMUM damage before a wound can be applied should correspond to +//the damage amount for the stage with the same name as the wound. +//e.g. /datum/wound/cut/deep should only be applied for 15 damage and up, +//because in it's stages list, "deep cut" = 15. +/proc/get_wound_type(var/type = CUT, var/damage) + switch(type) + if(CUT) + switch(damage) + if(70 to INFINITY) + return /datum/wound/cut/massive + if(60 to 70) + return /datum/wound/cut/gaping_big + if(50 to 60) + return /datum/wound/cut/gaping + if(25 to 50) + return /datum/wound/cut/flesh + if(15 to 25) + return /datum/wound/cut/deep + if(0 to 15) + return /datum/wound/cut/small + if(BRUISE) + return /datum/wound/bruise + if(BURN) + switch(damage) + if(50 to INFINITY) + return /datum/wound/burn/carbonised + if(40 to 50) + return /datum/wound/burn/deep + if(30 to 40) + return /datum/wound/burn/severe + if(15 to 30) + return /datum/wound/burn/large + if(0 to 15) + return /datum/wound/burn/moderate + return null //no wound + /** CUTS **/ /datum/wound/cut/small // link wound descriptions to amounts of damage @@ -220,7 +258,7 @@ damage_type = CUT /datum/wound/cut/flesh - max_bleeding_stage = 3 + max_bleeding_stage = 4 stages = list("ugly ripped flesh wound" = 35, "ugly flesh wound" = 30, "flesh wound" = 25, "blood soaked clot" = 15, "large scab" = 5, "fresh skin" = 0) damage_type = CUT @@ -249,25 +287,26 @@ datum/wound/cut/massive /** BURNS **/ /datum/wound/burn/moderate - stages = list("ripped burn" = 10, "moderate burn" = 5, "moderate salved burn" = 2, "fresh skin" = 0) + stages = list("ripped burn" = 10, "moderate burn" = 5, "healing moderate burn" = 2, "fresh skin" = 0) damage_type = BURN /datum/wound/burn/large - stages = list("ripped large burn" = 20, "large burn" = 15, "large salved burn" = 5, "fresh skin" = 0) + stages = list("ripped large burn" = 20, "large burn" = 15, "healing large burn" = 5, "fresh skin" = 0) damage_type = BURN /datum/wound/burn/severe - stages = list("ripped severe burn" = 35, "severe burn" = 30, "severe salved burn" = 10, "burn scar" = 0) + stages = list("ripped severe burn" = 35, "severe burn" = 30, "healing severe burn" = 10, "burn scar" = 0) damage_type = BURN /datum/wound/burn/deep - stages = list("ripped deep burn" = 45, "deep burn" = 40, "deep salved burn" = 15, "large burn scar" = 0) + stages = list("ripped deep burn" = 45, "deep burn" = 40, "healing deep burn" = 15, "large burn scar" = 0) damage_type = BURN /datum/wound/burn/carbonised - stages = list("carbonised area" = 50, "treated carbonised area" = 20, "massive burn scar" = 0) + stages = list("carbonised area" = 50, "healing carbonised area" = 20, "massive burn scar" = 0) damage_type = BURN +/** INTERNAL BLEEDING **/ /datum/wound/internal_bleeding internal = 1 stages = list("severed artery" = 30, "cut artery" = 20, "damaged artery" = 10, "bruised artery" = 5) @@ -284,4 +323,4 @@ datum/wound/cut/massive return 0 //cannot be merged /datum/wound/lost_limb/small - stages = list("ripped stump" = 40, "bloody stump" = 30, "clotted stump" = 15, "scarred stump" = 0) \ No newline at end of file + stages = list("ripped stump" = 40, "bloody stump" = 30, "clotted stump" = 15, "scarred stump" = 0) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index fe2326c21b..5fff5a7f31 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -30,6 +30,7 @@ var/icon/img //Big photo image var/scribble //Scribble on the back. var/icon/tiny + var/photo_size = 3 /obj/item/weapon/photo/attack_self(mob/user as mob) examine() @@ -54,9 +55,9 @@ user << browse_rsc(img, "tmp_photo.png") user << browse("[name]" \ + "" \ - + "" \ + + "" \ + "[scribble ? "
Written on the back:
[scribble]" : ""]"\ - + "", "window=book;size=192x[scribble ? 400 : 192]") + + "", "window=book;size=[64*photo_size]x[scribble ? 400 : 64*photo_size]") onclose(user, "[name]") return @@ -125,7 +126,15 @@ var/on = 1 var/icon_on = "camera" var/icon_off = "camera_off" + var/size = 3 +/obj/item/device/camera/verb/change_size() + set name = "Set Photo Focus" + set category = "Object" + var/nsize = input("Photo Size","Pick a size of resulting photo.") as null|anything in list(1,3,5,7) + if(nsize) + size = nsize + usr << "Camera will now take [size]x[size] photos." /obj/item/device/camera/attack(mob/living/carbon/human/M as mob, mob/user as mob) return @@ -157,6 +166,7 @@ //Bigger icon base to capture those icons that were shifted to the next tile //i.e. pretty much all wall-mounted machinery var/icon/res = icon('icons/effects/96x96.dmi', "") + res.Scale(size*32, size*32) // Initialize the photograph to black. res.Blend("#000", ICON_OVERLAY) @@ -171,7 +181,7 @@ // Sort the atoms into their layers var/list/sorted = sort_atoms_by_layer(atoms) - + var/center_offset = (size-1)/2 * 32 + 1 for(var/i; i <= sorted.len; i++) var/atom/A = sorted[i] if(A) @@ -184,19 +194,19 @@ // If they are, apply that effect to their picture. img.BecomeLying() // Calculate where we are relative to the center of the photo - var/xoff = (A.x - center.x) * 32 - var/yoff = (A.y - center.y) * 32 + var/xoff = (A.x - center.x) * 32 + center_offset + var/yoff = (A.y - center.y) * 32 + center_offset if (istype(A,/atom/movable)) xoff+=A:step_x yoff+=A:step_y - res.Blend(img, blendMode2iconMode(A.blend_mode), 33 + A.pixel_x + xoff, 33 + A.pixel_y + yoff) + res.Blend(img, blendMode2iconMode(A.blend_mode), A.pixel_x + xoff, A.pixel_y + yoff) // Lastly, render any contained effects on top. for(var/turf/the_turf in turfs) // Calculate where we are relative to the center of the photo - var/xoff = (the_turf.x - center.x) * 32 - var/yoff = (the_turf.y - center.y) * 32 - res.Blend(getFlatIcon(the_turf.loc), blendMode2iconMode(the_turf.blend_mode),33 + xoff,33 + yoff) + var/xoff = (the_turf.x - center.x) * 32 + center_offset + var/yoff = (the_turf.y - center.y) * 32 + center_offset + res.Blend(getFlatIcon(the_turf.loc), blendMode2iconMode(the_turf.blend_mode),xoff,yoff) return res @@ -246,22 +256,20 @@ return can_see /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) - var/x_c = target.x - 1 - var/y_c = target.y + 1 + var/x_c = target.x - (size-1)/2 + var/y_c = target.y + (size-1)/2 var/z_c = target.z - - var/list/turfs = list() var/mobs = "" - for(var/i = 1; i <= 3; i++) - for(var/j = 1; j <= 3; j++) + for(var/i = 1; i <= size; i++) + for(var/j = 1; j <= size; j++) var/turf/T = locate(x_c, y_c, z_c) if(can_capture_turf(T, user)) turfs.Add(T) mobs += get_mobs(T) x_c++ y_c-- - x_c = x_c - 3 + x_c = x_c - size var/datum/picture/P = createpicture(target, user, turfs, mobs, flag) printpicture(user, P) @@ -286,6 +294,7 @@ P.fields["desc"] = mobs P.fields["pixel_x"] = rand(-10, 10) P.fields["pixel_y"] = rand(-10, 10) + P.fields["size"] = size return P @@ -303,3 +312,4 @@ desc = P.fields["desc"] pixel_x = P.fields["pixel_x"] pixel_y = P.fields["pixel_y"] + photo_size = P.fields["size"] \ No newline at end of file diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index cccf903872..0edd242761 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -35,6 +35,9 @@ /obj/machinery/power/smes/New() ..() spawn(5) + if(!powernet) + connect_to_network() + dir_loop: for(var/d in cardinal) var/turf/T = get_step(src, d) @@ -46,6 +49,8 @@ stat |= BROKEN return terminal.master = src + if(!terminal.powernet) + terminal.connect_to_network() updateicon() return @@ -385,11 +390,11 @@ /obj/machinery/power/smes/magical name = "magical power storage unit" desc = "A high-capacity superconducting magnetic energy storage (SMES) unit. Magically produces power." + capacity = 9000000 output = SMESMAXOUTPUT /obj/machinery/power/smes/magical/process() - capacity = INFINITY - charge = INFINITY + charge = 9000000 ..() /proc/rate_control(var/S, var/V, var/C, var/Min=1, var/Max=5, var/Limit=null) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index cc4a5b1354..0d8986fcfd 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1099,8 +1099,7 @@ datum else if(!alien || alien != IS_DIONA) M.adjustOxyLoss(-2*REM) - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 2*REM) + holder.remove_reagent("lexorin", 2*REM) ..() return @@ -1123,8 +1122,7 @@ datum else if(!alien || alien != IS_DIONA) M.adjustOxyLoss(-M.getOxyLoss()) - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 2*REM) + holder.remove_reagent("lexorin", 2*REM) ..() return @@ -1221,8 +1219,7 @@ datum M.AdjustParalysis(-1) M.AdjustStunned(-1) M.AdjustWeakened(-1) - if(holder.has_reagent("mindbreaker")) - holder.remove_reagent("mindbreaker", 5) + holder.remove_reagent("mindbreaker", 5) M.hallucination = max(0, M.hallucination - 10) if(prob(60)) M.adjustToxLoss(1) ..() @@ -1315,7 +1312,7 @@ datum var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"] if(istype(E)) if(E.damage > 0) - E.damage -= 1 + E.damage = max(E.damage - 1, 0) ..() return @@ -1336,7 +1333,7 @@ datum //Peridaxon is hard enough to get, it's probably fair to make this all internal organs for(var/datum/organ/internal/I in H.internal_organs) if(I.damage > 0) - I.damage -= 0.20 + I.damage = max(I.damage - 0.20, 0) ..() return @@ -1600,8 +1597,7 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(holder.has_reagent("inaprovaline")) - holder.remove_reagent("inaprovaline", 2*REM) + holder.remove_reagent("inaprovaline", 2*REM) ..() return reaction_obj(var/obj/O, var/volume) @@ -2052,7 +2048,7 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.nutrition -= nutriment_factor + M.nutrition = max(M.nutrition - nutriment_factor, 0) M.overeatduration = 0 if(M.nutrition < 0)//Prevent from going into negatives. M.nutrition = 0 @@ -2202,25 +2198,14 @@ datum color = "#B31008" // rgb: 139, 166, 233 on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 1 - switch(data) - if(1 to 15) - M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT - if(holder.has_reagent("capsaicin")) - holder.remove_reagent("capsaicin", 5) - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(5,20) - if(15 to 25) - M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(10,20) - if(25 to INFINITY) - M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT - if(prob(1)) M.emote("shiver") - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(15,20) - data++ + if(!M) + M = holder.my_atom + M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) + if(prob(1)) + M.emote("shiver") + if(istype(M, /mob/living/carbon/slime)) + M.bodytemperature = max(M.bodytemperature - rand(10,20), 0) + holder.remove_reagent("capsaicin", 5) holder.remove_reagent(src.id, FOOD_METABOLISM) ..() return @@ -2629,8 +2614,7 @@ datum on_mob_life(var/mob/living/M as mob) if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0) - if(holder.has_reagent("capsaicin")) - holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM) + holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM) ..() return @@ -2673,7 +2657,7 @@ datum on_mob_life(var/mob/living/M as mob) ..() M.make_jittery(5) - if(adj_temp > 0 && holder.has_reagent("frostoil")) + if(adj_temp > 0) holder.remove_reagent("frostoil", 10*REAGENTS_METABOLISM) holder.remove_reagent(src.id, 0.1) @@ -2843,25 +2827,14 @@ datum adj_temp = -9 on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 1 - switch(data) - if(1 to 15) - M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT - if(holder.has_reagent("capsaicin")) - holder.remove_reagent("capsaicin", 5) - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(5,20) - if(15 to 25) - M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(10,20) - if(25 to INFINITY) - M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT - if(prob(1)) M.emote("shiver") - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(15,20) - data++ + if(!M) + M = holder.my_atom + if(prob(1)) + M.emote("shiver") + M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) + if(istype(M, /mob/living/carbon/slime)) + M.bodytemperature = max(M.bodytemperature - rand(10,20), 0) + holder.remove_reagent("capsaicin", 5) holder.remove_reagent(src.id, FOOD_METABOLISM) ..() return diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index c141a757e7..d1f77e7ad8 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -94,6 +94,7 @@ spawn(5) src.reagents.clear_reagents() return else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. + target.add_fingerprint(user) if(!target.reagents.total_volume && target.reagents) user << "\red [target] is empty." diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 5444845032..94772ba195 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -114,11 +114,14 @@ overlays = new/list() /obj/structure/reagent_dispensers/fueltank/attackby(obj/item/weapon/W as obj, mob/user as mob) + src.add_fingerprint(user) if (istype(W,/obj/item/weapon/wrench)) user.visible_message("[user] wrenches [src]'s faucet [modded ? "closed" : "open"].", \ "You wrench [src]'s faucet [modded ? "closed" : "open"]") modded = modded ? 0 : 1 if (modded) + message_admins("[key_name_admin(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel. (JMP)") + log_game("[key_name(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel.") leak_fuel(amount_per_transfer_from_this) if (istype(W,/obj/item/device/assembly_holder)) if (rig) @@ -130,8 +133,8 @@ var/obj/item/device/assembly_holder/H = W if (istype(H.a_left,/obj/item/device/assembly/igniter) || istype(H.a_right,/obj/item/device/assembly/igniter)) - message_admins("[key_name_admin(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") - log_game("[key_name(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") + message_admins("[key_name_admin(user)] rigged fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) for explosion. (JMP)") + log_game("[key_name(user)] rigged fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) for explosion.") rig = W user.drop_item() @@ -148,8 +151,8 @@ /obj/structure/reagent_dispensers/fueltank/bullet_act(var/obj/item/projectile/Proj) if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) if(istype(Proj.firer)) - message_admins("[key_name_admin(Proj.firer)] shot fueltank at ([loc.x],[loc.y],[loc.z]).") - log_game("[key_name(Proj.firer)] shot fueltank at ([loc.x],[loc.y],[loc.z]).") + message_admins("[key_name_admin(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) (JMP).") + log_game("[key_name(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]).") if(!istype(Proj ,/obj/item/projectile/beam/lastertag) && !istype(Proj ,/obj/item/projectile/beam/practice) ) explode() @@ -174,18 +177,18 @@ if(temperature > T0C+500) explode() return ..() - + /obj/structure/reagent_dispensers/fueltank/Move() if (..() && modded) leak_fuel(amount_per_transfer_from_this/10.0) - + /obj/structure/reagent_dispensers/fueltank/proc/leak_fuel(amount) if (reagents.total_volume == 0) return - + amount = min(amount, reagents.total_volume) reagents.remove_reagent("fuel",amount) - new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount) + new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount,1) /obj/structure/reagent_dispensers/peppertank name = "Pepper Spray Refiller" diff --git a/code/modules/shuttles/escape_pods.dm b/code/modules/shuttles/escape_pods.dm index 0261997a9d..719c29fd9a 100644 --- a/code/modules/shuttles/escape_pods.dm +++ b/code/modules/shuttles/escape_pods.dm @@ -137,10 +137,3 @@ /datum/computer/file/embedded_program/docking/simple/escape_pod/prepare_for_undocking() eject_time = world.time + eject_delay*10 - -/* -/datum/computer/file/embedded_program/docking/simple/escape_pod/ready_for_undocking() - if (world.time < eject_time) - return 0 - return ..() -*/ \ No newline at end of file diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index 34a5d1e138..c931e9fc29 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -34,15 +34,14 @@ if (moving_status == SHUTTLE_IDLE) return //someone cancelled the launch - move(departing, interim, direction) - moving_status = SHUTTLE_INTRANSIT + move(departing, interim, direction) + arrive_time = world.time + travel_time*10 while (world.time < arrive_time) sleep(5) move(interim, destination, direction) - moving_status = SHUTTLE_IDLE /datum/shuttle/proc/dock() @@ -69,6 +68,8 @@ return 0 //just moves the shuttle from A to B, if it can be moved +//A note to anyone overriding move in a subtype. move() must absolutely not, under any circumstances, fail to move the shuttle. +//If you want to conditionally cancel shuttle launches, that logic must go in short_jump() or long_jump() /datum/shuttle/proc/move(var/area/origin, var/area/destination, var/direction=null) //world << "move_shuttle() called for [shuttle_tag] leaving [origin] en route to [destination]." diff --git a/code/modules/surgery/ribcage.dm b/code/modules/surgery/ribcage.dm index ab16f56915..c14d065cd9 100644 --- a/code/modules/surgery/ribcage.dm +++ b/code/modules/surgery/ribcage.dm @@ -202,7 +202,7 @@ var/is_chest_organ_damaged = 0 var/datum/organ/external/chest/chest = target.get_organ("chest") - for(var/datum/organ/internal/I in chest.internal_organs) + for(var/datum/organ/internal/I in chest.internal_organs) if(I.damage > 0) is_chest_organ_damaged = 1 break @@ -244,7 +244,7 @@ if(I && I.damage > 0) if(I.robotic < 2) user.visible_message("\blue [user] treats damage to [target]'s [I.name] with [tool_name].", \ - "You treat damage to [target]'s [I.name] with [tool_name]." ) + "\blue You treat damage to [target]'s [I.name] with [tool_name]." ) else user.visible_message("\blue [user] pokes [target]'s mechanical [I.name] with [tool_name]...", \ "\blue You poke [target]'s mechanical [I.name] with [tool_name]... \red For no effect, since it's robotic.") diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 5b0bccbaaa..b0116585ab 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -89,7 +89,7 @@ proc/do_surgery(mob/living/M, mob/living/user, obj/item/tool) //We had proper tools! (or RNG smiled.) and User did not move or change hands. if( prob(S.tool_quality(tool)) && do_mob(user, M, rand(S.min_duration, S.max_duration))) S.end_step(user, M, user.zone_sel.selecting, tool) //finish successfully - else //or + else if (tool in user.contents && user.Adjacent(M)) //or S.fail_step(user, M, user.zone_sel.selecting, tool) //malpractice~ return 1 //don't want to do weapony things after surgery return 0 diff --git a/code/setup.dm b/code/setup.dm index f5b680ee3e..361cfaa66c 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -19,6 +19,7 @@ #define O2STANDARD 0.21 #define N2STANDARD 0.79 +#define MOLES_PHORON_VISIBLE 0.7 //Moles in a standard cell after which phoron is visible #define MOLES_O2STANDARD MOLES_CELLSTANDARD*O2STANDARD // O2 standard value (21%) #define MOLES_N2STANDARD MOLES_CELLSTANDARD*N2STANDARD // N2 standard value (79%) @@ -72,9 +73,6 @@ #define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :( #define LOW_PRESSURE_DAMAGE 2 //The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value). -#define PRESSURE_SUIT_REDUCTION_COEFFICIENT 0.8 //This is how much (percentual) a suit with the flag STOPSPRESSUREDMAGE reduces pressure. -#define PRESSURE_HEAD_REDUCTION_COEFFICIENT 0.4 //This is how much (percentual) a helmet/hat with the flag STOPSPRESSUREDMAGE reduces pressure. - // Doors! #define DOOR_CRUSH_DAMAGE 10 @@ -837,7 +835,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define MAX_SIPHON_FLOWRATE 2500 //L/s This can be used to balance how fast a room is siphoned. Anything higher than CELL_VOLUME has no effect. #define MAX_SCRUBBER_FLOWRATE 200 //L/s Max flow rate when scrubbing from a turf. -//These balance how easy or hard it is to create huge pressure gradients with pumps and filters. Lower values means it takes longer to create large pressures differences. +//These balance how easy or hard it is to create huge pressure gradients with pumps and filters. Lower values means it takes longer to create large pressures differences. //Has no effect on pumping gasses from high pressure to low, only from low to high. Must be between 0 and 1. #define ATMOS_PUMP_EFFICIENCY 0.6 #define ATMOS_FILTER_EFFICIENCY 0.45 @@ -850,4 +848,4 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define ATMOS_DEFAULT_VOLUME_PUMP 200 //L #define ATMOS_DEFAULT_VOLUME_FILTER 200 //L #define ATMOS_DEFAULT_VOLUME_MIXER 200 //L -#define ATMOS_DEFAULT_VOLUME_PIPE 70 //L \ No newline at end of file +#define ATMOS_DEFAULT_VOLUME_PIPE 70 //L diff --git a/html/changelog.html b/html/changelog.html index e5fe332b92..0800ac3b89 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -126,6 +126,15 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

2 August 2014

+

Whitellama updated:

+ +
+

31 July 2014

HarpyEagle updated:

@@ -142,11 +151,6 @@ should be listed in the changelog upon commit though. Thanks. -->
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 23d627a5f1..82d2dee3bd 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 2f1430c904..b13c0978bc 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -1124,7 +1124,7 @@ "avF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall,/area/hydroponics) "avG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "avH" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) -"avI" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"avI" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "avJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/crew_quarters/bar) "avK" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "avL" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/landmark/start{name = "Gardener"},/turf/simulated/floor{dir = 9; icon_state = "green"},/area/hydroponics/garden) @@ -1991,7 +1991,7 @@ "aMo" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMp" = (/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMq" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) -"aMr" = (/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aMr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aMs" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aMt" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aMu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -2155,7 +2155,7 @@ "aPw" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "aPx" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "aPy" = (/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) -"aPz" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) +"aPz" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aPA" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) "aPB" = (/turf/simulated/wall,/area/maintenance/port) "aPC" = (/obj/machinery/cryopod/right,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) @@ -3200,7 +3200,7 @@ "bjB" = (/turf/simulated/wall/r_wall,/area/rnd/test_area) "bjC" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{icon_state = "bot"},/area/bridge/meeting_room) "bjD" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/supermatter_engine{pixel_x = -3},/turf/simulated/floor/carpet,/area/engine/break_room) -"bjE" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair_beige (EAST)"; icon_state = "comfychair_beige"; dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) +"bjE" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) "bjF" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor,/area/engine/chiefs_office) "bjG" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "map_injector"; id = "air_in"; on = 1},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "bjH" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) @@ -3310,7 +3310,7 @@ "blH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) "blI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "blJ" = (/obj/machinery/camera{c_tag = "Medbay Lounge"; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"blK" = (/obj/machinery/light{dir = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"blK" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "blL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "blM" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) "blN" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -3324,7 +3324,7 @@ "blV" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/security/checkpoint2) "blW" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "blX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"blY" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 26},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (WEST)"; icon_state = "comfychair_teal"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"blY" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "blZ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "bma" = (/obj/machinery/vending/coffee,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bmb" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/trunk,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) @@ -3799,7 +3799,7 @@ "bvc" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) "bvd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor,/area/hallway/primary/central) "bve" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bvf" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/ward) +"bvf" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/ward) "bvg" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virology_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bvh" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bvi" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -3987,7 +3987,7 @@ "byI" = (/obj/machinery/atmospherics/trinary/mixer,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "byJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/carpet,/area/engine/break_room) "byK" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"byL" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) +"byL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) "byM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/engine/break_room) "byN" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "byO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -4031,7 +4031,7 @@ "bzA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "bzB" = (/obj/machinery/airlock_sensor{command = "cycle_interior"; frequency = 1379; id_tag = "eng_eva_int_sensor"; master_tag = "eng_eva_airlock"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) "bzC" = (/turf/simulated/wall/r_wall,/area/server) -"bzD" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/carpet,/area/engine/break_room) +"bzD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/carpet,/area/engine/break_room) "bzE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "bzF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/engine/engine_eva_maintenance) "bzG" = (/turf/simulated/wall,/area/medical/cmo) @@ -7226,7 +7226,7 @@ "cIX" = (/turf/space,/area/centcom/specops) "cIY" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops) "cIZ" = (/obj/machinery/camera{c_tag = "Assault Armor North"; dir = 2; network = list("ERT")},/obj/mecha/combat/gygax/dark,/turf/unsimulated/floor{icon_state = "delivery"; dir = 6},/area/centcom/specops) -"cJa" = (/obj/machinery/atmospherics/unary/freezer{dir = 8; icon_state = "freezer"; req_access_txt = "56"; set_temperature = 1},/turf/simulated/floor/plating,/area/engine/engine_room) +"cJa" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/storage/box/syringes,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cJb" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "cJc" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cJd" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "floorscorched1"},/area/prison/solitary) @@ -7254,7 +7254,7 @@ "cJz" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 4},/area/centcom/specops) "cJA" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops) "cJB" = (/turf/unsimulated/floor{icon_state = "loadingarea"; dir = 8},/area/centcom/specops) -"cJC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 4; name = "Engine Filter Outpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cJC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) "cJD" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "cJE" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cJF" = (/obj/structure/rack,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) @@ -7272,7 +7272,7 @@ "cJR" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT2"; name = "Launch Bay #2"; p_open = 0},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cJS" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops) "cJT" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom/specops) -"cJU" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/storage/box/syringes,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cJU" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flash,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cJV" = (/obj/structure/rack,/obj/item/weapon/gun/grenadelauncher,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cJW" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "platingdmg3"},/area/prison/solitary) "cJX" = (/turf/unsimulated/floor{icon_state = "platingdmg1"},/area/prison/solitary) @@ -7328,8 +7328,8 @@ "cKV" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cKW" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) "cKX" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) -"cKY" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) -"cKZ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flash,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cKY" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cKZ" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cLa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cLb" = (/turf/unsimulated/floor{icon_state = "asteroid6"; name = "sand"},/area/centcom/specops) "cLc" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) @@ -7348,9 +7348,9 @@ "cLp" = (/obj/machinery/camera{c_tag = "Assault Armor South"; dir = 1; network = list("ERT")},/turf/unsimulated/floor{icon_state = "loadingarea"; dir = 8},/area/centcom/specops) "cLq" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/weapon/rcd,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cLr" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom) -"cLs" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cLs" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cLt" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) -"cLu" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cLu" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cLv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cLw" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cLx" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) @@ -7387,8 +7387,8 @@ "cMc" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cMd" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cMe" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cMf" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cMg" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cMf" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cMg" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "cMh" = (/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cMi" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cMj" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) @@ -7442,13 +7442,13 @@ "cNf" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/evac) "cNg" = (/obj/structure/table,/obj/machinery/processor{pixel_x = 0; pixel_y = 10},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/evac) "cNh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) -"cNi" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNj" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"cNk" = (/obj/effect/landmark{name = "Response Team"},/obj/effect/landmark{name = "Commando"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNl" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/commander,/obj/item/clothing/suit/space/rig/ert/commander,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) -"cNm" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/device/aicard,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "blue"},/area/centcom) -"cNn" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNo" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) +"cNi" = (/obj/effect/landmark{name = "Response Team"},/obj/effect/landmark{name = "Commando"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNj" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/commander,/obj/item/clothing/suit/space/rig/ert/commander,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cNk" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/device/aicard,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "blue"},/area/centcom) +"cNl" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNm" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) +"cNn" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cNo" = (/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom_officer,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cNp" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNq" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNr" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) @@ -7459,18 +7459,18 @@ "cNw" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cNx" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cNy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) -"cNz" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cNz" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cNA" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 0; name = "Station Intercom (General)"; pixel_x = -28},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNB" = (/obj/structure/closet/secure_closet/injection,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) "cNC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) -"cND" = (/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom_officer,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) -"cNE" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNF" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"cNG" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNH" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNI" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNJ" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNK" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cND" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"cNE" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNF" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNG" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNH" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNI" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNJ" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNK" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "103"; tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cNL" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNM" = (/obj/machinery/bodyscanner,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding) "cNN" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) @@ -8276,7 +8276,7 @@ "ddh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access_txt = "61"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) "ddi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/entrance) "ddj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/tcommsat/chamber) -"ddk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) +"ddk" = (/obj/structure/rack,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "ddl" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/research) "ddm" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "ddn" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) @@ -8285,8 +8285,8 @@ "ddq" = (/turf/simulated/floor,/area/tcommsat/entrance) "ddr" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/turret_protected/tcomsat) "dds" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/tcommsat/entrance) -"ddt" = (/obj/machinery/power/smes/magical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/tcommsat/entrance) -"ddu" = (/obj/machinery/power/smes/magical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/tcommsat/entrance) +"ddt" = (/obj/structure/rack,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"ddu" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "ddv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/camera{c_tag = "Power Room West"; dir = 1; network = list("Tcomsat")},/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/tcommsat/entrance) "ddw" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "ddx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/tcommsat/entrance) @@ -8581,8 +8581,8 @@ "dja" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_fore_hatch"; locked = 1; name = "Forward Docking Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/plating,/area/shuttle/specops/centcom) "djb" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_fore"; name = "forward docking hatch controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "0"; tag_door = "specops_shuttle_fore_hatch"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "djc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_shuttle"; pixel_x = 8; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"; tag_door = "escape_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"djd" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"dje" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "103"; tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) +"djd" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom) +"dje" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/tcommsat/entrance) "djf" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_port_hatch"; locked = 1; name = "Port Docking Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "djg" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northwest_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "djh" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northeast_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) @@ -9115,8 +9115,8 @@ "dto" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/tcommsat/entrance) "dtp" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/tcommsat/entrance) "dtq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor,/area/tcommsat/entrance) -"dtr" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) -"dts" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor,/area/tcommsat/entrance) +"dtr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/tcommsat/entrance) +"dts" = (/obj/machinery/power/smes/magical,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/entrance) "dtt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcommsat/entrance) "dtu" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/monitor{name = "telecoms power monitoring"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "bot"},/area/tcommsat/entrance) "dtv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) @@ -10982,7 +10982,7 @@ "edj" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weedkiller/triclopyr,/obj/item/weapon/reagent_containers/glass/fertilizer/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "edk" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/wrench,/obj/item/device/flashlight,/obj/machinery/cell_charger,/turf/simulated/floor,/area/engine/workshop) "edl" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/meter,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) -"edm" = (/obj/structure/rack,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"edm" = (/obj/machinery/atmospherics/unary/freezer{dir = 8; icon_state = "freezer"; req_access_txt = "56"; set_temperature = 1},/turf/simulated/floor/plating,/area/engine/engine_room) "edn" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/engine/engine_waste) "edo" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) "edp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) @@ -11078,9 +11078,9 @@ "efb" = (/obj/structure/cable,/obj/machinery/power/solar{id = "construction_solar"; name = "Construction Solar Array"},/turf/simulated/floor{icon_state = "solarpanel"},/area/djstation) "efc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/djstation) "efd" = (/obj/machinery/telecomms/relay/preset/ruskie,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/djstation) -"efe" = (/obj/structure/rack,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"eff" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"efg" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom) +"efe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 4; name = "Engine Filter Outpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"eff" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor,/area/tcommsat/entrance) +"efg" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11195,11 +11195,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKbwPblyaEKaELaEMaENaAKbjZbkiaYQblLbhDaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzbTxaWjaWgbTwaVIaWMaWNaWKaWLaWJaAkaaeaygaWIaWpblGaWxaWqaWsblEaWpaZdaZcaxraFnaypazlaFmaBdazoazpaBdaDOaTuaypaDQaVHaWTaFsaFtaXcbdZagjagjagjagjaVEaVFaWSaVxaVybazaVxaXfaVxaXeaVxaXgaXhbTOaFHbcKaBoaXjaXmaXXbxRbxRbxSbAiaXYaXYaXYaXYaXYbaCaXYaXYaYwaYeaXnaRdaRdaYGaYxblNbCeaWQaWQaWQaWRaEsaEsaGeaEsaGfaGgaGhaEsaEubCvaEuaGjaXlaXkbbBaGnaGoaIbasHaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXoaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKaAKblVaYKaYPaYKaQlaQlaYJaYNaYObtjaYMaYLbCwbakbajbJcaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaZXaAkayJbmqayJaAkaAkaaaaygavOaylbmjaZIaZiaZqaZDaZEaZhbglaxraHbaypaFoaCuaAraypaAsaAraCwaZgaypaHdawGaYhaHfaHgaUnaYfalNalNalNalNalNaHjaYbazBbUMaAxazBaHmazBaHnazBaHobcvbcwbcNbczbdNbcXaYUbJUbJJbbvbdAbbwbbvbbvbbxbbzbbybbAbbybbybbybbibLVbcbbawbawbawbmxbaSbawbaxbawbaWaYIaHOaHPaHQaHRaHSaHTaEsaHUbaXaEuaHWaHXbWjaHZaGnaIaaIbasHaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaCnawzawyawxawuawuawuawzawCawDawzawAaImaInawBauKauKaAPaGOaIpaCaaIqaBOaGOaIraIsaItaIuasSaaaaOzaaaaMTavNaMTaaaaaeaaaasSavOaylaAZaBKavZaBLaBcaylaAtaAJaxrachaypazlaIFaIGazoaIHayyazraIKaILaIMawGaBeaIOaIPaAqaBhaISaaaaaaaUnaIUaIVaBsazBaIXaAxaLRaAxaCEaAxaAxaAxauOaBoaKyaBoaBoavJaBoaJcaBoaJdavHavGaJgaJhaJiaJjaJkavFaJjaJjaJjaJjaJjavDaJjaJjaJjaJjaJjaJjaJjaJjasIayRayvaAzaAiaBraBpazHbMsazIavpavlavmavnazFayNayPazDaAXasHaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatHaPRarOaPRaPRaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXazEasSaASavaaKbaKcavbaKeaKbaKbaKfasSavcaylaylazJaAbaAaayLawGaUnazGaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxrazqaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwayKaKxaIZauMavIaKBaKCaJdauyauWauXaznaKHaJjayOayQaPbayVayZaIyaJbaxDaxJayaayCayBaxBaxfaDqaJjauwauvaysaJraxdaxaaJuayqaEsaxNauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaFGazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaETaLFaLFaLFaLIazKaFraLKaLzaxtaNmaLuaLPaIOaGmaIOaLSaIzaFIaLTaLTaLTaLTaLTaLTaOraLVaOAaLXaLYaLZaMaaMbaMcaIOaIOaIOaOBaMeaMfaMeaMgaMhaLSaMjaIzaMkaEgaBoaMlaxMaOOaMoaMnaMpaxKaMraMsaMtaJdaxLaMvaMwaMwaMxaJjaDJaFTaEJaEJaEJaEJaEJaFqaBaaEOaEUaExaEJaEJaHMaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaEpaEuaytaMRaHZavTaEuaRhaymayeaIbaEyaEyaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatHaPRarOaPRaPRaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXazEasSaASavaaKbaKcavbaKeaKbaKbaKfasSavcaylaylazJaAbaAaayLawGaUnazGaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxrazqaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwayKaKxaIZauMaMraKBaKCaJdauyauWauXaznaKHaJjayOayQaPbayVayZaIyaJbaxDaxJayaayCayBaxBaxfaDqaJjauwauvaysaJraxdaxaaJuayqaEsaxNauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaFGazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaETaLFaLFaLFaLIazKaFraLKaLzaxtaNmaLuaLPaIOaGmaIOaLSaIzaFIaLTaLTaLTaLTaLTaLTaOraLVaOAaLXaLYaLZaMaaMbaMcaIOaIOaIOaOBaMeaMfaMeaMgaMhaLSaMjaIzaMkaEgaBoaMlaxMaOOaMoaMnaMpaxKaPzaMsaMtaJdaxLaMvaMwaMwaMxaJjaDJaFTaEJaEJaEJaEJaEJaFqaBaaEOaEUaExaEJaEJaHMaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaEpaEuaytaMRaHZavTaEuaRhaymayeaIbaEyaEyaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXarBaMVaAFaAFaAFaAFaMWarBawXaAHasSaCFaMXaMYaDKavSaNbaNbaNcatHaNdaLsaxAaNfaLuaxzaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaCDaxiaxuaLzaLzaLzaxpayuaLzaLzaLzaLzaxvaLzaLzaLzaxtaNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBbNwaCjaCWaCQaMpaNEaMpaMpawEaNGaMsaCoaJdawFawJawSaQLaNMaJjaDraDHaCpaCpaCpaCpaCpaCqaCTaDlaDmaCpaCpaCzaNRaJjasIarZaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuavQaEuaIbaIbasHaIbaNZaOaaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSatlaxTaMYaOhaOiaNbaNbaNcatHaOjaLsasDaNfaLuasXaLAaLzaLzaRyaChaEzaRCaLzausaOmardaOmaALatmarMaOmaOvaOwatzathauaatkatjatiatcatbatbasYaVdaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoasQasOasCasCasCaMCaAYaNGaMsaBQaJdaJdaJdaJdaJdaOUaJjatsatraSgaTAaTzaUSatQatEaCKatyatCasUasNasNasWaJjasIarZaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaEZaVbasbaIbaIbasHaIbaEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeatHaxRarBaJMayWaxTaxTayXaJMarBaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsasDatHaPRarOasnaPRaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEatHatHascaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaZHaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaTwaQwaQyaQzasfasfasfasLasMasAasfasfasfasfasaarZaQGaHPaPgaPhaHPaHPaQHaEsasBaQJaQKaEyaIbarpaPraSoaPoasgaIbaQQaQRaEyasKasJaPtaQUaQVaQWaaeaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeatHaxRarBaJMayWaxTaxTayXaJMarBaJMaPxawYaPyaxTaxRavIavIaLpavIaLqatHaPAaLsasDatHaPRarOasnaPRaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEatHatHascaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaZHaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaTwaQwaQyaQzasfasfasfasLasMasAasfasfasfasfasaarZaQGaHPaPgaPhaHPaHPaQHaEsasBaQJaQKaEyaIbarpaPraSoaPoasgaIbaQQaQRaEyasKasJaPtaQUaQVaQWaaeaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcatUaPBbupbuobziautaumaxwaRkaRlaRmaRnaRoaRpaukaRraRsaRtaujaxhaRwaxIaPKatwaPMaPMaRzaPMaugaPSaPSaRBbaHaPSaPSaPSaxyaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOauZaRRaRSatDaQoaQoaQoaQoaQoaRUatGaQoaQoaQoaQraMpaRWaRXaRYaRZatxaRXavKaSdavEasAaSnbcWavLawfawHawvawTawIasfasIarZaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaGvatZaulaulaulatNaJoaEyaEyaEyawtaSqaSraSsbeKaSuaaeaaeaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTavzavkaxTaSAaSBaueaSDatuaPBbCJbCIbeRaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtasEaSJaSKauRaPKatwaPMaSMaSNaupaFpaPSaxeaSRbdnavqaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZavCaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoatnaTjaTkaQoaTlaTmaCIatqaToaTkaQoaQraMpaTpaRXaTqaTratTaTtauxauAauDauQauUauVauYavjavyavxavwavvasfasIarZaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyarDastaSoaSoaSoasgaIbaIbaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTRaTRatHatHaTSaFuaTSaTSaTSaBgaTSaBgaPBbCJattbNuaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcasEaUdaUeaNCaPKaFkaPMaVJaUiaUjaWPaPSaNHbdsbdyaSSccoaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDatnaToaTkaQoaUEaUFaQoaFjaUHaTkaQoaQraMpaUIaRXaOtaFzaFyaUMaFxaUOaSbaTyawhawiaQTaNOavyaKTavwaTvasfasIarZaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaFwaQqaVfaEyaVgaSsaSsaSsaSQaNNaSeaPeaTiaTaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11274,7 +11274,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacfWcfXcfYaaacfWcfXcfYaaacfWcfXcfYaaeaaeaaaaaaaaaaaaaaeaaeaaaaaaaaaaaacsLaaaaaabZUcdBcdEcfIcfQcfacftcdVcdOcdOcdTcdvbZDcdebZCbZCbZCccbcgtbZLbZjcVGcVGcVGcVGcVGcVGcVGaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacfWchecfYaaacfWchecfYaaacfWchecfYaaeaaeaaeaaeaaaaaacthaaaaaaaaaaaeaaaaaaaaaaaabZUcdBcdEcfZcfQcfacftcgacftcgbcgjcgncgmcgDcglcglcgZchCchgcgGbZjaaeaaeaaEaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaecfWchecfYaaacfWchecfYaaecfWchecfYaaeaaaaaaaaeaaectyaaaaaaaaaaaaaaaaaaaaaaaaaaabZUcdBcjjcjocjQcfacftcrvcrHcjZcrmcimcgXcfocascascascjhcjdcgYbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaabZUedsedrednctkcPDbZCedqedpedoecWecVecWecTecUedlcJCecXecYcJabZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaabZUedsedrednctkcPDbZCedqedpedoecWecVecWecTecUedlefeecXecYedmbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaEaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaeaaaaaaaaaaaaaaeaaecjMcjNcjNcjNcjNcOXcPddgDecRecRecRecPbZjbZCbZCcPVbZjbZjbZjecMcWdecQbZjbZjbZjecScRccPSbZjaaeaaabYSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaeaaaaaeaaeckAaaeaaeaaeckAaaeaaaaaeckAaaeaaaaaaaaaaaaaaackBckCckDckEckFcPBcPqdhRdgEdigdicdicdihdpKbZjcOWbZCcvGcttcvEcIGecOcOLecNcIGctscttcyVbZCecLbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaecltclucluclvclwclwclwclwclwclwclwclwclwclwclwclwclwclwcEZclydidcELcBvclCcwKclEdyKdyKdyKdyKdyMdyKdyNbZjbZCbZCcvGcttcvEcwIctpcyWcyXcwIctscttcyVbZCcyhbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11469,23 +11469,23 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcHocGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcHfcGbcGbcGbcGbcGrcGrcIzcIAcGrcGrcGrcIzcIBcIAcGrcGXcGXcGXcGrcICcIDcIDcIDcIDcIDcIEcGrcGFcHbcIFcUQcHtcHtcHtcUycIIcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxaaacCFcFycFycFycCFaaadpBcFBcFCcFDdpPaaacCFcFycFycFycCFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGrcIJcIJcIJcIJcIJcIJcIJcIJcIJcGrcGrcIKcGrcGrcIJcIJcIJcIJcIJcIJcIJcGrcGFcHbcILcIMcINcINcINcIMcIOcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpBcFBcFCcFDdpPaaaaaaaaaaaaaaaaaaaaadpBcFBcFCcFDdpPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcFYcIPcFYcFYcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIRcIRcIRcIRcIRcIRcIRcGrcIScITcIScGrcIRcIRcIRcIRcIRcIRcIRcIRcGFcHbcHbcIUcIVcIVcIVcIWcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJbcFYcNFcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJbcFYcNDcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJxcJycJwcJwcJwcJwcJzcJxcJAcJBcJDcFYcLtcJEcJFcIQcJGcJHcIQcJGcJjcIQcJGcJHcIQcJGcJmcIQcJGcJgcIQcJGcJjcIQcJGcJicIQcJncIRcJIcJJcJJcJJcJJcGrcIScITcIScGrcJucJucJucJucJucIRaaaaaacJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcIRcIRcIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcJLcJDcFYcLtcJEcJMcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcJncIRcJIcJJcJJcJJcJJcGrcGrcIKcGrcGrcJucJucJucJucJucIRcJKcJKcJKcJKcJKcJKcJNcJOcJPcIRcJQcJQcJQcIRcJQcJQcJQcJQcJQcJQcJQcJQcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJRcJycJwcJwcJwcJwcJzcJRcJScJBcJTcNocLtcJEcJVcIQcJWcJmcIQcJfcJXcIQcJfcJHcIQcJYcJicIQcJfcJicIQcJZcJjcIQcJfcJmcIQcJncIRcKadQYdPKcKccKdcIRcKecKecKecIRcJucJucJucJucJucIRcKfcKgcKfcKhcKicJKcKjcKjcKjcKkcJQcJQcJQcKkcJQcKlcKmcKlcJQcKncKocKpcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJRcJycJwcJwcJwcJwcJzcJRcJScJBcJTcNmcLtcJEcJVcIQcJWcJmcIQcJfcJXcIQcJfcJHcIQcJYcJicIQcJfcJicIQcJZcJjcIQcJfcJmcIQcJncIRcKadQYdPKcKccKdcIRcKecKecKecIRcJucJucJucJucJucIRcKfcKgcKfcKhcKicJKcKjcKjcKjcKkcJQcJQcJQcKkcJQcKlcKmcKlcJQcKncKocKpcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKrcIQcJGcKscIQcJGcJjcIQcJGcJicIQcJGcJjcJhcJGcJjcIQcJGcJXcIQcJGcKtcIQcJncIRcKucIRcKvcKwcKxcIRcJJcJJcJJcIRcKvcKwcKycIRcKzcIRcKAcKBcKAcKBcKAcJKcIRcIRcIRcIRcJQcJQcJQcIRcKCcKDcKlcKEcKCcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcKHcJycJwcJwcJwcJwcJzcKHcKIcJBcJDcFYcLtcJEcKJcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcJncIRcJJcJJcKKcKbcKbcKbcKbcKbcKbcKbcKbcKbcKLcJJcJJcKMcKAcKAcKAcKAcKAcJKcKNcKjcJNcIRcJQcJQcJQcIRcKOcKOcKPcKOcKOcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKQcKRcKRcFYcKScKTcKUcNEcKVcFYcKWcKXcFYcNDcNDcNDcNDcNDcNDcNzcLacLbcIPcJncIRcJJcJJcLccLdcLecLecLecLecLecLecLecLfcJIcJJcJJcJKcLgcLhcLicLjcLkcJKcLlcKjcJOcIRcJQcJQcJQcIRcLmcLmcKjcLmcLmcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcLncJycJwcJwcJwcJwcJzcLncLocLpcJDcFYcLtcJEcJEcJEcJEcFYcJEcJEcJEcJEcLqcFYcKXcLrcMxcNkcNkcNkcNkcNkcNkcKYcIPcIPcIPcIPcIPcJJcJJcLccLvcLwcJJcLxcLycLzcJJcLwcLvcJIcJJcJJcJKcJKcJKcJKcJKcJKcJKcLlcKjcJOcIRcJQcJQcJQcIRcLAcLAcKjcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcFYcNjcLBcLCcLDcJEcFYcJEcLEcLEcNidiPcFYcKXcKXcIPcLHcLIcLIcLIcLJcLIcLKcIPcLLcLLcLLcIPcJJcJJcLMcLNcLOcLPcLQcLRcLScLTcLUcLNcLVcJJcJJcIRcLWcLWcLWcLWcLWcIRcIRcKkcIRcIRcIRcKkcIRcIRcKjcKjcKjcKjcKjcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKQcKRcKRcFYcKScKTcKUcNzcKVcFYcKWcKXcFYcNocNocNocNocNocNocNncLacLbcIPcJncIRcJJcJJcLccLdcLecLecLecLecLecLecLecLfcJIcJJcJJcJKcLgcLhcLicLjcLkcJKcLlcKjcJOcIRcJQcJQcJQcIRcLmcLmcKjcLmcLmcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcLncJycJwcJwcJwcJwcJzcLncLocLpcJDcFYcLtcJEcJEcJEcJEcFYcJEcJEcJEcJEcLqcFYcKXcLrcMxcNicNicNicNicNicNicJCcIPcIPcIPcIPcIPcJJcJJcLccLvcLwcJJcLxcLycLzcJJcLwcLvcJIcJJcJJcJKcJKcJKcJKcJKcJKcJKcLlcKjcJOcIRcJQcJQcJQcIRcLAcLAcKjcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcFYcMgcLBcLCcLDcJEcFYcJEcLEcLEcMfdiPcFYcKXcKXcIPcLHcLIcLIcLIcLJcLIcLKcIPcLLcLLcLLcIPcJJcJJcLMcLNcLOcLPcLQcLRcLScLTcLUcLNcLVcJJcJJcIRcLWcLWcLWcLWcLWcIRcIRcKkcIRcIRcIRcKkcIRcIRcKjcKjcKjcKjcKjcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcLXcFYcLYcFYcFYcFYcFYcFYcKXcLrcLZcMacMacMacMacMacMacMacMbcMacMacMacMbcJJcJJcJJcMccJJcJJcMdcJJcMdcJJcJJcMccJJcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNmcNlcNncFYcJEcMhcJEcMicJEcMjcJEcJEcJEcMkcIPcMlcMmcMmcMncMocMpcMqcIPcMrcMrcMrcIPcJJcJJcKKcMscMtcLPcMucJJcMvcLTcMwcMscKLcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcIRcKkcKkcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNkcNjcNlcFYcJEcMhcJEcMicJEcMjcJEcJEcJEcMkcIPcMlcMmcMmcMncMocMpcMqcIPcMrcMrcMrcIPcJJcJJcKKcMscMtcLPcMucJJcMvcLTcMwcMscKLcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcIRcKkcKkcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJEcJEcJEcMxcJEcMycJEcKXcKXcKXcMzcMzcKXcMkcIPcMAcMAcMAcMBcMCcMBcMDcIPcIPcIPcIPcIPcJJcJJcLccLNcMEcJJcMdcJJcMdcJJcMEcLNcJIcJJcJJcIRcMFcMGcMGcMGcMHcIRcIRcMIcIRcIRcIRcKkcIRcIRcIRcMJcMJcMJcIRcIRcJQcJQcJQcMKcJQcMLcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcMMcFYcJEcKXcKXcMNcMOcMOcMPcMkcIPcIPcMQcMRcMScMTcMUcMVcMQaaaaaaaaacIRcJJcJJcLccIRcIRcMWcMXcJJcMYcMZcIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNacNbcIRcKjcNccKjcKjcNdcNecNfcNfcNfcNgcIRcJQcJQcKmcKmcJQcJQcNhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJUcLscLscLucJEcFYcJEcKXcKXcMNcMOcMOcMPcLGcMfcMgcMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJUcJEcJEcJEcJEcFYcJEcJEcJEcJEcKYcKYcKXcKXcKXcKZcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNGcNGefeedmeffcFYdjddjddjddjecJEcJEcNKcNJcNIcNHcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdaQcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYefgefgcFYcFYcFYcFYcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcBUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJacKYcKYcKZcJEcFYcJEcKXcKXcMNcMOcMOcMPcLGcLscLucMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJacJEcJEcJEcJEcFYcJEcJEcJEcJEcJCcJCcKXcKXcKXcJUcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNEcNEddtddkdducFYcNJcNJcNJcNKcJEcJEcNIcNHcNGcNFcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdaQcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYdjddjdcFYcFYcFYcFYcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcBUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNVcNWcNWcNVaaaaaaaaacMQcNrcNXcNYcNZcNYcMQdRydRZdRZdRydRJdRCcJJdRzcIRcJocLVcJJcLMcOhcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcJQcJQcOccOccJQcJQcObaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOdcOecOecOecOedjfdjfcOecOecOgaaacMQcNrcNrcNrcNrcNrcMQdRydRYdRYdRydRRdRCcJJdRzcIRcJIcJJcJJcJJcLccIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdXUdXTcOFaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcOicJQcJQcJQcJQcOjcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOmdiYdiXcOpcOpcOqcOqcOecOgcMQcMQcMQcMQcMQcMQcMQdRydRydRydRydRBdRCcJJdRzcIRdRAcORdRAdRDdRAcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdaCdiZdROdaFcOFaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11733,8 +11733,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYZcYYcYZcZAdtLdtMdtMdtMdtMdufdtNdtPdtQdcQdMPduqduldupdtMdsMdtMdtMdugcZFcYZcYYdcWcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWdcXcYYcYZcYZdaydaydcYdaydaydcAdcZddadtwdcQddcdddddedcAdaydaydaydaydaycYZcYZcYYcYZcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYZcYYcYZcYZcYZcYZcYYcYZddfdcAdcAdcAdtvddhdcAdcAdcAdcAddfcYZcYZcYZcYZcYZcYZcYYcYZcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYYcYYcYYcYYcYYcYYcYYcYYddiddudtrddpdtsdttdMGddpddqdtuddscYYcYYcYYcYYcYYcYYcYYcYYcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalaalcYWcYYcYZcYZcYZcYZcYZcYWddfddtddkddvdtqddxddyddzddyddAddfcYWcYZcYZcYZcYZcYZcYYcYWaalaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYYcYYcYYcYYcYYcYYcYYcYYddidtsefgddpeffdttdMGddpddqdtuddscYYcYYcYYcYYcYYcYYcYYcYYcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalaalcYWcYYcYZcYZcYZcYZcYZcYWddfdtrdjeddvdtqddxddyddzddyddAddfcYWcYZcYZcYZcYZcYZcYYcYWaalaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZaalaalcYWcYWcYWcYWcYWcYWcYWddfddfddfddfdtpddCddDddfddfddfddfcYWcYWcYWcYWcYWcYWcYWaalaalclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZaalaalaalaalaalaalaalaalaalaalaalddfdtoddFddGddfaalaalaalaalaalaalaalaalaalaalaalclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZclZclZclZclZclZclZclZclZclZddfddfdtnddIddJddfddfclZclZclZclZclZclZclZclZclZclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/sound/music/halloween/ghosts.ogg b/sound/music/halloween/ghosts.ogg deleted file mode 100644 index 26c40917a5..0000000000 Binary files a/sound/music/halloween/ghosts.ogg and /dev/null differ diff --git a/sound/music/halloween/halloween.ogg b/sound/music/halloween/halloween.ogg deleted file mode 100644 index c739941be3..0000000000 Binary files a/sound/music/halloween/halloween.ogg and /dev/null differ diff --git a/sound/music/halloween/skeletons.ogg b/sound/music/halloween/skeletons.ogg deleted file mode 100644 index 2b0b6878bf..0000000000 Binary files a/sound/music/halloween/skeletons.ogg and /dev/null differ diff --git a/sound/vox/,.wav b/sound/vox/,.wav deleted file mode 100644 index 31a47dca60..0000000000 Binary files a/sound/vox/,.wav and /dev/null differ diff --git a/sound/vox/..wav b/sound/vox/..wav deleted file mode 100644 index 7eeb1eb9bc..0000000000 Binary files a/sound/vox/..wav and /dev/null differ diff --git a/sound/vox/a.wav b/sound/vox/a.wav deleted file mode 100644 index c6981d2902..0000000000 Binary files a/sound/vox/a.wav and /dev/null differ diff --git a/sound/vox/accelerating.wav b/sound/vox/accelerating.wav deleted file mode 100644 index e86b18a04b..0000000000 Binary files a/sound/vox/accelerating.wav and /dev/null differ diff --git a/sound/vox/accelerator.wav b/sound/vox/accelerator.wav deleted file mode 100644 index be097b6caa..0000000000 Binary files a/sound/vox/accelerator.wav and /dev/null differ diff --git a/sound/vox/accepted.wav b/sound/vox/accepted.wav deleted file mode 100644 index 59160849e2..0000000000 Binary files a/sound/vox/accepted.wav and /dev/null differ diff --git a/sound/vox/access.wav b/sound/vox/access.wav deleted file mode 100644 index 25fd098883..0000000000 Binary files a/sound/vox/access.wav and /dev/null differ diff --git a/sound/vox/acknowledge.wav b/sound/vox/acknowledge.wav deleted file mode 100644 index 14946cccf8..0000000000 Binary files a/sound/vox/acknowledge.wav and /dev/null differ diff --git a/sound/vox/acknowledged.wav b/sound/vox/acknowledged.wav deleted file mode 100644 index 232d9c3bf7..0000000000 Binary files a/sound/vox/acknowledged.wav and /dev/null differ diff --git a/sound/vox/acquired.wav b/sound/vox/acquired.wav deleted file mode 100644 index 7eecdf9140..0000000000 Binary files a/sound/vox/acquired.wav and /dev/null differ diff --git a/sound/vox/acquisition.wav b/sound/vox/acquisition.wav deleted file mode 100644 index 11be7dc475..0000000000 Binary files a/sound/vox/acquisition.wav and /dev/null differ diff --git a/sound/vox/across.wav b/sound/vox/across.wav deleted file mode 100644 index 1591e89700..0000000000 Binary files a/sound/vox/across.wav and /dev/null differ diff --git a/sound/vox/activate.wav b/sound/vox/activate.wav deleted file mode 100644 index 32a45cbf22..0000000000 Binary files a/sound/vox/activate.wav and /dev/null differ diff --git a/sound/vox/activated.wav b/sound/vox/activated.wav deleted file mode 100644 index 154e0389e8..0000000000 Binary files a/sound/vox/activated.wav and /dev/null differ diff --git a/sound/vox/activity.wav b/sound/vox/activity.wav deleted file mode 100644 index 5920e6dd38..0000000000 Binary files a/sound/vox/activity.wav and /dev/null differ diff --git a/sound/vox/adios.wav b/sound/vox/adios.wav deleted file mode 100644 index 86e268ca1f..0000000000 Binary files a/sound/vox/adios.wav and /dev/null differ diff --git a/sound/vox/administration.wav b/sound/vox/administration.wav deleted file mode 100644 index d85d67eabf..0000000000 Binary files a/sound/vox/administration.wav and /dev/null differ diff --git a/sound/vox/advanced.wav b/sound/vox/advanced.wav deleted file mode 100644 index 987cd05b2a..0000000000 Binary files a/sound/vox/advanced.wav and /dev/null differ diff --git a/sound/vox/after.wav b/sound/vox/after.wav deleted file mode 100644 index f63abdff55..0000000000 Binary files a/sound/vox/after.wav and /dev/null differ diff --git a/sound/vox/agent.wav b/sound/vox/agent.wav deleted file mode 100644 index 594932971e..0000000000 Binary files a/sound/vox/agent.wav and /dev/null differ diff --git a/sound/vox/alarm.wav b/sound/vox/alarm.wav deleted file mode 100644 index 296ca773d6..0000000000 Binary files a/sound/vox/alarm.wav and /dev/null differ diff --git a/sound/vox/alert.wav b/sound/vox/alert.wav deleted file mode 100644 index 1a749b7c74..0000000000 Binary files a/sound/vox/alert.wav and /dev/null differ diff --git a/sound/vox/alien.wav b/sound/vox/alien.wav deleted file mode 100644 index 5890955995..0000000000 Binary files a/sound/vox/alien.wav and /dev/null differ diff --git a/sound/vox/aligned.wav b/sound/vox/aligned.wav deleted file mode 100644 index 20bbe5bfa7..0000000000 Binary files a/sound/vox/aligned.wav and /dev/null differ diff --git a/sound/vox/all.wav b/sound/vox/all.wav deleted file mode 100644 index 5bfc4dee60..0000000000 Binary files a/sound/vox/all.wav and /dev/null differ diff --git a/sound/vox/alpha.wav b/sound/vox/alpha.wav deleted file mode 100644 index d64239ec88..0000000000 Binary files a/sound/vox/alpha.wav and /dev/null differ diff --git a/sound/vox/am.wav b/sound/vox/am.wav deleted file mode 100644 index c273e5231d..0000000000 Binary files a/sound/vox/am.wav and /dev/null differ diff --git a/sound/vox/amigo.wav b/sound/vox/amigo.wav deleted file mode 100644 index 03ec617c29..0000000000 Binary files a/sound/vox/amigo.wav and /dev/null differ diff --git a/sound/vox/ammunition.wav b/sound/vox/ammunition.wav deleted file mode 100644 index 148605c2ca..0000000000 Binary files a/sound/vox/ammunition.wav and /dev/null differ diff --git a/sound/vox/an.wav b/sound/vox/an.wav deleted file mode 100644 index 5755607e36..0000000000 Binary files a/sound/vox/an.wav and /dev/null differ diff --git a/sound/vox/and.wav b/sound/vox/and.wav deleted file mode 100644 index 6e155c09d9..0000000000 Binary files a/sound/vox/and.wav and /dev/null differ diff --git a/sound/vox/announcement.wav b/sound/vox/announcement.wav deleted file mode 100644 index 9d185ead91..0000000000 Binary files a/sound/vox/announcement.wav and /dev/null differ diff --git a/sound/vox/anomalous.wav b/sound/vox/anomalous.wav deleted file mode 100644 index 1db9a4fa09..0000000000 Binary files a/sound/vox/anomalous.wav and /dev/null differ diff --git a/sound/vox/antenna.wav b/sound/vox/antenna.wav deleted file mode 100644 index fa82d58cb9..0000000000 Binary files a/sound/vox/antenna.wav and /dev/null differ diff --git a/sound/vox/any.wav b/sound/vox/any.wav deleted file mode 100644 index 73bed24661..0000000000 Binary files a/sound/vox/any.wav and /dev/null differ diff --git a/sound/vox/apprehend.wav b/sound/vox/apprehend.wav deleted file mode 100644 index 874ef83963..0000000000 Binary files a/sound/vox/apprehend.wav and /dev/null differ diff --git a/sound/vox/approach.wav b/sound/vox/approach.wav deleted file mode 100644 index 5c5e1995df..0000000000 Binary files a/sound/vox/approach.wav and /dev/null differ diff --git a/sound/vox/are.wav b/sound/vox/are.wav deleted file mode 100644 index bacdb31e2a..0000000000 Binary files a/sound/vox/are.wav and /dev/null differ diff --git a/sound/vox/area.wav b/sound/vox/area.wav deleted file mode 100644 index f2ac3dd05a..0000000000 Binary files a/sound/vox/area.wav and /dev/null differ diff --git a/sound/vox/arm.wav b/sound/vox/arm.wav deleted file mode 100644 index 225abed39e..0000000000 Binary files a/sound/vox/arm.wav and /dev/null differ diff --git a/sound/vox/armed.wav b/sound/vox/armed.wav deleted file mode 100644 index 55e4a67c66..0000000000 Binary files a/sound/vox/armed.wav and /dev/null differ diff --git a/sound/vox/armor.wav b/sound/vox/armor.wav deleted file mode 100644 index 2ca51709d4..0000000000 Binary files a/sound/vox/armor.wav and /dev/null differ diff --git a/sound/vox/armory.wav b/sound/vox/armory.wav deleted file mode 100644 index 63fff9e39e..0000000000 Binary files a/sound/vox/armory.wav and /dev/null differ diff --git a/sound/vox/arrest.wav b/sound/vox/arrest.wav deleted file mode 100644 index cdc24ec627..0000000000 Binary files a/sound/vox/arrest.wav and /dev/null differ diff --git a/sound/vox/ass.wav b/sound/vox/ass.wav deleted file mode 100644 index 2b6698aa66..0000000000 Binary files a/sound/vox/ass.wav and /dev/null differ diff --git a/sound/vox/at.wav b/sound/vox/at.wav deleted file mode 100644 index 0b1b9396e5..0000000000 Binary files a/sound/vox/at.wav and /dev/null differ diff --git a/sound/vox/atomic.wav b/sound/vox/atomic.wav deleted file mode 100644 index 6a00304807..0000000000 Binary files a/sound/vox/atomic.wav and /dev/null differ diff --git a/sound/vox/attention.wav b/sound/vox/attention.wav deleted file mode 100644 index e9078e6d9e..0000000000 Binary files a/sound/vox/attention.wav and /dev/null differ diff --git a/sound/vox/authorize.wav b/sound/vox/authorize.wav deleted file mode 100644 index 3dcff1208b..0000000000 Binary files a/sound/vox/authorize.wav and /dev/null differ diff --git a/sound/vox/authorized.wav b/sound/vox/authorized.wav deleted file mode 100644 index 67672abf35..0000000000 Binary files a/sound/vox/authorized.wav and /dev/null differ diff --git a/sound/vox/automatic.wav b/sound/vox/automatic.wav deleted file mode 100644 index 8e676b0827..0000000000 Binary files a/sound/vox/automatic.wav and /dev/null differ diff --git a/sound/vox/away.wav b/sound/vox/away.wav deleted file mode 100644 index e1a3bee4d8..0000000000 Binary files a/sound/vox/away.wav and /dev/null differ diff --git a/sound/vox/b.wav b/sound/vox/b.wav deleted file mode 100644 index 751c7b7b1a..0000000000 Binary files a/sound/vox/b.wav and /dev/null differ diff --git a/sound/vox/back.wav b/sound/vox/back.wav deleted file mode 100644 index b2f4e56e40..0000000000 Binary files a/sound/vox/back.wav and /dev/null differ diff --git a/sound/vox/backman.wav b/sound/vox/backman.wav deleted file mode 100644 index 60e149eaee..0000000000 Binary files a/sound/vox/backman.wav and /dev/null differ diff --git a/sound/vox/bad.wav b/sound/vox/bad.wav deleted file mode 100644 index b59100564f..0000000000 Binary files a/sound/vox/bad.wav and /dev/null differ diff --git a/sound/vox/bag.wav b/sound/vox/bag.wav deleted file mode 100644 index ccbf3f851e..0000000000 Binary files a/sound/vox/bag.wav and /dev/null differ diff --git a/sound/vox/bailey.wav b/sound/vox/bailey.wav deleted file mode 100644 index deca97dc6b..0000000000 Binary files a/sound/vox/bailey.wav and /dev/null differ diff --git a/sound/vox/barracks.wav b/sound/vox/barracks.wav deleted file mode 100644 index c7cc651ced..0000000000 Binary files a/sound/vox/barracks.wav and /dev/null differ diff --git a/sound/vox/base.wav b/sound/vox/base.wav deleted file mode 100644 index a4c6c829e5..0000000000 Binary files a/sound/vox/base.wav and /dev/null differ diff --git a/sound/vox/bay.wav b/sound/vox/bay.wav deleted file mode 100644 index 769dfc38c2..0000000000 Binary files a/sound/vox/bay.wav and /dev/null differ diff --git a/sound/vox/be.wav b/sound/vox/be.wav deleted file mode 100644 index 38074711b4..0000000000 Binary files a/sound/vox/be.wav and /dev/null differ diff --git a/sound/vox/been.wav b/sound/vox/been.wav deleted file mode 100644 index 959f08ebf5..0000000000 Binary files a/sound/vox/been.wav and /dev/null differ diff --git a/sound/vox/before.wav b/sound/vox/before.wav deleted file mode 100644 index a7c2cdd5b2..0000000000 Binary files a/sound/vox/before.wav and /dev/null differ diff --git a/sound/vox/beyond.wav b/sound/vox/beyond.wav deleted file mode 100644 index d0641c009b..0000000000 Binary files a/sound/vox/beyond.wav and /dev/null differ diff --git a/sound/vox/biohazard.wav b/sound/vox/biohazard.wav deleted file mode 100644 index 6ee3aca426..0000000000 Binary files a/sound/vox/biohazard.wav and /dev/null differ diff --git a/sound/vox/biological.wav b/sound/vox/biological.wav deleted file mode 100644 index fef86450b1..0000000000 Binary files a/sound/vox/biological.wav and /dev/null differ diff --git a/sound/vox/birdwell.wav b/sound/vox/birdwell.wav deleted file mode 100644 index 6436f724f0..0000000000 Binary files a/sound/vox/birdwell.wav and /dev/null differ diff --git a/sound/vox/bizwarn.wav b/sound/vox/bizwarn.wav deleted file mode 100644 index ff392b491a..0000000000 Binary files a/sound/vox/bizwarn.wav and /dev/null differ diff --git a/sound/vox/black.wav b/sound/vox/black.wav deleted file mode 100644 index 52dd0881ae..0000000000 Binary files a/sound/vox/black.wav and /dev/null differ diff --git a/sound/vox/blast.wav b/sound/vox/blast.wav deleted file mode 100644 index fa8d79fbb4..0000000000 Binary files a/sound/vox/blast.wav and /dev/null differ diff --git a/sound/vox/blocked.wav b/sound/vox/blocked.wav deleted file mode 100644 index 5e086f4bce..0000000000 Binary files a/sound/vox/blocked.wav and /dev/null differ diff --git a/sound/vox/bloop.wav b/sound/vox/bloop.wav deleted file mode 100644 index 49cf90c523..0000000000 Binary files a/sound/vox/bloop.wav and /dev/null differ diff --git a/sound/vox/blue.wav b/sound/vox/blue.wav deleted file mode 100644 index 83a6e7c3eb..0000000000 Binary files a/sound/vox/blue.wav and /dev/null differ diff --git a/sound/vox/bottom.wav b/sound/vox/bottom.wav deleted file mode 100644 index 2330a74b28..0000000000 Binary files a/sound/vox/bottom.wav and /dev/null differ diff --git a/sound/vox/bravo.wav b/sound/vox/bravo.wav deleted file mode 100644 index 560af14f2c..0000000000 Binary files a/sound/vox/bravo.wav and /dev/null differ diff --git a/sound/vox/breach.wav b/sound/vox/breach.wav deleted file mode 100644 index 89a6178334..0000000000 Binary files a/sound/vox/breach.wav and /dev/null differ diff --git a/sound/vox/breached.wav b/sound/vox/breached.wav deleted file mode 100644 index f4028d18a8..0000000000 Binary files a/sound/vox/breached.wav and /dev/null differ diff --git a/sound/vox/break.wav b/sound/vox/break.wav deleted file mode 100644 index 124720295b..0000000000 Binary files a/sound/vox/break.wav and /dev/null differ diff --git a/sound/vox/bridge.wav b/sound/vox/bridge.wav deleted file mode 100644 index cbb0cb461d..0000000000 Binary files a/sound/vox/bridge.wav and /dev/null differ diff --git a/sound/vox/bust.wav b/sound/vox/bust.wav deleted file mode 100644 index 6af0f12c80..0000000000 Binary files a/sound/vox/bust.wav and /dev/null differ diff --git a/sound/vox/but.wav b/sound/vox/but.wav deleted file mode 100644 index 0728ed3e1e..0000000000 Binary files a/sound/vox/but.wav and /dev/null differ diff --git a/sound/vox/button.wav b/sound/vox/button.wav deleted file mode 100644 index bc583238ca..0000000000 Binary files a/sound/vox/button.wav and /dev/null differ diff --git a/sound/vox/buzwarn.wav b/sound/vox/buzwarn.wav deleted file mode 100644 index 82ddd2cdb3..0000000000 Binary files a/sound/vox/buzwarn.wav and /dev/null differ diff --git a/sound/vox/bypass.wav b/sound/vox/bypass.wav deleted file mode 100644 index b5155d37ff..0000000000 Binary files a/sound/vox/bypass.wav and /dev/null differ diff --git a/sound/vox/c.wav b/sound/vox/c.wav deleted file mode 100644 index 9fcfc5e745..0000000000 Binary files a/sound/vox/c.wav and /dev/null differ diff --git a/sound/vox/cable.wav b/sound/vox/cable.wav deleted file mode 100644 index d761092651..0000000000 Binary files a/sound/vox/cable.wav and /dev/null differ diff --git a/sound/vox/call.wav b/sound/vox/call.wav deleted file mode 100644 index aa06767b94..0000000000 Binary files a/sound/vox/call.wav and /dev/null differ diff --git a/sound/vox/called.wav b/sound/vox/called.wav deleted file mode 100644 index f0c2897c8d..0000000000 Binary files a/sound/vox/called.wav and /dev/null differ diff --git a/sound/vox/canal.wav b/sound/vox/canal.wav deleted file mode 100644 index b426a8f6a9..0000000000 Binary files a/sound/vox/canal.wav and /dev/null differ diff --git a/sound/vox/cap.wav b/sound/vox/cap.wav deleted file mode 100644 index 998505184b..0000000000 Binary files a/sound/vox/cap.wav and /dev/null differ diff --git a/sound/vox/captain.wav b/sound/vox/captain.wav deleted file mode 100644 index 61222de532..0000000000 Binary files a/sound/vox/captain.wav and /dev/null differ diff --git a/sound/vox/capture.wav b/sound/vox/capture.wav deleted file mode 100644 index c7bfaad64f..0000000000 Binary files a/sound/vox/capture.wav and /dev/null differ diff --git a/sound/vox/ceiling.wav b/sound/vox/ceiling.wav deleted file mode 100644 index 381db754ca..0000000000 Binary files a/sound/vox/ceiling.wav and /dev/null differ diff --git a/sound/vox/celsius.wav b/sound/vox/celsius.wav deleted file mode 100644 index ac59448a46..0000000000 Binary files a/sound/vox/celsius.wav and /dev/null differ diff --git a/sound/vox/center.wav b/sound/vox/center.wav deleted file mode 100644 index 35bdcb5224..0000000000 Binary files a/sound/vox/center.wav and /dev/null differ diff --git a/sound/vox/centi.wav b/sound/vox/centi.wav deleted file mode 100644 index efccef07e7..0000000000 Binary files a/sound/vox/centi.wav and /dev/null differ diff --git a/sound/vox/central.wav b/sound/vox/central.wav deleted file mode 100644 index 1c9c58be57..0000000000 Binary files a/sound/vox/central.wav and /dev/null differ diff --git a/sound/vox/chamber.wav b/sound/vox/chamber.wav deleted file mode 100644 index 38dbf9ffa7..0000000000 Binary files a/sound/vox/chamber.wav and /dev/null differ diff --git a/sound/vox/charlie.wav b/sound/vox/charlie.wav deleted file mode 100644 index 353ce195f3..0000000000 Binary files a/sound/vox/charlie.wav and /dev/null differ diff --git a/sound/vox/check.wav b/sound/vox/check.wav deleted file mode 100644 index 709f9a6555..0000000000 Binary files a/sound/vox/check.wav and /dev/null differ diff --git a/sound/vox/checkpoint.wav b/sound/vox/checkpoint.wav deleted file mode 100644 index 15aa5e4cc9..0000000000 Binary files a/sound/vox/checkpoint.wav and /dev/null differ diff --git a/sound/vox/chemical.wav b/sound/vox/chemical.wav deleted file mode 100644 index eeb32be385..0000000000 Binary files a/sound/vox/chemical.wav and /dev/null differ diff --git a/sound/vox/cleanup.wav b/sound/vox/cleanup.wav deleted file mode 100644 index a47ddb233a..0000000000 Binary files a/sound/vox/cleanup.wav and /dev/null differ diff --git a/sound/vox/clear.wav b/sound/vox/clear.wav deleted file mode 100644 index a23cfc5e2b..0000000000 Binary files a/sound/vox/clear.wav and /dev/null differ diff --git a/sound/vox/clearance.wav b/sound/vox/clearance.wav deleted file mode 100644 index a35e0699b8..0000000000 Binary files a/sound/vox/clearance.wav and /dev/null differ diff --git a/sound/vox/close.wav b/sound/vox/close.wav deleted file mode 100644 index 6a46d7fb06..0000000000 Binary files a/sound/vox/close.wav and /dev/null differ diff --git a/sound/vox/code.wav b/sound/vox/code.wav deleted file mode 100644 index 63bdfbe883..0000000000 Binary files a/sound/vox/code.wav and /dev/null differ diff --git a/sound/vox/coded.wav b/sound/vox/coded.wav deleted file mode 100644 index ec876b297f..0000000000 Binary files a/sound/vox/coded.wav and /dev/null differ diff --git a/sound/vox/collider.wav b/sound/vox/collider.wav deleted file mode 100644 index a26ff0a317..0000000000 Binary files a/sound/vox/collider.wav and /dev/null differ diff --git a/sound/vox/command.wav b/sound/vox/command.wav deleted file mode 100644 index ba0c7e852b..0000000000 Binary files a/sound/vox/command.wav and /dev/null differ diff --git a/sound/vox/communication.wav b/sound/vox/communication.wav deleted file mode 100644 index 35165357e6..0000000000 Binary files a/sound/vox/communication.wav and /dev/null differ diff --git a/sound/vox/complex.wav b/sound/vox/complex.wav deleted file mode 100644 index d2c01ccd57..0000000000 Binary files a/sound/vox/complex.wav and /dev/null differ diff --git a/sound/vox/computer.wav b/sound/vox/computer.wav deleted file mode 100644 index 89808c20d7..0000000000 Binary files a/sound/vox/computer.wav and /dev/null differ diff --git a/sound/vox/condition.wav b/sound/vox/condition.wav deleted file mode 100644 index b32c83668e..0000000000 Binary files a/sound/vox/condition.wav and /dev/null differ diff --git a/sound/vox/containment.wav b/sound/vox/containment.wav deleted file mode 100644 index 563cb4e15a..0000000000 Binary files a/sound/vox/containment.wav and /dev/null differ diff --git a/sound/vox/contamination.wav b/sound/vox/contamination.wav deleted file mode 100644 index d597267cdd..0000000000 Binary files a/sound/vox/contamination.wav and /dev/null differ diff --git a/sound/vox/control.wav b/sound/vox/control.wav deleted file mode 100644 index e7bf57bbd8..0000000000 Binary files a/sound/vox/control.wav and /dev/null differ diff --git a/sound/vox/coolant.wav b/sound/vox/coolant.wav deleted file mode 100644 index d4474b9d9d..0000000000 Binary files a/sound/vox/coolant.wav and /dev/null differ diff --git a/sound/vox/coomer.wav b/sound/vox/coomer.wav deleted file mode 100644 index 1e4b37929f..0000000000 Binary files a/sound/vox/coomer.wav and /dev/null differ diff --git a/sound/vox/core.wav b/sound/vox/core.wav deleted file mode 100644 index da6874b2e7..0000000000 Binary files a/sound/vox/core.wav and /dev/null differ diff --git a/sound/vox/correct.wav b/sound/vox/correct.wav deleted file mode 100644 index cde927b747..0000000000 Binary files a/sound/vox/correct.wav and /dev/null differ diff --git a/sound/vox/corridor.wav b/sound/vox/corridor.wav deleted file mode 100644 index defdcda2d1..0000000000 Binary files a/sound/vox/corridor.wav and /dev/null differ diff --git a/sound/vox/crew.wav b/sound/vox/crew.wav deleted file mode 100644 index 4f48a08cb1..0000000000 Binary files a/sound/vox/crew.wav and /dev/null differ diff --git a/sound/vox/cross.wav b/sound/vox/cross.wav deleted file mode 100644 index c393dffbf1..0000000000 Binary files a/sound/vox/cross.wav and /dev/null differ diff --git a/sound/vox/cryogenic.wav b/sound/vox/cryogenic.wav deleted file mode 100644 index eb1a62ae38..0000000000 Binary files a/sound/vox/cryogenic.wav and /dev/null differ diff --git a/sound/vox/d.wav b/sound/vox/d.wav deleted file mode 100644 index f977a49505..0000000000 Binary files a/sound/vox/d.wav and /dev/null differ diff --git a/sound/vox/dadeda.wav b/sound/vox/dadeda.wav deleted file mode 100644 index 2ac0ff589a..0000000000 Binary files a/sound/vox/dadeda.wav and /dev/null differ diff --git a/sound/vox/damage.wav b/sound/vox/damage.wav deleted file mode 100644 index 83fce3dcf0..0000000000 Binary files a/sound/vox/damage.wav and /dev/null differ diff --git a/sound/vox/damaged.wav b/sound/vox/damaged.wav deleted file mode 100644 index e9f2ff5dbb..0000000000 Binary files a/sound/vox/damaged.wav and /dev/null differ diff --git a/sound/vox/danger.wav b/sound/vox/danger.wav deleted file mode 100644 index 40ff8b8db9..0000000000 Binary files a/sound/vox/danger.wav and /dev/null differ diff --git a/sound/vox/day.wav b/sound/vox/day.wav deleted file mode 100644 index 92e3fe81da..0000000000 Binary files a/sound/vox/day.wav and /dev/null differ diff --git a/sound/vox/deactivated.wav b/sound/vox/deactivated.wav deleted file mode 100644 index f587f266dd..0000000000 Binary files a/sound/vox/deactivated.wav and /dev/null differ diff --git a/sound/vox/decompression.wav b/sound/vox/decompression.wav deleted file mode 100644 index a758f1bbd7..0000000000 Binary files a/sound/vox/decompression.wav and /dev/null differ diff --git a/sound/vox/decontamination.wav b/sound/vox/decontamination.wav deleted file mode 100644 index 9794de0a23..0000000000 Binary files a/sound/vox/decontamination.wav and /dev/null differ diff --git a/sound/vox/deeoo.wav b/sound/vox/deeoo.wav deleted file mode 100644 index 4f82a18b2a..0000000000 Binary files a/sound/vox/deeoo.wav and /dev/null differ diff --git a/sound/vox/defense.wav b/sound/vox/defense.wav deleted file mode 100644 index 9da8de137f..0000000000 Binary files a/sound/vox/defense.wav and /dev/null differ diff --git a/sound/vox/degrees.wav b/sound/vox/degrees.wav deleted file mode 100644 index 7e77561c14..0000000000 Binary files a/sound/vox/degrees.wav and /dev/null differ diff --git a/sound/vox/delta.wav b/sound/vox/delta.wav deleted file mode 100644 index 86052809f4..0000000000 Binary files a/sound/vox/delta.wav and /dev/null differ diff --git a/sound/vox/denied.wav b/sound/vox/denied.wav deleted file mode 100644 index 6b1167d41d..0000000000 Binary files a/sound/vox/denied.wav and /dev/null differ diff --git a/sound/vox/deploy.wav b/sound/vox/deploy.wav deleted file mode 100644 index 2f9aacd350..0000000000 Binary files a/sound/vox/deploy.wav and /dev/null differ diff --git a/sound/vox/deployed.wav b/sound/vox/deployed.wav deleted file mode 100644 index a85a076b18..0000000000 Binary files a/sound/vox/deployed.wav and /dev/null differ diff --git a/sound/vox/destroy.wav b/sound/vox/destroy.wav deleted file mode 100644 index 56cf437c66..0000000000 Binary files a/sound/vox/destroy.wav and /dev/null differ diff --git a/sound/vox/destroyed.wav b/sound/vox/destroyed.wav deleted file mode 100644 index 20308df2df..0000000000 Binary files a/sound/vox/destroyed.wav and /dev/null differ diff --git a/sound/vox/detain.wav b/sound/vox/detain.wav deleted file mode 100644 index 7d5f4e06f4..0000000000 Binary files a/sound/vox/detain.wav and /dev/null differ diff --git a/sound/vox/detected.wav b/sound/vox/detected.wav deleted file mode 100644 index 101429a614..0000000000 Binary files a/sound/vox/detected.wav and /dev/null differ diff --git a/sound/vox/detonation.wav b/sound/vox/detonation.wav deleted file mode 100644 index a696e97976..0000000000 Binary files a/sound/vox/detonation.wav and /dev/null differ diff --git a/sound/vox/device.wav b/sound/vox/device.wav deleted file mode 100644 index d5ecd2f67b..0000000000 Binary files a/sound/vox/device.wav and /dev/null differ diff --git a/sound/vox/did.wav b/sound/vox/did.wav deleted file mode 100644 index 0c52e31b72..0000000000 Binary files a/sound/vox/did.wav and /dev/null differ diff --git a/sound/vox/die.wav b/sound/vox/die.wav deleted file mode 100644 index b47622cfc7..0000000000 Binary files a/sound/vox/die.wav and /dev/null differ diff --git a/sound/vox/dimensional.wav b/sound/vox/dimensional.wav deleted file mode 100644 index f67956ddc7..0000000000 Binary files a/sound/vox/dimensional.wav and /dev/null differ diff --git a/sound/vox/dirt.wav b/sound/vox/dirt.wav deleted file mode 100644 index 08990c47d8..0000000000 Binary files a/sound/vox/dirt.wav and /dev/null differ diff --git a/sound/vox/disengaged.wav b/sound/vox/disengaged.wav deleted file mode 100644 index aa84ed27a6..0000000000 Binary files a/sound/vox/disengaged.wav and /dev/null differ diff --git a/sound/vox/dish.wav b/sound/vox/dish.wav deleted file mode 100644 index aeff92d205..0000000000 Binary files a/sound/vox/dish.wav and /dev/null differ diff --git a/sound/vox/disposal.wav b/sound/vox/disposal.wav deleted file mode 100644 index bfe38f6098..0000000000 Binary files a/sound/vox/disposal.wav and /dev/null differ diff --git a/sound/vox/distance.wav b/sound/vox/distance.wav deleted file mode 100644 index 670eacaabe..0000000000 Binary files a/sound/vox/distance.wav and /dev/null differ diff --git a/sound/vox/distortion.wav b/sound/vox/distortion.wav deleted file mode 100644 index 7fae33e244..0000000000 Binary files a/sound/vox/distortion.wav and /dev/null differ diff --git a/sound/vox/do.wav b/sound/vox/do.wav deleted file mode 100644 index d82a9ab107..0000000000 Binary files a/sound/vox/do.wav and /dev/null differ diff --git a/sound/vox/doctor.wav b/sound/vox/doctor.wav deleted file mode 100644 index f9cdc53805..0000000000 Binary files a/sound/vox/doctor.wav and /dev/null differ diff --git a/sound/vox/doop.wav b/sound/vox/doop.wav deleted file mode 100644 index 14bce15cea..0000000000 Binary files a/sound/vox/doop.wav and /dev/null differ diff --git a/sound/vox/door.wav b/sound/vox/door.wav deleted file mode 100644 index 629dee38e7..0000000000 Binary files a/sound/vox/door.wav and /dev/null differ diff --git a/sound/vox/down.wav b/sound/vox/down.wav deleted file mode 100644 index b677e031da..0000000000 Binary files a/sound/vox/down.wav and /dev/null differ diff --git a/sound/vox/dual.wav b/sound/vox/dual.wav deleted file mode 100644 index 4693b31d42..0000000000 Binary files a/sound/vox/dual.wav and /dev/null differ diff --git a/sound/vox/duct.wav b/sound/vox/duct.wav deleted file mode 100644 index d0e937fd80..0000000000 Binary files a/sound/vox/duct.wav and /dev/null differ diff --git a/sound/vox/e.wav b/sound/vox/e.wav deleted file mode 100644 index 6f991d0fcc..0000000000 Binary files a/sound/vox/e.wav and /dev/null differ diff --git a/sound/vox/east.wav b/sound/vox/east.wav deleted file mode 100644 index 296ce53d41..0000000000 Binary files a/sound/vox/east.wav and /dev/null differ diff --git a/sound/vox/echo.wav b/sound/vox/echo.wav deleted file mode 100644 index 3087ecbd9c..0000000000 Binary files a/sound/vox/echo.wav and /dev/null differ diff --git a/sound/vox/ed.wav b/sound/vox/ed.wav deleted file mode 100644 index 71303ffe0a..0000000000 Binary files a/sound/vox/ed.wav and /dev/null differ diff --git a/sound/vox/effect.wav b/sound/vox/effect.wav deleted file mode 100644 index a0128cf698..0000000000 Binary files a/sound/vox/effect.wav and /dev/null differ diff --git a/sound/vox/egress.wav b/sound/vox/egress.wav deleted file mode 100644 index 47fa437ce8..0000000000 Binary files a/sound/vox/egress.wav and /dev/null differ diff --git a/sound/vox/eight.wav b/sound/vox/eight.wav deleted file mode 100644 index 4fef5c2eb7..0000000000 Binary files a/sound/vox/eight.wav and /dev/null differ diff --git a/sound/vox/eighteen.wav b/sound/vox/eighteen.wav deleted file mode 100644 index 1aff299ad2..0000000000 Binary files a/sound/vox/eighteen.wav and /dev/null differ diff --git a/sound/vox/eighty.wav b/sound/vox/eighty.wav deleted file mode 100644 index a1f54835db..0000000000 Binary files a/sound/vox/eighty.wav and /dev/null differ diff --git a/sound/vox/electric.wav b/sound/vox/electric.wav deleted file mode 100644 index 48c4fe0176..0000000000 Binary files a/sound/vox/electric.wav and /dev/null differ diff --git a/sound/vox/electromagnetic.wav b/sound/vox/electromagnetic.wav deleted file mode 100644 index 886c76ef6b..0000000000 Binary files a/sound/vox/electromagnetic.wav and /dev/null differ diff --git a/sound/vox/elevator.wav b/sound/vox/elevator.wav deleted file mode 100644 index a4d4144849..0000000000 Binary files a/sound/vox/elevator.wav and /dev/null differ diff --git a/sound/vox/eleven.wav b/sound/vox/eleven.wav deleted file mode 100644 index 5473a25411..0000000000 Binary files a/sound/vox/eleven.wav and /dev/null differ diff --git a/sound/vox/eliminate.wav b/sound/vox/eliminate.wav deleted file mode 100644 index d4e51affb3..0000000000 Binary files a/sound/vox/eliminate.wav and /dev/null differ diff --git a/sound/vox/emergency.wav b/sound/vox/emergency.wav deleted file mode 100644 index 62bb34ef41..0000000000 Binary files a/sound/vox/emergency.wav and /dev/null differ diff --git a/sound/vox/energy.wav b/sound/vox/energy.wav deleted file mode 100644 index b66ed4db10..0000000000 Binary files a/sound/vox/energy.wav and /dev/null differ diff --git a/sound/vox/engage.wav b/sound/vox/engage.wav deleted file mode 100644 index 11a43c40a7..0000000000 Binary files a/sound/vox/engage.wav and /dev/null differ diff --git a/sound/vox/engaged.wav b/sound/vox/engaged.wav deleted file mode 100644 index a47cbb5977..0000000000 Binary files a/sound/vox/engaged.wav and /dev/null differ diff --git a/sound/vox/engine.wav b/sound/vox/engine.wav deleted file mode 100644 index f6ab907c5b..0000000000 Binary files a/sound/vox/engine.wav and /dev/null differ diff --git a/sound/vox/enter.wav b/sound/vox/enter.wav deleted file mode 100644 index f3f53ea821..0000000000 Binary files a/sound/vox/enter.wav and /dev/null differ diff --git a/sound/vox/entry.wav b/sound/vox/entry.wav deleted file mode 100644 index a027e1a7e5..0000000000 Binary files a/sound/vox/entry.wav and /dev/null differ diff --git a/sound/vox/environment.wav b/sound/vox/environment.wav deleted file mode 100644 index 6ab7d940cc..0000000000 Binary files a/sound/vox/environment.wav and /dev/null differ diff --git a/sound/vox/error.wav b/sound/vox/error.wav deleted file mode 100644 index 05b2bebf60..0000000000 Binary files a/sound/vox/error.wav and /dev/null differ diff --git a/sound/vox/escape.wav b/sound/vox/escape.wav deleted file mode 100644 index dbf3c954f5..0000000000 Binary files a/sound/vox/escape.wav and /dev/null differ diff --git a/sound/vox/evacuate.wav b/sound/vox/evacuate.wav deleted file mode 100644 index 2766662cd2..0000000000 Binary files a/sound/vox/evacuate.wav and /dev/null differ diff --git a/sound/vox/exchange.wav b/sound/vox/exchange.wav deleted file mode 100644 index 73426aea01..0000000000 Binary files a/sound/vox/exchange.wav and /dev/null differ diff --git a/sound/vox/exit.wav b/sound/vox/exit.wav deleted file mode 100644 index 85680b3212..0000000000 Binary files a/sound/vox/exit.wav and /dev/null differ diff --git a/sound/vox/expect.wav b/sound/vox/expect.wav deleted file mode 100644 index a562e53a9a..0000000000 Binary files a/sound/vox/expect.wav and /dev/null differ diff --git a/sound/vox/experiment.wav b/sound/vox/experiment.wav deleted file mode 100644 index 3f60c2181b..0000000000 Binary files a/sound/vox/experiment.wav and /dev/null differ diff --git a/sound/vox/experimental.wav b/sound/vox/experimental.wav deleted file mode 100644 index fbf75a59d3..0000000000 Binary files a/sound/vox/experimental.wav and /dev/null differ diff --git a/sound/vox/explode.wav b/sound/vox/explode.wav deleted file mode 100644 index 847e64562c..0000000000 Binary files a/sound/vox/explode.wav and /dev/null differ diff --git a/sound/vox/explosion.wav b/sound/vox/explosion.wav deleted file mode 100644 index a2e442ec2f..0000000000 Binary files a/sound/vox/explosion.wav and /dev/null differ diff --git a/sound/vox/exposure.wav b/sound/vox/exposure.wav deleted file mode 100644 index 37a933ca62..0000000000 Binary files a/sound/vox/exposure.wav and /dev/null differ diff --git a/sound/vox/exterminate.wav b/sound/vox/exterminate.wav deleted file mode 100644 index f1c3c233d6..0000000000 Binary files a/sound/vox/exterminate.wav and /dev/null differ diff --git a/sound/vox/extinguish.wav b/sound/vox/extinguish.wav deleted file mode 100644 index 1fc83d9e7e..0000000000 Binary files a/sound/vox/extinguish.wav and /dev/null differ diff --git a/sound/vox/extinguisher.wav b/sound/vox/extinguisher.wav deleted file mode 100644 index eed3164bfc..0000000000 Binary files a/sound/vox/extinguisher.wav and /dev/null differ diff --git a/sound/vox/extreme.wav b/sound/vox/extreme.wav deleted file mode 100644 index 0fc3adfb50..0000000000 Binary files a/sound/vox/extreme.wav and /dev/null differ diff --git a/sound/vox/f.wav b/sound/vox/f.wav deleted file mode 100644 index 0f06b33886..0000000000 Binary files a/sound/vox/f.wav and /dev/null differ diff --git a/sound/vox/facility.wav b/sound/vox/facility.wav deleted file mode 100644 index 812445e3dd..0000000000 Binary files a/sound/vox/facility.wav and /dev/null differ diff --git a/sound/vox/fahrenheit.wav b/sound/vox/fahrenheit.wav deleted file mode 100644 index 96411aabdc..0000000000 Binary files a/sound/vox/fahrenheit.wav and /dev/null differ diff --git a/sound/vox/failed.wav b/sound/vox/failed.wav deleted file mode 100644 index f717b05375..0000000000 Binary files a/sound/vox/failed.wav and /dev/null differ diff --git a/sound/vox/failure.wav b/sound/vox/failure.wav deleted file mode 100644 index dd662fc5a6..0000000000 Binary files a/sound/vox/failure.wav and /dev/null differ diff --git a/sound/vox/farthest.wav b/sound/vox/farthest.wav deleted file mode 100644 index fcca7a432e..0000000000 Binary files a/sound/vox/farthest.wav and /dev/null differ diff --git a/sound/vox/fast.wav b/sound/vox/fast.wav deleted file mode 100644 index 821885a739..0000000000 Binary files a/sound/vox/fast.wav and /dev/null differ diff --git a/sound/vox/feet.wav b/sound/vox/feet.wav deleted file mode 100644 index 5adc5dbd62..0000000000 Binary files a/sound/vox/feet.wav and /dev/null differ diff --git a/sound/vox/field.wav b/sound/vox/field.wav deleted file mode 100644 index 6cc1ab42f8..0000000000 Binary files a/sound/vox/field.wav and /dev/null differ diff --git a/sound/vox/fifteen.wav b/sound/vox/fifteen.wav deleted file mode 100644 index 63ca382128..0000000000 Binary files a/sound/vox/fifteen.wav and /dev/null differ diff --git a/sound/vox/fifth.wav b/sound/vox/fifth.wav deleted file mode 100644 index 3886e043bf..0000000000 Binary files a/sound/vox/fifth.wav and /dev/null differ diff --git a/sound/vox/fifty.wav b/sound/vox/fifty.wav deleted file mode 100644 index 80f7b11103..0000000000 Binary files a/sound/vox/fifty.wav and /dev/null differ diff --git a/sound/vox/final.wav b/sound/vox/final.wav deleted file mode 100644 index d4c807af6e..0000000000 Binary files a/sound/vox/final.wav and /dev/null differ diff --git a/sound/vox/fine.wav b/sound/vox/fine.wav deleted file mode 100644 index f74d8fbfaa..0000000000 Binary files a/sound/vox/fine.wav and /dev/null differ diff --git a/sound/vox/fire.wav b/sound/vox/fire.wav deleted file mode 100644 index ce0a45d9c6..0000000000 Binary files a/sound/vox/fire.wav and /dev/null differ diff --git a/sound/vox/first.wav b/sound/vox/first.wav deleted file mode 100644 index 18a7fdf7af..0000000000 Binary files a/sound/vox/first.wav and /dev/null differ diff --git a/sound/vox/five.wav b/sound/vox/five.wav deleted file mode 100644 index aa23cbe9cf..0000000000 Binary files a/sound/vox/five.wav and /dev/null differ diff --git a/sound/vox/flooding.wav b/sound/vox/flooding.wav deleted file mode 100644 index 7b9f5bcc69..0000000000 Binary files a/sound/vox/flooding.wav and /dev/null differ diff --git a/sound/vox/floor.wav b/sound/vox/floor.wav deleted file mode 100644 index b086549164..0000000000 Binary files a/sound/vox/floor.wav and /dev/null differ diff --git a/sound/vox/fool.wav b/sound/vox/fool.wav deleted file mode 100644 index 327b3f5b59..0000000000 Binary files a/sound/vox/fool.wav and /dev/null differ diff --git a/sound/vox/for.wav b/sound/vox/for.wav deleted file mode 100644 index 84f793dece..0000000000 Binary files a/sound/vox/for.wav and /dev/null differ diff --git a/sound/vox/forbidden.wav b/sound/vox/forbidden.wav deleted file mode 100644 index f4d742505e..0000000000 Binary files a/sound/vox/forbidden.wav and /dev/null differ diff --git a/sound/vox/force.wav b/sound/vox/force.wav deleted file mode 100644 index 3745c71418..0000000000 Binary files a/sound/vox/force.wav and /dev/null differ diff --git a/sound/vox/forms.wav b/sound/vox/forms.wav deleted file mode 100644 index 642e201abc..0000000000 Binary files a/sound/vox/forms.wav and /dev/null differ diff --git a/sound/vox/found.wav b/sound/vox/found.wav deleted file mode 100644 index 59da4031fc..0000000000 Binary files a/sound/vox/found.wav and /dev/null differ diff --git a/sound/vox/four.wav b/sound/vox/four.wav deleted file mode 100644 index a614cbcdc5..0000000000 Binary files a/sound/vox/four.wav and /dev/null differ diff --git a/sound/vox/fourteen.wav b/sound/vox/fourteen.wav deleted file mode 100644 index aa0846855b..0000000000 Binary files a/sound/vox/fourteen.wav and /dev/null differ diff --git a/sound/vox/fourth.wav b/sound/vox/fourth.wav deleted file mode 100644 index 5c9071d292..0000000000 Binary files a/sound/vox/fourth.wav and /dev/null differ diff --git a/sound/vox/fourty.wav b/sound/vox/fourty.wav deleted file mode 100644 index 6bb8fb3e12..0000000000 Binary files a/sound/vox/fourty.wav and /dev/null differ diff --git a/sound/vox/foxtrot.wav b/sound/vox/foxtrot.wav deleted file mode 100644 index ece21be942..0000000000 Binary files a/sound/vox/foxtrot.wav and /dev/null differ diff --git a/sound/vox/freeman.wav b/sound/vox/freeman.wav deleted file mode 100644 index 26a9ae229b..0000000000 Binary files a/sound/vox/freeman.wav and /dev/null differ diff --git a/sound/vox/freezer.wav b/sound/vox/freezer.wav deleted file mode 100644 index 32da861548..0000000000 Binary files a/sound/vox/freezer.wav and /dev/null differ diff --git a/sound/vox/from.wav b/sound/vox/from.wav deleted file mode 100644 index 46541abe65..0000000000 Binary files a/sound/vox/from.wav and /dev/null differ diff --git a/sound/vox/front.wav b/sound/vox/front.wav deleted file mode 100644 index 46d600144d..0000000000 Binary files a/sound/vox/front.wav and /dev/null differ diff --git a/sound/vox/fuel.wav b/sound/vox/fuel.wav deleted file mode 100644 index 1b2256b006..0000000000 Binary files a/sound/vox/fuel.wav and /dev/null differ diff --git a/sound/vox/g.wav b/sound/vox/g.wav deleted file mode 100644 index 37f5ce8010..0000000000 Binary files a/sound/vox/g.wav and /dev/null differ diff --git a/sound/vox/get.wav b/sound/vox/get.wav deleted file mode 100644 index 9dd512d512..0000000000 Binary files a/sound/vox/get.wav and /dev/null differ diff --git a/sound/vox/go.wav b/sound/vox/go.wav deleted file mode 100644 index 665989a94f..0000000000 Binary files a/sound/vox/go.wav and /dev/null differ diff --git a/sound/vox/going.wav b/sound/vox/going.wav deleted file mode 100644 index 308b1b6890..0000000000 Binary files a/sound/vox/going.wav and /dev/null differ diff --git a/sound/vox/good.wav b/sound/vox/good.wav deleted file mode 100644 index bf15c9c2b4..0000000000 Binary files a/sound/vox/good.wav and /dev/null differ diff --git a/sound/vox/goodbye.wav b/sound/vox/goodbye.wav deleted file mode 100644 index 2599ca560c..0000000000 Binary files a/sound/vox/goodbye.wav and /dev/null differ diff --git a/sound/vox/gordon.wav b/sound/vox/gordon.wav deleted file mode 100644 index 51c7195091..0000000000 Binary files a/sound/vox/gordon.wav and /dev/null differ diff --git a/sound/vox/got.wav b/sound/vox/got.wav deleted file mode 100644 index b2b47c9d2e..0000000000 Binary files a/sound/vox/got.wav and /dev/null differ diff --git a/sound/vox/government.wav b/sound/vox/government.wav deleted file mode 100644 index 17e7fa8fbf..0000000000 Binary files a/sound/vox/government.wav and /dev/null differ diff --git a/sound/vox/granted.wav b/sound/vox/granted.wav deleted file mode 100644 index 661bf0506f..0000000000 Binary files a/sound/vox/granted.wav and /dev/null differ diff --git a/sound/vox/great.wav b/sound/vox/great.wav deleted file mode 100644 index 8640b88fb6..0000000000 Binary files a/sound/vox/great.wav and /dev/null differ diff --git a/sound/vox/green.wav b/sound/vox/green.wav deleted file mode 100644 index 0eb5558231..0000000000 Binary files a/sound/vox/green.wav and /dev/null differ diff --git a/sound/vox/grenade.wav b/sound/vox/grenade.wav deleted file mode 100644 index 7b2d80ed6d..0000000000 Binary files a/sound/vox/grenade.wav and /dev/null differ diff --git a/sound/vox/guard.wav b/sound/vox/guard.wav deleted file mode 100644 index e715dc641c..0000000000 Binary files a/sound/vox/guard.wav and /dev/null differ diff --git a/sound/vox/gulf.wav b/sound/vox/gulf.wav deleted file mode 100644 index 95b3e9fc4f..0000000000 Binary files a/sound/vox/gulf.wav and /dev/null differ diff --git a/sound/vox/gun.wav b/sound/vox/gun.wav deleted file mode 100644 index 86e3ac1cbb..0000000000 Binary files a/sound/vox/gun.wav and /dev/null differ diff --git a/sound/vox/guthrie.wav b/sound/vox/guthrie.wav deleted file mode 100644 index 362ab46d60..0000000000 Binary files a/sound/vox/guthrie.wav and /dev/null differ diff --git a/sound/vox/handling.wav b/sound/vox/handling.wav deleted file mode 100644 index b9c7c5f581..0000000000 Binary files a/sound/vox/handling.wav and /dev/null differ diff --git a/sound/vox/hangar.wav b/sound/vox/hangar.wav deleted file mode 100644 index e937054af9..0000000000 Binary files a/sound/vox/hangar.wav and /dev/null differ diff --git a/sound/vox/has.wav b/sound/vox/has.wav deleted file mode 100644 index 625a110f07..0000000000 Binary files a/sound/vox/has.wav and /dev/null differ diff --git a/sound/vox/have.wav b/sound/vox/have.wav deleted file mode 100644 index c5f0794a1f..0000000000 Binary files a/sound/vox/have.wav and /dev/null differ diff --git a/sound/vox/hazard.wav b/sound/vox/hazard.wav deleted file mode 100644 index b311552c76..0000000000 Binary files a/sound/vox/hazard.wav and /dev/null differ diff --git a/sound/vox/head.wav b/sound/vox/head.wav deleted file mode 100644 index ed8e9d88c6..0000000000 Binary files a/sound/vox/head.wav and /dev/null differ diff --git a/sound/vox/health.wav b/sound/vox/health.wav deleted file mode 100644 index e3158318f4..0000000000 Binary files a/sound/vox/health.wav and /dev/null differ diff --git a/sound/vox/heat.wav b/sound/vox/heat.wav deleted file mode 100644 index ca0b345225..0000000000 Binary files a/sound/vox/heat.wav and /dev/null differ diff --git a/sound/vox/helicopter.wav b/sound/vox/helicopter.wav deleted file mode 100644 index 22e5449443..0000000000 Binary files a/sound/vox/helicopter.wav and /dev/null differ diff --git a/sound/vox/helium.wav b/sound/vox/helium.wav deleted file mode 100644 index fbb8197cb0..0000000000 Binary files a/sound/vox/helium.wav and /dev/null differ diff --git a/sound/vox/hello.wav b/sound/vox/hello.wav deleted file mode 100644 index 7e61fec55e..0000000000 Binary files a/sound/vox/hello.wav and /dev/null differ diff --git a/sound/vox/help.wav b/sound/vox/help.wav deleted file mode 100644 index 5bef919ee9..0000000000 Binary files a/sound/vox/help.wav and /dev/null differ diff --git a/sound/vox/here.wav b/sound/vox/here.wav deleted file mode 100644 index e6d74f47f7..0000000000 Binary files a/sound/vox/here.wav and /dev/null differ diff --git a/sound/vox/hide.wav b/sound/vox/hide.wav deleted file mode 100644 index f7bb32b283..0000000000 Binary files a/sound/vox/hide.wav and /dev/null differ diff --git a/sound/vox/high.wav b/sound/vox/high.wav deleted file mode 100644 index 832bf16040..0000000000 Binary files a/sound/vox/high.wav and /dev/null differ diff --git a/sound/vox/highest.wav b/sound/vox/highest.wav deleted file mode 100644 index ef4b2caf39..0000000000 Binary files a/sound/vox/highest.wav and /dev/null differ diff --git a/sound/vox/hit.wav b/sound/vox/hit.wav deleted file mode 100644 index d70619a3f5..0000000000 Binary files a/sound/vox/hit.wav and /dev/null differ diff --git a/sound/vox/hole.wav b/sound/vox/hole.wav deleted file mode 100644 index afb46f59ad..0000000000 Binary files a/sound/vox/hole.wav and /dev/null differ diff --git a/sound/vox/hostile.wav b/sound/vox/hostile.wav deleted file mode 100644 index 4dc88f26c6..0000000000 Binary files a/sound/vox/hostile.wav and /dev/null differ diff --git a/sound/vox/hot.wav b/sound/vox/hot.wav deleted file mode 100644 index 7ced07279b..0000000000 Binary files a/sound/vox/hot.wav and /dev/null differ diff --git a/sound/vox/hotel.wav b/sound/vox/hotel.wav deleted file mode 100644 index dde78cf2a1..0000000000 Binary files a/sound/vox/hotel.wav and /dev/null differ diff --git a/sound/vox/hour.wav b/sound/vox/hour.wav deleted file mode 100644 index d428bd779e..0000000000 Binary files a/sound/vox/hour.wav and /dev/null differ diff --git a/sound/vox/hours.wav b/sound/vox/hours.wav deleted file mode 100644 index 63a2470427..0000000000 Binary files a/sound/vox/hours.wav and /dev/null differ diff --git a/sound/vox/hundred.wav b/sound/vox/hundred.wav deleted file mode 100644 index 8d3a8a0b4a..0000000000 Binary files a/sound/vox/hundred.wav and /dev/null differ diff --git a/sound/vox/hydro.wav b/sound/vox/hydro.wav deleted file mode 100644 index 9653b7bf73..0000000000 Binary files a/sound/vox/hydro.wav and /dev/null differ diff --git a/sound/vox/i.wav b/sound/vox/i.wav deleted file mode 100644 index b98a48fd29..0000000000 Binary files a/sound/vox/i.wav and /dev/null differ diff --git a/sound/vox/idiot.wav b/sound/vox/idiot.wav deleted file mode 100644 index 8c19f9d7a4..0000000000 Binary files a/sound/vox/idiot.wav and /dev/null differ diff --git a/sound/vox/illegal.wav b/sound/vox/illegal.wav deleted file mode 100644 index 6087e6ba7d..0000000000 Binary files a/sound/vox/illegal.wav and /dev/null differ diff --git a/sound/vox/immediate.wav b/sound/vox/immediate.wav deleted file mode 100644 index 19fab3c842..0000000000 Binary files a/sound/vox/immediate.wav and /dev/null differ diff --git a/sound/vox/immediately.wav b/sound/vox/immediately.wav deleted file mode 100644 index f2716edf0e..0000000000 Binary files a/sound/vox/immediately.wav and /dev/null differ diff --git a/sound/vox/in.wav b/sound/vox/in.wav deleted file mode 100644 index e15bb9a6d5..0000000000 Binary files a/sound/vox/in.wav and /dev/null differ diff --git a/sound/vox/inches.wav b/sound/vox/inches.wav deleted file mode 100644 index fc8e89ce7b..0000000000 Binary files a/sound/vox/inches.wav and /dev/null differ diff --git a/sound/vox/india.wav b/sound/vox/india.wav deleted file mode 100644 index 991f9af5e0..0000000000 Binary files a/sound/vox/india.wav and /dev/null differ diff --git a/sound/vox/ing.wav b/sound/vox/ing.wav deleted file mode 100644 index 0728905c34..0000000000 Binary files a/sound/vox/ing.wav and /dev/null differ diff --git a/sound/vox/inoperative.wav b/sound/vox/inoperative.wav deleted file mode 100644 index 6822cc5fc3..0000000000 Binary files a/sound/vox/inoperative.wav and /dev/null differ diff --git a/sound/vox/inside.wav b/sound/vox/inside.wav deleted file mode 100644 index 03cb903c24..0000000000 Binary files a/sound/vox/inside.wav and /dev/null differ diff --git a/sound/vox/inspection.wav b/sound/vox/inspection.wav deleted file mode 100644 index 3aecb74626..0000000000 Binary files a/sound/vox/inspection.wav and /dev/null differ diff --git a/sound/vox/inspector.wav b/sound/vox/inspector.wav deleted file mode 100644 index 06a54a3670..0000000000 Binary files a/sound/vox/inspector.wav and /dev/null differ diff --git a/sound/vox/interchange.wav b/sound/vox/interchange.wav deleted file mode 100644 index c7814162b4..0000000000 Binary files a/sound/vox/interchange.wav and /dev/null differ diff --git a/sound/vox/intruder.wav b/sound/vox/intruder.wav deleted file mode 100644 index a32958f0be..0000000000 Binary files a/sound/vox/intruder.wav and /dev/null differ diff --git a/sound/vox/invallid.wav b/sound/vox/invallid.wav deleted file mode 100644 index fbf3b4e524..0000000000 Binary files a/sound/vox/invallid.wav and /dev/null differ diff --git a/sound/vox/invasion.wav b/sound/vox/invasion.wav deleted file mode 100644 index 0024f331d4..0000000000 Binary files a/sound/vox/invasion.wav and /dev/null differ diff --git a/sound/vox/is.wav b/sound/vox/is.wav deleted file mode 100644 index 0eecb1a7b7..0000000000 Binary files a/sound/vox/is.wav and /dev/null differ diff --git a/sound/vox/it.wav b/sound/vox/it.wav deleted file mode 100644 index 1e96daf6bb..0000000000 Binary files a/sound/vox/it.wav and /dev/null differ diff --git a/sound/vox/johnson.wav b/sound/vox/johnson.wav deleted file mode 100644 index 1cef742cf6..0000000000 Binary files a/sound/vox/johnson.wav and /dev/null differ diff --git a/sound/vox/juliet.wav b/sound/vox/juliet.wav deleted file mode 100644 index 88a78517ca..0000000000 Binary files a/sound/vox/juliet.wav and /dev/null differ diff --git a/sound/vox/key.wav b/sound/vox/key.wav deleted file mode 100644 index ba42b393db..0000000000 Binary files a/sound/vox/key.wav and /dev/null differ diff --git a/sound/vox/kill.wav b/sound/vox/kill.wav deleted file mode 100644 index 9ae66ac5f6..0000000000 Binary files a/sound/vox/kill.wav and /dev/null differ diff --git a/sound/vox/kilo.wav b/sound/vox/kilo.wav deleted file mode 100644 index e30904cafb..0000000000 Binary files a/sound/vox/kilo.wav and /dev/null differ diff --git a/sound/vox/kit.wav b/sound/vox/kit.wav deleted file mode 100644 index b6cf53a547..0000000000 Binary files a/sound/vox/kit.wav and /dev/null differ diff --git a/sound/vox/lab.wav b/sound/vox/lab.wav deleted file mode 100644 index 8b2518fe57..0000000000 Binary files a/sound/vox/lab.wav and /dev/null differ diff --git a/sound/vox/lambda.wav b/sound/vox/lambda.wav deleted file mode 100644 index a238ac9d96..0000000000 Binary files a/sound/vox/lambda.wav and /dev/null differ diff --git a/sound/vox/laser.wav b/sound/vox/laser.wav deleted file mode 100644 index 7617aa65d7..0000000000 Binary files a/sound/vox/laser.wav and /dev/null differ diff --git a/sound/vox/last.wav b/sound/vox/last.wav deleted file mode 100644 index 458d13af62..0000000000 Binary files a/sound/vox/last.wav and /dev/null differ diff --git a/sound/vox/launch.wav b/sound/vox/launch.wav deleted file mode 100644 index 66fd2224ce..0000000000 Binary files a/sound/vox/launch.wav and /dev/null differ diff --git a/sound/vox/leak.wav b/sound/vox/leak.wav deleted file mode 100644 index 0ec0fc786d..0000000000 Binary files a/sound/vox/leak.wav and /dev/null differ diff --git a/sound/vox/leave.wav b/sound/vox/leave.wav deleted file mode 100644 index ce45698813..0000000000 Binary files a/sound/vox/leave.wav and /dev/null differ diff --git a/sound/vox/left.wav b/sound/vox/left.wav deleted file mode 100644 index 2621d07fbd..0000000000 Binary files a/sound/vox/left.wav and /dev/null differ diff --git a/sound/vox/legal.wav b/sound/vox/legal.wav deleted file mode 100644 index 928033759d..0000000000 Binary files a/sound/vox/legal.wav and /dev/null differ diff --git a/sound/vox/level.wav b/sound/vox/level.wav deleted file mode 100644 index 1f01010dd0..0000000000 Binary files a/sound/vox/level.wav and /dev/null differ diff --git a/sound/vox/lever.wav b/sound/vox/lever.wav deleted file mode 100644 index a863fdc77a..0000000000 Binary files a/sound/vox/lever.wav and /dev/null differ diff --git a/sound/vox/lie.wav b/sound/vox/lie.wav deleted file mode 100644 index 01b8749a0c..0000000000 Binary files a/sound/vox/lie.wav and /dev/null differ diff --git a/sound/vox/lieutenant.wav b/sound/vox/lieutenant.wav deleted file mode 100644 index f749f2782a..0000000000 Binary files a/sound/vox/lieutenant.wav and /dev/null differ diff --git a/sound/vox/life.wav b/sound/vox/life.wav deleted file mode 100644 index fd739b4593..0000000000 Binary files a/sound/vox/life.wav and /dev/null differ diff --git a/sound/vox/light.wav b/sound/vox/light.wav deleted file mode 100644 index 69be049955..0000000000 Binary files a/sound/vox/light.wav and /dev/null differ diff --git a/sound/vox/lima.wav b/sound/vox/lima.wav deleted file mode 100644 index d0cf4d0581..0000000000 Binary files a/sound/vox/lima.wav and /dev/null differ diff --git a/sound/vox/liquid.wav b/sound/vox/liquid.wav deleted file mode 100644 index 9f77a868e7..0000000000 Binary files a/sound/vox/liquid.wav and /dev/null differ diff --git a/sound/vox/loading.wav b/sound/vox/loading.wav deleted file mode 100644 index f5404ef81b..0000000000 Binary files a/sound/vox/loading.wav and /dev/null differ diff --git a/sound/vox/locate.wav b/sound/vox/locate.wav deleted file mode 100644 index 6b605a8d2d..0000000000 Binary files a/sound/vox/locate.wav and /dev/null differ diff --git a/sound/vox/located.wav b/sound/vox/located.wav deleted file mode 100644 index 19fb575525..0000000000 Binary files a/sound/vox/located.wav and /dev/null differ diff --git a/sound/vox/location.wav b/sound/vox/location.wav deleted file mode 100644 index 149b0ec027..0000000000 Binary files a/sound/vox/location.wav and /dev/null differ diff --git a/sound/vox/lock.wav b/sound/vox/lock.wav deleted file mode 100644 index a62efba6b9..0000000000 Binary files a/sound/vox/lock.wav and /dev/null differ diff --git a/sound/vox/locked.wav b/sound/vox/locked.wav deleted file mode 100644 index 8d197f2502..0000000000 Binary files a/sound/vox/locked.wav and /dev/null differ diff --git a/sound/vox/locker.wav b/sound/vox/locker.wav deleted file mode 100644 index e6f9dfe299..0000000000 Binary files a/sound/vox/locker.wav and /dev/null differ diff --git a/sound/vox/lockout.wav b/sound/vox/lockout.wav deleted file mode 100644 index b2cd0fb64d..0000000000 Binary files a/sound/vox/lockout.wav and /dev/null differ diff --git a/sound/vox/lower.wav b/sound/vox/lower.wav deleted file mode 100644 index a654c1d424..0000000000 Binary files a/sound/vox/lower.wav and /dev/null differ diff --git a/sound/vox/lowest.wav b/sound/vox/lowest.wav deleted file mode 100644 index 63fdaf93f0..0000000000 Binary files a/sound/vox/lowest.wav and /dev/null differ diff --git a/sound/vox/magnetic.wav b/sound/vox/magnetic.wav deleted file mode 100644 index 68deeeae9c..0000000000 Binary files a/sound/vox/magnetic.wav and /dev/null differ diff --git a/sound/vox/main.wav b/sound/vox/main.wav deleted file mode 100644 index 4657274912..0000000000 Binary files a/sound/vox/main.wav and /dev/null differ diff --git a/sound/vox/maintenance.wav b/sound/vox/maintenance.wav deleted file mode 100644 index ebca04c9d6..0000000000 Binary files a/sound/vox/maintenance.wav and /dev/null differ diff --git a/sound/vox/malfunction.wav b/sound/vox/malfunction.wav deleted file mode 100644 index 51d999b41f..0000000000 Binary files a/sound/vox/malfunction.wav and /dev/null differ diff --git a/sound/vox/man.wav b/sound/vox/man.wav deleted file mode 100644 index 64525a4f23..0000000000 Binary files a/sound/vox/man.wav and /dev/null differ diff --git a/sound/vox/mass.wav b/sound/vox/mass.wav deleted file mode 100644 index c7825984aa..0000000000 Binary files a/sound/vox/mass.wav and /dev/null differ diff --git a/sound/vox/materials.wav b/sound/vox/materials.wav deleted file mode 100644 index c983ae71a8..0000000000 Binary files a/sound/vox/materials.wav and /dev/null differ diff --git a/sound/vox/maximum.wav b/sound/vox/maximum.wav deleted file mode 100644 index f1dbc8062d..0000000000 Binary files a/sound/vox/maximum.wav and /dev/null differ diff --git a/sound/vox/may.wav b/sound/vox/may.wav deleted file mode 100644 index a238738703..0000000000 Binary files a/sound/vox/may.wav and /dev/null differ diff --git a/sound/vox/medical.wav b/sound/vox/medical.wav deleted file mode 100644 index ece7f0c4c5..0000000000 Binary files a/sound/vox/medical.wav and /dev/null differ diff --git a/sound/vox/men.wav b/sound/vox/men.wav deleted file mode 100644 index 594523da0a..0000000000 Binary files a/sound/vox/men.wav and /dev/null differ diff --git a/sound/vox/mercy.wav b/sound/vox/mercy.wav deleted file mode 100644 index 8416b25dae..0000000000 Binary files a/sound/vox/mercy.wav and /dev/null differ diff --git a/sound/vox/mesa.wav b/sound/vox/mesa.wav deleted file mode 100644 index fcb1d9843c..0000000000 Binary files a/sound/vox/mesa.wav and /dev/null differ diff --git a/sound/vox/message.wav b/sound/vox/message.wav deleted file mode 100644 index b0b769db72..0000000000 Binary files a/sound/vox/message.wav and /dev/null differ diff --git a/sound/vox/meter.wav b/sound/vox/meter.wav deleted file mode 100644 index ca063bddad..0000000000 Binary files a/sound/vox/meter.wav and /dev/null differ diff --git a/sound/vox/micro.wav b/sound/vox/micro.wav deleted file mode 100644 index 7869b97cec..0000000000 Binary files a/sound/vox/micro.wav and /dev/null differ diff --git a/sound/vox/middle.wav b/sound/vox/middle.wav deleted file mode 100644 index b58a5878a9..0000000000 Binary files a/sound/vox/middle.wav and /dev/null differ diff --git a/sound/vox/mike.wav b/sound/vox/mike.wav deleted file mode 100644 index a008bdefed..0000000000 Binary files a/sound/vox/mike.wav and /dev/null differ diff --git a/sound/vox/miles.wav b/sound/vox/miles.wav deleted file mode 100644 index 9b04a790ea..0000000000 Binary files a/sound/vox/miles.wav and /dev/null differ diff --git a/sound/vox/military.wav b/sound/vox/military.wav deleted file mode 100644 index 8387dc3b6c..0000000000 Binary files a/sound/vox/military.wav and /dev/null differ diff --git a/sound/vox/milli.wav b/sound/vox/milli.wav deleted file mode 100644 index cc0b3e4c97..0000000000 Binary files a/sound/vox/milli.wav and /dev/null differ diff --git a/sound/vox/million.wav b/sound/vox/million.wav deleted file mode 100644 index 6409eb0760..0000000000 Binary files a/sound/vox/million.wav and /dev/null differ diff --git a/sound/vox/minefield.wav b/sound/vox/minefield.wav deleted file mode 100644 index 2af1c21367..0000000000 Binary files a/sound/vox/minefield.wav and /dev/null differ diff --git a/sound/vox/minimum.wav b/sound/vox/minimum.wav deleted file mode 100644 index ee184ce4fc..0000000000 Binary files a/sound/vox/minimum.wav and /dev/null differ diff --git a/sound/vox/minutes.wav b/sound/vox/minutes.wav deleted file mode 100644 index 2e9fb914ed..0000000000 Binary files a/sound/vox/minutes.wav and /dev/null differ diff --git a/sound/vox/mister.wav b/sound/vox/mister.wav deleted file mode 100644 index 27507cfb09..0000000000 Binary files a/sound/vox/mister.wav and /dev/null differ diff --git a/sound/vox/mode.wav b/sound/vox/mode.wav deleted file mode 100644 index e1060e9661..0000000000 Binary files a/sound/vox/mode.wav and /dev/null differ diff --git a/sound/vox/motor.wav b/sound/vox/motor.wav deleted file mode 100644 index 7d1dbaeba4..0000000000 Binary files a/sound/vox/motor.wav and /dev/null differ diff --git a/sound/vox/motorpool.wav b/sound/vox/motorpool.wav deleted file mode 100644 index ae5a6af0d6..0000000000 Binary files a/sound/vox/motorpool.wav and /dev/null differ diff --git a/sound/vox/move.wav b/sound/vox/move.wav deleted file mode 100644 index 1bc2172297..0000000000 Binary files a/sound/vox/move.wav and /dev/null differ diff --git a/sound/vox/must.wav b/sound/vox/must.wav deleted file mode 100644 index 3e6e965bec..0000000000 Binary files a/sound/vox/must.wav and /dev/null differ diff --git a/sound/vox/nearest.wav b/sound/vox/nearest.wav deleted file mode 100644 index 3f84ee7241..0000000000 Binary files a/sound/vox/nearest.wav and /dev/null differ diff --git a/sound/vox/nice.wav b/sound/vox/nice.wav deleted file mode 100644 index 8bd140649f..0000000000 Binary files a/sound/vox/nice.wav and /dev/null differ diff --git a/sound/vox/nine.wav b/sound/vox/nine.wav deleted file mode 100644 index b85745edf9..0000000000 Binary files a/sound/vox/nine.wav and /dev/null differ diff --git a/sound/vox/nineteen.wav b/sound/vox/nineteen.wav deleted file mode 100644 index c6da48310b..0000000000 Binary files a/sound/vox/nineteen.wav and /dev/null differ diff --git a/sound/vox/ninety.wav b/sound/vox/ninety.wav deleted file mode 100644 index 74e2e02d41..0000000000 Binary files a/sound/vox/ninety.wav and /dev/null differ diff --git a/sound/vox/no.wav b/sound/vox/no.wav deleted file mode 100644 index ced1b6617c..0000000000 Binary files a/sound/vox/no.wav and /dev/null differ diff --git a/sound/vox/nominal.wav b/sound/vox/nominal.wav deleted file mode 100644 index f0656302d1..0000000000 Binary files a/sound/vox/nominal.wav and /dev/null differ diff --git a/sound/vox/north.wav b/sound/vox/north.wav deleted file mode 100644 index 4867fdc7bc..0000000000 Binary files a/sound/vox/north.wav and /dev/null differ diff --git a/sound/vox/not.wav b/sound/vox/not.wav deleted file mode 100644 index 626cd17774..0000000000 Binary files a/sound/vox/not.wav and /dev/null differ diff --git a/sound/vox/november.wav b/sound/vox/november.wav deleted file mode 100644 index 212efe5f9a..0000000000 Binary files a/sound/vox/november.wav and /dev/null differ diff --git a/sound/vox/now.wav b/sound/vox/now.wav deleted file mode 100644 index 0619087d59..0000000000 Binary files a/sound/vox/now.wav and /dev/null differ diff --git a/sound/vox/number.wav b/sound/vox/number.wav deleted file mode 100644 index cfec10a75e..0000000000 Binary files a/sound/vox/number.wav and /dev/null differ diff --git a/sound/vox/objective.wav b/sound/vox/objective.wav deleted file mode 100644 index 14ea571aa6..0000000000 Binary files a/sound/vox/objective.wav and /dev/null differ diff --git a/sound/vox/observation.wav b/sound/vox/observation.wav deleted file mode 100644 index 9141789671..0000000000 Binary files a/sound/vox/observation.wav and /dev/null differ diff --git a/sound/vox/of.wav b/sound/vox/of.wav deleted file mode 100644 index 7cf5427dfb..0000000000 Binary files a/sound/vox/of.wav and /dev/null differ diff --git a/sound/vox/officer.wav b/sound/vox/officer.wav deleted file mode 100644 index 9017915aef..0000000000 Binary files a/sound/vox/officer.wav and /dev/null differ diff --git a/sound/vox/ok.wav b/sound/vox/ok.wav deleted file mode 100644 index 66011aed6d..0000000000 Binary files a/sound/vox/ok.wav and /dev/null differ diff --git a/sound/vox/on.wav b/sound/vox/on.wav deleted file mode 100644 index 2b97a1fd46..0000000000 Binary files a/sound/vox/on.wav and /dev/null differ diff --git a/sound/vox/one.wav b/sound/vox/one.wav deleted file mode 100644 index 57f2b3f14d..0000000000 Binary files a/sound/vox/one.wav and /dev/null differ diff --git a/sound/vox/open.wav b/sound/vox/open.wav deleted file mode 100644 index be98260bb9..0000000000 Binary files a/sound/vox/open.wav and /dev/null differ diff --git a/sound/vox/operating.wav b/sound/vox/operating.wav deleted file mode 100644 index b218069420..0000000000 Binary files a/sound/vox/operating.wav and /dev/null differ diff --git a/sound/vox/operations.wav b/sound/vox/operations.wav deleted file mode 100644 index 37c9d75e0e..0000000000 Binary files a/sound/vox/operations.wav and /dev/null differ diff --git a/sound/vox/operative.wav b/sound/vox/operative.wav deleted file mode 100644 index 70f99029cd..0000000000 Binary files a/sound/vox/operative.wav and /dev/null differ diff --git a/sound/vox/option.wav b/sound/vox/option.wav deleted file mode 100644 index a5199b71de..0000000000 Binary files a/sound/vox/option.wav and /dev/null differ diff --git a/sound/vox/order.wav b/sound/vox/order.wav deleted file mode 100644 index c5a2548340..0000000000 Binary files a/sound/vox/order.wav and /dev/null differ diff --git a/sound/vox/organic.wav b/sound/vox/organic.wav deleted file mode 100644 index 78dc879d7c..0000000000 Binary files a/sound/vox/organic.wav and /dev/null differ diff --git a/sound/vox/oscar.wav b/sound/vox/oscar.wav deleted file mode 100644 index 32db2392d5..0000000000 Binary files a/sound/vox/oscar.wav and /dev/null differ diff --git a/sound/vox/out.wav b/sound/vox/out.wav deleted file mode 100644 index 4aca4d7070..0000000000 Binary files a/sound/vox/out.wav and /dev/null differ diff --git a/sound/vox/outside.wav b/sound/vox/outside.wav deleted file mode 100644 index 62993ea5e4..0000000000 Binary files a/sound/vox/outside.wav and /dev/null differ diff --git a/sound/vox/over.wav b/sound/vox/over.wav deleted file mode 100644 index 8068c74f73..0000000000 Binary files a/sound/vox/over.wav and /dev/null differ diff --git a/sound/vox/overload.wav b/sound/vox/overload.wav deleted file mode 100644 index d932cb3ded..0000000000 Binary files a/sound/vox/overload.wav and /dev/null differ diff --git a/sound/vox/override.wav b/sound/vox/override.wav deleted file mode 100644 index 132667e7ea..0000000000 Binary files a/sound/vox/override.wav and /dev/null differ diff --git a/sound/vox/pacify.wav b/sound/vox/pacify.wav deleted file mode 100644 index 6a596197d7..0000000000 Binary files a/sound/vox/pacify.wav and /dev/null differ diff --git a/sound/vox/pain.wav b/sound/vox/pain.wav deleted file mode 100644 index bdb30dded8..0000000000 Binary files a/sound/vox/pain.wav and /dev/null differ diff --git a/sound/vox/pal.wav b/sound/vox/pal.wav deleted file mode 100644 index 28eb17ce99..0000000000 Binary files a/sound/vox/pal.wav and /dev/null differ diff --git a/sound/vox/panel.wav b/sound/vox/panel.wav deleted file mode 100644 index ce1f22fd23..0000000000 Binary files a/sound/vox/panel.wav and /dev/null differ diff --git a/sound/vox/percent.wav b/sound/vox/percent.wav deleted file mode 100644 index 9e775863ae..0000000000 Binary files a/sound/vox/percent.wav and /dev/null differ diff --git a/sound/vox/perimeter.wav b/sound/vox/perimeter.wav deleted file mode 100644 index 91a8d95d91..0000000000 Binary files a/sound/vox/perimeter.wav and /dev/null differ diff --git a/sound/vox/permitted.wav b/sound/vox/permitted.wav deleted file mode 100644 index 015d10eaa8..0000000000 Binary files a/sound/vox/permitted.wav and /dev/null differ diff --git a/sound/vox/personnel.wav b/sound/vox/personnel.wav deleted file mode 100644 index 665a3215c9..0000000000 Binary files a/sound/vox/personnel.wav and /dev/null differ diff --git a/sound/vox/pipe.wav b/sound/vox/pipe.wav deleted file mode 100644 index 53abe7db8b..0000000000 Binary files a/sound/vox/pipe.wav and /dev/null differ diff --git a/sound/vox/plant.wav b/sound/vox/plant.wav deleted file mode 100644 index 8fc84c60ac..0000000000 Binary files a/sound/vox/plant.wav and /dev/null differ diff --git a/sound/vox/platform.wav b/sound/vox/platform.wav deleted file mode 100644 index 72ca2c179f..0000000000 Binary files a/sound/vox/platform.wav and /dev/null differ diff --git a/sound/vox/please.wav b/sound/vox/please.wav deleted file mode 100644 index 4dc346e3e0..0000000000 Binary files a/sound/vox/please.wav and /dev/null differ diff --git a/sound/vox/point.wav b/sound/vox/point.wav deleted file mode 100644 index 26e4ca508b..0000000000 Binary files a/sound/vox/point.wav and /dev/null differ diff --git a/sound/vox/portal.wav b/sound/vox/portal.wav deleted file mode 100644 index 2f093e9924..0000000000 Binary files a/sound/vox/portal.wav and /dev/null differ diff --git a/sound/vox/power.wav b/sound/vox/power.wav deleted file mode 100644 index 3256e3ee99..0000000000 Binary files a/sound/vox/power.wav and /dev/null differ diff --git a/sound/vox/presence.wav b/sound/vox/presence.wav deleted file mode 100644 index c7a3b8f1e0..0000000000 Binary files a/sound/vox/presence.wav and /dev/null differ diff --git a/sound/vox/press.wav b/sound/vox/press.wav deleted file mode 100644 index 138ef0f2eb..0000000000 Binary files a/sound/vox/press.wav and /dev/null differ diff --git a/sound/vox/primary.wav b/sound/vox/primary.wav deleted file mode 100644 index ed107abdd1..0000000000 Binary files a/sound/vox/primary.wav and /dev/null differ diff --git a/sound/vox/proceed.wav b/sound/vox/proceed.wav deleted file mode 100644 index ec5ba2f438..0000000000 Binary files a/sound/vox/proceed.wav and /dev/null differ diff --git a/sound/vox/processing.wav b/sound/vox/processing.wav deleted file mode 100644 index 3470d8eb07..0000000000 Binary files a/sound/vox/processing.wav and /dev/null differ diff --git a/sound/vox/progress.wav b/sound/vox/progress.wav deleted file mode 100644 index ab2ef1914f..0000000000 Binary files a/sound/vox/progress.wav and /dev/null differ diff --git a/sound/vox/proper.wav b/sound/vox/proper.wav deleted file mode 100644 index fb799ae067..0000000000 Binary files a/sound/vox/proper.wav and /dev/null differ diff --git a/sound/vox/propulsion.wav b/sound/vox/propulsion.wav deleted file mode 100644 index cc60270a56..0000000000 Binary files a/sound/vox/propulsion.wav and /dev/null differ diff --git a/sound/vox/prosecute.wav b/sound/vox/prosecute.wav deleted file mode 100644 index 9d76be850b..0000000000 Binary files a/sound/vox/prosecute.wav and /dev/null differ diff --git a/sound/vox/protective.wav b/sound/vox/protective.wav deleted file mode 100644 index be17714e62..0000000000 Binary files a/sound/vox/protective.wav and /dev/null differ diff --git a/sound/vox/push.wav b/sound/vox/push.wav deleted file mode 100644 index db91cb1229..0000000000 Binary files a/sound/vox/push.wav and /dev/null differ diff --git a/sound/vox/quantum.wav b/sound/vox/quantum.wav deleted file mode 100644 index 3e5ee45d7b..0000000000 Binary files a/sound/vox/quantum.wav and /dev/null differ diff --git a/sound/vox/quebec.wav b/sound/vox/quebec.wav deleted file mode 100644 index 6323a992cb..0000000000 Binary files a/sound/vox/quebec.wav and /dev/null differ diff --git a/sound/vox/question.wav b/sound/vox/question.wav deleted file mode 100644 index cf6de8dd52..0000000000 Binary files a/sound/vox/question.wav and /dev/null differ diff --git a/sound/vox/questioning.wav b/sound/vox/questioning.wav deleted file mode 100644 index 51f08488dc..0000000000 Binary files a/sound/vox/questioning.wav and /dev/null differ diff --git a/sound/vox/quick.wav b/sound/vox/quick.wav deleted file mode 100644 index 82c6c493d7..0000000000 Binary files a/sound/vox/quick.wav and /dev/null differ diff --git a/sound/vox/quit.wav b/sound/vox/quit.wav deleted file mode 100644 index 1ee00b87a1..0000000000 Binary files a/sound/vox/quit.wav and /dev/null differ diff --git a/sound/vox/radiation.wav b/sound/vox/radiation.wav deleted file mode 100644 index 5551f24b44..0000000000 Binary files a/sound/vox/radiation.wav and /dev/null differ diff --git a/sound/vox/radioactive.wav b/sound/vox/radioactive.wav deleted file mode 100644 index 84b3b4a180..0000000000 Binary files a/sound/vox/radioactive.wav and /dev/null differ diff --git a/sound/vox/rads.wav b/sound/vox/rads.wav deleted file mode 100644 index 13802ea302..0000000000 Binary files a/sound/vox/rads.wav and /dev/null differ diff --git a/sound/vox/rapid.wav b/sound/vox/rapid.wav deleted file mode 100644 index fdfdd10faa..0000000000 Binary files a/sound/vox/rapid.wav and /dev/null differ diff --git a/sound/vox/reach.wav b/sound/vox/reach.wav deleted file mode 100644 index 5b2ec24bd4..0000000000 Binary files a/sound/vox/reach.wav and /dev/null differ diff --git a/sound/vox/reached.wav b/sound/vox/reached.wav deleted file mode 100644 index 22bd766019..0000000000 Binary files a/sound/vox/reached.wav and /dev/null differ diff --git a/sound/vox/reactor.wav b/sound/vox/reactor.wav deleted file mode 100644 index c8fb909be0..0000000000 Binary files a/sound/vox/reactor.wav and /dev/null differ diff --git a/sound/vox/red.wav b/sound/vox/red.wav deleted file mode 100644 index 777e546648..0000000000 Binary files a/sound/vox/red.wav and /dev/null differ diff --git a/sound/vox/relay.wav b/sound/vox/relay.wav deleted file mode 100644 index bef9fb0927..0000000000 Binary files a/sound/vox/relay.wav and /dev/null differ diff --git a/sound/vox/released.wav b/sound/vox/released.wav deleted file mode 100644 index ba56d6d955..0000000000 Binary files a/sound/vox/released.wav and /dev/null differ diff --git a/sound/vox/remaining.wav b/sound/vox/remaining.wav deleted file mode 100644 index 0c393ee9d1..0000000000 Binary files a/sound/vox/remaining.wav and /dev/null differ diff --git a/sound/vox/renegade.wav b/sound/vox/renegade.wav deleted file mode 100644 index 0dc4518edc..0000000000 Binary files a/sound/vox/renegade.wav and /dev/null differ diff --git a/sound/vox/repair.wav b/sound/vox/repair.wav deleted file mode 100644 index be2fe5418e..0000000000 Binary files a/sound/vox/repair.wav and /dev/null differ diff --git a/sound/vox/report.wav b/sound/vox/report.wav deleted file mode 100644 index 685c387894..0000000000 Binary files a/sound/vox/report.wav and /dev/null differ diff --git a/sound/vox/reports.wav b/sound/vox/reports.wav deleted file mode 100644 index 19e8f0478b..0000000000 Binary files a/sound/vox/reports.wav and /dev/null differ diff --git a/sound/vox/required.wav b/sound/vox/required.wav deleted file mode 100644 index c5bbf850b4..0000000000 Binary files a/sound/vox/required.wav and /dev/null differ diff --git a/sound/vox/research.wav b/sound/vox/research.wav deleted file mode 100644 index d7385867da..0000000000 Binary files a/sound/vox/research.wav and /dev/null differ diff --git a/sound/vox/resevoir.wav b/sound/vox/resevoir.wav deleted file mode 100644 index 7b67635b92..0000000000 Binary files a/sound/vox/resevoir.wav and /dev/null differ diff --git a/sound/vox/resistance.wav b/sound/vox/resistance.wav deleted file mode 100644 index 1f3f90b0f9..0000000000 Binary files a/sound/vox/resistance.wav and /dev/null differ diff --git a/sound/vox/right.wav b/sound/vox/right.wav deleted file mode 100644 index 0c920c843d..0000000000 Binary files a/sound/vox/right.wav and /dev/null differ diff --git a/sound/vox/rocket.wav b/sound/vox/rocket.wav deleted file mode 100644 index 57d7e6a8e0..0000000000 Binary files a/sound/vox/rocket.wav and /dev/null differ diff --git a/sound/vox/roger.wav b/sound/vox/roger.wav deleted file mode 100644 index 426014be23..0000000000 Binary files a/sound/vox/roger.wav and /dev/null differ diff --git a/sound/vox/romeo.wav b/sound/vox/romeo.wav deleted file mode 100644 index 42590922e4..0000000000 Binary files a/sound/vox/romeo.wav and /dev/null differ diff --git a/sound/vox/room.wav b/sound/vox/room.wav deleted file mode 100644 index da12c55fea..0000000000 Binary files a/sound/vox/room.wav and /dev/null differ diff --git a/sound/vox/round.wav b/sound/vox/round.wav deleted file mode 100644 index 76d30382eb..0000000000 Binary files a/sound/vox/round.wav and /dev/null differ diff --git a/sound/vox/run.wav b/sound/vox/run.wav deleted file mode 100644 index f2baec69b1..0000000000 Binary files a/sound/vox/run.wav and /dev/null differ diff --git a/sound/vox/safe.wav b/sound/vox/safe.wav deleted file mode 100644 index 65d52fbcdc..0000000000 Binary files a/sound/vox/safe.wav and /dev/null differ diff --git a/sound/vox/safety.wav b/sound/vox/safety.wav deleted file mode 100644 index b24e8951b2..0000000000 Binary files a/sound/vox/safety.wav and /dev/null differ diff --git a/sound/vox/sargeant.wav b/sound/vox/sargeant.wav deleted file mode 100644 index e26c6a301e..0000000000 Binary files a/sound/vox/sargeant.wav and /dev/null differ diff --git a/sound/vox/satellite.wav b/sound/vox/satellite.wav deleted file mode 100644 index 45187b819b..0000000000 Binary files a/sound/vox/satellite.wav and /dev/null differ diff --git a/sound/vox/save.wav b/sound/vox/save.wav deleted file mode 100644 index db09e27539..0000000000 Binary files a/sound/vox/save.wav and /dev/null differ diff --git a/sound/vox/science.wav b/sound/vox/science.wav deleted file mode 100644 index cb1f2d7236..0000000000 Binary files a/sound/vox/science.wav and /dev/null differ diff --git a/sound/vox/scream.wav b/sound/vox/scream.wav deleted file mode 100644 index 66afd0983d..0000000000 Binary files a/sound/vox/scream.wav and /dev/null differ diff --git a/sound/vox/screen.wav b/sound/vox/screen.wav deleted file mode 100644 index bb375266bb..0000000000 Binary files a/sound/vox/screen.wav and /dev/null differ diff --git a/sound/vox/search.wav b/sound/vox/search.wav deleted file mode 100644 index 023072d989..0000000000 Binary files a/sound/vox/search.wav and /dev/null differ diff --git a/sound/vox/second.wav b/sound/vox/second.wav deleted file mode 100644 index dbed0caa0a..0000000000 Binary files a/sound/vox/second.wav and /dev/null differ diff --git a/sound/vox/secondary.wav b/sound/vox/secondary.wav deleted file mode 100644 index af29ac286c..0000000000 Binary files a/sound/vox/secondary.wav and /dev/null differ diff --git a/sound/vox/seconds.wav b/sound/vox/seconds.wav deleted file mode 100644 index a631ea1db0..0000000000 Binary files a/sound/vox/seconds.wav and /dev/null differ diff --git a/sound/vox/sector.wav b/sound/vox/sector.wav deleted file mode 100644 index 2318ccf631..0000000000 Binary files a/sound/vox/sector.wav and /dev/null differ diff --git a/sound/vox/secure.wav b/sound/vox/secure.wav deleted file mode 100644 index 17fe6225ff..0000000000 Binary files a/sound/vox/secure.wav and /dev/null differ diff --git a/sound/vox/secured.wav b/sound/vox/secured.wav deleted file mode 100644 index 8007a48c0d..0000000000 Binary files a/sound/vox/secured.wav and /dev/null differ diff --git a/sound/vox/security.wav b/sound/vox/security.wav deleted file mode 100644 index 16435fdf51..0000000000 Binary files a/sound/vox/security.wav and /dev/null differ diff --git a/sound/vox/select.wav b/sound/vox/select.wav deleted file mode 100644 index 9b89d52bb0..0000000000 Binary files a/sound/vox/select.wav and /dev/null differ diff --git a/sound/vox/selected.wav b/sound/vox/selected.wav deleted file mode 100644 index d4124f579a..0000000000 Binary files a/sound/vox/selected.wav and /dev/null differ diff --git a/sound/vox/service.wav b/sound/vox/service.wav deleted file mode 100644 index 3f6957d2e0..0000000000 Binary files a/sound/vox/service.wav and /dev/null differ diff --git a/sound/vox/seven.wav b/sound/vox/seven.wav deleted file mode 100644 index eca99c196a..0000000000 Binary files a/sound/vox/seven.wav and /dev/null differ diff --git a/sound/vox/seventeen.wav b/sound/vox/seventeen.wav deleted file mode 100644 index 9526b8a4e3..0000000000 Binary files a/sound/vox/seventeen.wav and /dev/null differ diff --git a/sound/vox/seventy.wav b/sound/vox/seventy.wav deleted file mode 100644 index 1b45ce6afe..0000000000 Binary files a/sound/vox/seventy.wav and /dev/null differ diff --git a/sound/vox/severe.wav b/sound/vox/severe.wav deleted file mode 100644 index fed84eea85..0000000000 Binary files a/sound/vox/severe.wav and /dev/null differ diff --git a/sound/vox/sewage.wav b/sound/vox/sewage.wav deleted file mode 100644 index 60978963e2..0000000000 Binary files a/sound/vox/sewage.wav and /dev/null differ diff --git a/sound/vox/sewer.wav b/sound/vox/sewer.wav deleted file mode 100644 index 5071a1d64a..0000000000 Binary files a/sound/vox/sewer.wav and /dev/null differ diff --git a/sound/vox/shield.wav b/sound/vox/shield.wav deleted file mode 100644 index 0ab01e0a6a..0000000000 Binary files a/sound/vox/shield.wav and /dev/null differ diff --git a/sound/vox/shipment.wav b/sound/vox/shipment.wav deleted file mode 100644 index 9b9014c51d..0000000000 Binary files a/sound/vox/shipment.wav and /dev/null differ diff --git a/sound/vox/shock.wav b/sound/vox/shock.wav deleted file mode 100644 index d4451bdf3c..0000000000 Binary files a/sound/vox/shock.wav and /dev/null differ diff --git a/sound/vox/shoot.wav b/sound/vox/shoot.wav deleted file mode 100644 index 5661ceb9c9..0000000000 Binary files a/sound/vox/shoot.wav and /dev/null differ diff --git a/sound/vox/shower.wav b/sound/vox/shower.wav deleted file mode 100644 index c32a9e42e0..0000000000 Binary files a/sound/vox/shower.wav and /dev/null differ diff --git a/sound/vox/shut.wav b/sound/vox/shut.wav deleted file mode 100644 index 6f68340502..0000000000 Binary files a/sound/vox/shut.wav and /dev/null differ diff --git a/sound/vox/side.wav b/sound/vox/side.wav deleted file mode 100644 index 4f4091a4e5..0000000000 Binary files a/sound/vox/side.wav and /dev/null differ diff --git a/sound/vox/sierra.wav b/sound/vox/sierra.wav deleted file mode 100644 index 0e52a6ec56..0000000000 Binary files a/sound/vox/sierra.wav and /dev/null differ diff --git a/sound/vox/sight.wav b/sound/vox/sight.wav deleted file mode 100644 index 5d479cab75..0000000000 Binary files a/sound/vox/sight.wav and /dev/null differ diff --git a/sound/vox/silo.wav b/sound/vox/silo.wav deleted file mode 100644 index daf9f28be1..0000000000 Binary files a/sound/vox/silo.wav and /dev/null differ diff --git a/sound/vox/six.wav b/sound/vox/six.wav deleted file mode 100644 index aa6bb638e3..0000000000 Binary files a/sound/vox/six.wav and /dev/null differ diff --git a/sound/vox/sixteen.wav b/sound/vox/sixteen.wav deleted file mode 100644 index 6f2db2ad9d..0000000000 Binary files a/sound/vox/sixteen.wav and /dev/null differ diff --git a/sound/vox/sixty.wav b/sound/vox/sixty.wav deleted file mode 100644 index 19610c7f79..0000000000 Binary files a/sound/vox/sixty.wav and /dev/null differ diff --git a/sound/vox/slime.wav b/sound/vox/slime.wav deleted file mode 100644 index 4d1d3cf6a4..0000000000 Binary files a/sound/vox/slime.wav and /dev/null differ diff --git a/sound/vox/slow.wav b/sound/vox/slow.wav deleted file mode 100644 index 75101b7de4..0000000000 Binary files a/sound/vox/slow.wav and /dev/null differ diff --git a/sound/vox/soldier.wav b/sound/vox/soldier.wav deleted file mode 100644 index c84ce20178..0000000000 Binary files a/sound/vox/soldier.wav and /dev/null differ diff --git a/sound/vox/some.wav b/sound/vox/some.wav deleted file mode 100644 index c4ba34efff..0000000000 Binary files a/sound/vox/some.wav and /dev/null differ diff --git a/sound/vox/someone.wav b/sound/vox/someone.wav deleted file mode 100644 index 6f6183e1f7..0000000000 Binary files a/sound/vox/someone.wav and /dev/null differ diff --git a/sound/vox/something.wav b/sound/vox/something.wav deleted file mode 100644 index 4601140095..0000000000 Binary files a/sound/vox/something.wav and /dev/null differ diff --git a/sound/vox/son.wav b/sound/vox/son.wav deleted file mode 100644 index f23495127e..0000000000 Binary files a/sound/vox/son.wav and /dev/null differ diff --git a/sound/vox/sorry.wav b/sound/vox/sorry.wav deleted file mode 100644 index 4c0725b938..0000000000 Binary files a/sound/vox/sorry.wav and /dev/null differ diff --git a/sound/vox/south.wav b/sound/vox/south.wav deleted file mode 100644 index 3a5ba00410..0000000000 Binary files a/sound/vox/south.wav and /dev/null differ diff --git a/sound/vox/squad.wav b/sound/vox/squad.wav deleted file mode 100644 index 71739d1498..0000000000 Binary files a/sound/vox/squad.wav and /dev/null differ diff --git a/sound/vox/square.wav b/sound/vox/square.wav deleted file mode 100644 index f08f73a5f4..0000000000 Binary files a/sound/vox/square.wav and /dev/null differ diff --git a/sound/vox/stairway.wav b/sound/vox/stairway.wav deleted file mode 100644 index ab84571c82..0000000000 Binary files a/sound/vox/stairway.wav and /dev/null differ diff --git a/sound/vox/status.wav b/sound/vox/status.wav deleted file mode 100644 index 42fe8b7822..0000000000 Binary files a/sound/vox/status.wav and /dev/null differ diff --git a/sound/vox/sterile.wav b/sound/vox/sterile.wav deleted file mode 100644 index d95753222b..0000000000 Binary files a/sound/vox/sterile.wav and /dev/null differ diff --git a/sound/vox/sterilization.wav b/sound/vox/sterilization.wav deleted file mode 100644 index f53240310c..0000000000 Binary files a/sound/vox/sterilization.wav and /dev/null differ diff --git a/sound/vox/storage.wav b/sound/vox/storage.wav deleted file mode 100644 index 18954a4f79..0000000000 Binary files a/sound/vox/storage.wav and /dev/null differ diff --git a/sound/vox/sub.wav b/sound/vox/sub.wav deleted file mode 100644 index d25510d3c0..0000000000 Binary files a/sound/vox/sub.wav and /dev/null differ diff --git a/sound/vox/subsurface.wav b/sound/vox/subsurface.wav deleted file mode 100644 index cb19be3a88..0000000000 Binary files a/sound/vox/subsurface.wav and /dev/null differ diff --git a/sound/vox/sudden.wav b/sound/vox/sudden.wav deleted file mode 100644 index b5eb4088ac..0000000000 Binary files a/sound/vox/sudden.wav and /dev/null differ diff --git a/sound/vox/suit.wav b/sound/vox/suit.wav deleted file mode 100644 index d099c95843..0000000000 Binary files a/sound/vox/suit.wav and /dev/null differ diff --git a/sound/vox/superconducting.wav b/sound/vox/superconducting.wav deleted file mode 100644 index ad4fcc8f9d..0000000000 Binary files a/sound/vox/superconducting.wav and /dev/null differ diff --git a/sound/vox/supercooled.wav b/sound/vox/supercooled.wav deleted file mode 100644 index 936562ed4f..0000000000 Binary files a/sound/vox/supercooled.wav and /dev/null differ diff --git a/sound/vox/supply.wav b/sound/vox/supply.wav deleted file mode 100644 index 4b33c8e9b7..0000000000 Binary files a/sound/vox/supply.wav and /dev/null differ diff --git a/sound/vox/surface.wav b/sound/vox/surface.wav deleted file mode 100644 index 0b02d732a9..0000000000 Binary files a/sound/vox/surface.wav and /dev/null differ diff --git a/sound/vox/surrender.wav b/sound/vox/surrender.wav deleted file mode 100644 index f0a17b395a..0000000000 Binary files a/sound/vox/surrender.wav and /dev/null differ diff --git a/sound/vox/surround.wav b/sound/vox/surround.wav deleted file mode 100644 index c9afd86f9c..0000000000 Binary files a/sound/vox/surround.wav and /dev/null differ diff --git a/sound/vox/surrounded.wav b/sound/vox/surrounded.wav deleted file mode 100644 index 3cbf513481..0000000000 Binary files a/sound/vox/surrounded.wav and /dev/null differ diff --git a/sound/vox/switch.wav b/sound/vox/switch.wav deleted file mode 100644 index f5ffcc7a6b..0000000000 Binary files a/sound/vox/switch.wav and /dev/null differ diff --git a/sound/vox/system.wav b/sound/vox/system.wav deleted file mode 100644 index 078727a081..0000000000 Binary files a/sound/vox/system.wav and /dev/null differ diff --git a/sound/vox/systems.wav b/sound/vox/systems.wav deleted file mode 100644 index c880250830..0000000000 Binary files a/sound/vox/systems.wav and /dev/null differ diff --git a/sound/vox/tactical.wav b/sound/vox/tactical.wav deleted file mode 100644 index 6b1aca650b..0000000000 Binary files a/sound/vox/tactical.wav and /dev/null differ diff --git a/sound/vox/take.wav b/sound/vox/take.wav deleted file mode 100644 index 70644f5220..0000000000 Binary files a/sound/vox/take.wav and /dev/null differ diff --git a/sound/vox/talk.wav b/sound/vox/talk.wav deleted file mode 100644 index 3ff83c48c9..0000000000 Binary files a/sound/vox/talk.wav and /dev/null differ diff --git a/sound/vox/tango.wav b/sound/vox/tango.wav deleted file mode 100644 index 37b6f4fe19..0000000000 Binary files a/sound/vox/tango.wav and /dev/null differ diff --git a/sound/vox/tank.wav b/sound/vox/tank.wav deleted file mode 100644 index 9608b0d749..0000000000 Binary files a/sound/vox/tank.wav and /dev/null differ diff --git a/sound/vox/target.wav b/sound/vox/target.wav deleted file mode 100644 index bd004147bf..0000000000 Binary files a/sound/vox/target.wav and /dev/null differ diff --git a/sound/vox/team.wav b/sound/vox/team.wav deleted file mode 100644 index d0e47d4e10..0000000000 Binary files a/sound/vox/team.wav and /dev/null differ diff --git a/sound/vox/temperature.wav b/sound/vox/temperature.wav deleted file mode 100644 index e9b51dada7..0000000000 Binary files a/sound/vox/temperature.wav and /dev/null differ diff --git a/sound/vox/temporal.wav b/sound/vox/temporal.wav deleted file mode 100644 index d0398a0f8c..0000000000 Binary files a/sound/vox/temporal.wav and /dev/null differ diff --git a/sound/vox/ten.wav b/sound/vox/ten.wav deleted file mode 100644 index fd0f353f6b..0000000000 Binary files a/sound/vox/ten.wav and /dev/null differ diff --git a/sound/vox/terminal.wav b/sound/vox/terminal.wav deleted file mode 100644 index 5ffe39101e..0000000000 Binary files a/sound/vox/terminal.wav and /dev/null differ diff --git a/sound/vox/terminated.wav b/sound/vox/terminated.wav deleted file mode 100644 index 1c972f092c..0000000000 Binary files a/sound/vox/terminated.wav and /dev/null differ diff --git a/sound/vox/termination.wav b/sound/vox/termination.wav deleted file mode 100644 index f093cd31a1..0000000000 Binary files a/sound/vox/termination.wav and /dev/null differ diff --git a/sound/vox/test.wav b/sound/vox/test.wav deleted file mode 100644 index f7c9b461fc..0000000000 Binary files a/sound/vox/test.wav and /dev/null differ diff --git a/sound/vox/that.wav b/sound/vox/that.wav deleted file mode 100644 index f9e8c92873..0000000000 Binary files a/sound/vox/that.wav and /dev/null differ diff --git a/sound/vox/the.wav b/sound/vox/the.wav deleted file mode 100644 index 3a07ea3be8..0000000000 Binary files a/sound/vox/the.wav and /dev/null differ diff --git a/sound/vox/then.wav b/sound/vox/then.wav deleted file mode 100644 index 1c2ec53386..0000000000 Binary files a/sound/vox/then.wav and /dev/null differ diff --git a/sound/vox/there.wav b/sound/vox/there.wav deleted file mode 100644 index 0e25880076..0000000000 Binary files a/sound/vox/there.wav and /dev/null differ diff --git a/sound/vox/third.wav b/sound/vox/third.wav deleted file mode 100644 index 962f2f9697..0000000000 Binary files a/sound/vox/third.wav and /dev/null differ diff --git a/sound/vox/thirteen.wav b/sound/vox/thirteen.wav deleted file mode 100644 index 1c392cfa3e..0000000000 Binary files a/sound/vox/thirteen.wav and /dev/null differ diff --git a/sound/vox/thirty.wav b/sound/vox/thirty.wav deleted file mode 100644 index d7a34d4351..0000000000 Binary files a/sound/vox/thirty.wav and /dev/null differ diff --git a/sound/vox/this.wav b/sound/vox/this.wav deleted file mode 100644 index b8f51ea151..0000000000 Binary files a/sound/vox/this.wav and /dev/null differ diff --git a/sound/vox/those.wav b/sound/vox/those.wav deleted file mode 100644 index ef7db90721..0000000000 Binary files a/sound/vox/those.wav and /dev/null differ diff --git a/sound/vox/thousand.wav b/sound/vox/thousand.wav deleted file mode 100644 index b1f9df6edd..0000000000 Binary files a/sound/vox/thousand.wav and /dev/null differ diff --git a/sound/vox/threat.wav b/sound/vox/threat.wav deleted file mode 100644 index 75cefae187..0000000000 Binary files a/sound/vox/threat.wav and /dev/null differ diff --git a/sound/vox/three.wav b/sound/vox/three.wav deleted file mode 100644 index 097504d605..0000000000 Binary files a/sound/vox/three.wav and /dev/null differ diff --git a/sound/vox/through.wav b/sound/vox/through.wav deleted file mode 100644 index 78053bdf90..0000000000 Binary files a/sound/vox/through.wav and /dev/null differ diff --git a/sound/vox/time.wav b/sound/vox/time.wav deleted file mode 100644 index 856529d6a4..0000000000 Binary files a/sound/vox/time.wav and /dev/null differ diff --git a/sound/vox/to.wav b/sound/vox/to.wav deleted file mode 100644 index 5189cf2d58..0000000000 Binary files a/sound/vox/to.wav and /dev/null differ diff --git a/sound/vox/top.wav b/sound/vox/top.wav deleted file mode 100644 index 0747e8965a..0000000000 Binary files a/sound/vox/top.wav and /dev/null differ diff --git a/sound/vox/topside.wav b/sound/vox/topside.wav deleted file mode 100644 index 6f6f54b973..0000000000 Binary files a/sound/vox/topside.wav and /dev/null differ diff --git a/sound/vox/touch.wav b/sound/vox/touch.wav deleted file mode 100644 index 6712dc18a3..0000000000 Binary files a/sound/vox/touch.wav and /dev/null differ diff --git a/sound/vox/towards.wav b/sound/vox/towards.wav deleted file mode 100644 index ff04147f15..0000000000 Binary files a/sound/vox/towards.wav and /dev/null differ diff --git a/sound/vox/track.wav b/sound/vox/track.wav deleted file mode 100644 index 5247acabd0..0000000000 Binary files a/sound/vox/track.wav and /dev/null differ diff --git a/sound/vox/train.wav b/sound/vox/train.wav deleted file mode 100644 index ced1a9850c..0000000000 Binary files a/sound/vox/train.wav and /dev/null differ diff --git a/sound/vox/transportation.wav b/sound/vox/transportation.wav deleted file mode 100644 index 302241aeb0..0000000000 Binary files a/sound/vox/transportation.wav and /dev/null differ diff --git a/sound/vox/truck.wav b/sound/vox/truck.wav deleted file mode 100644 index 1692a9c7dd..0000000000 Binary files a/sound/vox/truck.wav and /dev/null differ diff --git a/sound/vox/tunnel.wav b/sound/vox/tunnel.wav deleted file mode 100644 index f158042a9d..0000000000 Binary files a/sound/vox/tunnel.wav and /dev/null differ diff --git a/sound/vox/turn.wav b/sound/vox/turn.wav deleted file mode 100644 index 407d2cdbe8..0000000000 Binary files a/sound/vox/turn.wav and /dev/null differ diff --git a/sound/vox/turret.wav b/sound/vox/turret.wav deleted file mode 100644 index ec42293ebb..0000000000 Binary files a/sound/vox/turret.wav and /dev/null differ diff --git a/sound/vox/twelve.wav b/sound/vox/twelve.wav deleted file mode 100644 index d9fbcc2558..0000000000 Binary files a/sound/vox/twelve.wav and /dev/null differ diff --git a/sound/vox/twenty.wav b/sound/vox/twenty.wav deleted file mode 100644 index e6d7d8092d..0000000000 Binary files a/sound/vox/twenty.wav and /dev/null differ diff --git a/sound/vox/two.wav b/sound/vox/two.wav deleted file mode 100644 index 14f432fd5c..0000000000 Binary files a/sound/vox/two.wav and /dev/null differ diff --git a/sound/vox/unauthorized.wav b/sound/vox/unauthorized.wav deleted file mode 100644 index 7d3236f491..0000000000 Binary files a/sound/vox/unauthorized.wav and /dev/null differ diff --git a/sound/vox/under.wav b/sound/vox/under.wav deleted file mode 100644 index dc30e4711c..0000000000 Binary files a/sound/vox/under.wav and /dev/null differ diff --git a/sound/vox/uniform.wav b/sound/vox/uniform.wav deleted file mode 100644 index 899c7f029a..0000000000 Binary files a/sound/vox/uniform.wav and /dev/null differ diff --git a/sound/vox/unlocked.wav b/sound/vox/unlocked.wav deleted file mode 100644 index 0e48489db5..0000000000 Binary files a/sound/vox/unlocked.wav and /dev/null differ diff --git a/sound/vox/until.wav b/sound/vox/until.wav deleted file mode 100644 index 68f5ea47e4..0000000000 Binary files a/sound/vox/until.wav and /dev/null differ diff --git a/sound/vox/up.wav b/sound/vox/up.wav deleted file mode 100644 index 1816546702..0000000000 Binary files a/sound/vox/up.wav and /dev/null differ diff --git a/sound/vox/upper.wav b/sound/vox/upper.wav deleted file mode 100644 index 8b59156651..0000000000 Binary files a/sound/vox/upper.wav and /dev/null differ diff --git a/sound/vox/uranium.wav b/sound/vox/uranium.wav deleted file mode 100644 index 2ab47d6085..0000000000 Binary files a/sound/vox/uranium.wav and /dev/null differ diff --git a/sound/vox/us.wav b/sound/vox/us.wav deleted file mode 100644 index 23b56e9357..0000000000 Binary files a/sound/vox/us.wav and /dev/null differ diff --git a/sound/vox/usa.wav b/sound/vox/usa.wav deleted file mode 100644 index 591233e624..0000000000 Binary files a/sound/vox/usa.wav and /dev/null differ diff --git a/sound/vox/use.wav b/sound/vox/use.wav deleted file mode 100644 index 35be617775..0000000000 Binary files a/sound/vox/use.wav and /dev/null differ diff --git a/sound/vox/used.wav b/sound/vox/used.wav deleted file mode 100644 index 3385240fd9..0000000000 Binary files a/sound/vox/used.wav and /dev/null differ diff --git a/sound/vox/user.wav b/sound/vox/user.wav deleted file mode 100644 index 91ccb15af6..0000000000 Binary files a/sound/vox/user.wav and /dev/null differ diff --git a/sound/vox/vacate.wav b/sound/vox/vacate.wav deleted file mode 100644 index bed5d702e4..0000000000 Binary files a/sound/vox/vacate.wav and /dev/null differ diff --git a/sound/vox/valid.wav b/sound/vox/valid.wav deleted file mode 100644 index 40c3f1e4f6..0000000000 Binary files a/sound/vox/valid.wav and /dev/null differ diff --git a/sound/vox/vapor.wav b/sound/vox/vapor.wav deleted file mode 100644 index d067f69827..0000000000 Binary files a/sound/vox/vapor.wav and /dev/null differ diff --git a/sound/vox/vent.wav b/sound/vox/vent.wav deleted file mode 100644 index b4efa86991..0000000000 Binary files a/sound/vox/vent.wav and /dev/null differ diff --git a/sound/vox/ventillation.wav b/sound/vox/ventillation.wav deleted file mode 100644 index d56679dda1..0000000000 Binary files a/sound/vox/ventillation.wav and /dev/null differ diff --git a/sound/vox/victor.wav b/sound/vox/victor.wav deleted file mode 100644 index 8245a2abf4..0000000000 Binary files a/sound/vox/victor.wav and /dev/null differ diff --git a/sound/vox/violated.wav b/sound/vox/violated.wav deleted file mode 100644 index c597d1dfe2..0000000000 Binary files a/sound/vox/violated.wav and /dev/null differ diff --git a/sound/vox/violation.wav b/sound/vox/violation.wav deleted file mode 100644 index 98ed5dd0b9..0000000000 Binary files a/sound/vox/violation.wav and /dev/null differ diff --git a/sound/vox/voltage.wav b/sound/vox/voltage.wav deleted file mode 100644 index 140e1dd6a2..0000000000 Binary files a/sound/vox/voltage.wav and /dev/null differ diff --git a/sound/vox/vox_login.wav b/sound/vox/vox_login.wav deleted file mode 100644 index 5679acfce8..0000000000 Binary files a/sound/vox/vox_login.wav and /dev/null differ diff --git a/sound/vox/walk.wav b/sound/vox/walk.wav deleted file mode 100644 index fd8d85f84d..0000000000 Binary files a/sound/vox/walk.wav and /dev/null differ diff --git a/sound/vox/wall.wav b/sound/vox/wall.wav deleted file mode 100644 index e8e9a5fb4a..0000000000 Binary files a/sound/vox/wall.wav and /dev/null differ diff --git a/sound/vox/want.wav b/sound/vox/want.wav deleted file mode 100644 index 3d130ce8fe..0000000000 Binary files a/sound/vox/want.wav and /dev/null differ diff --git a/sound/vox/wanted.wav b/sound/vox/wanted.wav deleted file mode 100644 index a292d2d33b..0000000000 Binary files a/sound/vox/wanted.wav and /dev/null differ diff --git a/sound/vox/warm.wav b/sound/vox/warm.wav deleted file mode 100644 index 518f2905f4..0000000000 Binary files a/sound/vox/warm.wav and /dev/null differ diff --git a/sound/vox/warn.wav b/sound/vox/warn.wav deleted file mode 100644 index 7580146005..0000000000 Binary files a/sound/vox/warn.wav and /dev/null differ diff --git a/sound/vox/warning.wav b/sound/vox/warning.wav deleted file mode 100644 index 87db6c164b..0000000000 Binary files a/sound/vox/warning.wav and /dev/null differ diff --git a/sound/vox/waste.wav b/sound/vox/waste.wav deleted file mode 100644 index 245c44d682..0000000000 Binary files a/sound/vox/waste.wav and /dev/null differ diff --git a/sound/vox/water.wav b/sound/vox/water.wav deleted file mode 100644 index c29d7acf55..0000000000 Binary files a/sound/vox/water.wav and /dev/null differ diff --git a/sound/vox/we.wav b/sound/vox/we.wav deleted file mode 100644 index d7ba93484d..0000000000 Binary files a/sound/vox/we.wav and /dev/null differ diff --git a/sound/vox/weapon.wav b/sound/vox/weapon.wav deleted file mode 100644 index 3e95e9efc4..0000000000 Binary files a/sound/vox/weapon.wav and /dev/null differ diff --git a/sound/vox/west.wav b/sound/vox/west.wav deleted file mode 100644 index 09f58088c9..0000000000 Binary files a/sound/vox/west.wav and /dev/null differ diff --git a/sound/vox/whiskey.wav b/sound/vox/whiskey.wav deleted file mode 100644 index 11ef7b3aa0..0000000000 Binary files a/sound/vox/whiskey.wav and /dev/null differ diff --git a/sound/vox/white.wav b/sound/vox/white.wav deleted file mode 100644 index 6d4ec3e138..0000000000 Binary files a/sound/vox/white.wav and /dev/null differ diff --git a/sound/vox/wilco.wav b/sound/vox/wilco.wav deleted file mode 100644 index 862aa8d97d..0000000000 Binary files a/sound/vox/wilco.wav and /dev/null differ diff --git a/sound/vox/will.wav b/sound/vox/will.wav deleted file mode 100644 index 327d81c9d0..0000000000 Binary files a/sound/vox/will.wav and /dev/null differ diff --git a/sound/vox/with.wav b/sound/vox/with.wav deleted file mode 100644 index f1db548cd7..0000000000 Binary files a/sound/vox/with.wav and /dev/null differ diff --git a/sound/vox/without.wav b/sound/vox/without.wav deleted file mode 100644 index 7f3096df12..0000000000 Binary files a/sound/vox/without.wav and /dev/null differ diff --git a/sound/vox/woop.wav b/sound/vox/woop.wav deleted file mode 100644 index 62fa99cb3b..0000000000 Binary files a/sound/vox/woop.wav and /dev/null differ diff --git a/sound/vox/xeno.wav b/sound/vox/xeno.wav deleted file mode 100644 index 6b77a20b7a..0000000000 Binary files a/sound/vox/xeno.wav and /dev/null differ diff --git a/sound/vox/yankee.wav b/sound/vox/yankee.wav deleted file mode 100644 index 62bf15a40b..0000000000 Binary files a/sound/vox/yankee.wav and /dev/null differ diff --git a/sound/vox/yards.wav b/sound/vox/yards.wav deleted file mode 100644 index 33c3c4c3e3..0000000000 Binary files a/sound/vox/yards.wav and /dev/null differ diff --git a/sound/vox/year.wav b/sound/vox/year.wav deleted file mode 100644 index 12dca8e86b..0000000000 Binary files a/sound/vox/year.wav and /dev/null differ diff --git a/sound/vox/yellow.wav b/sound/vox/yellow.wav deleted file mode 100644 index bed92f5f9f..0000000000 Binary files a/sound/vox/yellow.wav and /dev/null differ diff --git a/sound/vox/yes.wav b/sound/vox/yes.wav deleted file mode 100644 index 799bb2b775..0000000000 Binary files a/sound/vox/yes.wav and /dev/null differ diff --git a/sound/vox/you.wav b/sound/vox/you.wav deleted file mode 100644 index 7ba9be75a8..0000000000 Binary files a/sound/vox/you.wav and /dev/null differ diff --git a/sound/vox/your.wav b/sound/vox/your.wav deleted file mode 100644 index 9e29c2418b..0000000000 Binary files a/sound/vox/your.wav and /dev/null differ diff --git a/sound/vox/yourself.wav b/sound/vox/yourself.wav deleted file mode 100644 index 582c3b7ed6..0000000000 Binary files a/sound/vox/yourself.wav and /dev/null differ diff --git a/sound/vox/zero.wav b/sound/vox/zero.wav deleted file mode 100644 index 9b6c39722d..0000000000 Binary files a/sound/vox/zero.wav and /dev/null differ diff --git a/sound/vox/zone.wav b/sound/vox/zone.wav deleted file mode 100644 index 68f9b8952c..0000000000 Binary files a/sound/vox/zone.wav and /dev/null differ diff --git a/sound/vox/zulu.wav b/sound/vox/zulu.wav deleted file mode 100644 index 32d6605218..0000000000 Binary files a/sound/vox/zulu.wav and /dev/null differ