diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 118749b8d8c..9440163b460 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -31,6 +31,9 @@ /obj/effect/portal/Destroy() portals -= src + if(istype(creator, /obj/item/weapon/hand_tele)) + var/obj/item/weapon/hand_tele/O = creator + O.active_portals-- return ..() /obj/effect/portal/proc/teleport(atom/movable/M as mob|obj) diff --git a/code/game/objects/structures/engicart.dm b/code/game/objects/structures/engicart.dm index 7982316e4ad..1697fff9c48 100644 --- a/code/game/objects/structures/engicart.dm +++ b/code/game/objects/structures/engicart.dm @@ -25,62 +25,65 @@ return /obj/structure/engineeringcart/attackby(obj/item/I, mob/user) var/fail_msg = "There is already one of those in [src]." - if(istype(I, /obj/item/stack/sheet/glass)) - if(!myglass) - put_in_cart(I, user) - myglass=I - update_icon() - else - user << fail_msg - else if(istype(I, /obj/item/stack/sheet/metal)) - if(!mymetal) - put_in_cart(I, user) - mymetal=I - update_icon() - else - user << fail_msg - else if(istype(I, /obj/item/stack/sheet/plasteel)) - if(!myplasteel) - put_in_cart(I, user) - myplasteel=I - update_icon() - else - user << fail_msg - else if(istype(I, /obj/item/device/flashlight)) - if(!myflashlight) - put_in_cart(I, user) - myflashlight=I - update_icon() - else - user << fail_msg - else if(istype(I, /obj/item/weapon/storage/toolbox/mechanical)) - if(!mybluetoolbox) - put_in_cart(I, user) - mybluetoolbox=I - update_icon() - else - user << fail_msg - else if(istype(I, /obj/item/weapon/storage/toolbox/electrical)) - if(!myyellowtoolbox) - put_in_cart(I, user) - myyellowtoolbox=I - update_icon() - else - user << fail_msg - else if(istype(I, /obj/item/weapon/storage/toolbox)) - if(!myredtoolbox) - put_in_cart(I, user) - myredtoolbox=I - update_icon() - else - user << fail_msg - else if(istype(I, /obj/item/taperoll/engineering/)) - if(!myengitape) - put_in_cart(I, user) - myengitape=I - update_icon() - else - user << fail_msg + if(!I.is_robot_module()) + if(istype(I, /obj/item/stack/sheet/glass)) + if(!myglass) + put_in_cart(I, user) + myglass=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/stack/sheet/metal)) + if(!mymetal) + put_in_cart(I, user) + mymetal=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/stack/sheet/plasteel)) + if(!myplasteel) + put_in_cart(I, user) + myplasteel=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/device/flashlight)) + if(!myflashlight) + put_in_cart(I, user) + myflashlight=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/weapon/storage/toolbox/mechanical)) + if(!mybluetoolbox) + put_in_cart(I, user) + mybluetoolbox=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/weapon/storage/toolbox/electrical)) + if(!myyellowtoolbox) + put_in_cart(I, user) + myyellowtoolbox=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/weapon/storage/toolbox)) + if(!myredtoolbox) + put_in_cart(I, user) + myredtoolbox=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/taperoll/engineering/)) + if(!myengitape) + put_in_cart(I, user) + myengitape=I + update_icon() + else + user << fail_msg + else + usr << "You cannot interface your modules [src]!" /obj/structure/engineeringcart/attack_hand(mob/user) user.set_machine(src) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index b51ff8b2f79..9ca2d7cbdb4 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -445,50 +445,53 @@ /obj/structure/janitorialcart/attackby(obj/item/I, mob/user) var/fail_msg = "There is already one of those in [src]." - if(istype(I, /obj/item/weapon/mop)) - var/obj/item/weapon/mop/m=I - if(m.reagents.total_volume < m.reagents.maximum_volume) - wet_mop(m, user) - return - if(!mymop) - m.janicart_insert(user, src) - else - user << fail_msg + if(!I.is_robot_module()) + if(istype(I, /obj/item/weapon/mop)) + var/obj/item/weapon/mop/m=I + if(m.reagents.total_volume < m.reagents.maximum_volume) + wet_mop(m, user) + return + if(!mymop) + m.janicart_insert(user, src) + else + user << fail_msg - else if(istype(I, /obj/item/weapon/storage/bag/trash)) - if(!mybag) - var/obj/item/weapon/storage/bag/trash/t=I - t.janicart_insert(user, src) - else - user << fail_msg - else if(istype(I, /obj/item/weapon/reagent_containers/spray/cleaner)) - if(!myspray) - put_in_cart(I, user) - myspray=I - update_icon() - else - user << fail_msg - else if(istype(I, /obj/item/device/lightreplacer)) - if(!myreplacer) - var/obj/item/device/lightreplacer/l=I - l.janicart_insert(user,src) - else - user << fail_msg - else if(istype(I, /obj/item/weapon/caution)) - if(signs < max_signs) - put_in_cart(I, user) - signs++ - update_icon() - else - user << "[src] can't hold any more signs." - else if(mybag) - mybag.attackby(I, user) - else if(istype(I, /obj/item/weapon/crowbar)) - user.visible_message("[user] begins to empty the contents of [src].") - if(do_after(user, 30)) - usr << "You empty the contents of [src]'s bucket onto the floor." - reagents.reaction(src.loc) - src.reagents.clear_reagents() + else if(istype(I, /obj/item/weapon/storage/bag/trash)) + if(!mybag) + var/obj/item/weapon/storage/bag/trash/t=I + t.janicart_insert(user, src) + else + user << fail_msg + else if(istype(I, /obj/item/weapon/reagent_containers/spray/cleaner)) + if(!myspray) + put_in_cart(I, user) + myspray=I + update_icon() + else + user << fail_msg + else if(istype(I, /obj/item/device/lightreplacer)) + if(!myreplacer) + var/obj/item/device/lightreplacer/l=I + l.janicart_insert(user,src) + else + user << fail_msg + else if(istype(I, /obj/item/weapon/caution)) + if(signs < max_signs) + put_in_cart(I, user) + signs++ + update_icon() + else + user << "[src] can't hold any more signs." + else if(mybag) + mybag.attackby(I, user) + else if(istype(I, /obj/item/weapon/crowbar)) + user.visible_message("[user] begins to empty the contents of [src].") + if(do_after(user, 30)) + usr << "You empty the contents of [src]'s bucket onto the floor." + reagents.reaction(src.loc) + src.reagents.clear_reagents() + else + usr << "You cannot interface your modules [src]!" /obj/structure/janitorialcart/attack_hand(mob/user) user.set_machine(src) diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index 76a1b525247..d6e8c0595fd 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -2351,7 +2351,7 @@ "aTk" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aTl" = (/obj/item/weapon/lighter/random,/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar) "aTm" = (/obj/structure/stool,/turf/simulated/floor/wood,/area/maintenance/abandonedbar) -"aTn" = (/obj/item/weapon/shard,/obj/item/stack/rods,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) +"aTn" = (/obj/item/weapon/shard,/obj/item/stack/rods,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plating{dir = 9; icon_regular_floor = "escape"},/area/maintenance/abandonedbar) "aTo" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "escape"},/area/maintenance/abandonedbar) "aTp" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/library) "aTq" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/wood,/area/library) @@ -2445,7 +2445,7 @@ "aVa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) "aVb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) "aVc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) -"aVd" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/abandonedbar) +"aVd" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{dir = 5; icon_regular_floor = "escape"},/area/maintenance/abandonedbar) "aVe" = (/obj/machinery/vending/autodrobe,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) "aVf" = (/obj/structure/table/woodentable,/obj/item/trash/plate,/turf/simulated/floor/wood,/area/maintenance/abandonedbar) "aVg" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/patron,/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) @@ -2516,7 +2516,7 @@ "aWt" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics) "aWu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area) "aWv" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics) -"aWw" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/abandonedbar) +"aWw" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating{dir = 4; icon_regular_floor = "escape"},/area/maintenance/abandonedbar) "aWx" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/library) "aWy" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/library) "aWz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) @@ -2740,7 +2740,7 @@ "baJ" = (/obj/machinery/newscaster{pixel_x = 27; pixel_y = 1},/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "baK" = (/obj/structure/bookcase{name = "bookcase (Fiction)"},/turf/simulated/floor/wood,/area/library) "baL" = (/obj/structure/bookcase{name = "bookcase (Non-Fiction)"},/turf/simulated/floor/wood,/area/library) -"baM" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) +"baM" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating{dir = 4; icon_regular_floor = "whitecorner"},/area/maintenance/abandonedbar) "baN" = (/obj/machinery/door/morgue{dir = 2; name = "Private Study"; req_access_txt = "37"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) "baO" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "baP" = (/turf/simulated/floor/carpet,/area/chapel/main) @@ -2946,7 +2946,7 @@ "beH" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hydroponics) "beI" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics) "beJ" = (/obj/item/trash/cheesie,/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/maintenance/abandonedbar) -"beK" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating,/area/maintenance/abandonedbar) +"beK" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating{dir = 10; icon_regular_floor = "escape"},/area/maintenance/abandonedbar) "beL" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Library APC"; pixel_x = -25},/turf/simulated/floor/carpet,/area/library) "beM" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/library) "beN" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/wood,/area/library) @@ -12525,7 +12525,7 @@ "eGS" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) "eGT" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk8"; icon_state = "catwalk8"},/area/engiestation/solars) "eGU" = (/obj/structure/table/woodentable,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/storage/pill_bottle/random_drug_bottle,/turf/simulated/floor{dir = 10; icon_state = "purple"},/area/maintenance/abandonedbar) -"eGV" = (/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/maintenance/abandonedbar) +"eGV" = (/obj/item/weapon/stool,/turf/simulated/floor/plating{dir = 10; icon_regular_floor = "purplecorner"},/area/maintenance/abandonedbar) "eGW" = (/obj/machinery/door/airlock/glass_research{name = "Telescience Pad"; req_access_txt = "7"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/engine,/area/toxins/telesci) "eGX" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "7"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "eGY" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 1e+006},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) @@ -12652,7 +12652,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaEUaEVaEWaEXaDeaDeaDeaDfaEYaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaiaEZaFaaFbaaiaEoaaiaFcaFdaFeaFfaFgaaiaEpayVayVayVayVaFhaFiaFjaFkaFkaFkaFkaFlaFkaFmaFnaFoaFkaFkaFpaFpaFqaFraFsaFtabIaFuaouaFvaEwaEwaaqaCIaCJaDNaFwaFxaFyaDNaCJaCJaFzaFAaEBaFBaFCaCJaCJaFDaFEaCJaCJaCJaCJaFFaFGaFHaFIaCJaFJaFKaAwaAwaAwaAwaAwaFKaFLaEPaEQaaaaFMaaaaaaaaaaaaaaaaaaaaqaaqaJFaKtaJDaKuaKvaLzaJEaJDaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaFPaFQaFRaFSaDeaDeaDeaDfaFTaaiaFUaFVaFWaFXaFYaaiaaiaaiaaiaaiaaiaFZaamaaiaEoaaiaFgaGaaGbaFgaFgaaiaGcaGdaGdaGdaGdaGeaGfaaiaaiaaiaaiafbabnaaiaGgaaiafjafbaaiaaiaaiaaiaGhaGiaGjaGkaGlaDKaGmbsTaEwaGnaCIaCJaDNaGoaExaExaDNaCJaCJaCJaGpaGqaGraGsaCJaCJaFDaGtaGuaGvaGvaGvaGwaCJaCJaDSaCJaGxaGyaAwaAwaAwaAwaAwaGzaZmaGBaFKaGCaGDaGCaaaaaaaaaaaqaaqaaqaIPaKuaLBaKuaLBaMEaKuaKuaKuaMDaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaGGaGHaEWaEXaDeaDeaDeaDfaEYaaiaGIaGJaGKaGLaGMaaiaGNaGOaGPaGPaGPaGQaGPaGPaEoaaiaGRaGSaGTaGUbEZaaiaGVaGWaGVaGVayVayVaDsaaiaGXaGYaGZaHaaHbbJTaHdaHeaHfaHgaHhaGYaHiaaiaHjavVaHkaaqaHlaouaHmaHnaHnaHoaHpaHqaHraHsaHsaHtaHuaEFaHvaHuaHuaHwaHxaHyaCJaCJaHzaHAaHBaHCaHCaHCaHDaHEaFHaDSaCJaHFaHGaAwaAwaAwaAwaAwaHHaaiaaiaaiaATaHIaATaaaaaaaaqaaqaVeaaqaTnaToaVdaTlaKuaKuaTmaVfaKuaVgaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaHMaHNaHOaHPaDeaDeaDeaDfaEYaaiaHQaHRaHSaHTaHUaaqaHVaHWaHXaHYaHYaHZaDlaDlaIaaaiaFgaGaaIbaFgaFgaaiaIcayVaIdaGVayVayVaDsaaiaIeaIeaIfaIgaIhaIiaIjaIiaIkaIlaImaInaInaaiaHjavVaIoaaqaHlaouaEwaBhaBiaaqaCIaIpaIqaIraIsaItaItaIuaIvaItaIvaIwaIxaIyaIzaIAaIBaICaIDaIEaIFaIGaIHaaqaIIaIJaIIaaqaIKaAwaAwaAwaAwaAwaILaaiaabaoJaCoaIMaINazTaaaaaqaWwbeJbbWbdpaZlbaMaKuaKuaKuaZkaXQaKuaMFaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaHMaHNaHOaHPaDeaDeaDeaDfaEYaaiaHQaHRaHSaHTaHUaaqaHVaHWaHXaHYaHYaHZaDlaDlaIaaaiaFgaGaaIbaFgaFgaaiaIcayVaIdaGVayVayVaDsaaiaIeaIeaIfaIgaIhaIiaIjaIiaIkaIlaImaInaInaaiaHjavVaIoaaqaHlaouaEwaBhaBiaaqaCIaIpaIqaIraIsaItaItaIuaIvaItaIvaIwaIxaIyaIzaIAaIBaICaIDaIEaIFaIGaIHaaqaIIaIJaIIaaqaIKaAwaAwaAwaAwaAwaILaaiaabaoJaCoaIMaINazTaaaaaqbaMbeJbbWbdpaZlaWwaKuaKuaKuaZkaXQaKuaMFaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazMaaiaaiaaiaaiaaiaaiaaiaDbaIRaISaaiaDbaIRaISaaiaaiaaiaaiaITaDeaDeaDeaDeaDfaIUaaiaIVaIWbLIaIYaIZaaqaJaaGPaEoaJbaGPaGPaGPaJcaJdaaiaJeaJfaJgaJhaFgaaiayVayVaJiaGVayVayVaDsaaiaaiaaiaaiaJjaJkaGYaJlaGYaJkaJmaaiaaiaaiaaiaHjavVaJnaaqaHlaouaDLaBhaBiaaqaJoaJpaaqaaqaaqaaqaaqaaqaaqaJqaaqaaqaaqaaqaaqaaqaJraaqaJsaJtaJtaJtaJuaaqaJvaJwaJxaaqaIKaAwaAwaAwaAwaAwaILaaiaaaaaiaJyaJzaJAaaiaaaaaqcEYeGRaaqbeKbArbLLbdqcCFblabmZeGSaLBaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaJGaJHaJIaAGaAGaJJaJKaAGaAGaJLaJMaJNaaiaCZaJOaEjaDeaDeaDeaDfaEYaaiaaqaaqaouaJPaaqaaqaJaaGPaEoaaiaaiaaiaaiaaiaaiaaiaaiabnaJQaaiaaiaaiaaiaaiaaiaaiaaiaaiaDsaaiaJRaJRaIfaJSaJTaIiaIjaIiaJTaJUaJVaJWaJXaaiaHjavVaHkaaqaJYaAlaJZaBhaBiaaqaKaaJpaaqaKbaKcaKdaKdaaqaKeaKcaKfaaqaKgaKhaKiaaqaKjaaqaJsaJtaJtaJtaJuaaqaKkaKlaKmaaqaKnaKoaKoaKoaKoaKoaKpaaaaaaaaiaKqaKraKsaaiaaaaaqeGUeGVaaqaaqaaqaaqaaqbWwaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDbaKwaKxaDeaDeaDeaDeaKyaDeaDeaDeaKyaDeaKzaKAaKBaKCaKDaKEaKEaKEaKFaEYaaiaKGaKHaKIaKJaaqaaqaKKaGPaEoaaiaKLaKMaKNaKMaKOaaiaKPaKQaKRaKSaKTaaiaKUaKUaKVaKUaKWaaiaDsaaiaGXaGYaKXaKYaJkaGYaKZaGYaJkaLaaLbaGYaHiaaiaHjavVaLcaaqaHlaCGaCHaBhaBiaaqaLdaLeaaqaLfaKcaKcaKcaLgaLhaLiaLjaaqaLkaLlaLmaLnaLoaaqaLpaLqaLraLqaLsaaqaLtaLuaLvaaiaaaaaaaaaaaaaabaaaaaaaaaaaaaaiaLwaLxaLyaaiaMGaaqaaqaaqaaqaLCaLDaLEaLEaMJaLEaOlaLEaMKaLHaLHaLIaLHaLHaLHaLHaLJaLKaLLaaiaLMaaiaaaacEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa