diff --git a/.travis.yml b/.travis.yml index 6aa9d70e7b7..8bd7d2795ba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,9 +3,9 @@ language: c sudo: false env: - BYOND_MAJOR="508" - BYOND_MINOR="1293" - MACRO_COUNT=1050 + BYOND_MAJOR="509" + BYOND_MINOR="1318" + MACRO_COUNT=1048 cache: directories: @@ -40,5 +40,8 @@ script: - python tools/TagMatcher/tag-matcher.py ../.. - python tools/GenerateChangelog/ss13_genchangelog.py html/changelog.html html/changelogs - source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup - - DreamMaker baystation12.dme - + - cp config/example/* config/ + - scripts/dm.sh -DUNIT_TEST baystation12.dme + - DreamDaemon baystation12.dmb -invisible -trusted -core 2>&1 | tee log.txt + - grep "All Unit Tests Passed" log.txt + - (! grep "runtime error:" log.txt) diff --git a/baystation12.dme b/baystation12.dme index d170ed4f89e..cda15ea108a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1470,6 +1470,7 @@ #include "code\modules\modular_computers\hardware\nano_printer.dm" #include "code\modules\modular_computers\hardware\network_card.dm" #include "code\modules\modular_computers\hardware\portable_hard_drive.dm" +#include "code\modules\modular_computers\hardware\processor_unit.dm" #include "code\modules\modular_computers\hardware\tesla_link.dm" #include "code\modules\modular_computers\NTNet\NTNet.dm" #include "code\modules\modular_computers\NTNet\NTNet_relay.dm" @@ -1866,6 +1867,9 @@ #include "code\modules\wireless\interfaces.dm" #include "code\modules\xgm\xgm_gas_data.dm" #include "code\modules\xgm\xgm_gas_mixture.dm" +#include "code\unit_tests\mob_tests.dm" +#include "code\unit_tests\unit_test.dm" +#include "code\unit_tests\zas_tests.dm" #include "code\ZAS\_docs.dm" #include "code\ZAS\Airflow.dm" #include "code\ZAS\Atom.dm" diff --git a/code/__defines/unit_testing.dm b/code/__defines/unit_testing.dm new file mode 100644 index 00000000000..88eebd5aec1 --- /dev/null +++ b/code/__defines/unit_testing.dm @@ -0,0 +1,10 @@ +/* + * + * This file is used by Travis to indicate that Unit Tests are to be ran. + * Do not add anything but the UNIT_TEST definition here as it will be overwritten by Travis when running tests. + * + * + * Should you wish to edit set UNIT_TEST to 1 like so: + * #define UNIT_TEST 1 + */ +#define UNIT_TEST 0 diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index f14d70c8385..294599d8023 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -85,6 +85,10 @@ /proc/log_misc(text) diary << "\[[time_stamp()]]MISC: [text][log_end]" +/proc/log_unit_test(text) + world.log << "## UNIT_TEST ##: [text]" + + //pretty print a direction bitflag, can be useful for debugging. /proc/print_dir(var/dir) var/list/comps = list() diff --git a/code/game/antagonist/outsider/actors.dm b/code/game/antagonist/outsider/actors.dm index 013d7348fb4..7d5deb39e76 100644 --- a/code/game/antagonist/outsider/actors.dm +++ b/code/game/antagonist/outsider/actors.dm @@ -48,6 +48,9 @@ var/datum/antagonist/actor/actor if(!MayRespawn(1)) return + var/choice = alert("Are you sure you'd like to join as an actor?", "Confirmation","Yes", "No") + if(choice != "Yes") + return if(istype(usr,/mob/dead/observer) || istype(usr,/mob/new_player)) if(actor.current_antagonists.len >= actor.hard_cap) diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 2f6ab796446..cf7b1bbd94a 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -53,7 +53,11 @@ if(COMPANY_OPPOSED) loyalty = 0.70 //give them an account in the station database - var/money_amount = (rand(5,50) + rand(5, 50)) * loyalty * economic_modifier * (H.species ? economic_species_modifier[H.species.type] : 2) + var/species_modifier = (H.species ? economic_species_modifier[H.species.type] : 2) + if(!species_modifier) + species_modifier = economic_species_modifier[/datum/species/human] + + var/money_amount = (rand(5,50) + rand(5, 50)) * loyalty * economic_modifier * species_modifier var/datum/money_account/M = create_account(H.real_name, money_amount, null) if(H.mind) var/remembered_info = "" diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 80b33cfaa05..09712f7f7c5 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -36,6 +36,9 @@ icon_state = "red" canister_color = "red" can_label = 0 + +/obj/machinery/portable_atmospherics/canister/nitrogen/prechilled + name = "Canister: \[N2 (Cooling)\]" /obj/machinery/portable_atmospherics/canister/oxygen name = "Canister: \[O2\]" @@ -380,8 +383,6 @@ update_flag /obj/machinery/portable_atmospherics/canister/oxygen/prechilled/New() ..() - - src.air_contents.adjust_gas("oxygen", MolesForPressure()) src.air_contents.temperature = 80 src.update_icon() return 1 @@ -407,13 +408,17 @@ update_flag return 1 /obj/machinery/portable_atmospherics/canister/nitrogen/New() - ..() - src.air_contents.adjust_gas("nitrogen", MolesForPressure()) src.update_icon() return 1 +/obj/machinery/portable_atmospherics/canister/nitrogen/prechilled/New() + ..() + src.air_contents.temperature = 80 + src.update_icon() + return 1 + /obj/machinery/portable_atmospherics/canister/carbon_dioxide/New() ..() src.air_contents.adjust_gas("carbon_dioxide", MolesForPressure()) diff --git a/code/game/machinery/computer/arcade_orion.dm b/code/game/machinery/computer/arcade_orion.dm index 32fe89966fb..b713e69fb2d 100644 --- a/code/game/machinery/computer/arcade_orion.dm +++ b/code/game/machinery/computer/arcade_orion.dm @@ -85,6 +85,8 @@ view = ORION_VIEW_MAIN /obj/machinery/computer/arcade/orion_trail/attack_hand(mob/user) + if(..()) + return var/dat = "" if(event == null) newgame() diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm index 4c44bcd4eeb..0ae1d2ceea1 100644 --- a/code/game/machinery/robot_fabricator.dm +++ b/code/game/machinery/robot_fabricator.dm @@ -71,47 +71,47 @@ Please wait until completion...
if (!src.operating) var/part_type = text2num(href_list["make"]) - var/build_type = "" + var/build_type = null var/build_time = 200 var/build_cost = 25000 switch (part_type) if (1) - build_type = "/obj/item/robot_parts/l_arm" + build_type = /obj/item/robot_parts/l_arm build_time = 200 build_cost = 25000 if (2) - build_type = "/obj/item/robot_parts/r_arm" + build_type = /obj/item/robot_parts/r_arm build_time = 200 build_cost = 25000 if (3) - build_type = "/obj/item/robot_parts/l_leg" + build_type = /obj/item/robot_parts/l_leg build_time = 200 build_cost = 25000 if (4) - build_type = "/obj/item/robot_parts/r_leg" + build_type = /obj/item/robot_parts/r_leg build_time = 200 build_cost = 25000 if (5) - build_type = "/obj/item/robot_parts/chest" + build_type = /obj/item/robot_parts/chest build_time = 350 build_cost = 50000 if (6) - build_type = "/obj/item/robot_parts/head" + build_type = /obj/item/robot_parts/head build_time = 350 build_cost = 50000 if (7) - build_type = "/obj/item/robot_parts/robot_suit" + build_type = /obj/item/robot_parts/robot_suit build_time = 600 build_cost = 75000 - var/building = text2path(build_type) + var/building = build_type if (!isnull(building)) if (src.metal_amount >= build_cost) src.operating = 1 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index ccd660e5b6e..35ad6db8677 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -10,6 +10,7 @@ var/burn_point = null var/burning = null var/hitsound = null + var/storage_cost = null var/slot_flags = 0 //This is used to determine on which slots an item can fit. var/no_attack_log = 0 //If it's an item we don't want to log attack_logs with, set this to 1 pass_flags = PASSTABLE @@ -339,7 +340,7 @@ var/list/global/slot_flags_enumeration = list( var/allow = 0 if(H.back && istype(H.back, /obj/item/weapon/storage/backpack)) var/obj/item/weapon/storage/backpack/B = H.back - if(B.contents.len < B.storage_slots && w_class <= B.max_w_class) + if(B.can_be_inserted(src,1)) allow = 1 if(!allow) return 0 @@ -614,6 +615,6 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. usr.visible_message("[zoomdevicename ? "[usr] looks up from the [src.name]" : "[usr] lowers the [src.name]"].") return - + /obj/item/proc/pwr_drain() - return 0 // Process Kill + return 0 // Process Kill diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index a2707fd01f0..019bc2dece1 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -64,7 +64,7 @@ return if(XRAY in M.mutations) user << "\The [M] pupils give an eerie glow!" - if(vision.is_bruised()) + if(vision.damage) user << "There's visible damage to [M]'s [vision.name]!" else if(M.eye_blurry) user << "\The [M]'s pupils react slower than normally." @@ -79,7 +79,7 @@ user << "\The [M]'s pupils narrow slightly, but are still very dilated." else user << "\The [M]'s pupils narrow." - + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) //can be used offensively flick("flash", M.flash) else diff --git a/code/game/objects/items/weapons/policetape.dm b/code/game/objects/items/weapons/policetape.dm index f204a971feb..98e5c172c33 100644 --- a/code/game/objects/items/weapons/policetape.dm +++ b/code/game/objects/items/weapons/policetape.dm @@ -22,6 +22,19 @@ var/list/tape_roll_applications = list() var/tape_dir = 0 var/icon_base = "tape" +/obj/item/tape/update_icon() + //Possible directional bitflags: 0 (AIRLOCK), 1 (NORTH), 2 (SOUTH), 4 (EAST), 8 (WEST), 3 (VERTICAL), 12 (HORIZONTAL) + switch (tape_dir) + if(0) // AIRLOCK + icon_state = "[icon_base]_door_[crumpled]" + if(3) // VERTICAL + icon_state = "[icon_base]_v_[crumpled]" + if(12) // HORIZONTAL + icon_state = "[icon_base]_h_[crumpled]" + else // END POINT (1|2|4|8) + icon_state = "[icon_base]_dir_[crumpled]" + dir = tape_dir + /obj/item/tape/New() ..() if(!hazard_overlays) @@ -93,19 +106,26 @@ var/list/tape_roll_applications = list() /obj/item/taperoll/update_icon() overlays.Cut() + var/image/overlay = image(icon = src.icon) + overlay.appearance_flags = RESET_COLOR if(ismob(loc)) if(!start) - overlays += "start" + overlay.icon_state = "start" else - overlays += "stop" + overlay.icon_state = "stop" + overlays += overlay /obj/item/taperoll/dropped(mob/user) - ..() update_icon() + return ..() /obj/item/taperoll/pickup(mob/user) - ..() update_icon() + return ..() + +/obj/item/taperoll/attack_hand() + update_icon() + return ..() /obj/item/taperoll/attack_self(mob/user as mob) if(!start) @@ -142,13 +162,13 @@ var/list/tape_roll_applications = list() for(var/dir in list(NORTH, SOUTH)) if (possible_dirs & dir) TP.tape_dir += dir - TP.icon_state = "[TP.icon_base]_[TP.tape_dir]" + TP.update_icon() if(possible_dirs & (EAST|WEST)) var/obj/item/tape/TP = new tape_type(start) for(var/dir in list(EAST, WEST)) if (possible_dirs & dir) TP.tape_dir += dir - TP.icon_state = "[TP.icon_base]_[TP.tape_dir]" + TP.update_icon() start = null update_icon() usr << "You finish placing \the [src]." @@ -207,8 +227,8 @@ var/list/tape_roll_applications = list() break if(!tapetest) var/obj/item/tape/T = new tape_type(cur) - T.icon_state = "[T.icon_base]_[tape_dir]" T.tape_dir = tape_dir + T.update_icon() if(tape_dir & SOUTH) T.layer += 0.1 // Must always show above other tapes if(cur == end) @@ -227,7 +247,7 @@ var/list/tape_roll_applications = list() var/turf/T = get_turf(A) var/obj/item/tape/P = new tape_type(T.x,T.y,T.z) P.loc = locate(T.x,T.y,T.z) - P.icon_state = "[src.icon_base]_door" + P.update_icon() P.layer = 3.2 user << "You finish placing \the [src]." @@ -251,7 +271,7 @@ var/list/tape_roll_applications = list() /obj/item/tape/proc/crumple() if(!crumpled) crumpled = 1 - icon_state = "[icon_state]_c" + update_icon() name = "crumpled [name]" /obj/item/tape/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index d3c26d453c7..29a62117f35 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -22,8 +22,8 @@ ) w_class = 4 slot_flags = SLOT_BACK - max_w_class = 3 - max_storage_space = 28 + max_w_class = 4 + max_storage_space = 16 /obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W as obj, mob/user as mob) if (src.use_sound) @@ -53,6 +53,7 @@ icon_state = "holdingpack" max_w_class = 4 max_storage_space = 56 + storage_cost = 29 New() ..() @@ -77,7 +78,6 @@ icon_state = "giftbag0" item_state = "giftbag" w_class = 4.0 - storage_slots = 20 max_w_class = 3 max_storage_space = 400 // can store a ton of shit! item_state_slots = null diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 33fa1d6d7ea..476bf1a67eb 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -34,7 +34,6 @@ w_class = 4 max_w_class = 2 - storage_slots = 21 can_hold = list() // any cant_hold = list(/obj/item/weapon/disk/nuclear) @@ -61,7 +60,6 @@ w_class = 4 max_w_class = 2 - storage_slots = 21 can_hold = list() // any cant_hold = list(/obj/item/weapon/disk/nuclear) @@ -76,8 +74,7 @@ icon_state = "satchel" slot_flags = SLOT_BELT | SLOT_POCKET w_class = 3 - storage_slots = 50 - max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class + max_storage_space = 100 max_w_class = 3 can_hold = list(/obj/item/weapon/ore) @@ -90,8 +87,7 @@ name = "plant bag" icon = 'icons/obj/hydroponics_machines.dmi' icon_state = "plantbag" - storage_slots = 50; //the number of plant pieces it can carry. - max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class + max_storage_space = 100 max_w_class = 3 w_class = 2 can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown) @@ -111,6 +107,7 @@ var/capacity = 300; //the number of sheets it can carry. w_class = 3 + storage_slots = 7 allow_quick_empty = 1 // this function is superceded New() @@ -193,7 +190,7 @@ var/col_count = min(7,storage_slots) -1 if (adjusted_contents > 7) row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - src.standard_orient_objs(row_num, col_count, numbered_contents) + src.slot_orient_objs(row_num, col_count, numbered_contents) return @@ -248,8 +245,7 @@ icon = 'icons/obj/storage.dmi' icon_state = "cashbag" desc = "A bag for carrying lots of cash. It's got a big dollar sign printed on the front." - storage_slots = 50; //the number of cash pieces it can carry. - max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * cash.w_class + max_storage_space = 100 max_w_class = 3 w_class = 2 can_hold = list(/obj/item/weapon/coin,/obj/item/weapon/spacecash) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index d9bf95dd72a..20771cdb069 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -4,6 +4,8 @@ icon = 'icons/obj/clothing/belts.dmi' icon_state = "utilitybelt" item_state = "utility" + storage_slots = 7 + max_w_class = 3 slot_flags = SLOT_BELT attack_verb = list("whipped", "lashed", "disciplined") sprite_sheets = list("Resomi" = 'icons/mob/species/resomi/belt.dmi') @@ -112,7 +114,6 @@ desc = "Can hold security gear like handcuffs and flashes." icon_state = "securitybelt" item_state = "security" - storage_slots = 7 max_w_class = 3 max_storage_space = 28 can_hold = list( diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 1372270bb91..843784345cb 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -478,7 +478,6 @@ desc = "Drymate brand monkey cubes. Just add water!" icon = 'icons/obj/food.dmi' icon_state = "monkeycubebox" - storage_slots = 7 can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube) New() ..() @@ -592,11 +591,10 @@ desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children." icon = 'icons/obj/toy.dmi' icon_state = "spbox" - storage_slots = 8 can_hold = list(/obj/item/toy/snappop) New() ..() - for(var/i=1; i <= storage_slots; i++) + for(var/i=1; i <= 8; i++) new /obj/item/toy/snappop(src) /obj/item/weapon/storage/box/matches @@ -605,14 +603,13 @@ icon = 'icons/obj/cigarettes.dmi' icon_state = "matchbox" item_state = "zippo" - storage_slots = 10 w_class = 1 slot_flags = SLOT_BELT can_hold = list(/obj/item/weapon/flame/match) New() ..() - for(var/i=1; i <= storage_slots; i++) + for(var/i=1; i <= 10; i++) new /obj/item/weapon/flame/match(src) attackby(obj/item/weapon/flame/match/W as obj, mob/user as mob) @@ -630,7 +627,7 @@ icon_state = "syringe" New() ..() - for (var/i; i < storage_slots; i++) + for (var/i; i < 7; i++) new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src) /obj/item/weapon/storage/box/lights @@ -676,7 +673,6 @@ icon = 'icons/obj/storage.dmi' icon_state = "portafreezer" item_state = "medicalpack" - storage_slots=7 max_w_class = 3 can_hold = list(/obj/item/organ, /obj/item/weapon/reagent_containers/food, /obj/item/weapon/reagent_containers/glass) max_storage_space = 21 diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 29926c4cbef..909cfb502d1 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -69,14 +69,13 @@ icon_state = "candlebox5" icon_type = "candle" item_state = "candlebox5" - storage_slots = 5 throwforce = 2 slot_flags = SLOT_BELT /obj/item/weapon/storage/fancy/candle_box/New() ..() - for(var/i=1; i <= storage_slots; i++) + for(var/i=1; i <= 5; i++) new /obj/item/weapon/flame/candle(src) return @@ -90,7 +89,6 @@ icon = 'icons/obj/crayons.dmi' icon_state = "crayonbox" w_class = 2.0 - storage_slots = 6 icon_type = "crayon" can_hold = list( /obj/item/weapon/pen/crayon diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index a76fb4f1a1f..40a05659ec1 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -161,7 +161,6 @@ can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/dice,/obj/item/weapon/paper) allow_quick_gather = 1 use_to_pickup = 1 - storage_slots = 14 use_sound = null /obj/item/weapon/storage/pill_bottle/antitox diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index c904907f640..c900a2a8c8b 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -8,7 +8,6 @@ w_class = 4 max_w_class = 3 max_storage_space = 14 //The sum of the w_classes of all the items in this storage item. - storage_slots = 4 req_access = list(access_armory) var/locked = 1 var/broken = 0 diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index eb63c96cb8b..e024e6ca5c8 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -15,7 +15,6 @@ icon = 'icons/obj/food.dmi' icon_state = "donutbox" name = "donut box" - storage_slots = 6 var/startswith = 6 can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut) foldable = /obj/item/stack/material/cardboard diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index 73e3fb0108c..3950ea89093 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -33,7 +33,7 @@ attackby(obj/item/weapon/W as obj, mob/user as mob) if(locked) - if (emag_act(INFINITY, user, "You slice through the lock of \the [src]")) + if (istype(W, /obj/item/weapon/melee/energy/blade) && emag_act(INFINITY, user, "You slice through the lock of \the [src]")) var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src.loc) spark_system.start() diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 8a9c00ce3bd..c6ee578dcee 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -12,10 +12,16 @@ var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else) var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set) var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage - var/max_w_class = 2 //Max size of objects that this object can store (in effect only if can_hold isn't set) - var/max_storage_space = 14 //The sum of the storage costs of all the items in this storage item. - var/storage_slots = 7 //The number of storage slots in this container. + var/max_w_class = 3 //Max size of objects that this object can store (in effect only if can_hold isn't set) + var/max_storage_space = 8 //The sum of the storage costs of all the items in this storage item. + var/storage_slots = null //The number of storage slots in this container. var/obj/screen/storage/boxes = null + var/obj/screen/storage/storage_start = null //storage UI + var/obj/screen/storage/storage_continue = null + var/obj/screen/storage/storage_end = null + var/obj/screen/storage/stored_start = null + var/obj/screen/storage/stored_continue = null + var/obj/screen/storage/stored_end = null var/obj/screen/close/closer = null var/use_to_pickup //Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up. var/display_contents_with_number //Set this to make the storage item group contents of the same type and display them as a number. @@ -27,6 +33,12 @@ /obj/item/weapon/storage/Destroy() close_all() qdel(boxes) + qdel(src.storage_start) + qdel(src.storage_continue) + qdel(src.storage_end) + qdel(src.stored_start) + qdel(src.stored_continue) + qdel(src.stored_end) qdel(closer) ..() @@ -90,11 +102,19 @@ if(user.s_active) user.s_active.hide_from(user) user.client.screen -= src.boxes + user.client.screen -= src.storage_start + user.client.screen -= src.storage_continue + user.client.screen -= src.storage_end user.client.screen -= src.closer user.client.screen -= src.contents - user.client.screen += src.boxes user.client.screen += src.closer user.client.screen += src.contents + if(storage_slots) + user.client.screen += src.boxes + else + user.client.screen += src.storage_start + user.client.screen += src.storage_continue + user.client.screen += src.storage_end user.s_active = src is_seeing |= user return @@ -104,6 +124,9 @@ if(!user.client) return user.client.screen -= src.boxes + user.client.screen -= src.storage_start + user.client.screen -= src.storage_continue + user.client.screen -= src.storage_end user.client.screen -= src.closer user.client.screen -= src.contents if(user.s_active == src) @@ -155,7 +178,7 @@ return //This proc draws out the inventory and places the items on it. It uses the standard position. -/obj/item/weapon/storage/proc/standard_orient_objs(var/rows, var/cols, var/list/obj/item/display_contents) +/obj/item/weapon/storage/proc/slot_orient_objs(var/rows, var/cols, var/list/obj/item/display_contents) var/cx = 4 var/cy = 2+rows src.boxes.screen_loc = "4:16,2:16 to [4+cols]:16,[2+rows]:16" @@ -181,6 +204,51 @@ src.closer.screen_loc = "[4+cols+1]:16,2:16" return +/obj/item/weapon/storage/proc/space_orient_objs(var/list/obj/item/display_contents) + + var/baseline_max_storage_space = 16 //should be equal to default backpack capacity + var/storage_cap_width = 2 //length of sprite for start and end of the box representing total storage space + var/stored_cap_width = 4 //length of sprite for start and end of the box representing the stored item + var/storage_width = min( round( 224 * max_storage_space/baseline_max_storage_space ,1) ,284) //length of sprite for the box representing total storage space + + storage_start.overlays.Cut() + + var/matrix/M = matrix() + M.Scale((storage_width-storage_cap_width*2+3)/32,1) + src.storage_continue.transform = M + + src.storage_start.screen_loc = "4:16,2:16" + src.storage_continue.screen_loc = "4:[storage_cap_width+(storage_width-storage_cap_width*2)/2+2],2:16" + src.storage_end.screen_loc = "4:[19+storage_width-storage_cap_width],2:16" + + var/startpoint = 0 + var/endpoint = 1 + + for(var/obj/item/O in contents) + startpoint = endpoint + 1 + endpoint += storage_width * O.get_storage_cost()/max_storage_space + + var/matrix/M_start = matrix() + var/matrix/M_continue = matrix() + var/matrix/M_end = matrix() + M_start.Translate(startpoint,0) + M_continue.Scale((endpoint-startpoint-stored_cap_width*2)/32,1) + M_continue.Translate(startpoint+stored_cap_width+(endpoint-startpoint-stored_cap_width*2)/2 - 16,0) + M_end.Translate(endpoint-stored_cap_width,0) + src.stored_start.transform = M_start + src.stored_continue.transform = M_continue + src.stored_end.transform = M_end + storage_start.overlays += src.stored_start + storage_start.overlays += src.stored_continue + storage_start.overlays += src.stored_end + + O.screen_loc = "4:[round((startpoint+endpoint)/2)+2],2:16" + O.maptext = "" + O.layer = 20 + + src.closer.screen_loc = "4:[storage_width+19],2:16" + return + /datum/numbered_display var/obj/item/sample_object var/number @@ -212,12 +280,14 @@ adjusted_contents++ numbered_contents.Add( new/datum/numbered_display(I) ) - //var/mob/living/carbon/human/H = user - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if (adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - src.standard_orient_objs(row_num, col_count, numbered_contents) + if(storage_slots == null) + src.space_orient_objs(numbered_contents) + else + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if (adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + src.slot_orient_objs(row_num, col_count, numbered_contents) return //This proc return 1 if the item can be picked up and 0 if it can't. @@ -225,12 +295,12 @@ /obj/item/weapon/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0) if(!istype(W)) return //Not an item - if(usr.isEquipped(W) && !usr.canUnEquip(W)) + if(usr && usr.isEquipped(W) && !usr.canUnEquip(W)) return 0 if(src.loc == W) return 0 //Means the item is already in the storage item - if(contents.len >= storage_slots) + if(storage_slots != null && contents.len >= storage_slots) if(!stop_messages) usr << "[src] is full, make some space." return 0 //Storage item is full @@ -254,9 +324,9 @@ usr << "[src] cannot hold [W]." return 0 - if (W.w_class > max_w_class) + if (max_w_class != null && W.w_class > max_w_class) if(!stop_messages) - usr << "[W] is too big for this [src]." + usr << "[W] is too long for this [src]." return 0 var/total_storage_space = W.get_storage_cost() @@ -265,7 +335,7 @@ if(total_storage_space > max_storage_space) if(!stop_messages) - usr << "[src] is full, make some space." + usr << "[src] is too full, make some space." return 0 if(W.w_class >= src.w_class && (istype(W, /obj/item/weapon/storage))) @@ -442,12 +512,48 @@ else verbs -= /obj/item/weapon/storage/verb/toggle_gathering_mode + spawn(5) + var/total_storage_space = 0 + for(var/obj/item/I in contents) + total_storage_space += I.get_storage_cost() + max_storage_space = max(total_storage_space,max_storage_space) //prevents spawned containers from being too small for their contents + src.boxes = new /obj/screen/storage( ) src.boxes.name = "storage" src.boxes.master = src src.boxes.icon_state = "block" src.boxes.screen_loc = "7,7 to 10,8" src.boxes.layer = 19 + + src.storage_start = new /obj/screen/storage( ) + src.storage_start.name = "storage" + src.storage_start.master = src + src.storage_start.icon_state = "storage_start" + src.storage_start.screen_loc = "7,7 to 10,8" + src.storage_start.layer = 19 + src.storage_continue = new /obj/screen/storage( ) + src.storage_continue.name = "storage" + src.storage_continue.master = src + src.storage_continue.icon_state = "storage_continue" + src.storage_continue.screen_loc = "7,7 to 10,8" + src.storage_continue.layer = 19 + src.storage_end = new /obj/screen/storage( ) + src.storage_end.name = "storage" + src.storage_end.master = src + src.storage_end.icon_state = "storage_end" + src.storage_end.screen_loc = "7,7 to 10,8" + src.storage_end.layer = 19 + + src.stored_start = new /obj //we just need these to hold the icon + src.stored_start.icon_state = "stored_start" + src.stored_start.layer = 19 + src.stored_continue = new /obj + src.stored_continue.icon_state = "stored_continue" + src.stored_continue.layer = 19 + src.stored_end = new /obj + src.stored_end.icon_state = "stored_end" + src.stored_end.layer = 19 + src.closer = new /obj/screen/close( ) src.closer.master = src src.closer.icon_state = "x" @@ -516,4 +622,20 @@ return depth /obj/item/proc/get_storage_cost() - return 2**(w_class-1) //1,2,4,8,16,... + if (storage_cost) + return storage_cost + else + if(w_class == 1) + return 1 + if(w_class == 2) + return 2 + if(w_class == 3) + return 4 + if(w_class == 4) + return 8 + if(w_class == 5) + return 16 + else + return 1000 + + //return 2**(w_class-1) //1,2,4,8,16,... diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 02ce84f0726..11dcdc8879a 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -11,7 +11,7 @@ throw_range = 7 w_class = 4 max_w_class = 3 - max_storage_space = 14 //can hold 7 w_class-2 items or up to 3 w_class-3 items (with 1 w_class-2 item as change). + max_storage_space = 14 //enough to hold all starting contents origin_tech = list(TECH_COMBAT = 1) attack_verb = list("robusted") diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 5b46e990f0b..fcd5693d76d 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -127,7 +127,6 @@ /obj/item/weapon/storage/box/syndie_kit/chameleon name = "chameleon kit" desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold seperately." - storage_slots = 10 /obj/item/weapon/storage/box/syndie_kit/chameleon/New() ..() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 8a9e29a0da2..58f89dc3fff 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -413,6 +413,9 @@ req_access = list(access_crematorium) id = 1 +/obj/machinery/button/crematorium/update_icon() + return + /obj/machinery/button/crematorium/attack_hand(mob/user as mob) if(..()) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 07d32e100b0..a77066c9aa6 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -455,6 +455,10 @@ if (constructed) state = 0 +/obj/structure/window/reinforced/full + dir = 5 + icon_state = "fwindow" + /obj/structure/window/reinforced/tinted name = "tinted window" desc = "It looks rather strong and opaque. Might take a few good hits to shatter it." diff --git a/code/game/turfs/flooring/flooring_decals.dm b/code/game/turfs/flooring/flooring_decals.dm index 1396011e985..66434456f92 100644 --- a/code/game/turfs/flooring/flooring_decals.dm +++ b/code/game/turfs/flooring/flooring_decals.dm @@ -21,7 +21,7 @@ var/list/floor_decals = list() var/cache_key = "[alpha]-[color]-[dir]-[icon_state]-[layer]" if(!floor_decals[cache_key]) var/image/I = image(icon = src.icon, icon_state = src.icon_state, dir = src.dir) - I.layer = T.layer - 0.01 + I.layer = T.layer I.color = src.color I.alpha = src.alpha floor_decals[cache_key] = I diff --git a/code/game/turfs/simulated/floor_attackby.dm b/code/game/turfs/simulated/floor_attackby.dm index c8cc2660c97..118f2277695 100644 --- a/code/game/turfs/simulated/floor_attackby.dm +++ b/code/game/turfs/simulated/floor_attackby.dm @@ -57,13 +57,13 @@ var/decl/flooring/F = flooring_types[flooring_type] if(!F.build_type) continue - if((S.type == F.build_type) || (S.build_type == F.build_type)) + if(ispath(S.type, F.build_type) || ispath(S.build_type, F.build_type)) use_flooring = F break if(!use_flooring) return // Do we have enough? - if(use_flooring.build_cost && S.amount < use_flooring.build_cost) + if(use_flooring.build_cost && S.get_amount() < use_flooring.build_cost) user << "You require at least [use_flooring.build_cost] [S.name] to complete the [use_flooring.descriptor]." return // Stay still and focus... diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index f1db688d0a7..f127b926dd0 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -27,6 +27,10 @@ name = "plating" icon = 'icons/turf/floors.dmi' icon_state = "plating" + level = 1 + +/turf/simulated/shuttle/plating/is_plating() + return 1 /turf/simulated/shuttle/plating/vox //Skipjack plating oxygen = 0 diff --git a/code/modules/alarm/alarm_handler.dm b/code/modules/alarm/alarm_handler.dm index afa45d7649c..9cf52add77b 100644 --- a/code/modules/alarm/alarm_handler.dm +++ b/code/modules/alarm/alarm_handler.dm @@ -50,6 +50,11 @@ /datum/alarm_handler/proc/major_alarms() return alarms +/datum/alarm_handler/proc/has_major_alarms() + if(alarms && alarms.len) + return 1 + return 0 + /datum/alarm_handler/proc/minor_alarms() return alarms diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index e236c523890..680e6221523 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -180,7 +180,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O return mob_species && (mob_species.appearance_flags & flag) /datum/category_item/player_setup_item/general/body/OnTopic(var/href,var/list/href_list, var/mob/user) - var/mob_species = all_species[pref.species] + var/datum/species/mob_species = all_species[pref.species] if(href_list["random"]) pref.randomize_appearance_for() @@ -217,7 +217,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O continue if(pref.gender == FEMALE && S.gender == MALE) continue - if(!(pref.species in S.species_allowed)) + if(!(mob_species.get_bodytype() in S.species_allowed)) continue valid_hairstyles[hairstyle] = hair_styles_list[hairstyle] @@ -235,7 +235,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O continue if(pref.gender == FEMALE && S.gender == MALE) continue - if(!(pref.species in S.species_allowed)) + if(!(mob_species.get_bodytype() in S.species_allowed)) continue valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle] @@ -268,7 +268,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O var/list/valid_hairstyles = list() for(var/hairstyle in hair_styles_list) var/datum/sprite_accessory/S = hair_styles_list[hairstyle] - if(!(pref.species in S.species_allowed)) + if(!(mob_species.get_bodytype() in S.species_allowed)) continue valid_hairstyles[hairstyle] = hair_styles_list[hairstyle] @@ -324,7 +324,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O continue if(pref.gender == FEMALE && S.gender == MALE) continue - if(!(pref.species in S.species_allowed)) + if(!(mob_species.get_bodytype() in S.species_allowed)) continue valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle] diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 6039ff4dae3..9d942d05b22 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -14,7 +14,7 @@ ) permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR body_parts_covered = HEAD|FACE|EYES cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm index fbb2e043fd6..094800c9ccb 100644 --- a/code/modules/economy/economy_misc.dm +++ b/code/modules/economy/economy_misc.dm @@ -52,6 +52,7 @@ /datum/species/skrell = 12, /datum/species/tajaran = 7, /datum/species/unathi = 7, + /datum/species/diona = 5, /datum/species/vox = 1 ) diff --git a/code/modules/games/boardgame.dm b/code/modules/games/boardgame.dm index cb25dabdb24..54a9866ea4d 100644 --- a/code/modules/games/boardgame.dm +++ b/code/modules/games/boardgame.dm @@ -1,8 +1,3 @@ -/*TODO: - implement icon loading that is efficient using browse_rsc - implement being able to move pieces -*/ - /obj/item/weapon/board name = "board" desc = "A standard 12' checkerboard. Well used." @@ -14,6 +9,13 @@ var/board = list() var/selected = -1 +/obj/item/weapon/board/New() + ..() + var i + for(i = 0; i < 12; i++) + new /obj/item/weapon/checker(src.loc) + new /obj/item/weapon/checker/red(src.loc) + /obj/item/weapon/board/examine(mob/user, var/distance = -1) if(in_range(user,src)) user.set_machine(src) @@ -21,29 +23,56 @@ return ..() +/obj/item/weapon/board/attack_hand(mob/living/carbon/human/M as mob) + if(M.machine == src) + ..() + else + src.examine(M) + obj/item/weapon/board/attackby(obj/item/I as obj, mob/user as mob) + if(!addPiece(I,user)) + ..() + +/obj/item/weapon/board/proc/addPiece(obj/item/I as obj, mob/user as mob, var/tile = 0) if(I.w_class != 1) //only small stuff user.show_message("\The [I] is too big to be used as a board piece.") - return + return 0 if(num == 64) user.show_message("\The [src] is already full!") - return + return 0 + if(tile > 0 && board["[tile]"]) + user.show_message("That space is already filled!") + return 0 + if(!user.Adjacent(src)) + return 0 + user.drop_from_inventory(I) I.forceMove(src) num++ + if(!board_icons["[I.icon] [I.icon_state]"]) board_icons["[I.icon] [I.icon_state]"] = new /icon(I.icon,I.icon_state) - var i; - for(i=0;i<64;i++) - if(!board["[i]"]) - board["[i]"] = I - break + if(tile == 0) + var i; + for(i=0;i<64;i++) + if(!board["[i]"]) + board["[i]"] = I + break + else + board["[tile]"] = I src.updateDialog() + return 1 + + /obj/item/weapon/board/interact(mob/user as mob) + if(user.incapacitated(INCAPACITATION_DISABLED) || (!isAI(user) && !user.Adjacent(src))) //can't see if you arent conscious. If you are not an AI you can't see it unless you are next to it, either. + user << browse(null, "window=boardgame") + user.unset_machine() + return var/dat = "" dat += "" @@ -81,42 +110,61 @@ obj/item/weapon/board/attackby(obj/item/I as obj, mob/user as mob) onclose(usr, "boardgame") /obj/item/weapon/board/Topic(href, href_list) - if(href_list["select"]) - var/s = href_list["select"] - var/obj/item/I = board["[s]"] - if(selected >= 0) - if(I) //cant put items on other items. - return + if(!usr.Adjacent(src)) + usr.unset_machine() + usr << browse(null, "window=boardgame") + return + + if(!usr.incapacitated()) //you can't move pieces if you can't move + if(href_list["select"]) + var/s = href_list["select"] + var/obj/item/I = board["[s]"] + if(selected >= 0) + //check to see if clicked on tile is currently selected one + if(text2num(s) == selected) + selected = 0 //deselect it + return + + if(I) //cant put items on other items. + return //put item in new spot. - I = board["[selected]"] + I = board["[selected]"] + board["[selected]"] = null + board -= "[selected]" + board -= null + board["[s]"] = I + selected = -1 + else + if(I) + selected = text2num(s) + else + var/mob/living/carbon/human/H = locate(href_list["person"]) + if(!istype(H)) + return + var/obj/item/O = H.get_active_hand() + if(!O) + return + addPiece(O,H,text2num(s)) + if(href_list["remove"]) + var/obj/item/I = board["[selected]"] board["[selected]"] = null board -= "[selected]" board -= null - board["[s]"] = I + I.forceMove(src.loc) + num-- selected = -1 - else - if(I) - selected = text2num(s) - if(href_list["remove"]) - var/obj/item/I = board["[selected]"] - board["[selected]"] = null - board -= "[selected]" - board -= null - I.forceMove(src.loc) - num-- - selected = -1 - var j - for(j=0;j<64;j++) - if(board["[j]"]) - var/obj/item/K = board["[j]"] - if(K.icon == I.icon && cmptext(K.icon_state,I.icon_state)) - src.updateDialog() - return - //Didn't find it in use, remove it and allow GC to delete it. - board_icons["[I.icon] [I.icon_state]"] = null - board_icons -= "[I.icon] [I.icon_state]" - board_icons -= null + var j + for(j=0;j<64;j++) + if(board["[j]"]) + var/obj/item/K = board["[j]"] + if(K.icon == I.icon && cmptext(K.icon_state,I.icon_state)) + src.updateDialog() + return + //Didn't find it in use, remove it and allow GC to delete it. + board_icons["[I.icon] [I.icon_state]"] = null + board_icons -= "[I.icon] [I.icon_state]" + board_icons -= null src.updateDialog() /obj/item/weapon/checker/ diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index e1061b09958..2655878aa6d 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -1,7 +1,13 @@ //This proc is called whenever someone clicks an inventory ui slot. /mob/proc/attack_ui(slot) var/obj/item/W = get_active_hand() - if(istype(W)) + var/obj/item/E = get_equipped_item(slot) + if (istype(E)) + if(istype(W)) + E.attackby(W,src) + else + E.attack_hand(src) + else equip_to_slot_if_possible(W, slot) /mob/proc/put_in_any_hand_if_possible(obj/item/W as obj, del_on_fail = 0, disable_warning = 1, redraw_mob = 1) @@ -77,13 +83,13 @@ var/list/slot_equipment_priority = list( \ // Try put it in their backpack if(istype(src.back,/obj/item/weapon/storage)) var/obj/item/weapon/storage/backpack = src.back - if(backpack.contents.len < backpack.storage_slots) + if(backpack.can_be_inserted(newitem, 1)) newitem.forceMove(src.back) return 1 // Try to place it in any item that can store stuff, on the mob. for(var/obj/item/weapon/storage/S in src.contents) - if (S.contents.len < S.storage_slots) + if(S.can_be_inserted(newitem, 1)) newitem.forceMove(S) return 1 return 0 @@ -186,7 +192,7 @@ var/list/slot_equipment_priority = list( \ wear_mask = null update_inv_wear_mask(0) return - + /mob/proc/isEquipped(obj/item/I) if(!I) return 0 diff --git a/code/modules/mob/living/bot/cleanbot.dm b/code/modules/mob/living/bot/cleanbot.dm index fe5f7317240..7ce6f684191 100644 --- a/code/modules/mob/living/bot/cleanbot.dm +++ b/code/modules/mob/living/bot/cleanbot.dm @@ -26,6 +26,8 @@ var/blood = 1 var/list/target_types = list() + var/maximum_search_range = 7 + /mob/living/bot/cleanbot/New() ..() get_targets() @@ -36,6 +38,25 @@ if(radio_controller) radio_controller.add_object(listener, beacon_freq, filter = RADIO_NAVBEACONS) +/mob/living/bot/cleanbot/proc/handle_target() + if(loc == target.loc) + if(!cleaning) + UnarmedAttack(target) + return 1 + if(!path.len) +// spawn(0) + path = AStar(loc, target.loc, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 30, id = botcard) + if(!path) + custom_emote(2, "[src] can't reach the target and is giving up.") + target = null + path = list() + return + if(path.len) + step_to(src, path[1]) + path -= path[1] + return 1 + return + /mob/living/bot/cleanbot/Life() ..() @@ -46,7 +67,7 @@ return if(cleaning) return - + if(!screwloose && !oddbutton && prob(5)) custom_emote(2, "makes an excited beeping booping sound!") @@ -74,65 +95,64 @@ spawn(600) ignorelist -= gib - if(!target) // Find a target - for(var/obj/effect/decal/cleanable/D in view(7, src)) - if(D in ignorelist) - continue - for(var/T in target_types) - if(istype(D, T)) - target = D - patrol_path = list() + // Find a target + + if(pulledby) // Don't wiggle if someone pulls you + patrol_path = list() + return - if(!target) // No targets in range - if(!should_patrol) - return + var/found_spot + search_loop: + for(var/i=0, i <= maximum_search_range, i++) + for(var/obj/effect/decal/cleanable/D in view(i, src)) + if(D in ignorelist) + continue + for(var/T in target_types) + if(istype(D, T)) + patrol_path = list() + target = D + found_spot = handle_target() + if (found_spot) + break search_loop + else + target = null + continue // no need to check the other types - if(!patrol_path || !patrol_path.len) - if(!signal_sent || signal_sent > world.time + 200) // Waited enough or didn't send yet - var/datum/radio_frequency/frequency = radio_controller.return_frequency(beacon_freq) - if(!frequency) - return - closest_dist = 9999 - next_dest = null - next_dest_loc = null - - var/datum/signal/signal = new() - signal.source = src - signal.transmission_method = 1 - signal.data = list("findbeakon" = "patrol") - frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS) - signal_sent = world.time - else - if(next_dest) - next_dest_loc = listener.memorized[next_dest] - if(next_dest_loc) - patrol_path = AStar(loc, next_dest_loc, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 120, id = botcard, exclude = null) - signal_sent = 0 - else - if(pulledby) // Don't wiggle if someone pulls you - patrol_path = list() + if(!found_spot && !target) // No targets in range + if(!patrol_path || !patrol_path.len) + if(!signal_sent || signal_sent > world.time + 200) // Waited enough or didn't send yet + var/datum/radio_frequency/frequency = radio_controller.return_frequency(beacon_freq) + if(!frequency) return - if(patrol_path[1] == loc) - patrol_path -= patrol_path[1] - var/moved = step_towards(src, patrol_path[1]) - if(moved) - patrol_path -= patrol_path[1] - if(target) - if(loc == target.loc) - if(!cleaning) - UnarmedAttack(target) + + closest_dist = 9999 + next_dest = null + next_dest_loc = null + + var/datum/signal/signal = new() + signal.source = src + signal.transmission_method = 1 + signal.data = list("findbeakon" = "patrol") + frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS) + signal_sent = world.time + else + if(next_dest) + next_dest_loc = listener.memorized[next_dest] + if(next_dest_loc) + patrol_path = AStar(loc, next_dest_loc, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 120, id = botcard, exclude = null) + signal_sent = 0 + else + if(pulledby) // Don't wiggle if someone pulls you + patrol_path = list() return - if(!path.len) - spawn(0) - path = AStar(loc, target.loc, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 30, id = botcard) - if(!path) - path = list() - return - if(path.len) - step_to(src, path[1]) - path -= path[1] - return + if(patrol_path[1] == loc) + patrol_path -= patrol_path[1] + var/moved = step_towards(src, patrol_path[1]) + if(moved) + patrol_path -= patrol_path[1] + + /mob/living/bot/cleanbot/UnarmedAttack(var/obj/effect/decal/cleanable/D, var/proximity) if(!..()) @@ -145,7 +165,7 @@ return cleaning = 1 - custom_emote(2, "begins to clean up the [D]") + custom_emote(2, "begins to clean up \the [D]") update_icons() var/cleantime = istype(D, /obj/effect/decal/cleanable/dirt) ? 10 : 50 if(do_after(src, cleantime)) @@ -155,6 +175,8 @@ if(!D) return qdel(D) + if(D == target) + target = null cleaning = 0 update_icons() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9e929fb88ff..58dd22d2223 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1385,7 +1385,7 @@ /mob/living/carbon/human/MouseDrop(var/atom/over_object) var/mob/living/carbon/human/H = over_object - if(holder_type && istype(H) && !H.lying && !issmall(H) && Adjacent(H)) + if(H.a_intent == I_HELP && holder_type && istype(H) && !H.lying && !issmall(H) && Adjacent(H)) get_scooped(H, (usr == src)) return return ..() diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index d9d8347550c..c4ccc620649 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -39,7 +39,7 @@ push_flags = MONKEY|SLIME|SIMPLE_ANIMAL|ALIEN pass_flags = PASSTABLE - + holder_type = /obj/item/weapon/holder /datum/species/monkey/handle_npc(var/mob/living/carbon/human/H) if(H.stat != CONSCIOUS) return diff --git a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm index 3162c94221a..81f2025aea2 100644 --- a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm +++ b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm @@ -1,4 +1,7 @@ +var/global/ntnrc_uid = 0 + /datum/ntnet_conversation/ + var/id = null var/title = "Untitled Conversation" var/datum/computer_file/program/chatclient/operator // "Administrator" of this channel. Creator starts as channel's operator, var/list/messages = list() @@ -6,6 +9,8 @@ var/password /datum/ntnet_conversation/New() + id = ntnrc_uid + ntnrc_uid++ if(ntnet_global) ntnet_global.chat_channels.Add(src) ..() diff --git a/code/modules/modular_computers/computers/item/modular_computer.dm b/code/modules/modular_computers/computers/item/modular_computer.dm index 0b64dbb5f42..847fc99b52e 100644 --- a/code/modules/modular_computers/computers/item/modular_computer.dm +++ b/code/modules/modular_computers/computers/item/modular_computer.dm @@ -28,6 +28,7 @@ // Important hardware (must be installed for computer to work) + var/obj/item/weapon/computer_hardware/processor_unit/processor_unit // CPU. Without it the computer won't run. Better CPUs can run more programs at once. var/obj/item/weapon/computer_hardware/network_card/network_card // Network Card component of this computer. Allows connection to NTNet var/obj/item/weapon/computer_hardware/hard_drive/hard_drive // Hard Drive component of this computer. Stores programs and files. var/obj/item/weapon/computer_hardware/battery_module/battery_module // An internal power source for this computer. Can be recharged. @@ -36,6 +37,8 @@ var/obj/item/weapon/computer_hardware/nano_printer/nano_printer // Nano Printer component of this computer, for your everyday paperwork needs. var/obj/item/weapon/computer_hardware/hard_drive/portable/portable_drive // Portable data storage + var/list/idle_threads = list() // Idle programs on background. They still receive process calls but can't be interacted with. + // Eject ID card from computer, if it has ID slot with card inside. /obj/item/modular_computer/verb/eject_id() @@ -69,6 +72,14 @@ card_slot.stored_card = null user << "You remove the card from \the [src]" +/obj/item/modular_computer/attack_ghost(var/mob/dead/observer/user) + if(enabled) + ui_interact(user) + else if(check_rights(R_ADMIN, 0, user)) + var/response = alert(user, "This computer is turned off. Would you like to turn it on?", "Admin Override", "Yes", "No") + if(response == "Yes") + turn_on(user) + /obj/item/modular_computer/emag_act(var/remaining_charges, var/mob/user) if(computer_emagged) user << "\The [src] was already emagged." @@ -151,13 +162,24 @@ /obj/item/modular_computer/attack_self(mob/user) if(enabled) ui_interact(user) - else if((battery_module && battery_module.battery.charge) || check_power_override()) // Battery-run and charged or non-battery but powered by APC. - user << "You press the power button and start up \the [src]" + else + turn_on(user) + +/obj/item/modular_computer/proc/turn_on(var/mob/user) + var/issynth = issilicon(user) // Robots and AIs get different activation messages. + if(processor_unit && ((battery_module && battery_module.battery.charge) || check_power_override())) // Battery-run and charged or non-battery but powered by APC. + if(issynth) + user << "You send an activation signal to \the [src], turning it on" + else + user << "You press the power button and start up \the [src]" enabled = 1 update_icon() ui_interact(user) else // Unpowered - user << "You press the power button but \the [src] does not respond." + if(issynth) + user << "You send an activation signal to \the [src] but it does not respond" + else + user << "You press the power button but \the [src] does not respond" // Process currently calls handle_power(), may be expanded in future if more things are added. /obj/item/modular_computer/process() @@ -169,11 +191,22 @@ kill_program(1) visible_message("\The [src]'s screen briefly freezes and then shows \"NETWORK ERROR - NTNet connection lost. Please retry. If problem persists contact your system administrator.\" error.") + for(var/datum/computer_file/program/P in idle_threads) + if(P.requires_ntnet && !get_ntnet_status(P.requires_ntnet_feature)) + P.kill_program(1) + idle_threads.Remove(P) + visible_message("\The [src] screen displays an \"Process [P.filename].[P.filetype] (PID [rand(100,999)]) terminated - Network Error\" error") + if(active_program) active_program.process_tick() active_program.ntnet_status = get_ntnet_status() active_program.computer_emagged = computer_emagged + for(var/datum/computer_file/program/P in idle_threads) + P.process_tick() + P.ntnet_status = get_ntnet_status() + P.computer_emagged = computer_emagged + handle_power() // Handles all computer power interaction // Function used by NanoUI's to obtain data for header. All relevant entries begin with "PC_" @@ -211,6 +244,17 @@ if(3) data["PC_ntneticon"] = "sig_lan.gif" + if(idle_threads.len) + var/list/program_headers = list() + for(var/datum/computer_file/program/P in idle_threads) + if(!P.ui_header) + continue + program_headers.Add(list(list( + "icon" = P.ui_header + ))) + + data["PC_programheaders"] = program_headers + data["PC_stationtime"] = worldtime2text() data["PC_hasheader"] = 1 data["PC_showexitprogram"] = active_program ? 1 : 0 // Hides "Exit Program" button on mainscreen @@ -238,9 +282,13 @@ return 0 return ntnet_global.add_log(text, network_card) -/obj/item/modular_computer/proc/shutdown_computer() +/obj/item/modular_computer/proc/shutdown_computer(var/loud = 1) kill_program(1) - visible_message("\The [src] shuts down.") + for(var/datum/computer_file/program/P in idle_threads) + P.kill_program(1) + idle_threads.Remove(P) + if(loud) + visible_message("\The [src] shuts down.") enabled = 0 update_icon() return @@ -265,6 +313,23 @@ if( href_list["PC_shutdown"] ) shutdown_computer() return + if( href_list["PC_minimize"] ) + var/mob/user = usr + if(!active_program || !processor_unit) + return + + if(idle_threads.len >= processor_unit.max_idle_programs) + user << "\The [src] displays a \"Maximal CPU load reached. Unable to minimize another program.\" error" + return + + idle_threads.Add(active_program) + active_program.running = 0 // Should close any existing UIs + nanomanager.close_uis(active_program.NM ? active_program.NM : active_program) + active_program = null + update_icon() + if(user && istype(user)) + ui_interact(user) // Re-open the UI on this computer. It should show the main screen now. + if( href_list["PC_runprogram"] ) var/prog = href_list["PC_runprogram"] var/datum/computer_file/program/P = null @@ -280,6 +345,14 @@ if(!P.is_supported_by_hardware(hardware_flag, 1, user)) return + // The program is already running. Resume it. + if(P in idle_threads) + P.running = 1 + active_program = P + idle_threads.Remove(P) + update_icon() + return + if(P.requires_ntnet && !get_ntnet_status(P.requires_ntnet_feature)) // The program requires NTNet connection, but we are not connected to NTNet. user << "\The [src]'s screen shows \"NETWORK ERROR - Unable to connect to NTNet. Please retry. If problem persists contact your system administrator.\" warning." return @@ -292,9 +365,7 @@ /obj/item/modular_computer/proc/power_failure() if(enabled) // Shut down the computer visible_message("\The [src]'s screen flickers \"BATTERY CRITICAL\" warning as it shuts down unexpectedly.") - kill_program(1) - enabled = 0 - update_icon() + shutdown_computer(0) // Handles power-related things, such as battery interaction, recharging, shutdown when it's discharged /obj/item/modular_computer/proc/handle_power() @@ -303,11 +374,10 @@ return 0 var/power_usage = screen_on ? base_active_power_usage : base_idle_power_usage - if(network_card && network_card.enabled) - power_usage += network_card.power_usage - if(hard_drive && hard_drive.enabled) - power_usage += hard_drive.power_usage + for(var/obj/item/weapon/computer_hardware/H in get_all_components()) + if(H.enabled) + power_usage += H.power_usage if(battery_module) battery_module.battery.use(power_usage * CELLRATE) @@ -421,6 +491,12 @@ return found = 1 battery_module = H + else if(istype(H, /obj/item/weapon/computer_hardware/processor_unit)) + if(processor_unit) + user << "This computer's processor slot is already occupied by \the [processor_unit]." + return + found = 1 + processor_unit = H if(found) user << "You install \the [H] into \the [src]" H.holder2 = src @@ -448,11 +524,15 @@ if(battery_module == H) battery_module = null found = 1 + if(processor_unit == H) + processor_unit = null + found = 1 + critical = 1 if(found) user << "You remove \the [H] from \the [src]." H.forceMove(get_turf(src)) H.holder2 = null - if(critical) + if(critical && enabled) user << "\The [src]'s screen freezes for few seconds and then displays an \"HARDWARE ERROR: Critical component disconnected. Please verify component connection and reboot the device. If the problem persists contact technical support for assistance.\" warning." kill_program(1) enabled = 0 @@ -473,6 +553,8 @@ return card_slot if(battery_module && (battery_module.name == name)) return battery_module + if(processor_unit && (processor_unit.name == name)) + return processor_unit return null // Returns list of all components @@ -490,4 +572,6 @@ all_components.Add(card_slot) if(battery_module) all_components.Add(battery_module) + if(processor_unit) + all_components.Add(processor_unit) return all_components \ No newline at end of file diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index 0e44e6ac99c..21818d06b15 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -78,9 +78,7 @@ /obj/item/modular_computer/processor/shutdown_computer() if(!machinery_computer) return - kill_program(1) - visible_message("\The [machinery_computer] shuts down.") - enabled = 0 + ..() machinery_computer.update_icon() return diff --git a/code/modules/modular_computers/computers/machinery/console_presets.dm b/code/modules/modular_computers/computers/machinery/console_presets.dm index a423fba92e7..9dafd2405c9 100644 --- a/code/modules/modular_computers/computers/machinery/console_presets.dm +++ b/code/modules/modular_computers/computers/machinery/console_presets.dm @@ -8,6 +8,7 @@ . = ..() if(!cpu) return + cpu.processor_unit = new/obj/item/weapon/computer_hardware/processor_unit(cpu) if(_has_id_slot) cpu.card_slot = new/obj/item/weapon/computer_hardware/card_slot(cpu) if(_has_printer) diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index f51b8fe91ef..7377c32182e 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -27,6 +27,10 @@ var/obj/item/modular_computer/processor/cpu = null // CPU that handles most logic while this type only handles power and other specific things. +/obj/machinery/modular_computer/attack_ghost(var/mob/dead/observer/user) + if(cpu) + cpu.attack_ghost(user) + /obj/machinery/modular_computer/emag_act(var/remaining_charges, var/mob/user) return cpu ? cpu.emag_act(remaining_charges, user) : NO_EMAG_ACT @@ -77,8 +81,7 @@ if(cpu && cpu.enabled) // Shut down the computer visible_message("\The [src]'s screen flickers [cpu.battery_module ? "\"BATTERY CRITICAL\"" : "\"EXTERNAL POWER LOSS\""] warning as it shuts down unexpectedly.") if(cpu) - cpu.kill_program(1) - cpu.enabled = 0 + cpu.shutdown_computer(0) battery_powered = 0 update_icon() stat |= NOPOWER diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index b21a136b4e8..805f4258852 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -18,6 +18,8 @@ var/available_on_ntnet = 1 // Whether the program can be downloaded from NTNet. Set to 0 to disable. var/available_on_syndinet = 0 // Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to 1 to enable. var/computer_emagged = 0 // Set to 1 if computer that's running us was emagged. Computer updates this every Process() tick + var/ui_header = null // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /nano/images/status_icons. Be careful not to use too large images! + /datum/computer_file/program/New(var/obj/item/modular_computer/comp = null) ..() @@ -35,6 +37,11 @@ temp.usage_flags = usage_flags return temp +// Relays icon update to the computer. +/datum/computer_file/program/proc/update_computer_icon() + if(computer) + computer.update_icon() + // Attempts to create a log in global ntnet datum. Returns 1 on success, 0 on fail. /datum/computer_file/program/proc/generate_network_log(var/text) if(computer) diff --git a/code/modules/modular_computers/file_system/programs/_engineering.dm b/code/modules/modular_computers/file_system/programs/_engineering.dm index 7fa6ed666c2..cdabe5cb133 100644 --- a/code/modules/modular_computers/file_system/programs/_engineering.dm +++ b/code/modules/modular_computers/file_system/programs/_engineering.dm @@ -15,18 +15,37 @@ filename = "alarmmonitor" filedesc = "Alarm Monitoring" nanomodule_path = /datum/nano_module/alarm_monitor/engineering - program_icon_state = "alarm_monitor" + ui_header = "alarm_green.gif" + program_icon_state = "alert-green" extended_desc = "This program provides visual interface for station's alarm system." requires_ntnet = 1 network_destination = "alarm monitoring network" size = 5 + var/has_alert = 0 + +/datum/computer_file/program/alarm_monitor/process_tick() + ..() + var/datum/nano_module/alarm_monitor/NMA = NM + if(istype(NMA) && NMA.has_major_alarms()) + if(!has_alert) + program_icon_state = "alert-red" + ui_header = "alarm_red.gif" + update_computer_icon() + has_alert = 1 + else + if(has_alert) + program_icon_state = "alert-green" + ui_header = "alarm_green.gif" + update_computer_icon() + has_alert = 0 + return 1 /datum/computer_file/program/atmos_control filename = "atmoscontrol" filedesc = "Atmosphere Control" nanomodule_path = /datum/nano_module/atmos_control program_icon_state = "atmos_control" - extended_desc = "This program allows remote control of air alarms around the station" + extended_desc = "This program allows remote control of air alarms around the station. This program can not be run on tablet computers." required_access = access_atmospherics requires_ntnet = 1 network_destination = "atmospheric control system" @@ -39,7 +58,7 @@ filedesc = "RCON Remote Control" nanomodule_path = /datum/nano_module/rcon program_icon_state = "generic" - extended_desc = "This program allows remote control of power distribution systems around the station." + extended_desc = "This program allows remote control of power distribution systems around the station. This program can not be run on tablet computers." required_access = access_engine requires_ntnet = 1 network_destination = "RCON remote control system" diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm index fc5cd6391af..1703f55ca78 100644 --- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm +++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm @@ -10,6 +10,7 @@ requires_ntnet_feature = NTNET_SOFTWAREDOWNLOAD available_on_ntnet = 0 nanomodule_path = /datum/nano_module/computer_ntnetdownload/ + ui_header = "downloader_finished.gif" var/datum/computer_file/program/downloaded_file = null var/hacked_download = 0 var/download_completion = 0 //GQ of downloaded data. @@ -32,6 +33,8 @@ if(!computer || !computer.hard_drive || !computer.hard_drive.try_store_file(PRG)) return 0 + ui_header = "downloader_running.gif" + if(PRG in ntnet_global.available_station_software) generate_network_log("Began downloading file [PRG.filename].[PRG.filetype] from NTNet Software Repository.") hacked_download = 0 @@ -50,6 +53,7 @@ generate_network_log("Aborted download of file [hacked_download ? "**ENCRYPTED**" : downloaded_file.filename].[downloaded_file.filetype].") downloaded_file = null download_completion = 0 + ui_header = "downloader_finished.gif" /datum/computer_file/program/ntnetdownload/proc/complete_file_download() if(!downloaded_file) @@ -60,6 +64,7 @@ downloaderror = "I/O ERROR - Unable to save file. Check whether you have enough free space on your hard drive and whether your hard drive is properly connected. If the issue persists contact your system administrator for assistance." downloaded_file = null download_completion = 0 + ui_header = "downloader_finished.gif" /datum/computer_file/program/ntnetdownload/process_tick() if(!downloaded_file) diff --git a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm index 975b2432e83..58a1c82c157 100644 --- a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm @@ -7,8 +7,10 @@ requires_ntnet = 1 requires_ntnet_feature = NTNET_COMMUNICATION network_destination = "NTNRC server" + ui_header = "ntnrc_idle.gif" available_on_ntnet = 1 nanomodule_path = /datum/nano_module/computer_chatclient/ + var/last_message = null // Used to generate the toolbar icon var/username var/datum/ntnet_conversation/channel = null var/operator_mode = 0 // Channel operator mode @@ -35,7 +37,7 @@ . = 1 var/datum/ntnet_conversation/C for(var/datum/ntnet_conversation/chan in ntnet_global.chat_channels) - if(chan.title == href_list["PRG_joinchannel"]) + if(chan.id == text2num(href_list["PRG_joinchannel"])) C = chan break @@ -155,6 +157,21 @@ else channel.password = newpassword +/datum/computer_file/program/chatclient/process_tick() + ..() + if(running) + ui_header = "ntnrc_idle.gif" + if(channel) + // Remember the last message. If there is no message in the channel remember null. + last_message = channel.messages.len ? channel.messages[channel.messages.len - 1] : null + else + last_message = null + return 1 + if(channel && channel.messages && channel.messages.len) + ui_header = last_message == channel.messages[channel.messages.len - 1] ? "ntnrc_idle.gif" : "ntnrc_new.gif" + else + ui_header = "ntnrc_idle.gif" + /datum/computer_file/program/chatclient/kill_program(var/forced = 0) if(channel) channel.remove_client(src) @@ -199,7 +216,8 @@ for(var/datum/ntnet_conversation/conv in ntnet_global.chat_channels) if(conv && conv.title) all_channels.Add(list(list( - "chan" = conv.title + "chan" = conv.title, + "id" = conv.id ))) data["all_channels"] = all_channels @@ -209,4 +227,4 @@ ui.auto_update_layout = 1 ui.set_initial_data(data) ui.open() - ui.set_auto_update(1) \ No newline at end of file + ui.set_auto_update(1) diff --git a/code/modules/modular_computers/hardware/processor_unit.dm b/code/modules/modular_computers/hardware/processor_unit.dm new file mode 100644 index 00000000000..b013a39cd9d --- /dev/null +++ b/code/modules/modular_computers/hardware/processor_unit.dm @@ -0,0 +1,36 @@ +// CPU that allows the computer to run programs. +// Better CPUs are obtainable via research and can run more programs on background. + +/obj/item/weapon/computer_hardware/processor_unit + name = "standard processor" + desc = "A standard CPU used in most computers. It can run up to three programs simultaneously." + icon_state = "cpu_normal" + hardware_size = 2 + power_usage = 50 + critical = 1 + + var/max_idle_programs = 2 // 2 idle, + 1 active = 3 as said in description. + +/obj/item/weapon/computer_hardware/processor_unit/small + name = "standard microprocessor" + desc = "A standard miniaturised CPU used in portable devices. It can run up to two programs simultaneously." + icon_state = "cpu_small" + hardware_size = 1 + power_usage = 25 + max_idle_programs = 1 + +/obj/item/weapon/computer_hardware/processor_unit/photonic + name = "photonic processor" + desc = "An advanced experimental CPU that uses photonic core instead of regular circuitry. It can run up to five programs simultaneously, but uses a lot of power." + icon_state = "cpu_normal_photonic" + hardware_size = 2 + power_usage = 250 + max_idle_programs = 4 + +/obj/item/weapon/computer_hardware/processor_unit/photonic/small + name = "photonic microprocessor" + desc = "An advanced miniaturised CPU for use in portable devices. It uses photonic core instead of regular circuitry. It can run up to three programs simultaneously." + icon_state = "cpu_small_photonic" + hardware_size = 1 + power_usage = 75 + max_idle_programs = 2 \ No newline at end of file diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm index dce72afcb77..31e7fc8381d 100644 --- a/code/modules/modular_computers/laptop_vendor.dm +++ b/code/modules/modular_computers/laptop_vendor.dm @@ -19,6 +19,7 @@ var/total_price = 0 // Price of currently vended device. // Device loadout + var/dev_cpu = 1 // 1: Default, 2: Upgraded var/dev_battery = 1 // 1: Default, 2: Upgraded, 3: Advanced var/dev_disk = 1 // 1: Default, 2: Upgraded, 3: Advanced var/dev_netcard = 0 // 0: None, 1: Basic, 2: Long-Range @@ -36,6 +37,7 @@ if(fabricated_tablet) qdel(fabricated_tablet) fabricated_tablet = null + dev_cpu = 1 dev_battery = 1 dev_disk = 1 dev_netcard = 0 @@ -50,17 +52,25 @@ if(fabricate) fabricated_laptop = new(src) total_price = 99 + switch(dev_cpu) + if(1) + if(fabricate) + fabricated_laptop.cpu.processor_unit = new/obj/item/weapon/computer_hardware/processor_unit/small(fabricated_laptop.cpu) + if(2) + if(fabricate) + fabricated_laptop.cpu.processor_unit = new/obj/item/weapon/computer_hardware/processor_unit(fabricated_laptop.cpu) + total_price += 299 switch(dev_battery) if(1) // Basic(750C) if(fabricate) - fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module(fabricated_tablet) + fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module(fabricated_laptop.cpu) if(2) // Upgraded(1100C) if(fabricate) - fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/advanced(fabricated_tablet) + fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/advanced(fabricated_laptop.cpu) total_price += 199 if(3) // Advanced(1500C) if(fabricate) - fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/super(fabricated_tablet) + fabricated_laptop.cpu.battery_module = new/obj/item/weapon/computer_hardware/battery_module/super(fabricated_laptop.cpu) total_price += 499 switch(dev_disk) if(1) // Basic(128GQ) @@ -100,6 +110,7 @@ else if(devtype == 2) // Tablet, more expensive, not everyone could probably afford this. if(fabricate) fabricated_tablet = new(src) + fabricated_tablet.processor_unit = new/obj/item/weapon/computer_hardware/processor_unit/small(fabricated_tablet) total_price = 199 switch(dev_battery) if(1) // Basic(300C) @@ -169,6 +180,10 @@ state = 2 // Wait for ID swipe for payment processing fabricate_and_recalc_price(0) return 1 + if(href_list["hw_cpu"]) + dev_cpu = text2num(href_list["hw_cpu"]) + fabricate_and_recalc_price(0) + return 1 if(href_list["hw_battery"]) dev_battery = text2num(href_list["hw_battery"]) fabricate_and_recalc_price(0) @@ -213,6 +228,7 @@ data["hw_tesla"] = dev_tesla data["hw_nanoprint"] = dev_nanoprint data["hw_card"] = dev_card + data["hw_cpu"] = dev_cpu data["totalprice"] = "[total_price]$" ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) diff --git a/code/modules/nano/modules/alarm_monitor.dm b/code/modules/nano/modules/alarm_monitor.dm index 839b099d76f..41435c05342 100644 --- a/code/modules/nano/modules/alarm_monitor.dm +++ b/code/modules/nano/modules/alarm_monitor.dm @@ -41,6 +41,14 @@ return all_alarms +// Modified version of above proc that uses slightly less resources, returns 1 if there is a major alarm, 0 otherwise. +/datum/nano_module/alarm_monitor/proc/has_major_alarms() + for(var/datum/alarm_handler/AH in alarm_handlers) + if(AH.has_major_alarms()) + return 1 + + return 0 + /datum/nano_module/alarm_monitor/proc/minor_alarms() var/list/all_alarms = new() for(var/datum/alarm_handler/AH in alarm_handlers) diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index ebc490601d3..2edf11ae521 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -216,7 +216,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 //Transfers blood from reagents to vessel, respecting blood types compatability. /mob/living/carbon/human/inject_blood(var/datum/reagent/blood/injected, var/amount) - if(species.flags & NO_BLOOD) + if(!(species.flags & NO_BLOOD)) reagents.add_reagent("blood", amount, injected.data) reagents.update_total() return diff --git a/code/modules/organs/subtypes/diona.dm b/code/modules/organs/subtypes/diona.dm index 27f63ea5e36..61652aafd44 100644 --- a/code/modules/organs/subtypes/diona.dm +++ b/code/modules/organs/subtypes/diona.dm @@ -153,18 +153,23 @@ /obj/item/organ/diona/strata name = "neural strata" parent_organ = "chest" + organ_tag = "neural strata" + /obj/item/organ/diona/bladder name = "gas bladder" parent_organ = "head" + organ_tag = "gas bladder" /obj/item/organ/diona/polyp name = "polyp segment" parent_organ = "groin" + organ_tag = "polyp segment" /obj/item/organ/diona/ligament name = "anchoring ligament" parent_organ = "groin" + organ_tag = "anchoring ligament" /obj/item/organ/diona name = "diona nymph" @@ -195,7 +200,7 @@ /obj/item/organ/diona/node name = "response node" parent_organ = "head" - organ_tag = "receptor node" + organ_tag = "response node" icon = 'icons/mob/alien.dmi' icon_state = "claw" diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 79cddcf10cb..f2c11b3704d 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -43,6 +43,16 @@ /obj/machinery/power/apc/high cell_type = /obj/item/weapon/cell/high +// Construction site APC, starts turned off +/obj/machinery/power/apc/high/inactive + cell_type = /obj/item/weapon/cell/high + lighting = 0 + equipment = 0 + environ = 0 + locked = 0 + coverlocked = 0 + start_charge = 100 + /obj/machinery/power/apc/super cell_type = /obj/item/weapon/cell/super diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 54415a4990e..9d83c9898bb 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -595,7 +595,7 @@ icon = 'icons/obj/lighting.dmi' force = 2 throwforce = 5 - w_class = 2 + w_class = 1 var/status = 0 // LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN var/base_state var/switchcount = 0 // number of times switched diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm index ebd88df3e2c..681cd2b36ce 100644 --- a/code/modules/power/powernet.dm +++ b/code/modules/power/powernet.dm @@ -148,7 +148,7 @@ // return a knot cable (O-X) if one is present in the turf // null if there's none /turf/proc/get_cable_node() - if(!istype(src, /turf/simulated/floor)) + if(!istype(src, /turf/simulated)) return null for(var/obj/structure/cable/C in src) if(C.d1 == 0) diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index ffb8fc310f4..cf55081eaa9 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -916,6 +916,45 @@ other types of metals and chemistry for reagents). build_path = /obj/item/weapon/computer_hardware/battery_module/micro sort_string = "VBAAU" +/datum/design/item/modularcomponent/cpu/ + name = "computer processor unit" + id = "cpu_normal" + req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 2) + build_type = IMPRINTER + materials = list(DEFAULT_WALL_MATERIAL = 8000) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit + sort_string = "VBAAV" + +/datum/design/item/modularcomponent/cpu/small + name = "computer microprocessor unit" + id = "cpu_small" + req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2) + build_type = IMPRINTER + materials = list(DEFAULT_WALL_MATERIAL = 4000) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit/small + sort_string = "VBAAW" + +/datum/design/item/modularcomponent/cpu/photonic + name = "computer photonic processor unit" + id = "pcpu_normal" + req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 4) + build_type = IMPRINTER + materials = list(DEFAULT_WALL_MATERIAL = 32000, glass = 8000) + chemicals = list("sacid" = 40) + build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic + sort_string = "VBAAX" + +/datum/design/item/modularcomponent/cpu/photonic/small + name = "computer photonic microprocessor unit" + id = "pcpu_small" + req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3) + build_type = IMPRINTER + materials = list(DEFAULT_WALL_MATERIAL = 16000, glass = 4000) + chemicals = list("sacid" = 20) + build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic/small + sort_string = "VBAAY" /* CIRCUITS BELOW */ diff --git a/code/modules/research/xenoarchaeology/tools/tools.dm b/code/modules/research/xenoarchaeology/tools/tools.dm index e16db119c55..bc9d0ca21f5 100644 --- a/code/modules/research/xenoarchaeology/tools/tools.dm +++ b/code/modules/research/xenoarchaeology/tools/tools.dm @@ -30,7 +30,6 @@ icon_state = "satchel" slot_flags = SLOT_BELT | SLOT_POCKET w_class = 3 - storage_slots = 50 - max_storage_space = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class + max_storage_space = 100 max_w_class = 3 can_hold = list(/obj/item/weapon/fossil) diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index aee13ede832..ed4c7f3b061 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -28,7 +28,7 @@ end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/E = tool - user.visible_message("[user] has attached [target]'s [E.name] to the [E.amputation_point].>", \ + user.visible_message("[user] has attached [target]'s [E.name] to the [E.amputation_point].", \ "You have attached [target]'s [E.name] to the [E.amputation_point].") user.drop_from_inventory(E) E.replaced(target) diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index ba9334d933a..7006d4ce069 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -88,7 +88,7 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) user.visible_message("\blue [user] has cut away necrotic tissue in [target]'s [affected.name] with \the [tool].", \ "\blue You have cut away necrotic tissue in [target]'s [affected.name] with \the [tool].") - affected.open = 3 + affected.status &= ~ORGAN_DEAD fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) diff --git a/code/unit_tests/_template.dm b/code/unit_tests/_template.dm new file mode 100644 index 00000000000..200940bd77a --- /dev/null +++ b/code/unit_tests/_template.dm @@ -0,0 +1,38 @@ +/* + * + * Unit Test Template + * This file is not used. + * + */ + +datum/unit_test/template + name = "Test Template - Change My name" // If it's a template leave the word "template" in it's name so it's not ran. + + async = 1 // Set if we should continue testing elsewhere and come back and check on the results. + + +datum/unit_test/template/start_test() + // This must return something, if it's null the unit_test runner will think we runtimed. + // If your test requires any kind of delay use async so we can finish tests faster. + // Be sure and have a pass/fail procs in here if it's not using async. + + if(0) + fail("Zero is somehow True, that sucks") + else + pass("Zero is false, yay") + + + return 1 + +datum/unit_test/template/check_result() + // Only Ran if async is set. Use this proc for checking back if the test passed or not. + // Return 0 if we need to come back again and check this. + // Return 1 if the test is complete. + + // + + pass("Winner is you") + + return 1 + +// ============================================================================ diff --git a/code/unit_tests/mob_tests.dm b/code/unit_tests/mob_tests.dm new file mode 100644 index 00000000000..c247803831e --- /dev/null +++ b/code/unit_tests/mob_tests.dm @@ -0,0 +1,487 @@ + +/* + * + * Mob Unit Tests. + * + * Human suffocation in Space. + * Mob damage Template + * + */ + +#define SUCCESS 1 +#define FAILURE 0 + +// +// Tests Life() and mob breathing in space. +// + + + +datum/unit_test/human_breath + name = "MOB: Human Suffocates in Space" + var/starting_oxyloss = null + var/ending_oxyloss = null + var/mob/living/carbon/human/H + async = 1 + + +datum/unit_test/human_breath/start_test() + var/turf/T = locate(20,20,1) //TODO: Find better way. + + if(!istype(T, /turf/space)) //If the above isn't a space turf then we force it to find one will most likely pick 1,1,1 + T = locate(/turf/space) + + H = new(T) + + starting_oxyloss = damage_check(H, OXY) + + return 1 + +datum/unit_test/human_breath/check_result() + + if(H.life_tick < 10) // Finish Condition + return 0 // Return 0 to try again later. + + ending_oxyloss = damage_check(H, OXY) + + if(starting_oxyloss < ending_oxyloss) + pass("Oxyloss = [ending_oxyloss]") + else + fail("Mob is not taking oxygen damage. Damange is [ending_oxyloss]") + + qdel(H) + return 1 // return 1 to show we're done and don't want to recheck the result. + +// ============================================================================ + +//#define BRUTE "brute" +//#define BURN "fire" +//#define TOX "tox" +//#define OXY "oxy" +//#define CLONE "clone" +//#define HALLOSS "halloss" + + +proc/create_test_mob_with_mind(var/turf/mobloc = null, var/mobtype = /mob/living/carbon/human) + var/list/test_result = list("result" = FAILURE, "msg" = "", "mobref" = null) + + if(isnull(mobloc)) + mobloc = pick(tdome1) + if(!mobloc) + test_result["msg"] = "Unable to find a location to create test mob" + return test_result + + var/mob/living/carbon/human/H = new mobtype(mobloc) + + H.mind_initialize("TestKey[rand(0,10000)]") + + test_result["result"] = SUCCESS + test_result["msg"] = "Mob created" + test_result["mobref"] = "\ref[H]" + + return test_result + +//Generic Check +// TODO: Need to make sure I didn't just recreate the wheel here. + +proc/damage_check(var/mob/living/M, var/damage_type) + var/loss = null + + switch(damage_type) + if(BRUTE) + loss = M.getBruteLoss() + if(BURN) + loss = M.getFireLoss() + if(TOX) + loss = M.getToxLoss() + if(OXY) + loss = M.getOxyLoss() + if(CLONE) + loss = M.getCloneLoss() + if(HALLOSS) + loss = M.getHalLoss() + + if(!loss && istype(M, /mob/living/carbon/human)) // Revert IPC's when? + var/mob/living/carbon/human/H = M // IPC's have robot limbs which don't report damage to getXXXLoss() + if(istype(H.species, /datum/species/machine)) // So we have ot hard code this check or create a different one for them. + return 100 - H.health // TODO: Find better way to do this then hardcoding this formula + + return loss + +// ============================================================================================================== + +// +//DAMAGE EXPECTATIONS +// used with expectected_vunerability + +#define STANDARD 0 // Will take standard damage (damage_ratio of 1) +#define ARMORED 1 // Will take less damage than applied +#define EXTRA_VULNERABLE 2 // Will take more dmage than applied +#define IMMUNE 3 // Will take no damage + +//============================================================================================================== + + +datum/unit_test/mob_damage + name = "MOB: Template for mob damage" + var/mob/living/carbon/human/testmob = null + var/damagetype = BRUTE + var/mob_type = /mob/living/carbon/human + var/expected_vulnerability = STANDARD + var/check_health = 0 + var/damage_location = "chest" + +datum/unit_test/mob_damage/start_test() + var/list/test = create_test_mob_with_mind(null, mob_type) + var/damage_amount = 5 // Do not raise, if damage >= 10 there is a % chance to reduce damage by half in /obj/item/organ/external/take_damage() + // Which makes checks impossible. + + if(isnull(test)) + fail("Check Runtimed in Mob creation") + + if(test["result"] == FAILURE) + fail(test["msg"]) + return 0 + + var/mob/living/carbon/human/H = locate(test["mobref"]) + + if(isnull(H)) + fail("Test unable to set test mob from reference") + return 0 + + if(H.stat) + + fail("Test needs to be re-written, mob has a stat = [H.stat]") + return 0 + + if(H.sleeping) + fail("Test needs to be re-written, mob is sleeping for some unknown reason") + return 0 + + // Damage the mob + + var/initial_health = H.health + + H.apply_damage(damage_amount, damagetype, damage_location) + + H.updatehealth() // Just in case, though at this time apply_damage does this for us. + // We operate with the assumption that someone might mess with that proc one day. + + var/ending_damage = damage_check(H, damagetype) + + var/ending_health = H.health + + // Now test this stuff. + + var/failure = 0 + + var/damage_ratio = STANDARD + + if (ending_damage == 0) + damage_ratio = IMMUNE + + else if (ending_damage < damage_amount) + damage_ratio = ARMORED + + else if (ending_damage > damage_amount) + damage_ratio = EXTRA_VULNERABLE + + if(damage_ratio != expected_vulnerability) + failure = 1 + + // Now generate the message for this test. + + var/expected_msg = null + + switch(expected_vulnerability) + if(STANDARD) + expected_msg = "to take standard damage" + if(ARMORED) + expected_msg = "To take less damage" + if(EXTRA_VULNERABLE) + expected_msg = "To take extra damage" + if(IMMUNE) + expected_msg = "To take no damage" + + + var/msg = "Damage taken: [ending_damage] out of [damage_amount] || expected: [expected_msg] \[Overall Health:[ending_health] (Initial: [initial_health]\]" + + if(failure) + fail(msg) + else + pass(msg) + + qdel(H) + + return 1 + +// ================================================================= +// Human damage check. +// ================================================================= + +datum/unit_test/mob_damage/brute + name = "MOB: Human Brute damage check" + damagetype = BRUTE + +datum/unit_test/mob_damage/fire + name = "MOB: Human Fire damage check" + damagetype = BURN + +datum/unit_test/mob_damage/tox + name = "MOB: Human Toxin damage check" + damagetype = TOX + +datum/unit_test/mob_damage/oxy + name = "MOB: Human Oxygen damage check" + damagetype = OXY + +datum/unit_test/mob_damage/clone + name = "MOB: Human Clone damage check" + damagetype = CLONE + +datum/unit_test/mob_damage/halloss + name = "MOB: Human Halloss damage check" + damagetype = HALLOSS + +// ================================================================= +// Unathi +// ================================================================= + +datum/unit_test/mob_damage/unathi + name = "MOB: Unathi damage check template" + mob_type = /mob/living/carbon/human/unathi + +datum/unit_test/mob_damage/unathi/brute + name = "MOB: Unathi Brute Damage Check" + damagetype = BRUTE + expected_vulnerability = ARMORED + +datum/unit_test/mob_damage/unathi/fire + name = "MOB: Unathi Fire Damage Check" + damagetype = BURN + +datum/unit_test/mob_damage/unathi/tox + name = "MOB: Unathi Toxins Damage Check" + damagetype = TOX + +datum/unit_test/mob_damage/unathi/oxy + name = "MOB: Unathi Oxygen Damage Check" + damagetype = OXY + +datum/unit_test/mob_damage/unathi/clone + name = "MOB: Unathi Clone Damage Check" + damagetype = CLONE + +datum/unit_test/mob_damage/unathi/halloss + name = "MOB: Unathi Halloss Damage Check" + damagetype = HALLOSS + +// ================================================================= +// SpessKahjit aka Tajaran +// ================================================================= + +datum/unit_test/mob_damage/tajaran + name = "MOB: Tajaran damage check template" + mob_type = /mob/living/carbon/human/tajaran + +datum/unit_test/mob_damage/tajaran/brute + name = "MOB: Tajaran Brute Damage Check" + damagetype = BRUTE + expected_vulnerability = EXTRA_VULNERABLE + +datum/unit_test/mob_damage/tajaran/fire + name = "MOB: Tajaran Fire Damage Check" + damagetype = BURN + expected_vulnerability = EXTRA_VULNERABLE + +datum/unit_test/mob_damage/tajaran/tox + name = "MOB: Tajaran Toxins Damage Check" + damagetype = TOX + +datum/unit_test/mob_damage/tajaran/oxy + name = "MOB: Tajaran Oxygen Damage Check" + damagetype = OXY + +datum/unit_test/mob_damage/tajaran/clone + name = "MOB: Tajaran Clone Damage Check" + damagetype = CLONE + +datum/unit_test/mob_damage/tajaran/halloss + name = "MOB: Tajaran Halloss Damage Check" + damagetype = HALLOSS + +// ================================================================= +// Resomi +// ================================================================= + +datum/unit_test/mob_damage/resomi + name = "MOB: Resomi damage check template" + mob_type = /mob/living/carbon/human/resomi + +datum/unit_test/mob_damage/resomi/brute + name = "MOB: Resomi Brute Damage Check" + damagetype = BRUTE + expected_vulnerability = EXTRA_VULNERABLE + +datum/unit_test/mob_damage/resomi/fire + name = "MOB: Resomi Fire Damage Check" + damagetype = BURN + expected_vulnerability = EXTRA_VULNERABLE + +datum/unit_test/mob_damage/resomi/tox + name = "MOB: Resomi Toxins Damage Check" + damagetype = TOX + +datum/unit_test/mob_damage/resomi/oxy + name = "MOB: Resomi Oxygen Damage Check" + damagetype = OXY + +datum/unit_test/mob_damage/resomi/clone + name = "MOB: Resomi Clone Damage Check" + damagetype = CLONE + +datum/unit_test/mob_damage/resomi/halloss + name = "MOB: Resomi Halloss Damage Check" + damagetype = HALLOSS + +// ================================================================= +// Skrell +// ================================================================= + +datum/unit_test/mob_damage/skrell + name = "MOB: Skrell damage check template" + mob_type = /mob/living/carbon/human/skrell + +datum/unit_test/mob_damage/skrell/brute + name = "MOB: Skrell Brute Damage Check" + damagetype = BRUTE + +datum/unit_test/mob_damage/skrell/fire + name = "MOB: Skrell Fire Damage Check" + damagetype = BURN + +datum/unit_test/mob_damage/skrell/tox + name = "MOB: Skrell Toxins Damage Check" + damagetype = TOX + +datum/unit_test/mob_damage/skrell/oxy + name = "MOB: Skrell Oxygen Damage Check" + damagetype = OXY + +datum/unit_test/mob_damage/skrell/clone + name = "MOB: Skrell Clone Damage Check" + damagetype = CLONE + +datum/unit_test/mob_damage/skrell/halloss + name = "MOB: Skrell Halloss Damage Check" + damagetype = HALLOSS + +// ================================================================= +// Vox +// ================================================================= + +datum/unit_test/mob_damage/vox + name = "MOB: Vox damage check template" + mob_type = /mob/living/carbon/human/vox + +datum/unit_test/mob_damage/vox/brute + name = "MOB: Vox Brute Damage Check" + damagetype = BRUTE + +datum/unit_test/mob_damage/vox/fire + name = "MOB: Vox Fire Damage Check" + damagetype = BURN + +datum/unit_test/mob_damage/vox/tox + name = "MOB: Vox Toxins Damage Check" + damagetype = TOX + +datum/unit_test/mob_damage/vox/oxy + name = "MOB: Vox Oxygen Damage Check" + damagetype = OXY + +datum/unit_test/mob_damage/vox/clone + name = "MOB: Vox Clone Damage Check" + damagetype = CLONE + expected_vulnerability = IMMUNE + + +datum/unit_test/mob_damage/vox/halloss + name = "MOB: Vox Halloss Damage Check" + damagetype = HALLOSS + +// ================================================================= +// Diona +// ================================================================= + +datum/unit_test/mob_damage/diona + name = "MOB: Diona damage check template" + mob_type = /mob/living/carbon/human/diona + +datum/unit_test/mob_damage/diona/brute + name = "MOB: Diona Brute Damage Check" + damagetype = BRUTE + +datum/unit_test/mob_damage/diona/fire + name = "MOB: Diona Fire Damage Check" + damagetype = BURN + +datum/unit_test/mob_damage/diona/tox + name = "MOB: Diona Toxins Damage Check" + damagetype = TOX + +datum/unit_test/mob_damage/diona/oxy + name = "MOB: Diona Oxygen Damage Check" + damagetype = OXY + expected_vulnerability = IMMUNE + +datum/unit_test/mob_damage/diona/clone + name = "MOB: Diona Clone Damage Check" + damagetype = CLONE + expected_vulnerability = IMMUNE + +datum/unit_test/mob_damage/diona/halloss + name = "MOB: Diona Halloss Damage Check" + damagetype = HALLOSS + +// ================================================================= +// SPECIAL WHITTLE SNOWFLAKES aka IPC +// ================================================================= + +datum/unit_test/mob_damage/machine + name = "MOB: IPC damage check template" + mob_type = /mob/living/carbon/human/machine + +datum/unit_test/mob_damage/machine/brute + name = "MOB: IPC Brute Damage Check" + damagetype = BRUTE + expected_vulnerability = EXTRA_VULNERABLE + +datum/unit_test/mob_damage/machine/fire + name = "MOB: IPC Fire Damage Check" + damagetype = BURN + expected_vulnerability = EXTRA_VULNERABLE + +datum/unit_test/mob_damage/machine/tox + name = "MOB: IPC Toxins Damage Check" + damagetype = TOX + expected_vulnerability = IMMUNE + +datum/unit_test/mob_damage/machine/oxy + name = "MOB: IPC Oxygen Damage Check" + damagetype = OXY + expected_vulnerability = IMMUNE + +datum/unit_test/mob_damage/machine/clone + name = "MOB: IPC Clone Damage Check" + damagetype = CLONE + expected_vulnerability = IMMUNE + +datum/unit_test/mob_damage/machine/halloss + name = "MOB: IPC Halloss Damage Check" + damagetype = HALLOSS + +#undef VULNERABLE +#undef IMMUNE +#undef SUCCESS +#undef FAILURE diff --git a/code/unit_tests/unit_test.dm b/code/unit_tests/unit_test.dm new file mode 100644 index 00000000000..dac62a552eb --- /dev/null +++ b/code/unit_tests/unit_test.dm @@ -0,0 +1,159 @@ +/* Unit Tests originally designed by Ccomp5950 + * + * Tests are created to prevent changes that would create bugs or change expected behaviour. + * For the most part I think any test can be created that doesn't require a client in a mob or require a game mode other then extended + * + * The easiest way to make effective tests is to create a "template" if you intend to run the same test over and over and make your actual + * tests be a "child object" of those templates. Be sure and name your templates with the word "template" somewhere in var/name. + * + * The goal is to have all sorts of tests that run and to run them as quickly as possible. + * + * Tests that require time to run we instead just check back on their results later instead of waiting around in a sleep(1) for each test. + * This allows us to finish unit testing quicker since we can start other tests while we're waiting on that one to finish. + * + * An example of that is listed in mob_tests.dm with the human_breath test. We spawn the mob in space and set the async flag to 1 so that we run the check later. + * After 10 life ticks for that mob we check it's oxyloss but while that is going on we've already ran other tests. + * + * If your test requires a significant amount of time...cheat on the timers. Either speed up the process/life runs or do as we did in the timers for the shuttle + * transfers in zas_tests.dm we move a shuttle but instead of waiting 3 minutes we set the travel time to a very low number. + * + * At the same time, Unit tests are intended to reflect standard usage so avoid changing to much about how stuff is processed. + * + * + * WRITE UNIT TEST TEMPLATES AS GENERIC AS POSSIBLE (makes for easy reusability) + * + */ + + +var/all_unit_tests_passed = 1 +var/failed_unit_tests = 0 +var/total_unit_tests = 0 + +// For console out put in Linux/Bash makes the output green or red. +// Should probably only be used for unit tests/Travis since some special folks use winders to host servers. +var/ascii_esc = ascii2text(27) +var/ascii_red = "[ascii_esc]\[31m" +var/ascii_green = "[ascii_esc]\[32m" +var/ascii_reset = "[ascii_esc]\[0m" + + +// We list these here so we can remove them from the for loop running this. +// Templates aren't intended to be ran but just serve as a way to create child objects of it with inheritable tests for quick test creation. + +datum/unit_test + var/name = "template - should not be ran." + var/disabled = 0 // If we want to keep a unit test in the codebase but not run it for some reason. + var/async = 0 // If the check can be left to do it's own thing, you must define a check_result() proc if you use this. + var/reported = 0 // If it's reported a success or failure. Any tests that have not are assumed to be failures. + var/why_disabled = "No reason set." // If we disable a unit test we will display why so it reminds us to check back on it later. + + +datum/unit_test/proc/fail(var/message) + all_unit_tests_passed = 0 + failed_unit_tests++ + reported = 1 + log_unit_test("[ascii_red]!!! FAILURE !!! \[[name]\]: [message][ascii_reset]") + +datum/unit_test/proc/pass(var/message) + reported = 1 + log_unit_test("[ascii_green]*** SUCCESS *** \[[name]\]: [message][ascii_reset]") + +datum/unit_test/proc/start_test() + fail("No test proc.") + +datum/unit_test/proc/check_result() + fail("No check results proc") + return 1 + + +proc/load_unit_test_changes() +/* + //This takes about 60 seconds to run on Travis and is only used for the ZAS vacume check on The Asteroid. + if(config.generate_asteroid != 1) + log_unit_test("Overiding Configuration option for Asteroid Generation to ENABLED") + config.generate_asteroid = 1 // The default map requires it, the example config doesn't have this enabled. + */ + + + + +proc/initialize_unit_tests() + log_unit_test("Initializing Unit Testing") + + // + //Start the Round. + // + + if(!ticker) + crash_with("No Ticker") + world.Del() + + var/said_msg = 0 + while(ticker.pregame_timeleft && ticker.pregame_timeleft > 160) // Make sure the initial startup is complete. + if(ticker.pregame_timeleft < 175 && !said_msg) + said_msg = 1 + log_unit_test("Pregame Count down has started, giving it 20 seconds to finish.") + sleep(1) + + world.save_mode("extended") + + sleep(1) + + ticker.current_state = GAME_STATE_SETTING_UP + + log_unit_test("Round has been started. Waiting 10 seconds to start tests.") + sleep(100) + + // + // Run Tests + // + + var/list/test_datums = typesof(/datum/unit_test) + + var/list/async_test = list() + var/list/started_tests = list() + + log_unit_test("Testing Started.") + + for (var/test in test_datums) + var/datum/unit_test/d = new test() + + if(d.disabled) + d.pass("[ascii_red]Check Disabled: [d.why_disabled]") + continue + + if(findtext(d.name, "template")) + continue + + if(isnull(d.start_test())) // Start the test. + d.fail("Test Runtimed") + if(d.async) // If it's async then we'll need to check back on it later. + async_test.Add(d) + total_unit_tests++ + + + + // + // Check the async tests to see if they are finished. + // + + while(async_test.len) + for(var/datum/unit_test/test in async_test) + if(test.check_result()) + async_test.Remove(test) + sleep(1) + + // + // Make sure all Unit Tests reported a result + // + + for(var/datum/unit_test/test in started_tests) + if(!test.reported) + test.fail("Test failed to report a result.") + + if(all_unit_tests_passed) + log_unit_test("[ascii_green]**** All Unit Tests Passed \[[total_unit_tests]\] ****[ascii_reset]") + world.Del() + else + log_unit_test("[ascii_red]**** \[[failed_unit_tests]\\[total_unit_tests]\] Unit Tests Failed ****[ascii_reset]") + world.Del() diff --git a/code/unit_tests/zas_tests.dm b/code/unit_tests/zas_tests.dm new file mode 100644 index 00000000000..8d1d04f64ee --- /dev/null +++ b/code/unit_tests/zas_tests.dm @@ -0,0 +1,221 @@ +/* + * + * Zas Unit Tests. + * Shuttle Pressurized. + * + * + */ + +#define UT_NORMAL 1 // Standard one atmosphere 20celsius +#define UT_VACUUM 2 // Vacume on simulated turfs +#define UT_NORMAL_COLD 3 // Cold but standard atmosphere. + +#define FAILURE 0 +#define SUCCESS 1 + +// +// Generic check for an area. +// + +datum/unit_test/zas_area_test + name = "ZAS: Area Test Template" + var/area_path = null // Put the area you are testing here. + var/expectation = UT_NORMAL // See defines above. + +datum/unit_test/zas_area_test/start_test() + var/list/test = test_air_in_area(area_path, expectation) + + if(isnull(test)) + fail("Check Runtimed") + + if(test["result"] == SUCCESS) + pass(test["msg"]) + else + fail(test["msg"]) + return 1 + +// ================================================================================================== + +// +// The primary helper proc. +// +proc/test_air_in_area(var/test_area, var/expectation = UT_NORMAL) + var/test_result = list("result" = FAILURE, "msg" = "") + + var/area/A = locate(test_area) + + if(!istype(A, test_area)) + test_result["msg"] = "Unable to get [test_area]" + return test_result + + var/list/GM_checked = list() + + for(var/turf/simulated/T in A) + + if(!istype(T) || isnull(T.zone) || istype(T, /turf/simulated/floor/airless)) + continue + if(T.zone.air in GM_checked) + continue + + var/t_msg = "Turf: [T] | Location: [T.x] // [T.y] // [T.z]" + + var/datum/gas_mixture/GM = T.return_air() + var/pressure = GM.return_pressure() + var/temp = GM.temperature + + switch(expectation) + + if(UT_VACUUM) + if(pressure > 10) + test_result["msg"] = "Pressure out of bounds: [pressure] | [t_msg]" + return test_result + + + if(UT_NORMAL || UT_NORMAL_COLD) + if(abs(pressure - ONE_ATMOSPHERE) > 10) + test_result["msg"] = "Pressure out of bounds: [pressure] | [t_msg]" + return test_result + + if(expectation == UT_NORMAL) + + if(abs(temp - T20C) > 10) + test_result["msg"] = "Temperature out of bounds: [temp] | [t_msg]" + return test_result + + if(expectation == UT_NORMAL_COLD) + + if(temp > 120) + test_result["msg"] = "Temperature out of bounds: [temp] | [t_msg]" + return test_result + + GM_checked.Add(GM) + + if(GM_checked.len) + test_result["result"] = SUCCESS + test_result["msg"] = "Checked [GM_checked.len] zones" + else + test_result["msg"] = "No zones checked." + + return test_result + + +// ================================================================================================== + +datum/unit_test/zas_area_test/supply_centcomm + name = "ZAS: Supply Shuttle (CentComm)" + area_path = /area/supply/dock + +datum/unit_test/zas_area_test/emergency_shuttle + name = "ZAS: Emergency Shuttle" + area_path = /area/shuttle/escape/centcom + +datum/unit_test/zas_area_test/ai_chamber + name = "ZAS: AI Chamber" + area_path = /area/turret_protected/ai + +datum/unit_test/zas_area_test/arrival_maint + name = "ZAS: Arrival Maintenance" + area_path = /area/maintenance/arrivals + +datum/unit_test/zas_area_test/mining_shuttle_at_station + name = "ZAS: Mining Shuttle (Station)" + area_path = /area/shuttle/mining/station + +datum/unit_test/zas_area_test/ + name = "ZAS: Cargo Maintenance" + area_path = /area/maintenance/cargo + +datum/unit_test/zas_area_test/eng_shuttle + name = "ZAS: Construction Site Shuttle (Station)" + area_path = /area/shuttle/constructionsite/station + +datum/unit_test/zas_area_test/incinerator + name = "ZAS: Incinerator" + area_path = /area/maintenance/incinerator + disabled = 1 + why_disabled = "Incernator blast doors not blocking air flow. See bug #11846" + +datum/unit_test/zas_area_test/virology + name = "ZAS: Virology" + area_path = /area/medical/virology + +datum/unit_test/zas_area_test/xenobio + name = "ZAS: Xenobiology" + area_path = /area/rnd/xenobiology + +datum/unit_test/zas_area_test/research_maint_starboard + name = "ZAS: Research Starboard Maintenance" + area_path = /area/maintenance/research_starboard + +datum/unit_test/zas_area_test/west_hall_mining_outpost + name = "ZAS: Mining outpost West Hallway" + area_path = /area/outpost/mining_main/west_hall + +/* +datum/unit_test/zas_area_test/mining_area + name = "ZAS: Mining Area (Vacuum)" + area_path = /area/mine/explored + expectation = UT_VACUUM + disabled = 1 + why_disabled = "Asteroid Generation disabled" + */ +datum/unit_test/zas_area_test/ + name = "ZAS: Cargo Bay" + area_path = /area/quartermaster/storage + + +// ================================================================================================== + + +// Here we move a shuttle then test it's area once the shuttle has arrived. + +datum/unit_test/zas_supply_shuttle_moved + name = "ZAS: Supply Shuttle (When Moved)" + async=1 // We're moving the shuttle using built in procs. + + var/datum/shuttle/ferry/supply/Shuttle = null + +datum/unit_test/zas_supply_shuttle_moved/start_test() + + if(!shuttle_controller || !shuttle_controller.shuttles.len) + fail("Shuttle Controller not setup at time of test.") + + Shuttle = shuttle_controller.shuttles["Supply"] + supply_controller.movetime = 5 // Speed up the shuttle movement. + + if(isnull(Shuttle)) + fail("Unable to locate the supply shuttle") + + // Initiate the Move. + Shuttle.short_jump(Shuttle.area_offsite, Shuttle.area_station) + + sleep(20) // Give the shuttle some time to do it's thing. + + return 1 + +datum/unit_test/zas_supply_shuttle_moved/check_result() + if(Shuttle.moving_status == SHUTTLE_IDLE && !Shuttle.at_station()) + fail("Shuttle Did not Move") + return 1 + + if(!Shuttle.at_station()) + return 0 + + sleep(20) // Give ZAS a chance to catchup. + + var/list/test = test_air_in_area(/area/supply/station) + if(isnull(test)) + fail("Check Runtimed") + return 1 + + if(test["result"] == SUCCESS) + pass(test["msg"]) + else + fail(test["msg"]) + return 1 + +#undef UT_NORMAL +#undef UT_VACUUM +#undef UT_NORMAL_COLD +#undef SUCCESS +#undef FAILURE diff --git a/code/world.dm b/code/world.dm index e526ab563d2..0f4ac11f631 100644 --- a/code/world.dm +++ b/code/world.dm @@ -39,7 +39,7 @@ var/global/datum/global_init/init = new () -#define RECOMMENDED_VERSION 501 +#define RECOMMENDED_VERSION 509 /world/New() //logs var/date_string = time2text(world.realtime, "YYYY/MM-Month/DD-Day") @@ -69,8 +69,19 @@ var/global/datum/global_init/init = new () . = ..() +#ifndef UNIT_TEST + sleep_offline = 1 +#else + + log_unit_test("Unit Tests Enabled. This will destroy the world when testing is complete.") + log_unit_test("If you did not intend to enable this please check code/__defines/unit_testing.dm") + + load_unit_test_changes() + +#endif + // Set up roundstart seed list. plant_controller = new() @@ -104,6 +115,11 @@ var/global/datum/global_init/init = new () processScheduler.deferSetupFor(/datum/controller/process/ticker) processScheduler.setup() master_controller.setup() +#ifdef UNIT_TEST + initialize_unit_tests() +#endif + + spawn(3000) //so we aren't adding to the round-start lag if(config.ToRban) diff --git a/html/changelogs/RavingManiac-PR-10095.yml b/html/changelogs/RavingManiac-PR-10095.yml new file mode 100644 index 00000000000..05c9267af93 --- /dev/null +++ b/html/changelogs/RavingManiac-PR-10095.yml @@ -0,0 +1,6 @@ +author: RavingManiac + +delete-after: True + +changes: + - rscadd: "Storage in backpacks, boxes and other containers is now capacity-based. Some containers like belts remain slot-based." diff --git a/html/changelogs/chinsky - stuff.yml b/html/changelogs/chinsky - stuff.yml new file mode 100644 index 00000000000..c9fa37ab16f --- /dev/null +++ b/html/changelogs/chinsky - stuff.yml @@ -0,0 +1,5 @@ +author: Chinsky + +delete-after: True +changes: + - bugfix: "Can pick up monkeys / undress resomi now properly. HELP intent for scooping, NON-HELP for undressing." diff --git a/icons/mob/screen1.dmi b/icons/mob/screen1.dmi index 8181013f7ee..d2220fffd14 100644 Binary files a/icons/mob/screen1.dmi and b/icons/mob/screen1.dmi differ diff --git a/icons/obj/modular_components.dmi b/icons/obj/modular_components.dmi index e2aca17340a..3594a12c17f 100644 Binary files a/icons/obj/modular_components.dmi and b/icons/obj/modular_components.dmi differ diff --git a/icons/obj/modular_console.dmi b/icons/obj/modular_console.dmi index 7cadca65092..3b852ddb576 100644 Binary files a/icons/obj/modular_console.dmi and b/icons/obj/modular_console.dmi differ diff --git a/icons/obj/modular_laptop.dmi b/icons/obj/modular_laptop.dmi index 583def71e50..8ee252055cf 100644 Binary files a/icons/obj/modular_laptop.dmi and b/icons/obj/modular_laptop.dmi differ diff --git a/icons/obj/modular_tablet.dmi b/icons/obj/modular_tablet.dmi index fb0e1fd9c92..1872315f49f 100644 Binary files a/icons/obj/modular_tablet.dmi and b/icons/obj/modular_tablet.dmi differ diff --git a/icons/policetape.dmi b/icons/policetape.dmi index 0422ecb22f3..42095beef70 100644 Binary files a/icons/policetape.dmi and b/icons/policetape.dmi differ diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 0c9ee108997..a63e8658a69 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -247,7 +247,7 @@ "aeM" = (/obj/machinery/deployable/barrier,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/security/warden) "aeN" = (/obj/structure/closet/l3closet/security,/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_y = 32},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/security/warden) "aeO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/security/warden) -"aeP" = (/obj/structure/table/rack{pixel_y = 6},/obj/machinery/door/window/brigdoor/eastleft{name = "Sub-Armory Storage"; req_access = list(2)},/obj/machinery/door/window/brigdoor/westleft{name = "Sub-Armory Storage"; req_access = list(3)},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/door/blast/shutters{dir = 2; id = "subarmory"; name = "Sub-Armory Storage"},/turf/simulated/floor/tiled/red,/area/security/warden) +"aeP" = (/obj/structure/table/rack{pixel_y = 6},/obj/machinery/door/window/brigdoor/eastleft{name = "Sub-Armory Storage"; req_access = list(2)},/obj/machinery/door/window/brigdoor/westleft{name = "Sub-Armory Storage"; req_access = list(3)},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{dir = 2; id = "subarmory"; name = "Sub-Armory Storage"},/turf/simulated/floor/tiled/red,/area/security/warden) "aeQ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/security_starboard) "aeR" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/maintenance/security_starboard) "aeS" = (/turf/simulated/wall/r_wall,/area/maintenance/security_starboard) @@ -1567,7 +1567,7 @@ "aEg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/dark,/area/gateway) "aEh" = (/obj/structure/table/woodentable,/obj/machinery/reagentgrinder,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/packageWrap,/obj/machinery/camera/network/civilian_east{c_tag = "Bar Backroom"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aEi" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/dark,/area/gateway) -"aEj" = (/obj/machinery/vending/tool,/turf/simulated/floor,/area/storage/primary) +"aEj" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled,/area/storage/primary) "aEk" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Hardsuits"; req_one_access = list(11,24)},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) "aEl" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) "aEm" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva) @@ -1650,7 +1650,7 @@ "aFL" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/primary/fore) "aFM" = (/obj/structure/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aFN" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/fore) -"aFO" = (/obj/machinery/lapvend,/turf/simulated/floor,/area/storage/primary) +"aFO" = (/obj/machinery/lapvend,/turf/simulated/floor/tiled,/area/storage/primary) "aFP" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/fore) "aFQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/maintenance/dormitory) "aFR" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{name = "Powernet Sensor - Civilian East Subgrid"; name_tag = "Civilian East Subgrid"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) @@ -1743,7 +1743,7 @@ "aHA" = (/turf/simulated/floor/tiled/dark,/area/chapel/main) "aHB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/hatch{name = "Command Substation"; req_one_access = list(11,24)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/substation/command) "aHC" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{name = "Coffin Storage"; req_access = list(22)},/turf/simulated/floor/tiled/dark,/area/chapel/main) -"aHD" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/dark,/area/chapel/main) +"aHD" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/button/remote/driver{id = "chapelgun"; pixel_x = 24; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/chapel/main) "aHE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/dark,/area/chapel/main) "aHF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/plating,/area/chapel/main) "aHG" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access = list(22)},/obj/machinery/mass_driver{dir = 4; id = "chapelgun"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/airlock_sensor{pixel_y = 25},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/plating,/area/chapel/main) @@ -1813,7 +1813,7 @@ "aIS" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "aIT" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet) "aIU" = (/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet) -"aIV" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) +"aIV" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/tiled,/area/storage/primary) "aIW" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/evahallway) "aIX" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/evahallway) "aIY" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet) @@ -1889,7 +1889,7 @@ "aKq" = (/obj/machinery/suit_cycler/mining,/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/eva) "aKr" = (/obj/structure/reagent_dispensers/watertank,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) "aKs" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) -"aKt" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor,/area/storage/primary) +"aKt" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor/tiled,/area/storage/primary) "aKu" = (/turf/simulated/wall/r_wall,/area/hallway/primary/port) "aKv" = (/obj/machinery/door/firedoor/border_only,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) "aKw" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/ai_monitored/storage/eva) @@ -1911,7 +1911,7 @@ "aKM" = (/obj/machinery/light,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/toilet) "aKN" = (/obj/machinery/door/airlock{name = "Bar Backroom"; req_access = list(25)},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/lino,/area/crew_quarters/bar) "aKO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/bar) -"aKP" = (/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) +"aKP" = (/obj/machinery/door/airlock/command{id_tag = "hopdoor"; name = "Head of Personnel"; req_access = list(57)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) "aKQ" = (/obj/structure/closet/chefcloset,/obj/machinery/light/small{dir = 1},/obj/item/device/eftpos{eftpos_name = "Kitchen EFTPOS scanner"},/obj/item/glass_jar,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) "aKR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/chapel/main) "aKS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen) @@ -2921,7 +2921,7 @@ "bei" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bej" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bek" = (/obj/effect/floor_decal/chapel,/turf/simulated/floor/tiled/dark,/area/chapel/main) -"bel" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green,/obj/effect/floor_decal/corner/white{dir = 8},/obj/effect/floor_decal/corner/red{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/exit) +"bel" = (/obj/structure/cable/green,/obj/effect/floor_decal/corner/white{dir = 8},/obj/effect/floor_decal/corner/red{dir = 1},/obj/machinery/power/apc/super/critical{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/hallway/secondary/exit) "bem" = (/obj/machinery/light/small,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/bar) "ben" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/secondary/exit) "beo" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/exit) @@ -4465,7 +4465,7 @@ "bHS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera/network/exodus{c_tag = "Primary Hallway Central - South Southwest"},/obj/structure/sign/securearea{pixel_y = 32},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_three) "bHT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_three) "bHU" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/central_three) -"bHV" = (/obj/machinery/door/airlock/command{id_tag = "hopdoor"; name = "Head of Personnel"; req_access = list(57)},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bHV" = (/obj/machinery/power/apc/high{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/network/research{c_tag = "Research - Server Room"},/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/nitrogen/prechilled,/turf/simulated/floor/tiled/dark,/area/server) "bHW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/central_three) "bHX" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/hallway/primary/central_three) "bHY" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_three) @@ -4508,7 +4508,7 @@ "bIJ" = (/turf/simulated/wall,/area/rnd/storage) "bIK" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"; pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/engineering) "bIL" = (/obj/item/device/radio/intercom{dir = 2; pixel_y = 22},/obj/effect/floor_decal/corner/purple/diagonal{dir = 4},/obj/machinery/modular_computer/console/preset/research,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) -"bIM" = (/obj/machinery/power/apc/high{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/network/research{c_tag = "Research - Server Room"},/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled/dark,/area/server) +"bIM" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/nitrogen/prechilled,/turf/simulated/floor/plating,/area/engineering/engine_room) "bIN" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/rnd/mixing) "bIO" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer_1"; use_power = 1; power_setting = 20; set_temperature = 73},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/server) "bIP" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/rnd/storage) @@ -4604,9 +4604,9 @@ "bKB" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/hor) "bKC" = (/obj/machinery/modular_computer/console/preset/engineering,/turf/simulated/floor/tiled,/area/crew_quarters/heads/chief) "bKD" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/heads/hor) -"bKE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/rnd/test_area) -"bKF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/rnd/test_area) -"bKG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/rnd/test_area) +"bKE" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/airless,/area/rnd/test_area) +"bKF" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/tiled/airless,/area/rnd/test_area) +"bKG" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "bKH" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/mining/station) "bKI" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/mining/station) "bKJ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/mining/station) @@ -4639,6 +4639,7 @@ "bLk" = (/obj/effect/floor_decal/corner/purple,/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled/white,/area/rnd/research) "bLl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay4) "bLm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay4) +"bLn" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "bLo" = (/turf/simulated/wall,/area/medical/genetics_cloning) "bLp" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bLq" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor/plating,/area/medical/genetics) @@ -4675,14 +4676,10 @@ "bLV" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/modular_computer/console/preset/engineering,/turf/simulated/floor/tiled,/area/engineering/break_room) "bLW" = (/obj/item/weapon/tank/emergency_oxygen/engi,/obj/random/tech_supply,/obj/structure/table/steel,/turf/simulated/floor,/area/construction) "bLX" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/shuttle/floor,/area/shuttle/mining/station) -"bLY" = (/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "bLZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/quartermaster/miningdock) -"bMa" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "bMb" = (/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) -"bMc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/rnd/test_area) "bMd" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/rnd/test_area) "bMe" = (/turf/simulated/floor/tiled/airless,/area/rnd/test_area) -"bMf" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/tiled/airless,/area/rnd/test_area) "bMg" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/mining/station) "bMh" = (/obj/machinery/computer/shuttle_control/mining,/obj/effect/floor_decal/corner/brown/full{dir = 8},/turf/simulated/floor/tiled,/area/quartermaster/miningdock) "bMi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/miningdock) @@ -4770,7 +4767,6 @@ "bNM" = (/obj/structure/closet/jcloset,/turf/simulated/floor/tiled,/area/janitor) "bNN" = (/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/tiled,/area/janitor) "bNO" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera/network/security{c_tag = "Custodial Closet"},/turf/simulated/floor/tiled,/area/janitor) -"bNP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "bNQ" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/central_three) "bNR" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/janitor) "bNS" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor,/area/maintenance/atmos_control) @@ -4861,7 +4857,6 @@ "bPz" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/janitor) "bPA" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/janitor) "bPB" = (/obj/structure/mopbucket,/obj/item/weapon/mop,/turf/simulated/floor/tiled,/area/janitor) -"bPC" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/tiled/airless,/area/rnd/test_area) "bPD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/button/remote/blast_door{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = 25; req_access = list(5)},/obj/machinery/camera/network/medbay{c_tag = "Medbay Acute"},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bPE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 0; name = "Acute Treatment"; req_access = list(5)},/turf/simulated/floor/tiled/white,/area/medical/medbay) "bPF" = (/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 22; pixel_y = -9},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/medbay{c_tag = "Medbay Port Corridor"; dir = 8},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/medbay) @@ -4985,7 +4980,6 @@ "bRT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bRU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/shuttle/mining/station) "bRV" = (/obj/structure/closet/secure_closet/miner,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/quartermaster/miningdock) -"bRW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "bRX" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/storage/tech) "bRY" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/storage/tech) "bRZ" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/storage/tech) @@ -5690,7 +5684,6 @@ "cfw" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/maintenance/research_starboard) "cfx" = (/obj/structure/table/rack{dir = 1},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/reagent_containers/spray/sterilizine,/turf/simulated/floor/plating,/area/maintenance/engineering) "cfy" = (/obj/item/clothing/mask/smokable/cigarette,/turf/simulated/floor/airless,/area/rnd/test_area) -"cfz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/rnd/test_area) "cfA" = (/obj/machinery/light/small,/turf/simulated/floor/airless,/area/rnd/test_area) "cfB" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area/engineering/engine_room) "cfC" = (/obj/machinery/airlock_sensor/airlock_interior{id_tag = "eng_al_int_snsr"; master_tag = "engine_room_airlock"; pixel_y = 22; req_access = list(10)},/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/engineering/engine_room) @@ -5772,7 +5765,6 @@ "cha" = (/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "chb" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) "chc" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora) -"chd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/rnd/test_area) "che" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/item/device/radio/intercom{dir = 4; pixel_x = -22},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_storage) "chf" = (/turf/simulated/floor/tiled,/area/construction) "chg" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/clothing/gloves/black,/obj/item/device/multitool{pixel_x = 5},/obj/random/tech_supply,/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/construction) @@ -6156,7 +6148,6 @@ "cou" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating,/area/rnd/xenobiology/xenoflora) "cov" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/visible/supply,/turf/simulated/floor,/area/maintenance/atmos_control) "cow" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(12,24)},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor,/area/maintenance/atmos_control) -"cox" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "coy" = (/obj/machinery/door/airlock/maintenance{req_one_access = list(11,24)},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "coz" = (/obj/machinery/meter{frequency = 1443; id = "wloop_atm_meter"; name = "Waste Loop"},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/turf/simulated/floor/tiled,/area/engineering/atmos) "coA" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/meter,/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor/tiled,/area/engineering/atmos) @@ -6178,7 +6169,6 @@ "coQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/engineering/workshop) "coR" = (/turf/simulated/floor/tiled,/area/engineering/workshop) "coS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre 1 Storage"; req_access = list(45)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/surgery) -"coT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "coU" = (/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera/network/medbay{c_tag = "Medbay Surgery Prep"; dir = 8},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/medical/surgeryprep) "coV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Operating Theatre 2 Storage"; req_access = list(45)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/medical/surgery2) "coW" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "virologyquar"; name = "Virology Emergency Quarantine Blast Doors"; opacity = 0},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/medical/virologyaccess) @@ -6234,7 +6224,6 @@ "cpU" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/tiled,/area/engineering/atmos) "cpV" = (/obj/machinery/atmospherics/binary/pump/on{name = "Ports to Waste"},/turf/simulated/floor/tiled,/area/engineering/atmos) "cpW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_atmos{name = "Atmospherics Monitoring Room"; req_access = list(24)},/turf/simulated/floor/tiled,/area/engineering/engineering_monitoring) -"cpX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "cpY" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Monitoring Room"; req_one_access = list(10)},/turf/simulated/floor/tiled,/area/engineering/engineering_monitoring) "cpZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 10},/turf/simulated/floor/plating,/area/engineering/atmos) "cqa" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/engineering/engineering_monitoring) @@ -6277,7 +6266,6 @@ "cqL" = (/obj/structure/table/reinforced,/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "cqM" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos) "cqN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/computer/general_air_control/supermatter_core{frequency = 1438; input_tag = "cooling_in"; name = "Engine Cooling Control"; output_tag = "cooling_out"; pressure_setting = 100; sensors = list("engine_sensor" = "Engine Core")},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) -"cqO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "cqP" = (/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engineering/storage) "cqQ" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/engineering/atmos) "cqR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/medical/virology) @@ -6343,7 +6331,6 @@ "csd" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor/tiled,/area/engineering/atmos) "cse" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/visible/blue,/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/engineering/atmos) "csf" = (/obj/machinery/atmospherics/pipe/manifold/visible/red,/turf/simulated/floor/tiled,/area/engineering/atmos) -"csg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engineering/engineering_monitoring) "csh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/engineering/atmos) "csi" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/pipedispenser,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor/tiled,/area/engineering/atmos) "csl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/rnd/xenobiology) @@ -7255,7 +7242,6 @@ "cKX" = (/turf/simulated/shuttle/wall,/area/shuttle/constructionsite/station) "cKY" = (/obj/machinery/light/small{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "virology_pump"},/turf/simulated/floor/plating,/area/maintenance/medbay) "cKZ" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/plating,/area/maintenance/medbay) -"cLa" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/engineering/engine_room) "cLc" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "engineering_shuttle"; pixel_x = 0; pixel_y = 25; req_one_access = list(13,11,24); tag_door = "engineering_shuttle_hatch"},/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/station) "cLd" = (/obj/machinery/power/supermatter{layer = 4},/obj/machinery/mass_driver{id = "enginecore"},/turf/simulated/floor/greengrid/nitrogen,/area/engineering/engine_room) "cLe" = (/obj/machinery/door/airlock/maintenance{name = "Drone Fabrication/Engine Waste Handling"; req_one_access = list(10,24)},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/drone_fabrication) @@ -7425,7 +7411,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaDhaDgaDKaDgaDgaDiaDjaDgaDgaDKaDlaDkaBIaDnaDoaBLaDtaDraDxaDwaDIaDzaCEavHaDXauQaAFaAFawfaDZaCMaDJaDMaDLaDOaDNaChaDPaDTaDSaEjaCMaafaBYaDUaDUaDWaDUaEaaBYaafazJazOazPaEeaEbaEgaEfaEiazPazQaEuayLazwazyaEkaElaBQaEnaEmaAIaEoaEAaEpaEparAazUayuaywarEaAiaCmaCmaCmaCmaCmaEraEqatEaEsaEtaEtaExaEwaEtaEyaEBaBjaEPaEQaERaFZaETawgaDsaaaaafaafaafaaaaaaaafaafaafaafaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaDCaBsaBqaDCaECaSGaEDaFdaFdaFdaFdaFeaFfaFgaFgaFgaFgaFgaFgaFgawiawoaEGaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaDhaDlaDgaEHaGqaFlaFmaGraFoaFpaGxaFlaGHaEJaEIaEKaDnaELaBLaENaEMaESaEOaESaEUaGPavHawVawNaFxawXawZaFhaHdaFkaFqaFnaFnaFnaFraFnaFnaFsaFOaCMaaaaBYaFtaDUaFvaDUaFyaBYaaaazJazOazPaFEaFAaFFaFAaFGazPazQaFWayLayLayLayLaDRaBQaCbazyaBQaFIaFJazyaFKarAaFNaFLaFParEaFQaDeaDvaDuaFRaDeaFTaFSaFVaFUaFXaBjaBjaBjaBjaBjaBjaGnaGoaGpaDVaDpaInaIlaDsaDsaDsaDsaDsaDsaDsaDsaDsaFaaFbaDsaDsaFaaGtaDsaDsaaaaaaaDsaDCaDCaDCaDCaEZaEWaFdaFcaFwaDCaDCaDCaDCaDCaxdaJRaGFaGFaGFaGFaGFaGFaGGaGGaIzaGGaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaEJaFYaIDaGaaFlaFMaFlaFMaFlaFMaFlaFMaFlaGbaEIaGcaDnaELaBLaGfaGdaGjaGhaGmaFHaCEaFBaFDaFCaFCaFCbazaIKaFCaGuaFnaFnaFnaFnaFnaFnaFnaFsaIVaCMaafaBYaDUaGvaGDaGzaGIaBYaafazJazOazPaGlaGKaGRaGNaGSazPaHnaHoayLaGTazyaAXaGUaAIaGWazyaBQaFIaFzazyaGYarAaHaaGZaHbarEayiaHcaHgaHfaHiaHhaHkaHjatEaHlaHmaBjaHpaBjaHpaBjaHraBjaHHaGpaHtaDpaJBaJwaHLaHKaHKaHKaHOaHKaHKaHKaHKaHKaHPaHKaHKaHKaKOaytaDsaDsaDsaDsayFayBaGCaGCaGLaugaDCaDCaJDaDCaGMaIeaIfaIgaGFayKaGFaHvaHxaHwaHzaHyaHCaHAaHEaHDaHGaHFbjFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaIwaFlaFlaDKaFlaFMaFlaFMaIxaFMaIyaFMaFlaGbaEIaGcaDnaHIaIAaIAaHJaGXaHRaGXaIAaIAaIEaIFaFCaGQaHSaHUayNaFCaHYaIhaIcaFnaFnaIiaFnaImaIjaKPaCMaaaaBYaBYaIQaIoaIQaBYaBYaaaazJazOazPaMSaIpaItaIsaBMazIaIWaIXayLaIBazyaICaElaBQaIGaEmaAIaIHaHsazyaIIaJeaILaIJaIMaMbaIOaCuaCuaCuaCuaCuaISaIPaJlaITaIUaBjaIYaBjaIZaBjaJaaBjaJraGpaJcaJbaGsaGsavOaGsaDsaDsaLdaDsaDsaJdaDsaGsaJyaGsaGsaGsaJzaAKaHXaHWaIaaLeaIraIbaIbaIbaIRaINaIgaJIaJJaLiaJkaJMaJNaIgaJgaJfaGFaJhaJmaJjaJnaHyaJoaHAaJqaJpaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaIwaFlaFlaDKaFlaFMaFlaFMaIxaFMaIyaFMaFlaGbaEIaGcaDnaHIaIAaIAaHJaGXaHRaGXaIAaIAaIEaIFaFCaGQaHSaHUayNaFCaHYaIhaIcaFnaFnaIiaFnaImaIjaHYaCMaaaaBYaBYaIQaIoaIQaBYaBYaaaazJazOazPaMSaIpaItaIsaBMazIaIWaIXayLaIBazyaICaElaBQaIGaEmaAIaIHaHsazyaIIaJeaILaIJaIMaMbaIOaCuaCuaCuaCuaCuaISaIPaJlaITaIUaBjaIYaBjaIZaBjaJaaBjaJraGpaJcaJbaGsaGsavOaGsaDsaDsaLdaDsaDsaJdaDsaGsaJyaGsaGsaGsaJzaAKaHXaHWaIaaLeaIraIbaIbaIbaIRaINaIgaJIaJJaLiaJkaJMaJNaIgaJgaJfaGFaJhaJmaJjaJnaHyaJoaHAaJqaJpaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaEJaJsaIDaGaaFlaFMaFlaFMaFlaFMaFlaFMaFlaGbaEIaGcaDnaJAaJtaIdaJEaJHaJHaJLaJKaJPaJOaJQaLwaJZaJSaJGaKaaFCaHYaJUaJTaJXaJVaHYaJYaKiaKdaKtaKuaaaaafaaaaJxaKjaJxaaaaafaaaaKuazOazPaKmaKlaKoaKnaKpazPaKCaKDayLaKqazyaAXaKsaKraGWazyaKxaKwaKvaKyaKzaJeaKBaKAaKFaKEaKGaKJaaaaaaaJlaKHaKKaKIaJlaKLaIUaIUaIUaKMaIUaIUaIUaBjaDpaKNaDpaDpaDpaDpaMEaDpaKZaMwaKSaKQaKUaKTaLfaKWaLhaLfaLfaLfaLfaLfaNcaLfaLfaLfaLfaLfaLfaLfaLfaJRaIgaLjaJWaLlaEFaKbaLoaIgaKYaKXaGFaLaaLcaLbaJnaLgaJoaHAaJqaHAaLmaLkaKRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaLnaLpaDgaEHaGqaFlaFlaIkaFlaFlaNPaFlaGHaEJaEIaLraDnaLtaLsaLyaLuaLyaLyaLyaLyaLyaLzaLAaFCaFCaFCaFCaFCaFCaLLaLBaLNaLOaLOaLOaLOaLPaLCaLRaKuaLFaLxaLxaLSaLEaLTaLxaLxaLUaKuaNXaKuaKuaLWaLGaLWaJeaJeaMbaOiaJeaJeaJeaJeaLZaLXaLIaLHaMeaMdaJeaJeaJeaJeaLJaKAaLMaLMaLQaMhaMmaMiaJlaLVaMaaLYaJlaJlaJlaJlaJlaJlaJlaJlaBjaBjaMjaMcaMlaJFaMpaLvaMyaMfaKZaMraMtaMsaMsaMuaLfaMvaMxaMFaAzaMzaMCaLqaMDaMnaSuaAzaMCaMzaAzaMGaLfaJRaIgaMPaMgaMRaOLaMqaMUaIgaMIaMHaMKaMJaMNaMLaMOaGFaGGaMQaJqaHAaLmaMTaMoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaLnaDgaDKaDgaDgaDiaDjaDgaDgaDKaLpaMVaBIaMWaLtaMMaMXaMXaMYaMXaNaaIAaNbaLzaNfaNeaNhaNgaNkaNiaNlaNkaNmaNkaNkaNkaNnaNkaNkaNoaNqaNpaNraNraNtaNsaNuaNraNraNraNraNvaNxaNwaNyaNkaNAaNzaNCaNBaNEaNDaNEaMkaNHaNGaNIaNIaNKaNJaNLaNJaNNaNMaNFaNOaLMaKAaLMaLMaLMaLMaLMaLMaNRaLYaNTaNSaNWaNVaNQaNYaObaOaaOcaJlaBfaOeaOkaOjaOlaOlaOmaMZaOwaNdaKZaOnaOpaOoaOoaOqaLfaOraOtaOsaOsaOsaOsaOuaOxaOvaOzaOyaOAaOAaOCaNZaLfaJRaIgaONaOOaNjaOfaONaONaIgaOEaODaGFaOFaOHaOGaOIaGFaHAaHAaJqaHAaGGaGGaGGaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7448,7 +7434,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaT aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaabhObhObhObhObhObhObhObhObhObhOaaaaaaboJbnubntbnvbgrbnxboWbpmbnTaWMaVrbjpbpsblabnYbnZbmWbbZbbZbbZbbZbbZbbZboabobbocaXebdObdPbdPbdPbdPbdPbdPbdPbnybdPbdPbdPbogbdPbfmbnzblCbgabgabgabnAblpbkEaRYbnBbmGbombnCbncbnDbvGbotbnEbotaafbebbylbtAbowboxboybzibFKbebaafbedbkLboCbFMbpGbiCbiGboFaJibnHbnGaLYbXHbnLbnKbnObnNbnQaYebnSbnRbnUbnUbnWbnVbnXbnXbojbofboXbokbonbolboobnnboqbopbosbmPbnabovbmPbnabYfaVJbpjbozboGboBbplboEbppboHboKboIboMboLboOboNblOaZzboPbpxblOboQboSboRboUboTboVbnIbqUbpLbpJbnMaaaaaaaaaaacaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaabgnbgobgpbgqbdWbpObpObpObrsbpObrCboZboYbpabgrbpbbjpbauaYPbnFbpRbqHbqGbqKbqKbqKbqMbkWbpUbkWbkWbkWbkWbpVbpWbpWbpWbbxbdPbpebpdbpcbpfbpibphbpnbpkbqhbpqbptbqkbqkcKDbpubgabgabpwbfmaMbbpzbpybpAaJubqqbpBbpDbpCborbrobpIbotaafbebbebbpKbebbrubebbpMbebbebaafbedbqzboCbqAbrvbqCbqDbpNaJibpPaQSaLYaJibpSbpQbpZbpTbpgbqLbnSbqbbnXbnXbnXbnXbnXbnXbqdbqcbqebokbqgbqfbqibnnbqmbqjbqobqnbnabovbmPbqpbYfaVJbpjbqrboEbqtbqZbqsbqvbqubqubqubqEbqxbqIbqFbrhbqJbqObqNbnIbqPbqRbqQbqSboTbqTbnIbqXbqVbrrbnMaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaabsybsibrqbeMbdybgwbgwbhtbhobrcbgrbtkbsqcrMbhvbjpbjpbjpbajbrEbrFbrGbrHbrGbrGbrGbrHbrGbajbajbdPbdPbdPbsxbdPbgNbrdbrdbrdbrdbrdbpnbrfbrLbribrkbqabrmbrlbrpbrnbrtbrtbrxbrwbrzbrybrAaHBbsbbrBbsabrDbsAbotbrIbotaafbtDbsEbsBbrjbsmbsHbsBbsIbtDaafbedbspbhFbspbedbedbedbtbaJibrKaQSaLYbXHbnLbnKbrNbrMbrObqLbrJbqbbrRbrQbrTbrSbrPbrUbqdbrVbnibrXbrZbrYbscbnnbsdbqjbosbmPbnabovbmPbnabYfaVJbpjboEboEboEbseboEbsNbsgbsjbshbslbskbsobsnbrhbssbsubstbnIbswbsCbszbsFbsDbrWbnIbsMbhwbtebnMaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaacaaaaaaaaaaaaaaaaaaaaabsybtFbtEbuvbsLbsPbsPbsQbsPbsPbgrbsSbsRboAaYPbjpaaaaaaaaaaafaafbtnbtnbtnbtnbtnbtnbtnaaaaaabtJbhIbsTbsWbiYbsYbsXbsXbsXbsXbsXbtabsZbtdbtcbtgbtfbtzbupbfmbfmbhxbfmbfmbtCbtibthbtjbmGbtHbmGbmGbmGbmGbmGbtlbmGaafbvbbuGbtLbtmbtNbtmbtLbuNbvcaafbspbtQbtRbtSbtobtpbspbhyaJlbtqbbabtraJibtsblUbtubttbtvbucbtxbtwbFNbtybtIbtBbtMbtKbtPbtObnibokbtUbtTbsGbnnbovbtXbtZbtWbuabuabubbnabYfaXqbpjbsfboEbqtbsebuebuzbufbuhbugbujbuibulbudbrhbumbuqbunbnIburbutbusbsFboTbuubnIbuwbpFbvFbnMaaaaaaaaaaaacHOaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaacaaaaaaaaaaaaaaaaaaaaabsybtFbtEbuvbsLbsPbsPbsQbsPbsPbgrbsSbsRboAaYPbjpaaaaaaaaaaafaafbtnbtnbtnbtnbtnbtnbtnaaaaaabtJbhIbsTbsWbiYbsYbsXbsXbsXbsXbsXbtabsZbtdbtcbtgbtfbtzbupbfmbfmbhxbfmbfmbtCbtibthbtjbmGbtHbmGbmGbmGbmGbmGbtlbmGaafbvbbuGbtLbtmbtNbtmbtLbuNbvcaafbspbtQbtRbtSbtobtpbspbhyaJlbtqbbabtraJibtsblUbtubttbtvbucbtxbtwbFNbtybtIbtBbtMbtKbtPbtObnibnnbtUbtTbsGbnnbovbtXbtZbtWbuabuabubbnabYfaXqbpjbsfboEbqtbsebuebuzbufbuhbugbujbuibulbudbrhbumbuqbunbnIburbutbusbsFboTbuubnIbuwbpFbvFbnMaaaaaaaaaaaacHOaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeObyebvYbvZbpObwEbgnbgobwMbwEbgrbuybjpbwObwNbjpaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaabxIbkwbrdbuCbuBbuEbuDbuDbuDbuHbuFbuDbuIbuKbuJbuMbuLbuPbuObfmbuQbgabuSbuTbvsbuVbuUbukbmGbmGbmGbuYbuXbvabuZbvdbvwaafbydbwnbvHbvfbvebvgbvNbwxbydaafbspbwCbvQbxnbedbvhbspbhPaJlbuWbcvbvjaJibvVbvWbvXbwDbvkbucbvmbvlbvobvnbvpbvpbvrbvqbvubvtbvvbwkbvxbwmbwkbwkbwkbwkbvybwkbwkaXKaXKaXKaXKaVJbpjboEboEboEbtYbvzbwqbvBbsjbsjbsjbskbvDbvCbwvbwwbvEbwybnIbvIbvKbvJbvLboTbvMbnIbzDbwFbnMbnMaaaaaaaaaaaaaafbvObvRbuRbvRbuRbvRbvTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbyAbyPbyFbvUbvUbwdbwcbwfbwebwebwebwgbrfbrdbrdbrLbwhbwjbwibwobwlbwrbwpbgabgabwsbxcbuVbuUbwzbwtbwBbwAbwGbxibxjbxkbwKbvwaafbxrbwPbtLbtmbwQbvibxobwSbxraafbspbqwbwRbwUbedbwVbspbhyaJlbwWbcvaLYaJibwYbwXbxabwZbxbbxCbxebxdbxCbxFbxGbxfbxFbwkbxhbxgbwkbwkbxmbkzbxqbxpbwTbxsbxvblubxwaXKbaybxxaXKbxybpjbvAboEbqtbxzbxAbppbxDbsjbsjbsjbskbvDbxEbrhbxHbxKbxJbnIbxLbxNbxMbxOboTbxPbnIbAVbykbnMaaaaaaaaaaaaaaaaafbxQbwHbrgbzNbwJbzObxQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzKbxRbzKbxSbxSbxTbwcbwfbrdbrdbxUbxWbrfbxXbdPbdPbxYbgabrkbwobxZbywbyabybbybbyfbycbyhbygbyibvsbyjbvPbHJbxkbyHbyIbymbvwaafbxrbxrbxrbxrbyobxrbxrbxrbxraafbyNbyNbyNbyNbyNbyNbyNbypaJibyqbeTbeVaJibxtbyrbyrbytbyubxCbyxbyvbyWbyybyBbyzbyCbwmbyEbyDbyJbyGbyLbyKbyKbyMbyObyKbyRbyQbySbaAbwubyTbAsbyUbyXbxBbyYbyVbyZbzabppbzcboIboIbzdbskbvDbzebppbzfbzhbzgbHmbHlbHobHnbHqbHpbnIbnIbBdbnMbnMbBobBpbBpbBpbBrbCJbzjbzkbrgbwJbrgbynbuRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7456,36 +7442,36 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbCobyPbCzbqWbrdbBmbrdbrdbrdbrdbrdbxWbrfbzubBnbdPbBqbgabBsbBtbgabBvbghbgabgabBwbvsbBxbzBbzHbAdbyjbvwbBzbBybBAbBybBBbvwbCKbCIbBEbBCbBGbBFbBIbBHbBKbDbbBVbyNbBMbBLbBObBNbBQbBQbBSbBRbAbaQSaLYaJibBWbBUbBUbytbBXbxCbBZbBYbxCbCabyzbyzbzWbwkbCdbCcbwkbwkbwkbwkbwkbwkbCebwkbwkbwmbCfaXKaXKaXKaXKbDibpjbwwbzAbzAbzAbzAbppbppbppbppbppbIYbJKbJIbKvbARbCibChbCkbCjbCjbCjbCmbClbCqbCnbiebhZbjfbiqbjubjrbjAbCBbDubCCbvRbuRbDQbuRbvRbCDaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbBubCEbBubwbbCGbCHbvUbvUbvUbCGbvUbxWbrfbzubCLbdPbCMbgabrkbwobgabqlbCNbgabgabCbbxcbBxbzBbCPbxcbCQbvwbCSbCRbCUbCTbwKbvwbCObCVbCXbAhbErbErbErbAjbCZbCYbCWbyNbDdbDcbDcbDebDgbDfbDhaJibDkbDjbDlaJibDtbDmbDvbDnbDxbDybDpbDobyWbDqbDrbyzbDsbwmbDzbDwbwmbDAbDAbDabDJbDCbDEbDBbCpbjBbDObBTbEVbFDbCpbDFbDGbDUbDIbDHbDKbDKbDMbDDbDPbDNbDXbDTbDZbDYbEbbEabEcbChbKzbKwbKBbGabGabGabGabGabFybFrbEnbBobBrbCJbHsbEdbCJbBobBpbBrbFQbCJbFUaafcHOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbFbbEfbFbbEhbDLbEibEibEibEibEibEjbElbEkbzubEmbdPbEobEqbEpbEtbEsbGibGhbGkbGjbGvbtCbEubzBbExbEwbyjbvwbEgbEybEAbBybEBbvwbBPbGCbECbAhaaaaaaaaabAjbEDbGEbFcbyNbEFbEEbEHbEGbDgbDfbEIaJibwWaQSaLYbEJbELbEKbENbEMbEPbEObERbEQbxCbxFbxFbESbxFbwkbEWbETbEYbEXbFdbEZbDJbFebDEbFfbFAbFBbDObFCbFDbjGbFhbFgbFkbFjbDIbFlbDKbFmbFobFnbFqbFpbFtbFsbFvbFubFxbFwbFzbChbKDbmFbsObrebILbzbbMbbGabGbbGcbGdaafaafbCJbkobkcbktbkrbkUbFWbFYbFTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbFVbGmbGlbdPbdPbGnbyPbyPbyPbGobdPbdPbGpbGrbGqbdPbGtbGtbGtbFZbGtbGvbGebGgbGfbGsbtCbBxbzBbGubGBbtCbtGbtGbtGbtGbtGbHVbtGbtGbtGbGwbtGbtGbtGbtGbtGbGxbtGbtGbtGbtGbtGbtGbtGaJiaJiaJiaJibwWaQSaLYbEJbGybEKbGAbGzbGFbGDbGIbGGbGJbEzbGLbyzbGNbGMbGPbGObGRbGQbGTbGSbGVbGUbGXbGWbGYbHbbHcbGZbmdbHabCpbHdbHfbwwbwwbwwbwwbwwbHibwwbwwbwwbzAbFHbzAbzAbHjbARbHkbChbKDbzEbzGbzFbzIbVocsBbGabGbbGcbHraaaaaabCJbNlbBkbHwbHvbHybHxbHzbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaafaaaaaaaaabHuaafaaaaaaaaaaaabGtbHBbHAbHDbHCbLrbHEbHHbHFbGKbtCbBxbzBbzHbzCbHLbHKbHNbHMbHPbHObHRbHQbHTbHSbHWbHUbHXbzCbzCbHYbIbbHZbzCbIcbzCbzzbHPbzzbIebIdbIgbIfbwWaQSbDlaJlbDtbIBbDtbIhbIibxCbIkbIjbImbIlbIobInbIrbIpbIubItbwmbIvbICbIAbDJbIDbIHbIGbIqbKfbFDbmpbFDbEVbCpbKhbIwbIxbIybNnbmxbmqbmUbIMbIObIFbIQbIPbIRbIJbzAbITbHkbChcsXbBgbCsbCgcvqcuUcvBbGabGbbISbEnbEnbEnbCJbCJbCJbJjbJhbCJbCJbHIbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbJbbJabJdbJccLYbJebJgbJfbJibtCbBxbJkbJmbJlbJlbJnbJpbJobJqbJobJpbJnbJlbJlbJsbJrbJubJtbJwbJvbJxbJlbJlbJybJpbJobJqbJobJCbJAbJDbJAbJHbJGbvjaJlbJJbELcwqbELbJLbGHbDpbJMbFibDVbxFbJObCFbDSbDzbJSbwkbJTbJVbJUbDJbJWbJYbJXbJNbFDbFDbJPbFDbFDbCpbmXbnPbIxbKabKcbKcbKbbKebKdbodbIFbKkbKjbKobKobzAbKpbKrbKqcwtbCtbDWcwAcwZcwZcxsbGabGbbKlbEnbKmbMIboebEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKFbKEbKEbKGbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKIbKHbKxbKHbKJaaaaaaaaabGtbGtbIZbKKbJdbKKbMPbKMbKObKNbKPbtCbKQbBxbKSbKLbzCbKTbzCbzzbHPbzzbzCbKRbKYbKXbLbbKZbzHbzCbLdbLcbHTbLebHTbHTbLgbLfbLhbLfbLjbLibcvbKWaLYaLYaLYaJlbpobENbEPbLpbLxbLtbLzbLybFIbLAbLCbLBbLDbHgbDzbItbIabIzbHhbDJbDJbLobLobLobCpbLEbLqbLFbLsbLGbCpbprbpvbIxbLwbFGbmxbpXbpYbLHbLJbIFbLLbLKbKobKobzAbLQbLSbLkbGabEvbFacxCcyhcxJcyibGabqybLNbqBbqBbqBbsUbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbMcbLTbMdbLTbKsbKtbKtbMebPCbMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbFVbGmbGlbdPbdPbGnbyPbyPbyPbGobdPbdPbGpbGrbGqbdPbGtbGtbGtbFZbGtbGvbGebGgbGfbGsbtCbBxbzBbGubGBbtCbtGbtGbtGbtGbtGaKPbtGbtGbtGbGwbtGbtGbtGbtGbtGbGxbtGbtGbtGbtGbtGbtGbtGaJiaJiaJiaJibwWaQSaLYbEJbGybEKbGAbGzbGFbGDbGIbGGbGJbEzbGLbyzbGNbGMbGPbGObGRbGQbGTbGSbGVbGUbGXbGWbGYbHbbHcbGZbmdbHabCpbHdbHfbwwbwwbwwbwwbwwbHibwwbwwbwwbzAbFHbzAbzAbHjbARbHkbChbKDbzEbzGbzFbzIbVocsBbGabGbbGcbHraaaaaabCJbNlbBkbHwbHvbHybHxbHzbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaafaaaaaaaaabHuaafaaaaaaaaaaaabGtbHBbHAbHDbHCbLrbHEbHHbHFbGKbtCbBxbzBbzHbzCbHLbHKbHNbHMbHPbHObHRbHQbHTbHSbHWbHUbHXbzCbzCbHYbIbbHZbzCbIcbzCbzzbHPbzzbIebIdbIgbIfbwWaQSbDlaJlbDtbIBbDtbIhbIibxCbIkbIjbImbIlbIobInbIrbIpbIubItbwmbIvbICbIAbDJbIDbIHbIGbIqbKfbFDbmpbFDbEVbCpbKhbIwbIxbIybNnbmxbmqbmUbHVbIObIFbIQbIPbIRbIJbzAbITbHkbChcsXbBgbCsbCgcvqcuUcvBbGabGbbISbEnbEnbEnbCJbCJbCJbJjbJhbCJbCJbHIbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbJbbJabJdbJccLYbJebJgbJfbJibtCbBxbJkbJmbJlbJlbJnbJpbJobJqbJobJpbJnbJlbJlbJsbJrbJubJtbJwbJvbJxbJlbJlbJybJpbJobJqbJobJCbJAbJDbJAbJHbJGbvjaJlbJJbELcwqbELbJLbGHbDpbJMbFibDVbxFbJObCFbDSbDzbJSbwkbJTbJVbJUbDJbJWbJYbJXbJNbFDbFDbJPbFDbFDbCpbmXbnPbIxbKabKcbKcbKbbKebKdbodbIFbKkbKjbKobKobzAbKpbKrbKqcwtbCtbDWcwAcwZcwZcxsbGabGbbKlbEnbKmbMIboebEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKEbKEbKEbKEbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKIbKHbKxbKHbKJaaaaaaaaabGtbGtbIZbKKbJdbKKbMPbKMbKObKNbKPbtCbKQbBxbKSbKLbzCbKTbzCbzzbHPbzzbzCbKRbKYbKXbLbbKZbzHbzCbLdbLcbHTbLebHTbHTbLgbLfbLhbLfbLjbLibcvbKWaLYaLYaLYaJlbpobENbEPbLpbLxbLtbLzbLybFIbLAbLCbLBbLDbHgbDzbItbIabIzbHhbDJbDJbLobLobLobCpbLEbLqbLFbLsbLGbCpbprbpvbIxbLwbFGbmxbpXbpYbLHbLJbIFbLLbLKbKobKobzAbLQbLSbLkbGabEvbFacxCcyhcxJcyibGabqybLNbqBbqBbqBbsUbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbKEbLTbMdbLTbKsbKtbKtbMebKFbMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMgbNAbLXbNBbMgbKUbLZbKVbGtbMhbMjbMibMlbMkbMnbMmbMobMobMpbtCbtCbtCbNQbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMrbMqbMubtCbtCbtCbtCbtCbMvbtCbtCbtCaJlaJlbObaJlaKHaLVbMwaJlbMxbLRbMzbELbMAbxCbDpbMybxCbMCbLCbMDbMFbwkbMBbMGbMEbMJbMMbMLbMRbMQbMKbFDbFDbFDbFDbFDbMTbFDbCpbPObMObMObMObMObMObMObMObMObMObMObMXbMWbMYbMYbzAbMZbNdbNcbMVbMVbMVbMVbNfbNebNhbMVbMVbMVbMVbMVbMVbGbbNbaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapbNjbLTbLTbNkbKtbKtbMebMebNmbMebMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbMsbNgbKxbMtbNobqYbGtbNubNrbKKbNtbNsbGvbNzbNHbNGbNIbGvbrabNvbOXbNxaaaaaaaaaaaabNybOLbONbOMbNDbNCbNEbNFbNJbNJbNKbNFbNMbNLbNObNNbNRbFFbNXbNWbNYbPxbrbbNUbNUbNUbNUbDtbDtbDtbDtbNZbNZbxCbOcbOabOdbLCbOfbOebOhbOgbOjbOibOlbOkbOnbOmbOqbOpbMKbsrbFDbFDbNVbFDbFDbsrbCpbPObMObOrbOtbOsbHGbOsbOxbOwbOybMObOAbOzbOBbOBbzAbOEbOFbChcymbOGbOIbOHbOKbOJbORbOQbOUbOubOWbOVbMVbPZbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbNjbKtbKtbMebMebMebMebMebMebMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMgbNgbNgbNgbPbbPabKAbPcbsKbsJbuobtVbPmbPibGvbGvbGvbGvbGvbGvbuxbOYbOZbMUaaabNibOCbOCbODbQjbPfbPgbPhbPfbPnbNFbPpbPobPqbNFbPsbPrbPvbPubPAbPzbPBbPtbPtbPxbvSbQpbPxbPxbCvbDtbOTbELbPDbELbELbPEbDpbPFbxCbPGbPIbPHbPJbwkbPLbPKbwkbPMbPPbPNbPRbPQbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPSbPUbPTbOsbOsbOsbOsbPVbMObCwbLKbPXbPXbzAbARbLSbChcyqbPYbPYbQbbQdbQcbQgbQfbQhbQhbQhbQibMVbQkbQlbOObQnbQmbQobPdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQsbQrbQrbMebMebMebMebMebMebMebMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbMsbMsbMsbKxbPjbQAbCxbQqbQBbKKbCybDRbCAbEUbEebFEbQvbQvbQvbVTbQwbQxbPkaaabPlbQJbQIbQCbSlbPfbQEbQGbQFbQKbNFbQMbQLbQNbNFbQPbQObQRbQQbQWbQVbQXbPtbPxbPxbQTbNUbPxbPxbQUbDtbQYbELbRabQZbELbRbbDpbDobRCbLCbRdbRcbRebRGbDzbItbSpbPMbPNbPNbPRbIUbMKbRgbRibRhbRjbRkbRmbRlbRnbPObMObOsbOsbRobOsbOsbOsbOsbRpbMObCwbLKbRrbRrbzAbLQbRtbRscyCbRubRxbRwbRzbRybRBbRAbREbRDbRHbRFbRJbRIbRMbRLbRObRNbQobQyaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRQbMebMebMebMebMebMebMebMebMebMebMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabMgbUbbRUbUkbMgbQzbLZbKVbGtbGtbRVbRVbRVbGtbGtbNxbFObFLbFLbFLbYEbRSbNwbPkaaabRKbFJbRXbUobRXbRYbRZbsVbSbbSbbScbSebSdbSfbNFbPtbPtbPtbPtbPtbUAbPtbPtbShbUGbSjbNUbPxbSkbUObDtbXkbELbRabSmbSnbRbbSobEQbJBbSqbSibSrbIVbJzbEWbSubIEbSvbSxbSsbSwbSybMKbSzbSCbSBbRjbSAbSGbSEbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSHbRrbRrbzAbSDbLSbChcymbSKbSMbSLbSObSNbSQbSPbSSbSRbSVbSTbMVbSWbSXbOObTbbSZbTcbRPaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbMebMebMebMebMebMebTdbMebMebMebMebMebMebMebKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTfbKHbTebKHbTgbWoaafaaaaaabGtbTabRTbThbGtaaabNxcxKbFPbFRbTncbrbTncctbPkaaabPlbTibPfbTrbWIbPfbTtbTvbWMbTwbNFbTpbTjbTqbWVbTCbTCbTCbTCbTCbTDbTEbULbPxbPxbTFbNUbNUbNUbNUbDtbDtbTsbTxbTubDtbTJbTzbTybJFbJEbTJbOdbLlbLmbTGbTAbTJbMKbMKbMKbMKbMKbMKbTHbTKbTIbRjbTLbTNbTMbRnbPObMObTPbTRbTQbTUbTSbTWbTVbTPbUgbTYbTXbIRbIJbzAbITbLSbTZbMVbMVbMVbXibXnbMVbMVbMVbMVbUabUcbSSbMVbXqbUnbOObUebFSbTObOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUfbUfbUfbUfbUfbUfbUibMebUjbUfbMebMebMebMebMebKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxccvbRSbNwbTTaaabUhbOCbOCbUpbXxbPfbPfbUBbPfbSFbNFbUrbUqbUsbNFbSUbSUbSUbSUbSUbSUbSUbSUbUHbUIbUJbUKbUKbUMbNUbDtbUubUtbUxbUwbUzbwabUEbUDbUNbUFbSJbUEbURbUQbUTbUSbUVbUUbUPbUWbVabUZbVibUlbVbbUmbRjbUCbVdbUCbRnbPObMObVebVhbVgbVkbVjbVmbVlbVnbUgbzAcyEbzAbzAbVpbARbLSbChbUyaafbVrbVqbVtbVsbFXbVubHebVvbVybSSbMVbVHbVIbOObVAbVzbVGbVFaapaapaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVJbLTbLTbLTbLTbLTbLTbLTbuAbMfbMebMebMebMebVLbPCbKuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxccvbRSbNwbTTaaabUhbOCbOCbUpbXxbPfbPfbUBbPfbSFbNFbUrbUqbUsbNFbSUbSUbSUbSUbSUbSUbSUbSUbUHbUIbUJbUKbUKbUMbNUbDtbUubUtbUxbUwbUzbwabUEbUDbUNbUFbSJbUEbURbUQbUTbUSbUVbUUbUPbUWbVabUZbVibUlbVbbUmbRjbUCbVdbUCbRnbPObMObVebVhbVgbVkbVjbVmbVlbVnbUgbzAcyEbzAbzAbVpbARbLSbChbUyaafbVrbVqbVtbVsbFXbVubHebVvbVybSSbMVbVHbVIbOObVAbVzbVGbVFaapaapaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVJbLTbLTbLTbLTbLTbLTbLTbuAbKFbMebMebMebMebVLbKFbKuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVNbVMbVMbVObVSbNxcczbRSbVUbNxaaaaaaaaaaaabNybZrbVWbVXbVZbIWbPfbNFbVQbVPbVRbNFbSUbUXbVfbVcbVDbVCbVEbSUcaqcaqcaqcaqcaqbTFbWabVVbWcbWbbWebWdbWgbWfbWibWhbWkbWjbWkbWlbWkbWmbWqbWpbWsbWrbWtbWrbWvbWubWwbWvbWybWxbWzbWxbWBbWAbZzbxVbMObWCbWEbWDbWGbWFbWHbWGbWGbWKbWNbWLbWPbWObCjbARbLSbChbVwaafbVrbWQbWQbWSbWUbWTbWXbWWbWZbWYbMVbVHbZUbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQrbQrbQrbQrbQrbQrbXabMebQsbQrbMebMebMebMebMebKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXmbZVbUYcaabRSbHtbIsbFLbIIbNxaaKaaaaaaaaabNybNybNybNybNybNybNybNFbUrbXcbXdbNFbSUbWnbWJbXubXubWJbWRbSUbXgbXebXebXhcaqbIKbDtbDtbXlbXocpNbXpbXwbXtbXzbXybXCbXAbXEbXDbXGbXFbXJbXIbXLbXKbXNbXMbXPbXObXQbXPbXRbXPbXSbXPbXUbXTbYfbYgbIwbXVbXXbXWbYebYabYibYhbYmbYjbYobYnbAUbYpbYrbYqbYtbYsbYFaafbVrbYubYwbYvbFXbYybINbYzbYAbSSbMVbVHbJQbYBbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbMebMebMebMebMebMebTdbMebMebMebMebMebMebMebKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVMbVMbVObJRbNxcxKbNxbKgbNxbYIbYKbYMbYIbYIbKCbLUbYLbYPbYObZnbYSbYVbYUbYXbYWbZCbWJbYQbYxbYRcbkbYTbYYbZbbYZbZebZdcaqbKibPxcbnbZjbZibZkbZkbZmbZlbZpbZobTJbTJbZqbZsbTJbTJbZtcbtcbAcaIbZvbZubZxbZybZBbZybZAbZabZEbZabZAbZGbYfbPObIwbZIbZKbZJbZMbZLbXbbZNbMObMObwwbwwbwwbwwbwwbZPbZRbZQbwwbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVbMVcbLbZTbZSbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRQbMebMebMebMebMebMebMebMebMebMebMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcbOaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaabZfbZgbZgbZgbZgbZgbZgbLubKnbYIbZYbZZbYIcaccabcaecadcagcafcamcahcaocancascapcaibWJbYQcajcakcbkcalbSUcaqcaqcaqcaqcaqbTFbPxbDtcaucatbZOcawcazcaycaCcaBbTJcaxcaLcaKcaMcaEcaFcaGcaHcaIcaNbZucaObZycaWcaPbZAcaXcbdcbbbZAcbfbYfbPObIwbXYcaJbXZbXYbXYbIwbIwbIwcaRcaScaTcaUchBbwwbwwcbibwwbwwccGcaYcblcaAcavbLvcaZcbacbcccQccMccYccSbLIbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUjbUfbUfbMebMebMebMebMebMebMebMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcbmcbpcbobLObLMbMNbLPbMScbvbYIcbxcbybYIbYIcbzcbCcbBcbEcbDcbjcbFbYVbYUbYXcbGcbHbWJbWJcdYcdZbWJcebbSUbNpbNacaqbxlcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJcbQcbNbTJcbRcbTcbScbUcaEcbPceicelcaIcaNbZucbVbZycbXcbWbZAcaDccbcbZbZAcccbYfbYbbYdbYccceccsccAbYccepbYkbYlcktbZDbZwbZFcktcerccfcchccgccncckccrccqcexcevceHceCcevceIceZceKcfeccwccyccxcAlbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbNjbKtbKtbMebMebMebMebMebMebMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafccuccucbobNSbNqcbuccBccDccCbYIccEccHccFccKccIccNcbYccPccOcdTccRccUccTccWccVccXcdycdQcdFcekceecemccZcdbcdacddcdccaqbTFcbIcdecdgccLcdicdhcdkcdjcdmcdlcdocdncdqcdpcdrcaEcdtcdscducaIcaNbZucdvbZycdxcdwbZAcdzcdBcdAbZAcdEbYfbYfcaQbYccdHcdGcdMbYcchBccacjfcdLcdLcdNcdPcdLcdOcdRcdVcdUcdOcdSceacdWceccdScdScdScdScedcdWceccdScdSbXjcdXcDEcfIcehcegcfUcenceoceoceoceoceoceoceoceoceoceoceoceoceoceoceoceocesceqceqcetbKtbKtbMebMeceubMebMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejceycewbYIbYIbYIbYIbYIcgjcgocgmcgmcgmcgucezbYVbYUbYXceAbZCceBceEceDceGceFceJbSUceMceLcdfceLcaqbTFcbIceOcePcePcePceRceSbTJceUceTbTJcbRcbSceVcbUcaEceWcdsceXcaIcaNbZuceYbZyceNcfabZAbZAbZAbZAbZAcfccfgbYfcaQbYcccdcgRbYcbYcchBcgVcjfcdLbxucfhcfhbBlcdOcfdcfkcffcdOcflcfmcfmcfmbJZcfpcfobKycfqcftcfscfucdScfwbNTbOobUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcfzcfycfAbNkbKsbKtbKtbMebPCbMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejbPebOSbLWcfDcfGcejcfJcfHcfFcfKcfMcfLcfNcfNcgAcfOcfOcfPcfQcbFbYVbYUbYXcfRcaibLVcfWcfVcfbcfXcgabSUceLceLcaqcgbcaqbTFcbIcgccgdcgdcgdcgecbIcfYcggcgfcfYcghcgkcgicglcaEcgncdscgpcaIcgrcgqcgtbZycgxcgwbZycgybYfcgzcgCcgBcgDbYfccjccicgGcgFcgHcclcclcclccmcdLcgJcgIcgIcgKcgScgLcgOcgMciicgQcgTcgTcgTcgWcgYcgXchacgZchachbchccdScgNbPycgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafchdbKEbKEbKGbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejceycewbYIbYIbYIbYIbYIcgjcgocgmcgmcgmcgucezbYVbYUbYXceAbZCceBceEceDceGceFceJbSUceMceLcdfceLcaqbTFcbIceOcePcePcePceRceSbTJceUceTbTJcbRcbSceVcbUcaEceWcdsceXcaIcaNbZuceYbZyceNcfabZAbZAbZAbZAbZAcfccfgbYfcaQbYcccdcgRbYcbYcchBcgVcjfcdLbxucfhcfhbBlcdOcfdcfkcffcdOcflcfmcfmcfmbJZcfpcfobKycfqcftcfscfucdScfwbNTbOobUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafbKEcfycfAbNkbKsbKtbKtbMebKFbMebKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejbPebOSbLWcfDcfGcejcfJcfHcfFcfKcfMcfLcfNcfNcgAcfOcfOcfPcfQcbFbYVbYUbYXcfRcaibLVcfWcfVcfbcfXcgabSUceLceLcaqcgbcaqbTFcbIcgccgdcgdcgdcgecbIcfYcggcgfcfYcghcgkcgicglcaEcgncdscgpcaIcgrcgqcgtbZycgxcgwbZycgybYfcgzcgCcgBcgDbYfccjccicgGcgFcgHcclcclcclccmcdLcgJcgIcgIcgKcgScgLcgOcgMciicgQcgTcgTcgTcgWcgYcgXchacgZchachbchccdScgNbPycgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKEbKEbKEbKEbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEcgEaaaaaacimcgUcgUcgUchfchgcejchichhchkchjchmchlchochnchqchpchschrchuchtchxchvchzchybSUbSUbSUbSUbSUbSUbSUbSUchCchAcaqchDcaqbTFcbIcbIctpctqctrcbIcbIchEchHchFcfYcaEcaEcaEcaEcaEcaIcfZchJcaIchwchKchwbZychMchLbZybYfbYfbVibVicgBchNbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLchechOchOchQchSchRchUchTchXchVchYchYchYchYcidcicchYciechYcigcihcdSchZbPWchGcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEcijcikcijcgEcilcincilcgEciocipciocgEaaaaaacjlcgUcgUchfchfcircejbQecischWciuciwcivciycixciIciHciHciJciHcbFbYVciKbYXciLcjrciMciOciNciOciPciQciqciqciAciAciAciAbTFciGciRciSciSciVciTciXciWciZciYcjbcjacjdcjccjccjeciUcaIcaIcaIcjhcjgcjibZybZybZybZybQtbpvbVicjkcjjcjmbYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcjocjncjqcjpbSabPwcjvbVKcbMcjycjAcjycjycjBcjDcjCcjFcjEcjFcjGcjHcdScmpbQucjxcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEcijcjIcijcgEcilcjJcilcgEciocjKciocgEaaaaaacjlcgUchfchfchfcjLcmmcjNcjMchWchIcjQcjPcjScjRcmocjTcjVcjUcjWcbFbYVcjXchzcjYckacjZckbckbckbckcckeckdckfcmRckhckgciAbTFciGchPciSckjcklckkcubckmckockncngckpckrckqcjcciaciUbQDcnwcnuckvcfickwcnEcdIcdIcdJcdIcdKbVibVibVibVibYfccobYfaaaaaaaaaaaaaaaaaaaaacdLckyckxckAckzckEcdOckBcdOckGckCckFckDckDckFckIckHckDckJckDckLckNcdSckPckOckQcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacgEckRckTckScgEckUckWckVcgEckYclackZcgEaaaaafcjlbQHcgUchfchfchfcejckMckKchWchWclcchWchWchWchWcldciHcleclfcbFclhclgcljcliclmclkclnclnclnclpclrclrcluciAcllclvclwbQSciGclyciSclzclBclAclDclCclFclEclHclGclJclIcjcclKciUcnVcnXclNclPclOclQclNclRclSclTbYfceQcdIcdIcdIcdIcdIcfjbYfaaaaaaaaaaaaaaaaaaaaacdLclYclVcfncifcdOcitcmdcmccdScmecmfcmfcmfcizcmicmhcmlcmkcmfcmfcmncdScmzcobcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcgEclXcmDcmjcgEcmtcmDcEgcgEcmtcmDcEgcgEaaaaafcmQcgUcgUchfchfcmscejcmvcmucmxbRqcmAcmycmBcmBcmEcmCcmBcmFciCcbFcmIcmHcmKcmJcjrcmLcmLcjsclrcmNcmPcmOcmOciAcibcmScoybRRciGcmUciScmVcmXcmWciGcmYcnacmZciUcnbcndcnccjccneciUclLclMclNcnlcnfcnlclNaaaaaaaaabYfbYfbYfcnnclSclSclTbYfbYfaaaaaaaaaaaacdOcdOcdOcdOcdOcdOcdOcdOcdOcnhcnjcnicdScdScnHcntcnNcdScdScdScdScoucntcnNcdScdScnvcnocnvaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaafaafaafaaaaafcnxaafcnxaafcKAaafcpfaafcKAaafcpfaafaafaaacejcnqcnpchfchfcnrcnDcowcovcnycnmcnscnGbMabLYcnGcnGbMHcoxcnGcnJcnFcnCcnIcnMcnOcnOcnOcnOcnLcnKcnRcnRcnRcgscgscgscgsbSgciGcnQcnScmVcnUcnTciGcmYcnacnWciUcnYcnZcnccoccoaciUclLclMclNcjtcodcofclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacdOcogcojcohcwlcokconcolcomcoocoqcopcdOaapaafaafaafaafaaaaaaaaabSYaaaaaaaaaaafcoscqscosaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcptcpBcpAcpGcpCcpIcpHcpGcpScpZcpHcqtcqdcqxcqwcnycnycnycnycnycnycnycnycozcotcoBcoAcoCbNPbQabOvbRfcoGbOvcoGbRvcnGcoKcoJcoLcnOcoNcoMcoPcoOcoRcoQcpjcpbcpbcpkcpncpncpjcrvciGciGcpccoSciGciGciGcjzcnacoUciUciUciUcoVcphciUciUclLcpiclNcoXcoWcoXclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafcdOcoYcoZcoYcpdcpacpgcpecomcomcplcomcdOcdOaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacpmaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcqDcppcpocprcpqcpucpscpwcpvcpycpxcpDcpzcpEcpucpJcjOcpLcpKcfEcpMcpPcpOcpRcpQcpUcpTcpVbRWbRvbStbYHbVYbYNcqacfTcqOcoKcqecqfcnOcoRcoRcoRcoRcoRcqgcpjcqPcqPcqPcpncpncpjbTFbPxciGcqicqhcqkcqjciGcqlcnacqmciUcqncqpcqocqqciUclMclLcpiclNcqucqrcqzclNaaaaaaaaaaaaaaaaaacqvcqRcrkcrgcqvaafaaaaaaaaaaaacdOcoYcoYcoYcoicqAcqCcqBcqFcqEcqHcqGcqIcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacqJaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcrUcqMcqKcqScqQcpucqTcpucqUcqMcqTcpucqUcqMcpucpucpucpucpucqVcpucpucpucqXcqWcqZcqYcrabRWcjwcjucnAcnzcrfcrecfTcsgcoKcqecricnOcrjcoRcoRcrlcoRcrmcpjcrIcrKcrJcrKcrLcpjbTFcrqciGcrocrncrrcrpcrtcrscrwcrucrycrxcrAcrzcrBciUcrEcrFcrGcrHcqvcrCcqvcrHaaaaaaaafaaaaaaaaacqvcrDcrNckicqvaafaafaaaaaaaaacdOcomcomcomcomcrOcpgcrQcrQcrQcnjcrQckscdOaaaaaaaaaaaaaaacrPcrPcrPcbOaafaafaafaafcrSaafaafaafaafaafaaqcrPcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcqDcpucqYcpucqYcpucqTcpucrTcrXcrWcrXcrZcrXcrXcsbcsacpucpucsdcsccsccsccsfcsecshcshcsibRWcnBbOvcoEcoDcoHcsncoIcnGcsscsrcstcsqcsvcsucszcswcoRcsAcpjcsxcrKcsycrKckucpjbTFcfxciGcsDcsCcsFcsEciGcfYcufcfYciUcsGcsJcsHcsKbTkcsIcrGcrGcqvclbcsLcsNcqvcqvcqvcqvcqvcqvcqvcqvcsOcsQcsPcqvcqvcqvcrHaaaaaacdOcogcojcohcslcsRcqCcrQcrQcrQcnjcrQcsScdOaaaaaaaaaaaaaaacrPaaaaafaaaaafaaaaaaaaacsTaaaaafaafaaaaaaaaaaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaacqDcpucqYcpucsUcsWcsVcsZcsYctacrWcrXctbcrXcrXctdctcctfctecticthctkctjctjctlcqYcqYctmcoTcpXcpWcnGcnGcpYcnGcnGcnGctucttcstcvnctxcvtctBctycoRctCcpjcvOcrKcsycrKcvRcpjctvctwciGciGctDciGciGciGciBclMbTlciUciUciUctEciUciUcsIcrGaaacqvctHctGctIctFctKctJctMctLctOctNcqvcuVctPcuVcqvctQctRcqvaafaafcdOcoYcoYcoYctScpactUctTctWctVctXcrQctZcdOcdOcdOcdOaaaaaacrPaaacuacuacuacuacuaaafcsTaafcuacuacuacuacuaaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbOaafaafaafaaaaafcnxaafcnxaafcKAaafcpfaafcKAaafcpfaafaafaaacejcnqcnpchfchfcnrcnDcowcovcnycnmcnscnGbKGbKGcnGcnGbMHbKGcnGcnJcnFcnCcnIcnMcnOcnOcnOcnOcnLcnKcnRcnRcnRcgscgscgscgsbSgciGcnQcnScmVcnUcnTciGcmYcnacnWciUcnYcnZcnccoccoaciUclLclMclNcjtcodcofclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacdOcogcojcohcwlcokconcolcomcoocoqcopcdOaapaafaafaafaafaaaaaaaaabSYaaaaaaaaaaafcoscqscosaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcptcpBcpAcpGcpCcpIcpHcpGcpScpZcpHcqtcqdcqxcqwcnycnycnycnycnycnycnycnycozcotcoBcoAcoCbKGbQabOvbRfcoGbOvcoGbRvcnGcoKcoJcoLcnOcoNcoMcoPcoOcoRcoQcpjcpbcpbcpkcpncpncpjcrvciGciGcpccoSciGciGciGcjzcnacoUciUciUciUcoVcphciUciUclLcpiclNcoXcoWcoXclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafcdOcoYcoZcoYcpdcpacpgcpecomcomcplcomcdOcdOaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacpmaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcqDcppcpocprcpqcpucpscpwcpvcpycpxcpDcpzcpEcpucpJcjOcpLcpKcfEcpMcpPcpOcpRcpQcpUcpTcpVbKGbRvbStbYHbVYbYNcqacfTbLncoKcqecqfcnOcoRcoRcoRcoRcoRcqgcpjcqPcqPcqPcpncpncpjbTFbPxciGcqicqhcqkcqjciGcqlcnacqmciUcqncqpcqocqqciUclMclLcpiclNcqucqrcqzclNaaaaaaaaaaaaaaaaaacqvcqRcrkcrgcqvaafaaaaaaaaaaaacdOcoYcoYcoYcoicqAcqCcqBcqFcqEcqHcqGcqIcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacqJaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaafcrUcqMcqKcqScqQcpucqTcpucqUcqMcqTcpucqUcqMcpucpucpucpucpucqVcpucpucpucqXcqWcqZcqYcrabKGcjwcjucnAcnzcrfcrecfTbLncoKcqecricnOcrjcoRcoRcrlcoRcrmcpjcrIcrKcrJcrKcrLcpjbTFcrqciGcrocrncrrcrpcrtcrscrwcrucrycrxcrAcrzcrBciUcrEcrFcrGcrHcqvcrCcqvcrHaaaaaaaafaaaaaaaaacqvcrDcrNckicqvaafaafaaaaaaaaacdOcomcomcomcomcrOcpgcrQcrQcrQcnjcrQckscdOaaaaaaaaaaaaaaacrPcrPcrPcbOaafaafaafaafcrSaafaafaafaafaafaaqcrPcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcqDcpucqYcpucqYcpucqTcpucrTcrXcrWcrXcrZcrXcrXcsbcsacpucpucsdcsccsccsccsfcsecshcshcsibKGcnBbOvcoEcoDcoHcsncoIcnGcsscsrcstcsqcsvcsucszcswcoRcsAcpjcsxcrKcsycrKckucpjbTFcfxciGcsDcsCcsFcsEciGcfYcufcfYciUcsGcsJcsHcsKbTkcsIcrGcrGcqvclbcsLcsNcqvcqvcqvcqvcqvcqvcqvcqvcsOcsQcsPcqvcqvcqvcrHaaaaaacdOcogcojcohcslcsRcqCcrQcrQcrQcnjcrQcsScdOaaaaaaaaaaaaaaacrPaaaaafaaaaafaaaaaaaaacsTaaaaafaafaaaaaaaaaaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaacqDcpucqYcpucsUcsWcsVcsZcsYctacrWcrXctbcrXcrXctdctcctfctecticthctkctjctjctlcqYcqYctmbKGbKGcpWcnGcnGcpYcnGcnGcnGctucttcstcvnctxcvtctBctycoRctCcpjcvOcrKcsycrKcvRcpjctvctwciGciGctDciGciGciGciBclMbTlciUciUciUctEciUciUcsIcrGaaacqvctHctGctIctFctKctJctMctLctOctNcqvcuVctPcuVcqvctQctRcqvaafaafcdOcoYcoYcoYctScpactUctTctWctVctXcrQctZcdOcdOcdOcdOaaaaaacrPaaacuacuacuacuacuaaafcsTaafcuacuacuacuacuaaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacqDcpucsUcsWcsWcsWcsVcsWcsWcsWcsVcsWcsWcsWcsWcsWcuccudcsWcuebTmcugcsWcsWcsWcuicuhcukcujcpucpucqccqbcqycuocurcuqcuocuscuucutcuwcuvcuvcuxcuvcuycwObTocuAcuzcuBcuBcpjcuCcuDcwXcuFcuFcuGcuEcuHcuJcuJcuJcuJcwPcuJcuJcuJcuKcrFcrGaaactFcuLcuIcuMctFcuOcuNcuPcuPcuRcuQcltcuPcuXcuPcuVcuYcuPcqvaaaaaacdOcoYcoYcoYcslcuZcvbcvacvdcvccvecrQcrQcvfcvhcvgcdOaafaafcrPaafcvicvjcvjcvjcvjcvkcsTcvmcvlcvlcvlcvlcvoaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacqDcpucpucpucpucpucqTcpucpucpucqTcpucpucpucpucpucqUcpucpucrabTBcvpcpucvrcMicvucvscvwcvvcvxcvvcvzcvyclxcvAcvCcvycvycvDcvEcnLcvFcoRcvHcvGcoRcoRcwWcrKcrKbUdcuBcuBcpjbPxcAscvNcvNcvNcvNcxFcvNcvNcvNcvNclMbVxcrGcrGcrGcrGcrGcrGaaactFctFcvIctFctFcvKcvJcvPcvLcvScvQcvUcvTcvWcvVcvYcvXcvZcqvaaaaaacdOcomcomcomcomcwacpgcvacwccwbcwdcrQcrQcrQcrQcwecdOaaaaaacrPaafcwfcwfcwfcwfcwfaaacsTaaacwfcwfcwfcwfcwfaafcrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaacbOaaaaaaaaaaaacqDcpucpucpucpucpucqTcpucpucpucqTcpucpucpucpucpucqUcpucpucracysbVBcpucpucwhcwhcwicpucpucwkcwjcwgcwgcwgcwgcygcwmcoKcwncwocsqcwpcoRcoRcvGcoRcwrcpjbXfcrKbXrcwxcwwcpjbPxcvMcvNbXvbXscwvcwucwzcwybXBcvNclMcxvcrGaaaaaaaaaaaaaaaaaacqvcwCcwBcwEcwDcwGcwFcwIcwHcwKcwJcwLcwScwNcwMcuWcuPcwQcqvaaaaaacdOcogcojcohckXcsRcvbcwRcwTcwTcwYcwVcxabYCcxccxbcdOaaaaaacrPaaaaafaaaaafaafaafaaacsTaaaaafaaaaafaaaaafaaacrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7509,8 +7495,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacIucIUcIvaafcIucIUcIvaaacIucIUcIvaaaaaaaaaaaaaafaafaaaaafaaaaaaaaaaaaaafcIpcIrcIqcIscMbcJDcGJcHbcHbcHbcHbcJFcoFcJJcJHcJMcJLcJPcJOcIFcIEcIHcJQcJRcIIcImcIOcIPcIOcIPcIOcIPcIOcIPcIOcIPcIOcHyaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaIaafaaacIucIUcIvaafcIucIUcIvaaacIucIUcIvaafaaaaaaaaaaaaaafaafcJScIKcIKcIKcIKcILcILcILcILcILcItcILcGtcIQcHbcHbcHbcJUcGtcLEcIScLFcGtcKacJVcKdcKccKfcKecKkcGtaaacHPcHPcHPcHPcJmcHPcHPcHPcHPcHPcHPcHPaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczLczLczLczLczLczLczLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaaaaafaafcKmaafaafaafcKmaafaaaaafcKmaafaaaaaaaaaaaaaaacKocKqcKpcKscKrcJncJacKtcJcciFcJecJfcJgcJecGtcLIcJocHbcHbcKucJqcKwcKvcKBcJNcKEcKCcJxcJwcKKcKJcKLcGtaafcHycHycHycHycHycHycHycHycHycHycHycHyaafaanaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaafcKNcKMcKRcKQcKQcKQcKQcKQcKQcKQcKQcKQcKQcKQcKScKMcKMcKMcKTcLKcMdcfvcMfcMecMgcJGcMhcJIcJIcJIcLJcLCcJKcGtcLacLacHbcHbcKucKbcLhcLdcLicLVcKEcKucIFcJZcIHcLmcLncGtaafcHycHycHycHycHycHycHycHycHycHycHycHyaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaactYctYctYctYctYaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaaaaafaafcLoaafaaaaafcLoaafaaaaafcLoaafaaaaaaaaaaaaaaacKocKqcLrcLscJTcLQcIKcLvcJWcJecJecJXcJXcJYcGtcLacLacHbcHbcKucLWcLhcLwcLxcLXcLzcLycLBcLAcLGcLDcLHcGtaaacHPcHPcHPcHPcJmcHPcHPcHPcHPcHPcHPcHPaafaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaafcKNcKMcKRcKQcKQcKQcKQcKQcKQcKQcKQcKQcKQcKQcKScKMcKMcKMcKTcLKcMdcfvcMfcMecMgcJGcMhcJIcJIcJIcLJcLCcJKcGtbIMbIMcHbcHbcKucKbcLhcLdcLicLVcKEcKucIFcJZcIHcLmcLncGtaafcHycHycHycHycHycHycHycHycHycHycHycHyaafcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaactYctYctYctYctYaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaaaaafaafcLoaafaaaaafcLoaafaaaaafcLoaafaaaaaaaaaaaaaaacKocKqcLrcLscJTcLQcIKcLvcJWcJecJecJXcJXcJYcGtbIMbIMcHbcHbcKucLWcLhcLwcLxcLXcLzcLycLBcLAcLGcLDcLHcGtaaacHPcHPcHPcHPcJmcHPcHPcHPcHPcHPcHPcHPaafaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaactYctYctYctYctYaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaIaafaafcIucLLcIvaaacIucLLcIvaaacIucLLcIvaafaaaaaaaaaaaaaafaafcLNcIKcIKcIKcIKcKgcKhcKicKicKjcKgcKgcGtcGtcGJcGtcGtcGtcGtcGtcLOcGtcGtcGtcGtcGtcGJcGtcGtcGtcGtaafcHycHycHycHycHycHycHycHycHycHycHycHyaafaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaactYctYctYctYctYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIucLLcIvaafcIucLLcIvaaacIucLLcIvaaaaaaaaaaafaaaaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacKxaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaacHqcKycHqcKycKzcKycHqcKycHqcKycHqcKyaafaamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKlcKlcKlcKlcKlcKlcKlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaafcIucLLcIvaaacIucLLcIvaaacIucLLcIvaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaapaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKlcKlcKlcKlcKlcKlcKlcKlcKlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-2.dmm b/maps/exodus-2.dmm index 00382212b60..9b887b2ce7f 100644 --- a/maps/exodus-2.dmm +++ b/maps/exodus-2.dmm @@ -37,7 +37,7 @@ "aK" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/east/shuttlespace_ew4,/area/space) "aL" = (/turf/space{icon_state = "black"},/area/space) "aM" = (/turf/space,/area/space) -"aN" = (/obj/structure/window/reinforced,/turf/unsimulated/wall,/area/space) +"aN" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall,/area/space) "aO" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/prison/solitary) "aP" = (/obj/structure/bed,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/prison/solitary) "aQ" = (/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/prison/solitary) @@ -66,8 +66,8 @@ "bn" = (/turf/space/transit/east/shuttlespace_ew9,/area/space) "bo" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/prison/solitary) "bp" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) -"bq" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/wall,/area/space) -"br" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall,/area/space) +"bq" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/wall,/area/space) +"br" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall,/area/space) "bs" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) "bt" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) "bu" = (/obj/structure/table/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/hairflower,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) @@ -88,7 +88,7 @@ "bJ" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "bK" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "bL" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/med,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"bM" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall,/area/space) +"bM" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/wall,/area/space) "bN" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "bO" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "bP" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) @@ -222,8 +222,8 @@ "en" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "eo" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) "ep" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"eq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space) -"er" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall,/area/space) +"eq" = (/obj/structure/window/reinforced/crescent,/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall,/area/space) +"er" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent,/turf/unsimulated/wall,/area/space) "es" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) "et" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) "eu" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) @@ -358,7 +358,7 @@ "gT" = (/turf/space/transit/north/shuttlespace_ns4,/area/skipjack_station/transit) "gU" = (/turf/space/transit/north/shuttlespace_ns8,/area/skipjack_station/transit) "gV" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership) -"gW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) +"gW" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/wall,/area/space) "gX" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) "gY" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) "gZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space) @@ -466,7 +466,7 @@ "iX" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod2/transit) "iY" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod2/transit) "iZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space) -"ja" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) +"ja" = (/obj/structure/window/reinforced/crescent,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/airless,/area/shuttle/syndicate_elite/mothership) "jb" = (/obj/machinery/door/airlock/maintenance_hatch{req_access = list(101)},/turf/simulated/shuttle/plating,/area/centcom/evac) "jc" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "jd" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) @@ -485,9 +485,9 @@ "jq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock"; req_access = list(13)},/turf/unsimulated/floor,/area/centcom/evac) "jr" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark{name = "ninjastart"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership{name = "\improper Ninja Base"}) "js" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) -"jt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) +"jt" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership/elite_squad) "ju" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_3_recovery"; pixel_x = 25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) -"jv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) +"jv" = (/obj/structure/window/reinforced/crescent,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/airless,/area/centcom/evac) "jw" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) "jx" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) "jy" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) @@ -520,7 +520,7 @@ "jZ" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/machinery/light/small/readylight{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "ka" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Green Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) "kb" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"kc" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) +"kc" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"}) "kd" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) "ke" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) "kf" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/source_beach) @@ -545,15 +545,15 @@ "ky" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "kz" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "kA" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"kB" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space) +"kB" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/airless,/area/syndicate_mothership{name = "\improper Ninja Base"}) "kC" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) -"kD" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) +"kD" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/syndicate_mothership) "kE" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "kF" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access = list(103)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "kG" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "kH" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "kI" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) -"kJ" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/airless,/area/shuttle/syndicate_elite/mothership) +"kJ" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) "kK" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "kL" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "kM" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(109)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac) @@ -575,7 +575,7 @@ "lc" = (/obj/item/device/radio/off,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "ld" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space) "le" = (/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad) -"lf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership/elite_squad) +"lf" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) "lg" = (/obj/item/device/multitool,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "lh" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "li" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -600,10 +600,10 @@ "lB" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac) "lC" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_northwest_lock"; locked = 0; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "lD" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access = list(150)},/turf/simulated/wall/voxshuttle,/area/skipjack_station/start) -"lE" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/syndicate_mothership) -"lF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) -"lG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) -"lH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) +"lE" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) +"lF" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"lG" = (/obj/structure/window/reinforced/crescent,/turf/space,/area/space) +"lH" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "lI" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_northeast_lock"; locked = 0; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "lJ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access = list(150)},/turf/simulated/wall/voxshuttle,/area/skipjack_station/start) "lK" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_west_sensor"; pixel_x = 25},/turf/simulated/shuttle/plating,/area/skipjack_station/start) @@ -630,7 +630,7 @@ "mf" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/material/harpoon,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/engineering,/obj/item/clothing/suit/space/void/engineering,/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/weapon/rig/light/stealth,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "mg" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; pixel_x = -22; req_one_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "mh" = (/obj/item/seeds/potatoseed,/obj/item/seeds/potatoseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/weapon/material/minihoe,/obj/item/weapon/beartrap,/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start) -"mi" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"mi" = (/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "mj" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "mk" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ml" = (/obj/machinery/vending/hydroseeds,/turf/simulated/shuttle/plating,/area/skipjack_station/start) @@ -651,7 +651,7 @@ "mA" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) "mB" = (/obj/structure/lattice,/turf/space,/area/space) "mC" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/centcom/evac) -"mD" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/airless,/area/centcom/evac) +"mD" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/space,/area/space) "mE" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/centcom/evac) "mF" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/centcom/evac) "mG" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/centcom/evac) @@ -670,7 +670,7 @@ "mT" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 10},/area/centcom/evac) "mU" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/centcom/evac) "mV" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/centcom/evac) -"mW" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_mothership{name = "\improper Ninja Base"}) +"mW" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/table/standard,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "mX" = (/turf/unsimulated/wall,/area/alien) "mY" = (/turf/unsimulated/floor{icon_state = "dark"},/area/alien) "mZ" = (/obj/item/weapon/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien) @@ -681,7 +681,7 @@ "ne" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "nf" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "ng" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) -"nh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"nh" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/machinery/iv_drip,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "ni" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full{pixel_x = 2; pixel_y = 6},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "nj" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/drinkingglasses{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "nk" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) @@ -696,12 +696,12 @@ "nt" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "nu" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "nv" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start) -"nw" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"nx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) -"ny" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"nw" = (/obj/structure/table/standard,/obj/structure/window/reinforced/crescent{dir = 8},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"nx" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced/crescent{dir = 1},/turf/simulated/floor/airless,/area/syndicate_station/start) +"ny" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "nz" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start) "nA" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) -"nB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"nB" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "nC" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "nD" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "nE" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) @@ -736,7 +736,7 @@ "oh" = (/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oi" = (/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oj" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"ok" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) +"ok" = (/obj/machinery/door/window/northleft,/obj/structure/bed/chair,/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "ol" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "om" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start) "on" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -744,8 +744,8 @@ "op" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "oq" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "or" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"os" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) -"ot" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space) +"os" = (/obj/machinery/door/window/northleft,/obj/structure/bed/chair,/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"ot" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced/crescent{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "ou" = (/obj/structure/closet/hydrant{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "ov" = (/obj/structure/table/rack,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "ow" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) @@ -759,8 +759,8 @@ "oE" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/head/helmet/space/void/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "oF" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) "oG" = (/obj/structure/closet/secure_closet/medical_wall{pixel_x = -32; pixel_y = 0; req_access = list(150)},/obj/item/stack/medical/splint,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"oH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) -"oI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space) +"oH" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) +"oI" = (/obj/machinery/camera/network/thunder{c_tag = "Court"; pixel_x = 10; pixel_y = -6},/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "oJ" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "oK" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "oL" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -769,11 +769,11 @@ "oO" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "oP" = (/obj/machinery/door/airlock/centcom{name = "Barracks"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership) "oQ" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"oR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) +"oR" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "oS" = (/obj/machinery/flasher{id = "syndieflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "oT" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; pixel_x = 22; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "oU" = (/obj/machinery/light,/obj/item/device/radio/intercom/syndicate{dir = 1; pixel_y = -22},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"oV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) +"oV" = (/obj/structure/window/reinforced/crescent{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "oW" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "oX" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "merc_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "oY" = (/obj/item/device/radio/electropack,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) @@ -781,17 +781,17 @@ "pa" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership) "pb" = (/obj/machinery/door/airlock/external{density = 1; frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "pc" = (/obj/machinery/door/airlock/centcom{name = "Hardsuit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"pd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) +"pd" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "pe" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "pf" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "merc_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pg" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership) -"ph" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) +"ph" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "pi" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "pj" = (/obj/item/weapon/cigbutt,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start) "pk" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "pl" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pm" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"pn" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"pn" = (/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "po" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pp" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "pq" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -802,24 +802,24 @@ "pv" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "pw" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "px" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"py" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) -"pz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"py" = (/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) +"pz" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced/crescent{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "pA" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pB" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "pC" = (/obj/machinery/vending/assist{contraband = null; name = "AntagCorpVend"; products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/weapon/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/weapon/cartridge/signal = 4, /obj/item/clothing/glasses/sunglasses = 4)},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pD" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"pE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) +"pE" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "pF" = (/turf/unsimulated/wall,/area/centcom/living) -"pG" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) +"pG" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/obj/structure/window/reinforced/crescent{dir = 8},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "pH" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{id = "syndieflash"; name = "Flasher"; pixel_x = 27; pixel_y = 0; tag = "permflash"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pI" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pJ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "merc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "pK" = (/obj/structure/table/rack,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/weapon/gun/projectile/automatic/sts35,/obj/item/weapon/gun/projectile/automatic/sts35,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"pL" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"pL" = (/obj/structure/grille,/obj/structure/window/reinforced/crescent,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "pM" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"pN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) +"pN" = (/obj/structure/grille,/obj/structure/window/reinforced/crescent,/obj/structure/window/reinforced/crescent{dir = 1},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "pO" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) -"pP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) +"pP" = (/obj/structure/grille,/obj/structure/window/reinforced/crescent,/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "pQ" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "pR" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "pS" = (/obj/item/weapon/material/kitchen/utensil/knife{pixel_x = -6},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/structure/table/glass,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -834,7 +834,7 @@ "qb" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "qc" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "qd" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"qe" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"qe" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 4},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"}) "qf" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) "qg" = (/obj/machinery/vending/snack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "qh" = (/obj/item/weapon/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -847,7 +847,7 @@ "qo" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/living) "qp" = (/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "Preparation"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "qq" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"qr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership) +"qr" = (/obj/structure/lattice,/obj/structure/window/reinforced/crescent{dir = 8},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"}) "qs" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom) "qt" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "qu" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) @@ -909,21 +909,21 @@ "ry" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) "rz" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/supply/dock) "rA" = (/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/obj/structure/table/steel,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"rB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"rB" = (/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "rC" = (/obj/machinery/bodyscanner,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "rD" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "rE" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) "rF" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/shuttle/plating,/area/shuttle/administration/centcom) "rG" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/living) "rH" = (/obj/item/weapon/screwdriver,/obj/effect/spawner/newbomb/timer/syndicate,/obj/structure/table/steel,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"rI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"rI" = (/obj/structure/window/reinforced/crescent{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "rJ" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "rK" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/supply/dock) "rL" = (/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "rM" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) "rN" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/living) "rO" = (/obj/item/weapon/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) -"rP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"rP" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "rQ" = (/obj/structure/device/piano{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/living) "rR" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "rS" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -953,10 +953,10 @@ "sq" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Administration"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "sr" = (/obj/structure/table/standard,/turf/unsimulated/floor{dir = 2; icon_state = "white"},/area/centcom/living) "ss" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock) -"st" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"st" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/holding) "su" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "sv" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"sw" = (/obj/structure/table/standard,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"sw" = (/obj/structure/window/reinforced/crescent{dir = 1},/turf/unsimulated/beach/sand{tag = "icon-beach (SOUTHEAST)"; icon_state = "beach"; dir = 6},/area/centcom/holding) "sx" = (/obj/item/weapon/weldingtool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sy" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{dir = 2; icon_state = "white"},/area/centcom/living) "sz" = (/obj/structure/table/standard,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/retractor,/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) @@ -966,8 +966,7 @@ "sD" = (/obj/structure/sign/securearea{name = "\improper CAUTION"; pixel_x = 32},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sE" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/supply/dock) "sF" = (/obj/machinery/telecomms/allinone{intercept = 1},/obj/machinery/door/window/northright{name = "Telecoms Mainframe"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) -"sG" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_station/start) -"sH" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/iv_drip,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"sG" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "sI" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/supply/dock) "sJ" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sK" = (/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -980,7 +979,6 @@ "sR" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{dir = 2; icon_state = "white"},/area/centcom/living) "sS" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/syringe,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/weapon/surgicaldrill,/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "sT" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/material/kitchen/rollingpin,/turf/unsimulated/floor{dir = 2; icon_state = "white"},/area/centcom/living) -"sU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "sV" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "sW" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/unsimulated/floor{dir = 2; icon_state = "white"},/area/centcom/living) "sX" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) @@ -1081,16 +1079,11 @@ "uO" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "uP" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "uQ" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"uR" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) -"uS" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "uT" = (/obj/machinery/door/window/northleft,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "uU" = (/obj/machinery/door/airlock/centcom{name = "Maintenance Access"; opacity = 1; req_access = list(106)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "uV" = (/obj/machinery/porta_turret/crescent,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "uW" = (/obj/machinery/door/blast/regular{id = "ert_synth_equipment"; name = "Synthetics Modification Equipment"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "uX" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access = list(107)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"uY" = (/obj/machinery/door/window/northleft,/obj/structure/bed/chair,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"uZ" = (/obj/machinery/door/window/northleft,/obj/structure/bed/chair,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"va" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "vb" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "vc" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/armor_booster/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/armor_booster/antiproj_armor_booster,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "vd" = (/obj/structure/table/rack,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/head/beret/centcom/officer,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -1115,10 +1108,6 @@ "vw" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "vx" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/taperoll/police,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "vy" = (/obj/machinery/shieldwallgen,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"vz" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) -"vA" = (/obj/machinery/camera/network/thunder{c_tag = "Court"; pixel_x = 10; pixel_y = -6},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) -"vB" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) -"vC" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "vD" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT2"; name = "Launch Bay #2"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "vE" = (/obj/machinery/door/airlock/centcom{name = "Creed's Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/creed) "vF" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) @@ -1129,7 +1118,6 @@ "vK" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "vL" = (/obj/structure/sign/poster{poster_type = "/datum/poster/bay_50"; pixel_x = -32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "vM" = (/obj/item/weapon/aiModule/nanotrasen,/obj/item/weapon/aiModule/reset,/obj/item/weapon/aiModule/freeformcore,/obj/item/weapon/aiModule/protectStation,/obj/item/weapon/aiModule/quarantine,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/item/weapon/aiModule/safeguard,/obj/structure/table/rack,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"vN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "vO" = (/obj/machinery/door/airlock/centcom{name = "Maintenance Access"; opacity = 1; req_access = list(106)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "vP" = (/obj/structure/table/woodentable,/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "vQ" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) @@ -1139,8 +1127,6 @@ "vU" = (/obj/structure/sign/nosmoking_2,/turf/unsimulated/wall,/area/centcom/living) "vV" = (/obj/mecha/working/ripley/firefighter,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops) "vW" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"vX" = (/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"vY" = (/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "vZ" = (/obj/structure/closet/secure_closet/medical3{pixel_x = -5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "wa" = (/obj/structure/closet/secure_closet/medical1{pixel_x = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "wb" = (/obj/structure/closet/secure_closet/medical2{pixel_x = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) @@ -1163,11 +1149,9 @@ "ws" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) "wt" = (/obj/effect/floor_decal/corner/green{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "wu" = (/obj/machinery/computer/ordercomp,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) -"wv" = (/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced{dir = 2; health = 1e+006},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "ww" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "wx" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "wy" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) -"wz" = (/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/structure/window/reinforced{dir = 2; health = 1e+006},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "wA" = (/obj/structure/sign/securearea,/turf/unsimulated/wall,/area/centcom/control) "wB" = (/obj/machinery/door/window{dir = 2; name = "AI Core Door"; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/control) "wC" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) @@ -1196,7 +1180,6 @@ "wZ" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "xa" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "xb" = (/obj/structure/table/reinforced,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"xc" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "xd" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "xe" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "xf" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) @@ -1387,7 +1370,6 @@ "AI" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "AJ" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/holding) "AK" = (/obj/item/weapon/stool/padded,/obj/item/weapon/stool/padded,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/holding) -"AL" = (/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "AM" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "AN" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{dir = 8; pixel_x = 22},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "AO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/shuttle/specops/centcom) @@ -1396,7 +1378,6 @@ "AR" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "AS" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "AT" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"AU" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "AV" = (/obj/structure/table/rack,/obj/item/weapon/grenade/empgrenade,/obj/item/weapon/grenade/flashbang,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "AW" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape/centcom) "AX" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall"; dir = 2},/area/shuttle/escape/centcom) @@ -1419,7 +1400,6 @@ "Bo" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start) "Bp" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Bq" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_leg,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/plating,/area/skipjack_station/start) -"Br" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Bs" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start) "Bt" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Centcom"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/ferry) "Bu" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) @@ -1532,7 +1512,6 @@ "Dx" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "Dy" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_dock"; name = "docking port controller"; pixel_x = 25; pixel_y = 0; req_one_access = list(13); tag_door = "centcom_dock_airlock"},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "Dz" = (/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) -"DA" = (/obj/structure/window/shuttle{icon_state = "window2"},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "DB" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/green{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "DC" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/holding) "DD" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 0},/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/holding) @@ -1588,8 +1567,6 @@ "EC" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"}) "ED" = (/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station) "EE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/skipjack_station/start) -"EF" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/holding) -"EG" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/unsimulated/beach/sand{tag = "icon-beach (SOUTHEAST)"; icon_state = "beach"; dir = 6},/area/centcom/holding) "EH" = (/turf/unsimulated/wall,/area/tdome) "EI" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/tdome) "EJ" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) @@ -1855,9 +1832,6 @@ "JJ" = (/obj/structure/table/rack,/obj/item/stack/material/sandstone{amount = 50},/obj/item/stack/material/sandstone{amount = 50},/obj/item/stack/material/sandstone{amount = 50},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/acting/backstage) "JK" = (/obj/structure/table/rack,/obj/item/stack/material/wood{amount = 50},/obj/item/stack/material/wood{amount = 50},/obj/item/stack/material/wood{amount = 50},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/acting/backstage) "JL" = (/obj/structure/table/rack,/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/acting/backstage) -"JM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"JN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"JO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "JP" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chawanmushi,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "JQ" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c1,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "JR" = (/obj/machinery/computer/shuttle_control/multi/vox,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"}) @@ -1877,7 +1851,6 @@ "Kf" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/wizard_station) "Kg" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/wizard_station) "Kh" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/wizard_station) -"Ki" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"}) "Kj" = (/obj/machinery/door/airlock/external{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "Kk" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{tag = "icon-lava"; name = "plating"; icon_state = "lava"},/area/wizard_station) "Kl" = (/turf/unsimulated/floor{tag = "icon-lava"; name = "plating"; icon_state = "lava"},/area/wizard_station) @@ -1887,14 +1860,11 @@ "Kp" = (/obj/machinery/reagentgrinder,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/acting/backstage) "Kq" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/acting/backstage) "Kr" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) -"Ks" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"}) "Kt" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "Ku" = (/obj/item/weapon/inflatable_duck,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/holding) "Kv" = (/obj/structure/sign/redcross,/turf/unsimulated/wall,/area/centcom/holding) "Kw" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/acting/backstage) "Kx" = (/obj/machinery/door/airlock/glass_medical{name = "Escape Shuttle Infirmary"; req_access = list(5)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"Ky" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) -"Kz" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "KA" = (/turf/unsimulated/beach/sand{tag = "icon-desert1"; icon_state = "desert1"},/area/centcom/holding) "KB" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand{tag = "icon-coconuts"; icon_state = "coconuts"},/area/centcom/holding) "KC" = (/obj/item/weapon/paper{info = "\[center]\[b]READ INSTRUCTIONS CAREFULLY\[/b]\[/center]\[br]\[br]Hello! Welcome and congratulations on being hired for NanoTrasen's new Television initiative. You are now tasked with the creation and production of NanoTrasen brand television that is to be broadcasted to all of our stations!\[br]\[br] We've outfitted these facilities with all the materials and objects you will need.\[br]On the port side you'll find various venders and machines, namely the Wardrobe Dispenser, which will dispense holoclothing and items for you to use, and a Quickee brand plastic surgery machine (which I would remind you you are contractually obligated to \[b]not\[/b] report to the authorities.) which can change your appearance into anything you want, even other races. Stern and aft you'll find all the materials we could muster up on short notice. Use it to decorate the stage to your liking. Starboard you'll find gases, microwaves, hydroponic trays and the like. Go silly! This is already paid for (as are you) so do what you want and entertain!"; name = "Actor's Guild Instruction Pamphlet"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/acting/backstage) @@ -2043,7 +2013,7 @@ adaXaVbfaWbbaZaScqbSbSbSbSbSbSbSbSbSbSbSbSbSbUaWbcbeaUaUaZbcagarasatauavbgbhaybj alaWbeaRaSaYaVaZczbSbSbSbSbSbSbSbSbSbSbSbSbSdYaSbfbbaXaXaVbfacbibjbnbkblbmapaFarasatauavbgbhbibjbnbkblbmapaqarasatauavbgbhbiazaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbqbWbWbWbWbWbWbWbWbWbWbriEesesesesiEesesesesbrfvgXgPgPgPgPgPiGfvfwbrewewiQhKfejyjyjyfehNbrjBjBjBjBjBjBjBjBjBjBbreSeSjNhOfififififihVbreYeYeYjRjRjRkaeYeYeYbM aoaSbbaUaZbabeaVcTbSbSbSbSbSbSbSbSbSbSbSbSbSidaZaRaYaWaWbeaRaiatauavbgbhbibjaAbkblbmapaqarasatauavbgbhbibjbnbkblbmapaqarasataJaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbqbWbXbWbWbWbWbXbWbWbWbresfDesfuesesfDesfuesbrfvkdkbkbkbkbkbkefvfwbreweveJhKfehKfehNfehNbrkfkfkfkfkfkfkfkfkfkfbreSeReUhOfififififihVbreYeYeYfkfkfkeYeYeYeYbM abaZaYaXaVbdbbbefsbSbSbSbSbSbSbSbSbSbSbSbSbSiuaVaUbaaSaSbbaUafbmapaqarasatauaKbgbhbibjbnbkblbmapaqarasatauavbgbhbibjbnbkblbmaEaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMbqbWbWbWbWbWbWbWbWbWbWbresesesesiEesesesesiEbrfvfvfvfvfvfvfvfvfvfwbreweveJkjjykjkrkqjykqbrkfkfkfkfkfkfkfkfkfkfbreSeReUktkvkvkvkvkvkwbreYeYeYeYeYeYeYeYkAkAbM -aeaVbaaWbeaTaYbbccbSbSbSbSbSbSbSbSbSbSbSbSbSiLbeaXbdaZaZaYaXanbkblbmapaqarasaIauavbgbhbibjbnbkblbmapaqarasatauavbgbhbibjbnbkaCaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMdCkBkBkBkBkBkBkBkBkBkBdCkBkBkBkBkBkBkBkBkBkBdCkBkBkBkBkBkBkBkBkBkBdCkBkBkBkBkBkBkBkBkBkBdCkBkBkBkBkBkBkBkBkBkBdCkBkBkBkBkBkBkBkBkBkBdCkBkBkBkBkBkBkBkBkBkBdC +aeaVbaaWbeaTaYbbccbSbSbSbSbSbSbSbSbSbSbSbSbSiLbeaXbdaZaZaYaXanbkblbmapaqarasaIauavbgbhbibjbnbkblbmapaqarasatauavbgbhbibjbnbkaCaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMdCgWgWgWgWgWgWgWgWgWgWdCgWgWgWgWgWgWgWgWgWgWdCgWgWgWgWgWgWgWgWgWgWdCgWgWgWgWgWgWgWgWgWgWdCgWgWgWgWgWgWgWgWgWgWdCgWgWgWgWgWgWgWgWgWgWdCgWgWgWgWgWgWgWgWgWgWdC ahbebdaSbbbcbaaYfFbSbSbSbSbSbSbSbSbSbSbSbSbSipbbaWaTaVaTaUaYeEauavbgbhbibjbnaBblbmapaqarasatauavbgbhbibjbnbkblbmapaqarasatauaKaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM agbbaTaZaYbfbdbafKbSbSbSbSbSbSbSbSbSbSbSbSbSiyaYaSbcbeaTaUaYaobhbibjbnbkblbmaEaqarasatauavbgbhbibjbnbkblbmapaqarasatauavbgbhayaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM acaYbcaVbaaRaTbdcObSbSbSbSbSbSbSbSbSbSbSbSbSiPbaaZbfbbbcaXbaabasatauavbgbhbiazaAaBaCaDaEaFaGaHaIaJaKawaxayazaAaBaCaDaEaFaGaHaIaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM @@ -2054,17 +2024,17 @@ akbcaXbabfaSaUaRbeaWbbiedYeIeMeOeNEmhZiPbaaRaVbfaYaWaTaXaVbfacaXamaUaZbcaXbeaSaW aabfaWbdaRaZaXaUbbaSaYbeidbUieiuiPiKigaWbdaUbeaRbaaSbcaWbeaRaiaWadaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeahaWbdaLfLbeaXbdbebeaXbdbeaXbdbeaXbdbeaXbdbebeaXbdbeaXbdbeaXbdbeaXbdbeaXbdbebeaXaMfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM ajaRaSaTaUaVaWaXaYaZbabbbcbdbebfaWaVbaaSaTaXbbaUbdaZbfaSbbaUafaSalaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbagaSaTaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfMfNfNfNfNfNfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM amaUaZbcaXbeaSaWbaaVbdaYbfaTbbaRaSbebdaZbcaWaYaXaTaVaRaZaYaXanaZaoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYacaZbcaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfPfQfRfSfTfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -adaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeaUaVbaaWakaVabaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaiaVbfaLfLbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUkJkJkJfUfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +adaXaVbfaWbbaZaSbdbeaTbaaRbcaYaUaZbbaTaVbfaSbaaWbcbeaUaVbaaWakaVabaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaiaVbfaLfLbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfbfbabaaZbfbaaZbfbaaZbfbaaZbfbaaZbfaTbafLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUjajajafUfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM alaWbeaRaSaYaVaZaTbbbcbdaUbfbaaXaVaYbcbeaRaZbdaSbfbbaXbebdaSaabeaeaVbaaWbeaTaYbbaRfWcfdbfXfYfZcwdtcgaUbaaWbbbfbeaXbdafbeaRaLfLaRbdbdaVaRbdaVaRbdaVaRbdaVaRbdaVaRaRbdbdaVaRbdaVaRbdaVaRbdaVaRbdaVaRbdbdfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgagagafUfOkNkKfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aoaSbbaUaZbabeaVbcaYbfaTaXaRbdaWbebabfbbaUaVaTaZaRaYaWbbaTaZajbbahbebdaSbbbcbaaYgdLVgfggghgigjgkglfZgmbdaSaYaRbbaWaTanbbaUaLfLaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaUaTaTbeaUaTbeaUaTbeaUaTbeaUaTbeaUaTaTfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM abaZaYaXaVbdbbbebfbaaRbcaWaUaTaSbbbdaRaYaXbebcaVaUbaaSaYbcaVamaYagbbaTaZaYbfbdbagmgigqghglgrgsgtgugvgwaTaZbaaUaYaSbcakaYaXaLfLaXbcbcbbaXaZgQgQgQgQgQgQaZgQgQgQaZaZaZgQgQgQaZgQgQgxgygmgxbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUkOgogpfUgzgAkPkYkRkZgAlelbkQkQfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aeanamacakalajaaaeadahabaiagaoafajalahamacaaabakagadafamabakMAbaacaYbcaVbaaRaTbdgwgtgugkgIgfglghgjgJgKbcaVbdaXbaaZbfaabaaWaLfLaWbfbfaYaWaZgQhdgQgQhdgQaZgQhdgQgQgQgQgQhdgQaZgQhdjQjQjPjQaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUlfgAkZkZkRkZgAkZkQkQkQfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aeanamacakalajaaaeadahabaiagaoafajalahamacaaabakagadafamabakMAbaacaYbcaVbaaRaTbdgwgtgugkgIgfglghgjgJgKbcaVbdaXbaaZbfaabaaWaLfLaWbfbfaYaWaZgQhdgQgQhdgQaZgQhdgQgQgQgQgQhdgQaZgQhdjQjQjPjQaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgngogpfUjtgAkZkZkRkZgAkZkQkQkQfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM ahbdaSaYaRbbaWaTbbbdaSaYaRbbaWaTbbaWaTbdaSaYaRbbaWaTanaMaMaMaMbdaibabfbebdaUbcaTgKghgjgvgqgigIgkgggsgQbfbeaTaWbdaVaRajbdaSaLfLaSaRaRbaaSaZgQhdhdhdhdgQgQgQhdhdhdhphkhkhjgQgQgQhphkhkhjjQbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgogogogVmrmvkZkZkRkZgAlelbkQkQfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM agaTaZbaaUaYaSbcaYaTaZbaaUaYaSbcaYaSbcaTaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbaTaXbfbcgQgkgggJgugtgqgvgrglgZaRbbbcaSaTbeaUamaTaZaLfLaZaUaUbdaZaZgQhdhdhdhdgQgQhdhdhdhdhthrhrhqhdgQgQhthrhrhqjQbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUgogogogVmrmvkZkZkZkZmwkZkQkQmxfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -acbcaVbdaXbaaZbfbabcaVbdaXbaaZbfbaaZbfbcaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYbcaWaRbfgZgvgrgsgjghgugJgfgIhhaUaYbfaZbcbbaXadbcbeaLfLaVaXaXaTaVaZgQhdhdhdhdgQgQhdhdhdhdhIgTgTgMhdgQgQhIgTgTgMjQaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUhmgohnfUlfgAkZkZkRkZgAlelbkQkQfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +acbcaVbdaXbaaZbfbabcaVbdaXbaaZbfbaaZbfbcaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYbcaWaRbfgZgvgrgsgjghgugJgfgIhhaUaYbfaZbcbbaXadbcbeaLfLaVaXaXaTaVaZgQhdhdhdhdgQgQhdhdhdhdhIgTgTgMhdgQgQhIgTgTgMjQaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNfUhmgohnfUjtgAkZkZkRkZgAlelbkQkQfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aibfbeaTaWbdaVaRbdbfbeaTaWbdaVaRbdaVaRbfbeaTaWbdaVaRajaMaMaMaMbfakbcaXbabfaSaUaRhhhogfglgggkgjgsgicggyaXbaaRaVbfaYaWalbfbbaLfLbeaWaWbcbeaZgQhdhdhphkhkhjhdhdhdhdhdgUcZhdhdhdhdhdgUcZhdjQbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNhsfUhvfUhugzgAkZkZkRkZgAkZkQkQkQfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhfhfhfaMhghghgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM afaRbbbcaSaTbeaUaTaRbbbcaSaTbeaUaTbeaUaRbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdaRaZaXaUhodtgrgvgrgvgggrgvfZgOaWbdaUbeaRbaaSaoaRaYaLfLbbaSaSbfbbaZgQhdhdhthrhrhqhdhdhdhdhphcgNhphdhdhdhphcgNhpjQbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfNbDhsmyhubDgzgAkZkZkRkZgAlelbkQkQfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmzhyhzhAmChfhfhfaMhghghgmzhyhzhAmCaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -anaUaYbfaZbcbbaXbcaUaYbfaZbcbbaXbcbbaXaUaYbfaZbcbbaXadaMaMaMaMaUajaRaSaTaXicfXhChDgrgigsgigsgfgigsgkfZfZgxhCaYaUbdaZabaUbaaLfLaZaRaYaZaYaZgQhdhdhIgTgTgMhdhdhdhdhthkhahthdhdhphthkhahtjQaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmEmDmDmDmGmFhJmFmFmFhQmFmHmDmDmDmEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +anaUaYbfaZbcbbaXbcaUaYbfaZbcbbaXbcbbaXaUaYbfaZbcbbaXadaMaMaMaMaUajaRaSaTaXicfXhChDgrgigsgigsgfgigsgkfZfZgxhCaYaUbdaZabaUbaaLfLaZaRaYaZaYaZgQhdhdhIgTgTgMhdhdhdhdhthkhahthdhdhphthkhahtjQaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOfOaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmEjvjvjvmGmFhJmFmFmFhQmFmHjvjvjvmEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM akaXbaaRaVbfaYaWbfaXbaaRaVbfaYaWbfaYaWaXbaaRaVbfaYaWalaMaMaMaMaXamaUaZbcaWgygkgtgIgigsgjgrgvgigugvgrgqgkgkfXbaaXaTaVaeaXbdaLfLaVaUbaaVbaaZgQhphkhkhjcZhdhdhdhdhdhdhdhdhdhdhdhthrhrhqjPjQaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmEhLhMmImJhPhShRhUhTikhPmNmMhXhYmEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aaaWbdaUbbaSaYbeaTaUhZiaibicidbaiecdifcwigaUbeaRbaaSaoaMaMaMaMaWadaXaVbfaSgOgkghgqgugvgggigsgtgjgkgfgugvggcwbdaWbcbeahaWaTaLfLbeaXbdbebdaZgQhthrhrhqgNhphphkhkhjhkhkhjhdhdhdhIgTgTgMjPjQaXbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmEiiiimOioilimilinilimiliFmOiiiimEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM ajbaaTaXaRbdaUbfaSaXipiqirisitaXiuiviwixiyaXbbaUbdaZabaMaMaMaMaSalaWbeaRaZgSgvgkgugjgJgrgkgqghgggsgigjgJgrizaTaSbfbbagaSbcaLfLbeaXbdbebdgQgQhIgTgTgMhahththrhrhqhrhrhqhdhdhdhdgUcZhdjPjQgmbdbeaXbdaMbefLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmQmMiijbimimimimimimimimimjbiimRmSaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM @@ -2086,14 +2056,14 @@ aYaSaTaXbbaUaXbbaUaSaTaXbbaUaSaTaXbbaUaSaTaXbbaUbdaZbfaMaMaMaMaSalaWbeaRcwglgvgk baaZbcaWaYaXaWaYaXaZbcaWaYaXaZbcaWaYaXaZbcaWaYaXaTaVaRaMaMaMaMaZaoaSbbaUizfWhoicdbhDldbcaWaUaTaShofWlddtfYicfZaZaRaYacaZaRaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmQlzlAlAlAlBmSaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM bdaVbfaSbaaWaSbaaWaVbfaSbaaWaVbfaSbaaWaVbfaSbaaWbcbeaUaMaMaMaMaVaeaVbaaWbeaTaYbbaRbdaUbfaSaXbcaZaYaTaUbaaWbbbfbeaXbdafaVaXaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aTbeaRaZbdaSaZbdaSbeaRaZbdaSbeaRaZbdaSbeaRaZbdaSbfbbaXaMaMaMaMbeahakadaiaaaoamajahalagaeafacabanamaoagadacaiaeaaacalanbeaWaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -bcbbaUaVaTaZaVaTaZbbaUaVaTaZbbaUaVaTaZbbaUaVaTaZaRaYaWaMaMaMaMaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMdjhegWheiAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +bcbbaUaVaTaZaVaTaZbbaUaVaTaZbbaUaVaTaZbbaUaVaTaZaRaYaWaMaMaMaMaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMdjhekcheiAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaMaMaMaMaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMheiCiBiDheaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjaiBjriBjaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjtyGiByGjtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjtiBiBiBjtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjviBiBiBjvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkciBjriBkcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkcyGiByGkcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkciBiBiBkcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkciBiBiBkcaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhejxjwjAheaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhemWmWmWheaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhekBkBkBheaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjCjEjDjGjFaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmsmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmt aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM @@ -2112,38 +2082,38 @@ aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmXnbnbnbmXmYmYmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumuaMaMaMaMaMaMmKmBmumumumumumumumumumumumumumumumumumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmLmLmLmLmXmXmXmXmXmXmYmYmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumuaMaMaMaMaMaMmPaMmBmumuihihihihihmumumumumumumumumumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmLmLmLmLnamYnamYmYmYmYmYmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumuaMaMaMaMaMaMaMaMaMaMaMihihncnPndihihmumumumumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmLmLmLmLmXmXmXmXmYmYmYnTmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumuaMaMaMaMaMaMaMaMaMaMaMlEobnUohnUobihmumumumumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmXnbmYmYnTmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMkcobnUohnUobihmumumumumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmXnbmYmYnTmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMkDobnUohnUobihmumumumumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmLmLmLmLmXmXmXmXmYmYmYnTmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumuaMaMaMaMaMaMaMaMaMaMaMkDobnUohnUobihmumumumumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmXnbmYmYnTmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMkJobnUohnUobihmumumumumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmXnbmYmYnTmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMlfobnUohnUobihmumumumumumumumumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmXmXmXmXmXmXaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMihihohohoiihihmumumumumumumumumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMihohohohihmumumumumumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMosokokoHihihoPihihihihihihihmumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMnvrPrIrIrIrBnzaMaMoRnenfngnenenerlihninjnknlihmumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMnvnHnnnJnrnLnsnHnzaMoRnenmnmnenenenenCnonononpihihihihihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMmumumumuaMaMaMaMaMaMaMaMaMnHnInRnRnSnRnRnLnHaMoRnqnMnKntneneneihnonononuihbOkQbTihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMnHnQnRnRnRnRoanZnHaMoRnenAnAnenenepaihofnonDnEihbLkQmkihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHognRnRoUnRnRonnHaMoRneneneneneneriihihihihihihbPkQnGihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMomnHoCnHnHnHnHnHooaMoVokokpdihpgpgpgihkTkTnVnWihcikQrcihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHoGoyoLounFnHaMaMaMaMaMaMphpgpgpgoclalaododihcikQrcihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHoBoAoanRornHaMaMaMaMaMaMpypgpgpgihojlaihihihpGolpGihihihihmumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlElElElEihihoPihihihihihihihmumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMnvlFlFlFlFlFnzaMaMlEnenfngnenenerlihninjnknlihmumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMnvnHnnnJnrnLnsnHnzaMlEnenmnmnenenenenCnonononpihihihihihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMmumumumuaMaMaMaMaMaMaMaMaMnHnInRnRnSnRnRnLnHaMlEnqnMnKntneneneihnonononuihbOkQbTihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMnHnQnRnRnRnRoanZnHaMlEnenAnAnenenepaihofnonDnEihbLkQmkihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHognRnRoUnRnRonnHaMlEneneneneneneriihihihihihihbPkQnGihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMomnHoCnHnHnHnHnHooaMlElElElEihpgpgpgihkTkTnVnWihcikQrcihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHoGoyoLounFnHaMaMaMaMaMaMlEpgpgpgoclalaododihcikQrcihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHoBoAoanRornHaMaMaMaMaMaMlEpgpgpgihojlaihihihlEollEihihihihmumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnvnHoOoyoanRoQnHnzaMaMmPmKoFihpgpgpgihihihihnOnOkQkQkQpWpWpKihihmumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnvnHnHnHnHvLoyoanRLZnHnHnHnHnzototihpXpgpgpgihnYnXkQkQkQkQkQkQkQkQqKihmumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHpioSoYnHnRpYnRoJnHnHoZoXpfpbpkpnpkpgpgpgpgpmkQkQkQkQkQoDkQkQkQkQoxihmumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMqeoWpjoWnHnHnHponHnHptoZplpxpbpkpLpkpgpgpgpgihoqopkQkQkQkQkQkQkQkQoMihmumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMnHnHqeqqnHnHpAnRpCnHnHpzpDpznHoIoIihqrokpdihihihihowovkQkQkQozozoeihihmumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHManRnRpHnHnRnRnRnHrbsopJpInHmBaMmBaMaMaMaMmumuihihihpGpcpGihihihihmumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnvnHnHnHnHvLoyoanRLZnHnHnHnHnzlGlGihpXpgpgpgihnYnXkQkQkQkQkQkQkQkQqKihmumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHpioSoYnHnRpYnRoJnHnHoZoXpfpbpklHpkpgpgpgpgpmkQkQkQkQkQoDkQkQkQkQoxihmumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMlFoWpjoWnHnHnHponHnHptoZplpxpbpkmipkpgpgpgpgihoqopkQkQkQkQkQkQkQkQoMihmumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMnHnHlFqqnHnHpAnRpCnHnHlFpDlFnHmDmDihlElElEihihihihowovkQkQkQozozoeihihmumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsqsoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHManRnRpHnHnRnRnRnHrbsopJpInHmBaMmBaMaMaMaMmumuihihihlEpclEihihihihmumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqsqsqsqvpepepepepRpRpepepepeqwqsqsqsqsoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHpSnRnRnRpTnRnRnRqanRnRnRqbnHmKmKmKmKaMaMaMaMmumumuihoEkQoEihmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqsqsqvpppqprkspeqcpupelgkLpepepeqwqsqsoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMnHqCnRnRnRqdnRnRnRqpnRnRnRqtnHaMaMaMaMaMaMaMaMaMmumuihoEkQoEihmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqsqvpepBpBpBpBpeququpepBpBqDlhpepeqwqspFpFpFpFpFaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnvnHnHnHnHnHnHnRnRnRnHnHnHnHnHnHnzaMaMaMaMaMmAaMmBmumuihoEkQoEihmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqvpepepMlilkljpepBpBpQpBpBpBpBqFqEpeqspFqIpUpVpFpFpFpFpFjSjSjSjSpFpFaMaMaMaMaMaMaMaMpZpZpZpZpZpZpZpZpZpZpZaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHqJrjserdqZnHqxnRrgnHrkrqrqrArtnHaMaMaMaMaMmAmBmumumuihoEkQoEihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqyqfqgpBqhqhqhpepBpBpeqiqjqkqlqmqnpeqspFqopUpUqAqzqHqGqMqLqGqOqQqPpFpFpFpFpFpFpFpFpFpFqRqRqRqRqRqRqRqRqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMnxrjrjrjrjrjnHnRnRnRnHqUnRnRnRrHnwaMaMaMaMaMmPaMmumumuihihyxihihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqVqfpBpBpBpBpBpQpBpBpepepepepepepeqXqWpFpFpFpFpFqzqOqGreraqGqOqOqOrrrfrfrfrfrfrfrfrfrrqRrsrurururururvqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMnhrCrDrjrjrjrRnRnRnRrSnRnRnRrXrTmiaMaMaMaMaMmAmBmBmumumuihihihmumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsrEpeqSpBqSpBqSpepBpBpBqTrFqsqsqsqsqsqsrGrfrfrfrrqOqOqOqOqOqOqOqOqOrrrfrfrfrfrfrfrfrfrrqRrKqYqYqYqYqYrKqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnyrjrjrjrjrjrYnRnRnRrZnRnRnRnRsanBaMaMaMaMaMmAaMaMmBmumumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqspepepepepepepepBpBrhpBrFqsqsqsqsqsqsrGrfrfrfrrqOqOqOqOqOqOqOqzqzpFpFpFpFpFpFpFpFpFpZqRrKsbqYqYqYscrKqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsdrjrjrjrLnHpzshpznHsioKslnRspnHaMaMaMaMaMaMaMaMaMmumumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqvpermrnrormrppepBpBpBsqrFqsqsqsqsqsqspFpFpFpFpFqOqOqGreqLqGqOrQrOpFrVrWrWsfpFrwrxrypZqRrKqYqYqYqYrzssqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHstsusHswsvnHsxnRsDnHsFnHnHnNnHnHaMaMaMaMaMaMaMmAaMmBmumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqyqfqgpBqhqhqhpepBpBpeqiqjqkqlqmqnpeqspFqopUpUqAqzqHqGqMqLqGqOqQqPpFpFpFpFpFpFpFpFpFpFqRqRqRqRqRqRqRqRqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMlFrjrjrjrjrjnHnRnRnRnHqUnRnRnRrHlFaMaMaMaMaMmPaMmumumuihihyxihihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqVqfpBpBpBpBpBpQpBpBpepepepepepepeqXqWpFpFpFpFpFqzqOqGreraqGqOqOqOrrrfrfrfrfrfrfrfrfrrqRrsrurururururvqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMlFrCrDrjrjrjrRnRnRnRrSnRnRnRrXrTlFaMaMaMaMaMmAmBmBmumumuihihihmumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsrEpeqSpBqSpBqSpepBpBpBqTrFqsqsqsqsqsqsrGrfrfrfrrqOqOqOqOqOqOqOqOqOrrrfrfrfrfrfrfrfrfrrqRrKqYqYqYqYqYrKqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlFrjrjrjrjrjrYnRnRnRrZnRnRnRnRsalFaMaMaMaMaMmAaMaMmBmumumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqspepepepepepepepBpBrhpBrFqsqsqsqsqsqsrGrfrfrfrrqOqOqOqOqOqOqOqzqzpFpFpFpFpFpFpFpFpFpZqRrKsbqYqYqYscrKqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsdrjrjrjrLnHlFshlFnHsioKslnRspnHaMaMaMaMaMaMaMaMaMmumumumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqvpermrnrormrppepBpBpBsqrFqsqsqsqsqsqspFpFpFpFpFqOqOqGreqLqGqOrQrOpFrVrWrWsfpFrwrxrypZqRrKqYqYqYqYrzssqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHmWsunhnwsvnHsxnRsDnHsFnHnHnNnHnHaMaMaMaMaMaMaMmAaMmBmumumumumumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqyqfrJrJrJrJrJpQpBpBpepepepepepepeqwqspFqIpUpVpFqOqOqGresjqGqOqzqzpFskskskskpFrMrxrNpZqRrKqYqYqYqYqYsIqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsNrjsSnHnHnHnRsJsKnHnHnHsVnRLxnHaMaMaMaMaMaMaMmAmBmBmumumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqVqfrUrJrJrJrJpepBpBpBpBpBpepBsnsmpeqspFqopUpUqAqOqOqOqOqOqOqOqOqOpFsksysrsrpFpFtqpFpZqRrKqYqYqYqYtDrKqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHlvsXsznHaMnHsGsGsGnHaMnHnLtatbnHaMaMaMaMaMaMaMmAaMmBaMmumumumumumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsrEpepesgtGtGtGpepBtHtHtHpBpQpBpBpBpeqspFpFpFpFpFpFpFsOpFpFpFqOqOqOsPsksQsQsksksksksrpZqRrKqYqYqYqYqYsIqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHsGsGsGnHaMomtmtntoooaMnHsGsGsGnHaMaMaMaMaMaMaMmAmBmBmBmBmBmumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqVqfrUrJrJrJrJpepBpBpBpBpBpepBsnsmpeqspFqopUpUqAqOqOqOqOqOqOqOqOqOpFsksysrsrpFpFtqpFpZqRrKqYqYqYqYtDrKqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHlvsXsznHaMnHnxnxnxnHaMnHnLtatbnHaMaMaMaMaMaMaMmAaMmBaMmumumumumumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsrEpepesgtGtGtGpepBtHtHtHpBpQpBpBpBpeqspFpFpFpFpFpFpFsOpFpFpFqOqOqOsPsksQsQsksksksksrpZqRrKqYqYqYqYqYsIqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnHnxnxnxnHaMomtmtntoooaMnHnxnxnxnHaMaMaMaMaMaMaMmAmBmBmBmBmBmumumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqsrEperJrJrJrJpepBtHtHtHpBpeqSpepeqXqspFsrsksRpFsAsBsBsBsCpFqOqOqOqOsksksksksTsksksrpZqRrKqYqYqYqYsEtZqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMomtmtntoooaMaMaMaMaMaMaMomtmtntoooaMaMaMaMaMaMaMmAaMmBaMmBaMaMmumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqsqsrEpesLsMuapepBpBpBpBpBpepepeqXqsqspFsWsksksksBsBsBsBuipFqOqOqOsPsYsksksksZsksktcpZqRrKsbqYqYqYscrKqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHqsqsqsqsrEpepepepepepepepepepeqXqsqsqsqspFpFsPsPpFpFpFsPsPsPpFqOqOqOpFsPsPsPsPsPsPsPpFpZqRtdteqYqYqYtgtfqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumumu @@ -2152,13 +2122,13 @@ aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvuntvupuxuuuzuyuAtvvMuWuhwyvkvgvfvfvyvyyhtrtttttttttztututututFtJtItLtKpFtytptypFtMtOtNtPtPtxaMaMpZqRqRqRqRqRqRqRqRqRjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvtvtvtvtvtvtvAgtvuhuhuhuhuhuhtvLsuWuhuhuhuhuhuhuhuhyhtQtttRtttSvEurururvOtTtPtPtPtPpFtytptypFtPtPtPtPtPtxaMaMugugugugugugugugugugugtxtxtxtxtxtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtUtVvbtWuwvQuhuhuhuhuhuhuhvRtvtvtvuhuhuhuhuhuhuhuhyhtXubtYtttttztututututTtPtPtPtPpFvUtiwhpFtPtPtPtPtPtxugugugugugugucueudtxurururtxururururururururtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMujufufufufufufufufufufufufufulufufufufufulumufvbvbvctvwluhuhuhuhuhuhuhtvveuhuhuhvpvpwownwpwpyhuoutuqttttyhwqwqwqtvuvuCuBuEuDtxuFuFuFtxtPtPtPtPtPtxuJuKuJuLuMuguGuIuHuOurururuOuruPuQuPuruSuRuTtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvvQtvtvtvuhuhuhuhuhuhuhuhtvvKuhuhuhLwtvtvtvtvtvyhyhyhyhyhyhyhxQxQxQtvuUwAtutututxtPuVtPtxtututuwAuXtxvqvrvqvrvqugtxtxtxtxurururtxuYuPuPuPuZvavwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtUvjvbvbwEtvvxwPukxowVwXuhuhtvvSuhuhuhwYtvxawZwZxavlxbxexdxQxQxQxQxQxgtvtPtPvmvnvnvnvnvnvnvnvnvnvotPtPvsvqvqvqvqvqugvtvvvutxurururtxvzvBvAvBvCvavwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMujufufufufufufufufufufufufufvDufufufufufvDvFufvbvbxltvvlvlvlvlvltvuhuhtvwmuhuhuhxmtvuhxQxQxQvlxQxQxQxQxQxQxQxQxptvtPuVvGtutututututututututTuVtPugvZwawbvHvqugvIuNvJtxurururtxvPwfuNwfvTvavwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMwgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtUvVvbvbxqvlxrxtxsxvxuvluhuhvluhuhuhuhxwvluhxQxQuwxxxQxQxQxexetvtvtvtvtvtPtPvGtuvWtPvXwcvYtPvWtutTtPtPugugugugugugugwduIwetxurururtxwiwwuNwwwjvavwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMujufufufufufufufufufufufufufwkufufufufufwkwrufvbvbxAvlxHuhuhuhxIvluhuhvluhuhxKxJxLvlxMxQxQxQtvvlvlwsvlvltvxQxQxQxNtPtPwttuwuwxwvwBwzwGwFtuwHtPtPxRwIwIwIwIwItxtxuOtxtxtxuOtxtxwJuNuNuNwKvavwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtUwLvbvbxYtvyauhuhuhuhtvybybtvycyctvtvtvtvxMxQxQuwwNwMwMwMwMwMwOwMwMwMwOtPtPwQwRtPtPwSuFwTtPtPwRwUtPtPxjurururururxjurururururururxjwiwwwwwwwjxcwWxftxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMujufufufufufufufufufufufufufulufufufufufulumufvbvbvctvwluhuhuhuhuhuhuhtvveuhuhuhvpvpwownwpwpyhuoutuqttttyhwqwqwqtvuvuCuBuEuDtxuFuFuFtxtPtPtPtPtPtxuJuKuJuLuMuguGuIuHuOurururuOuruPuQuPurnBnyuTtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvvQtvtvtvuhuhuhuhuhuhuhuhtvvKuhuhuhLwtvtvtvtvtvyhyhyhyhyhyhyhxQxQxQtvuUwAtutututxtPuVtPtxtututuwAuXtxvqvrvqvrvqugtxtxtxtxurururtxokuPuPuPosotvwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtUvjvbvbwEtvvxwPukxowVwXuhuhtvvSuhuhuhwYtvxawZwZxavlxbxexdxQxQxQxQxQxgtvtPtPvmvnvnvnvnvnvnvnvnvnvotPtPvsvqvqvqvqvqugvtvvvutxurururtxoHoRoIoRoVotvwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMujufufufufufufufufufufufufufvDufufufufufvDvFufvbvbxltvvlvlvlvlvltvuhuhtvwmuhuhuhxmtvuhxQxQxQvlxQxQxQxQxQxQxQxQxptvtPuVvGtutututututututututTuVtPugvZwawbvHvqugvIuNvJtxurururtxvPwfuNwfvTotvwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMwgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtUvVvbvbxqvlxrxtxsxvxuvluhuhvluhuhuhuhxwvluhxQxQuwxxxQxQxQxexetvtvtvtvtvtPtPvGtuvWtPpdwcphtPvWtutTtPtPugugugugugugugwduIwetxurururtxwiwwuNwwwjotvwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMujufufufufufufufufufufufufufwkufufufufufwkwrufvbvbxAvlxHuhuhuhxIvluhuhvluhuhxKxJxLvlxMxQxQxQtvvlvlwsvlvltvxQxQxQxNtPtPwttuwuwxpnwBpywGwFtuwHtPtPxRwIwIwIwIwItxtxuOtxtxtxuOtxtxwJuNuNuNwKotvwvitxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtUwLvbvbxYtvyauhuhuhuhtvybybtvycyctvtvtvtvxMxQxQuwwNwMwMwMwMwMwOwMwMwMwOtPtPwQwRtPtPwSuFwTtPtPwRwUtPtPxjurururururxjurururururururxjwiwwwwwwwjpzwWxftxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMujufufufufufufufufufufufufufxhufufufufufxhxixkvbvbuwyjuhuhuhuhuhyjuhuhykuhuhymxnyzyzuhxQxQvdtvvlvlwsvlvltvxQxQxQyAtPtPxytuxzwxxBtPxCwGxDtuxEtPtPxjurururururxjurururururururxjxFxGxGxGxOtxxjxjtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvvbvbuwyjuhuhuhuhuhyjuhuhyCuhuhxQyDyDyDxQxQxQzcvlBWyMxQySyQtvtvtvtvtvtPtPvGtuxPtPwItPwIxTxStutTtPtPwAxUxUxUxUxUtxtxxVtxtxtxuOtxtxtxxWxWxWtxtxurururyYurxZtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMtvvbvbyZtvvlvlvlvlvltvzezetvzfuhxQzgzizhxQxQxQyRzkyMxQxQxQxQxxxQxKzltvtPtPvGtxtxydxXtPyexPtxtxtTtPtPtxaMaMaMaMaMtxyrystxygyfylyitxynysysysxWtxururuQuQururyqaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM @@ -2170,8 +2140,8 @@ dCdCdCdCdCdCdCdCdCdCdCAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZAZdCdCdCdCdCdCdCmt dCmumumumumumumumumudCBvBvBvBvBvAZBFBzBGAZBvBvBvBvBvBvBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzBzNzNzNzNzEzEzNzNzPaMtvBNxQxQzFzDtvAGAJAJAGyTzmyXzbCNzHyXyXyXzKCNaMaMaMaMaMaMaMaMaMaMaMaMzQzSNaNaNazTzRaMaMaMaMaMtxzVururururzWtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumumumumumudCBvBvBvBvBvAZBRBzBzAZBvBvBvBvBvBvBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzUzMzZAaBSAcAcAdjZzNzPtvtvyWyWtvtvtvlqAGAGAGzYzmyXzbCNAjAiAjAkAjCNaMaMaMaMaMaMaMaMaMaMaMzQAlNilNNkNlNmAtzRaMaMaMaMtxtxtxtxtxtxtxtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumumuBvBvBvAZAZAZAZBvAZAZAZAZCgAZAZAZAZAZAZAZBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzUzMAmAcAcAcAcAcAcCiChvlxQxQxQxQxQxNAGCjAGCjyTzmyXAwzYyXyXAxyXABCNaMaMaMaMaMaMaMaMaMaMzQAlCoAvADAvADAvCpAtzRaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuBvBvBvBvCuCvBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzAZBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzUzMypAyAzMfAzAzAzzNAAvlxQxQxQxQxQyWAGCjAGCjyTzmyXAwzYyXyXALAIAMCNaMaMaMaMaMaMaMaMaMaMACADADADCANcyuADADADACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuBvBvBzCFCuCFBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzAZCHCGBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAOzNzNzNzNzNzNzNzNAAaMvlxQxQxQxQxQtvAGCjAGCjyTAQAPARCNAjASAUATAjCNaMaMaMaMaMaMaMaMaMaMAWCRBuNhAXNgAXNfCrCSAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuBvBvBvBvCuCvBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzAZBvBvBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMzUzMypAyAzMfAzAzAzzNAAvlxQxQxQxQxQyWAGCjAGCjyTzmyXAwzYyXyXpEAIAMCNaMaMaMaMaMaMaMaMaMaMACADADADCANcyuADADADACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuBvBvBzCFCuCFBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzBzAZCHCGBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAOzNzNzNzNzNzNzNzNAAaMvlxQxQxQxQxQtvAGCjAGCjyTAQAPARCNAjASpGATAjCNaMaMaMaMaMaMaMaMaMaMAWCRBuNhAXNgAXNfCrCSAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuBvBvCuCFCuBvBvBvAZAZAZAZCgAZAZAZAZCgAZBzBzBzCgCVAYBvBvBvmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHCNCNBcyXyXBdzKCNCNCNaMaMaMaMaMaMaMaMAWCYACBeBgBfBgBeACCYAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuBvCuCuBvBvBvBvBvBvBvBvAZBzBzBRAZDbBzAZBzBzBzCgCVDcBvBvAZmumudCmumumumumtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOBhBhBhBhBhBhBhBhBhBhBhBhBhBiBkBjBtBlBmBmBmBmBmAHBxAjBHyXyXBMzKAjBxCNaMaMaMaMaMaMaMaMAWADCrAWDFBOyvAWBuADAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuBvCuBvBvBvmumuBvAZAZAZAZDWBzBFAZDWBFAZBzBzBzAZCVCVCVBQAZmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOBhBhBVBUBYBVBUBUkkkgkpBUCeCdBkBmBmBBBmBmBmBmBmAHBxAjBHyXyXyXzKAjBxCNCNCNCNCNCNaMaMaMACADCrCCMQMRMPCCBuADACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM @@ -2179,27 +2149,27 @@ dCmumumuBvErErBvmumumuBvEsECECAZAZAZAZAZAZAZAZBzBzBzAZCVCVCVCfAZmumudCmumumuaMmt dCmuBvCuCuCuCuBvBvmumuBvEXEYEXCgBzBzBzBzBzBzBzBzBzBzAZFlFaFpAZAZmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOBhkCkGkEkGkHkGkGkGkGkGkGkGCxBmBmBmAHAHAHAHCcFsAHBxAjBHyXyXyXCyAjAjAjAjAjAjAjAjAjAjAWFNADCrAtACFRACAlBuADFNAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmuFVCuCuCuCuFWBvmumuAZFXEXEXCgBzBzBzBzBzBzBzBzBzBzAZBvBvBvBvBvmumudCmumumuaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOBhCzCBltCDClkUlukUkUkUluAuCEBkBmBmAHCJCICKCPCPCNAjAjCLyXyXyXyXCOyXyXCQyXyXCTGTDpGTHfADADADHjHkADADHjADADCrACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmuHmHAHzCuHBCuCumumuAZHCHIAZAZAZAZAZAZAZAZAZAZCgAZAZAZAZAZAZAZAZAZAZmumuaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOBhBhCzBUCUCzBUBUkkkgkpBUCXCWBkBmBmAHDaCZDdCPCPDgyXCOyXyXyXyXyXCOyXyXyXyXyXCTAjAjAjAWAEADCrCCBuADCrCCBuADHQAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuIhCuImCuHzCuCumumuBvBvBvAZBzBzBzBzBzBzAZIqIGIGIGIIAZBzBzBzBzBzBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOBhBhBhBhBhBhBhBhBhBhBhBhBhBiBkBmBmAHDqDiDrCPCPDgyXCOyXyXyXyXDsAjAjAjyXDxDzDyCNaMaMCCBuADCrCMBuADCrCMBuADCrDAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuIhCuImCuHzCuCumumuBvBvBvAZBzBzBzBzBzBzAZIqIGIGIGIIAZBzBzBzBzBzBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjOBhBhBhBhBhBhBhBhBhBhBhBhBhBiBkBmBmAHDqDiDrCPCPDgyXCOyXyXyXyXDsAjAjAjyXDxDzDyCNaMaMCCBuADCrCMBuADCrCMBuADCrCCaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmuBvCuIXCuIYCuCumumuaMaMmuAZBzBFBzBzBzBzAZIGIGJaIGIGAZBzBzBzBzBFBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHJcJbJbCPCPCNAjAjDByXDCyXCwAjBxDDyXCTuVJrCNaMaMCMBuADCrCMBuNcCrCMBuADCrCMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmuBvJAJzCuCuJBCumumuaMaMmuAZBzBzBzBzBzBzCgIGIGJCIGIGCgBzBzBzBzBzBzAZmuaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJEJDJDJDJFJFCPCPCPCPJHCPCPCPCPCPCPCPCPCPCPNyCPCNBxAjDEyXyXyXCyAjAjAjyXDGzrDHCNaMaMDfBuADCrCMBuADCrCMBuADCrDfaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuBvBvCuCuCuCuBvmumumAaMaMAZBzBzAZJMJOJNAZIGItJRIGIGAZJMJOJNAZBzBzAZaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJUJUJUJUDmDjDkDlCPDmDnDoDlCPCPCPCPCPCPCPCPCNBxAjDIyXyXyXyXCOyXyXyXyXyXCTAjAjAjAWJWADCrDfBuADCrDfBuADANAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuBvBvBvBvJYJZBvmumBmAaMaMAZBzBzAZaMaMaMAZAZJMJOJNAZAZaMaMaMAZBzBzAZaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUKaJUJUJUJUDmDtDuDlCPDmDvDwDlCPCPDKDKDKDKDKDKCNBxAjDSDRyXyXyXCOyXyXyXyXyXCTGTDpGTKcADADKdADADADADADKdADCrACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmuBvBvBvBvBvBvmuaMaMaMaMaMKiKjKjKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKjKjKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUKuJUJUJUJUCPCPCPCPNyCPCPCPCPCPCPDTDTDTDTDTDTCNCNCNCNKvDXDXCNCNCNCNAjAjAjAjAjAjAjDYACNNBezSzTKxzSzTBeNNACDZaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumumumumumuaMaMaMaMKiKzKyKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKzKyKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUKAJUKBJUDmDNDODlCPDmDPDQDlCPCPEcEiEiEiEiEiCNEkEkEkEoDVDVEqEpEpCNBxBxBxBxCNaMaMAWNENFAWNHNIEaKDNJAWNLNGAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumumumumuaMaMaMaMaMKiKzKyKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKzKyKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKKJUJUKLJUJUDmEeEfDlCPDmEgEhDlCPCPEiEiEiEiEiEiCNEtEjEjElDVDVDVEpEpCNCNCNCNCNCNaMaMAWKNKMAWKONVEaEaKPAWKQKRAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuBvBvCuCuCuCuBvmumumAaMaMAZBzBzAZpLpPpNAZIGItJRIGIGAZpLpPpNAZBzBzAZaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJUJUJUJUDmDjDkDlCPDmDnDoDlCPCPCPCPCPCPCPCPCNBxAjDIyXyXyXyXCOyXyXyXyXyXCTAjAjAjAWJWADCrDfBuADCrDfBuADANAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuBvBvBvBvJYJZBvmumBmAaMaMAZBzBzAZaMaMaMAZAZpLpPpNAZAZaMaMaMAZBzBzAZaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUKaJUJUJUJUDmDtDuDlCPDmDvDwDlCPCPDKDKDKDKDKDKCNBxAjDSDRyXyXyXCOyXyXyXyXyXCTGTDpGTKcADADKdADADADADADKdADCrACaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmuBvBvBvBvBvBvmuaMaMaMaMaMqeKjKjqraMaMaMaMaMaMaMaMaMaMaMaMaMqeKjKjqraMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUKuJUJUJUJUCPCPCPCPNyCPCPCPCPCPCPDTDTDTDTDTDTCNCNCNCNKvDXDXCNCNCNCNAjAjAjAjAjAjAjDYACNNBezSzTKxzSzTBeNNACDZaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumumumumumuaMaMaMaMqerIrBqraMaMaMaMaMaMaMaMaMaMaMaMaMqerIrBqraMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUKAJUKBJUDmDNDODlCPDmDPDQDlCPCPEcEiEiEiEiEiCNEkEkEkEoDVDVEqEpEpCNBxBxBxBxCNaMaMAWNENFAWNHNIEaKDNJAWNLNGAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumumumumuaMaMaMaMaMqerIrBqraMaMaMaMaMaMaMaMaMaMaMaMaMqerIrBqraMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKKJUJUKLJUJUDmEeEfDlCPDmEgEhDlCPCPEiEiEiEiEiEiCNEtEjEjElDVDVDVEpEpCNCNCNCNCNCNaMaMAWKNKMAWKONVEaEaKPAWKQKRAWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumumumumuaMaMaMaMaMlwKjKjlxaMaMaMlwaMaMaMaMaMlxaMaMaMlwKjKjlxaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKUJUJUJUJUKuCPCPCPCPCPCPCPCPCPCPCPEiEiEuEwEvExCNDVDVDVDVEzEyDVDVEACNaMaMaMaMaMaMaMDYCqCqAWKYEaNREbBPAWCqCqDZaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumuaMaMaMaMaMaMaMaMlylDlClyaMaMaMlylFlGlGlGlHlyaMaMaMlylIlJlyaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULiLjKaLlLkEGEFEFEFEHEHEHEIEIEJEIEIEHEHEHCNCNCNEKDVDVEzEMELEyDVENCNaMaMaMaMaMaMaMEOEVEVDZEPEaEaEaEQDYEVEVERaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumuaMaMaMaMaMaMaMaMlylDlClyaMaMaMlyrPrPrPrPrPlyaMaMaMlylIlJlyaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULiLjKaLlLkswstststEHEHEHEIEIEJEIEIEHEHEHCNCNCNEKDVDVEzEMELEyDVENCNaMaMaMaMaMaMaMEOEVEVDZEPEaEaEaEQDYEVEVERaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumuaMaMaMaMaMaMaMaMlylLlKlyaMaMlwlylyIClMlPlOlylxaMaMlylQlRlyaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJULlLWEZEZEZEZEZEHESFeEIFeFeFeEIFeESEHCNCNCNCNCNCNETEWEUFbDVENCNaMaMaMaMaMaMaMaMaMaMEOBeCqCqCqBeERaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumuaMaMaMaMaMaMaMaMlylTlSlyaMaMlylylUlWlVlWlXlylyaMaMlylYlZlyaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNMjJULlLWEZEZEZEZEZEZEHFeFdFcFeFeFeFcFfFeEHFgFiFhFkFjCNDVETFbFmDVDVFnaMaMaMaMaMaMaMaMaMaMaMEOEVEVEVERaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumuaMaMaMaMaMaMaMaMlymalylylylylymcmbmbmbmbmbmdlylylylylymelyaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULlLWEZEZEZEZEZEZEZEHEIFeEIFeFeFeEIFeEIEHDVDVDVDVDVMuDVDVDVDVDVDVFnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumuaMaMaMaMaMaMaMaMlymgmfmjmhmllymmmbmbmbmbmbmmlymomnmqmpoTlyaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNLlLWEZEZEZEZEZEZEZEZEHFoFeFeFeFeFeFeFeFtEHFuDVFEDVFvCNDVDVDVDVDVFwFnaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumuaMaMaMaMaMaMaMaMaMaMaMlypvpspspspwlypNpEpPpOpNpEpPlyqBpspsqNpvlyaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNCNCNCNCNCNCNCNCNCNCNCNEHFxFyFyFyFeFzFzFzFAEHFBDVFCFFFDCNFGFHEpFJFIFKCNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumuaMaMaMaMaMaMaMaMaMaMaMsUpvpspspspspOmbmbmbmbmbmbmbpOpspstEpspvsUaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeFeFeFeFeFeFeFeFeFeFeEHEHFLEHEHFeEHEHFLEHEHEHEHEHEHEHCNCNCNCNCNCNCNCNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuaMaMaMaMaMaMaMaMaMaMvNzApsAepspslyBnAVmbmbmbmbBolypsBppsBqpvvNaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHEHEHEHNwEHEHEHFeFeFeFeFeFeEHFeEHFeFeFeFeFeFeFeFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuaMaMaMaMaMaMaMaMaMaMBrzApspslyBslylylyBAByBClylylyBslyBEBDBIBraMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGaGbGbGbGbGcEHEHEHEHEHEHEHEHFMEHEHEHEHEHEHEHEHFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuaMaMaMaMaMaMaMaMaMlwlyBKBJBJlyBTBLBTsUBXFrBZsUCbCaCslyDeCtDLlylxaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGaGbGbGbGbGcEHFPFOFQFOFTFSFSFSFSFSFTFSFTFSFUEHFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuaMaMaMaMmumuaMaMaMDMlyDUDUlylyBTBTBTvNBXByBZvNCsCsEdlylyDUDUlyEEaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGkGbGbGbGbGlEHFSGdGdGdGdGdFSFSFSGdGdGdGdGeGfEHFeEHEHEHEHEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumuaMaMaMaMmumuaMaMaMaMDMFqFqEElyFYIQBTBrFZmbFZBrCsCsHHlyDMFqFqEEaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZEHFeEHGkOpOoOoGbGbGrFSFSGhGgGhFSFSFSFSFSGhGgGhGiFSEHFeFeFeFeFeFeFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumuaMaMaMaMaMaMaMaMaMaMaMlypvpspspspwlysGsGsGpOsGsGsGlyqBpspsqNpvlyaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNCNCNCNCNCNCNCNCNCNCNCNEHFxFyFyFyFeFzFzFzFAEHFBDVFCFFFDCNFGFHEpFJFIFKCNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumuaMaMaMaMaMaMaMaMaMaMaMrPpvpspspspspOmbmbmbmbmbmbmbpOpspstEpspvrPaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeFeFeFeFeFeFeFeFeFeFeEHEHFLEHEHFeEHEHFLEHEHEHEHEHEHEHCNCNCNCNCNCNCNCNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuaMaMaMaMaMaMaMaMaMaMrPzApsAepspslyBnAVmbmbmbmbBolypsBppsBqpvrPaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHEHEHEHNwEHEHEHFeFeFeFeFeFeEHFeEHFeFeFeFeFeFeFeFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuaMaMaMaMaMaMaMaMaMaMrPzApspslyBslylylyBAByBClylylyBslyBEBDBIrPaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGaGbGbGbGbGcEHEHEHEHEHEHEHEHFMEHEHEHEHEHEHEHEHFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuaMaMaMaMaMaMaMaMaMlwlyBKBJBJlyBTBLBTrPBXFrBZrPCbCaCslyDeCtDLlylxaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGaGbGbGbGbGcEHFPFOFQFOFTFSFSFSFSFSFTFSFTFSFUEHFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuaMaMaMaMmumuaMaMaMDMlyDUDUlylyBTBTBTrPBXByBZrPCsCsEdlylyDUDUlyEEaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMEHFeEHGkGbGbGbGbGlEHFSGdGdGdGdGdFSFSFSGdGdGdGdGeGfEHFeEHEHEHEHEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumuaMaMaMaMmumuaMaMaMaMDMFqFqEElyFYIQBTrPFZmbFZrPCsCsHHlyDMFqFqEEaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZIZEHFeEHGkOpOoOoGbGbGrFSFSGhGgGhFSFSFSFSFSGhGgGhGiFSEHFeFeFeFeFeFeFeEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuaMaMaMaMmumuaMaMaMaMaMaMaMaMlyBTBTBTlylypOlylyKSCsKTlyaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMIZJlJlJmJoJnJqJpJxJwJIJyJKJJJSJLJVJTKbJXKnKmKpKoKwKqKqEHEHFeEHEHEHEHEHEHEHEHFSGdGdGdGdGdFSFSFSGdGdGdGdGjFSEHEHEHEHEHEHEHFeEHEHEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMlyBTBTLalyLbmbLclyCsCsLdlyaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMIZJlKCKqKqKqKqKGKqKqKqKqKqKqKqKqKqKqKqKqKGKqKqKqKqKqKqEHFoFeEHEHGmGmGmGmGmEHGnGnGnGnGnGnGnGnGnGnGnGnGnGoGnEHGpGpGpGpGpEHFeFeFtEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMlylyLeBTlyLfmbLglyLoLhlylyaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMIZKHKqIZIZIZIZIZIZIZIZIZIZKIIZIZIZIZIZIZIZIZIZIZIZKqKVEHFoEHEHEHGqGqGqGqGqEHGtGsGsGsGsGsGsGsGsGsGsGsGsGuGtEHGqGqGqGqGqEHEHEHFtEHaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM diff --git a/maps/exodus-3.dmm b/maps/exodus-3.dmm index f041d5a290f..b3c38512501 100644 --- a/maps/exodus-3.dmm +++ b/maps/exodus-3.dmm @@ -212,7 +212,7 @@ "ed" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcommsat/computer) "ee" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/turret_protected/tcomsat) "ef" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) -"eg" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) +"eg" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc/super/critical{name = "north bump"; pixel_y = 24},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "eh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 6},/turf/simulated/floor/plating,/area/tcommsat/chamber) "ei" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber) "ej" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing Central"; dir = 8},/turf/space,/area/turret_protected/tcomsat) diff --git a/maps/exodus-4.dmm b/maps/exodus-4.dmm index fbf2d3c7ce3..a16652b6190 100644 --- a/maps/exodus-4.dmm +++ b/maps/exodus-4.dmm @@ -70,7 +70,7 @@ "br" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/autolathe,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dark,/area/constructionsite/teleporter) "bs" = (/obj/machinery/atmospherics/pipe/simple/hidden/blue{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor/tiled/dark,/area/constructionsite/teleporter) "bt" = (/obj/structure/window/basic,/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/machinery/atmospherics/portables_connector{tag = "icon-map_connector (EAST)"; icon_state = "map_connector"; dir = 4},/turf/simulated/floor/tiled/dark,/area/constructionsite/teleporter) -"bu" = (/obj/structure/cable/blue,/obj/machinery/power/apc/high{dir = 2; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "south bump"; pixel_y = -24},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/constructionsite/teleporter) +"bu" = (/obj/structure/cable/blue,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/power/apc/high/inactive{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/constructionsite/teleporter) "bv" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/tiled/dark,/area/constructionsite/teleporter) "bw" = (/obj/machinery/pipedispenser,/turf/simulated/floor/tiled/dark,/area/constructionsite/teleporter) "bx" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/dark,/area/constructionsite/teleporter) @@ -87,7 +87,7 @@ "bI" = (/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload"; req_access = list(16)},/turf/simulated/floor/bluegrid/airless,/area/constructionsite/ai) "bJ" = (/obj/machinery/drone_fabricator/derelict,/turf/simulated/floor/airless,/area/constructionsite/ai) "bK" = (/obj/machinery/computer/drone_control,/turf/simulated/floor/airless,/area/constructionsite/ai) -"bL" = (/obj/machinery/power/apc/high{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/constructionsite/ai) +"bL" = (/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc/high/inactive{name = "north bump"; pixel_y = 24},/turf/simulated/floor/airless,/area/constructionsite/ai) "bM" = (/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(30)},/turf/simulated/floor/airless,/area/constructionsite/hallway/fore) "bN" = (/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(30)},/turf/simulated/floor/airless,/area/constructionsite/ai) "bO" = (/obj/machinery/door/airlock/highsecurity{name = "Cyborg Station"; req_access = list(16)},/turf/simulated/floor/bluegrid/airless,/area/constructionsite/ai) @@ -101,7 +101,7 @@ "bW" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/airless,/area/constructionsite/hallway/aft) "bX" = (/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) "bY" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) -"bZ" = (/obj/machinery/power/apc/high{dir = 2; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "south bump"; pixel_y = -24},/obj/structure/cable/blue,/turf/simulated/floor/airless,/area/constructionsite/atmospherics) +"bZ" = (/obj/structure/cable/blue,/obj/machinery/power/apc/high/inactive{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/airless,/area/constructionsite/atmospherics) "ca" = (/turf/simulated/floor/tiled/white/airless,/area/constructionsite/medical) "cb" = (/obj/structure/grille,/turf/simulated/floor/airless,/area/constructionsite/medical) "cc" = (/obj/machinery/sleeper,/turf/simulated/floor/tiled/white/airless,/area/constructionsite/medical) @@ -146,7 +146,7 @@ "cP" = (/obj/structure/cable/blue,/turf/simulated/floor/airless,/area/constructionsite/engineering) "cQ" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/turf/simulated/floor/airless,/area/space) "cR" = (/obj/machinery/field_generator,/turf/simulated/floor/airless,/area/space) -"cS" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; id = "EngineEmitter"; state = 2},/turf/simulated/floor/airless,/area/space) +"cS" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/turf/simulated/floor/airless,/area/space) "cV" = (/turf/simulated/wall,/area/constructionsite/hallway/aft) "cW" = (/turf/simulated/floor/airless,/area/constructionsite/hallway/aft) "dm" = (/obj/structure/lattice,/turf/space,/area/constructionsite/hallway/aft) diff --git a/maps/exodus-5.dmm b/maps/exodus-5.dmm index aadec2bad53..6bc897bab06 100644 --- a/maps/exodus-5.dmm +++ b/maps/exodus-5.dmm @@ -1053,7 +1053,7 @@ "um" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/outpost/engineering/atmospherics) "un" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor,/area/outpost/engineering/hallway) "uo" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "edock_sensor"; pixel_x = 25; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "edock_pump"},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"up" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) +"up" = (/obj/machinery/power/emitter{anchored = 0; dir = 4; state = 0},/turf/simulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "uq" = (/turf/simulated/wall,/area/outpost/engineering/hallway) "ur" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "us" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "eoutpost_main_inner"; locked = 1; name = "Engineering Outpost"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/outpost/engineering/hallway) diff --git a/nano/images/status_icons/alarm_green.gif b/nano/images/status_icons/alarm_green.gif new file mode 100644 index 00000000000..7c2570c8ce3 Binary files /dev/null and b/nano/images/status_icons/alarm_green.gif differ diff --git a/nano/images/status_icons/alarm_red.gif b/nano/images/status_icons/alarm_red.gif new file mode 100644 index 00000000000..327d58e4db8 Binary files /dev/null and b/nano/images/status_icons/alarm_red.gif differ diff --git a/nano/images/status_icons/downloader_finished.gif b/nano/images/status_icons/downloader_finished.gif new file mode 100644 index 00000000000..f01b7c42af8 Binary files /dev/null and b/nano/images/status_icons/downloader_finished.gif differ diff --git a/nano/images/status_icons/downloader_running.gif b/nano/images/status_icons/downloader_running.gif new file mode 100644 index 00000000000..68fb977c86d Binary files /dev/null and b/nano/images/status_icons/downloader_running.gif differ diff --git a/nano/images/status_icons/ntnrc_idle.gif b/nano/images/status_icons/ntnrc_idle.gif new file mode 100644 index 00000000000..d47c01d5800 Binary files /dev/null and b/nano/images/status_icons/ntnrc_idle.gif differ diff --git a/nano/images/status_icons/ntnrc_new.gif b/nano/images/status_icons/ntnrc_new.gif new file mode 100644 index 00000000000..af72a8b332f Binary files /dev/null and b/nano/images/status_icons/ntnrc_new.gif differ diff --git a/nano/templates/computer_fabricator.tmpl b/nano/templates/computer_fabricator.tmpl index b8afd1a1b3e..fcc5cef147c 100644 --- a/nano/templates/computer_fabricator.tmpl +++ b/nano/templates/computer_fabricator.tmpl @@ -29,6 +29,10 @@ +
{{:helper.link('Standard', null, { "hw_netcard" : 1 }, data.hw_netcard == 1 ? 'selected' : null)}} {{:helper.link('Advanced', null, { "hw_netcard" : 2 }, data.hw_netcard == 2 ? 'selected' : null)}} {{if data.devtype != 2}} +
Processor Unit: + {{:helper.link('Standard', null, { "hw_cpu" : 1 }, data.hw_cpu == 1 ? 'selected' : null)}} + {{:helper.link('Advanced', null, { "hw_cpu" : 2 }, data.hw_cpu == 2 ? 'selected' : null)}}
Tesla Relay: {{:helper.link('None', null, { "hw_tesla" : 0 }, data.hw_tesla == 0 ? 'selected' : null)}} @@ -50,6 +54,7 @@ Battery allows your device to operate without external utility power source. Advanced batteries increase battery life.
Hard Drive stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.
Network Card allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.
+ Processor Unit is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.
Tesla Relay is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.
Nano Printer is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.
Card Reader adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards. diff --git a/nano/templates/layout_default.tmpl b/nano/templates/layout_default.tmpl index a5fd6f5804b..53701e30307 100644 --- a/nano/templates/layout_default.tmpl +++ b/nano/templates/layout_default.tmpl @@ -17,6 +17,9 @@ {{if data.PC_stationtime}}
{{:data.PC_stationtime}} {{/if}} + {{for data.PC_programheaders}} + + {{/for}}
@@ -25,6 +28,7 @@ {{:helper.link('Shutdown', null, {'PC_shutdown' : 1})}} {{if data.PC_showexitprogram}} {{:helper.link('Exit Program', null, {'PC_exit' : 1})}} + {{:helper.link('Minimize Program', null, {'PC_minimize' : 1})}} {{/if}} diff --git a/nano/templates/ntnet_chat.tmpl b/nano/templates/ntnet_chat.tmpl index 6424e073e25..592b6481770 100644 --- a/nano/templates/ntnet_chat.tmpl +++ b/nano/templates/ntnet_chat.tmpl @@ -60,7 +60,7 @@ Available channels: {{for data.all_channels}} -
{{:helper.link(value.chan, null, {'PRG_joinchannel' : value.chan})}}
+
{{:helper.link(value.chan, null, {'PRG_joinchannel' : value.id})}}
{{/for}}
{{/if}} \ No newline at end of file diff --git a/scripts/dm.sh b/scripts/dm.sh new file mode 100755 index 00000000000..e8985cdfc8c --- /dev/null +++ b/scripts/dm.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +dmepath="" +retval=1 + +for var; do + if [[ $var != -* && $var == *.dme ]]; then + dmepath=$(echo $var | sed -r 's/.{4}$//') + break + fi +done + +if [[ $dmepath == "" ]]; then + echo "No .dme file specified, aborting." + exit 1 +fi + +if [[ -a $dmepath.mdme ]]; then + rm $dmepath.mdme +fi + +cp $dmepath.dme $dmepath.mdme +if [[ $? != 0 ]]; then + echo "Failed to make modified dme, aborting." + exit 2 +fi + +for var; do + arg=$(echo $var | sed -r 's/^.{2}//') + if [[ $var == -D* ]]; then + sed -i '1s!^!#define '$arg'\n!' $dmepath.mdme + elif [[ $var == -I* ]]; then + sed -i 's!// BEGIN_INCLUDE!// BEGIN_INCLUDE\n#include "'$arg'"!' $dmepath.mdme + elif [[ $var == -M* ]]; then + sed -i '1s/^/#define MAP_OVERRIDE\n/' $dmepath.mdme + sed -i 's!// BEGIN_INCLUDE!// BEGIN_INCLUDE\n#include "_maps\\'$arg'.dm"!' $dmepath.mdme + fi +done + +source "$( dirname "${BASH_SOURCE[0]}" )/sourcedm.sh" + +if [[ $DM == "" ]]; then + echo "Couldn't find the DreamMaker executable, aborting." + exit 3 +fi + +"$DM" $dmepath.mdme +retval=$? + +mv $dmepath.mdme.dmb $dmepath.dmb +mv $dmepath.mdme.rsc $dmepath.rsc + +rm $dmepath.mdme + +exit $retval diff --git a/scripts/sourcedm.sh b/scripts/sourcedm.sh new file mode 100755 index 00000000000..5737d4e6b4a --- /dev/null +++ b/scripts/sourcedm.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +if [[ $(uname) == MINGW* ]] +then + if hash dm.exe 2>/dev/null + then + export DM='dm.exe' + return 0 + elif [[ -a '/c/Program Files (x86)/BYOND/bin/dm.exe' ]] + then + export DM='/c/Program Files (x86)/BYOND/bin/dm.exe' + return 0 + elif [[ -a '/c/Program Files/BYOND/bin/dm.exe' ]] + then + export DM='/c/Program Files/BYOND/bin/dm.exe' + return 0 + fi +else + if hash DreamMaker 2>/dev/null + then + export DM='DreamMaker' + return 0 + elif [[ -a '/usr/bin/DreamMaker' ]] + then + export DM='/usr/bin/DreamMaker' + return 0 + elif [[ -a '/usr/share/byond/bin/DreamMaker' ]] + then + export DM='/usr/share/byond/bin/DreamMaker' + return 0 + fi +fi + +export DM='' +return 1