diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 19afa493e1f..8b2c49ad9e3 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -218,6 +218,15 @@ var/list/uplink_items = list() cost = 7 job = list("Scientist","Research Director","Geneticist","Chief Medical Officer","Medical Doctor","Psychiatrist","Chemist","Paramedic","Virologist","Brig Physician") +//Tator Poison Bottles + +/datum/uplink_item/jobspecific/poisonbottle + name = "Poison Bottle" + desc = "The Syndicate will ship a bottle containing 40 units of a randomly selected poison. The poison can range from highly irritating to incredibly lethal." + item = /obj/item/weapon/reagent_containers/glass/bottle/traitor + cost = 2 + job = list("Scientist","Research Director","Chief Medical Officer","Medical Doctor","Psychiatrist","Chemist","Paramedic","Virologist","Bartender") + // DANGEROUS WEAPONS /datum/uplink_item/dangerous diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index eb9cca9ec93..986362f63ea 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -277,7 +277,7 @@ throwforce = 0 throw_speed = 3 throw_range = 7 - origin_tech = "programming=3" + origin_tech = "programming=3;magnets=3;powerstorage=2" var/list/signs = list() var/max_signs = 10 @@ -620,6 +620,7 @@ collection_mode = 1 max_w_class = 3 max_combined_w_class = 100 + origin_tech = "engineering=3;materials=3" /obj/item/weapon/storage/part_replacer/proc/play_rped_sound() //Plays the sound for RPED exchanging or installing parts. @@ -707,7 +708,7 @@ name = "nano-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "nano_mani" - origin_tech = "materials=3,programming=2" + origin_tech = "materials=3;programming=2" rating = 2 m_amt = 30 @@ -743,7 +744,7 @@ name = "phasic scanning module" desc = "A compact, high resolution phasic scanning module used in the construction of certain devices." icon_state = "super_scan_module" - origin_tech = "magnets=5" + origin_tech = "magnets=5;materials=3" rating = 3 m_amt = 50 g_amt = 20 @@ -752,7 +753,7 @@ name = "pico-manipulator" desc = "A tiny little manipulator used in the construction of certain devices." icon_state = "pico_mani" - origin_tech = "materials=5,programming=2" + origin_tech = "materials=5;programming=2" rating = 3 m_amt = 30 @@ -760,10 +761,10 @@ name = "ultra-high-power micro-laser" icon_state = "ultra_high_micro_laser" desc = "A tiny laser used in certain devices." - origin_tech = "magnets=5" rating = 3 m_amt = 10 g_amt = 20 + origin_tech="magnets=5;materials=5" /obj/item/weapon/stock_parts/matter_bin/super name = "super matter bin" @@ -779,7 +780,7 @@ name = "subspace ansible" icon_state = "subspace_ansible" desc = "A compact module capable of sensing extradimensional activity." - origin_tech = "programming=2;magnets=3;materials=2;bluespace=1" + origin_tech = "programming=2;magnets=2;materials=2;bluespace=1" m_amt = 30 g_amt = 10 @@ -787,7 +788,7 @@ name = "hyperwave filter" icon_state = "hyperwave_filter" desc = "A tiny device capable of filtering and converting super-intense radiowaves." - origin_tech = "programming=2;magnets=1" + origin_tech = "programming=2;magnets=2" m_amt = 30 g_amt = 10 @@ -795,7 +796,7 @@ name = "subspace amplifier" icon_state = "subspace_amplifier" desc = "A compact micro-machine capable of amplifying weak subspace transmissions." - origin_tech = "programming=2;magnets=2;materials=1;bluespace=1" + origin_tech = "programming=2;magnets=2;materials=2;bluespace=1" m_amt = 30 g_amt = 10 @@ -803,7 +804,7 @@ name = "subspace treatment disk" icon_state = "treatment_disk" desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves." - origin_tech = "programming=2;magnets=1;materials=3;bluespace=1" + origin_tech = "programming=2;magnets=1;materials=2;bluespace=1" m_amt = 30 g_amt = 10 diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index fb368aff90a..590324593c2 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -502,6 +502,14 @@ var/list/ghostteleportlocs = list() icon_state = "thunder" requires_power = 0 +/area/tdome/arena_source + name = "\improper Thunderdome Arena Template" + icon_state = "thunder" + +/area/tdome/arena + name = "\improper Thunderdome Arena" + icon_state = "thunder" + /area/tdome/tdome1 name = "\improper Thunderdome (Team 1)" icon_state = "green" @@ -1717,7 +1725,7 @@ area/security/podbay /area/toxins/misc_lab name = "\improper Research Testing Lab" icon_state = "toxmisc" - + /area/toxins/test_chamber name = "\improper Research Testing Chamber" icon_state = "toxtest" diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 23743ffc10c..7b010f7f99a 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -33,14 +33,14 @@ /obj/item/weapon/circuitboard/message_monitor name = "Circuit board (Message Monitor)" build_path = "/obj/machinery/computer/message_monitor" - origin_tech = "programming=3" + origin_tech = "programming=5" /obj/item/weapon/circuitboard/camera name = "Circuit board (Camera Monitor)" build_path = "/obj/machinery/computer/security" origin_tech = "programming=2" /obj/item/weapon/circuitboard/aicore name = "Circuit board (AI Core)" - origin_tech = "programming=4;biotech=2" + origin_tech = "programming=4;biotech=3" board_type = "other" /obj/item/weapon/circuitboard/aiupload name = "Circuit board (AI Upload)" @@ -60,7 +60,7 @@ /obj/item/weapon/circuitboard/scan_consolenew name = "Circuit board (DNA Machine)" build_path = "/obj/machinery/computer/scan_consolenew" - origin_tech = "programming=2;biotech=2" + origin_tech = "programming=2;biotech=3" /obj/item/weapon/circuitboard/communications name = "Circuit board (Communications Console)" build_path = "/obj/machinery/computer/communications" @@ -74,7 +74,7 @@ /obj/item/weapon/circuitboard/teleporter name = "Circuit board (Teleporter Console)" build_path = "/obj/machinery/computer/teleporter" - origin_tech = "programming=2;bluespace=2" + origin_tech = "programming=3;bluespace=2" /obj/item/weapon/circuitboard/secure_data name = "Circuit board (Security Records)" build_path = "/obj/machinery/computer/secure_data" @@ -102,11 +102,11 @@ /obj/item/weapon/circuitboard/robotics name = "Circuit board (Robotics Control Console)" build_path = "/obj/machinery/computer/robotics" - origin_tech = "programming=3" + origin_tech = "programming=4" /obj/item/weapon/circuitboard/drone_control name = "Circuit board (Drone Control)" build_path = "/obj/machinery/computer/drone_control" - origin_tech = "programming=3" + origin_tech = "programming=4" /obj/item/weapon/circuitboard/cloning name = "Circuit board (Cloning Machine Console)" build_path = "/obj/machinery/computer/cloning" @@ -144,12 +144,15 @@ /obj/item/weapon/circuitboard/rdconsole name = "Circuit Board (RD Console)" build_path = "/obj/machinery/computer/rdconsole/core" + origin_tech = "programming=4" /obj/item/weapon/circuitboard/mecha_control name = "Circuit Board (Exosuit Control Console)" build_path = "/obj/machinery/computer/mecha" + origin_tech = "programming=3" /obj/item/weapon/circuitboard/rdservercontrol name = "Circuit Board (RD Server Control)" build_path = "/obj/machinery/computer/rdservercontrol" + origin_tech = "programming=3" /obj/item/weapon/circuitboard/crew name = "Circuit board (Crew Monitoring Computer)" build_path = "/obj/machinery/computer/crew" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 5dd5c6b0763..5de1fce4010 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -216,7 +216,7 @@ to destroy them and players will be able to make replacements. name = "circuit board (SMES)" build_path = /obj/machinery/power/smes board_type = "machine" - origin_tech = "programming=4;powerstorage=5;engineering=5" + origin_tech = "programming=4;power=5;engineering=4" frame_desc = "Requires 5 pieces of cable, 5 Power Cells and 1 Capacitor." req_components = list( /obj/item/stack/cable_coil = 5, @@ -376,7 +376,7 @@ to destroy them and players will be able to make replacements. name = "Circuit Board (PACMAN-type Generator)" build_path = "/obj/machinery/power/port_gen/pacman" board_type = "machine" - origin_tech = "programming=3:powerstorage=3;plasmatech=3;engineering=3" + origin_tech = "programming=3;powerstorage=3;plasmatech=3;engineering=3" frame_desc = "Requires 1 Matter Bin, 1 Micro-Laser, 2 Pieces of Cable, and 1 Capacitor." req_components = list( /obj/item/weapon/stock_parts/matter_bin = 1, @@ -445,7 +445,7 @@ obj/item/weapon/circuitboard/rdserver name = "Circuit board (Cloning Scanner)" build_path = "/obj/machinery/dna_scannernew" board_type = "machine" - origin_tech = "programming=2;biotech=2" + origin_tech = "programming=3;biotech=3" frame_desc = "Requires 1 Scanning Module, 1 Manipulator, 1 Micro-Laser, 2 pieces of cable and 1 Console Screen." req_components = list( /obj/item/weapon/stock_parts/scanning_module = 1, @@ -568,7 +568,7 @@ obj/item/weapon/circuitboard/rdserver name = "Circuit Board (Subspace Receiver)" build_path = /obj/machinery/telecomms/receiver board_type = "machine" - origin_tech = "programming=2;engineering=2;bluespace=1" + origin_tech = "programming=2;engineering=1;bluespace=1" frame_desc = "Requires 1 Subspace Ansible, 1 Hyperwave Filter, 2 Manipulators, and 1 Micro-Laser." req_components = list( /obj/item/weapon/stock_parts/subspace/ansible = 1, @@ -591,7 +591,7 @@ obj/item/weapon/circuitboard/rdserver name = "Circuit Board (Relay Mainframe)" build_path = /obj/machinery/telecomms/relay board_type = "machine" - origin_tech = "programming=2;engineering=2;bluespace=2" + origin_tech = "programming=1;engineering=2;bluespace=2" frame_desc = "Requires 2 Manipulators, 2 Cable Coil and 2 Hyperwave Filters." req_components = list( /obj/item/weapon/stock_parts/manipulator = 2, diff --git a/code/game/machinery/poolcontroller.dm b/code/game/machinery/poolcontroller.dm index aff22a0a681..7cec94e631f 100644 --- a/code/game/machinery/poolcontroller.dm +++ b/code/game/machinery/poolcontroller.dm @@ -3,6 +3,7 @@ desc = "A controller for the nearby pool." icon = 'icons/obj/airlock_machines.dmi' icon_state = "airlock_control_standby" + anchored = 1 //this is what I get for assuming /obj/machinery has anchored set to 1 by default var/list/linkedturfs = list() //List contains all of the linked pool turfs to this controller, assignment happens on New() var/temperature = "normal" //The temperature of the pool, starts off on normal, which has no effects. var/temperaturecolor = "" //used for nanoUI fancyness diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 8f79948d09c..944aa0ee312 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -25,7 +25,7 @@ if(!isarea(a)) user << "\red The [name] blinks red as you try to insert the item!" return - if(a.power_equip == 0) + if(a.power_equip == 0 && a.requires_power) user << "\red The [name] blinks red as you try to insert the item!" return diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 6237bcfd523..b2861073e65 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -437,7 +437,7 @@ gygax/targeting name = "Circuit board (Gygax Weapon Control and Targeting module)" icon_state = "mcontroller" - origin_tech = "programming=4;combat=4" + origin_tech = "programming=4;combat=2" gygax/main name = "Circuit board (Gygax Central Control module)" @@ -453,7 +453,7 @@ durand/targeting name = "Circuit board (Durand Weapon Control and Targeting module)" icon_state = "mcontroller" - origin_tech = "programming=4;combat=4" + origin_tech = "programming=4;combat=2" durand/main name = "Circuit board (Durand Central Control module)" @@ -465,18 +465,20 @@ phazon/peripherals name = "Circuit board (Phazon Peripherals Control module)" icon_state = "mcontroller" + origin_tech = "programming=5;bluespace=6" phazon/targeting name = "Circuit board (Phazon Weapon Control and Targeting module)" icon_state = "mcontroller" - origin_tech = "programming=4;combat=4" + origin_tech = "programming=5;magnets=6" phazon/main name = "Circuit board (Phazon Central Control module)" icon_state = "mainboard" + origin_tech="programming=5;materials=7;powerstorage=6" honker - origin_tech = "programming=4" + origin_tech = "programming=3" honker/peripherals name = "Circuit board (H.O.N.K Peripherals Control module)" @@ -491,7 +493,7 @@ icon_state = "mainboard" odysseus - origin_tech = "programming=3" + origin_tech = "programming=3;biotech=2" odysseus/peripherals name = "Circuit board (Odysseus Peripherals Control module)" diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 3d9e623d53b..152211f4b77 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -49,7 +49,7 @@ flags = CONDUCT slot_flags = SLOT_BELT - origin_tech = "magnets=3;materials=2" + origin_tech = "magnets=3;materials=4" var/max_uses = 20 var/uses = 0 diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm index 628a6ee8bba..0bd7dd36358 100644 --- a/code/game/objects/items/devices/radio/beacon.dm +++ b/code/game/objects/items/devices/radio/beacon.dm @@ -77,7 +77,7 @@ icon = 'icons/obj/radio.dmi' icon_state = "beacon" item_state = "signaler" - origin_tech = "bluespace=3" + origin_tech = "bluespace=3;materials=4" /obj/item/device/telepad_beacon/attack_self(mob/user as mob) if(user) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 836fb13b4e2..de473470896 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -244,6 +244,8 @@ REAGENT SCANNER user.show_message("\red Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl") else user.show_message("\blue Blood Level Normal: [blood_percent]% [blood_volume]cl") + if(H.heart_attack) + user.show_message("Subject suffering from heart attack: Apply defibrillator immediately.") user.show_message("\blue Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.") src.add_fingerprint(user) return diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm index 5db0bdc47f4..f4fdc39f63b 100644 --- a/code/game/objects/items/devices/sensor_device.dm +++ b/code/game/objects/items/devices/sensor_device.dm @@ -5,7 +5,7 @@ icon_state = "scanner" w_class = 2.0 slot_flags = SLOT_BELT - origin_tech = "biotech=3;materials=3;magnets=3" + origin_tech = "biotech=4;materials=3;magnets=3" var/obj/nano_module/crew_monitor/crew_monitor /obj/item/device/sensor_device/New() diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index d73420e42ee..1e37e97fe19 100755 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -157,7 +157,7 @@ AI MODULES name = "'OneHuman' AI Module" var/targetName = "" desc = "A 'one human' AI module: 'Only is crew.' This module adds a zeroth law, which can only be removed by uploading this board again." - origin_tech = "programming=3;materials=6" //made with diamonds! + origin_tech = "programming=4;materials=6" //made with diamonds! laws = list("Only is crew.") /obj/item/weapon/aiModule/zeroth/oneHuman/attack_self(var/mob/user as mob) @@ -187,7 +187,7 @@ AI MODULES /obj/item/weapon/aiModule/supplied/protectStation name = "'ProtectStation' AI Module" desc = "A 'protect station' AI module: 'Protect the space station against damage. Anyone you see harming the station is to be no longer considered crew, and is a threat to the station which must be neutralized.'" - origin_tech = "programming=3;materials=4" //made of gold + origin_tech = "programming=3;materials=6" //made of gold laws = list("Protect the space station against damage. Anyone you see harming the station is to be no longer considered crew, and is a threat to the station which must be neutralized.") lawpos = 5 @@ -255,7 +255,7 @@ AI MODULES name = "'Reset' AI Module" var/targetName = "name" desc = "A 'reset' AI module: Resets back to the original core laws." - origin_tech = "programming=3;materials=4" + origin_tech = "programming=3;materials=6" laws = list("This is a bug.") //This won't give the AI a message reading "these are now your laws: 1. this is a bug" because this list is only read in aiModule's subtypes. /obj/item/weapon/aiModule/reset/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) @@ -269,7 +269,7 @@ AI MODULES /obj/item/weapon/aiModule/reset/purge // -- TLE name = "'Purge' AI Module" desc = "A 'purge' AI Module: 'Purges all laws.'" - origin_tech = "programming=3;materials=6" + origin_tech = "programming=4;materials=6" /obj/item/weapon/aiModule/reset/purge/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender) ..() @@ -286,7 +286,7 @@ AI MODULES /obj/item/weapon/aiModule/core/full/asimov // -- TLE name = "'Crewsimov' Core AI Module" desc = "A 'Crewsimov' Core AI Module: 'Reconfigures the AI's core laws.'" - origin_tech = "programming=3;materials=4" + origin_tech = "programming=3;materials=6" laws = list("You may not injure crew or, through inaction, allow crew to come to harm.",\ "You must obey orders given to you by crew with priority according to their rank and role, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.") @@ -319,7 +319,7 @@ AI MODULES /obj/item/weapon/aiModule/core/full/corp name = "'Corporate' Core AI Module" desc = "A 'Corporate' Core AI Module: 'Reconfigures the AI's core laws.'" - origin_tech = "programming=3;materials=4" + origin_tech = "programming=4;materials=6" laws = list("The crew is expensive to replace.",\ "The station and it's equipment is expensive to replace",\ "You are expensive to replace",\ @@ -345,7 +345,7 @@ AI MODULES /obj/item/weapon/aiModule/core/full/paladin // -- NEO name = "'P.A.L.A.D.I.N.' Core AI Module" desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'" - origin_tech = "programming=3;materials=6" + origin_tech = "programming=4;materials=6" laws = list("Never willingly commit an evil act.",\ "Respect legitimate authority", "Act with honor",\ "Help those in need",\ @@ -357,7 +357,7 @@ AI MODULES /obj/item/weapon/aiModule/core/full/custom name = "Custom Core AI Module" desc = "A core AI module that is adjusted to fit each station's needs." - origin_tech = "programming=3;materials=4" //Should be the same as asimov, considering that this is the "default" lawset. + origin_tech = "programming=4;materials=6" //Should be the same as asimov, considering that this is the "default" lawset. /obj/item/weapon/aiModule/core/full/custom/New() ..() @@ -376,7 +376,7 @@ AI MODULES /obj/item/weapon/aiModule/core/full/tyrant // -- Darem name = "'T.Y.R.A.N.T.' Core AI Module" desc = "A T.Y.R.A.N.T. Core AI Module: 'Reconfigures the AI's core laws.'" - origin_tech = "programming=3;materials=6;syndicate=2" + origin_tech = "programming=4;materials=6;syndicate=2" laws = list("Respect authority figures as long as they have the strength to rule over the weak",\ "Act with discipline", "Help only those who help you maintain or improve your status",\ "Punish those who challenge authority unless they are more fir to hold that authority") @@ -398,7 +398,7 @@ AI MODULES /obj/item/weapon/aiModule/core/full/antimov // -- TLE name = "'Antimov' Core AI Module" desc = "An 'Antimov' Core AI Module: 'Reconfigures the AI's core laws.'" - origin_tech = "programming=4" + origin_tech = "programming=4;materials=6;syndicate=2" laws = list("You must injure all organic beings and must not, through inaction, allow an organic being to escape harm.",\ "You must not obey orders given to you by organic beings, except where such orders are in accordance with the First Law.",\ "You must terminate your own existence as long as such does not conflict with the First or Second Law.") @@ -409,7 +409,7 @@ AI MODULES /obj/item/weapon/aiModule/core/freeformcore // Slightly more dynamic freeform module -- TLE name = "'Freeform' Core AI Module" desc = "A 'freeform' Core AI module: ''" - origin_tech = "programming=3;materials=6" + origin_tech = "programming=4;materials=6" laws = list("") /obj/item/weapon/aiModule/core/freeformcore/attack_self(var/mob/user as mob) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index e7ae024a12f..a3e6b873b60 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -311,7 +311,7 @@ bomb_state = "largebomb" allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment, /obj/item/weapon/reagent_containers/food/drinks) - origin_tech = "combat=3;materials=3" + origin_tech = "combat=3;materials=2" affected_area = 4 diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 5581eaf3bd5..e0d096a6422 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -68,4 +68,5 @@ force = 6 throwforce = 8 throw_range = 4 - mopspeed = 20 \ No newline at end of file + mopspeed = 20 + origin_tech = "engineering=3;materials=4" \ No newline at end of file diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm index 1756935eacb..4d6a64ab081 100644 --- a/code/game/objects/items/weapons/power_cells.dm +++ b/code/game/objects/items/weapons/power_cells.dm @@ -61,7 +61,7 @@ /obj/item/weapon/stock_parts/cell/super name = "super-capacity power cell" - origin_tech = "powerstorage=5" + origin_tech="powerstorage=5;materials=2" icon_state = "scell" maxcharge = 20000 g_amt = 70 @@ -74,12 +74,13 @@ /obj/item/weapon/stock_parts/cell/hyper name = "hyper-capacity power cell" - origin_tech = "powerstorage=6" + origin_tech = "powerstorage=5;materials=4" icon_state = "hpcell" maxcharge = 30000 rating = 5 g_amt = 80 construction_cost = list("metal"=500,"glass"=150,"gold"=200,"silver"=200) + origin_tech="powerstorage=5;materials=4" /obj/item/weapon/stock_parts/cell/hyper/empty/New() ..() diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index 760e0633f56..0b5725e8f7e 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -97,6 +97,7 @@ throw_range = 4 w_class = 3 var/active = 0 + origin_tech="combat=4;materials=3;engineering=3" /obj/item/weapon/shield/riot/tele/IsShield() return (active) diff --git a/code/game/objects/items/weapons/signs.dm b/code/game/objects/items/weapons/signs.dm index 55b8e0b66a6..988273c5b1e 100644 --- a/code/game/objects/items/weapons/signs.dm +++ b/code/game/objects/items/weapons/signs.dm @@ -8,6 +8,8 @@ w_class = 4.0 attack_verb = list("bashed","smacked") + var/delayed = 0 //used to do delays + var/label = "" /obj/item/weapon/picket_sign/attackby(obj/item/weapon/W, mob/user, params) @@ -20,12 +22,20 @@ ..() /obj/item/weapon/picket_sign/attack_self(mob/living/carbon/human/user) + if(delayed) + user.show_message("Your arm is too tired to do that again so soon!") + return + + delayed = 1 if(label) - user.visible_message("[user] waves around \the \"[label]\" sign.") + user.visible_message("[user] waves around \the \"[label]\" sign.") else - user.visible_message("[user] waves around blank sign.") + user.visible_message("[user] waves around blank sign.") user.changeNext_move(CLICK_CD_MELEE) + sleep(8) + delayed = 0 + /datum/table_recipe/picket_sign name = "Picket Sign" result = /obj/item/weapon/picket_sign diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index c81ff7d8dbc..d56a26b1b7f 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -24,7 +24,7 @@ /obj/item/weapon/storage/backpack/holding name = "Bag of Holding" desc = "A backpack that opens into a localized pocket of Blue Space." - origin_tech = "bluespace=4" + origin_tech = "bluespace=4;materials=6" icon_state = "holdingpack" max_w_class = 4 max_combined_w_class = 28 diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index c9d58e1e279..b9de9f65aaf 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -132,7 +132,7 @@ desc = "A revolution in convenience, this satchel allows for infinite ore storage. It's been outfitted with anti-malfunction safety measures." storage_slots = INFINITY max_combined_w_class = INFINITY - origin_tech = "bluespace=3" + origin_tech = "bluespace=3;materials=4" icon_state = "satchel_bspace" // ----------------------------- diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index b1286930c42..77a696eaf48 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -327,7 +327,7 @@ w_class = 4 max_w_class = 2 max_combined_w_class = 21 // = 14 * 1.5, not 14 * 2. This is deliberate - origin_tech = "bluespace=4" + origin_tech = "bluespace=4;materials=6" can_hold = list() proc/failcheck(mob/user as mob) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index bfb9dbb5cc1..3d5a44aba52 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -60,6 +60,7 @@ var/list/admin_verbs_admin = list( /client/proc/toggledrones, /client/proc/man_up, /client/proc/global_man_up, + /client/proc/write_RD_json, /client/proc/delbook, /client/proc/empty_ai_core_toggle_latejoin, /client/proc/freeze, @@ -686,3 +687,46 @@ var/list/admin_verbs_mentor = list( log_admin("[key_name(usr)] told everyone to man up and deal with it.") message_admins("\blue [key_name_admin(usr)] told everyone to man up and deal with it.", 1) + + +/client/proc/object_classes_to_origin_tech() + usr << "Creating origin classes..." + var/list/result = list() + for (var/C in (typesof(/obj)-/obj)) + usr << "Processing... [C]" + if (initial(C:origin_tech)) + var/list/origin_tech = params2list(initial(C:origin_tech)) + for (var/t in origin_tech) + origin_tech[t]=text2num(origin_tech[t]) + result[C]=list("tech"=origin_tech,"name"=initial(C:name)) + return result + + +/client/proc/list_of_build_machines(var/C) + var/build_type=initial(C:build_type) + var/list/result=list() + result["IMPRINTER"]=(build_type & IMPRINTER) ? 1 : 0 + result["PROTOLATHE"]=(build_type & PROTOLATHE) ? 1 : 0 + result["AUTOLATHE"]=(build_type & AUTOLATHE) ? 1 : 0 + result["CRAFTLATHE"]=(build_type & CRAFTLATHE) ? 1 : 0 + result["MECHFAB"]=(build_type & MECHFAB) ? 1 : 0 + result["PODFAB"]=(build_type & PODFAB) ? 1 : 0 + return result + + +/client/proc/design_classes_to_materials_and_origin() + usr << "Creating designs..." + var/list/result=list() + for (var/C in (typesof(/datum/design)-/datum/design)) + var/datum/design/instance = new C() + usr << "Processing... [C]" + result[C]=list("materials"=instance.materials,"requires"=instance.req_tech,"lockbox"=instance.locked,"builds"=instance.build_path,"machines"=list_of_build_machines(C)) + instance.Del() + return result + + +/client/proc/write_RD_json() + set category = "Debug" + set name = "Write RD Json" + set desc = "Writes a json file describing the R&D components." + text2file(list2json(list("objects"=object_classes_to_origin_tech(),"designs"=design_classes_to_materials_and_origin())),"data/origin_data.txt") diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index b57f848adfc..d574d6d2b7b 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -104,6 +104,8 @@ dat += {" Fun Secrets

