diff --git a/code/WorkInProgress/ZomgPonies/clothing/civilian.dm b/code/WorkInProgress/ZomgPonies/clothing/civilian.dm
index ea89908ba9d..507cd00f4da 100644
--- a/code/WorkInProgress/ZomgPonies/clothing/civilian.dm
+++ b/code/WorkInProgress/ZomgPonies/clothing/civilian.dm
@@ -1,30 +1,30 @@
//Mime's Hardsuit
-/obj/item/clothing/head/helmet/space/mime
- name = "mime hardsuit helmet"
+/obj/item/clothing/head/helmet/space/eva/mime
+ name = "mime eva helmet"
// icon = 'spaceciv.dmi'
- desc = "A hardsuit helmet specifically designed for the mime."
+ desc = "An eva helmet specifically designed for the mime."
icon_state = "spacemimehelmet"
item_state = "spacemimehelmet"
-obj/item/clothing/suit/space/mime
- name = "mime hardsuit"
+obj/item/clothing/suit/space/eva/mime
+ name = "mime eva suit"
// icon = 'spaceciv.dmi'
- desc = "A hardsuit specifically designed for the mime."
+ desc = "An EVA suit specifically designed for the mime."
icon_state = "spacemime_suit"
item_state = "spacemime_items"
allowed = list(/obj/item/weapon/tank)
-/obj/item/clothing/head/helmet/space/clown
- name = "clown hardsuit helmet"
+/obj/item/clothing/head/helmet/space/eva/clown
+ name = "clown eva helmet"
// icon = 'spaceciv.dmi'
- desc = "A hardsuit helmet specifically designed for the clown. SPESSHONK!"
+ desc = "An EVA helmet specifically designed for the clown. SPESSHONK!"
icon_state = "clownhelmet"
item_state = "clownhelmet"
-obj/item/clothing/suit/space/clown
- name = "clown hardsuit"
+obj/item/clothing/suit/space/eva/clown
+ name = "clown eva suit"
// icon = 'spaceciv.dmi'
- desc = "A hardsuit specifically designed for the clown. SPESSHONK!"
+ desc = "An EVA suit specifically designed for the clown. SPESSHONK!"
icon_state = "spaceclown_suit"
item_state = "spaceclown_items"
allowed = list(/obj/item/weapon/tank)
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 098ff4eb232..9de817ecb89 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -207,6 +207,8 @@
hear += C.mob
else if(C.mob && C.mob.loc.loc in hear_and_objects)
hear += C.mob
+ else if(C.mob && C.mob.loc.loc.loc in hear_and_objects)
+ hear += C.mob
return hear
@@ -444,7 +446,7 @@ proc/isInSight(var/atom/A, var/atom/B)
var/r = mixOneColor(weights, reds)
var/g = mixOneColor(weights, greens)
var/b = mixOneColor(weights, blues)
- return rgb(r,g,b)
+ return rgb(r,g,b)
/proc/alone_in_area(var/area/the_area, var/mob/must_be_alone, var/check_type = /mob/living/carbon)
var/area/our_area = get_area_master(the_area)
@@ -456,6 +458,6 @@ proc/isInSight(var/atom/A, var/atom/B)
if(our_area == get_area_master(C))
return 0
return 1
-
+
/proc/MinutesToTicks(var/minutes as num)
return minutes * 60 * 10
\ No newline at end of file
diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm
index e0615702b49..590474c2dbb 100644
--- a/code/controllers/master_controller.dm
+++ b/code/controllers/master_controller.dm
@@ -186,7 +186,7 @@ datum/controller/game_controller/proc/process()
machines_cost = (world.timeofday - timer) / 10
sleep(breather_ticks)
-
+
//BOTS
timer = world.timeofday
process_bots()
@@ -280,7 +280,7 @@ datum/controller/game_controller/proc/process()
continue
- Machinery.removeAtProcessing()
+ if(Machinery) Machinery.removeAtProcessing()
/datum/controller/game_controller/proc/process_bots()
for(var/obj/machinery/bot/Bot in aibots)
@@ -289,8 +289,8 @@ datum/controller/game_controller/proc/process()
spawn(0)
Bot.bot_process()
continue
- aibots -= Bot
-
+ aibots -= Bot
+
/datum/controller/game_controller/proc/processObjects()
for (var/obj/Object in processing_objects)
if (Object && Object.loc)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index b58e3bf099f..6dec5fed5c8 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -257,16 +257,25 @@ its easier to just keep the beam vertical.
return 0
if(H.gloves)
if(fingerprintslast != H.ckey)
+ //Add the list if it does not exist.
+ if(!fingerprintshidden)
+ fingerprintshidden = list()
fingerprintshidden += text("\[[time_stamp()]\] (Wearing gloves). Real name: [], Key: []",H.real_name, H.key)
fingerprintslast = H.ckey
return 0
if(!( fingerprints ))
if(fingerprintslast != H.ckey)
+ //Add the list if it does not exist.
+ if(!fingerprintshidden)
+ fingerprintshidden = list()
fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",H.real_name, H.key)
fingerprintslast = H.ckey
return 1
else
if(fingerprintslast != M.ckey)
+ //Add the list if it does not exist.
+ if(!fingerprintshidden)
+ fingerprintshidden = list()
fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",M.real_name, M.key)
fingerprintslast = M.ckey
return
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 072cc4667b8..0b81ccabbeb 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -31,8 +31,8 @@
//The units themselves/////////////////
/obj/machinery/suit_storage_unit/standard_unit
- SUIT_TYPE = /obj/item/clothing/suit/space
- HELMET_TYPE = /obj/item/clothing/head/helmet/space
+ SUIT_TYPE = /obj/item/clothing/suit/space/eva
+ HELMET_TYPE = /obj/item/clothing/head/helmet/space/eva
MASK_TYPE = /obj/item/clothing/mask/breath
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index f7ce12324ca..420f73eac21 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -1017,7 +1017,7 @@
/obj/machinery/vending/eva
name = "Hardsuit Kits"
desc = "Conversion kits for your alien hardsuit needs."
- products = list(/obj/item/device/modkit = 6,/obj/item/device/modkit/tajaran = 6,/obj/item/device/modkit/unathi = 6)
+ products = list(/obj/item/device/modkit = 6,/obj/item/device/modkit/tajaran = 6,/obj/item/device/modkit/unathi = 6,/obj/item/device/modkit/vox = 6)
/obj/machinery/vending/sustenance
diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm
index 26a0c066b01..ef7e6d6d4c2 100644
--- a/code/game/objects/items/devices/modkit.dm
+++ b/code/game/objects/items/devices/modkit.dm
@@ -70,8 +70,13 @@
name = "Tajaran hardsuit modification kit"
desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Tajaran."
target_species = "Tajaran"
-
+
/obj/item/device/modkit/unathi
name = "Unathi hardsuit modification kit"
desc = "A kit containing all the needed tools and parts to modify a hardsuit for another species. This one looks like it's meant for Unathi."
- target_species = "Unathi"
\ No newline at end of file
+ target_species = "Unathi"
+
+/obj/item/device/modkit/vox
+ name = "Vox hardsuit modification kit"
+ desc = "A kit containing all the needed tools and parts to modify a hardsuit for another species. This one looks like it's meant for Vox."
+ target_species = "Vox"
\ No newline at end of file
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 89f222808b8..ed8989c3302 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -425,6 +425,9 @@ var/list/admin_verbs_mod = list(
if ("Badmin") severity = 99
D.makerandom(severity)
+
+ D.spreadtype = input("What method of contagion should the disease have?", "Give Disease") in list("Airborne","Contact","Injection")
+
D.infectionchance = input("How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num
if(istype(T,/mob/living/carbon/human))
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index ca66eaf0ca9..fe90597b4c3 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -281,7 +281,7 @@ BLIND // can't see anything
icon_state = "space"
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE
- item_state = "space"
+ item_state = "s_helmet"
permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm
index 51cf2a0903f..3f9ceacc2da 100644
--- a/code/modules/clothing/spacesuits/alien.dm
+++ b/code/modules/clothing/spacesuits/alien.dm
@@ -236,7 +236,27 @@
..()
if (magpulse)
usr << "It would be hard to take these off without relaxing your grip first." //theoretically this message should only be seen by the wearer when the claws are equipped.
-
+
+/obj/item/clothing/suit/space/eva/vox
+ name = "Vox Space Suit"
+ icon_state = "voxspace"
+ item_state = "voxspace"
+ species_restricted = list("Vox", "Vox Armalis")
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/species/vox/suit.dmi',
+ "Vox Armalis" = 'icons/mob/species/armalis/suit.dmi',
+ )
+
+/obj/item/clothing/head/helmet/space/eva/vox
+ name = "Vox Space Suit"
+ icon_state = "voxspace"
+ item_state = "voxspace"
+ species_restricted = list("Vox","Vox Armalis")
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/species/vox/head.dmi',
+ "Vox Armalis" = 'icons/mob/species/armalis/head.dmi',
+ )
+
/obj/item/clothing/suit/space/plasmaman
w_class = 3
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box/magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank)
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index e7a24a77ff4..9250796e29a 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -112,3 +112,19 @@
desc = "A paramedic space suit. Used in the recovery of bodies from space."
slowdown = 1
flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE | ONESIZEFITSALL
+
+/obj/item/clothing/suit/space/eva
+ name = "EVA suit"
+ icon_state = "spacenew"
+ item_state = "s_suit"
+ desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
+ slowdown = 1
+ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
+
+/obj/item/clothing/head/helmet/space/eva
+ name = "EVA helmet"
+ icon_state = "spacenew"
+ item_state = "s_helmet"
+ desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies."
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
+ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm
index 21c3248bcc0..f3dc8d6b36e 100644
--- a/code/modules/clothing/spacesuits/rig.dm
+++ b/code/modules/clothing/spacesuits/rig.dm
@@ -17,11 +17,13 @@
"Unathi" = 'icons/mob/species/unathi/helmet.dmi',
"Tajaran" = 'icons/mob/species/tajaran/helmet.dmi',
"Skrell" = 'icons/mob/species/skrell/helmet.dmi',
+ "Vox" = 'icons/mob/species/vox/helmet.dmi',
)
sprite_sheets_obj = list(
"Unathi" = 'icons/obj/clothing/species/unathi/hats.dmi',
"Tajaran" = 'icons/obj/clothing/species/tajaran/hats.dmi',
"Skrell" = 'icons/obj/clothing/species/skrell/hats.dmi',
+ "Vox" = 'icons/obj/clothing/species/vox/hats.dmi',
)
attack_self(mob/user)
@@ -65,11 +67,13 @@
"Unathi" = 'icons/mob/species/unathi/suit.dmi',
"Tajaran" = 'icons/mob/species/tajaran/suit.dmi',
"Skrell" = 'icons/mob/species/skrell/suit.dmi',
+ "Vox" = 'icons/mob/species/vox/suit.dmi',
)
sprite_sheets_obj = list(
"Unathi" = 'icons/obj/clothing/species/unathi/suits.dmi',
"Tajaran" = 'icons/obj/clothing/species/tajaran/suits.dmi',
"Skrell" = 'icons/obj/clothing/species/skrell/suits.dmi',
+ "Vox" = 'icons/obj/clothing/species/vox/suits.dmi',
)
//Breach thresholds, should ideally be inherited by most (if not all) hardsuits.
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 51d33edde47..53c834cb371 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1014,6 +1014,8 @@
number += 2
if(istype(src.head, /obj/item/clothing/head/helmet/space))
number += 2
+ if(istype(src.head, /obj/item/clothing/head/helmet/space/eva))
+ number -= 2
if(istype(src.glasses, /obj/item/clothing/glasses/thermal))
number -= 1
if(istype(src.glasses, /obj/item/clothing/glasses/sunglasses))
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index f1cf208b4b1..bad5c10d9e0 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -83,7 +83,7 @@ var/list/department_radio_keys = list(
else
dongle = H.r_ear
if(!istype(dongle)) return
- if(dongle.translate_binary) return 1
+ if(dongle.translate_hive) return 1
/mob/living/say(var/message)
diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm
index 56ca314b62e..abcd7b94627 100644
--- a/code/modules/mob/living/simple_animal/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer.dm
@@ -233,7 +233,7 @@
else
src << "\red You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system."
host << "\red You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours."
-
+ var/borer_key = src.key
host.attack_log += text("\[[time_stamp()]\] [src.name] ([src.ckey]) has assumed control of [host.name] ([host.ckey])")
msg_admin_attack("[src.name] ([src.ckey]) has assumed control of [host.name] ([host.ckey]) (JMP)")
// host -> brain
@@ -275,6 +275,8 @@
host.verbs += /mob/living/carbon/proc/punish_host
host.verbs += /mob/living/carbon/proc/spawn_larvae
+ if(src && !src.key)
+ src.key = "@[borer_key]"
return
/mob/living/simple_animal/borer/verb/secrete_chemicals()
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index 8ba4a4555fa..41612819446 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -62,31 +62,28 @@
if(!other)
return 1
//Universal speak makes everything understandable, for obvious reasons.
- else if(other.universal_speak || src.universal_speak || src.universal_understand)
+ if(other.universal_speak || src.universal_speak || src.universal_understand)
return 1
- else if (src.stat == 2)
+ if (src.stat == 2)
return 1
- else if (speaking) //Language check.
- var/understood
- for(var/datum/language/L in src.languages)
- if(speaking.name == L.name)
- understood = 1
- break
-
- if(understood || universal_speak)
+ if(!speaking) //Handle languages later
+ if(other.universal_speak || src.universal_speak)
+ return 1
+ if(isAI(src) && ispAI(other))
+ return 1
+ if (istype(other, src.type) || istype(src, other.type))
+ return 1
+ if (istype(other, /mob/living/carbon/human) && (istype(src, /mob/living/carbon/human) || istype(src, /mob/living/silicon/pai)))
+ return 1
+ if(istype(other, /mob/living/carbon/alien) && istype(src, /mob/living/carbon/alien))
+ return 1
+ return 0
+
+ for(var/datum/language/L in src.languages) //Handling languages
+ if(speaking.name == L.name)
return 1
- else
- return 0
- else if(other.universal_speak || src.universal_speak)
- return 1
- else if(isAI(src) && ispAI(other))
- return 1
- else if (istype(other, src.type) || istype(src, other.type))
- return 1
- else if (istype(other, /mob/living/carbon/human) && istype(src, /mob/living/carbon/human))
- return 1
return 0
/mob/proc/say_quote(var/text,var/datum/language/speaking)
diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm
index f2081503195..69c3b611e39 100644
--- a/code/modules/power/singularity/generator.dm
+++ b/code/modules/power/singularity/generator.dm
@@ -12,16 +12,21 @@
/obj/machinery/the_singularitygen/process()
var/turf/T = get_turf(src)
if(src.energy >= 200)
- if(fingerprintshidden && fingerprintshidden.len)
- var/prints
- for(var/i = 1, i < fingerprintshidden.len, i++)
- if(i > fingerprintshidden.len)
- break
- if(i == 1)
- prints += fingerprintshidden[i]
- else
- prints += ", [fingerprintshidden[i]]"
- log_admin("New singularity made, all touchers. [prints]. Last touched by [fingerprintslast].")
+ var/admin_message = "New singularity made"
+ world << "lengthy = [length(fingerprintshidden)]"
+ if(fingerprintshidden && length(fingerprintshidden))
+ admin_message += "touched by: "
+ if(islist(fingerprintshidden))
+ for(var/fp in fingerprintshidden)
+ admin_message += "[fp], "
+ admin_message += " - Last touched by [fingerprintslast]. at [x],[y],[z]"
+ else
+ admin_message += fingerprintshidden
+
+ log_admin(admin_message)
+ message_admins("[admin_message] at [x],[y],[z]",1)
+ investigate_log("[admin_message] at [x],[y],[z]","singulo")
+
new /obj/machinery/singularity/(T, 50)
if(src) del(src)
@@ -34,6 +39,9 @@
"You secure the [src.name] to the floor.", \
"You hear a ratchet")
src.add_hiddenprint(user)
+
+
+
else
user.visible_message("[user.name] unsecures [src.name] from the floor.", \
"You unsecure the [src.name] from the floor.", \
diff --git a/code/modules/research/xenoarchaeology/artifact/effect.dm b/code/modules/research/xenoarchaeology/artifact/effect.dm
index 06337842153..0518e677419 100644
--- a/code/modules/research/xenoarchaeology/artifact/effect.dm
+++ b/code/modules/research/xenoarchaeology/artifact/effect.dm
@@ -92,12 +92,12 @@ proc/GetAnomalySusceptibility(var/mob/living/carbon/human/H)
//anomaly suits give best protection, but excavation suits are almost as good
if(istype(H.wear_suit,/obj/item/clothing/suit/bio_suit/anomaly))
protected += 0.6
- else if(istype(H.wear_suit,/obj/item/clothing/suit/space/anomaly))
+ else if(istype(H.wear_suit,/obj/item/clothing/suit/space/eva/anomaly))
protected += 0.5
if(istype(H.head,/obj/item/clothing/head/bio_hood/anomaly))
protected += 0.3
- else if(istype(H.head,/obj/item/clothing/head/helmet/space/anomaly))
+ else if(istype(H.head,/obj/item/clothing/head/helmet/space/eva/anomaly))
protected += 0.2
//latex gloves and science goggles also give a bit of bonus protection
diff --git a/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm b/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm
index 8922c5dae17..b8277fa5e8e 100644
--- a/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm
+++ b/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm
@@ -14,7 +14,7 @@
item_state = "engspace_helmet"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100)
-/obj/item/clothing/suit/space/anomaly
+/obj/item/clothing/suit/space/eva/anomaly
name = "Excavation suit"
desc = "A pressure resistant excavation suit partially capable of insulating against exotic alien energies."
icon_state = "cespace_suit"
@@ -22,7 +22,7 @@
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit)
-/obj/item/clothing/head/helmet/space/anomaly
+/obj/item/clothing/head/helmet/space/eva/anomaly
name = "Excavation hood"
desc = "A pressure resistant excavation hood partially capable of insulating against exotic alien energies."
icon_state = "cespace_helmet"
diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm
index 41787ac3ef9..f699c68a82d 100644
--- a/code/modules/virus2/disease2.dm
+++ b/code/modules/virus2/disease2.dm
@@ -1,7 +1,7 @@
/datum/disease2/disease
var/infectionchance = 70
var/speed = 1
- var/spreadtype = "Contact" // Can also be "Airborne"
+ var/spreadtype = "Contact" // Can also be "Airborne" or "Injection"
var/stage = 1
var/stageprob = 10
var/dead = 0
@@ -16,7 +16,7 @@
uniqueID = rand(0,10000)
..()
-/datum/disease2/disease/proc/makerandom(var/greater=0)
+/datum/disease2/disease/proc/makerandom(var/greater=0, var/allow_injection=0)
for(var/i=1 ; i <= max_stage ; i++ )
var/datum/disease2/effectholder/holder = new /datum/disease2/effectholder
holder.stage = i
@@ -30,6 +30,7 @@
antigen |= text2num(pick(ANTIGENS))
antigen |= text2num(pick(ANTIGENS))
spreadtype = prob(70) ? "Airborne" : "Contact"
+ if(allow_injection) spreadtype = prob(20) ? spreadtype : "Injection"
if(all_species.len)
affected_species = get_infectable_species()
@@ -58,15 +59,18 @@
return
var/mob/living/carbon/human/MS = mob
- if(MS && (MS.species.flags & IS_SYNTHETIC))
- return
+ if(istype(MS))
+ if(MS.species.flags & IS_SYNTHETIC)
+ return
if(stage <= 1 && clicks == 0) // with a certain chance, the mob may become immune to the disease before it starts properly
if(prob(5))
mob.antibodies |= antigen
- if(mob.radiation > 50)
- if(prob(1))
- majormutateinactivate(mob)
+
+// NO MORE MUTATING IN MOBS - Bone White
+// if(mob.radiation > 50)
+// if(prob(1))
+// majormutateinactivate(mob)
//Space antibiotics stop disease completely
if(mob.reagents.has_reagent("spaceacillin"))
diff --git a/code/modules/virus2/helpers.dm b/code/modules/virus2/helpers.dm
index c1fd6ea2139..e3525797d71 100644
--- a/code/modules/virus2/helpers.dm
+++ b/code/modules/virus2/helpers.dm
@@ -24,6 +24,8 @@ proc/get_infection_chance(var/mob/living/carbon/M, var/vector = "Airborne")
if(istype(M:wear_suit, /obj/item/clothing/suit/bio_suit) && istype(M:head, /obj/item/clothing/head/bio_hood))
score += 15
+ if (vector == "Injection") score = 30 // Makes sure Injection viruses cannot be caught normally
+
// log_debug("[M]'s resistance to [vector] viruses: [score]")
diff --git a/code/modules/virus2/items_devices.dm b/code/modules/virus2/items_devices.dm
index 914622c96f5..a43d8c15502 100644
--- a/code/modules/virus2/items_devices.dm
+++ b/code/modules/virus2/items_devices.dm
@@ -3,7 +3,7 @@
/obj/item/device/antibody_scanner
name = "\improper Antibody Scanner"
desc = "Scans living beings for antibodies in their blood."
- icon_state = "health"
+ icon_state = "antibody"
w_class = 2.0
item_state = "electronic"
flags = FPRINT | TABLEPASS | CONDUCT
@@ -50,7 +50,7 @@
/obj/item/weapon/virusdish/random/New()
..()
src.virus2 = new /datum/disease2/disease
- src.virus2.makerandom()
+ src.virus2.makerandom(0, 1) // Virus dishes get minor effects only on creation, and have a chance of being injection type
growth = rand(5, 50)
/obj/item/weapon/virusdish/attackby(var/obj/item/weapon/W as obj,var/mob/living/carbon/user as mob)
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index c9125d4430b..f0cc991cef5 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/species/vox/head.dmi b/icons/mob/species/vox/head.dmi
index db10541af06..67a90c9c4c5 100644
Binary files a/icons/mob/species/vox/head.dmi and b/icons/mob/species/vox/head.dmi differ
diff --git a/icons/mob/species/vox/helmet.dmi b/icons/mob/species/vox/helmet.dmi
new file mode 100644
index 00000000000..afbbc2f1cca
Binary files /dev/null and b/icons/mob/species/vox/helmet.dmi differ
diff --git a/icons/mob/species/vox/suit.dmi b/icons/mob/species/vox/suit.dmi
index 336b49d7d3d..b401a0b05f9 100644
Binary files a/icons/mob/species/vox/suit.dmi and b/icons/mob/species/vox/suit.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 661aa232a8e..254c1abce75 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index c9b8287764a..d8af262681a 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/species/vox/hats.dmi b/icons/obj/clothing/species/vox/hats.dmi
new file mode 100644
index 00000000000..ff959db69f9
Binary files /dev/null and b/icons/obj/clothing/species/vox/hats.dmi differ
diff --git a/icons/obj/clothing/species/vox/suits.dmi b/icons/obj/clothing/species/vox/suits.dmi
new file mode 100644
index 00000000000..ae8595ac047
Binary files /dev/null and b/icons/obj/clothing/species/vox/suits.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index a9923205537..f59d96322a0 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 977071c5f4d..c44bceb4655 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm
index 9653666ba8d..502d469d089 100644
--- a/maps/cyberiad.dmm
+++ b/maps/cyberiad.dmm
@@ -1743,8 +1743,8 @@
"aHA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"aHB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/camera{c_tag = "EVA East"; dir = 8; network = list("SS13")},/obj/structure/table/reinforced,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva)
"aHC" = (/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"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
-"aHD" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/skrell/white,/obj/item/clothing/head/helmet/space/skrell/white,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/ai_monitored/storage/eva)
-"aHE" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/head/helmet/space/skrell/black,/obj/item/clothing/suit/space/skrell/black,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/ai_monitored/storage/eva)
+"aHD" = (/obj/item/clothing/suit/space/eva/mime,/obj/item/clothing/head/helmet/space/eva/mime,/obj/structure/rack{dir = 8; layer = 2.9},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
+"aHE" = (/obj/item/clothing/suit/space/eva/clown,/obj/item/clothing/head/helmet/space/eva/clown,/obj/structure/rack{dir = 8; layer = 2.9},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aHF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"aHG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep)
"aHH" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet)
@@ -1884,8 +1884,8 @@
"aKl" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva)
"aKm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
"aKn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/table/reinforced,/obj/item/weapon/book/manual/evaguide,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva)
-"aKo" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/vox/pressure{armor = list("melee" = 40, "bullet" = 10, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 100, "rad" = 80); desc = "A huge, armoured, pressurized suit, designed for distinctly nonhuman proportions. Built by NT to emulate Vox design, but with the materials seen in an engineering RIG."; name = "NT Vox RIG"},/obj/item/clothing/gloves/yellow/vox,/obj/item/clothing/head/helmet/space/vox/pressure{armor = list("melee" = 40, "bullet" = 10, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 100, "rad" = 80); name = "NT Vox Helmet"},/obj/item/clothing/mask/breath,/obj/item/clothing/shoes/magboots/vox,/obj/item/weapon/tank/nitrogen,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/ai_monitored/storage/eva)
-"aKp" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/mask/breath,/obj/item/clothing/suit/space/unathi/rig_cheap,/obj/item/clothing/head/helmet/space/unathi/helmet_cheap,/obj/item/clothing/shoes/magboots,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/ai_monitored/storage/eva)
+"aKo" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/weapon/tank/nitrogen,/obj/item/clothing/suit/space/eva/vox,/obj/item/clothing/mask/breath/vox,/obj/item/clothing/head/helmet/space/eva/vox,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/ai_monitored/storage/eva)
+"aKp" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva)
"aKq" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore)
"aKr" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore)
"aKs" = (/obj/machinery/camera{c_tag = "Dormitories South"; c_tag_order = 999; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness)
@@ -1945,8 +1945,8 @@
"aLu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/gateway)
"aLv" = (/turf/simulated/floor,/area/gateway)
"aLw" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/gateway)
-"aLx" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/suit_storage_unit,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva)
-"aLy" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/obj/machinery/suit_storage_unit,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva)
+"aLx" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva)
+"aLy" = (/obj/structure/rack,/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/eva/anomaly,/obj/item/clothing/head/helmet/space/eva/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore)
"aLz" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore)
"aLA" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/fore)
"aLB" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore)
@@ -2120,8 +2120,7 @@
"aON" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aOO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor,/area/gateway)
"aOP" = (/obj/machinery/light{dir = 4},/obj/effect/decal/warning_stripes/southwest,/obj/structure/closet/secure_closet/exile,/turf/simulated/floor,/area/gateway)
-"aOQ" = (/obj/item/clothing/suit/space/mime,/obj/item/clothing/head/helmet/space/mime,/obj/structure/rack{dir = 8; layer = 2.9},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
-"aOR" = (/obj/item/clothing/suit/space/clown,/obj/item/clothing/head/helmet/space/clown,/obj/structure/rack{dir = 8; layer = 2.9},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
+"aOQ" = (/obj/structure/rack,/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/eva/anomaly,/obj/item/clothing/head/helmet/space/eva/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 23},/turf/simulated/floor,/area/research_outpost/gearstore)
"aOS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva)
"aOT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/ai_monitored/storage/eva)
"aOU" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
@@ -10690,7 +10689,6 @@
"dYE" = (/turf/simulated/wall,/area/research_outpost/gearstore)
"dYF" = (/obj/structure/closet/excavation,/turf/simulated/floor,/area/research_outpost/gearstore)
"dYG" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/research_outpost/gearstore)
-"dYH" = (/obj/structure/rack,/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 23},/turf/simulated/floor,/area/research_outpost/gearstore)
"dYI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/floor/plating,/area/research_outpost/gearstore)
"dYJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/research_outpost/gearstore)
"dYK" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor,/area/research_outpost/gearstore)
@@ -10727,7 +10725,6 @@
"dZs" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/mineral,/area/mine/unexplored)
"dZt" = (/obj/structure/closet/excavation,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/research_outpost/gearstore)
"dZu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/research_outpost/gearstore)
-"dZv" = (/obj/structure/rack,/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor,/area/research_outpost/gearstore)
"dZw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/plating,/area/research_outpost/gearstore)
"dZx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/gearstore)
"dZy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor,/area/research_outpost/gearstore)
@@ -12647,12 +12644,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaDxaDyaDzaDAaDBaDCaDDaDEaDCaDFaDGaDCaDCaDHaySaxCayWaabaabaaaaaaaaaaaaaaaaabaDIaDJaDKaDLaDMaaaaabaaaaaaaaaaaaaaaazbaDNazbaDOaDPaDQaDQaDQaDRaDQaDQaDQaDSaDOaDTaDUaDUaDUaDUaDUaDUaDUaAYaaiaDVaDWaDXaDYaDZaEaaEbaEcaEdaEeaEfaDWaEgaaiaEhauRaEiaaqaEjaosaEkaElaElaEmaEnaEoaEpaEqaEqaEraEsaBnaEtaEsaEsaEuaEvaEwayRayRaExaEyaEzaEAaEAaEAaEBayRaECaEDaxZaxZaxZaxZaxZaEEaaiaaiaaiaaaaaaaaaaEFaEGaEFaaaaaaaaqaaqaEHaaqaEIaEJaEKaELaCuaCuaEMaENaCuaEOaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaySaEPaEQaEPaERaDyaDyaESaEPaEQaEPaETaEUaEVaEWaySaxCayVayVaEXayZayZayZayZazaayVaEYaEZaFaaFbaEYazbazbaFcaFdaFeazbazbazbaDNaFfaDOaaaaabaaaaabaaaaabaaaaabaaaaDOaDTaDUaFgaFhaFiaFjaFkaDUaAYaaiaFlaFlaFmaFnaFoaFpaFqaFpaFraFsaFtaFlaFlaaiaEhauRaFuaaqaEjaosaBeaysaytaaqaztaFvaFwaFxaFyaFzaFzaFAaFBaFzaFBaFCaFDaFEaFFaFGaFHaFIaFJaFKaFKaFKaFLayRaaqaFMaxZaxZaxZaxZaxZaFNaaiaabaaaaaaaaaaoHaFOaFPaFQaFRaaaaaqaFSaFTaFUaFVaFWaFXaCuaCuaCuaFYaFZaCuaGaaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaabaGbayaaGcaAPaGdaGeaGfaGgaGhaGdaAPaGiaGjayaaGkaGlaySaxCaxCaxCaxCaxCaxCaxCaxCaGmaGnaEYaGoaGpaGqaEYaGraGsaCNaCNaCNaCNaCNaGuaGtaGvaDOaabaGwaGwaGwaGwaGwaGwaGwaabaDOaDTaDUaGxaGyaGzaGAaGxaDUaAYaaiaaiaaiaaiaGBaGCaDWaGDaDWaGCaGEaaiaaiaaiaaiaEhauRaGFaaqaEjaosaAuaysaytaaqaAvaGGaaqaaqaaqaaqaaqaaqaaqaGHaaqaaqaaqaaqaaqaaqaGIaaqaGJaGKaGLaGMaGNaaqaaqaFMaxZaxZaxZaxZaxZaFNaaiaaaaaaaaaaaaaaiaGOaGPaGQaaiaaaaaqaGRaGSaaqaGTaGUaGVaGWaGXaGYaGZaHaaDtaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaEQaHbaHcaHcaHcaHcaHdaEQaDwaHeayaaHfaHgaySaHhaHhaHhaHhaHhaHhaHhaxCaHiaHjaEYaHkaHlaHmaEYaHnaHoaHnaHnaHnaHnaHnaHnaHnaHnaHpaaaaGwaHqaHraHsaHtaHuaGwaaaaDOaDTaDUaGxaHvaHwaHxaGxaDUaAYaaibqbbqbaFmaHzaHAaFpaFqaFpaHAaHBaHCaHDaHEaaiaEhauRaEiaaqaHFaxQaHGaysaytaaqaztaGGaaqaHHaHIaHJaHJaaqaHKaHIaHLaaqaHMaHNaHOaaqaHPaaqaHQaHRaHRaHRaHSaaqaabaHTaHUaHUaHUaHUaHUaHVaabaaaaaaaagaaaaaiaHWaHXaHYaaiaaaaaqaHZaIaaaqaaqaaqaaqaaqaIbaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDwaEQaHbaHcaHcaHcaHcaHdaEQaDwaHeayaaHfaHgaySaHhaHhaHhaHhaHhaHhaHhaxCaHiaHjaEYaHkaHlaHmaEYaHnaHoaHnaHnaHnaHnaHnaHnaHnaHnaHpaaaaGwaHqaHraHsaHtaHuaGwaaaaDOaDTaDUaGxaHvaHwaHxaGxaDUaAYaaibqbbqbaFmaHzaHAaFpaFqaFpaHAaHBaHCaFlaFlaaiaEhauRaEiaaqaHFaxQaHGaysaytaaqaztaGGaaqaHHaHIaHJaHJaaqaHKaHIaHLaaqaHMaHNaHOaaqaHPaaqaHQaHRaHRaHRaHSaaqaabaHTaHUaHUaHUaHUaHUaHVaabaaaaaaaagaaaaaiaHWaHXaHYaaiaaaaaqaHZaIaaaqaaqaaqaaqaaqaIbaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIcaIdaIeaIdaIdaIfaIgaIdaIdaIeaIhaIiayaaERaIjaySaIkaIlaImaInaIoaIpaHhaxCaIqayVaEYaEYaIraIsaHpaItaIuaIvaIwaIxaIyaIzaIAaIBaICaHpaabaGwaIDaIEaIFaIGaIHaGwaabaDOaDTaDUaIIaIJaIKaILaIMaDUaAYaaiaDVaDWaHyaIOaGCaDWaIPaDWaGCaIQaIRaDWaEgaaiaEhauRaISaaqaEjazrazsaysaytaaqaITaIUaaqaIVaHIaHIaHIaIWaIXaIYaIZaaqaJaaJbaJcaJdaJeaaqaJfaJgaJhaJgaJiaaqaaaaabaaaaabaaaaabaaaaabaaaaaaaaaaaaaaaaaiaJjaJkaJlaaiaJmaaqaaqaaqaaqaJnaJoaJpaJpaJqaJpaJraJpaJsaJtaJtaNHaJtaJtaJtaJtaJvaJwaJxaaiaJyaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIcaIhaIdaJzbpZaJBaJCaJDaJEaJFaJGaINaJAaJHaJIaEPaERaJJaySaJKaJLaJMaJNaJMaJOaJPaxCaJQaJRaJSaJTaJUaJuaJVaJXaJYaJZaJZaJZaKaaJZaJZaKbaKcaHpaaaaGwaKdaIEaKeaIGaKfaGwaaaaDOaDTaDUaKgaKhaKiaKjaKkaDUaAYaaibqabqaaFmaKlaHAaFpaKmaFpaHAaKnaFtaKoaKpaaiaKqawzaKraaqaEjazrabZabZabZabZaKsaKtaKuaKvaKwabZabZabZaaEabZabsaKxaKyaKzaJWabZaKBaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaoHaoJaaiaaiaaiaaiaaiaaiaKCaamaaiaKDaKEaKFaKGaKHaKIaKJabZabZabZabZaaEaKKaKAabZabZaKMabZaBbabZabZaaEaKOaaqaaqaKPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabAacOaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaKRaKSaKTaJAaKUaJBaKUaJBaKUaJBaKUaJAaKVaKWaGdaERaKXaySaKYaKZaLaaLbaLcaLdaHhaLeaKNaKLaLhaLfaLiaLgaHnaLlaJZaJZaJZaJZaJZaJZaJZaKbaLmaHpaabaGwaLnaLoaLpaLqaLraGwaabaDOaDTaDUaLsaLtaLuaLvaLwaDUaAYaaiaaiaaiaaiaLxaGCaDWaGDaDWaGCaLyaaiaaiaaiaaiaLzaLAaLBaaqaHFaLCaLDaLDaLDaLEaLFaADabJaLGaLHabJaLIabJaLJabJaLKaxXaLLaLMaLNaaqaLOaLPaLQaLRaLRaLPaLjaLTaLTaLTaLTaLTaLkaLVaLTaLWaLXaLYaLZaMaaMbaMbaLSaMdaMeaMeaMeaMfaJwaMgaMhaMiaMjaaqaMkaMlaMmaaJaaqaMnaaqaMoaMpaMqaMraMsaMtaMuaMvaMwaMxaMyaaiaMzaMAaMBaMCaMDaMEaMFaMGaMHaMIaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIcaIhaIdaJzbpZaJBaJCaJDaJEaJFaJGaINaJAaJHaJIaEPaERaJJaySaJKaJLaJMaJNaJMaJOaJPaxCaJQaJRaJSaJTaJUaJuaJVaJXaJYaJZaJZaJZaKaaJZaJZaKbaKcaHpaaaaGwaKdaIEaKeaIGaKfaGwaaaaDOaDTaDUaKgaKhaKiaKjaKkaDUaAYaaibqabqaaFmaKlaHAaFpaKmaFpaHAaKnaFtaKoaKoaaiaKqawzaKraaqaEjazrabZabZabZabZaKsaKtaKuaKvaKwabZabZabZaaEabZabsaKxaKyaKzaJWabZaKBaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaoHaoJaaiaaiaaiaaiaaiaaiaKCaamaaiaKDaKEaKFaKGaKHaKIaKJabZabZabZabZaaEaKKaKAabZabZaKMabZaBbabZabZaaEaKOaaqaaqaKPaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabAacOaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaKRaKSaKTaJAaKUaJBaKUaJBaKUaJBaKUaJAaKVaKWaGdaERaKXaySaKYaKZaLaaLbaLcaLdaHhaLeaKNaKLaLhaLfaLiaLgaHnaLlaJZaJZaJZaJZaJZaJZaJZaKbaLmaHpaabaGwaLnaLoaLpaLqaLraGwaabaDOaDTaDUaLsaLtaLuaLvaLwaDUaAYaaiaaiaaiaaiaLxaGCaDWaGDaDWaGCaKpaaiaaiaaiaaiaLzaLAaLBaaqaHFaLCaLDaLDaLDaLEaLFaADabJaLGaLHabJaLIabJaLJabJaLKaxXaLLaLMaLNaaqaLOaLPaLQaLRaLRaLPaLjaLTaLTaLTaLTaLTaLkaLVaLTaLWaLXaLYaLZaMaaMbaMbaLSaMdaMeaMeaMeaMfaJwaMgaMhaMiaMjaaqaMkaMlaMmaaJaaqaMnaaqaMoaMpaMqaMraMsaMtaMuaMvaMwaMxaMyaaiaMzaMAaMBaMCaMDaMEaMFaMGaMHaMIaaaaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMJaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMKaJBaJBaIeaJAaKUaJBaKUaMLaKUaJBaKUaJAaKVaKWaGdaERaMMaySaySaMNaMOaMPaMOaySaySaySaySaySaMQaMRaMSaMTaHnaMUaMVaMWaJZaJZaMXaJZaMYaMZaNaaHpaaaaGwaGwaNbaNcaNbaGwaGwaaaaDOaDTaDUaNdaNeaNfaLvaNgaDUaAYaaiaDVaDWaNhaIOaGCaDWaGDaDWaGCaIQaNiaaiaaiaaiaNjaNkaNlaNmaNnabmaaiaaiaaiaaqaNoaNpaaqaNqaHIaaqaNraaqaNsaaqaNtaLUaNvaNwaNxaNyaNzaNAaNBaNCaNDaxSaNEaNDaNDaNFaNDaNAaNGaNAaNHaNAaNAaNIaNJaNKaNLaNLaNMaNNaNOaNPaNLaNQaJtabJbNxaNSaNTaNUaNVaNWaNXaaJaNYaNZaaqaOaaObaOcaOdaMsaOeaMuaMvaMwaOfaOgaaiaOhaOiaOiaOjaMGaMGaMGaMGaMHaMIaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaJHaOkaKSaKTaJAaKUaJBaKUaJBaKUaJBaKUaJAaKVaKWaGdaERaMcaOmaOnaOoaOpaOqaDyaOraOsaOtaOuaNuaNRaOxaOyaOyaHnaOzaOAaOBaOCaODaOEaOFaOGaOHaOIayaaaaaabaaaaOJaOKaOJaaaaabaaaayaaDTaDUaOLaOMaOlaOOaOPaDUaAYaaiaOQaORaFmaOSaOTaFpaOUaFpaOVaOWaOXaaiaOYaOZaPaaPbaPcaPdaPeaPfaaaaaaaaiaPgaPhaPiaaqaPjaHIaHIaHIaPkaHIaHIaHIaaJaPlaPmaaqaPnaosaaqaPoaaqaaqaPpaPqaPraPsaPtaaqaPuaPvaaqaPnaaqaaqaaqaaqaPwaaqaaqaosaaqaaqaaqaaqaPxaJwaaqaPyaNTaPzaPAaPBaPCaPDaPEaPFaPGaaqaPHaPIaPJaPKaPLaOeaMuaMvaMwaPMaPNaaiaPOaOiaOiaOjaMGaMGaMGaMGaMHaMIaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaJHaOkaKSaKTaJAaKUaJBaKUaJBaKUaJBaKUaJAaKVaKWaGdaERaMcaOmaOnaOoaOpaOqaDyaOraOsaOtaOuaNuaNRaOxaOyaOyaHnaOzaOAaOBaOCaODaOEaOFaOGaOHaOIayaaaaaabaaaaOJaOKaOJaaaaabaaaayaaDTaDUaOLaOMaOlaOOaOPaDUaAYaaiaHDaHEaFmaOSaOTaFpaOUaFpaOVaOWaOXaaiaOYaOZaPaaPbaPcaPdaPeaPfaaaaaaaaiaPgaPhaPiaaqaPjaHIaHIaHIaPkaHIaHIaHIaaJaPlaPmaaqaPnaosaaqaPoaaqaaqaPpaPqaPraPsaPtaaqaPuaPvaaqaPnaaqaaqaaqaaqaPwaaqaaqaosaaqaaqaaqaaqaPxaJwaaqaPyaNTaPzaPAaPBaPCaPDaPEaPFaPGaaqaPHaPIaPJaPKaPLaOeaMuaMvaMwaPMaPNaaiaPOaOiaOiaOjaMGaMGaMGaMGaMHaMIaaaaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPPaPQaIdaJzaJAaJBaJBaPRaJBaJBaPSaJBaJAaJHaPTaPUaERaPVaPWaPXaPYaPXaPXaPXaPXaPXaPZaDyaySaQaaQaaQaaQaaQaaQbaQcaQdaHnaHnaHnaHnaQbaQeaQfaQgaQhaQiaQiaQjaQkaQlaQiaQiaQmaQgaQnaQgaQoaDUaQpaQqaQraQsaQtaaiaaiaaiaaiaQuaQvaQwaQxaQwaQyaQzaaiaaiaQAaPbaPbaPbaPbaQBaOvaQDaQEaQFaaiaQGaPhaQHaaqaaqaaqaaqaaqaaqaaqaaqaaqaaJaQIaQJaQKaQLaQMaQNaQOaQPaaqaQQaQRaQSaQTaQUaaqaQVaQWaQXaQYaQXaQZaRaaRbaRcaRdaReaRfaRgaRhaRiaaqaRjaMbaRkaRlaRmaPzaRnaPBaPCaRoaaqaRpaRqaRraRsaRtaOdaOdaaqaOgaMuaMvaMwaRuaRvaaiaRwaRxaRyaRzaRAaRBaMGaMGaRCaMIaaaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPPaIdaIeaIdaIdaIfaIgaIdaIdaIeaPQaRDayaaREaPVaCyaRFaRFaRGaRFaRHaySaRIaRJaDyaRKaRLaRMaRNaROaRPaRNaRQaRNaRNaRNaRRaRNaRNaRSaRTaRUaRVaRWaRXaRVaRYaRVaRVaRVaRVaRZaSaaSbaRNaRNaScaSdaSeaSfaSgaShaSiaSjaSkaSlaSmaSmaSmaSmaSmaSmaSnaSoaSpaSqaSraSsaStaSuaSvaSwaPbaPbaSxaSyaSzaSyaSAaSBaSCaSDaSEaSFaSGaaqaSHaSIaSJaSKaSLaSLaSMaSNaSOaSPaaqaSQaSRaSSaSSaSTaaqaSUaSVaSWaSXaSYaSYaSZaTaaTbaTaaTcaTdaTeaTfaTgaaqaPxaThaaqaOwaTjaTjaTkaTlaTjaTmaaqaTnaToaaqaTpaTqaOdaTraaqaTsaTtaONaMwaOgaOgaaiaTvaaiabmafaaaiaaiaaiaaiaaiabAacOaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCyaTwaTxaHcaHcaHcaHcaTyaTwaCyaHeayaaTzaTAaTBaTCaTDaTEaTEaTFaySaTGaRJaTHaTIaRLaTJaTKaTLaTMaTMaTMaTOaTOaTOaTPaTQaTQaTRaTSaTTaTMaTMaTUaTVaTWaQCaTYaTYaTZaTYaUaaTVaTVaTVaTiaSdaSeaSfaSgaSgaSgaSgaUcaSgaSgaSgaSgaSgaSgaUdaUeaUfaUgaUhaUiaUjaUkaUlaUmaUnaUnaUnaUoaUpaUpaUpaUqaSGaSGaSGaUraUsaSGaaqaUtaUuaSLaSLaUvaSLaUwaUxaSOaUyaaqaUzaUAaUBaUCaUDaaqaUEaUFaUGaUHaUIaUJaaqaUKaULaUKaaqaaqaaqaosaaqaaqaPxaJwaaqaUMaNTaNTaNTaUNaNTaUOaaqaaqaaqaaqaaqaaqaaqaUPaaqaMwaMwaMvaMwaUQaURaaqaUSaUTaUUaUVaUWaUXaUYaUZaVaaaaaaaaaaaaaaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaKQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -13637,8 +13634,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdVUdVVdVWdSSdVcdVXdTxdVYdTydVZdQGdWadWbdQGdWcdSWdWddWedQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaaaaadWfdWgdUrdUrdWhdUrdWidWjdWkdWlcNXdWndWodWpdUAdWqdWrdWsdWtdWudWvdWwdWxdWydWzdWAdWBdWCdWDdWAdWEdWBdWFdWAdWBdWGdWHdWIdWJdWKdWLdWMdWNdWOdWPdWQdWQdWRdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdNAdNAdQGdSVdWSdWTdWUdVWdWVdTydTzdWWdOgdQfdWXdQGdWcdRSdSWdWedQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdMwdWYdWYdWYdWYdWYdWYdMwdMwdMwdMwdMwdMwdMwaaaaaaaaaaaadWZdXadUrdXbdXcdXddXedXfdXgdXhdXidXjdXkdXldUAdXmdXndXodXpdXpdXpdXpdXqdXrdXsdXtdXrdXudXvdXwdXudXxdXydXzdXxdXxdXAdXBdXCdXDdUWdXEdXFdUWdXGdWQdWQdXHdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQGdQGdQGdQGdQGdQGdSUdTydXIdWSdTydVddXJdWWdWWdTBdSWdWadQGdWcdRmdXKdWedQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYdWYdXLdXLdXLdXLdWYdWYdWYdMwdMwdMwdMwdXMdXNaaaaaaaaadXOdXPdTFdXQdXRdXRdXRdXRdXSdXTdXUdNsdXVdXVdUAdXWdXpdXXdXpdXYdXZdYadYbdXrdYcdYddYedXudYfdYgdYhdXxdYidYjdYkdXxdYldYmdXCdYndYodUWdUWdUWdYpdYqdYrdVTdUWdNOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQGdYsdQfdTzdYtdQGdYudYvdYwdQGdVedQGdYxdYydYzdQGdQfdYAdOJdYBdRmdRRdOJdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdMwdMwdYCdYDcMucMudMBcMudNRdNSaabaabdYEdYFdYGdYHdYIdYJdYKdYLdYMdYNdYOdYPdYQdYRdYSdYTdYUdYVdYWdXrcNYdYYdYZdXucOhdZbdZcdXxcOgdZedZfdXxdZgdZhdZidZjdZkdZldZmdUWdUWdUWdUWdUWdZndNBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdQGdYsdRmdQfdTxdVedYAdWSdQfdWSdRRdQfdQfdZodSWdQfdRmdRmdQGdOJdZpdRmdQfdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdZqdZrdZsdMwaaaaaaaaaaaaaaaaaaaabdYEdZtdZudZvdZwdZxdZydZzdXVdZAdZBdUAdXpdXXdXpdZCdXpdZDdZEdXrdZFdZGdZHdXudZIdZJdZKdXxdZLdZMdZNdXxdZOdZPdZQdZRdZSdZSdZTdYodZUdMAcMucMudZVdZWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQGdYsdQfdTzdYtdQGdYudYvdYwdQGdVedQGdYxdYydYzdQGdQfdYAdOJdYBdRmdRRdOJdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdMwdMwdYCdYDcMucMudMBcMudNRdNSaabaabdYEdYFdYGaOQdYIdYJdYKdYLdYMdYNdYOdYPdYQdYRdYSdYTdYUdYVdYWdXrcNYdYYdYZdXucOhdZbdZcdXxcOgdZedZfdXxdZgdZhdZidZjdZkdZldZmdUWdUWdUWdUWdUWdZndNBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdQGdYsdRmdQfdTxdVedYAdWSdQfdWSdRRdQfdQfdZodSWdQfdRmdRmdQGdOJdZpdRmdQfdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdMwdWYdWYdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdWYdWYdZqdZrdZsdMwaaaaaaaaaaaaaaaaaaaabdYEdZtdZuaLydZwdZxdZydZzdXVdZAdZBdUAdXpdXXdXpdZCdXpdZDdZEdXrdZFdZGdZHdXudZIdZJdZKdXxdZLdZMdZNdXxdZOdZPdZQdZRdZSdZSdZTdYodZUdMAcMucMudZVdZWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdQGdYsdZXdRmdRmdVedRmdXKdSxdRmdZYdRRdXKdWXdOJdRmdZZdRSdQGdWSdOJdYAdQfdQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYeaadXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLeabdWYeaceaddWYdWYaaaaaaaaaaaaaaaaaaaabdYEeaeeafeageaheagcPueajdXVdXVeakdUAealeameaneaodXpeapeaqdXreareaseatdXueaueaveawdXxeaxeayeazdXxeaAeaBdYoeaCeaDeaEeaDdYoeaFeaGdNAaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdQGdYseaHdTxdSUdQGeaIdQGeaJeaKdQGdTzdQGeaJeaKdQGdTydYAdQGdZodVgdOJdWadQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYeaLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLeaMeaaeaNeaadWYaaaaaaaaaaaaaaaaaaaaaaabdYEeaOeajeajeaPeaQeaReajeaSdXVeaTdUAeaUeaUeaUeaUdXpeaVdYVdXreaWeaXeaYdXueaZebaebbdXxebcebdebedXxebfebgebhdYodYodYodYoebiebjdMwdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNAdNAdNAdNAdNAdNAdQGdQGdQGdQGdQGdQGeaIdQGebkdSWdTzdWadRSdTydWVdTydVgdTxdQGeaJeblebmebndQGdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdNAdMwdWYeabdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLdXLeboebpebqaaaaaaaaaaaaaaaaaaaaaaabaabdYEebrebrebsebtebuebvebwebxdXVebydUAdXLdXLdXLdXLdXpebzebAdXrebBebCebDdXuebEebFebGdXxebHebIebJdXxebKebLebhdMwdNAdMwebMebNebOdMwdNAdNAdNAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/paradise.dme b/paradise.dme
index 6407ea038b9..a790a81d85a 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -49,6 +49,7 @@
#define FILE_DIR "icons/obj/clothing/species/skrell"
#define FILE_DIR "icons/obj/clothing/species/tajaran"
#define FILE_DIR "icons/obj/clothing/species/unathi"
+#define FILE_DIR "icons/obj/clothing/species/vox"
#define FILE_DIR "icons/obj/doors"
#define FILE_DIR "icons/obj/flora"
#define FILE_DIR "icons/obj/machines"