|
You last visited: Today at 22:29
Advertisement
[Beta] DSX1337 - Tribal Wars Bot
Discussion on [Beta] DSX1337 - Tribal Wars Bot within the Browsergames forum part of the Other Online Games category.
03/20/2016, 14:25
|
#16
|
elite*gold: 0
Join Date: Oct 2014
Posts: 4
Received Thanks: 0
|
It work in speed worlds? I try tu using speed worlds but not work
|
|
|
03/21/2016, 00:23
|
#17
|
elite*gold: 317
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
|
German Setup Guide
Hier nochmal das Setup auf Deutsch:
Benötigt wird die neueste Java Version (JRE):
Den Bot aus dem Anhang im 1. Post runterladen und in einen neuen Ordner entpacken.
Nun können die Templates angepasst werden. Die "templates/farm.xml" mit einem Editor bzw. Notepad aufmachen.
Dort kannst du dem Bot relativ einfach sagen, welche und wie viele Truppen pro Farmangriff geschickt werden sollen.
Es können mehrere dieser Vorlagen/Templates definiert werden.
Dabei muss man nur diejenigen Einheiten angeben, die auch geschickt werden sollen; Es muss also nicht explizit alles andere auf 0 gesetzt werden.
Code:
Einheiten Namen:
[müssen in den Templates auf Englisch geschrieben werden!]
-------------------------------
Englisch Deutsch
-------------------------------
spear Speer
sword Schwert
axe Axt
spy Späher
light Lkav
heavy Skav
ram Rammen
knight Paladin
archer Bogenschütze
marcher Berittener Bogensch.
Alle Templates kommen in den "<linked-list>...</linked-list>" Bereich.
Jedes Template wird von dem "<units>...</units>" Tag markiert, darin steht "<$name>$anzahl</$name>" für die jeweiligen Einheiten.
Beispiel:
Quote:
<linked-list>
<units>
<light>6</light>
<knight>1</knight>
<spy>1</spy>
</units>
<linked-list>
|
Führt zu:
6 Lkav
1 Pala
1 Spy
Wobei Pala + Späher immer gesetzt werden kann, da der Bot ignoriert, wenn nicht mehr genügend Späher bzw. kein Pala mehr vorhanden ist.
Wenn DSX jetzt nicht 6 Lkav, sondern 20 Stück schicken soll, ändere ich die light-Zeile zu
Quote:
Natürlich können auch Einheiten hinzugefügt oder weggenommen werden.
Mit
Quote:
<units>
<spear>42</spear>
<sword>66</sword>
</units>
|
werden 42 Speer und 66 Schwert geschickt.
Auf einigen Welten braucht man mindestens 4 Späher, damit nicht alle bei einem Angriff drauf gehen. Späher können auch ganz raus gelassen werden.
Wem das zu kompliziert ist: Der Bot läuft auch mit den bereits vordefinierten Einstellungen
Außerdem sollten die Templates nach Laufzeit absteigend sortiert sein, da der Bot diese von oben nach unten abarbeitet. Ein Template mit Schwert sollte also vor Lkav kommen etc...
Zum Starten des Bots einfach die "start_dsx" (.bat für Windows, .sh für Linux) öffnen. Jetzt sollte ein Config-Helfer erscheinen.
Host ist die Seite, die du normalerweise zum Einloggen benutzt.
Code:
https://www.die-staemme.de/
-> Host = www.die-staemme.de
Beachte: Kein http/s, kein Querstrich am Ende!
WorldCode ist das Prefix der Adresse, wenn du eingeloggt bist. Bsp:
Code:
https://de126.die-staemme.de/game.php?screen=overview&intro
-> WorldCode = de126
Der Großteil der Einstellungen sollte selbsterklärend sein; Wenn nicht einfach mit der Maus über den Namen der Einstellung bzw. das Eingabefeld fahren, dann wird ein Hinweis angezeigt.
Falls etwas mit der Config schief läuft, einfach die "dsx.properties" löschen und den Bot neu starten.
--------------------------------------------------------------------------------
Quote:
Originally Posted by geoxy94
It work in speed worlds? I try tu using speed worlds but not work 
|
Hit me up with a link to the world and I will see if I can fix it
|
|
|
03/21/2016, 11:23
|
#18
|
elite*gold: 0
Join Date: Oct 2014
Posts: 4
Received Thanks: 0
|
It work perfect now! I wish to change interval atack time but i not found.
|
|
|
03/24/2016, 13:26
|
#19
|
elite*gold: 317
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
|
Update: DSX1337 version 0.5
Changelog:
- add: update checking / routine, customisable farm interval.
- change: tweaked delays. avg delay is 4 seconds now.
- change: default templates do not contain spy/knight any more.
- fix: login abort after 3 failed tries, template error handling.
- fix: made config dialog more user friendly.
So I just made a quick update, including an update notification, customisable farm interval (when the bot will restart farming) and more generic templates. They should work with every world now.
Also, the bot should switch villages faster now if no template is fitting. I would love if someone with multiple villages can report if it is working, as I do not have a test account for that atm.
Just be careful when setting farm interval to a very low value (< 10 min). Bot guard will probably be active very soon.
If you were using version 0.4.5 previously, you can just drag & drop the files in the bot folder. You might want to back up your templates if you made any changes.
No need to delete "dsx.properties", the bot should be able to migrate your old settings to the new version.
Download at the bottom of the first post in this topic.
Edit: So I just fixed an error with the default settings. Apparently attackPlayers was true, and is still not included in the config dialog. For anyone having trouble with the bot attacking players: Open "dsx.properties" and set "attackPlayers=false" and "lastWorldDataUpdate=01/01/2000 22\:48\:06". Restart DSX. It will only attack babarians now.
|
|
|
03/30/2016, 07:18
|
#20
|
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 0
|
Would you mind to take a look at my error log?
thx in advance
02:09:17 INFO Update - DSX1337 version 0.5
02:09:18 INFO Update - Running latest version.
02:09:18 INFO Settings - Loaded settings.
02:09:18 INFO Database - Last world data update: 01/01/2000 00:00:00
02:09:18 INFO Database - Parsing world data...
02:09:18 INFO VillageData - Parsing villages...
02:09:24 INFO ENGINE - checkpointClose start
02:09:24 INFO ENGINE - checkpointClose end
02:09:25 INFO PlayerData - Parsing player data...
02:09:26 ERROR Database - Could not execute query:
02:09:26 ERROR App - fatal error:
java.sql.SQLException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is empty
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getCurrent(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getColumnInType(Unkn own Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at me.d3luxe.farmbot.game.PlayerData.getPlayerWhere(P layerData.java:59)
at me.d3luxe.farmbot.game.PlayerData.getPlayerId(Play erData.java:36)
at me.d3luxe.farmbot.User.parseVillages(User.java:36)
at me.d3luxe.farmbot.game.Database.update(Database.ja va:100)
at me.d3luxe.farmbot.game.Database.setUp(Database.jav a:78)
at me.d3luxe.farmbot.App.main(App.java:129)
Caused by: org.hsqldb.HsqlException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is empty
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
... 11 more
02:09:26 INFO App - Press {Enter} to exit...
tribalwars.com.br btw
|
|
|
03/30/2016, 10:15
|
#21
|
elite*gold: 317
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
|
Quote:
Originally Posted by ruahefoci
Would you mind to take a look at my error log?
thx in advance
02:09:17 INFO Update - DSX1337 version 0.5
02:09:18 INFO Update - Running latest version.
02:09:18 INFO Settings - Loaded settings.
02:09:18 INFO Database - Last world data update: 01/01/2000 00:00:00
02:09:18 INFO Database - Parsing world data...
02:09:18 INFO VillageData - Parsing villages...
02:09:24 INFO ENGINE - checkpointClose start
02:09:24 INFO ENGINE - checkpointClose end
02:09:25 INFO PlayerData - Parsing player data...
02:09:26 ERROR Database - Could not execute query:
02:09:26 ERROR App - fatal error:
java.sql.SQLException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is empty
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getCurrent(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getColumnInType(Unkn own Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at me.d3luxe.farmbot.game.PlayerData.getPlayerWhere(P layerData.java:59)
at me.d3luxe.farmbot.game.PlayerData.getPlayerId(Play erData.java:36)
at me.d3luxe.farmbot.User.parseVillages(User.java:36)
at me.d3luxe.farmbot.game.Database.update(Database.ja va:100)
at me.d3luxe.farmbot.game.Database.setUp(Database.jav a:78)
at me.d3luxe.farmbot.App.main(App.java:129)
Caused by: org.hsqldb.HsqlException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is empty
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
... 11 more
02:09:26 INFO App - Press {Enter} to exit...
tribalwars.com.br btw
|
Incorrect user name most likely. User name is case sensitive and has to look exactly like in tribal wars. Example: deLuXe =/= Deluxe
Delete "dsx.properties", restart bot. Copy your username from the tribal wars page if neccessary...
|
|
|
04/03/2016, 14:08
|
#22
|
elite*gold: 0
Join Date: Apr 2009
Posts: 28
Received Thanks: 8
|
15:07:09 ERROR Database - Could not execute query:
15:07:09 ERROR App - fatal error:
java.sql.SQLException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is empty
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getCurrent(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getColumnInType(Unkn own Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at me.d3luxe.farmbot.game.PlayerData.getPlayerWhere(P layerData.java:59)
at me.d3luxe.farmbot.game.PlayerData.getPlayerId(Play erData.java:36)
at me.d3luxe.farmbot.User.parseVillages(User.java:36)
at me.d3luxe.farmbot.game.Database.update(Database.ja va:100)
at me.d3luxe.farmbot.game.Database.setUp(Database.jav a:78)
at me.d3luxe.farmbot.App.main(App.java:129)
Caused by: org.hsqldb.HsqlException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is empty
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
... 11 more
I keep on getting this error.
|
|
|
04/03/2016, 14:44
|
#23
|
elite*gold: 317
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
|
Quote:
Originally Posted by Xtreeme
15:07:09 ERROR Database - Could not execute query:
15:07:09 ERROR App - fatal error:
java.sql.SQLException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is empty
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getCurrent(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getColumnInType(Unkn own Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getInt(Unknown Source)
at me.d3luxe.farmbot.game.PlayerData.getPlayerWhere(P layerData.java:59)
at me.d3luxe.farmbot.game.PlayerData.getPlayerId(Play erData.java:36)
at me.d3luxe.farmbot.User.parseVillages(User.java:36)
at me.d3luxe.farmbot.game.Database.update(Database.ja va:100)
at me.d3luxe.farmbot.game.Database.setUp(Database.jav a:78)
at me.d3luxe.farmbot.App.main(App.java:129)
Caused by: org.hsqldb.HsqlException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is empty
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
... 11 more
I keep on getting this error.
|
I need the log message before this error. But my guess is that it comes from the same thing as above: " Parsing player data..."
This means your user name is incorrect. Make sure that the username is spelled exactly like on your tribalwars profile (case sensitive).
I don't know why but it seems hard to get capital and small letters correct in your name, yet it probably means that I should change the query to case insensitive because people keep getting this error.
This is an easy fix and will be in the next update.
--------------------------------------------------------------------------------
Btw: I don't want to promise too much here, but it seems like I found a way to bypass bot guard and login limits... I am currently testing a method where bot and player can be logged in at the same time.
Also, I will release auto-building somewhen within the next few days.
I thought a lot about auto-building features. Yet, the feature that makes most sense for me is an algorithm that mainly pushes wood, stone and iron mines and upgrades other buildings on the way. Bot users can only define max levels for buildings and the bot will decide what to build.
Another option is to let users define some kind of linear list, with 1 build step per line, example:
Quote:
main 3
wood 5
stone 3
iron 1
main 5
...
|
As you see, this can produce a long list very quickly and is not as easy to customize.
Anyways, feel free to tell me what kind of system you prefer and why you would use it. I'm happy about any feedback
|
|
|
04/03/2016, 16:07
|
#24
|
elite*gold: 0
Join Date: Apr 2009
Posts: 28
Received Thanks: 8
|
I solved the login problem.
The other thing that I encountered, after a while it will do this:
16:28:47 INFO FarmRoutine - Starting to farm...
16:28:47 INFO Delay - Waiting for 1-6 minutes...
16:31:04 INFO FarmRoutine - Farming for (I deleted this here for reasons)
16:31:05 INFO Session - Not logged in.
16:31:05 INFO Session - Will relog soonTM...
16:31:05 INFO Delay - Waiting for 15-30 minutes...
16:59:27 INFO Session - Not logged in.
16:59:31 INFO Session - Not logged in.
16:59:31 ERROR Session - Login not working. Username, Password, World correct?
16:59:31 INFO App - Press {Enter} to exit...
Should I wait or restart it?
EDIT: I think it's because I am logged on the computer as well when the bot wants to farm.
|
|
|
04/03/2016, 16:49
|
#25
|
elite*gold: 317
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
|
Quote:
Originally Posted by Xtreeme
I solved the login problem.
The other thing that I encountered, after a while it will do this:
16:28:47 INFO FarmRoutine - Starting to farm...
16:28:47 INFO Delay - Waiting for 1-6 minutes...
16:31:04 INFO FarmRoutine - Farming for (I deleted this here for reasons)
16:31:05 INFO Session - Not logged in.
16:31:05 INFO Session - Will relog soonTM...
16:31:05 INFO Delay - Waiting for 15-30 minutes...
16:59:27 INFO Session - Not logged in.
16:59:31 INFO Session - Not logged in.
16:59:31 ERROR Session - Login not working. Username, Password, World correct?
16:59:31 INFO App - Press {Enter} to exit...
Should I wait or restart it?
EDIT: I think it's because I am logged on the computer as well when the bot wants to farm.
|
Tribal wars does not need to run on your computer while the bot is working.
Well, either you or the bot can be logged in, only one at a time.
However, if you log in later while DSX is running, it should relog after some time.
Did it work before though?
Try the following: Log out of tribal wars on your computer/browser and start dsx. Do not log in while it is running. Does it even farm? If not, chances are that your settings are still incorrect.
Edit: Whenever you see "ERROR" and "press {Enter} to exit..." some fatal error happened, just restart the bot.
|
|
|
04/03/2016, 16:55
|
#26
|
elite*gold: 0
Join Date: Apr 2009
Posts: 28
Received Thanks: 8
|
Quote:
Originally Posted by D3luxe.
Tribal wars does not need to run on your computer while the bot is working.
Well, either you or the bot can be logged in, only one at a time.
However, if you log in later while DSX is running, it should relog after some time.
Did it work before though?
Try the following: Log out of tribal wars on your computer/browser and do not log in while dsx is running. Does it even farm? If not, chances are that your settings are still incorrect.
Edit: Whenever you see "ERROR" and "press {Enter} to exit..." some fatal error happened, just restart the bot.
|
The issue was because I was using the game on the computer(being logged in) at the same time as the bot. It works flawless so far.
|
|
|
04/05/2016, 11:53
|
#27
|
elite*gold: 0
Join Date: Apr 2009
Posts: 28
Received Thanks: 8
|
I saw in dsx.properties "attackplayer" function. Does it work?
I feel like farming the inactive might also be good.
|
|
|
04/05/2016, 13:25
|
#28
|
elite*gold: 317
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
|
Quote:
Originally Posted by Xtreeme
I saw in dsx.properties "attackplayer" function. Does it work?
I feel like farming the inactive might also be good.
|
It does work, you just need to be careful. For example, there is no way for the bot to check if the village is clean, so it could be wasting a lot of units. It can also not check if the target is allied.
You need to use the maxPoints option in this case to make sure that only inactive people are attacked.
How to enable it: Set "attackPlayers=true", "lastWorldDataUpdate=01/01/2000 00:00:00", "maxPoints" to a safe value (see above) and restart DSX.
-------------------------------------------------------------------------------------------------
Update: version 1.2
Changelog:
- add: build routine.
- change: now using tribal wars mobile api.
- change: using h2 as database engine.
- fix: player names / user name are now case insensitive.
As you can probably tell from the version number, a lot of changes happened.
Finally, Player/User names case insensitive. Small/Capital letters do not matter any more when you enter your login name.
Also, I switched to another database engine. It should be around 15% faster than the old one.
When updating from older versions: You need to delete dsx.properties / start with a blank folder.
The greatest and best change is probably that DSX is now using tribal wars' mobile api, enabling lots of cool things:
First, you can now log in on your computer and have the bot running in the background at the same time, without any of them being kicked out of the session.
Also, it seems like there is no bot guard monitoring the API. My test account did not get flagged within 48h permanent botting.
I added a build algorithm that upgrades production and other buildings like barracks, main, market etc.
It uses some predefined rules based on the highest production level.
Even though it is not perfect yet, it should be fine to use. It will not deconstruct anything and not upgrade main and market over level 20.
A customizable max-level-list will be added soonTM.
Make sure to give me some feedback if it makes a weird upgrade choice...
PS:
Just something about the API: It took me about 30 minutes to break the tribal wars API. For some reason inno games did not include a bot guard, but did they really think this "protection" would be enough?
As of right now, the new method should be safe. Bot packets look exactly like the ones the official app is sending. Also, the app has a high packet frequency, so that should not be a problem.
I might add some kind of security check, comparing the latest app version with the one the bot was made for...
|
|
|
04/06/2016, 04:14
|
#29
|
elite*gold: 0
Join Date: Oct 2008
Posts: 7
Received Thanks: 0
|
nice and good update! ABER jetzt kannst du doch auch die wartezeit für das switchen zwischen dörfern und nach etwa 5 angriffen,niedriger einstellen,wenn der bot nicht erscheint. bei mir zumindest baut sich nach einer zeit ein großer überschuss an kavas auf,wenn der bot aktiviert ist,da es so lange dauert. zusätzlich ist jetzt die baufunktion dabei,die ich nicht abstellen kann ^^
|
|
|
04/06/2016, 21:08
|
#30
|
elite*gold: 317
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
|
Quote:
Originally Posted by rudigangsta
nice and good update! ABER jetzt kannst du doch auch die wartezeit für das switchen zwischen dörfern und nach etwa 5 angriffen,niedriger einstellen,wenn der bot nicht erscheint. bei mir zumindest baut sich nach einer zeit ein großer überschuss an kavas auf,wenn der bot aktiviert ist,da es so lange dauert. zusätzlich ist jetzt die baufunktion dabei,die ich nicht abstellen kann ^^
|
Das ist der Preis, den du für einen halbwegs "sicheren" Bot zahlen musst. Der Witz ist ja, dass Login und Bauen über die API läuft, aber Angriffe immer noch über einen Browser geschickt werden. Hyper-Speed ist also nicht möglich. Ich werde allerdings mal testen, ob sich der standard Delay etwas verringern lässt.
Eventuell würde es auch Sinn machen, Bauen und Farmen in zwei verschiedenen Threads laufen zu lassen, damit die Aufgaben unabhängig voneinander und vor allem gleichzeitig laufen können.
Dann haben wir aber wieder das alte Problem: Bot arbeitet zu schnell und in 2 verschiedenen Dörfern gleichzeitig.
Es muss halt immer noch menschlich wirken, und ich will ja auch kein Tool raus bringen, von dem die Leute massenhaft gebannt werden.
Eine Option zum deaktivieren einzelner Funktionen wird definitiv gebraucht. Außerdem muss ich unbedingt eine Art Config-Helfer mit richtiger Benutzeroberfläche bauen...
Dann würde es noch Sinn machen, einige Einstellungen, die sich fast nie ändern (wie Host, Account) im Home-Verzeichnis zu speichern, damit das nicht immer wieder neu eingegeben werden muss.
|
|
|
Similar Threads
|
[Selling] Tribal Wars 2 Beta Key (Die Stämme 2)
08/22/2014 - Browsergames Trading - 0 Replies
Hey, habe einen Betakey für Tribal Wars 2.
Falls jemand daran Interesse hat, einfach per PN melden.
Hätte gerne Elite*Gold.
Gruß
|
[S] Tribal Wars (.PT) acc
08/18/2013 - Trading - 1 Replies
Link of my acc in Portuguese server
Nobleman's -- 188
Premium until 23.03.2013
Price-20€ (PSC) / 2000 RP's in League of Legends EUW server
I wanna sell my acc i dont have time to stay in this game, im in n1 guild, have a lot of armys :)
If anybody want contact me.
|
TRIBAL WARS
01/16/2013 - Browsergames - 4 Replies
HEY GUYS
You have some hack For tribal wars?
|
Tribal Wars ?!
05/04/2011 - Browsergames - 3 Replies
Anyone ??
Can u teach my guys, Strats or Tips to be strong in this game ?:)
|
All times are GMT +1. The time now is 22:29.
|
|