Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
PearlASE wrote:
Hi, I want to know the feasibility of being able to submit an input file (movie) that utilizes the autofire plugin of MAME for libTAS. The consequence of using it is the file would not playback on full default settings, and 2 or 3 small configuration files must be downloaded before being able to sync. However, getting these files in their right place is as easy as downloading them and placing them in their correct directory. It'd work similarly to an NVRAM file. The reason I ask is because manually tapping the button even frame by frame is frankly horribly inefficient to me, its not the accuracy that matters in shmups but rather the movement and positioning of my shots, so with what I've mentioned above, would this be permitted if the process is as easy as I've made it out to be?
I'm thinking of trying to reproduce the autofire functionality in libtas through its lua. Which patterns do you need?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Player (203)
Joined: 12/5/2022
Posts: 20
Location: Canada
feos wrote:
PearlASE wrote:
Hi, I want to know the feasibility of being able to submit an input file (movie) that utilizes the autofire plugin of MAME for libTAS. The consequence of using it is the file would not playback on full default settings, and 2 or 3 small configuration files must be downloaded before being able to sync. However, getting these files in their right place is as easy as downloading them and placing them in their correct directory. It'd work similarly to an NVRAM file. The reason I ask is because manually tapping the button even frame by frame is frankly horribly inefficient to me, its not the accuracy that matters in shmups but rather the movement and positioning of my shots, so with what I've mentioned above, would this be permitted if the process is as easy as I've made it out to be?
I'm thinking of trying to reproduce the autofire functionality in libtas through its lua. Which patterns do you need?
1 on 1 off ideally, Is it possible to make it user configurable? Also- on the topic of controls and NVRAM; is packing an NVRAM file with a movie file allowed as Raiden Fighters may require it. Also can I somehow use a non-default control binding for mame?
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
PearlASE wrote:
1 on 1 off ideally, Is it possible to make it user configurable?
Should be.
PearlASE wrote:
Also- on the topic of controls and NVRAM; is packing an NVRAM file with a movie file allowed as Raiden Fighters may require it.
We just need a way to recreate it on our end. For example through a separate movie. What is nvram needed for?
PearlASE wrote:
Also can I somehow use a non-default control binding for mame?
You can reassign libTAS keys however you want.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Player (203)
Joined: 12/5/2022
Posts: 20
Location: Canada
feos wrote:
Should be.
This would be amazing.
feos wrote:
We just need a way to recreate it on our end. For example through a separate movie. What is nvram needed for?
Raiden Fighters, on it's Japanese romset (and many romsets) require you to wait through a 999 tick timer on the first boot, a pre-packaged nvram file would skip this timer.
feos wrote:
You can reassign libTAS keys however you want.
Not the libTAS binds, but the keys used in MAME. Using control for fire and alt for bomb is very awkward, especially alt for bomb causes issues with window priority.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
PearlASE wrote:
Raiden Fighters, on it's Japanese romset (and many romsets) require you to wait through a 999 tick timer on the first boot, a pre-packaged nvram file would skip this timer.
How long does it take in real time?
PearlASE wrote:
feos wrote:
You can reassign libTAS keys however you want.
Not the libTAS binds, but the keys used in MAME. Using control for fire and alt for bomb is very awkward, especially alt for bomb causes issues with window priority.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Player (203)
Joined: 12/5/2022
Posts: 20
Location: Canada
feos wrote:
How long does it take in real time?
It takes about 10-15 minutes in real time. Also thank you for the misc keys thing, I appreciate that. If you can get the lua thing working with 1/1 then hit me up on the Discord cause my mind is very fresh for this game, would love to make another sample stage 1
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
PearlASE wrote:
Raiden Fighters, on it's Japanese romset (and many romsets) require you to wait through a 999 tick timer on the first boot, a pre-packaged nvram file would skip this timer.
Is any kind of pre-gameplay required? Or is it just the time it takes to enter gameplay?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Player (203)
Joined: 12/5/2022
Posts: 20
Location: Canada
feos wrote:
PearlASE wrote:
Raiden Fighters, on it's Japanese romset (and many romsets) require you to wait through a 999 tick timer on the first boot, a pre-packaged nvram file would skip this timer.
Is any kind of pre-gameplay required? Or is it just the time it takes to enter gameplay?
Time to enter. The 999 timer only applies to the first boot
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
PearlASE wrote:
Time to enter. The 999 timer only applies to the first boot
Okay you won't have to provide nvram, you'll only need to provide a movie that generates it, as a verification movie. We already do this for DOS games you have to install for several minutes. And we'll attach the verification movie to the main publication. Just don't skip any actual game.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Player (203)
Joined: 12/5/2022
Posts: 20
Location: Canada
feos wrote:
PearlASE wrote:
Time to enter. The 999 timer only applies to the first boot
Okay you won't have to provide nvram, you'll only need to provide a movie that generates it, as a verification movie. We already do this for DOS games you have to install for several minutes. And we'll attach the verification movie to the main publication. Just don't skip any actual game.
Sounds good, cant wait to make a movie file that sits on the loading screen, itll be pretty funny. So now all that's left is the autofire thing, how difficult is it to remake it in lua with a separate keybind as I need to also use no-auto at times too for specific setups
LoganTheTASer
He/They
Banned User, Experienced player (765)
Joined: 7/3/2022
Posts: 458
Location: Berkshire, UK
how do you completely erase a cancelled tas from this website?
tom_mai78101
He/Him
Player (99)
Joined: 3/16/2015
Posts: 160
Question to Judges: Suppose there is a game where it has a lottery system. It's very unlikely in a normal gameplay session to win the 1st prize. Extremely unlikely, and especially rare to get. If you do win 1st prize, you will earn the prize, but it has no effect on the story plot progression, no NPC dialogue changes, and anything else. It may be an insignificant game event, but due to its rarity, it may have some significance in entertainment value. When doing a "maximum event%" TAS, is it acceptable to try to win 1st prize as part of the run?
LogansGamingRoom wrote:
how do you completely erase a cancelled tas from this website?
I think you don't. It's so that, in the case where someone wanted to continue with your cancelled TAS, they would have something to work upon.
Post subject: Roguelikes
rythin
She/Her
Skilled player (1061)
Joined: 11/4/2021
Posts: 45
Hello, over the last couple months I've been planning out a couple of TASes for some roguelike games like Binding of Isaac or Risk of Rain, however I'm running into something that could be a potential issue. As you probably know, roguelikes have some randomization to each run to make it unique. For the purposes of a TAS, obviously one would manipulate that randomness to get the best RNG and save time. My issue is any run that revolves around acquiring unlocks rather than just reaching the credits once. With libTAS's ability to change the system time mid-TAS, it's possible to restart the game and re-seed RNG to the same value it was at the start, meaning that you don't have to manipulate RNG again for another good start when the TAS has to do multiple playthroughs (runs) of the game. Of course, this might make the TAS quite repetitive to watch, always having the same start of the run and only potentially diverging somewhere in the middle (or potentially not at all, depending on the task at hand). So I guess my question is, what do I do about it? Do you think it's fine to have repetitive segments like that, or should roguelikes TASes forgo re-seeding to the same seed and do even more RNG manipulation? Another question, also related to roguelikes. As far as I can tell, TASVideos prefers TASes made from what's essentially a "fresh install" of the game with no or minimal previous data. This is usually fine as a "default run" of most games would start from a new game, fresh savefile etc. However in roguelikes, both in normal play and speedrunning, the "default run" tends to be done on an existing savefile, usually fully completed. This is reflected in RTA speedrunning communities who will tend to run on either fully or partially completed savefiles. So with that in mind, would it still be preferred for roguelike submissions to include the "setup" section as part of the TAS (for example, unlocking the true final boss), or should it be in a separate verification movie and have the actual submission be more comparable to a normal run or an RTA speedrun?
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
tom_mai78101 wrote:
Suppose there is a game where it has a lottery system. It's very unlikely in a normal gameplay session to win the 1st prize. Extremely unlikely, and especially rare to get. If you do win 1st prize, you will earn the prize, but it has no effect on the story plot progression, no NPC dialogue changes, and anything else. It may be an insignificant game event, but due to its rarity, it may have some significance in entertainment value. When doing a "maximum event%" TAS, is it acceptable to try to win 1st prize as part of the run?
Not enough info about the suggested branch and what it would consist of.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
rythin wrote:
Hello, over the last couple months I've been planning out a couple of TASes for some roguelike games like Binding of Isaac or Risk of Rain, however I'm running into something that could be a potential issue. As you probably know, roguelikes have some randomization to each run to make it unique. For the purposes of a TAS, obviously one would manipulate that randomness to get the best RNG and save time. My issue is any run that revolves around acquiring unlocks rather than just reaching the credits once. With libTAS's ability to change the system time mid-TAS, it's possible to restart the game and re-seed RNG to the same value it was at the start, meaning that you don't have to manipulate RNG again for another good start when the TAS has to do multiple playthroughs (runs) of the game. Of course, this might make the TAS quite repetitive to watch, always having the same start of the run and only potentially diverging somewhere in the middle (or potentially not at all, depending on the task at hand). So I guess my question is, what do I do about it? Do you think it's fine to have repetitive segments like that, or should roguelikes TASes forgo re-seeding to the same seed and do even more RNG manipulation?
Since system time can be arbitrarily set by the user directly, you can set it however you like in/during your movie. And what you set it to is up to you, for example if you think your seed is the optimal one for speed, there's nothing wrong in repeating it. Or if you aim for an Alternative class goal, using a seed that's entertaining to watch also makes sense.
rythin wrote:
Another question, also related to roguelikes. As far as I can tell, TASVideos prefers TASes made from what's essentially a "fresh install" of the game with no or minimal previous data. This is usually fine as a "default run" of most games would start from a new game, fresh savefile etc. However in roguelikes, both in normal play and speedrunning, the "default run" tends to be done on an existing savefile, usually fully completed. This is reflected in RTA speedrunning communities who will tend to run on either fully or partially completed savefiles. So with that in mind, would it still be preferred for roguelike submissions to include the "setup" section as part of the TAS (for example, unlocking the true final boss), or should it be in a separate verification movie and have the actual submission be more comparable to a normal run or an RTA speedrun?
Having completed parts of actual gameplay prior to starting the main movie, means it's a save anchored movie, which is now a separate Standard category (and needs a verification movie).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Dimon12321
He/Him
Active player (478)
Joined: 4/5/2014
Posts: 1120
Location: Ukraine
I have a question that kinda addresses that recent situation with SMB world selection. Generic version: Does a TAS violate the rules, if you complete half the game using a special glitch, then return back to Main Menu and continue a new game from the same level that you have just reached? As a result, all the levels are completed, despite the fact that you technically selected "the world" in the Main Menu. Specific version: GBA version of Doom has a unique player state glitch that drastically changes the gameplay. Episodes 1 and 2 can be completed using it. When Episode 3 Map 1 starts, you cannot continue the speedrun due to the player state limitations which cannot be now circumvented. So, you have to go back to Main Menu and start Episode 3 Map 1 with your normal state, up until the end. Thank you for your time!
TASing is like making a film: only the best takes are shown in the final movie.
TLH
Joined: 1/29/2023
Posts: 3
Location: Germany
Hello everyone! I'm new to TASing and I have a question regarding the usage of SaveRAM and save states. I tried looking at some of the existing publications and used this website's search function, but I'm still not sure on how I should proceed in my case. Sorry if that has been answered before. I'm using BizHawk 2.8 and TAStudio to make a TAS (a .tasproj file) of an N64 game. The TAS playthrough is done on the highest difficulty setting and unlocking this setting requires that the game is beaten twice beforehand. I've done the two playthroughs casually (by playing in the emulator without TAStudio) and after that, I created the TAS file using "Record Movie" -> "Record From: Now" (with "Now" being the title screen after turning on the console after the two playthroughs), which is based on the second method described in the two posts here: https://tasvideos.org/Forum/Topics/13505?CurrentPage=1&Highlight=403768#403768 I'm about to finish the TAS, but now that I read the "movie rules" page, if I understood this correctly, this procedure has lead to a .tasproj file based on a save state which is not allowed here. Since I have done the two previous playthroughs casually, I don't have videos of them in the tasproj file from TAStudio. Is there any way I can salvage this, or would I have to redo the two playthroughs and the TAS run from an empty save?
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Dimon12321 wrote:
I have a question that kinda addresses that recent situation with SMB world selection. Generic version: Does a TAS violate the rules, if you complete half the game using a special glitch, then return back to Main Menu and continue a new game from the same level that you have just reached? As a result, all the levels are completed, despite the fact that you technically selected "the world" in the Main Menu. Specific version: GBA version of Doom has a unique player state glitch that drastically changes the gameplay. Episodes 1 and 2 can be completed using it. When Episode 3 Map 1 starts, you cannot continue the speedrun due to the player state limitations which cannot be now circumvented. So, you have to go back to Main Menu and start Episode 3 Map 1 with your normal state, up until the end. Thank you for your time!
Sounds okay, as long as you don't simply skip ahead.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
TLH wrote:
Hello everyone! I'm new to TASing and I have a question regarding the usage of SaveRAM and save states. I tried looking at some of the existing publications and used this website's search function, but I'm still not sure on how I should proceed in my case. Sorry if that has been answered before. I'm using BizHawk 2.8 and TAStudio to make a TAS (a .tasproj file) of an N64 game. The TAS playthrough is done on the highest difficulty setting and unlocking this setting requires that the game is beaten twice beforehand. I've done the two playthroughs casually (by playing in the emulator without TAStudio) and after that, I created the TAS file using "Record Movie" -> "Record From: Now" (with "Now" being the title screen after turning on the console after the two playthroughs), which is based on the second method described in the two posts here: https://tasvideos.org/Forum/Topics/13505?CurrentPage=1&Highlight=403768#403768 I'm about to finish the TAS, but now that I read the "movie rules" page, if I understood this correctly, this procedure has lead to a .tasproj file based on a save state which is not allowed here. Since I have done the two previous playthroughs casually, I don't have videos of them in the tasproj file from TAStudio. Is there any way I can salvage this, or would I have to redo the two playthroughs and the TAS run from an empty save?
Please upload your double playthrough and the main movie to userfiles, I'll check what can be done.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
tom_mai78101
He/Him
Player (99)
Joined: 3/16/2015
Posts: 160
Another question: What is considered as "doing the event"? What counts as "doing an event" and what doesn't count? This is about "player prompts" when doing a "max events%" run. The game is River City Ransom EX. I'll be using game jargons from the GameFAQs guide when discussing about "events". Guide: https://gamefaqs.gamespot.com/gba/915026-river-city-ransom-ex/faqs/30625 It will be in the "Events" section. When triggering an event, you will get an NPC to appear, and a text dialogue will show up. At the end of the dialogue, the game will ask the player (called player prompt) to choose these 4 options: YES, DON'T KNOW, NO, and NO REPLY. Selecting any one of the responses will give different outcomes, such as whether the NPC will choose to join your party, or give money. However, you can actually skip the event that is triggered by exiting the area. This action is the same as selecting NO as the response, and nothing will happen. There is a significant time-saving if we skip the events by leaving the area, however, the viewer will not be able to understand that the NPC showing up is what we use to count towards "triggering the event". When we want to judge that "an event has been completed", I would like to ask if we should consider "choosing an answer from the player prompt", or "meeting the NPC character and skipping the events by exiting the current area" as the criteria to judge in a "max events%" run? Thanks.
feos wrote:
tom_mai78101 wrote:
Suppose there is a game where it has a lottery system. It's very unlikely in a normal gameplay session to win the 1st prize. Extremely unlikely, and especially rare to get. If you do win 1st prize, you will earn the prize, but it has no effect on the story plot progression, no NPC dialogue changes, and anything else. It may be an insignificant game event, but due to its rarity, it may have some significance in entertainment value. When doing a "maximum event%" TAS, is it acceptable to try to win 1st prize as part of the run?
Not enough info about the suggested branch and what it would consist of.
The only information I can see is you will earn $100,000.00 in-game cash when you win the 1st prize lottery in the game. Nothing else will happen. I guess that means, there is no need to include this lottery winning as part of the "max event%" run.
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
Since no longer required, can I submit a run on easy for significant time save? Already beat the record on hard which I will also attach since that surely matters and helps the cause. Differences are minor and really only matters for ammo amount and avoiding picking up more ammo, boring stuff
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
OtakuTAS wrote:
Since no longer required, can I submit a run on easy for significant time save? Already beat the record on hard which I will also attach since that surely matters and helps the cause. Differences are minor and really only matters for ammo amount and avoiding picking up more ammo, boring stuff
Sounds like easy is totally fine.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Banned User, Player (197)
Joined: 1/6/2023
Posts: 263
feos wrote:
OtakuTAS wrote:
Since no longer required, can I submit a run on easy for significant time save? Already beat the record on hard which I will also attach since that surely matters and helps the cause. Differences are minor and really only matters for ammo amount and avoiding picking up more ammo, boring stuff
Sounds like easy is totally fine.
Thanks, found the differences on SpeedDemosArchive: Difficulty differences Easy: Ammo pickups give 15 ammunition. Damage from all sources are low. Medium: Ammo pickups give 10 ammunition. Damage from all sources are medium. Hard: Ammo pickups give 5 ammunition. Damage from all sources are high (two spike hits takes off a full hp bar) At no point in the run is enough damage taken to die on Hard (and Medium and Easy.).
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
TLH
Joined: 1/29/2023
Posts: 3
Location: Germany
feos wrote:
TLH wrote:
Hello everyone! I'm new to TASing and I have a question regarding the usage of SaveRAM and save states. I tried looking at some of the existing publications and used this website's search function, but I'm still not sure on how I should proceed in my case. Sorry if that has been answered before. I'm using BizHawk 2.8 and TAStudio to make a TAS (a .tasproj file) of an N64 game. The TAS playthrough is done on the highest difficulty setting and unlocking this setting requires that the game is beaten twice beforehand. I've done the two playthroughs casually (by playing in the emulator without TAStudio) and after that, I created the TAS file using "Record Movie" -> "Record From: Now" (with "Now" being the title screen after turning on the console after the two playthroughs), which is based on the second method described in the two posts here: https://tasvideos.org/Forum/Topics/13505?CurrentPage=1&Highlight=403768#403768 I'm about to finish the TAS, but now that I read the "movie rules" page, if I understood this correctly, this procedure has lead to a .tasproj file based on a save state which is not allowed here. Since I have done the two previous playthroughs casually, I don't have videos of them in the tasproj file from TAStudio. Is there any way I can salvage this, or would I have to redo the two playthroughs and the TAS run from an empty save?
Please upload your double playthrough and the main movie to userfiles, I'll check what can be done.
Thanks for answering! I have uploaded the main movie here. The two playthroughs are not in the movie, but I have redone them here starting from an empty save to roughly show what it looks like.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
tom_mai78101 wrote:
What is considered as "doing the event"? What counts as "doing an event" and what doesn't count? This is about "player prompts" when doing a "max events%" run. The game is River City Ransom EX. I'll be using game jargons from the GameFAQs guide when discussing about "events". Guide: https://gamefaqs.gamespot.com/gba/915026-river-city-ransom-ex/faqs/30625 It will be in the "Events" section. When triggering an event, you will get an NPC to appear, and a text dialogue will show up. At the end of the dialogue, the game will ask the player (called player prompt) to choose these 4 options: YES, DON'T KNOW, NO, and NO REPLY. Selecting any one of the responses will give different outcomes, such as whether the NPC will choose to join your party, or give money. However, you can actually skip the event that is triggered by exiting the area. This action is the same as selecting NO as the response, and nothing will happen. There is a significant time-saving if we skip the events by leaving the area, however, the viewer will not be able to understand that the NPC showing up is what we use to count towards "triggering the event". When we want to judge that "an event has been completed", I would like to ask if we should consider "choosing an answer from the player prompt", or "meeting the NPC character and skipping the events by exiting the current area" as the criteria to judge in a "max events%" run?
I still don't get how "an event" is even defined. The GameFAQs link says there are certain dialogs depending on reputation, and then there are certain events depending on reputation, but doesn't seem to explain what those events actually consist of, only their requirements. If you define "an event" as an extra dialog, you obviously need to have that dialog displayed. If NPC appearance is "an event", then that's probably enough. But this is an Alternative-only category, so it should make the most sense to the viewers, because they decide whether it's published. So define events in a way that makes the run the most entertaining.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.