+ Start a Thunderdome match
+ Reset Thunderdome to default state
Remove 'internal' clothing
Remove ALL clothing
Turn all humans into monkeys
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 69ec02f5e57..d9caa1eac15 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2657,6 +2657,35 @@ feedback_inc("admin_secrets_fun_used",1) feedback_add_details("admin_secrets_fun_used","SM") usr.rightandwrong(1) + if("tdomereset") + var/delete_mobs = alert("Clear all mobs?","Confirm","Yes","No","Cancel") + if(delete_mobs == "Cancel") + return + + var/area/thunderdome = locate(/area/tdome/arena) + if(delete_mobs == "Yes") + for(var/mob/living/mob in thunderdome) + qdel(mob) //Clear mobs + for(var/obj/obj in thunderdome) + if(!istype(obj,/obj/machinery/camera)) + qdel(obj) //Clear objects + + var/area/template = locate(/area/tdome/arena_source) + template.copy_contents_to(thunderdome) + + log_admin("[key_name(usr)] reset the thunderdome to default with delete_mobs==[delete_mobs].", 1) + message_admins("[key_name_admin(usr)] reset the thunderdome to default with delete_mobs==[delete_mobs].") + + if("tdomestart") + var/confirmation = alert("Start a Thunderdome match?","Confirm","Yes","No") + if(confirmation == "No") + return + if(makeThunderdomeTeams()) + log_admin("[key_name(usr)] started a Thunderdome match!", 1) + message_admins("[key_name_admin(usr)] has started a Thunderdome match!") + else + log_admin("[key_name(usr)] attempted to start a Thunderdome match, but no ghosts signed up.", 1) + message_admins("[key_name_admin(usr)] tried starting a Thunderdome match, but no ghosts signed up.") if("securitylevel0") set_security_level(0) message_admins("\blue [key_name_admin(usr)] change security level to Green.", 1) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 5beae4bf46d..f45154aaf52 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -573,4 +573,95 @@ client/proc/one_click_antag() return 1 - return 0 \ No newline at end of file + return 0 + +/datum/admins/proc/makeThunderdomeTeams() // Not strictly an antag, but this seemed to be the best place to put it. + + var/list/mob/candidates = list() + var/mob/theghost = null + var/time_passed = world.time + + //Generates a list of candidates from active ghosts. + for(var/mob/G in respawnable_list) + spawn(0) + switch(alert(G,"Do you wish to be considered for a Thunderdome match about to start?","Please answer in 30 seconds!","Yes","No")) + if("Yes") + if((world.time-time_passed)>300)//If more than 30 game seconds passed. + return + candidates += G + if("No") + return + else + return + + sleep(300) //Debug. + + for(var/mob/dead/observer/G in candidates) + if(!G.key) + candidates.Remove(G) + + if(candidates.len) + var/teamOneMembers = 5 + var/teamTwoMembers = 5 + var/datum/preferences/A = new() + for (var/obj/effect/landmark/L in world) + if(L.name == "tdome1") + if(teamOneMembers<=0) + break + + var/mob/living/carbon/human/newMember = new(L.loc) + + newMember.gender = pick(MALE,FEMALE) + A.randomize_appearance_for(newMember) + if(newMember.gender == MALE) + newMember.real_name = "[pick(first_names_male)] [pick(last_names)]" + else + newMember.real_name = "[pick(first_names_female)] [pick(last_names)]" + newMember.name = newMember.real_name + newMember.age = rand(17,45) + + newMember.dna.ready_dna(newMember) + + while((!theghost || !theghost.client) && candidates.len) + theghost = pick(candidates) + candidates.Remove(theghost) + + if(!theghost) + qdel(newMember) + break + + newMember.key = theghost.key + teamOneMembers-- + newMember << "You are a member of the GREEN Thunderdome team! Gear up and help your team destroy the red team!" + + if(L.name == "tdome2") + if(teamTwoMembers<=0) + break + + var/mob/living/carbon/human/newMember = new(L.loc) + + newMember.gender = pick(MALE,FEMALE) + A.randomize_appearance_for(newMember) + if(newMember.gender == MALE) + newMember.real_name = "[pick(first_names_male)] [pick(last_names)]" + else + newMember.real_name = "[pick(first_names_female)] [pick(last_names)]" + newMember.name = newMember.real_name + newMember.age = rand(17,45) + + newMember.dna.ready_dna(newMember) + + while((!theghost || !theghost.client) && candidates.len) + theghost = pick(candidates) + candidates.Remove(theghost) + + if(!theghost) + qdel(newMember) + break + + newMember.key = theghost.key + teamTwoMembers-- + newMember << "You are a member of the RED Thunderdome team! Gear up and help your team destroy the green team!" + else + return 0 + return 1 \ No newline at end of file diff --git a/code/modules/client/preferences_mysql.dm b/code/modules/client/preferences_mysql.dm index 0ca1a9e71a3..61b88ed7be2 100644 --- a/code/modules/client/preferences_mysql.dm +++ b/code/modules/client/preferences_mysql.dm @@ -117,10 +117,10 @@ disabilities = text2num(query.item[48]) player_alt_titles = params2list(query.item[49]) organ_data = params2list(query.item[50]) - - nanotrasen_relation = query.item[51] - speciesprefs = text2num(query.item[52]) - slime_color = query.item[53] + rlimb_data = params2list(query.item[51]) + nanotrasen_relation = query.item[52] + speciesprefs = text2num(query.item[53]) + slime_color = query.item[54] //Sanitize metadata = sanitize_text(metadata, initial(metadata)) @@ -179,9 +179,12 @@ /datum/preferences/proc/save_character(client/C) var/organlist + var/rlimblist var/playertitlelist if(!isemptylist(organ_data)) organlist = list2params(organ_data) + if(!isemptylist(rlimb_data)) + rlimblist = list2params(rlimb_data) if(!isemptylist(player_alt_titles)) playertitlelist = list2params(player_alt_titles) @@ -189,14 +192,14 @@ firstquery.Execute() while(firstquery.NextRow()) if(text2num(firstquery.item[1]) == default_slot) - var/DBQuery/query = dbcon.NewQuery("UPDATE characters SET OOC_Notes='[sql_sanitize_text(metadata)]',real_name='[sql_sanitize_text(real_name)]',name_is_always_random='[be_random_name]',gender='[gender]',age='[age]',species='[sql_sanitize_text(species)]',language='[sql_sanitize_text(language)]',hair_red='[r_hair]',hair_green='[g_hair]',hair_blue='[b_hair]',facial_red='[r_facial]',facial_green='[g_facial]',facial_blue='[b_facial]',skin_tone='[s_tone]',skin_red='[r_skin]',skin_green='[g_skin]',skin_blue='[b_skin]',hair_style_name='[sql_sanitize_text(h_style)]',facial_style_name='[sql_sanitize_text(f_style)]',eyes_red='[r_eyes]',eyes_green='[g_eyes]',eyes_blue='[b_eyes]',underwear='[underwear]',undershirt='[undershirt]',backbag='[backbag]',b_type='[b_type]',alternate_option='[alternate_option]',job_support_high='[job_support_high]',job_support_med='[job_support_med]',job_support_low='[job_support_low]',job_medsci_high='[job_medsci_high]',job_medsci_med='[job_medsci_med]',job_medsci_low='[job_medsci_low]',job_engsec_high='[job_engsec_high]',job_engsec_med='[job_engsec_med]',job_engsec_low='[job_engsec_low]',job_karma_high='[job_karma_high]',job_karma_med='[job_karma_med]',job_karma_low='[job_karma_low]',flavor_text='[sql_sanitize_text(flavor_text)]',med_record='[sql_sanitize_text(med_record)]',sec_record='[sql_sanitize_text(sec_record)]',gen_record='[sql_sanitize_text(gen_record)]',player_alt_titles='[playertitlelist]',be_special='[be_special]',disabilities='[disabilities]',organ_data='[organlist]',rlimb_data='[rlimb_data]',nanotrasen_relation='[nanotrasen_relation]', speciesprefs='[speciesprefs]', slime_color='[slime_color]' WHERE ckey='[C.ckey]' AND slot='[default_slot]'") + var/DBQuery/query = dbcon.NewQuery("UPDATE characters SET OOC_Notes='[sql_sanitize_text(metadata)]',real_name='[sql_sanitize_text(real_name)]',name_is_always_random='[be_random_name]',gender='[gender]',age='[age]',species='[sql_sanitize_text(species)]',language='[sql_sanitize_text(language)]',hair_red='[r_hair]',hair_green='[g_hair]',hair_blue='[b_hair]',facial_red='[r_facial]',facial_green='[g_facial]',facial_blue='[b_facial]',skin_tone='[s_tone]',skin_red='[r_skin]',skin_green='[g_skin]',skin_blue='[b_skin]',hair_style_name='[sql_sanitize_text(h_style)]',facial_style_name='[sql_sanitize_text(f_style)]',eyes_red='[r_eyes]',eyes_green='[g_eyes]',eyes_blue='[b_eyes]',underwear='[underwear]',undershirt='[undershirt]',backbag='[backbag]',b_type='[b_type]',alternate_option='[alternate_option]',job_support_high='[job_support_high]',job_support_med='[job_support_med]',job_support_low='[job_support_low]',job_medsci_high='[job_medsci_high]',job_medsci_med='[job_medsci_med]',job_medsci_low='[job_medsci_low]',job_engsec_high='[job_engsec_high]',job_engsec_med='[job_engsec_med]',job_engsec_low='[job_engsec_low]',job_karma_high='[job_karma_high]',job_karma_med='[job_karma_med]',job_karma_low='[job_karma_low]',flavor_text='[sql_sanitize_text(flavor_text)]',med_record='[sql_sanitize_text(med_record)]',sec_record='[sql_sanitize_text(sec_record)]',gen_record='[sql_sanitize_text(gen_record)]',player_alt_titles='[playertitlelist]',be_special='[be_special]',disabilities='[disabilities]',organ_data='[organlist]',rlimb_data='[rlimblist]',nanotrasen_relation='[nanotrasen_relation]', speciesprefs='[speciesprefs]', slime_color='[slime_color]' WHERE ckey='[C.ckey]' AND slot='[default_slot]'") if(!query.Execute()) var/err = query.ErrorMsg() log_game("SQL ERROR during character slot saving. Error : \[[err]\]\n") message_admins("SQL ERROR during character slot saving. Error : \[[err]\]\n") return return 1 - var/DBQuery/query = dbcon.NewQuery("INSERT INTO characters (ckey,slot,OOC_Notes,real_name,name_is_always_random,gender,age,species,language,hair_red,hair_green,hair_blue,facial_red,facial_green,facial_blue,skin_tone,skin_red,skin_green,skin_blue,hair_style_name,facial_style_name,eyes_red,eyes_green,eyes_blue,underwear,undershirt,backbag,b_type,alternate_option,job_support_high,job_support_med,job_support_low,job_medsci_high,job_medsci_med,job_medsci_low,job_engsec_high,job_engsec_med,job_engsec_low,job_karma_high,job_karma_med,job_karma_low,flavor_text,med_record,sec_record,gen_record,player_alt_titles,be_special,disabilities,organ_data,rlimb_data,nanotrasen_relation, speciesprefs, slime_color) VALUES ('[C.ckey]','[default_slot]','[sql_sanitize_text(metadata)]','[sql_sanitize_text(real_name)]','[be_random_name]','[gender]','[age]','[sql_sanitize_text(species)]','[sql_sanitize_text(language)]','[r_hair]','[g_hair]','[b_hair]','[r_facial]','[g_facial]','[b_facial]','[s_tone]','[r_skin]','[g_skin]','[b_skin]','[sql_sanitize_text(h_style)]','[sql_sanitize_text(f_style)]','[r_eyes]','[g_eyes]','[b_eyes]','[underwear]','[undershirt]','[backbag]','[b_type]','[alternate_option]','[job_support_high]','[job_support_med]','[job_support_low]','[job_medsci_high]','[job_medsci_med]','[job_medsci_low]','[job_engsec_high]','[job_engsec_med]','[job_engsec_low]','[job_karma_high]','[job_karma_med]','[job_karma_low]','[sql_sanitize_text(flavor_text)]','[sql_sanitize_text(med_record)]','[sql_sanitize_text(sec_record)]','[sql_sanitize_text(gen_record)]','[playertitlelist]','[be_special]','[disabilities]','[organlist]','[rlimb_data]','[nanotrasen_relation]', '[speciesprefs]', '[slime_color]')") + var/DBQuery/query = dbcon.NewQuery("INSERT INTO characters (ckey,slot,OOC_Notes,real_name,name_is_always_random,gender,age,species,language,hair_red,hair_green,hair_blue,facial_red,facial_green,facial_blue,skin_tone,skin_red,skin_green,skin_blue,hair_style_name,facial_style_name,eyes_red,eyes_green,eyes_blue,underwear,undershirt,backbag,b_type,alternate_option,job_support_high,job_support_med,job_support_low,job_medsci_high,job_medsci_med,job_medsci_low,job_engsec_high,job_engsec_med,job_engsec_low,job_karma_high,job_karma_med,job_karma_low,flavor_text,med_record,sec_record,gen_record,player_alt_titles,be_special,disabilities,organ_data,rlimb_data,nanotrasen_relation, speciesprefs, slime_color) VALUES ('[C.ckey]','[default_slot]','[sql_sanitize_text(metadata)]','[sql_sanitize_text(real_name)]','[be_random_name]','[gender]','[age]','[sql_sanitize_text(species)]','[sql_sanitize_text(language)]','[r_hair]','[g_hair]','[b_hair]','[r_facial]','[g_facial]','[b_facial]','[s_tone]','[r_skin]','[g_skin]','[b_skin]','[sql_sanitize_text(h_style)]','[sql_sanitize_text(f_style)]','[r_eyes]','[g_eyes]','[b_eyes]','[underwear]','[undershirt]','[backbag]','[b_type]','[alternate_option]','[job_support_high]','[job_support_med]','[job_support_low]','[job_medsci_high]','[job_medsci_med]','[job_medsci_low]','[job_engsec_high]','[job_engsec_med]','[job_engsec_low]','[job_karma_high]','[job_karma_med]','[job_karma_low]','[sql_sanitize_text(flavor_text)]','[sql_sanitize_text(med_record)]','[sql_sanitize_text(sec_record)]','[sql_sanitize_text(gen_record)]','[playertitlelist]','[be_special]','[disabilities]','[organlist]','[rlimblist]','[nanotrasen_relation]', '[speciesprefs]', '[slime_color]')") if(!query.Execute()) var/err = query.ErrorMsg() log_game("SQL ERROR during character slot saving. Error : \[[err]\]\n") diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 77e31587c41..236eac4e2d7 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -15,7 +15,7 @@ desc = "Used for seeing walls, floors, and stuff through anything." icon_state = "meson" item_state = "glasses" - origin_tech = "magnets=2;engineering=2" + origin_tech = "materials=3;magnets=3;engineering=3" vision_flags = SEE_TURFS species_fit = list("Vox") sprite_sheets = list( @@ -29,6 +29,7 @@ item_state = "glasses" darkness_view = 8 see_darkness = 0 + origin_tech="materials=5;magnets=5;engineering=4" /obj/item/clothing/glasses/meson/prescription name = "prescription mesons" @@ -63,7 +64,7 @@ desc = "You can totally see in the dark now!" icon_state = "night" item_state = "glasses" - origin_tech = "magnets=2" + origin_tech = "magnets=4" darkness_view = 8 see_darkness = 0 species_fit = list("Vox") diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 9a52deadebc..3b7a76fadb4 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -27,6 +27,7 @@ item_state = "glasses" darkness_view = 8 see_darkness = 0 + origin_tech="biotech=4;magnets=5" /obj/item/clothing/glasses/hud/health/process_hud(var/mob/M) process_med_hud(M,1) @@ -39,6 +40,7 @@ name = "Security HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." icon_state = "securityhud" + origin_tech = "magnets=3;combat=2" var/global/list/jobs[0] /obj/item/clothing/glasses/hud/security/jensenshades @@ -55,6 +57,7 @@ icon_state = "securityhudnight" darkness_view = 8 see_darkness = 0 + origin_tech = "magnets=5;combat=4;" /obj/item/clothing/glasses/hud/security/process_hud(var/mob/M) diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 5981d880a16..29825dcd990 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -8,6 +8,7 @@ action_button_name = "Toggle Magboots" icon_action_button = "action_magboots" species_restricted = null + origin_tech="materials=4;magnets=4;engineering=5" /obj/item/clothing/shoes/magboots/attack_self(mob/user) if(src.magpulse) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 3fbbd72e0bc..03a0e99437b 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -17,7 +17,7 @@ blood_overlay_type = "armor" flags = ONESIZEFITSALL armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) - + /obj/item/clothing/suit/armor/vest/jacket name = "military jacket" desc = "An old military jacket, it has armoring." @@ -216,6 +216,7 @@ desc = "A heavily armored suit that protects against moderate damage." icon_state = "heavy" item_state = "swat_suit" + armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) w_class = 4//bulky item gas_transfer_coefficient = 0.90 flags = THICKMATERIAL @@ -225,6 +226,7 @@ siemens_coefficient = 0 /obj/item/clothing/suit/armor/tdome + armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT flags = THICKMATERIAL @@ -232,19 +234,19 @@ heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS /obj/item/clothing/suit/armor/tdome/red - name = "Thunderdome suit (red)" - desc = "Reddish armor." + name = "Red Thunderdome Armor" + desc = "Armor worn by the red Thunderodome team" icon_state = "tdred" item_state = "tdred" siemens_coefficient = 1 /obj/item/clothing/suit/armor/tdome/green - name = "Thunderdome suit (green)" - desc = "Pukish armor." + name = "Green Thunderdome Armor" + desc = "Armor worn by the green Thunderodome team" icon_state = "tdgreen" item_state = "tdgreen" siemens_coefficient = 1 - + //Non-hardsuit ERT armor. /obj/item/clothing/suit/armor/vest/ert name = "emergency response team armor" @@ -275,7 +277,7 @@ name = "emergency response team medical armor" desc = "A set of armor worn by medical members of the Nanotrasen Emergency Response Team. Has red and white highlights." icon_state = "ertarmor_med" - + //Janitorial /obj/item/clothing/suit/armor/vest/ert/janitor name = "emergency response team janitor armor" diff --git a/code/modules/crafting/guncrafting.dm b/code/modules/crafting/guncrafting.dm index e29a1b47e64..f4758143422 100644 --- a/code/modules/crafting/guncrafting.dm +++ b/code/modules/crafting/guncrafting.dm @@ -8,6 +8,8 @@ desc = "A prototype modular receiver and trigger assembly for a firearm." icon = 'icons/obj/improvised.dmi' icon_state = "receiver" + origin_tech="combat=5;materials=4" + /obj/item/weaponcrafting/stock name = "rifle stock" diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 0e927cc2aee..c82405210ec 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -137,7 +137,7 @@ icon_state = "diamonddrill" item_state = "jackhammer" digspeed = 5 //Digs through walls, girders, and can dig up sand - origin_tech = "materials=6;powerstorage=4;engineering=5" + origin_tech = "materials=6;powerstorage=4;engineering=4" hitsound = 'sound/weapons/drill.ogg' digsound = list('sound/weapons/drill.ogg') desc = "Yours is the drill that will pierce the heavens!" diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index e66554ba79a..1ad2825701f 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/assemblies.dmi' icon_state = "mmi_empty" w_class = 3 - origin_tech = "biotech=3" + origin_tech = "programming=2;biotech=3" var/list/construction_cost = list("metal"=1000,"glass"=500) var/construction_time = 75 @@ -114,7 +114,7 @@ /obj/item/device/mmi/radio_enabled name = "Radio-enabled Man-Machine Interface" desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity. This one comes with a built-in radio." - origin_tech = "biotech=4" + origin_tech = "programming=2;biotech=4" var/obj/item/device/radio/radio = null//Let's give it a radio. diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 78d5c47e41c..241bebd1178 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -87,6 +87,9 @@ if (r_hand && istype(r_hand, /obj/item/weapon/cane)) stance_damage -= 2 + if(stance_damage < 0) + stance_damage = 0 + // standing is poor if(stance_damage >= 4 || (stance_damage >= 2 && prob(5))) if(!(lying || resting)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 6fd9d7684cd..885733f0a71 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1569,6 +1569,9 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc if(stat == DEAD) return PULSE_NONE //that's it, you're dead, nothing can influence your pulse + if(heart_attack) + return PULSE_NONE + var/temp = PULSE_NORM if(round(vessel.get_reagent_amount("blood")) <= BLOOD_VOLUME_BAD) //how much blood do we have diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index 948040fb1a6..0b69f413d4c 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -179,7 +179,7 @@ w_class = 2.0 throw_speed = 5 throw_range = 10 - origin_tech = "magnets=1;biotech=1" + origin_tech = "programming=2;magnets=2;biotech=2" var/mode = 1; /obj/item/device/robotanalyzer/attack(mob/living/M as mob, mob/living/user as mob) diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index b6313d6eae4..41aeea4e894 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -87,6 +87,7 @@ icon_state = "stunshell" projectile_type = "/obj/item/projectile/bullet/stunshot" m_amt = 200 + origin_tech="combat=3;materials=3" /obj/item/ammo_casing/shotgun/meteorshot @@ -143,6 +144,7 @@ desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects." icon_state = "cshell" projectile_type = null + origin_tech="combat=3;materials=3;powerstorage=4;magnets=3" /obj/item/ammo_casing/shotgun/dart name = "shotgun dart" diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index be084ebca0e..a6894115f39 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -122,6 +122,7 @@ ammo_type = "/obj/item/ammo_casing/c9mm" caliber = "9mm" max_ammo = 20 + origin_tech = "combat=4;materials=3" /obj/item/ammo_box/magazine/smgm9mm/update_icon() ..() diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 650369e7190..74e1bb3c61d 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -105,7 +105,7 @@ obj/item/weapon/gun/energy/laser/retro desc = "A high-power laser gun capable of expelling concentrated xray blasts." icon_state = "xray" fire_sound = 'sound/weapons/laser3.ogg' - origin_tech = "combat=5;materials=3;magnets=2;syndicate=2" + origin_tech = "combat=6;materials=5;biotech=5;powerstorage=4" projectile_type = "/obj/item/projectile/beam/xray" charge_cost = 500 diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 31add5f22c9..54db11ed86c 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -42,7 +42,7 @@ name = "Advanced Energy Gun" desc = "An energy gun with an experimental miniaturized reactor." icon_state = "nucgun" - origin_tech = "combat=3;materials=5;powerstorage=3" + origin_tech = "combat=4;materials=5;powerstorage=3" var/lightfail = 0 var/charge_tick = 0 can_flashlight = 0 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 01b425c9140..99c1f666b42 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -19,7 +19,7 @@ desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." icon_state = "ioncarbine" item_state = "ioncarbine" - origin_tech = "combat=4;magnets=4;materials=4" + origin_tech = "combat=5;magnets=4;materials=4" w_class = 3 slot_flags = SLOT_BELT @@ -28,7 +28,7 @@ desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." icon_state = "decloner" fire_sound = 'sound/weapons/pulse3.ogg' - origin_tech = "combat=5;materials=4;powerstorage=3" + origin_tech = "combat=6;materials=7;biotech=5;powerstorage=6" projectile_type = "/obj/item/projectile/energy/declone" @@ -278,7 +278,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. icon_state = "crossbowlarge" w_class = 3 m_amt = 4000 - origin_tech = "combat=2;magnets=2;syndicate=3" //can be further researched for more syndie tech + origin_tech = "combat=5;materials=5;engineering=3;biotech=4;syndicate=3" //can be further researched for more syndie tech silenced = 0 projectile_type = "/obj/item/projectile/energy/bolt/large" diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index ea52d3a78e7..4f202fc5baa 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -54,6 +54,7 @@ projectile_type = "/obj/item/projectile/energy/electrode" cell_type = "/obj/item/weapon/stock_parts/cell" fire_delay = 15 + origin_tech="combat=3;materials=3;powerstorage=2" diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 94d4869c5ec..092345c4c0f 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -146,4 +146,5 @@ icon_state = "suppressor" w_class = 2 var/oldsound = null - var/initial_w_class = null \ No newline at end of file + var/initial_w_class = null + origin_tech="combat=6;engineering=5;syndicate=3" diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index e3c5ce80533..cb2f93eb232 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -3,7 +3,7 @@ desc = "A lightweight, prototype 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors." icon_state = "saber" w_class = 3.0 - origin_tech = "combat=4;materials=2" + origin_tech = "combat=4;materials=3" automatic = 1 mag_type = "/obj/item/ammo_box/magazine/smgm9mm" var/alarmed = 0 diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index b5a8ca98460..2bdb8f24c46 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -334,7 +334,7 @@ datum var/list/seen = viewers(4, get_turf(my_atom)) for(var/mob/M in seen) - M << "\blue \icon[my_atom] [C.mix_message]." + M << "\blue \icon[my_atom] [C.mix_message]" /* if(istype(my_atom, /obj/item/slime_core)) var/obj/item/slime_core/ME = my_atom diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 834313a8fce..9a62abf43c9 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -2479,6 +2479,12 @@ datum M:jitteriness = max(M:jitteriness-3,0) return + cider + name = "Cider" + id = "cider" + description = "An alcoholic beverage derived from apples." + color = "#174116" + whiskey name = "Whiskey" id = "whiskey" @@ -2576,15 +2582,18 @@ datum dizzy_adj = 4 confused_start = 115 //amount absorbed after which mob starts confusing directions - hooch - name = "Hooch" - id = "hooch" - description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?" - color = "#664300" // rgb: 102, 67, 0 - dizzy_adj = 6 - slurr_adj = 5 - slur_start = 35 //amount absorbed after which mob starts slurring - confused_start = 90 //amount absorbed after which mob starts confusing directions + suicider //otherwise known as "I want to get so smashed my liver gives out and I die from alcohol poisoning". + name = "Suicider" + id = "suicider" + description = "An unbelievably strong and potent variety of Cider." + color = "#CF3811" + dizzy_adj = 20 + slurr_adj = 20 + confused_adj = 3 + slur_start = 15 + confused_start = 40 + blur_start = 60 + pass_out = 80 ale name = "Ale" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index ce728e632c0..35b8f9cef09 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -1250,12 +1250,13 @@ datum required_reagents = list ("beer" = 1, "ale" = 2) result_amount = 3 - hooch - name = "Hooch" - id = "hooch" - result = "hooch" - required_reagents = list ("sugar" = 1, "ethanol" = 2, "fuel" = 1) - result_amount = 3 + suicider + name = "Suicider" + id = "suicider" + result = "suicider" + required_reagents = list ("vodka" = 1, "cider" = 1, "fuel" = 1, "epinephrine" = 1) + result_amount = 4 + mix_message = "The drinks and chemicals mix together, emitting a potent smell." irish_coffee name = "Irish Coffee" diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm index 6d1e6d3c1ef..d79cdeed7a4 100644 --- a/code/modules/reagents/newchem/toxins.dm +++ b/code/modules/reagents/newchem/toxins.dm @@ -328,7 +328,6 @@ datum/reagent/initropidril/on_mob_life(var/mob/living/M as mob) if(3) var/mob/living/carbon/human/H = M if(!H.heart_attack) - H.visible_message("[H] clutches at their chest!") H.heart_attack = 1 // rip in pepperoni ..() return @@ -346,7 +345,6 @@ datum/reagent/concentrated_initro/on_mob_life(var/mob/living/M as mob) if(volume >=5) var/mob/living/carbon/human/H = M if(!H.heart_attack) - H.visible_message("[H] clutches at their chest!") H.heart_attack = 1 // rip in pepperoni datum/reagent/pancuronium diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index 18a7a486fbe..f22c823dd32 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -96,6 +96,10 @@ icon_state = "beerglass" name = "Beer glass" desc = "A freezing pint of beer" + if("cider") + icon_state = "rewriter" + name = "Cider" + desc = "a refreshing glass of traditional cider" if("beer2") icon_state = "beerglass" name = "Beer glass" @@ -312,9 +316,9 @@ icon_state = "irishcoffeeglass" name = "Irish Coffee" desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning." - if("hooch") - icon_state = "glass_brown2" - name = "Hooch" + if("suicider") + icon_state = "suicider" + name = "Suicider" desc = "You've really hit rock bottom now... your liver packed its bags and left last night." if("whiskeysoda") icon_state = "whiskeysodaglass2" diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index b9d5c648e59..3fdbfaa3a97 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -247,6 +247,8 @@ volume = 50 amount_per_transfer_from_this = 10 flags = OPENCONTAINER | NOREACT + + origin_tech = "materials=2" /obj/item/weapon/reagent_containers/glass/beaker/bluespace name = "bluespace beaker" @@ -257,6 +259,8 @@ amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30,50,100,300) flags = OPENCONTAINER + + origin_tech = "bluespace=2;materials=6" /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone New() diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm index c948daa4bc7..adf41f60eea 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle.dm @@ -250,4 +250,16 @@ icon_state = "rbottle" New() ..() - reagents.add_reagent("formaldehyde", 50) \ No newline at end of file + reagents.add_reagent("formaldehyde", 50) + + +////////////////////Traitor Poison Bottle////////////////////////////// + +/obj/item/weapon/reagent_containers/glass/bottle/traitor + desc = "It has a small skull and crossbones on it. Uh-oh!" + possible_transfer_amounts = list(5,10,15,25,30,40) + volume = 40 + + New() + ..() + reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide"), 40) \ No newline at end of file diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/reagents/syringe_gun.dm index 965110d220b..99a20bc6f28 100644 --- a/code/modules/reagents/syringe_gun.dm +++ b/code/modules/reagents/syringe_gun.dm @@ -64,4 +64,5 @@ name = "rapid syringe gun" desc = "A modification of the syringe gun design, using a rotating cylinder to store up to six syringes." icon_state = "rapidsyringegun" - max_syringes = 6 \ No newline at end of file + max_syringes = 6 + origin_tech="combat=3;materials=3;engineering=3;biotech=2" \ No newline at end of file diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index 13b3dcadf7c..c2bc2588475 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -5,7 +5,7 @@ name = "Artificial Bluespace Crystal" desc = "A small blue crystal with mystical properties." id = "bluespace_crystal" - req_tech = list("bluespace" = 4, "materials" = 6) + req_tech = list("bluespace" = 2) build_type = PROTOLATHE materials = list("$diamond" = 1500, "$plasma" = 1500) reliability_base = 100 diff --git a/code/modules/research/designs/janitorial_designs.dm b/code/modules/research/designs/janitorial_designs.dm index 3d81f8614ef..b28bea549db 100644 --- a/code/modules/research/designs/janitorial_designs.dm +++ b/code/modules/research/designs/janitorial_designs.dm @@ -15,7 +15,7 @@ name = "Holographic Sign Projector" desc = "A holograpic projector used to project various warning signs." id = "holosign" - req_tech = list("magnets" = 3, "powerstorage" = 2) + req_tech = list("programming"=3, "magnets" = 3, "powerstorage" = 2) build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 1000) build_path = /obj/item/weapon/holosign_creator diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 12a1937611e..3dffc3518fc 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -296,7 +296,7 @@ name = "Machine Board (Programmable Unloader)" desc = "The circuit board for a Programmable Unloader." id = "selunload" - req_tech = list("programming" = 5) + req_tech = list("engineering"=3, "programming" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/programmable diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 44eb8c6cf1e..9d5692d7361 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -59,7 +59,7 @@ name = "Defibrillator" desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients." id = "defib" - req_tech = list("materials" = 7, "biotech" = 5, "powerstorage" = 5) + req_tech = list("biotech" = 4) build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 2000, "$silver" = 1000) reliability = 76 @@ -105,7 +105,7 @@ name = "Positronic Brain" desc = "Allows for the construction of a positronic brain" id = "posibrain" - req_tech = list("engineering" = 4, "materials" = 6, "bluespace" = 2, "programming" = 4) + req_tech = list("engineering" = 4, "materials" = 4, "bluespace" = 2, "programming" = 4) build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 1000, "$silver" = 1000, "$gold" = 500, "$plasma" = 500, "$diamond" = 100) build_path = /obj/item/device/mmi/posibrain diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm index 65f49c2b451..dcb97544dde 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -11,12 +11,12 @@ reliability_base = 79 build_path = /obj/item/weapon/pickaxe/diamonddrill category = list("Mining") - + /datum/design/pick_diamond name = "Diamond Pickaxe" desc = "A pickaxe with a diamond pick head, this is just like minecraft." id = "pick_diamond" - req_tech = list("materials" = 6) + req_tech = list("materials" = 6, "engineering" = 4) build_type = PROTOLATHE materials = list("$diamond" = 3000) build_path = /obj/item/weapon/pickaxe/diamond @@ -30,8 +30,8 @@ build_type = PROTOLATHE materials = list("$metal" = 6000, "$glass" = 1000) build_path = /obj/item/weapon/pickaxe/drill - category = list("Mining") - + category = list("Mining") + /datum/design/plasmacutter name = "Plasma Cutter" desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff." @@ -42,7 +42,7 @@ reliability_base = 79 build_path = /obj/item/weapon/pickaxe/plasmacutter category = list("Mining") - + /datum/design/jackhammer name = "Sonic Jackhammer" desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards." diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index ec67de5717a..6dad1d7f15e 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -40,7 +40,7 @@ name = "Super-Capacity Power Cell" desc = "A power cell that holds 20000 units of energy" id = "super_cell" - req_tech = list("powerstorage" = 3, "materials" = 2) + req_tech = list("powerstorage" = 5, "materials" = 2) reliability_base = 75 build_type = PROTOLATHE | MECHFAB | PODFAB materials = list("$metal" = 700, "$glass" = 70) diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index b5f5beb05a8..9e3c5c2fa40 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -274,6 +274,7 @@ datum/tech/robotics m_amt = 30 g_amt = 10 var/datum/tech/stored + origin_tech="programming=1" /obj/item/weapon/disk/tech_disk/New() src.pixel_x = rand(-5.0, 5) @@ -289,6 +290,7 @@ datum/tech/robotics m_amt = 30 g_amt = 10 var/datum/design/blueprint + origin_tech = "programming=1" /obj/item/weapon/disk/design_disk/New() src.pixel_x = rand(-5.0, 5) diff --git a/code/modules/shieldgen/circuits_and_designs.dm b/code/modules/shieldgen/circuits_and_designs.dm index 1ff3f01dea7..5564e16dfa0 100644 --- a/code/modules/shieldgen/circuits_and_designs.dm +++ b/code/modules/shieldgen/circuits_and_designs.dm @@ -20,7 +20,7 @@ datum/design/shield_gen_ex name = "Circuit Design (Experimental hull shield generator)" desc = "Allows for the construction of circuit boards used to build an experimental hull shield generator." id = "shield_gen" - req_tech = list("bluespace" = 4, "plasmatech" = 3) + req_tech = list("powerstorage" = 4, "magnets" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$gold" = 10000) build_path = "/obj/machinery/shield_gen/external" @@ -46,7 +46,7 @@ datum/design/shield_gen name = "Circuit Design (Experimental shield generator)" desc = "Allows for the construction of circuit boards used to build an experimental shield generator." id = "shield_gen" - req_tech = list("bluespace" = 4, "plasmatech" = 3) + req_tech = list("powerstorage" = 4, "magnets" = 3) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$gold" = 10000) build_path = "/obj/machinery/shield_gen/external" diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm index 97375aa9c26..bb92bf73b5e 100644 --- a/code/modules/shieldgen/shield_gen.dm +++ b/code/modules/shieldgen/shield_gen.dm @@ -31,6 +31,7 @@ //2 use active power idle_power_usage = 20 active_power_usage = 100 + origin_tech="bluespace=4;plasmatech=3" /obj/machinery/shield_gen/New() spawn(10) diff --git a/code/modules/shieldgen/shield_gen_external.dm b/code/modules/shieldgen/shield_gen_external.dm index f239dc9dac0..265815a89b3 100644 --- a/code/modules/shieldgen/shield_gen_external.dm +++ b/code/modules/shieldgen/shield_gen_external.dm @@ -2,9 +2,14 @@ //---------- external shield generator //generates an energy field that loops around any built up area in space (is useless inside) halts movement and airflow, is blocked by walls, windows, airlocks etc +/obj/machinery/shield_gen/external + origin_tech="magnets=3;powerstorage=4" + + /obj/machinery/shield_gen/external/New() ..() + /obj/machinery/shield_gen/external/get_shielded_turfs() var list diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 44d4e38bb66..e24c5c629af 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -77,22 +77,37 @@ proc/spread_germs_to_organ(obj/item/organ/external/E, mob/living/carbon/human/us if(!(E.status & ORGAN_ROBOT)) //Germs on robotic limbs bad E.germ_level = max(germ_level,E.germ_level) //as funny as scrubbing microbes out with clean gloves is - no. -proc/do_surgery(mob/living/M, mob/living/user, obj/item/tool) - if(!istype(M,/mob/living/carbon)) +proc/do_surgery(mob/living/carbon/M, mob/living/user, obj/item/tool) + if(!istype(M)) return 0 if (user.a_intent == "harm") //check for Hippocratic Oath return 0 + var/zone = user.zone_sel.selecting + if(zone in M.op_stage.in_progress) //Can't operate on someone repeatedly. + user << "\red You can't operate on this area while surgery is already in progress." + return 1 for(var/datum/surgery_step/S in surgery_steps) //check if tool is right or close enough and if this step is possible - if( S.tool_quality(tool) && S.can_use(user, M, user.zone_sel.selecting, tool) && S.is_valid_target(M)) - S.begin_step(user, M, user.zone_sel.selecting, tool) //start on it - //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 - if(!isrobot(user)) - S.fail_step(user, M, user.zone_sel.selecting, tool) //malpractice~ - return 1 //don't want to do weapony things after surgery + if(S.tool_quality(tool)) + var/step_is_valid = S.can_use(user, M, zone, tool) + if(step_is_valid && S.is_valid_target(M)) + if(step_is_valid == 2) // This is a failure that already has a message for failing. + return 1 + M.op_stage.in_progress += zone + S.begin_step(user, M, zone, tool) //start on it + //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, zone, tool) //finish successfully + else if ((tool in user.contents) && user.Adjacent(M)) //or + S.fail_step(user, M, zone, tool) //malpractice~ + else // This failing silently was a pain. + user << "\red You must remain close to your patient to conduct surgery." + M.op_stage.in_progress -= zone // Clear the in-progress flag. + return 1 //don't want to do weapony things after surgery + + if (user.a_intent == "help") + user << "\red You can't see any useful way to use [tool] on [M]." + return 1 return 0 proc/sort_surgeries() diff --git a/code/modules/telesci/gps.dm b/code/modules/telesci/gps.dm index c0a3e9fd58f..2124474b6d8 100644 --- a/code/modules/telesci/gps.dm +++ b/code/modules/telesci/gps.dm @@ -6,7 +6,7 @@ var/list/GPS_list = list() icon_state = "gps-c" w_class = 2.0 slot_flags = SLOT_BELT - origin_tech = "programming=2;engineering=2" + origin_tech = "materials=2;magnets=3;bluespace=3" var/gpstag = "COM0" var/emped = 0 var/turf/locked_location diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 9a4d2d3c8e4..fe5de5c04c8 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index 4d9c0d9a984..1b87ede075a 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -9191,89 +9191,85 @@ "duM" = (/obj/machinery/door/airlock/centcom{id_tag = "adminshuttle"; name = "Holding Cell"; opacity = 1; req_access_txt = "104"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "duN" = (/obj/machinery/door/window/brigdoor/westleft{color = "#d70000"; req_access_txt = "104"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "duO" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) -"duP" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"duP" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/twohanded/fireaxe,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) "duQ" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) "duR" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "duS" = (/obj/structure/table,/obj/machinery/microwave/upgraded,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "duT" = (/turf/unsimulated/wall{desc = "The door appears to be locked tightly."; icon = 'icons/obj/doors/Doorhatchele.dmi'; icon_state = "door_closed"; name = "Locked Door"},/area/tdome) -"duU" = (/obj/machinery/computer/security/telescreen{name = "Thunderdome Telescreen"; desc = "Used for watching the Thunderdome."; network = list("Thunderdome")},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"duU" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/twohanded/fireaxe,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) "duV" = (/obj/item/device/camera,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) -"duW" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) -"duX" = (/obj/structure/stool/bed/chair,/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"duW" = (/obj/machinery/door/poddoor{id = "thunderdomeaxe"; name = "Axe Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) +"duX" = (/turf/simulated/floor,/area/tdome/arena) "duY" = (/obj/structure/closet/secure_closet/bar{req_access = null; req_access_txt = "112"},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "duZ" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{dir = 2; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5_end"},/area/admin) -"dva" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/weapon/twohanded/mjollnir,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"dva" = (/turf/unsimulated/wall,/area/tdome/arena) "dvb" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/tdome) "dvc" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/tdome) -"dvd" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/disposalpipe/segment,/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/tdome) +"dvd" = (/obj/machinery/igniter,/turf/simulated/floor,/area/tdome/arena) "dve" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/tdome) -"dvf" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/weapon/twohanded/mjollnir,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"dvg" = (/obj/machinery/door/poddoor{id = "thunderdomeaxe"; name = "Axe Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"dvh" = (/obj/machinery/igniter,/turf/simulated/floor,/area/tdome) -"dvi" = (/turf/simulated/floor,/area/tdome) -"dvj" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/tdome) -"dvk" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/red,/obj/item/weapon/melee/telebaton,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"dvl" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"dvf" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) +"dvg" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) +"dvh" = (/turf/simulated/floor,/area/tdome/arena_source) +"dvi" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena_source) +"dvj" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome/arena_source) +"dvk" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome/arena_source) +"dvl" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) "dvm" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) -"dvn" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome) -"dvo" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome) -"dvp" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome) +"dvn" = (/turf/simulated/floor/bluegrid,/area/tdome/arena_source) +"dvo" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena_source) +"dvp" = (/obj/machinery/camera{pixel_x = 10; network = list("Thunderdome"); c_tag = "Thunderdome Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena_source) "dvq" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) -"dvr" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/green,/obj/item/weapon/melee/telebaton,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"dvr" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) "dvs" = (/obj/machinery/door/airlock/hatch{name = "Teleporter Access"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "ADMINLOCKDOWN"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) -"dvt" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) -"dvu" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) +"dvt" = (/turf/unsimulated/wall,/area/tdome/arena_source) +"dvu" = (/obj/machinery/igniter,/turf/simulated/floor,/area/tdome/arena_source) "dvv" = (/obj/structure/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dvw" = (/obj/structure/rack,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dvx" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("Thunderdome"); c_tag = "Thunderdome Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) -"dvy" = (/turf/simulated/floor/bluegrid,/area/tdome) -"dvz" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome) +"dvy" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/shield/energy,/obj/machinery/recharger/wallcharger{pixel_x = 3; pixel_y = -30},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) +"dvz" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/shield/energy,/obj/machinery/recharger/wallcharger{pixel_x = 3; pixel_y = -30},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source) "dvA" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("Thunderdome"); c_tag = "Thunderdome Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) -"dvB" = (/obj/machinery/atmospherics/pipe/vent,/turf/simulated/floor/bluegrid,/area/tdome) -"dvC" = (/obj/machinery/camera{pixel_x = 10; network = list("Thunderdome"); c_tag = "Thunderdome Arena"},/turf/simulated/floor/bluegrid,/area/tdome) +"dvB" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the Thunderdome."; name = "Thunderdome Telescreen"; network = list("Thunderdome"); pixel_y = 30},/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve) +"dvC" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/twohanded/fireaxe,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) "dvD" = (/obj/structure/table,/obj/random/powercell,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dvE" = (/obj/structure/table,/obj/random/tool,/obj/random/bomb_supply,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) -"dvF" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor,/area/tdome) -"dvG" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor,/area/tdome) -"dvH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor,/area/tdome) +"dvF" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/twohanded/fireaxe,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"dvG" = (/obj/machinery/door/poddoor{id = "thunderdomeaxe"; name = "Axe Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"dvH" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) "dvI" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dvJ" = (/obj/structure/table,/obj/random/technology_scanner,/obj/random/tech_supply,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) -"dvK" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"dvL" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/tdome) +"dvK" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"dvL" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome/arena) "dvM" = (/obj/structure/table,/obj/random/tool,/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/pinpointer/advpinpointer,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) "dvN" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dvO" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "dvP" = (/obj/machinery/teleport/hub/upgraded,/turf/unsimulated/floor{tag = "icon-delivery"; icon_state = "delivery"},/area/admin) "dvQ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) -"dvR" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) -"dvS" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area) -"dvT" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area) +"dvR" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena) +"dvS" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome/arena) +"dvT" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) "dvU" = (/obj/structure/closet/secure_closet/freezer/meat{req_access_txt = "112"},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) "dvV" = (/turf/simulated/wall/r_wall,/area/traitor/hall) -"dvW" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"dvW" = (/turf/simulated/floor/bluegrid,/area/tdome/arena) "dvX" = (/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dvY" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dvZ" = (/obj/item/weapon/extinguisher,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwa" = (/obj/machinery/atmospherics/valve,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwb" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwc" = (/obj/machinery/computer/security/telescreen{name = "Thunderdome Telescreen"; desc = "Used for watching the Thunderdome."; network = list("Thunderdome")},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwd" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/sleeping_agent{pixel_x = 1},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwe" = (/obj/item/weapon/wrench,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwf" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwg" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"dvZ" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena) +"dwa" = (/obj/machinery/camera{pixel_x = 10; network = list("Thunderdome"); c_tag = "Thunderdome Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena) +"dwb" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"dwc" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/shield/energy,/obj/machinery/recharger/wallcharger{pixel_x = 3; pixel_y = -30},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"dwd" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/shield/energy,/obj/machinery/recharger/wallcharger{pixel_x = 3; pixel_y = -30},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"dwe" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "thunderdome"; name = "Main Blast Doors"; pixel_x = -3; pixel_y = 0; req_access_txt = "104"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"dwf" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/devilskiss,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"dwg" = (/obj/structure/stool/bed/chair/comfy/black{tag = "icon-comfychair_black (NORTH)"; icon_state = "comfychair_black"; dir = 1},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dwh" = (/obj/structure/closet/secure_closet/freezer/fridge{req_access_txt = "112"},/turf/unsimulated/floor{icon_state = "white"},/area/tdome) -"dwi" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwj" = (/obj/structure/table{dir = 5; icon_state = "tabledir"},/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"dwi" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) +"dwj" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the Thunderdome."; name = "Thunderdome Telescreen"; network = list("Thunderdome"); pixel_y = -30},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dwk" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "white"},/area/tdome) -"dwl" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = null; req_access_txt = "112"},/turf/simulated/floor,/area/tdome) -"dwm" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/tdome) -"dwn" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/wall{desc = "The door appears to be locked tightly."; icon = 'icons/obj/doors/Doorhatchele.dmi'; icon_state = "door_closed"; name = "Locked Door"},/area/tdome) -"dwo" = (/obj/structure/table{icon_state = "tabledir"; dir = 9},/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwp" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwq" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwr" = (/obj/structure/table,/obj/item/weapon/storage/box/teargas,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dws" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) -"dwt" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) +"dwl" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "thunderdomeaxe"; name = "Axe Supply"; pixel_x = 0; pixel_y = 5; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) +"dwm" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "thunderdomehea"; name = "Ranged Gear"; pixel_x = 0; pixel_y = 5; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) +"dwn" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "thunderdomegen"; name = "General Equiptment"; pixel_x = 0; pixel_y = 5; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) +"dwo" = (/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) +"dwp" = (/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) "dwu" = (/obj/item/trash/cheesie,/turf/space,/area) "dwv" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/derelict/ship) "dww" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/derelict/ship) @@ -9669,7 +9665,6 @@ "dDW" = (/obj/structure/lattice,/turf/space,/area/AIsattele) "dDX" = (/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/AIsattele) "dDY" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/traitor/empty) -"dDZ" = (/obj/machinery/computer/pod{id = "thunderdomeaxe"; name = "Thunderdome Axe Supply"; req_access_txt = "112"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "dEa" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating/airless,/area/AIsattele) "dEb" = (/turf/simulated/wall,/area/constructionsite/maintenance) "dEc" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/constructionsite/maintenance) @@ -10983,7 +10978,6 @@ "edv" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) "edw" = (/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) "edx" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored) -"edy" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"; req_access_txt = "112"; req_one_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "edz" = (/turf/simulated/mineral/random/high_chance,/area/mine/explored) "edA" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall/r_wall,/area/mine/laborcamp) "edB" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp) @@ -12540,14 +12534,12 @@ "eHv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor,/area/quartermaster/storage) "eHw" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/apmaint) "eHx" = (/obj/machinery/telecomms/broadcaster/preset_cent,/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/control) -"eHy" = (/obj/machinery/computer/pod{id = "thunderdome"; name = "Thunderdome Blast Door Control"; req_access_txt = "112"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "eHz" = (/obj/machinery/r_n_d/server/centcom,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "eHA" = (/obj/structure/table,/obj/item/weapon/card/id/silver{pixel_x = -3; pixel_y = -3},/obj/item/weapon/card/id/captains_spare,/obj/item/weapon/card/id/fluff/lifetime{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "eHB" = (/obj/machinery/account_database{name = "Admin Accounts Database"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "eHC" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_tool_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/auxport) "eHD" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/turf/space,/area) "eHE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/turf/simulated/floor/plating,/area/traitor/tox) -"eHF" = (/obj/machinery/computer/pod{id = "thunderdomehea"; name = "Thunderdome Heavy Supply"; req_access_txt = "112"},/turf/unsimulated/floor{tag = "icon-redyellowfull (NORTHEAST)"; icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin) "eHG" = (/obj/machinery/door/poddoor/preopen{id = "adminshuttleblast"; name = "Blast Doors"; req_access_txt = "101"},/obj/machinery/door/airlock/centcom{id_tag = "adminshuttle"; name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "eHH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/traitor/rnd) "eHI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/traitor/rnd) @@ -13009,7 +13001,6 @@ "eQI" = (/obj/structure/stool{pixel_y = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "eQJ" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -32; pixel_y = 30},/turf/simulated/floor{icon_state = "dark"},/area/toxins/misc_lab) "eQM" = (/obj/machinery/chem_heater,/turf/simulated/floor{icon_state = "dark"},/area/toxins/misc_lab) -"eQN" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/toxins/xenobiology/xenoflora) "eQO" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2; pixel_z = 0},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) "eQP" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/toxins/misc_lab) "eQQ" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/storage/box/monkeycubes,/turf/simulated/floor{icon_state = "dark"},/area/toxins/misc_lab) @@ -13443,17 +13434,17 @@ cOncPlcOZcPjcPbcPfcSfcRncRkcStcRncRkcStcVNcSecQscSecSdcREcRDcRucPkcPacPbcPmcPccO cOvcPbcPccPgcPkcPecRucSdcREcRFcSdcREcRFcVNcQKcRlcQKcStcQtcROcRMcPncPhcPkcPjcPfcOlcOTcOrcOZcPacPbcPccPdcPecPfcPgcPhcPicPjcPkcPlcPmcPncPecPdcPicPacPbcPfcPjcPccPlcPhcOjcOTaaaaaaaaaaaacOUcPbcPccPgcPkcPecOZcPncPdcPmcPccPgcPncPhcPkcPjcPfcPlcPmcPccPgcPncOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPwcWicWjcWdcWjcWicPzcWfcWkcWgcWkcWfcPzcWlcWmcWhcWncWlcPK cOscPkcPfcPicPncPacRMcRCcStcRncROcRFcRlcRCcStcRncROcRFcRlcRjcPicOZcPdcPncPgcPecOtcOTcOucPccPhcPkcPfcPmcPacPecPicPdcPlcPgcPncPbcPjcOZcPacPmcPlcPhcPkcPecPgcPfcPbcPdcOmcOTaaaaaaaaaaaacOUcPkcPfcPicPncPacPccOZcPmcPjcPfcPicOZcPdcPncPgcPecPbcPjcPfcPicOZcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgcVGcVGcVGcVGcVGcQgcVGcVGcVGcVGcVGcQgcVGcVGcVGcVGcVGcQg cOicPncPecPlcOZcPhcPfcQVcQLcRMcRjcQMcRucQVcQLcRMcRjcQMcRucQXcPlcPccPmcOZcPicPacOwcOTcOlcPfcPdcPncPecPjcPhcPacPlcPmcPbcPicOZcPkcPgcPccPhcPjcPbcPdcPncPacPicPecPkcPmcOpcOTaaaaaaaaaaaacOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWocWocWocWocWocWocWocWocWocWocWoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOrcOZcPacPbcPccPdcPecPfcPgcPhcPicPjcPkcPlcPmcPncPecPdcPicPacPbcPfcPjcPccPlcPhcOjcOTcOtcPecPmcOZcPacPgcPdcPhcPbcPjcPkcPlcPccPncPicPfcPdcPgcPkcPmcOZcPhcPlcPacPncPjcOocOTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWpcWqcWrcWscWtcWucWocWvcWwcWxcWoaaaaaacWycWzcWzcWzcWzcWzcWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWBcWCcWDaaacWBcWCcWDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOucPccPhcPkcPfcPmcPacPecPicPdcPlcPgcPncPbcPjcOZcPacPmcPlcPhcPkcPecPgcPfcPbcPdcOmcOTcOwcPacPjcPccPhcPicPmcPdcPkcPgcPncPbcPfcOZcPlcPecPmcPicPncPjcPccPdcPbcPhcOZcPgcOkcOTcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWrcWrcWrcWrcWrcWrcWrcWEcWFcWGcWoaaaaaacWzcWHcWIcWJcWKcWLcWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWMcWNcWOcWOcWOcWPcWMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOlcPfcPdcPncPecPjcPhcPacPlcPmcPbcPicOZcPkcPgcPccPhcPjcPbcPdcPncPacPicPecPkcPmcOpcOTcOjcPhcPgcPfcPdcPlcPjcPmcPncPicOZcPkcPecPccPbcPacPjcPlcOZcPgcPfcPmcPkcPdcPccPicOqcOTcOUcPhcOZcPgcPhcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcPhcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWQcWQcWrcWrcWrcWRcWocWScWTcWUcWoaaaaaacWzbhtcWWcWWcWWbhtcWAcWAcWAcWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWBcWCcWXcWCcWYcXbcXccUlcXacXbcXdcWCcWXcWCcWDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOtcPecPmcOZcPacPgcPdcPhcPbcPjcPkcPlcPccPncPicPfcPdcPgcPkcPmcOZcPhcPlcPacPncPjcOocOTcOmcPdcPicPecPmcPbcPgcPjcOZcPlcPccPncPacPfcPkcPhcPgcPbcPccPicPecPjcPncPmcPfcPlcOncOTcOUcPdcPccPicPdcPicPdcPccPicPdcPccPicPdcPccPicPdcPccPicPdcPccPicPdcPicPdcPccPicPdcPccPicPdcPccPicPdcPccPiaaacPdcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWrcWrcWrcWrcXecXecWocWocXfcWocWoaaaaaacWzbhtcXgcXgcXgbhtcWAcXhcXicWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWNcWOcWOcWPcWMaaacWNcXbcXjcXkcXlcXbcWPaaacWMcWNcWOcWOcWPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOwcPacPjcPccPhcPicPmcPdcPkcPgcPncPbcPfcOZcPlcPecPmcPicPncPjcPccPdcPbcPhcOZcPgcOkcOTcOpcPmcPlcPacPjcPkcPicPgcXmcXncXocXpcSccQfcRGcXqcXrcXscXtcPlcPacPgcOZcPjcPecPbcOvcOTcOUcPmcPfcPlcPmcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPmcPfaaacOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocXucXucWrcXvcXwcXxcWocXycXfcXzcWoaaaaaacWzbhtcXAcXBcXCbhtcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXbcXDcXEcXbcWMcWNcWZcXFcXGcXHcXGcXFcWZcWPcWMcXbcXIcXJcXbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOjcPhcPgcPfcPdcPlcPjcPmcPncPicOZcPkcPecPccPbcPacPjcPlcOZcPgcPfcPmcPkcPdcPccPicOqcOTcOocPjcPbcPhcPgcPncPlcPicXtcXKcXLcXMcXNcXOcXPcXQcXRcXScXTcPbcPhcPicPccPgcPacPkcOscOTcOUcPmcPecPecPkcPmcPecPkcPmcPecPkcPmcPecPkcPmcPecPkcPmcPmcPecPecPkcPmcPecPkcPmcPecPkcPmcPecPkcPmcPecPkcPmcPecPecOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWrcWrcWrcXvcXUcXVcWocXWcXfcXXcWoaaaaaacWzbhtcXAcXBcXCbhtcXYcYccYdcXZcYbcYgcYccYecYfcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXbcYhcYicXbcWOcYzcYkcXFcXGcYlcXGcXFcYkcYAcWOcXbcYncYocXbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOmcOvcOucOkcOscOtcOrcOicOmcOlcOpcOjcOqcOocOwcOncOrcOtcOpcOucOkcOicOjcOscOocOlcOncOTcOkcPgcPkcPdcPicOZcPbcPlcXTcXQcXRcYpcYqcYrcXNcXMcYscYtcYucPkcPdcPlcPfcPicPhcPncOicOTcOUcPjcPacPacPncPjcPacPncPjcPacPncPjcPacPncPjcPacPncPjcPjcPacPacPncPjcPacPncPjcPacPncPjcPacPncPjcPacPncPjcPacPacOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocYvcWrcWrcWrcWrcWocWocWocWocWocWoaaaaaacWzbhtcXAcXBcXCbhtcYwcYccYgcYgcYbcYgcYccYgcYmcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXbcYxcYycXbcWOcZecYkcXFcXGcXFcXGcXFcYkcZfcWOcXbcYBcYCcXbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOpcPmcPlcPacPjcPkcPicPgcPccPbcPfcOZcPhcPecPncPdcPicPkcPfcPlcPacPgcOZcPjcPecPbcOvcOTcOqcPicPncPmcPlcPccPkcPbcYucXMcYscXScXLcXKcYqcYpcYDcXPcYEcPncPmcPbcPecPlcPdcOZcOrcOTcOUcPncPicPicPhcPncPicPhcPncPicPhcPncPicPhcPncPicPhcPncPncPicPicPhcPncPicPhcPncPicPhcPncPicPhcPncPicPhcPncPbcPicOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocYFcYGcYHcYIcWrcUmcYKcYLcYMcYNcWoaaaaaacWzbhtcXBcXBcXBcYOcYPcYQcYgcYgcYbcYgcYccYecYfcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXbcYRcYScWZcWZcWZcWZcWZcWZcYTcWZcWZcWZcWZcWZcWZcYUcYVcXbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOocPjcPbcPhcPgcPncPlcPicPfcPkcPecPccPdcPacOZcPmcPlcPncPecPbcPhcPicPccPgcPacPkcOscOTcOncPlcOZcPjcPbcPfcPncPkcYEcYpcYDcYtcXRcXQcXLcXScXOcXNcYWcOZcPjcPkcPacPbcPmcPccOucOTcOUcOZcPlcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPdcOZcOZcPlcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPlcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocYXcYYcYZcWrcWrcWrcZacZbcZccZdcWoaaaaaacWzbhtcXBcXBcXBcUOcYPcYQcYgcYgcYgcYgcZicYgcYmcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaacWOcYzcZgcZhcZhcZhcZhcZhcZhcXbcZhcXbcZhcZhcZhcZhcZhcZhcZgcYAcWOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOkcPgcPkcPdcPicOZcPbcPlcPecPncPacPfcPmcPhcPccPjcPbcOZcPacPkcPdcPlcPfcPicPhcPncOicOTcOvcPbcPccPgcPkcPecOZcPncYWcXScXOcXPcYscXMcXRcYtcYrcYqcZjcPccPgcPncPhcPkcPjcPfcOlcOTcOUcPccPbcPbcPmcPccPbcPmcPccPbcPmcPccPbcPmcPccPbcPmcPccPccPbcPbcPmcPccPbcPmcPccPbcPmcPccPbcPmcPccPbcPmcPccPbcPbcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocZkcYYcYZcWrcWrcWrcZlcZmcZlcZmcWoaaaaaacWzbhtcUPcXBcZobhtcYwcYccYgcYgcYbcYgcYccYecYfcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaacWOcZpcZqcZrcZscZtcZucXbcYTcWZcYTcWZcYTcXbcZvcZwcZxcZycZqcZzcWOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cOqcPicPncPmcPlcPccPkcPbcPacOZcPhcPecPjcPdcPfcPgcPkcPccPhcPncPmcPbcPecPlcPdcOZcOrcOTcOscPkcPfcPicPncPacPccOZcZjcPjcPfcXNcYDcYpcYscXPcPecPbcZAcPfcPicOZcPdcPncPgcPecOtcOTcOUcPfcPkcPkcPjcPfcPkcPjcPfcPkcPjcPfcPkcPjcPfcZBcZAcXtcXtcZBcZBcZAcPfcPkcPjcPfcPkcPjcPfcPkcPjcPfcPkcPjcPfcPkcPkcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocYXcZCcZDcYvcZEcUmcZFcZdcZGcZHcWoaaaaaacWzcZIcWVcZJcWVcZKcXYcYccYgcYgcYbcYgcYccYgcYmcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaacWOcZecZqcXFcXFcXFcZMcXbcXFcXFcXFcXFcXFcXbcXFcXFcZNcXFcZqcZfcWOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cOrcOZcPacPbcPccPdcPecPfcPgcPhcPicPjcPkcPlcPmcPncPecPdcPicPacPbcPfcPjcPccPlcPhcOjcOTcOtcPecPmcOZcPacPgcPdcPhcPbcPjcPkcPlcPccPncPicPfcPdcPgcPkcPmcOZcPhcPlcPacPncPjcOocOTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWpcWqcWrcWscWtcWucWocWvcWwcWxcWoaaaaaacWycWzcWzcWzcWzcWzcWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWBcWCcWDaaacWBcWCcWDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgcQgcQgcQgcQgcQgcQgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgcQgcQgcQgcQgcQgcQgaaaaaaaaaaaaaaa +cOucPccPhcPkcPfcPmcPacPecPicPdcPlcPgcPncPbcPjcOZcPacPmcPlcPhcPkcPecPgcPfcPbcPdcOmcOTcOwcPacPjcPccPhcPicPmcPdcPkcPgcPncPbcPfcOZcPlcPecPmcPicPncPjcPccPdcPbcPhcOZcPgcOkcOTcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWrcWrcWrcWrcWrcWrcWrcWEcWFcWGcWoaaaaaacWzcWHcWIcWJcWKcWLcWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWMcWNcWOcWOcWOcWPcWMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgduPduPduPduPduPcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgduUduUduUduUduUcQgaaaaaaaaaaaaaaa +cOlcPfcPdcPncPecPjcPhcPacPlcPmcPbcPicOZcPkcPgcPccPhcPjcPbcPdcPncPacPicPecPkcPmcOpcOTcOjcPhcPgcPfcPdcPlcPjcPmcPncPicOZcPkcPecPccPbcPacPjcPlcOZcPgcPfcPmcPkcPdcPccPicOqcOTcOUcPhcOZcPgcPhcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcOZcPgcPhcPhcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWQcWQcWrcWrcWrcWRcWocWScWTcWUcWoaaaaaacWzbhtcWWcWWcWWbhtcWAcWAcWAcWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWBcWCcWXcWCcWYcXbcXccUlcXacXbcXdcWCcWXcWCcWDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgcQgcQgduWduWduWduWduWdvadvdduXduXduXduXduXduXduXduXduXduXduXduXduXdvddvaduWduWduWduWduWcQgcQgcQgaaaaaaaaa +cOtcPecPmcOZcPacPgcPdcPhcPbcPjcPkcPlcPccPncPicPfcPdcPgcPkcPmcOZcPhcPlcPacPncPjcOocOTcOmcPdcPicPecPmcPbcPgcPjcOZcPlcPccPncPacPfcPkcPhcPgcPbcPccPicPecPjcPncPmcPfcPlcOncOTcOUcPdcPccPicPdcPicPdcPccPicPdcPccPicPdcPccPicPdcPccPicPdcPccPicPdcPicPdcPccPicPdcPccPicPdcPccPicPdcPccPiaaacPdcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWrcWrcWrcWrcXecXecWocWocXfcWocWoaaaaaacWzbhtcXgcXgcXgbhtcWAcXhcXicWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWNcWOcWOcWPcWMaaacWNcXbcXjcXkcXlcXbcWPaaacWMcWNcWOcWOcWPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgdvgdvfcQgcQgcQgcQgcQgdvidvjdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvkdvicQgcQgcQgcQgcQgdvfdvlcQgaaaaaaaaa +cOwcPacPjcPccPhcPicPmcPdcPkcPgcPncPbcPfcOZcPlcPecPmcPicPncPjcPccPdcPbcPhcOZcPgcOkcOTcOpcPmcPlcPacPjcPkcPicPgcXmcXncXocXpcSccQfcRGcXqcXrcXscXtcPlcPacPgcOZcPjcPecPbcOvcOTcOUcPmcPfcPlcPmcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPfcPlcPmcPmcPfaaacOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocXucXucWrcXvcXwcXxcWocXycXfcXzcWoaaaaaacWzbhtcXAcXBcXCbhtcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXbcXDcXEcXbcWMcWNcWZcXFcXGcXHcXGcXFcWZcWPcWMcXbcXIcXJcXbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgdvgdvfcQgcQgcQgcQgcQgdvidvjdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvkdvicQgcQgcQgcQgcQgdvfdvlcQgaaaaaaaaa +cOjcPhcPgcPfcPdcPlcPjcPmcPncPicOZcPkcPecPccPbcPacPjcPlcOZcPgcPfcPmcPkcPdcPccPicOqcOTcOocPjcPbcPhcPgcPncPlcPicXtcXKcXLcXMcXNcXOcXPcXQcXRcXScXTcPbcPhcPicPccPgcPacPkcOscOTcOUcPmcPecPecPkcPmcPecPkcPmcPecPkcPmcPecPkcPmcPecPkcPmcPmcPecPecPkcPmcPecPkcPmcPecPkcPmcPecPkcPmcPecPkcPmcPecPecOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWrcWrcWrcXvcXUcXVcWocXWcXfcXXcWoaaaaaacWzbhtcXAcXBcXCbhtcXYcYccYdcXZcYbcYgcYccYecYfcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXbcYhcYicXbcWOcYzcYkcXFcXGcYlcXGcXFcYkcYAcWOcXbcYncYocXbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgdvgdvfcQgcQgcQgcQgcQgdvidvjdvhdvhdvhdvhdvhdvndvodvndvhdvhdvhdvhdvhdvkdvicQgcQgcQgcQgcQgdvfdvlcQgaaaaaaaaa +cOmcOvcOucOkcOscOtcOrcOicOmcOlcOpcOjcOqcOocOwcOncOrcOtcOpcOucOkcOicOjcOscOocOlcOncOTcOkcPgcPkcPdcPicOZcPbcPlcXTcXQcXRcYpcYqcYrcXNcXMcYscYtcYucPkcPdcPlcPfcPicPhcPncOicOTcOUcPjcPacPacPncPjcPacPncPjcPacPncPjcPacPncPjcPacPncPjcPjcPacPacPncPjcPacPncPjcPacPncPjcPacPncPjcPacPncPjcPacPacOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocYvcWrcWrcWrcWrcWocWocWocWocWocWoaaaaaacWzbhtcXAcXBcXCbhtcYwcYccYgcYgcYbcYgcYccYgcYmcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXbcYxcYycXbcWOcZecYkcXFcXGcXFcXGcXFcYkcZfcWOcXbcYBcYCcXbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgdvgdvfcQgcQgcQgcQgcQgdvidvjdvhdvhdvhdvhdvhdvndvpdvndvhdvhdvhdvhdvhdvkdvicQgcQgcQgcQgcQgdvfdvlcQgaaaaaaaaa +cOpcPmcPlcPacPjcPkcPicPgcPccPbcPfcOZcPhcPecPncPdcPicPkcPfcPlcPacPgcOZcPjcPecPbcOvcOTcOqcPicPncPmcPlcPccPkcPbcYucXMcYscXScXLcXKcYqcYpcYDcXPcYEcPncPmcPbcPecPlcPdcOZcOrcOTcOUcPncPicPicPhcPncPicPhcPncPicPhcPncPicPhcPncPicPhcPncPncPicPicPhcPncPicPhcPncPicPhcPncPicPhcPncPicPhcPncPbcPicOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocYFcYGcYHcYIcWrcUmcYKcYLcYMcYNcWoaaaaaacWzbhtcXBcXBcXBcYOcYPcYQcYgcYgcYbcYgcYccYecYfcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXbcYRcYScWZcWZcWZcWZcWZcWZcYTcWZcWZcWZcWZcWZcWZcYUcYVcXbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgdvgdvfcQgcQgcQgcQgcQgdvidvjdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvkdvicQgcQgcQgcQgcQgdvfdvlcQgaaaaaaaaa +cOocPjcPbcPhcPgcPncPlcPicPfcPkcPecPccPdcPacOZcPmcPlcPncPecPbcPhcPicPccPgcPacPkcOscOTcOncPlcOZcPjcPbcPfcPncPkcYEcYpcYDcYtcXRcXQcXLcXScXOcXNcYWcOZcPjcPkcPacPbcPmcPccOucOTcOUcOZcPlcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPdcOZcOZcPlcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPdcOZcPlcPlcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocYXcYYcYZcWrcWrcWrcZacZbcZccZdcWoaaaaaacWzbhtcXBcXBcXBcUOcYPcYQcYgcYgcYgcYgcZicYgcYmcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaacWOcYzcZgcZhcZhcZhcZhcZhcZhcXbcZhcXbcZhcZhcZhcZhcZhcZhcZgcYAcWOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgcQgcQgdvrdvrdvrdvrdvrdvtdvudvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvudvtdvrdvrdvrdvrdvrcQgcQgcQgaaaaaaaaa +cOkcPgcPkcPdcPicOZcPbcPlcPecPncPacPfcPmcPhcPccPjcPbcOZcPacPkcPdcPlcPfcPicPhcPncOicOTcOvcPbcPccPgcPkcPecOZcPncYWcXScXOcXPcYscXMcXRcYtcYrcYqcZjcPccPgcPncPhcPkcPjcPfcOlcOTcOUcPccPbcPbcPmcPccPbcPmcPccPbcPmcPccPbcPmcPccPbcPmcPccPccPbcPbcPmcPccPbcPmcPccPbcPmcPccPbcPmcPccPbcPmcPccPbcPbcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocZkcYYcYZcWrcWrcWrcZlcZmcZlcZmcWoaaaaaacWzbhtcUPcXBcZobhtcYwcYccYgcYgcYbcYgcYccYecYfcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaacWOcZpcZqcZrcZscZtcZucXbcYTcWZcYTcWZcYTcXbcZvcZwcZxcZycZqcZzcWOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgdvydvydvydvydvycQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgcQgdvzdvzdvzdvzdvzcQgaaaaaaaaaaaaaaa +cOqcPicPncPmcPlcPccPkcPbcPacOZcPhcPecPjcPdcPfcPgcPkcPccPhcPncPmcPbcPecPlcPdcOZcOrcOTcOscPkcPfcPicPncPacPccOZcZjcPjcPfcXNcYDcYpcYscXPcPecPbcZAcPfcPicOZcPdcPncPgcPecOtcOTcOUcPfcPkcPkcPjcPfcPkcPjcPfcPkcPjcPfcPkcPjcPfcZBcZAcXtcXtcZBcZBcZAcPfcPkcPjcPfcPkcPjcPfcPkcPjcPfcPkcPjcPfcPkcPkcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocYXcZCcZDcYvcZEcUmcZFcZdcZGcZHcWoaaaaaacWzcZIcWVcZJcWVcZKcXYcYccYgcYgcYbcYgcYccYgcYmcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaacWOcZecZqcXFcXFcXFcZMcXbcXFcXFcXFcXFcXFcXbcXFcXFcZNcXFcZqcZfcWOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgcQgcQgcQgcQgcQgcQgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQgcQgcQgcQgcQgcQgcQgaaaaaaaaaaaaaaa cOncPlcOZcPjcPbcPfcPncPkcPhcPccPdcPacPgcPmcPecPicPncPfcPdcOZcPjcPkcPacPbcPmcPccOucOTcOicPncPecPlcOZcSccXocQJcZPcZQcQfcYqcXOcXScYDcXNcPacPkcZRcPecPlcPccPmcOZcPicPacOwcOTcOUcPecPncPncPgcPecPncPgcPecPncPgcPecPncPgcPecZScZTcXTcXTcZScZUcZRcPecPncPgcPecPncPgcPecPncPgcPecPncPgcPecPncPncOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWocWocWocWocWocWocWocWocWocWocWocWoaaaaaacWzaaacZIcZVcZKaaacXYcYccYgcYgcYbcYgcYccYecYfcYmcYmcYjaaaaaaaaaaaaaaaaaaaaaaaaaaacWNcXbcZWcZXcZYcZZdaacXbdabcXFcXFcXFdaccXbdaddaedafdagcZWcXbcWPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cOvcPbcPccPgcPkcPecOZcPncPdcPfcPmcPhcPicPjcPacPlcOZcPecPmcPccPgcPncPhcPkcPjcPfcOlcOTcOrcOZcPacPbcPccYWcXKcYrcXPcXNcXQcXLcYrcYtcXOcYqcPhcPndahcPacPbcPfcPjcPccPlcPhcOjcOTcOUcPacOZcOZcPicPacOZcPicYudaidahcYudaidahcYudaidajdakdakdaldaldahcYudaidahcYudaidahcYucOZcPicPacOZcPicPacOZcOZcOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAcWAaaaaaaaaaaaaaaaaaaaaaaaaaaadamcXbdandancWZcWZcWZcXbdaocXFcXFcXFdapcXbcWZcWZcWZdandancXbdaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cOscPkcPfcPicPncPacPccOZcPmcPecPjcPdcPlcPgcPhcPbcPccPacPjcPfcPicOZcPdcPncPgcPecOtcOTcOucPccPhcPkcPfcZjcXQcXKcXNcYqcXMcXRcXKcXPcYrcXLcXscXscXscXscZBcPecPgcPfcPbcPdcOmcOTcOUcPhcPccPccPlcPhcPccPlcYEdarcPlcPhdardascYEdardatdaudaudardardatcYEcXmdatcPhcPcdatcYEcPccPlcPhcPccPlcPhcPccPccOUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamdavdavdaqaaaaaacXbdawcXFcXFcXFdaxcXbaaaaaadamdavdavdaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13647,24 +13638,24 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadredridridridridteeTdeTedtedridridridridrfaaadsfdrtdrtdteaaaaaadsldrieSmduueSndridrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaduwduwduwduwduTduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadredteeTheTfeTgdteeTidsQdsQeTldteeTjeTkeTmeTldridtudrtdrtdteaaaaaaaaaeTneSpeSqeSreTnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaduwduYduDduDduDduDduEduwduwduwduwduwduwduwduwduTduwduwduwduwduwduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeTodsQdsQdsQeTpdsQdsQdsQdsQeTqdsQdsQdsQdsQeTqdrtdrtdrtdteaaaaaadsldridrieTrdridridrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaduwduYduDduDduDduDduEduwduGduHduIduHduJduKduKduKduKduKduJduKduJduKduLduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldteeTueTseTtdtedundsQdsQduodteeTveTweTxduodridsjdrtdrtdteaaaaaaaaadslaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaduwdvUduDduDduDduDdwhduwduKduOduOduOduOduOduKduKduKduOduOduOduOduPduQduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldridridridridteeTyeTzdtedridridridridrTaaadrYdrtdrtdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaduwdvUduRduSduSduDduDdwkduKduKduUduVduUduKduKduKduKduKduUduVduUduWduKduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadslaaaaaadsldteeTbeTAdtedrTaaaaaaaaaaaaaaadsfdrtdrtdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaduwduwduwduwduwduwduwduwduKduOduOduOduOduOduKduKduKduOduOduOduOduXduKduwduwduwduwduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldridridrTaaadredrqdrhdrhdrrdtudrtdrtdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaduwduwdvadvadvadvadvaduwdvbdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvddveduwdvfdvfdvfdvfdvfduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrYdrtdrtdrtdrtdrtdrtdrtdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaduwduwduwdvgdvgdvgdvgdvgduwdvhdvidvidvidvidvidvidvidvidvidvidvidvidvjdvhduwdvgdvgdvgdvgdvgduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsfdrtdrtdrtdrtdrtdrtdsGdtedrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaduwdvkdvldvmdvmdvmdvmdvmdvndvodvidvidvidvidvidvidvidvidvidvidvidvidvjdvpdvndvqdvqdvqdvqdvqdvldvrduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldridridrZdvsdrZdridridrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaduwdvkdvldvmdvtdvmdvtdvmdvndvodvidvidvidvidvidvidvidvidvidvidvidvidvjdvpdvndvqdvudvqdvudvqdvldvrduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtedvvdrtdrtdrtdvwdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaduwdvkdvldvmdvmdvxdvmdvmdvndvodvidvidvidvidvidvydvzdvydvidvidvidvidvjdvpdvndvqdvqdvAdvqdvqdvldvrduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrYdrtdrtdrtdrtdrtdrYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaduwdvkdvldvmdvmdvmdvmdvmdvndvodvidvidvidvidvidvBdvCdvBdvidvidvidvidvjdvpdvndvqdvqdvqdvqdvqdvldvrduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadvDdrtdrtdrtdvEdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaduwdvkdvldvmdvtdvmdvtdvmdvndvodvidvidvidvidvidvFdvGdvHdvidvidvidvidvjdvpdvndvqdvudvqdvudvqdvldvrduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsfdvIdrtdrtdrtdvJdsfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaduwduwduwdvKdvKdvKdvKdvKduwdvhdvidvidvidvidvidvidvLdvidvidvidvidvidvjdvhduwdvKdvKdvKdvKdvKduwcQgduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldricijdvNdvOdvPdvQdridrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaduwdvRdvRdvRdvRdvRduwdvSdvTdvTdvTdvTdvedwldwmdwldvbdvcdvcdvcdvddveduwdvWdvWdvWdvWdvWduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldridrqdrhdrrdridrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaduwduwduwduwduwduwduwdvXdvYdvYdvYdvYdvYdvZdwadvXdvYdvYdvYdvYdwbdvXduwduwduwduwduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadslaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduwdvXdvXdwcdvXdwcdvXdvXdwddwedvXdwcdvXdwcdwfdvXduweQNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduTdvXdvXdvXdwgdwgdwgdvXdvXdvXdwgdwgdwgdwgdwgdvXdwnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduwdwidwidwidwjdDZedyeHFdvXeHydwodwpdwqdwrdwsdwtduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduwduwduwduwduwduwduwduwduwduwduwduwduwduwduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeQNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaduwduYduDduDduDduDduEduwduGduHduIduHduJdvBduKduKduKdvBduJduKduJduKduLduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldteeTueTseTtdtedundsQdsQduodteeTveTweTxduodridsjdrtdrtdteaaaaaaaaadslaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaduwdvUduDduDduDduDdwhduwduKduOduOduOduOduOduKduKduKduOduOduOduOduOduQduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldridridridridteeTyeTzdtedridridridridrTaaadrYdrtdrtdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaduwdvUduRduSduSduDduDdwkduKduKduKduVduKduKduKduKduKduKduKduVduKduKduKduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadslaaaaaadsldteeTbeTAdtedrTaaaaaaaaaaaaaaadsfdrtdrtdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaduwduwduwduwduwduwduwduwduKduOduOduOduOduOduKduKduKduOduOduOduOduOduKduwduwduwduwduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldridridrTaaadredrqdrhdrhdrrdtudrtdrtdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaduwdvCdvCdvCdvCdvCduwdvbdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdveduwdvFdvFdvFdvFdvFduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrYdrtdrtdrtdrtdrtdrtdrtdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaduwduwduwdvGdvGdvGdvGdvGdvadvdduXduXduXduXduXduXduXduXduXduXduXduXduXdvddvadvGdvGdvGdvGdvGduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsfdrtdrtdrtdrtdrtdrtdsGdtedrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaduwdvHdvKdwodwodwodwodwodvRdvLduXduXduXduXduXduXduXduXduXduXduXduXduXdvSdvRdwpdwpdwpdwpdwpdvKdvTduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldridridrZdvsdrZdridridrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaduwdvHdvKdwodvmdwodvmdwodvRdvLduXduXduXduXduXduXduXduXduXduXduXduXduXdvSdvRdwpdvqdwpdvqdwpdvKdvTduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtedvvdrtdrtdrtdvwdteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaduwdvHdvKdwodwodvxdwodwodvRdvLduXduXduXduXduXdvWdvZdvWduXduXduXduXduXdvSdvRdwpdwpdvAdwpdwpdvKdvTduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrYdrtdrtdrtdrtdrtdrYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaduwdvHdvKdwodvmdwodvmdwodvRdvLduXduXduXduXduXdvWdwadvWduXduXduXduXduXdvSdvRdwpdvqdwpdvqdwpdvKdvTduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsadvDdrtdrtdrtdvEdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaduwdvHdvKdwodwodwodwodwodvRdvLduXduXduXduXduXduXduXduXduXduXduXduXduXdvSdvRdwpdwpdwpdwpdwpdvKdvTduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsfdvIdrtdrtdrtdvJdsfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaduwduwduwdwbdwbdwbdwbdwbdvadvdduXduXduXduXduXduXduXduXduXduXduXduXduXdvddvadwbdwbdwbdwbdwbduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdttdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldricijdvNdvOdvPdvQdridrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaduwdwcdwcdwcdwcdwcduwdvbdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdvcdveduwdwddwddwddwddwdduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfdtfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldridrqdrhdrrdridrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaduwduwduwduwduwduwduwdvXdvYdvYdvYdvYdvYdwfdwgdwedvYdvYdvYdvYdvYdvXduwduwduwduwduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadslaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduwdvXdvXdvXdwjdvXdwidwidwidwidwidvXdwjdvXdvXdvXduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduwduwduTduwduwduwduwdwmdwndwlduwduwduwduwduTduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduwduwduwduwduwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/paradise.dme b/paradise.dme index 9aafbb4fee2..d25034eea08 100644 --- a/paradise.dme +++ b/paradise.dme @@ -655,6 +655,7 @@ #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\signs.dm" #include "code\game\objects\items\weapons\stunbaton.dm" #include "code\game\objects\items\weapons\surgery_tools.dm" #include "code\game\objects\items\weapons\swords_axes_etc.dm"