ASSERT((int)levels_seen <= brdepth[branch]) in 'place-info.cc' at line 33 failed. Version: Dungeon Crawl Stone Soup 0.23.0 Platform: unix Bits: 64 Game mode: normal Tiles: online Command line: /usr/games/crawl-0.23 -name Yuikono -rc /dgldir/rcfiles/crawl-0.23/Yuikono.rc -macro /dgldir/rcfiles/crawl-0.23/Yuikono.macro -morgue /dgldir/morgue/Yuikono/ -webtiles-socket /crawl-master/webserver/sockets/Yuikono:2019-02-08.08:54:25.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 17 stack frames. /usr/games/crawl-0.23(_Z17write_stack_traceP8_IO_FILEi+0x23) [0x6ca153]: write_stack_trace(_IO_FILE*, int) /usr/games/crawl-0.23(_Z13do_crash_dumpv+0x3c0) [0x6d1990]: do_crash_dump() /usr/games/crawl-0.23(_Z20crash_signal_handleri+0x74) [0x6ca3a4]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x33060) [0x7f74d75a1060]: /lib/x86_64-linux-gnu/libpthread.so.0(raise+0xcf) [0x7f74d791df9f]: /usr/games/crawl-0.23() [0x6d1104] /usr/games/crawl-0.23() [0x6d138a] /usr/games/crawl-0.23(_ZNK9PlaceInfo15assert_validityEv+0xbc) [0xa69d6c]: PlaceInfo::assert_validity() const /usr/games/crawl-0.23(_Z10load_level20dungeon_feature_type14load_mode_typeRK8level_id+0x1906) [0x78ed26]: load_level(dungeon_feature_type, load_mode_type, level_id const&) /usr/games/crawl-0.23(_Z16floor_transition20dungeon_feature_typeS_8level_idbbbb+0x33d) [0xb47a6d]: floor_transition(dungeon_feature_type, dungeon_feature_type, level_id, bool, bool, bool, bool) /usr/games/crawl-0.23(_Z11take_stairs20dungeon_feature_typebbb+0x36e) [0xb4a63e]: take_stairs(dungeon_feature_type, bool, bool, bool) /usr/games/crawl-0.23(_ZN5Delay6handleEv+0x41) [0x6e81a1]: Delay::handle() /usr/games/crawl-0.23(_Z12handle_delayv+0x30) [0x6e9f60]: handle_delay() /usr/games/crawl-0.23() [0xc45d7a] /usr/games/crawl-0.23(main+0x55d) [0x62c58d]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7f74d758e2e1]: /usr/games/crawl-0.23() [0x62d3f5] Trying to run gdb. GNU gdb (Debian 7.12-6) 7.12.0.20161007-git Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word". [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007f74d791daea in __waitpid (pid=23055, stat_loc=0x0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29 #0 0x00007f74d791daea in __waitpid (pid=23055, stat_loc=0x0, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29 resultvar = 18446744073709551104 #1 0x00000000006ca7c3 in call_gdb (file=file@entry=0x7f74d7908520 <_IO_2_1_stderr_>) at crash.cc:435 gdb = attach_cmd = "attach 21071\000\000\000\000\000\000\000" #2 0x00000000006d19a9 in do_crash_dump () at dbg-asrt.cc:677 dir = "/dgldir/morgue/Yuikono/" signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT((int)levels_seen <= brdepth[branch]) in 'place-info.cc' at line 33 failed." file = 0x7f74d7908520 <_IO_2_1_stderr_> t = 1549622909 name = "/dgldir/morgue/Yuikono/crash-Yuikono-20190208-104829.txt", '\000' #3 0x00000000006ca3a4 in crash_signal_handler (sig_num=6) at crash.cc:196 No locals. #4 No locals. #5 raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:51 set = {__val = {0, 8390317587881402429, 504544995265480448, 7698745655296, 4278190335, 0, 32, 8192, 255, 1095216726015, 0, 0, 4604418534313441280, 0, 13538100631660358875, 0}} pid = tid = #6 0x00000000006d1104 in _BreakStrToDebugger (mesg=mesg@entry=0x7fffc04393d0 "ASSERT((int)levels_seen <= brdepth[branch]) in 'place-info.cc' at line 33 failed.", assert=true) at dbg-asrt.cc:808 No locals. #7 0x00000000006d138a in AssertFailed (expr=expr@entry=0xce28c0 "(int)levels_seen <= brdepth[branch]", file=file@entry=0xce2830 "place-info.cc", line=line@entry=33, text=text@entry=0x0) at dbg-asrt.cc:846 mesg = "ASSERT((int)levels_seen <= brdepth[branch]) in 'place-info.cc' at line 33 failed.\000\220\327t\177\000\000\260$\177\003\000\000\000\000P{\220\327t\177\000\000\200\230C\300\377\177\000\000\200\230C\300\377\177\000\000\000\033\177\003", '\000' , "P\230C\300\377\177\000\000\200\230C\300\377\177\000\000\320\032\177\003", '\000' , "P\230C\300\377\177\000\000\200\230C\300\377\177\000\000\340\v\177\003", '\000' ... args = {{gp_offset = 3225655424, fp_offset = 32767, overflow_arg_area = 0x7fffc0439880, reg_save_area = 0x37f5ef0}} fileName = #8 0x0000000000a69d6c in PlaceInfo::assert_validity (this=this@entry=0x142e640 ) at place-info.cc:33 No locals. #9 0x000000000078ed26 in load_level (stair_taken=stair_taken@entry=DNGN_STONE_STAIRS_DOWN_I, load_mode=load_mode@entry=LOAD_ENTER_LEVEL, old_level=...) at files.cc:1709 curr_PlaceInfo = @0x142e640: {branch = BRANCH_DUNGEON, num_visits = 2, levels_seen = 16, mon_kill_exp = 24492, mon_kill_num = {262, 38, 6}, turns_total = 20198, turns_explore = 7394, turns_travel = 0, turns_interlevel = 2013, turns_resting = 6611, turns_other = 4180, elapsed_total = 202711, elapsed_explore = 73764, elapsed_travel = 0, elapsed_interlevel = 20190, elapsed_resting = 66110, elapsed_other = 42647} delta = {branch = GLOBAL_BRANCH_INFO, num_visits = 0, levels_seen = 1, mon_kill_exp = 0, mon_kill_num = {0, 0, 0}, turns_total = 0, turns_explore = 0, turns_travel = 0, turns_interlevel = 0, turns_resting = 0, turns_other = 0, elapsed_total = 0, elapsed_explore = 0, elapsed_travel = 0, elapsed_interlevel = 0, elapsed_resting = 0, elapsed_other = 0} level_name = "D:15" make_changes = true popped = false hatch_name = "" just_created_level = true return_pos = {x = 0, y = 0} dest_pos = {x = 20, y = 8} #10 0x0000000000b47a6d in floor_transition (how=how@entry=DNGN_STONE_STAIRS_DOWN_I, whence=whence@entry=DNGN_STONE_STAIRS_DOWN_I, whither=..., forced=forced@entry=false, going_up=going_up@entry=false, shaft=shaft@entry=false, update_travel_cache=update_travel_cache@entry=true) at stairs.cc:811 old_level = {branch = BRANCH_DUNGEON, depth = 14} collect_travel_data = stair_pos = {x = 20, y = 8} newlevel = #11 0x0000000000b4a63e in take_stairs (force_stair=, going_up=false, force_known_shaft=, update_travel_cache=true) at stairs.cc:883 old_feat = DNGN_STONE_STAIRS_DOWN_I whither = how = known_shaft = shaft = #12 0x00000000006e81a1 in Delay::handle (this=0x37a0858) at delay.cc:691 No locals. #13 Delay::handle (this=0x37a0858) at delay.cc:666 No locals. #14 0x00000000006e9f60 in handle_delay () at delay.cc:709 delay = std::shared_ptr (count 2, weak 0) 0x37a0858 #15 0x0000000000c45d7a in _input () at main.cc:1062 player_disabled = {was_disabled = false} #16 0x000000000062c58d in _launch_game () at main.cc:467 game_start = false ccon = {cstate = false, smartcstate = false} #17 _launch_game_loop () at main.cc:376 game_ended = false #18 main (argc=, argv=) at main.cc:331 Recursive crash. No locals. Compilation info: <<<<<<<<<<< Compiled with GCC 4.7.2 on Feb 8 2019 at 06:01:36 Build platform: x86_64-linux-gnu Platform: x86_64-linux-gnu CFLAGS: -O2 -pipe -DUSE_TILE -DUSE_TILE_WEB -Wall -Wformat-security -Wundef -Wno-array-bounds -Wmissing-declarations -Wredundant-decls -Wno-parentheses -Wwrite-strings -Wshadow -pedantic -Wuninitialized -Iutil -I. -isystem /usr/include/lua5.1 -Irltiles -g -DWIZARD -DASSERTS -DREGEX_PCRE -DCLUA_BINDINGS -DDGAMELAUNCH -DSAVE_DIR_PATH="/crawl-master/crawl-0.23/saves" -DDATA_DIR_PATH="/crawl-master/crawl-0.23/data/" -DWEB_DIR_PATH="/crawl-master/crawl-0.23/data/web/" -isystem /usr/include/ncursesw LDFLAGS: -rdynamic -O2 >>>>>>>>>>> Place info: branch = 0, depth = 15 Level id: D:15 Level build method = random_map_for_place, level layout type = corridors, absdepth0 = 14 Level vaults: hangedman_depths_entry_try_elsewhere_first layout_loops_cross dungeon_decor chequers_serial_rivers_marsh Markers: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> Messages: <<<<<<<<<<<<<<<<<<<<<< You swap places. Okay, then. Wear which item? (? for menu, Esc to quit) Okay, then. Put on which piece of jewellery? (? for menu, Esc to quit) You're wearing all the rings you can. Remove which one? (? for menu, Esc to cancel) < or K - a ring of wizardry; > or Q - a +4 ring of protection You remove your ring of wizardry. b - a +3 ring of protection (left hand) j - 6 scrolls of remove curse (gained 1) You swap places. Your pack is full. You see here a coiled bone ring. As you read the scroll of identify, it crumbles to dust. the ring of Oxoher {+Blink +Inv Str+4 Dex+5} c - 29 rations (gained 1) You swap places. y - the ring of Oxoher {+Blink +Inv Str+4 Dex+5} You drop the ring of Oxoher {+Blink +Inv Str+4 Dex+5}. You swap places. You see here the ring of Oxoher {+Blink +Inv Str+4 Dex+5}. Put on which piece of jewellery? (? for menu, Esc to quit) Okay, then. You swap places. You swap places. You see here the ring of Oxoher {+Blink +Inv Str+4 Dex+5}. y - the ring of Oxoher {+Blink +Inv Str+4 Dex+5} Put on which piece of jewellery? (? for menu, Esc to quit) You're wearing all the rings you can. Remove which one? (? for menu, Esc to cancel) < or b - a +3 ring of protection; > or Q - a +4 ring of protection You remove your +3 ring of protection. You feel agile. y - the ring of Oxoher (left hand) {+Blink +Inv Str+4 Dex+5} Done exploring. You swap places. Search for what [? for help]? shop Unknown command. There is an open translucent gate, spattered with blood here. Truthflux's ghost is too close now for your liking. Unknown command. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - Truthflux's ghost Aim: Truthflux's ghost (moderately damaged) The flame tongue misses Truthflux's ghost. Truthflux's ghost points at you and mumbles some strange words. The flame tongue hits you!! Arkwar hits Truthflux's ghost from afar with a +0 trident. Unknown command. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - Truthflux's ghost Aim: Truthflux's ghost (heavily damaged) The flame tongue hits Truthflux's ghost! Truthflux's ghost is severely damaged. Morguth hits Truthflux's ghost with a +0 falchion of distortion. Truthflux's ghost is devoured by a tear in reality. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Done exploring. There is an open door here. Magic restored. You see here a ring mail. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. You swap places. You swap places. HP restored. You see here a +0 giant club. There is an open door here. You see here a dagger. There is an open door here. There is an entrance to Zigenah's Book Shoppe here. You swap places. You swap places. There is an open door here. What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! You swap places. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. You climb upwards. There is a stone staircase leading down here. As you read the scroll of magic mapping, it crumbles to dust. You feel momentarily disoriented. Unknown command. What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! There is an open door here. There is an open door here. Done exploring. Done exploring. Unknown command. What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! There is an open door here. There is an open door here. What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! You swap places. You see here a +0 club. What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! There is an open door here. What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! There is an open door here. What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. You shout for attention! What are your orders? t - Shout! Orders for allies: a - Attack new target. r - Retreat! s - Stop attacking. g - Guard the area. f - Follow me. Anything else - Cancel. Okay, then. (D) Dungeon (T) Temple (L) Lair (O) Orcish Mines (V) Vaults Where to? (Enter - D:8 @ (x,y), ? - help) What level of the Dungeon? (default 1, ? - help) There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up, spattered with blood here. You swap places. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. You swap places. Arkwar seems like it is about to say something to you, then stops. You see here a +0 giant spiked club. There is a dry fountain here. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up, spattered with blood here. You swap places. Arkwar says, "Orcs get a bad rep." There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up here. You are feeling hungry. There is a stone staircase leading down here. You climb downwards. There is a stone staircase leading up, spattered with blood here. You swap places. You open the door. There is an open door here. Found a scroll of vulnerability. You see here a scroll of vulnerability. There is a stone staircase leading up, spattered with blood here. You open the door. There is an open door here. Found a silver ring. Your pack is full. You see here a silver ring. Throwing (i - inventory. (/) - cycle) f - 373 stones (quivered) Press: ? - help, Shift-Dir - straight line, f - you Okay, then. You can't carry that many items. Drop what? 52/52 slots (_ for help) (? for menu, Esc to quit) You drop a +1 hand axe. You drop 27 poisoned needles. You drop 2 throwing nets. e - a silver ring Put on which piece of jewellery? (? for menu, Esc to quit) You're wearing all the rings you can. Remove which one? (? for menu, Esc to cancel) < or y - the ring of Oxoher {+Blink +Inv Str+4 Dex+5} > or Q - a +4 ring of protection You remove your +4 ring of protection. You feel agile. e - a +4 ring of dexterity (right hand) Put on which piece of jewellery? (? for menu, Esc to quit) You're wearing all the rings you can. Remove which one? (? for menu, Esc to cancel) < or y - the ring of Oxoher {+Blink +Inv Str+4 Dex+5} > or e - a +4 ring of dexterity You remove your +4 ring of dexterity. You feel clumsy. Q - a +4 ring of protection (right hand) Found 21 sling bullets. You now have 868 gold pieces (gained 15). f - 399 stones (gained 26) F - a scroll of identify You open the door. Found 16 stones. A two-headed ogre comes into view. It is wielding a -1 giant club and a -3 giant club. There is an open door here. The two-headed ogre shouts in stereo! Found a hardcover book. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - two-headed ogre Aim: a two-headed ogre, wielding a -1 giant club and a -3 giant club The flame tongue hits the two-headed ogre. The two-headed ogre is lightly wounded. Morguth roars a battlecry! Arkwar goes into a battle-frenzy! Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - two-headed ogre Aim: a two-headed ogre, wielding a -1 giant club and a -3 giant club (lightly wounded) The flame tongue hits the two-headed ogre! The two-headed ogre is moderately wounded. The two-headed ogre hits Morguth with a cursed -1 giant club!! The two-headed ogre hits Morguth but does no damage. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. Morguth hits the two-headed ogre with a +0 falchion of distortion. Space warps horribly around the two-headed ogre! Arkwar hits the two-headed ogre but does no damage. Unknown command. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - two-headed ogre Aim: a two-headed ogre, wielding a -1 giant club and a -3 giant club (heavily wounded) The sticky flame hits the two-headed ogre. The two-headed ogre is heavily wounded. The two-headed ogre is covered in liquid flames! The two-headed ogre burns! The two-headed ogre barely misses you. The two-headed ogre closely misses you. Morguth hits the two-headed ogre with a +0 falchion of distortion! Space bends around the two-headed ogre. Arkwar hits the two-headed ogre from afar with a +0 trident. The two-headed ogre dies! Beogh accepts your kill. Arkwar looks more experienced. Unknown command. Unknown command. Unknown command. Things that are here: a cursed -1 giant club; a cursed -3 giant club f - 415 stones (gained 16) You start resting. You are feeling very hungry. You start resting. Arkwar no longer looks unusually strong. Magic restored. You swap places. You pick up a book of the Earth and begin reading... You add the spells Leda's Liquefaction, Bolt of Magma, Statue Form, Iron Shot and Shatter to your library. Things that are here: 2 throwing nets; 27 poisoned needles; a +1 hand axe w - 2 fizzy blue potions (gained 1) Found an escape hatch in the ceiling. You swap places. Found a stone staircase leading down. You open the door. There is an open door here. Found a stone staircase leading up. Found a stone staircase leading up. You open the door. There is an open door here. You swap places. There is a stone staircase leading up here. You swap places. You swap places. There is a stone staircase leading up here. There is an open door here. There is a stone staircase leading up, spattered with blood here. A wyvern comes into view. The wyvern hisses angrily. Found a chain mail. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - wyvern Aim: a wyvern The flame tongue hits the wyvern! The wyvern is moderately wounded. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - wyvern Aim: a wyvern (moderately wounded) The sticky flame hits the wyvern. The wyvern is heavily wounded. The wyvern is covered in liquid flames! The wyvern burns! The wyvern bites you! Morguth roars a battlecry! Arkwar goes into a battle-frenzy! Unknown command. You hit the wyvern. The wyvern is almost dead. The wyvern burns! x2 The wyvern bites you but does no damage. The wyvern bites you!! You barely miss the wyvern. The wyvern is almost dead. The wyvern burns! You kill the wyvern! Beogh accepts your kill. You see here a wyvern corpse. You butcher the wyvern corpse. T - 5 chunks of flesh You see here a wyvern skeleton. You start resting. Eating one of 5 chunks of flesh. You eat one of the 5 chunks of flesh. This raw flesh tastes terrible. You are feeling hungry. Eating one of 4 chunks of flesh. You eat one of the 4 chunks of flesh. This raw flesh tastes terrible. Arkwar no longer looks unusually strong. Magic restored. You start resting. HP restored. Press: ? - help, v - describe, . - travel, g - get item Here: Arkwar the orc high priest, wielding a +0 trident and wearing a +4 scale mail (friendly) A wyvern skeleton. The floor, spattered with blood. You see here a chain mail. A centaur comes into view. Evoke which item? (* to show all) (? for menu, Esc to quit) Aiming: Polymorph Press: ? - help, Shift-Dir - straight line, f - centaur Aim: a centaur (resting, chance to defeat MR: 46%) The centaur shouts! The centaur evaporates and reforms as a worker ant! You hear a shout! A centaur comes into view. The centaur moves out of view. A centaur comes into view. Evoke which item? (* to show all) (? for menu, Esc to quit) Aiming: Polymorph Press: ? - help, Shift-Dir - straight line, f - centaur, p - worker ant Aim: a centaur (hasn't noticed you, chance to defeat MR: 46%) The centaur evaporates and reforms as a swamp drake! The swamp drake breathes noxious fumes at you. Unknown command. You swap places. Morguth is engulfed in noxious fumes. You see here a chain mail. Unknown command. You swap places. Morguth is engulfed in noxious fumes. Morguth appears confused. Morguth misses Arkwar. Morguth hits itself with a +0 falchion of distortion. Morguth disappears! Unknown command. Unknown command. Unknown command. Unknown command. Unknown command. Unknown command. You swap places. You see here a chain mail. You hit the worker ant. The worker ant is moderately wounded. The worker ant closely misses you. Arkwar hits the worker ant from afar with a +0 trident. The swamp drake breathes noxious fumes at you. The noxious blast engulfs the worker ant but does no damage. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - swamp drake Aim: a swamp drake (noxious fumes, catching its breath) The flame tongue hits the worker ant but does no damage. The worker ant is moderately wounded. You are engulfed in noxious fumes. You choke on the stench! You are confused. The worker ant is engulfed in noxious fumes. The worker ant appears confused. A centaur comes into view. Arkwar is engulfed in noxious fumes. Arkwar appears confused. The worker ant is engulfed in noxious fumes. The worker ant appears confused. Unknown command. Unknown command. You're too confused to cast spells. Unknown command. Are you sure you want to stumble around while confused and next to your ally Arkwar? This could place you under penance! Okay, then. You are engulfed in noxious fumes. A centaur comes into view. Arkwar is engulfed in noxious fumes. The worker ant is engulfed in noxious fumes. The worker ant bites the swamp drake! You're too confused to cast spells. Okay, then. You barely miss the worker ant. The worker ant is heavily wounded. You feel less confused. The worker ant bites you. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - swamp drake Aim: a swamp drake (moderately wounded, catching its breath) The flame tongue hits the worker ant. The worker ant is almost dead. The centaur shouts! The worker ant barely misses you. Arkwar hits you with a +0 trident. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - swamp drake Aim: a swamp drake (moderately wounded, catching its breath) The flame tongue hits the worker ant. The worker ant is almost dead. The worker ant bites you but does no damage. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - swamp drake Aim: a swamp drake (moderately wounded) The flame tongue hits the worker ant! You kill the worker ant! Beogh accepts your kill. Arkwar seems less confused. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - swamp drake Aim: a swamp drake (moderately wounded) The flame tongue hits the swamp drake. The swamp drake is moderately wounded. Arkwar hits the swamp drake but does no damage. The swamp drake bites you. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - swamp drake Aim: a swamp drake (moderately wounded) The flame tongue hits the swamp drake. The swamp drake is heavily wounded. The swamp drake breathes noxious fumes at you. The noxious blast engulfs you but does no damage. Arkwar is engulfed in noxious fumes. Arkwar closely misses the swamp drake. The centaur is engulfed in noxious fumes. The centaur appears confused. The centaur hits the centaur. The centaur is engulfed in noxious fumes. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - swamp drake Aim: a swamp drake (noxious fumes, heavily wounded, catching its breath) The flame tongue hits the swamp drake! The swamp drake is almost dead. You are engulfed in noxious fumes. The centaur is engulfed in noxious fumes. The centaur appears confused. The centaur hits the centaur. The centaur is engulfed in noxious fumes. The centaur appears confused. The centaur hits the centaur! The centaur is engulfed in noxious fumes. The centaur appears confused. The centaur hits the centaur but does no damage. The centaur hits itself! The centaur dies! The swamp drake closely misses you. The centaur is engulfed in noxious fumes. The centaur appears confused. Arkwar is engulfed in noxious fumes. Arkwar prays to Beogh. Unknown command. Unknown command. Unknown command. Unknown command. Unknown command. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - swamp drake Aim: a swamp drake (noxious fumes, almost dead, catching its breath) The flame tongue hits the swamp drake. The swamp drake is almost dead. You are engulfed in noxious fumes. You choke on the stench! You are confused. The centaur is engulfed in noxious fumes. x2 The centaur appears confused. The centaur hits the swamp drake. The swamp drake dies! The centaur returns to its original shape as it dies. Arkwar is engulfed in noxious fumes. Arkwar appears confused. Unknown command. Unknown command. Unknown command. You bump into the rock wall. You feel less confused. The centaur hits you but does no damage. You barely miss the centaur. The centaur is lightly wounded. The centaur misses you. Arkwar hits you with a +0 trident. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - centaur Aim: a centaur (lightly wounded, confused) The flame tongue hits the centaur but does no damage. The centaur is lightly wounded. The centaur misses you. Arkwar hits you but does no damage. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. You don't know that spell. Okay, then. Unknown command. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - centaur Aim: a centaur (lightly wounded, confused) The sticky flame hits the centaur! The centaur is moderately wounded. The centaur is covered in liquid flames! The centaur burns! The centaur closely misses you. x2 You catch the helpless centaur completely off-guard! You hit the centaur. The centaur is almost dead. The centaur burns! You kill the centaur! Beogh accepts your kill. Arkwar seems less confused. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - centaur Aim: a centaur (lightly wounded, confused) The sticky flame hits the centaur! The centaur is moderately wounded. The centaur is covered in liquid flames! The centaur burns! The centaur completely misses you. Arkwar calls down the wrath of Beogh upon the centaur. The centaur is smitten. The centaur dies! Beogh accepts your kill. You can now walk on water. You can now give items to your followers. Unknown command. Unknown command. Unknown command. Items here: ( )) † a +0 shortbow x2; 28 arrows; a centaur corpse You butcher the centaur corpse. T - 9 chunks of flesh (gained 6) Items here: ( )) ÷ a +0 shortbow x2; 28 arrows; a centaur skeleton Found a helmet. You now have 885 gold pieces (gained 17). Things that are here: a +0 shortbow; 18 arrows; a centaur corpse You butcher the centaur corpse. T - 11 chunks of flesh (gained 2) Things that are here: a +0 shortbow; 18 arrows; a centaur skeleton You swap places. You start resting. HP restored. You see here a helmet. You can't carry that many items. Wear which item? (? for menu, Esc to quit) Okay, then. Drop what? 52/52 slots (_ for help) (? for menu, Esc to quit) You drop a +0 robe. x2 a - a helmet Wear which item? (? for menu, Esc to quit) You start putting on your armour. You continue putting on your helmet. x4 You finish putting on your +0 helmet. Unknown command. Found a club. Things that are here: a +0 shortbow; 8 arrows Things that are here: a +0 shortbow; 13 arrows A vampire comes into view. Found an escape hatch in the floor. Found a wand of flame (22). You see here a club. Press: ? - help, v - describe, . - travel Here: a vampire The floor. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - vampire Aim: a vampire The flame tongue hits the vampire. The vampire is lightly damaged. Arkwar mumbles some strange prayers to Beogh. The vampire hits Morguth. The vampire bites Morguth. The vampire draws strength from Morguth's injuries! Morguth hits the vampire with a +0 falchion of distortion! The vampire blinks! Found a scroll of vulnerability and 15 gold pieces. Unknown command. Unknown command. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - vampire Aim: a vampire (heavily damaged) The sticky flame hits the vampire but does no damage. The vampire is heavily damaged. The vampire is covered in liquid flames! The vampire burns! Morguth roars a battlecry! Arkwar goes into a battle-frenzy! The vampire gestures wildly while chanting. The vampire flickers and vanishes for a moment. You hit the vampire but do no damage. The vampire is heavily damaged. The vampire burns! Arkwar hits the vampire from afar with a +0 trident! Morguth barely misses the vampire. The vampire hits Morguth. The vampire bites Morguth! The vampire draws strength from Morguth's injuries! Unknown command. Unknown command. You sock the vampire! You destroy the vampire! Beogh accepts your kill. Unknown command. You now have 900 gold pieces (gained 15). Arkwar no longer looks unusually strong. Z - a wand of flame (37) (gained 22 charges) You swap places. You open the door. There is an open door here. Your sixfirhy disappears in a puff of smoke! There is an open door here. i - 5 scrolls labeled OFAMI WORI (gained 1) Magic restored. Found a stone staircase leading down. You swap places. You swap places. You open the door. There is an open door here. You swap places. You now have 920 gold pieces (gained 20). Found a robe. You see here a robe. Eating one of 11 chunks of flesh. You eat one of the 11 chunks of flesh. This raw flesh tastes terrible. Found 3 scrolls of noise. Some of the chunks of flesh in your inventory have rotted away. Found a stone staircase leading down. An ogre comes into view. The ogre changes into a steam dragon! Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Okay, then. The orc stares at you in amazement and kneels. 2 orcs come into view. The steam dragon hisses angrily. The orc shouts! You hear a shout! You hear a croak. An orc warrior comes into view. It is wielding a +0 halberd. The steam dragon breathes steam at you. The ball of steam hits you! The ball of steam hits Morguth!! There is an open door here. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - steam dragon Aim: a steam dragon shaped shifter (catching its breath) The sticky flame hits the steam dragon! The steam dragon is moderately wounded. The steam dragon is covered in liquid flames! You are engulfed in a cloud of scalding steam. The steam dragon burns! The steam dragon changes into a water moccasin! Morguth is engulfed in a cloud of scalding steam. The orc warrior barely misses your orc. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - water moccasin Aim: a water moccasin shaped shifter The sticky flame hits the water moccasin! The water moccasin is moderately wounded. The water moccasin is covered in liquid flames! You are engulfed in a cloud of scalding steam. The water moccasin burns! The water moccasin changes into a black bear! Morguth is engulfed in a cloud of scalding steam. Morguth roars a battlecry! Arkwar goes into a battle-frenzy! An orc comes into view. It is wielding a +0 club. The orc stares at you in amazement and kneels. An orc comes into view. It is wielding a +0 whip. The orc falls on its knees before you. Unknown command. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - black bear Aim: a black bear shaped shifter (moderately wounded) The sticky flame hits the black bear. The black bear is heavily wounded. The black bear is covered in liquid flames! You are engulfed in a cloud of scalding steam. The black bear burns! Morguth is engulfed in a cloud of scalding steam. A bullfrog comes into view. Your orc closely misses the orc warrior. The black bear bites you! The black bear claws you. x2 Arkwar is engulfed in a cloud of scalding steam. Unknown command. Unknown command. Unknown command. Unknown command. The black bear burns! Morguth is engulfed in a cloud of scalding steam. Your orc closely misses the bullfrog. The black bear closely misses you. The black bear barely misses you. The black bear misses you. Unknown command. Unknown command. Unknown command. You hit the black bear. The black bear is almost dead. The black bear burns! You kill the black bear! Beogh accepts your kill. Morguth roars a battlecry! Your orcs go into a battle-frenzy! Your orc barely misses the bullfrog. The orc misses you. Unknown command. Unknown command. The bullfrog hits you but does no damage. The orc barely misses you. The orc warrior hits you with a +0 halberd! Your orc hits the orc warrior but does no damage. Morguth hits the orc with a +0 falchion of distortion! The orc dies! Beogh accepts your kill. Beogh blesses Morguth with healing. Unknown command. Unknown command. Unknown command. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - orc warrior Aim: an orc warrior, wielding a +0 halberd and wearing a +0 chain mail The sticky flame hits the orc warrior. The orc warrior is lightly wounded. The orc warrior is covered in liquid flames! The orc warrior burns! The bullfrog hits you but does no damage. Your orc hits the bullfrog with a +0 club. Arkwar mumbles some strange prayers to Beogh. The orc warrior completely misses you. Your orc closely misses the orc warrior. The bullfrog misses you. Unknown command. Unknown command. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - bullfrog, p - orc warrior Aim: a bullfrog (lightly wounded) The sticky flame hits the bullfrog. The bullfrog is moderately wounded. The bullfrog is covered in liquid flames! The bullfrog burns! The orc warrior burns! Your orc closely misses the bullfrog. x2 The bullfrog snags a nearby moth with its tongue. The bullfrog closely misses you. Your orc hits the orc warrior with a +0 dagger. Morguth hits the bullfrog with a +0 falchion of distortion! The bullfrog dies! Beogh accepts your kill. Unknown command. Unknown command. Unknown command. Unknown command. You hit the orc warrior. The orc warrior is almost dead. The orc warrior burns! You kill the orc warrior! Beogh accepts your kill. Your Spellcasting skill increases to level 8! Unknown command. You swap places. You see here a bullfrog corpse. You start resting. Some of the chunks of flesh in your inventory have rotted away. Your orc no longer looks unusually strong. Arkwar no longer looks unusually strong. Your orc no longer looks unusually strong. x2 Your sun demon disappears in a puff of smoke! All of the chunks of flesh in your inventory have rotted away. Your ice devil disappears in a puff of smoke! HP restored. Unknown command. Unknown command. Unknown command. Unknown command. You butcher the bullfrog corpse. q - a chunk of flesh You see here a bullfrog skeleton. You start resting. Magic restored. You swap places. Things that are here: a +0 halberd; a +0 chain mail You swap places. You swap places. Eating a chunk of flesh. You eat the chunk of flesh. This raw flesh tastes terrible. You swap places. You swap places. You swap places. An ogre comes into view. It is wielding a +0 giant club. The ogre shouts! An ogre is nearby! Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Flame Tongue (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - ogre Aim: an ogre, wielding a +0 giant club The flame tongue hits the ogre! The ogre is moderately wounded. Your orc hits the ogre but does no damage. Casting: Flame Tongue (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f/p - ogre Aim: an ogre, wielding a +0 giant club (moderately wounded) The sticky flame hits the ogre! The ogre is severely wounded. The ogre is covered in liquid flames! The ogre burns! Your orc hits the ogre with a +0 whip. The ogre hits you but does no damage. Your orc hits the ogre but does no damage. You hit the ogre. The ogre is almost dead. The ogre burns! You kill the ogre! Beogh accepts your kill. Things that are here: a +0 giant club; an ogre corpse You swap places. Things that are here: a +0 giant club; an ogre corpse You swap places. Found a scroll of noise. f - 430 stones (gained 15) Okay, then. Unknown command. Unknown command. Unknown command. q - a knobbly agate ring Put on which piece of jewellery? (? for menu, Esc to quit) You're wearing all the rings you can. Remove which one? (? for menu, Esc to cancel) < or y - the ring of Oxoher {+Blink +Inv Str+4 Dex+5} > or Q - a +4 ring of protection You remove your +4 ring of protection. q - a ring of protection from magic (right hand) Unknown command. Put on which piece of jewellery? (? for menu, Esc to quit) You're wearing all the rings you can. Remove which one? (? for menu, Esc to cancel) < or y - the ring of Oxoher {+Blink +Inv Str+4 Dex+5} > or q - a ring of protection from magic You remove your ring of protection from magic. Q - a +4 ring of protection (right hand) Unknown command. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You swap places. You see here a club. You open the door. There is an open door here. An ogre comes into view. It is wielding a +0 giant club. Unknown command. Unknown command. Unknown command. Unknown command. The helpless ogre fails to defend itself. You thump the ogre! The ogre is severely wounded. The ogre misses you. Casting: Sticky Flame (safe; 1% risk of failure) Confirm with . or Enter, or press ? or * to list all spells. Aiming: Sticky Flame (safe; 1% risk of failure) Press: ? - help, Shift-Dir - straight line, f - ogre Aim: an ogre, wielding a +0 giant club (severely wounded) The sticky flame hits the ogre! You kill the ogre! Beogh accepts your kill. Unknown command. Unknown command. Things that are here: a +0 giant club; an ogre corpse You butcher the ogre corpse. T - 5 chunks of flesh Things that are here: a +0 giant club; an ogre skeleton Unknown command. Unknown command. You swap places. Things that are here: a +0 giant club; an ogre skeleton You swap places. You swap places. You swap places. There is an open door here. Eating one of 5 chunks of flesh. You eat one of the 5 chunks of flesh. This raw flesh tastes terrible. You open the door. There is an open door here. You swap places. You swap places. You swap places. You swap places. There is an open door here. There is an open door here. Done exploring. Done exploring. Done exploring. There is a stone staircase leading down here. You start waiting. All of the chunks of flesh in your inventory have rotted away. Done waiting. You climb downwards. >>>>>>>>>>>>>>>>>>>>>> Version history: Game started: 0.23-b1-84-g6588a6b 0.23.0 Game state: mouse_enabled: 0, waiting_for_command: 0, terminal_resized: 0 io_inited: 1, need_save: 1, saving_game: 0, updating_scores: 0: seen_hups: 2, map_stat_gen: 0, type: 1, arena_suspended: 0 prev_cmd = CMD_GO_DOWNSTAIRS repeat_cmd = CMD_NO_CMD Player: {{{{{{{{{{{ Name: [Yuikono] Species: Hill Orc Job: Fire Elementalist HP: 106/106; mods: 0/0 MP: 33/33; mod: 0 Stats: 21 (21) 19 (19) 16 (16) Position: (58, 41), god: Beogh (14), turn_is_over: 0, banished: 0 Standing on/in/over feature: stone staircase leading up Delayed (1): type: descending_stairs duration: 0 Skills (mode: manual) Name | can_train | train | training | level | points | progress Fighting | X | 0 | 0 | 10 | 2025 | 46/460 Short Blades | | 0 | 0 | 0 | 0 | 0/50 Long Blades | | 0 | 0 | 0 | 0 | 0/42 Axes | | 0 | 0 | 5 | 460 | 15/179 Maces & Flails | X | 1 | 25 | 3 | 362 | 110/168 Polearms | | 0 | 0 | 0 | 0 | 0/42 Staves | X | 0 | 0 | 0 | 0 | 0/59 Slings | | 0 | 0 | 0 | 0 | 0/59 Bows | | 0 | 0 | 0 | 0 | 0/59 Crossbows | | 0 | 0 | 0 | 0 | 0/59 Throwing | X | 0 | 0 | 0 | 0 | 0/59 Armour | X | 0 | 0 | 0 | 0 | 0/42 Dodging | X | 0 | 0 | 1 | 151 | 81/142 Stealth | X | 0 | 0 | 1 | 127 | 68/119 Shields | | 0 | 0 | 0 | 0 | 0/42 Unarmed Combat | X | 0 | 0 | 0 | 0 | 0/42 Spellcasting | X | 1 | 25 | 8 | 3041 | 14/757 Conjurations | X | 1 | 25 | 10 | 2935 | 135/650 Hexes | X | 0 | 0 | 0 | 0 | 0/50 Charms | | 0 | 0 | 0 | 0 | 0/59 Summonings | | 0 | 0 | 0 | 0 | 0/50 Necromancy | | 0 | 0 | 0 | 0 | 0/50 Translocations | | 0 | 0 | 0 | 0 | 0/70 Transmutations | | 0 | 0 | 0 | 0 | 0/84 Fire Magic | X | 1 | 25 | 11 | 3181 | 280/630 Ice Magic | | 0 | 0 | 0 | 0 | 0/59 Air Magic | | 0 | 0 | 0 | 0 | 0/70 Earth Magic | | 0 | 0 | 0 | 0 | 0/50 Poison Magic | | 0 | 0 | 0 | 0 | 0/59 Invocations | X | 0 | 0 | 0 | 0 | 0/29 Evocations | X | 0 | 0 | 0 | 0 | 0/50 Spell bugs: Durations: #114: 37 Attributes: #12: 947 #13: 27 #23: 13748 #24: 859225356 #27: 24492 #34: 1 #49: 1011 #59: 1 Mutations: Inventory bugs: Equipment: eq slot #0, inv slot #34: +7 flail of Purpose {crush, *Noise +Inv MP+9 Str+5} eq slot #1, inv slot #19: +0 cloak eq slot #2, inv slot #0: +0 helmet eq slot #3, inv slot #17: +0 pair of gloves eq slot #6, inv slot #27: +2 robe of cold resistance eq slot #7, inv slot #24: ring of Oxoher {+Blink +Inv Str+4 Dex+5} eq slot #8, inv slot #42: +4 ring of protection eq slot #9, inv slot #41: amulet of regeneration }}}}}}}}}}} Webtiles message buffer: Webtiles JSON stack: Screenshot: @ clua stack: dlua stack: Lua persistent data: <<<<<<<<<<<<<<<<<<<<<< bailey_type: bailey_polearm >>>>>>>>>>>>>>>>>>>>>> Lua marker contents: <<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>