diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 57a52c6580b..b3ad68c1d96 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -941,6 +941,82 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"abU" = (
+/obj/structure/table/reinforced,
+/obj/item/folder,
+/obj/item/stamp/denied{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/stamp,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/machinery/bounty_board{
+ dir = 4;
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"abV" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
+"abW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/bounty_board{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
+"abX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/bounty_board{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"abY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/bounty_board{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
"abZ" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/stripes/line,
@@ -1000,6 +1076,39 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/solars/starboard/fore)
+"acg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
+"ach" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/bounty_board{
+ dir = 1;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
"aco" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -14408,17 +14517,6 @@
},
/turf/closed/wall,
/area/hallway/secondary/service)
-"aFZ" = (
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/structure/cable,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/service)
"aGa" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -25593,23 +25691,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/office)
-"aYQ" = (
-/obj/structure/table/reinforced,
-/obj/item/folder,
-/obj/item/stamp/denied{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/stamp,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/brown,
-/obj/effect/turf_decal/tile/brown{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/quartermaster/office)
"aYR" = (
/obj/item/kirbyplants/random,
/obj/machinery/firealarm{
@@ -42259,19 +42340,6 @@
heat_capacity = 1e+006
},
/area/engine/storage_shared)
-"bCP" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/break_room)
"bCQ" = (
/obj/machinery/firealarm{
pixel_y = 24
@@ -46056,21 +46124,6 @@
},
/turf/open/floor/plasteel/dark,
/area/bridge)
-"bIM" = (
-/obj/structure/table/reinforced,
-/obj/machinery/cell_charger,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/bridge)
"bIN" = (
/obj/machinery/status_display/evac,
/turf/closed/wall,
@@ -87781,15 +87834,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"dhn" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/medical/medbay/central)
"dho" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -140774,7 +140818,7 @@ bwx
bxJ
bzm
bAU
-bCP
+abW
bEF
bGl
bHW
@@ -149561,7 +149605,7 @@ cMY
cMY
cMY
cMY
-dgz
+abX
cQL
gPv
cOR
@@ -151023,7 +151067,7 @@ aBx
aCD
aDJ
aEM
-aFZ
+abV
aHq
aIS
aKr
@@ -154655,7 +154699,7 @@ bzP
bDB
bFq
bHa
-bIM
+ach
bKH
bMx
bOG
@@ -158745,7 +158789,7 @@ aSi
aTY
aVF
aXp
-aYQ
+abU
baP
aTO
bdV
@@ -162154,7 +162198,7 @@ dbq
xAi
gIO
vTA
-dhn
+abY
diz
dkp
cNz
@@ -167760,7 +167804,7 @@ byJ
bAl
bCe
bEc
-bmh
+acg
bHA
bJw
bLn
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index 0386e7de7d6..424515d4deb 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -18805,6 +18805,10 @@
"aSE" = (
/obj/structure/table/reinforced,
/obj/item/storage/fancy/donut_box,
+/obj/machinery/bounty_board{
+ dir = 4;
+ pixel_x = 32
+ },
/turf/open/floor/plasteel,
/area/bridge)
"aSF" = (
@@ -25556,19 +25560,18 @@
/turf/open/floor/plasteel/dark,
/area/medical/morgue)
"biF" = (
-/obj/structure/disposalpipe/sorting/mail/flip{
- dir = 1;
- sortType = 2
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
},
-/obj/structure/noticeboard{
- pixel_y = 32
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/effect/turf_decal/tile/purple{
dir = 4
},
-/obj/structure/cable,
-/turf/open/floor/plasteel,
-/area/quartermaster/office)
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/white,
+/area/science/lab)
"biG" = (
/obj/machinery/mech_bay_recharge_port{
dir = 2
@@ -30577,6 +30580,10 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
/turf/open/floor/plasteel/white,
/area/medical/medbay/aft)
"bub" = (
@@ -32095,6 +32102,23 @@
/obj/machinery/navbeacon/wayfinding,
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
+"bxH" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1;
+ sortType = 2
+ },
+/obj/structure/noticeboard{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/bounty_board{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
"bxI" = (
/obj/machinery/status_display/ai,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -32102,6 +32126,31 @@
},
/turf/closed/wall,
/area/storage/mining)
+"bxJ" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/bounty_board{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engine/break_room)
+"bxK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/bounty_board{
+ dir = 1;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"bxL" = (
/obj/machinery/camera{
c_tag = "Central Hallway South-East";
@@ -33759,6 +33808,20 @@
},
/turf/closed/wall,
/area/quartermaster/miningdock)
+"bBI" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/service";
+ dir = 1;
+ name = "Service Hall APC";
+ pixel_y = 23
+ },
+/obj/structure/cable,
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
"bBK" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
@@ -52586,16 +52649,6 @@
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/cmo)
-"jbf" = (
-/obj/machinery/power/apc{
- areastring = "/area/hallway/secondary/service";
- dir = 1;
- name = "Service Hall APC";
- pixel_y = 23
- },
-/obj/structure/cable,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/service)
"jcM" = (
/obj/machinery/camera{
c_tag = "Public Mining Ladder";
@@ -80217,7 +80270,7 @@ pVb
bgB
bhX
bgv
-biF
+bxH
bkw
bnE
bny
@@ -87881,7 +87934,7 @@ aHp
aIF
ajc
aja
-akp
+bxK
agj
alA
amm
@@ -87959,7 +88012,7 @@ bUF
bVN
bWN
bLK
-bYL
+bxJ
bRi
bZy
cbu
@@ -97922,7 +97975,7 @@ alP
anf
anf
cVb
-jbf
+bBI
wrp
fnC
kPd
@@ -104887,7 +104940,7 @@ aXq
aYV
bfX
bhC
-biU
+biF
bks
blI
bpf
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 0a458d424c1..29a40a64e4c 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -178,6 +178,17 @@
},
/turf/open/floor/plasteel/dark,
/area/security/execution/education)
+"aaD" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"aaE" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -281,6 +292,38 @@
},
/turf/open/floor/plasteel/dark,
/area/security/execution/education)
+"aaJ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/bounty_board{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
+"aaK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/bounty_board{
+ dir = 4;
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"aaL" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"aaM" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -390,6 +433,20 @@
},
/turf/open/floor/plasteel/dark,
/area/security/execution/education)
+"aaR" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/bounty_board{
+ dir = 1;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
"aaS" = (
/obj/structure/sink/kitchen{
desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
@@ -528,6 +585,46 @@
/obj/effect/turf_decal/tile/bar,
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
+"abg" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/white,
+/area/science/research)
+"abh" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/book/manual/wiki/engineering_hacking{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/item/book/manual/wiki/engineering_guide{
+ pixel_x = -2
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/camera{
+ c_tag = "Engineering - Desk";
+ dir = 1
+ },
+/obj/item/trash/can{
+ pixel_x = -14
+ },
+/obj/machinery/bounty_board{
+ dir = 1;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/engine/break_room)
"abn" = (
/obj/item/radio/intercom{
pixel_x = -28
@@ -5682,13 +5779,6 @@
/obj/item/clothing/suit/hooded/ablative,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
-"ama" = (
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/security/brig)
"amb" = (
/obj/structure/closet/secure_closet/security/sec,
/obj/effect/turf_decal/tile/red,
@@ -76471,31 +76561,6 @@
/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"sfR" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/structure/table/reinforced,
-/obj/item/book/manual/wiki/engineering_hacking{
- pixel_x = 2;
- pixel_y = 3
- },
-/obj/item/book/manual/wiki/engineering_guide{
- pixel_x = -2
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/machinery/camera{
- c_tag = "Engineering - Desk";
- dir = 1
- },
-/obj/item/trash/can{
- pixel_x = -14
- },
-/turf/open/floor/plasteel,
-/area/engine/break_room)
"sht" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -100150,7 +100215,7 @@ bgR
niJ
bkq
bmk
-boc
+aaJ
bqt
bsy
buh
@@ -103275,7 +103340,7 @@ crx
csv
ctw
cuq
-cvs
+aaK
cvs
cxk
cxX
@@ -106319,7 +106384,7 @@ biZ
bkE
bmy
bmA
-bot
+aaR
bsU
bux
bsU
@@ -108342,7 +108407,7 @@ dCf
alV
asu
atS
-ama
+aaD
awi
axj
uNe
@@ -110727,7 +110792,7 @@ caw
crK
csV
ctN
-cGg
+abg
cvM
cwM
gjC
@@ -120714,7 +120779,7 @@ jUn
lci
pmZ
qdT
-sfR
+abh
bxd
bAD
bCj
diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm
index c9b7f6e9ec2..a83d5cf55a9 100644
--- a/_maps/map_files/Mining/Lavaland.dmm
+++ b/_maps/map_files/Mining/Lavaland.dmm
@@ -122,6 +122,19 @@
"aw" = (
/turf/open/lava/smooth/lava_land_surface,
/area/lavaland/surface/outdoors/explored)
+"ax" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/mine/production)
"ay" = (
/obj/structure/sink/kitchen{
desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
@@ -20384,7 +20397,7 @@ cl
cH
cO
cX
-ck
+ax
dJ
ia
cn
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index 7f16f57179b..5896773f179 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -16,6 +16,23 @@
/obj/structure/closet/radiation,
/turf/open/floor/plasteel/dark,
/area/maintenance/disposal/incinerator)
+"aad" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/bounty_board{
+ dir = 4;
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/security/brig)
"aae" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -384,6 +401,72 @@
},
/turf/open/floor/plasteel,
/area/hydroponics)
+"aaZ" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "bridgespace";
+ name = "bridge external shutters"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/bridge)
+"aba" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/kirbyplants/photosynthetic{
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/bounty_board{
+ dir = 1;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"abb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/bounty_board{
+ dir = 1;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"abc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/bounty_board{
+ dir = 8;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
+"abd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/bounty_board{
+ dir = 4;
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
"abf" = (
/obj/structure/bed,
/turf/open/floor/plating,
@@ -7003,19 +7086,6 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
-"asF" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/brig)
"asG" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
@@ -30031,20 +30101,6 @@
},
/turf/closed/wall,
/area/science/explab)
-"byT" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/item/kirbyplants/photosynthetic{
- pixel_y = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/science/explab)
"byU" = (
/obj/structure/chair/comfy{
dir = 4
@@ -33342,13 +33398,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"bFT" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/medical/medbay/central)
"bFU" = (
/turf/closed/wall,
/area/medical/surgery)
@@ -42075,13 +42124,6 @@
/obj/structure/cable,
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cat" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cau" = (
/obj/structure/rack,
/obj/item/clothing/mask/gas{
@@ -84523,7 +84565,7 @@ ape
agP
aqA
art
-asF
+aad
ajM
auG
avF
@@ -87095,7 +87137,7 @@ aqG
arB
asM
atL
-auK
+aaZ
avN
awU
axT
@@ -87924,7 +87966,7 @@ bpP
bCp
bpP
bEC
-bFT
+abd
bHa
bIi
bJp
@@ -91031,7 +91073,7 @@ bVN
bYf
bYW
bZF
-cat
+abb
bXk
ccg
cey
@@ -97402,7 +97444,7 @@ aTf
aUp
hKm
aVt
-aVt
+abc
aVt
aZm
aPY
@@ -97427,7 +97469,7 @@ bkt
bkt
bvL
bxu
-byT
+aba
bAB
bBD
bBD
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index ecfc686d311..eed78553275 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -712,7 +712,7 @@ GLOBAL_LIST_INIT(WALLITEMS, typecacheof(list(
/obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller,
/obj/item/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth,
/obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment,
- /obj/structure/sign/picture_frame
+ /obj/structure/sign/picture_frame, /obj/machinery/bounty_board
)))
GLOBAL_LIST_INIT(WALLITEMS_EXTERNAL, typecacheof(list(
diff --git a/code/game/machinery/bounty_board.dm b/code/game/machinery/bounty_board.dm
new file mode 100644
index 00000000000..393bbf35c49
--- /dev/null
+++ b/code/game/machinery/bounty_board.dm
@@ -0,0 +1,190 @@
+GLOBAL_LIST_EMPTY(allbountyboards)
+GLOBAL_LIST_EMPTY(request_list)
+/**
+ * A machine that acts basically like a quest board.
+ * Enables crew to create requests, crew can sign up to perform the request, and the requester can chose who to pay-out.
+ */
+/obj/machinery/bounty_board
+ name = "bounty board"
+ desc = "Alows you to place requests for goods and services across the station, as well as pay those who actually did it."
+ icon = 'icons/obj/terminals.dmi'
+ icon_state = "request_kiosk"
+ ui_x = 550
+ ui_y = 600
+ light_color = LIGHT_COLOR_GREEN
+ ///Reference to the currently logged in user.
+ var/datum/bank_account/current_user
+ ///The station request datum being affected by UI actions.
+ var/datum/station_request/active_request
+ ///Value of the currently bounty input
+ var/bounty_value = 1
+ ///Text of the currently written bounty
+ var/bounty_text = ""
+
+/obj/machinery/bounty_board/Initialize(mapload, ndir, building)
+ . = ..()
+ GLOB.allbountyboards += src
+ if(building)
+ setDir(ndir)
+ pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
+ pixel_y = (dir & 3)? (dir ==1 ? -32 : 32) : 0
+
+/obj/machinery/bounty_board/Destroy()
+ GLOB.allbountyboards -= src
+ . = ..()
+
+/obj/machinery/bounty_board/attackby(obj/item/I, mob/living/user, params)
+ . = ..()
+ if(istype(I,/obj/item/card/id))
+ var/obj/item/card/id/current_card = I
+ if(current_card.registered_account)
+ current_user = current_card.registered_account
+ return TRUE
+ to_chat(user, "There's no account assigned with this ID.")
+ return TRUE
+ if(I.tool_behaviour == TOOL_WRENCH)
+ to_chat(user, "You start [anchored ? "un" : ""]securing [name]...")
+ I.play_tool_sound(src)
+ if(I.use_tool(src, user, 30))
+ playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
+ if(machine_stat & BROKEN)
+ to_chat(user, "The broken remains of [src] fall on the ground.")
+ new /obj/item/stack/sheet/metal(loc, 3)
+ new /obj/item/shard(loc)
+ else
+ to_chat(user, "You [anchored ? "un" : ""]secure [name].")
+ new /obj/item/wallframe/bounty_board(loc)
+ qdel(src)
+
+/obj/machinery/bounty_board/ui_interact(mob/user, ui_key, datum/tgui/ui, force_open, datum/tgui/master_ui, datum/ui_state/state)
+ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
+ if(!ui)
+ ui = new(user, src, ui_key, "RequestKiosk", name, ui_x, ui_y, master_ui, state)
+ ui.open()
+
+/obj/machinery/bounty_board/ui_data(mob/user)
+ var/list/data = list()
+ var/list/formatted_requests = list()
+ var/list/formatted_applicants = list()
+ for(var/i in GLOB.request_list)
+ if(!i)
+ continue
+ var/datum/station_request/request = i
+ formatted_requests += list(list("owner" = request.owner, "value" = request.value, "description" = request.description, "acc_number" = request.req_number))
+ if(request.applicants)
+ for(var/datum/bank_account/j in request.applicants)
+ formatted_applicants += list(list("name" = j.account_holder, "request_id" = request.owner_account.account_id, "requestee_id" = j.account_id))
+ var/obj/item/card/id/id_card = user.get_idcard()
+ if(id_card?.registered_account)
+ current_user = id_card.registered_account
+ if(current_user)
+ data["accountName"] = current_user.account_holder
+ data["requests"] = formatted_requests
+ data["applicants"] = formatted_applicants
+ data["bountyValue"] = bounty_value
+ data["bountyText"] = bounty_text
+ return data
+
+/obj/machinery/bounty_board/ui_act(action, list/params)
+ if(..())
+ return
+ var/current_ref_num = params["request"]
+ var/current_app_num = params["applicant"]
+ var/datum/bank_account/request_target
+ if(current_ref_num)
+ for(var/datum/station_request/i in GLOB.request_list)
+ if("[i.req_number]" == "[current_ref_num]")
+ active_request = i
+ break
+ if(active_request)
+ for(var/datum/bank_account/j in active_request.applicants)
+ if("[j.account_id]" == "[current_app_num]")
+ request_target = j
+ break
+ switch(action)
+ if("createBounty")
+ if(!current_user || !bounty_text)
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE)
+ return TRUE
+ for(var/datum/station_request/i in GLOB.request_list)
+ if("[i.req_number]" == "[current_user.account_id]")
+ say("Account already has active bounty.")
+ return
+ var/datum/station_request/curr_request = new /datum/station_request(current_user.account_holder, bounty_value,bounty_text,current_user.account_id, current_user)
+ GLOB.request_list += list(curr_request)
+ for(var/obj/i in GLOB.allbountyboards)
+ i.say("New bounty has been added!")
+ playsound(i.loc, 'sound/effects/cashregister.ogg', 30, TRUE)
+ if("apply")
+ if(!current_user)
+ say("Please swipe a valid ID first.")
+ return TRUE
+ if(current_user.account_holder == active_request.owner)
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE)
+ return TRUE
+ active_request.applicants += list(current_user)
+ if("payApplicant")
+ if(!current_user)
+ return
+ if(!current_user.has_money(active_request.value) || (current_user.account_holder != active_request.owner))
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE)
+ return
+ request_target.transfer_money(current_user, active_request.value)
+ say("Paid out [active_request.value] credits.")
+ return TRUE
+ if("clear")
+ if(current_user)
+ current_user = null
+ say("Account Reset.")
+ return TRUE
+ if("deleteRequest")
+ if(!active_request || !current_user)
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE)
+ return FALSE
+ if(active_request?.owner != current_user?.account_holder)
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE)
+ return TRUE
+ say("Deleted current request.")
+ GLOB.request_list.Remove(active_request)
+ return TRUE
+ if("bountyVal")
+ bounty_value = text2num(params["bountyval"])
+ if(!bounty_value)
+ bounty_value = 1
+ if("bountyText")
+ bounty_text = (params["bountytext"])
+ . = TRUE
+
+/obj/item/wallframe/bounty_board
+ name = "disassembled bounty board"
+ desc = "Used to build a new bounty board, just secure to the wall."
+ icon_state = "request_kiosk"
+ custom_materials = list(/datum/material/iron=14000, /datum/material/glass=8000)
+ result_path = /obj/machinery/bounty_board
+
+/**
+ * A combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account
+ * All of this is passed to the Request Console UI in order to present in organized way.
+ */
+/datum/station_request
+ ///Name of the Request Owner.
+ var/owner
+ ///Value of the request.
+ var/value
+ ///Text description of the request to be shown within the UI.
+ var/description
+ ///Internal number of the request for organizing. Id card number.
+ var/req_number
+ ///The account of the request owner.
+ var/datum/bank_account/owner_account
+ ///the account of the request fulfiller.
+ var/list/applicants = list()
+
+/datum/station_request/New(var/owned, var/newvalue, var/newdescription, var/reqnum, var/own_account)
+ . = ..()
+ owner = owned
+ value = newvalue
+ description = newdescription
+ req_number = reqnum
+ if(istype(own_account, /datum/bank_account))
+ owner_account = own_account
diff --git a/code/modules/modular_computers/file_system/programs/bounty_board.dm b/code/modules/modular_computers/file_system/programs/bounty_board.dm
new file mode 100644
index 00000000000..ebe7c48438c
--- /dev/null
+++ b/code/modules/modular_computers/file_system/programs/bounty_board.dm
@@ -0,0 +1,122 @@
+/datum/computer_file/program/bounty_board
+ filename = "bountyboard"
+ filedesc = "Bounty Board Request Network"
+ program_icon_state = "bountyboard"
+ extended_desc = "A multi-platform network for placing requests across the station, with payment across the network being possible.."
+ requires_ntnet = TRUE
+ network_destination = "bounty board interface"
+ size = 10
+ tgui_id = "NtosRequestKiosk"
+ ui_x = 550
+ ui_y = 600
+ ///Reference to the currently logged in user.
+ var/datum/bank_account/current_user
+ ///The station request datum being affected by UI actions.
+ var/datum/station_request/active_request
+ ///Value of the currently bounty input
+ var/bounty_value = 1
+ ///Text of the currently written bounty
+ var/bounty_text = ""
+ ///Has the app been added to the network yet?
+ var/networked = FALSE
+
+/datum/computer_file/program/bounty_board/ui_data(mob/user)
+ var/list/data = get_header_data()
+ var/list/formatted_requests = list()
+ var/list/formatted_applicants = list()
+ var/obj/item/computer_hardware/card_slot/card_slot = computer.all_components[MC_CARD]
+ if(!networked)
+ GLOB.allbountyboards += computer
+ networked = TRUE
+ if(card_slot && card_slot.stored_card && card_slot.stored_card.registered_account)
+ current_user = card_slot.stored_card.registered_account
+ for(var/i in GLOB.request_list)
+ if(!i)
+ continue
+ var/datum/station_request/request = i
+ formatted_requests += list(list("owner" = request.owner, "value" = request.value, "description" = request.description, "acc_number" = request.req_number))
+ if(request.applicants)
+ for(var/datum/bank_account/j in request.applicants)
+ formatted_applicants += list(list("name" = j.account_holder, "request_id" = request.owner_account.account_id, "requestee_id" = j.account_id))
+ if(current_user)
+ data["accountName"] = current_user.account_holder
+ data["requests"] = formatted_requests
+ data["applicants"] = formatted_applicants
+ data["bountyValue"] = bounty_value
+ data["bountyText"] = bounty_text
+ return data
+
+/datum/computer_file/program/bounty_board/ui_act(action, list/params)
+ if(..())
+ return
+ var/current_ref_num = params["request"]
+ var/current_app_num = params["applicant"]
+ var/datum/bank_account/request_target
+ if(current_ref_num)
+ for(var/datum/station_request/i in GLOB.request_list)
+ if("[i.req_number]" == "[current_ref_num]")
+ active_request = i
+ break
+ if(active_request)
+ for(var/datum/bank_account/j in active_request.applicants)
+ if("[j.account_id]" == "[current_app_num]")
+ request_target = j
+ break
+ switch(action)
+ if("createBounty")
+ if(!current_user || !bounty_text)
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE)
+ return TRUE
+ for(var/datum/station_request/i in GLOB.request_list)
+ if("[i.req_number]" == "[current_user.account_id]")
+ computer.say("Account already has active bounty.")
+ return
+ var/datum/station_request/curr_request = new /datum/station_request(current_user.account_holder, bounty_value,bounty_text,current_user.account_id, current_user)
+ GLOB.request_list += list(curr_request)
+ for(var/obj/i in GLOB.allbountyboards)
+ i.say("New bounty has been added!")
+ playsound(i.loc, 'sound/effects/cashregister.ogg', 30, TRUE)
+ return TRUE
+ if("apply")
+ if(!current_user)
+ computer.say("Please swipe a valid ID first.")
+ return TRUE
+ if(current_user.account_holder == active_request.owner)
+ playsound(computer, 'sound/machines/buzz-sigh.ogg', 20, TRUE)
+ return TRUE
+ active_request.applicants += list(current_user)
+ if("payApplicant")
+ if(!current_user)
+ return
+ if(!current_user.has_money(active_request.value) || (current_user.account_holder != active_request.owner))
+ playsound(computer, 'sound/machines/buzz-sigh.ogg', 30, TRUE)
+ return
+ request_target.transfer_money(current_user, active_request.value)
+ computer.say("Paid out [active_request.value] credits.")
+ return TRUE
+ if("clear")
+ if(current_user)
+ current_user = null
+ computer.say("Account Reset.")
+ return TRUE
+ if("deleteRequest")
+ if(!current_user)
+ playsound(computer, 'sound/machines/buzz-sigh.ogg', 20, TRUE)
+ return TRUE
+ if(active_request.owner != current_user.account_holder)
+ playsound(computer, 'sound/machines/buzz-sigh.ogg', 20, TRUE)
+ return TRUE
+ computer.say("Deleted current request.")
+ GLOB.request_list.Remove(active_request)
+ return TRUE
+ if("bountyVal")
+ bounty_value = text2num(params["bountyval"])
+ if(!bounty_value)
+ bounty_value = 1
+ if("bountyText")
+ bounty_text = (params["bountytext"])
+ . = TRUE
+
+/datum/computer_file/program/bounty_board/Destroy()
+ GLOB.allbountyboards -= computer
+ . = ..()
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 4cb26f98b2a..8445d5d047c 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -737,6 +737,14 @@
build_path = /obj/item/wallframe/newscaster
category = list("initial", "Construction")
+/datum/design/bounty_board_frame
+ name = "Bounty Board Frame"
+ id = "bountyboard_frame"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 14000, /datum/material/glass = 8000)
+ build_path = /obj/item/wallframe/bounty_board
+ category = list("initial", "Construction")
+
/datum/design/syringe
name = "Syringe"
id = "syringe"
diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi
index e0671833ad6..fb03ee3f4b3 100644
Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ
diff --git a/icons/obj/modular_console.dmi b/icons/obj/modular_console.dmi
index 2ce4de2fe57..71fb225b97e 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 76c38f8efa1..4c7f838db41 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 ecaa7395cd6..32edb57475e 100644
Binary files a/icons/obj/modular_tablet.dmi and b/icons/obj/modular_tablet.dmi differ
diff --git a/icons/obj/terminals.dmi b/icons/obj/terminals.dmi
index a3ad55381a0..131bcb5006d 100644
Binary files a/icons/obj/terminals.dmi and b/icons/obj/terminals.dmi differ
diff --git a/icons/obj/wallframe.dmi b/icons/obj/wallframe.dmi
index 70149901e33..6cab466bf08 100644
Binary files a/icons/obj/wallframe.dmi and b/icons/obj/wallframe.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 4a9e3acd0ed..ef534df467e 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -718,6 +718,7 @@
#include "code\game\machinery\autolathe.dm"
#include "code\game\machinery\bank_machine.dm"
#include "code\game\machinery\Beacon.dm"
+#include "code\game\machinery\bounty_board.dm"
#include "code\game\machinery\buttons.dm"
#include "code\game\machinery\canister_frame.dm"
#include "code\game\machinery\cell_charger.dm"
@@ -2485,6 +2486,7 @@
#include "code\modules\modular_computers\file_system\programs\arcade.dm"
#include "code\modules\modular_computers\file_system\programs\atmosscan.dm"
#include "code\modules\modular_computers\file_system\programs\borg_monitor.dm"
+#include "code\modules\modular_computers\file_system\programs\bounty_board.dm"
#include "code\modules\modular_computers\file_system\programs\card.dm"
#include "code\modules\modular_computers\file_system\programs\cargobounty.dm"
#include "code\modules\modular_computers\file_system\programs\cargoship.dm"
diff --git a/tgui/packages/tgui/interfaces/NtosRequestKiosk.js b/tgui/packages/tgui/interfaces/NtosRequestKiosk.js
new file mode 100644
index 00000000000..800b29db2bf
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/NtosRequestKiosk.js
@@ -0,0 +1,12 @@
+import { RequestKioskContent } from './RequestKiosk';
+import { NtosWindow } from '../layouts';
+
+export const NtosRequestKiosk = (props, context) => {
+ return (
+ "+e+"
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";var o={}.hasOwnProperty;e.exports=function(e,t){return o.call(e,t)}},function(e,t,n){"use strict";var o=n(53),r=n(62),a=n(17),i=n(12),c=n(68),l=[].push,d=function(e){var t=1==e,n=2==e,d=3==e,u=4==e,s=6==e,p=5==e||s;return function(m,f,h,C){for(var g,b,N=a(m),v=r(N),V=o(f,h,3),y=i(v.length),k=0,x=C||c,_=t?x(m,y):n?x(m,0):undefined;y>k;k++)if((p||k in v)&&(b=V(g=v[k],k,N),e))if(t)_[k]=b;else if(b)switch(e){case 3:return!0;case 5:return g;case 6:return k;case 2:l.call(_,g)}else if(u)return!1;return s?-1:d||u?u:_}};e.exports={forEach:d(0),map:d(1),filter:d(2),some:d(3),every:d(4),find:d(5),findIndex:d(6)}},function(e,t,n){"use strict";var o=n(9),r=n(74),a=n(51),i=n(27),c=n(36),l=n(20),d=n(128),u=Object.getOwnPropertyDescriptor;t.f=o?u:function(e,t){if(e=i(e),t=c(t,!0),d)try{return u(e,t)}catch(n){}if(l(e,t))return a(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(7),r=n(31),a=n(20),i=n(91),c=n(92),l=n(37),d=l.get,u=l.enforce,s=String(String).split("String");(e.exports=function(e,t,n,c){var l=!!c&&!!c.unsafe,d=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;"function"==typeof n&&("string"!=typeof t||a(n,"name")||r(n,"name",t),u(n).source=s.join("string"==typeof t?t:"")),e!==o?(l?!p&&e[t]&&(d=!0):delete e[t],d?e[t]=n:r(e,t,n)):d?e[t]=n:i(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&d(this).source||c(this)}))},function(e,t,n){"use strict";var o=n(9),r=n(5),a=n(20),i=Object.defineProperty,c={},l=function(e){throw e};e.exports=function(e,t){if(a(c,e))return c[e];t||(t={});var n=[][e],d=!!a(t,"ACCESSORS")&&t.ACCESSORS,u=a(t,0)?t[0]:l,s=a(t,1)?t[1]:undefined;return c[e]=!!n&&!r((function(){if(d&&!o)return!0;var e={length:-1};d?i(e,1,{enumerable:!0,get:l}):e[1]=1,n.call(e,u,s)}))}},function(e,t,n){"use strict";function o(e,t,n,o,r,a,i){try{var c=e[a](i),l=c.value}catch(d){return void n(d)}c.done?t(l):Promise.resolve(l).then(o,r)}t.__esModule=!0,t.winset=t.winget=t.runCommand=t.callByondAsync=t.callByond=t.IS_IE8=void 0;var r=window.Byond,a=function(){var e=navigator.userAgent.match(/Trident\/(\d+).+?;/i);if(!e)return null;var t=e[1];return t?parseInt(t,10):null}(),i=null!==a&&a<=6;t.IS_IE8=i;var c=function(e,t){void 0===t&&(t={}),r.call(e,t)};t.callByond=c;var l=function(e,t){void 0===t&&(t={}),window.__callbacks__=window.__callbacks__||[];var n=window.__callbacks__.length,o=new Promise((function(e){window.__callbacks__.push(e)}));return r.call(e,Object.assign(Object.assign({},t),{},{callback:"__callbacks__["+n+"]"})),o};t.callByondAsync=l;t.runCommand=function(e){return c("winset",{command:e})};var d=function(){var e,t=(e=regeneratorRuntime.mark((function n(e,t){var o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,l("winget",{id:e,property:t});case 2:return o=n.sent,n.abrupt("return",o[t]);case 4:case"end":return n.stop()}}),n)})),function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function c(e){o(i,r,a,c,l,"next",e)}function l(e){o(i,r,a,c,l,"throw",e)}c(undefined)}))});return function(e,n){return t.apply(this,arguments)}}();t.winget=d;t.winset=function(e,t,n){var o;return c("winset",((o={})[e+"."+t]=n,o))}},function(e,t,n){"use strict";var o=n(62),r=n(23);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var o=n(132),r=n(20),a=n(138),i=n(15).f;e.exports=function(e){var t=o.Symbol||(o.Symbol={});r(t,e)||i(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";var o=n(23),r=/"/g;e.exports=function(e,t,n,a){var i=String(o(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+String(a).replace(r,""")+'"'),c+">"+i+""+t+">"}},function(e,t,n){"use strict";var o=n(5);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";var o=n(9),r=n(15),a=n(51);e.exports=o?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:o)(e)}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){"use strict";function o(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n0;for(var c in i&&(a=Ce(n))&&he(t,o,n),n)_e(c,null,n[c],o,r,a,null);i&&fe(t,e,o,n,!0,a)}function Be(e,t,n){var o=O(e.render(t,e.state,n)),r=n;return c(e.getChildContext)&&(r=u(n,e.getChildContext())),e.$CX=r,o}function Le(e,t,n,o,r,a){var i=new t(n,o),l=i.$N=Boolean(t.getDerivedStateFromProps||i.getSnapshotBeforeUpdate);if(i.$SVG=r,i.$L=a,e.children=i,i.$BS=!1,i.context=o,i.props===p&&(i.props=n),l)i.state=y(i,n,i.state);else if(c(i.componentWillMount)){i.$BR=!0,i.componentWillMount();var u=i.$PS;if(!d(u)){var s=i.state;if(d(s))i.state=u;else for(var m in u)s[m]=u[m];i.$PS=null}i.$BR=!1}return i.$LI=Be(i,n,o),i}function Se(e,t,n,o,r,a){var i=e.flags|=16384;481&i?Te(e,t,n,o,r,a):4&i?function(e,t,n,o,r,a){var i=Le(e,e.type,e.props||p,n,o,a);Se(i.$LI,t,i.$CX,o,r,a),Ee(e.ref,i,a)}(e,t,n,o,r,a):8&i?(!function(e,t,n,o,r,a){Se(e.children=O(function(e,t){return 32768&e.flags?e.type.render(e.props||p,e.ref,t):e.type(e.props||p,t)}(e,n)),t,n,o,r,a)}(e,t,n,o,r,a),Me(e,a)):512&i||16&i?Ie(e,t,r):8192&i?function(e,t,n,o,r,a){var i=e.children,c=e.childFlags;12&c&&0===i.length&&(c=e.childFlags=2,i=e.children=M());2===c?Se(i,n,r,o,r,a):Ae(i,n,t,o,r,a)}(e,n,t,o,r,a):1024&i&&function(e,t,n,o,r){Se(e.children,e.ref,t,!1,null,r);var a=M();Ie(a,n,o),e.dom=a.dom}(e,n,t,r,a)}function Ie(e,t,n){var o=e.dom=document.createTextNode(e.children);d(t)||h(t,o,n)}function Te(e,t,n,o,r,i){var c=e.flags,l=e.props,u=e.className,s=e.children,p=e.childFlags,m=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,o=o||(32&c)>0);if(a(u)||""===u||(o?m.setAttribute("class",u):m.className=u),16===p)_(m,s);else if(1!==p){var f=o&&"foreignObject"!==e.type;2===p?(16384&s.flags&&(e.children=s=E(s)),Se(s,m,n,f,null,i)):8!==p&&4!==p||Ae(s,m,n,f,null,i)}d(t)||h(t,m,r),d(l)||we(e,c,l,m,o),be(e.ref,m,i)}function Ae(e,t,n,o,r,a){for(var i=0;ii)for(p=s;p=0;--r){var a=this.tryEntries[r],i=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(c&&l){if(this.prev'+(n?e:H(e,!0))+"\n":"
\n"},t.blockquote=function(e){return""+(n?e:H(e,!0))+"\n"+e+"
\n"},t.html=function(e){return e},t.heading=function(e,t,n,o){return this.options.headerIds?"
\n":"
\n"},t.list=function(e,t,n){var o=t?"ol":"ul";return"<"+o+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+""+o+">\n"},t.listitem=function(e){return"\n\n"+e+"\n"+t+"
\n"},t.tablerow=function(e){return"\n"+e+" \n"},t.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+""+n+">\n"},t.strong=function(e){return""+e+""},t.em=function(e){return""+e+""},t.codespan=function(e){return""+e+""},t.br=function(){return this.options.xhtml?"
":"
"},t.del=function(e){return""+e+""},t.link=function(e,t,n){if(null===(e=W(this.options.sanitize,this.options.baseUrl,e)))return n;var o='"+n+""},t.image=function(e,t,n){if(null===(e=W(this.options.sanitize,this.options.baseUrl,e)))return n;var o='":">"},t.text=function(e){return e},e}(),G=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),K=function(){function e(){this.seen={}}return e.prototype.slug=function(e){var t=e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},e}(),q=o.defaults,$=V.unescape,Y=function(){function e(e){this.options=e||q,this.options.renderer=this.options.renderer||new U,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new G,this.slugger=new K}e.parse=function(t,n){return new e(n).parse(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var n,o,r,a,i,c,l,d,u,s,p,m,f,h,C,g,b,N,v="",V=e.length;for(n=0;n
"+J(l.message+"",!0)+"";throw l}}return ne.options=ne.setOptions=function(e){return X(ne.defaults,e),ee(ne.defaults),ne},ne.getDefaults=Z,ne.defaults=te,ne.use=function(e){var t=X({},e);if(e.renderer&&function(){var n=ne.defaults.renderer||new U,o=function(t){var o=n[t];n[t]=function(){for(var r=arguments.length,a=new Array(r),i=0;i
'+(n?e:H(e,!0))+"\n":""+(n?e:H(e,!0))+"\n"},t.blockquote=function(e){return"\n"+e+"\n"},t.html=function(e){return e},t.heading=function(e,t,n,o){return this.options.headerIds?"
"+e+"
\n"},t.table=function(e,t){return t&&(t=""+t+""),""+e+""},t.br=function(){return this.options.xhtml?""+J(l.message+"",!0)+"";throw l}}return ne.options=ne.setOptions=function(e){return X(ne.defaults,e),ee(ne.defaults),ne},ne.getDefaults=Z,ne.defaults=te,ne.use=function(e){var t=X({},e);if(e.renderer&&function(){var n=ne.defaults.renderer||new U,o=function(t){var o=n[t];n[t]=function(){for(var r=arguments.length,a=new Array(r),i=0;i